UDP 是一种提供基本传输层功能的简单协议。 与 TCP 相比,UDP 的开销极低,因为 UDP 是无连接的,并且不提供能实现可靠性的重新传输、排序和流量控制等复杂机制。

这并不能说明使用 UDP 的应用程序始终不可靠,也不能说明 UDP 是下等协议。 而仅仅是说明,作为传输层协议,UDP 不提供上述几项功能,如果需要这些功能,必须通过其他方式来实现。

尽管在常规网络上的 UDP 总流量相对较低,但是使用 UDP 协议的应用层协议还是很多,主要包括:

某些应用程序(如在线游戏或 VoIP)可以容忍小部分数据丢失。 如果这些应用程序采用 TCP,那么将面临巨大的网络延迟,因为 TCP 需要不停检测数据是否丢失并重新传输丢失的数据。 与丢失小部分数据相比,网络延迟对这些应用程序的性能造成的负面影响更大。 一些应用程序(例如 DNS)没有收到响应会重新尝试请求,因此不需要使用 TCP 确保消息传递。

正是由于 UDP 的开销低,对此类应用程序就非常有吸引力。