作者:爱塔居
专栏:计算机网络
文章目录
目录
一、UDP概述
用户数据报协议UDP只是在IP的数据报服务之上增加了很少一点的功能:复用和分用的功能以及差错检测的功能。
重点要记住UDP的主要特点(括号里面的内容是帮助我们理解):
1.UDP是无连接的,即发送数据之前不需要建立连接。(发送数据结束之后也没有连接可释放。知道对端的IP和端口号就直接进行传输,减少了开销和发送数据之前的时延。)
2.UDP使用尽最大努力交付,即不可靠交付,因此主机不需要维持复杂的链接状态。(没有任何安全机制,发送端发送数据报以后,如果因为网络故障,该段无法发到对方,UDP层也不会给应用层返回任何错误信息)
3.UDP是面向报文的。(应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并。因此应用程序必须选择合适大小的报文。)
4. UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。(对实时应用很有用,如直播、实时视频会议等就需要它。)
5.UDP支持一对一、一对多、多对一和多对多的交互通信。
6.UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
基于UDP的应用层协议有:
NFS:网络文件系统
TFTP:简单文件传输协议
DHCP:动态主机配置协议
BOOTP:启动协议(用于无盘设备启动)
DNS:域名解析协议
二、UDP的首部格式
用户数据报UDP有两个字段:数据字段和首部字段。首部字段只有8个字节,有4个字段组成,每个字段的长度都是2字节。
UDP首部:
(1)源端口:源端口号,在需要对方回信时选用。不需要的时候可用全0。
(2)目的端口:目的端口号。这在终点交付报文时必须使用(如果接收方UDP发现收到的报文中的目的端口号不正确,就丢弃报文,并由网际控制报文协议ICMP发送“端口不可达”差错报文给发送方。)
(3)长度:UDP用户数据报的长度,其最小值是8(仅有首部)
(4)检验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。
UDP用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在UDP用户数据包之前增加12个字节的伪首部。所谓“伪首部”是因为这种伪首部并不是UDP用户数据报真正的首部。只是在计算检验和时,临时添加在UDP用户数据报前面,得到一个临时的UDP用户数据报。检验和就是按照这个临时的UDP用户数据报来计算的。伪首部既不向下传送,也不向上递交,而仅仅是为了计算检验和。UDP的检验和是把首部和数据部分一起都检验