UDP特点
- 实现简单,无需建立连接 (减少延迟)
- UDP发送方和接收方之间不需要握手
- 每个UDP段的处理独立于其他段
- 没有拥塞控制: 应用可更好地控制 送时间和速率
- 基于Internet IP协议:复用/分用 简单的错误校验
- UDP 使用尽最大努力交付,UDP段可能:丢失 非按序到达
- UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
- UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
- UDP 支持一对一、一对多、多对一和多对多的交互通信。
UDP报文段结构

UDP 报文中每个字段的含义如下:
- 源端口:这个字段占据 UDP 报文头的前 16 位,通常包含发送数据报的应用程序所使用的 UDP 端口。接收端的应用程序利用这个字段的值作为发送响应的目的地址。这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号写入该字段中。如果不写入端口号,则把这个字段设置为 0。这样,接收端的应用程序就不能发送响应了。
- 目的端口:接收端计算机上 UDP 软件使用的端口,占据 16 位。
- 长度:该字段占据 16 位,表示 UDP 数据报长度,包含 UDP 报文头和 UDP 数据长度。因为 UDP 报文头长度是 8 个字节,所以这个值最小为 8。
- 校验值:该字段占据 16 位,可以检验数据在传输过程中是否被损坏。
UDP检验和
检测UDP段在传输中是否发生错误(如位翻转)
发送方:
- 将段的内容视为16-bit整数
- 校验和计算:计算所有整数的和 ,进位加在和的后面,将得到的 值按位求反,得到校验和
- 发送方将校验和放入校验和字段
接受方
- 计算所收到段的校验和
- 将其与校验和字段进行对比 不相等:检测出错误 相等:没有检测出错误
