UDP (User Datagram Protocol) 是一个无连接的、不可靠的传输层协议。 [RFC 768]
- 主要特点:
- 无连接:发送数据前不需要握手。
- 尽力而为:不保证可靠交付,不使用拥塞控制。
- 面向报文:不对应用层交付的报文进行拆分或合并,保留报文边界。
- 首部开销小:仅 8 字节。
UDP 报文格式
- 源端口:2 字节。
- 目的端口:2 字节。
- 长度:2 字节,UDP 用户数据报的总长度(首部 + 数据)。
- 校验和:2 字节,检测报文段在传输中是否出错。
UDP 校验和
重点 UDP 校验和的计算涵盖了伪首部、首部和数据部分。
- 伪首部:包含源 IP、目的 IP、全 0、协议字段(17)和 UDP 长度。仅用于计算校验和,不向下传递。
- 计算方法:二进制反码求和。
- 将段内容处理为 16 比特整数序列。
- 计算所有 16 比特整数的和(最高位进位回卷加到最低位)。
- 最后结果取反。
- 接收方:计算接收段的校验和,若结果不为全 1(或按不同实现判断),则检测到差错。