计算机网络运输层详解(2)——UDP
UDP协议
运输层的两种协议代表了两个极端,UDP非常简单,它只做了运输层能做的最少工作。除了多路复用/分解功能及少量的差错检测外(对差错无恢复能力),它几乎没有对IP增加别的东西。如果应用层协议开发人员选择UDP而不是TCP,那么该应用应用程序差不多就是直接与IP打交道。
使用UDP时,再发送报文之前,发送方和接收方之间没有握手,所以是无连接的。且UDP只是尽力而为地尝试将报文段中的数据交付给正确的应用进程。
UDP优点
虽然没有TCP可靠,但有许多应用程序更适合使用UDP的,原因如下
** 关于何时、发送什么数据的应用层控制更加精细。**采用UDP时,只要应用程序将数据传给UDP,UDP就会将此数据打包进UDP报文段并立即传送给网络层。而TCP拥有拥塞控制机制,会遏制发送方的频率。
无需建立连接。TCP在传输前需要经过三次握手,而UDP不需要任何准备即可数据传输。因此,UDP不会引入建立连接的时延,这可能是DNS运行在UDP之上的主要原因。
无连接状态。TCP需要在端系统中维护连接状态,状态包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数。而UDP不维护连接状态,也不跟踪这些参数。
分组首部开销小。每个TCP报文段都有20个字节的首部开销,而UDP报文段仅有8字节的首部开销。