UDP (User Datagram Protocol) 用户数据报协议


UDP 是 User Datagram Protocol 的缩写,中文译为 "用户数据报协议"。

UDP 是 OSI (Open System Interconnection 开放系统互联) 参考模型中的一种是轻量、不可靠、面向数据报的无连接协议。

UDP 协议是 IP 协议与上层协议的接口,UDP 协议适用端口分别运行在不同 (或同一) 设备中的多个应用程序。

采用 UDP 协议,包括:BOOTP、DNS、NFS、SNMP、TFTP;常用 UDP 端口:53 (DNS)、69 (TFTP)、161 (SNMP)。

主要特征


在发送端,UDP 传送数据的速度仅仅受应用程序生成数据的速度、计算能力和传输带宽的限制;在接收端,UDP 把每个消息段放在队列中,应用程序每次从队列中读一消息段。

UDP 发送方对应用程序提交的报文,在添加首部后就向下交付给 IP 层;既不拆分也不合并,因此,应用程序需要选择合适的报文大小。

UDP 主要用于不要求按顺序到达的传输,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。

UDP 可以用于 RIP (Routing Information Protocol 路由信息协议) 以修改路由表;若一消息丢失,另一新消息会替换它。

许多应用只支持 UDP (如:多媒体数据流、在屏幕上报告股票市场、显示航空信息、等),不产生任何额外数据,即使知道有破坏包也不进行重发。

当强调传输性能而不是传输的完整性时 (如:音频和多媒体应用),UDP 是最佳选择;当数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP 也是最佳选择。

报文格式


UDP 报头由 4 个部分组成,每个部分占 2 个字节 (共 8 个字节,而 TCP 是 20个字节),包括源端口号、目标端口号、数据报长度、校验值。

UDP 端口可用从 0 到 65535,大于 49151 的端口为动态端口。

数据报长度是指包括报头和数据部分在内的总字节数;由于报头长度固定,所以数据报长度主要用来计算可变长度的数据部分。

数据报的最大长度从属操作系统,理论上讲,包含报头在内的数据报最大长度为 65535 字节;但实际应用往往限制数据报大小,有时会降低到 8192 字节 (数据部分长度还是不要超过 512 字节)。

校验值用于校验数据报在传输过程中,是否被第 3 方篡改、或由于线路噪音等原因被损坏。

虽然 UDP 有提供错误检测,但检测到错误时 UDP 不做错误纠正,只是简单把损坏消息段扔掉,或给应用程序提供警告信息。

另请参阅:

版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。

内容表

  1. 主要特征
  2. 报文格式

上一话题

UART 通用异步收发器

下一话题

UDP 广播

快速搜索