UDP的优点

  1. 不需要建立连接;
  2. 无状态;
  3. 分组首部开销较小(只有8B);
  4. 应用层可以更好控制发包时间。

UDP的一些误区

  1. UDP虽然是best-effort,但也是可以在应用层实现可靠传输的;
  2. UDP的报文是不可分割的

UDP细节

首部格式:
1
2
3
4
5
6
7
8
9
10
11
 0      7 8     15 16    23 24    31
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| | |
| Length | Checksum |
+--------+--------+--------+--------+
|
| data octets ...
+---------------- ...
checksum计算:
  1. 根据IPV4或IPV6添加伪首部(对IP数据报的源地址以及目的地址也进行校验);
  2. 补全报文为B偶数倍;
  3. 以2B为单位计算反码和并取反