UDP( User Datagram Protocol )协议,翻译过来就是用户数据报协议 ,跟 TCP 协议一样,都是位于 OSI 模型的传输层。不过比起 TCP 协议,UDP 协议就显得简单多了,因为它没有「流量控制」、「拥塞控制」等复杂的处理机制。它甚至没有重传机制,也就是说,如果你的数据包半路走丢了,那就是真找不回来了,所以说 UDP 协议是不可靠的。当然了,这个重传机制是针对传输层而言的,你完全可以在应用层写一个协议来进行丢包处理,比如说像 TCP 一样,增加 ACK 和序列号机制。
那你可能会疑惑了,为什么放着可靠的 TCP 协议不用,而选择 UDP 协议?
UDP 报文段结构
这当然要根据应用的需求来,不过在说这个话题之前,我们先来详细了解一下 UDP 协议。
说实话,UDP 的报文段结构比 TCP 报文段简洁多了(见下图),毕竟 UDP 协议就没有什么多余的机制。