UDP用户数据报协议(User Datagram Protocol,简称UDP)是一种允许在基于IP的网络中无连接地发送数据报的协议。为了在目标主机上实现所需的服务,它使用列为UDP标头中的核心组件之一的端口。与许多其他网络协议一样,UDP属于Internet协议族,在传输级别,UDP 被归类为网络层和应用层之间的中介。

UDP是常见的TCP的直接替代方案,尽管这两个协议有一点不同:虽然通过TCP传输仅在强制三次握手(发送方和收件人之间的相互身份验证,包括连接设置)之后发生,但UDP为了保持传输时间尽可能短,因此放弃了此过程。

通过使用用户数据报协议,应用程序可以非常快速地发送信息,因为既不必建立与收件人的连接,也不必等待答案。但是,不能保证数据包将到达完成,并在同一顺序它们被发送。此外,该协议不提供自己的保护,以防止第三方操纵或访问。但是,可以通过可选的可用校验和检测故障数据包(强制性地与IPv6结合使用)。

UDP的定义

UDP(用户数据报协议)是在传输层操作的因特网协议族的无连接协议,并且在1980年在RFC(请求注释)768中指定。作为TCP的精简,且几乎无延迟的替代方案,UDP用于IP网络中数据分组的快速传输。UDP的典型应用领域是DNS查询,VPN连接和音频/视频流。

UDP的功能

UDP 是无连接的:通过UDP进行的数据传输的特点是它在没有在发件人和收件人之间现有连接的情况下发生。然后将相应的数据包发送到首选IP地址,指定目标端口,而不必在其后面的计算机进行响应。但是,如果还要将数据包返回给收件人,则UDP标头也可以选择包含源端口。

UDP 使用端口:与TCP一样,UDP使用端口,以便将数据包传输到正确的后续协议或目标系统上的所需应用程序。端口由根据经过验证的模式的数字定义,0到1023之间的数字分配给固定服务。

UDP 支持快速,无延迟的通信:由于缺少连接设置,传输协议适用于快速数据传输。这也是由于单个数据包的丢失仅影响传输质量的事实。另一方面,使用TCP连接时,会自动重新请求丢失的数据包,从而导致整个传输过程停止。

UDP 不保证数据的安全性和完整性:发件人和收件人之间缺乏相互身份验证可确保UDP的出色传输速度 – 但是,协议既不能保证数据包的完整性,也不能保证数据包的安全性。

UDP报头是如何构成的?

UDP数据包由标头和实际用户数据组成。UDP报头包含使用传输协议进行数据传输所需的所有信息,并使UDP数据包可识别。

哪些应用程序使用UDP?

用户数据报协议具有简约结构和缺少机制,以保证完整,成功的传输,但不能用作通用传输协议。相反,它从一开始就设计用于尚未(还)需要可靠传输服务的应用。因此,UDP的应用领域受到限制,但仍然强调了协议的巨大价值。

注意

现在,实时应用程序主要使用基于UDP的实时传输协议(RTP),与基本协议不同,它可以检测数据包丢失,最新的RTP规范请在RFC 3550中查看。