1 UDP 概述
用户数据报协议 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。
UDP的主要特点是:
- 无连接的:发送数据之前不需要建立连接,减少了开销和时延。
- 尽最大努力交付:即不保证可靠交付,主机不需要维持复杂的连接状态表。
- 面向报文:发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。
- 没有拥塞控制:网络出现的拥塞不会使源主机的发送速率降低
- 支持一对一、一对多、多对一和多对多的交互通信。
- 首部开销小:只有 8 个字节,比 TCP 的 20 个字节的首部要短。
2 UDP 的首部格式
首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
如果接收方 UDP 发现收到的报文中的目的端口号不正确,就丢弃该报文,并由网际控制报文协议 ICMP 发送“端口不可达”差错报文给发送方。
3 UDP 检验和
目的: 在传输的段中检测“差错” (如比特翻转)
- 发送方
- 将段内容处理为 16 比特整数序列
- 校验和: 段内容的加法(反码和)
- 发送方将校验和放入 UDP 校验和字段
- 接收方
- 计算接收的段的校验和
- 核对计算的校验和是否等于校验和字段的值:
- NO – 检测到差错
- YES – 无差错检测到。虽然如此,还可能有差错吗?