UDP
⾯向报⽂
UDP
是⼀个⾯向报⽂(报⽂可以理解为⼀段段的数据)的协议。意思就是UDP
只是报⽂的搬运⼯,不会对报⽂进⾏任何拆分和拼接操作。具体来说
- 在发送端,应⽤层将数据传递给传输层的
UDP
协议,UDP
只会给数据增加⼀个UDP
头标识下是UDP
协议,然后就传递给⽹络层了。 - 在接收端,⽹络层将数据传递给传输层,
UDP
只去除IP
报⽂头就传递给应⽤层,不会任何拼接操作。
- 在发送端,应⽤层将数据传递给传输层的
不可靠性
UDP
是⽆连接的,也就是说通信不需要 建⽴ 和 断开连接 。UDP
也是不可靠的。协议收到什么数据就传递什么数据,并且也不会备份数据,对⽅能不能收到是不关⼼的。UDP
没有拥塞控制,⼀直会以恒定的速度发送数据。即使⽹络条件不好,也不会对发送速率进⾏调整。这样实现的弊端就是在⽹络条件不好的情况下可能会导致丢包,但是优点。 也很明显,在某些实时性要求⾼的场景(⽐如电话会议)就需要使⽤UDP
⽽不是TCP
。
⾼效
因为
UDP
没有TCP
那么复杂,需要保证数据不丢失且有序到达。所以UDP
的头部开销⼩,只有⼋字节,相⽐TCP
的⾄少⼆⼗字节要少得多,在传输数据报⽂时是很⾼效的。头部包含了以下⼏个数据 两个⼗六位的端⼝号,分别为源端⼝(可选字段)和⽬标端⼝ 整个数据报⽂的⻓度。
整个数据报⽂的检验和(
IPv4
可选 字段),该字段⽤于发现头部信息和数据中的错误。
传输⽅式
UDP
不⽌⽀持⼀对⼀的传输⽅式,同样⽀持⼀对多,多对多,多对⼀的⽅式,也就是说 UDP
提供了单播,多播,⼴播的功能。