Skip to main content

10 UDP协议

TCP 和 UDP 的区别

建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证面向连接的特性。

  • TCP 提供可靠交付。通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。

  • TCP 是面向字节流的。发送的时候发的是一个流,没头没尾。

  • TCP 可以有拥塞控制。

  • UDP 继承了 IP 包的特性,不保证不丢失,不保证按顺序到达。

  • UDP 继承了 IP 的特性,基于数据报的,一个一个地发,一个一个地收。

  • UDP 不管理拥塞,应用让发就发。

UDP 包头

特点

  • 沟通简单
  • 轻信他人
  • 不懂权变

适用场景

  • 需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用。
  • 不需要一对一沟通,建立连接,而是可以广播的应用。
  • 需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前的应用。

改造使用新场景

  • 网页或者 APP 的访问:QUIC(全称 Quick UDP Internet Connections,快速 UDP 互联网连接)
  • 流媒体的协议:基于 UDP 实现的视频传输协议
  • 实时游戏:自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响
  • IoT 物联网:基于 UDP 协议的物联网通信协议 Thread
  • 移动通信领域:4G 网络里移动流量上网的数据是基于 UDP 的 GTP-U 协议