2.4.3 UDP详解
UDP的IP协议号是17,通信双方在进行数据交互前既不需要协商通信的相关参数,也不需要对数据接收进行确认,数据传输的可靠性比TCP低,因此需要的标识字段也比较少,协议开销小,通信效率高。UDP的报头长度是8 B,传输效率比TCP高。UDP多应用在需要高效传输、网络质量较好、对丢包不太敏感的场景,很多下载类应用、局域网应用和音视频类应用等都采用UDP。
UDP最早是在RFC 768中描述的。RFC 768发布于1980年8月,文档等级是互联网标准(Internet Standard),最后一次更新时间是2013年3月2日。RFC 768的文档链接地址是https://datatracker.ietf.org/doc/rfc768/?include_text=1。
1.UDP的报头格式
UDP的报头格式如图2-12所示,具体说明如下:
UDP的报头宽度是32 bit。
Source Port:源端口,长度为16 bit。
Destination Port:目的端口,长度为16 bit。
Length:UDP分段长度,长度为16 bit。
Checksum:校验和,长度为16 bit,可选字段,当不使用校验和时,此字段置为0。
UDP报头的长度是8 B,因为没有可选项,长度相对TCP而言是固定的。
图2-12 UDP的报头格式(摘自RFC 768)
2.UDP的报文示例
在Wireshark中显示的UDP报头示例,如图2-13所示。
图2-13 在Wireshark中显示的UDP报头示例
从图2-13中可以看出如下信息:
UDP的IP协议号是17;
数据从源地址192.168.1.2发往目的地址163.177.69.40;
源端口是一个随机端口(端口号为1028),目的端口是一个知名端口(端口号为8000);
报文的长度是178 B;
报文校验和是0x627f,没有使能确认;
数据内容有170 B。