解释一下 UDP 的用途?
用户数据报协议 (UDP) 提供无连接数据包服务,该服务提供不可靠的"尽力而为"传输。这意味着数据包的到达无法保证,也无法保证转发数据包的正确顺序。
不需要数据接收确认的应用程序。例如,音频或视频广播使用 UDP。
UDP 也用于一次性传输少量数据的典型应用程序。例如,UDP 提供协议端口来区分单个设备上运行的多个程序。
每个 UDP 消息都包含目标端口号和源端口号。这使得目的地的 UDP 软件能够将消息传递给正确的应用程序,并让应用程序发送回复。
| 源端口 | 长度 | 目标端口 | UDP 校验和 |
| 数据 | |||
UDP 数据报
UDP 报头分为以下 16 位字段。
源端口
源端口在相关时为可选字段。它表示发送进程的端口,在没有任何其他数据的情况下,可以假定为应该处理回复的端口。如果未使用,则添加零值。
目标端口
目标端口在特定互联网目标地址的上下文中具有含义。
长度
这是 UDP 数据包的大小(以字节为单位),包括报头和数据。最小长度为 8 字节,即报头本身的长度。
UDP 校验和
这用于验证 UDP 报头的完整性。校验和是在伪报头上执行的,伪报头包含从 IP 报头(源地址和目标地址)和 UDP 报头获取的信息。
UDP 伪报头
使用伪报头的目的是测试 UDP 数据包是否已到达其正确的目的地。这里,正确的目的地包括特定的机器以及该机器内的特定协议端口号。
UDP 报头本身仅确定协议端口号。因此,为了验证发送设备上的目标 UDP 协议,需要计算一个包含目标 IP 地址和 UDP 数据包的校验和。
UDP 软件使用从承载 UDP 消息的 IP 数据包头中获取的目标 IP 地址来确定最终目标的校验和。
如果校验和一致,则表示数据包已到达预定的目标主机及其内部正确的协议端口。
| 源地址 | ||
| 目标地址 | ||
| 零 | 协议 | UDP 长度 |
UDP 伪报头
用户界面
用户界面应允许创建新的接收端口、对数据八位字节执行接收操作、指示源端口和源地址,以及允许发送数据报的流程,该流程指定要发送的数据、源端口、目标端口和地址。
IP 接口
UDP 模块必须确定源和目标互联网地址以及互联网报头的协议字段。一种可能的 UDP/IP 接口将返回整个互联网数据报(包括整个互联网报头)以进行接收操作。
这样的接口还允许 UDP 将整个互联网数据报(包括报头)传递给 IP 进行发送。 IP 会验证特定字段的一致性,并计算互联网标头校验和。
协议应用
该协议的主要用途是互联网名称服务器和简单文件传输。
协议编号
在互联网协议中使用时,协议编号为 17(八进制 21)。

