传输层协议之UDP协议

UDP协议特点

UDP,User Datagram Protocol,用户数据报协议。用户数据报协议UDP只在IP层数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能,UDP协议的主要特点有:

(1)UDP是无连接的

UDP发送数据之前不需要建立连接,当然发送数据结束时也没有连接可释放,因此减少了开销和发送数据之前的时延。

(2)UDP使用尽最大努力交付

UDP不保证可靠交付,因此主机不需要维持复杂的连接状态表。

(3)UDP是面向报文的

发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。在接收方的UDP,对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付给上层的应用进程。也就是说,UDP一次交付一个完整的报文。因此,应用程序必须选择合适大小的报文(也就是应用层要确定合适的报文大小)。若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率。反之,若报文太短,UDP把它交给IP层后,会是IP数据报的首部的相对长度太大,这也降低了IP层的效率。

因此,UDP数据包是不会粘包的,因为对于应用层交给UDP的一条报文,UDP会把它直接封装到一个UDP包中,不会拆分,也不会合并

(4)UDP没有拥塞控制

UDP在网络出现拥塞时,不会是源主机的发送速率降低。这对某些实际应用是很重要的,如很多的实时应用(如IP电话、实时视频会议等)要求源主机以很定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。

(5)UDP支持一对一、一对多、多对一和多对多的交互通信。

(6)UDP的首部开销小

UDP的首部只有8个字节,比TCP的20个字节的首部要短。

UDP报文格式