UDP协议简介

UDP(全称User Datagram Protocol)协议,用于提供面向事务的简单不可靠信息传送服务。

UDP协议属于传输层(五层协议体系结构)的协议。

UDP协议特点

  • UDP是无连接的,即发送数据前不需要建立连接。
  • UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
  • UDP是面向报文的。与TCP不同,UDP对于应用程序传递的数据,既不合并,也不拆分,而是在添加首部后就向下递交给IP层了。
  • UDP没有拥塞控制。UDP没有TCP的窗口概念,当网络出现拥堵时,UDP并不会因网络拥堵而降低发送速率。
  • UDP支持一对一、一对多、多对一、多对多的交互通信。
  • UDP的首部开销小。只有8字节,而TCP的首部占用了20字节。
UDP是面向报文的

UDP是面向报文的

UDP协议下的报文结构

UDP报文结构

UDP报文结构

UDP的报文有两部分组成:

  • 数据字段。即应用层递交下来的数据。
  • 首部字段。由UDP生成的传输层头部信息。

UDP的首部字段只占用了8字节(TCP的首部占用了20字节)。由四个字段构成:

字段 占用字节 意义
源端口 2 源端口号,在接收方回信时需要参考的信息。
目的端口 2 接收方的应用层端口号。
长度 2 UDP数据报的长度,最小值是8(仅有首部)。
检验和 2 用于检测UDP数据报在传输中是否存在差错,若存在,则丢弃。

伪首部

12字节的伪首部是为检验和的计算而存在的。

伪首部并不会向下传递或向上提交,仅仅是计算检验和时,临时添加进UDP用户数据报的。在向下传递或向上递交时,该伪首部也就被去除了。