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