Skip to content

用户数据报协议UDP

UDP 协议只在 IP 数据报服务上增加了复用和分用以及差错检测的功能。

UDP 的主要特点:

  1. UDP 是无连接的,发送数据之前不需要先建立连接
  2. UDP 尽最大努力交付,不保证可靠交付
  3. UDP 是面向报文
  4. UDP 是没有拥塞控制的,我们在日常生活中观看直播,和好朋友进行QQ电话时,如果有一方有网络延迟,那么会丢失一些数据,这样的好处是时延会降低,因此UDP常用于实时应用
  5. UDP 支持一对一、一对多、多对一、多对多的交互通信
  6. UDP 首部开销小,只用了 8 个字节(Byte),TCP 用了 20 个字节(最小长度,固定的 20 个字节)

首部格式

一共有 4 个字段,每个字段占用 2 个字节,共 8 个字节

  1. 源端口(需要对方回信时使用,不需要时用全 0 填充)
  2. 目的端口
  3. 长度,UDP 用户数据报的长度,其最小值为 8 个字节,仅有首部的长度
  4. 检验和,检测 UDP 用户数据报在传输中是否有错,有错则丢弃

UDP检验和

UDP 检验和时,首先需要添加 12 个字节的伪首部,如下:

字段名称字节大小
源IP地址4
目的IP地址4
填充对齐字段1
协议号1
UDP数据报长度2

填充对齐字段是 0x0,构成 12 字节 UDP的协议号是 17

之所以称为『伪首部』,是因为这 12 个字节既不往上交付给应用程序,也不