UDP 与 TCP 两种传输协议是 IP 协议簇的核心成员,1980 年发布的 RFC 768 定义了 UDP 协议[^1],我们可以通过它在多个计算机连接构成的网络中传递数据。
常见的 DNS 协议就可以使用 UDP 协议获取域名解析的结果[^2]。
UDP 是能够传输数据的最简单的协议,它的协议首部(也称作协议头)只有 8 个字节,很多人,尤其是应届毕业生都能通过死机硬背暂时记住 UDP 协议头包含的内容,但是知道协议头的内容不代表我们真正理解背后的原因。
本文会分析为什么只有 8 个字节的 UDP 协议能够传输数据,相信这篇文章能帮助你更好地理解 UDP 协议头中字段的作用。
图 1 - UDP 协议头
UDP 协议头中只包含 4 个字段,分别是源端口、目的端口、长度和校验码,其中每一个字段都占 16 比特,即 2 字节,这 4 个字段的作用如下:
✪ 源端口是一个可选字段,它表示发送方进程的端口号,接收方可以使用该字段(不一定准确)向发送方发送信息;
✪ 目的端口是数据报接收方的端口号,它只在目标的 IP 地址下才有意义;
✪ 长度是协议头和数据报