Skip to main content

UDP

⾯向报⽂

  • UDP 是⼀个⾯向报⽂(报⽂可以理解为⼀段段的数据)的协议。意思就是 UDP 只是报⽂的搬运⼯,不会对报⽂进⾏任何拆分和拼接操作。

  • 具体来说

    • 在发送端,应⽤层将数据传递给传输层的 UDP 协议, UDP 只会给数据增加⼀个 UDP 头标识下是 UDP 协议,然后就传递给⽹络层了。
    • 在接收端,⽹络层将数据传递给传输层, UDP 只去除 IP 报⽂头就传递给应⽤层,不会任何拼接操作。

不可靠性

  • UDP 是⽆连接的,也就是说通信不需要 建⽴ 和 断开连接 。
  • UDP 也是不可靠的。协议收到什么数据就传递什么数据,并且也不会备份数据,对⽅能不能收到是不关⼼的。
  • UDP 没有拥塞控制,⼀直会以恒定的速度发送数据。即使⽹络条件不好,也不会对发送速率进⾏调整。这样实现的弊端就是在⽹络条件不好的情况下可能会导致丢包,但是优点。 也很明显,在某些实时性要求⾼的场景(⽐如电话会议)就需要使⽤ UDP ⽽不是 TCP

⾼效

  • 因为 UDP 没有 TCP 那么复杂,需要保证数据不丢失且有序到达。所以 UDP 的头部开销⼩,只有⼋字节,相⽐ TCP 的⾄少⼆⼗字节要少得多,在传输数据报⽂时是很⾼效的。

  • 头部包含了以下⼏个数据 两个⼗六位的端⼝号,分别为源端⼝(可选字段)和⽬标端⼝ 整个数据报⽂的⻓度。

  • 整个数据报⽂的检验和( IPv4 可选 字段),该字段⽤于发现头部信息和数据中的错误。

传输⽅式

UDP 不⽌⽀持⼀对⼀的传输⽅式,同样⽀持⼀对多,多对多,多对⼀的⽅式,也就是说 UDP 提供了单播,多播,⼴播的功能。

21