UDP协议详解
一、UDP协议简介
UDP协议,即用户数据报协议(User Datagram Protocol),是一个简单的面向数据报的传输层协议。UDP协议只在IP数据报服务商增加了很少一点的功能,就是复用和分用,以及差错检测的功能。
二、UDP协议的主要特点
(1)无连接的 发送数据之前不需要建立连接,减少了开销和发送数据之前的时延。 (2)尽最大努力交付 不保证可靠的交付,主机不需要维持复杂的链接状态表。 (3)面向报文的 发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。 (4)没有拥塞控制。 (5)支持一对一、多对一和多对多的交互通信。 (6)首部开销小,只有8个字节。
三、UDP数据报的首部结构
用户数据报UDP有两个字段:数据字段和首部字段。首部字段只有8个字节,如下图所示:
首部部分很简单,只有8个字节,由四个字段组成,每个字段都是两个字节。各个字段意义分别是:
(1)源端口
在需要对方回信时使用,不需要时全为0
(2)目的端口
发送UDP数据报的目的地。
(3)长度
UDP数据报的长度,最短为8个字节,只包含首部。
(4)检验和
用于检验UDP数据报在传输过程中有没有出差错,有则丢弃。
伪首部:
a.伪首部是用来校验的,它必须和首部中的校验和结合起来使用。
b.在计算检验和时临时加上去的,伪首部既不向下传送也不向上提交,而仅仅时为了计算检验和
c.在计算检验和时,需要在UDP用户数据报之前增加12个字节的伪首部。这个伪首部并不是UDP真正的首部,这是在计算检验和时临时和UDP用户数据报连接在一起,得到一个过渡的UDP用户数据报,检验和就是按照这个过渡的UDP用户数据报来计算的。伪首部既不向下传送也不向上提交,而仅仅时为了计算检验和。UDP计算检验和的方法和计算IP数据报首部检验和的方法相似,不同的是,IP数据报的检验和只是检验IP数据报的首部,但是UDP的检验和是将首部和数据部分一起都检验。