[TCP] TCP/IP 基础知识词典(3)

我想统计一下,TCP/IP 尤其是TCP协议,能搜到的常见的问题,整理起来,关键词添加在目录中,便于以后查阅。

目前预计整理共3篇:

[TCP] TCP/IP 基础知识问答 :基础知识
[TCP] TCP/IP 基础知识问答(2) :TCP协议相关知识
[TCP] TCP/IP 基础知识问答(3) :UDP协议相关知识

文章目录

UDP协议相关知识

什么是UDP

UDP(User Datagram Protocol),是无连接的、不可靠的传输层协议。

UDP的头

源port(16位),目标port(16位),总长度(16位),校验和(16位)

UDP可以发送多长的报文

根据MTU的大小来判断。

MTU是数据链路层数据的最大长度,超出MTU大小的数据会被分片。

比如以太网的MTU大小是1500,IP层的头大小是20字节,UDP头8字节,那UDP的数据长度应该是:

1500 -20 -8 = 1472 字节以下。

windows中可以用ping 命令测试mtu,可以通过-l 指定发送的数据包大小,例如 ping -l 1500 IP地址,

如果提示需要拆分,则MTU比这个值小。

ping 命令基于ICMP协议,是网络层协议。而MTU 实际上就是网络层包的大小。

TCP 和 UDP 的区别

1.TCP是面向连接的,UDP是无连接的。

TCP需要三次握手建立连接,四次挥手断开连接。

UDP没有这个过程。

2.TCP是字节流形式,UDP是数据报的形式。

字节流形式的特点:

TCP的应用层send几次和recv几次是没有关系的。有可能send了一次100字节,recv 10次。

也可能send了10次,结果对端一次recv就全收到了。

这是由于TCP是面向连接的,连接很稳定,TCP可以通过流量控制来控制协议栈中数据具体如何发送。

但是无边界的字节流传输,也就有沾包的问题,就是本来是两段数据,结果对端是连在一起收到的。

需要考虑沾包的问题。

数据报形式的特点:

UDP sendto一次,对端就要recvfrom一次,如果发送的报文过长,超出了接收端缓冲区的大小,超出部分将被放弃。

这是由于UDP是无连接的,所以一次就把整个报文发出去。所以应用层需要控制UDP发送的数据大小

3.UDP可以广播、组播

TCP是面向连接的,所以只能一对一。

UDP无连接,可以一对一发送,也可以一对多发送,进行广播和组播。

4.TCP是可靠的,UDP是不可靠的

TCP通过seq num 和ack num保证数据包是有序的、通过重传机制保证数据包不丢失、通过流量控制和拥塞控制确保网络传输,

所以TCP是可靠的,TCP数据报不重复、不丢失、不乱序。

但是UDP本身没有这些机制,他只是把报文发出去,不保证对端能收到。

5.TCP是全双工可靠通道,UDP是不可靠通道

TCP是全双工的通信,即连接的双方可以同时发送数据。

但是TCP是传输层协议,它支持全双工,其上的应用层未必支持全双工,例如http 1.0 是半双工,http 2.0是全双工。

UDP没有建立稳定的连接,所以我认为他是不是双工通信。

6.TCP头和UDP头的大小不一样

TCP的头大小为 20 - 60 字节之间,由于TCP头中有一个选项字段,他的大小是可变的。

UDP的头大小为固定的8字节。

7.socket编程流程不同

TCP socket编程,一般 创建socket (SOCK_STREAM)、bind、listen、accept(connect),send / recv, close socket。

UDP socket编程,一般 创建socket (SOCK_DGRAM)、sendto(recvfrom, close socket。//可选bind

UDP的应用层协议

SNMP (port 161、162)

DNS 53 (DNS在域名解析时使用UDP协议,在区域传送时使用TCP协议)

相关推荐
sunfove3 小时前
光网络的立交桥:光开关 (Optical Switch) 原理与主流技术解析
网络
Kevin Wang7276 小时前
欧拉系统服务部署注意事项
网络·windows
min1811234566 小时前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
汤愈韬6 小时前
NAT策略
网络协议·网络安全·security·huawei
汤愈韬6 小时前
Full Cone Nat
网络·网络协议·网络安全·security·huawei
zbtlink6 小时前
现在还需要带电池的路由器吗?是用来干嘛的?
网络·智能路由器
桌面运维家7 小时前
vDisk配置漂移怎么办?VOI/IDV架构故障快速修复
网络·架构
dalerkd7 小时前
忙里偷闲叙-谈谈最近两年
网络·安全·web安全
汤愈韬7 小时前
NAT ALG (应用层网关)
网络·网络协议·网络安全·security·huawei
运维栈记9 小时前
虚拟化网络的根基-网络命名空间
网络·docker·容器