UDP协议特点
-
UDP是无连接的传输层协议;
-
UDP使用尽最大努力交付,不保证可靠交付;
-
UDP是面向报文的,对应用层交下来的报文,不合并,不拆分,保留原报文的边界;
-
UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;
-
UDP支持一对一 一对多 多对多的交互通信;
-
UDP的首部开销小,只有8字节
TCP和UDP的区别
-
TCP是可靠传输,UDP是不可靠传输;
-
TCP面向连接,UDP无连接;
-
TCP传输数据有序,UDP不保证数据的有序性;
-
TCP不保存数据边界,UDP保留数据边界;
-
TCP传输速度相对UDP较慢;
-
TCP有流量控制和拥塞控制,UDP没有;
-
TCP是重量级协议,UDP是轻量级协议;
-
TCP首部较长20字节,UDP首部较短8字节;
基于TCP和UDP的常用协议
HTTP、HTTPS、FTP、TELNET、SMTP(简单邮件传输协议)协议基于可靠的TCP协议。
TFTP、DNS、DHCP、TFTP、SNMP(简单网络管理协议)、RIP基于不可靠的UDP协议
报文段
UDP的报文段共有2个字段:数据字段 + 首部字段
UDP报文中每个字段的含义如下:
- 源端口:这个字段占据 UDP 报文头的前 16 位,通常包含发送数据报的应用程序所使用的 UDP 端口,接收端的应用程序利用这个字段的值作为发送响应的目的地址,这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号写入该字段中,如果不写入端口号,则把这个字段设置为 0,这样,接收端的应用程序就不能发送响应了。
- 目的端口:接收端计算机上 UDP 软件使用的端口,占据 16 位。
- 长度:该字段占据 16 位,表示 UDP 数据报长度,包含 UDP 报文头和 UDP 数据长度,因为 UDP 报文头长度是 8 个字节,所以这个值最小为 8。
- 校验值:该字段占据 16 位,可以检验数据在传输过程中是否被损坏。