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 不做错误纠正,只是简单把损坏消息段扔掉,或给应用程序提供警告信息。
See also:
Copyright Notice: This article is exclusive original manuscripts, copyrighted by Happy Digits Software , shall not be reproduced without permission.