8.UDP协议

  • 传输层协议:TCP UDP

TCP和UDP有什么区别?

  1. TCP是面向连接的 UDP是面向无连接。在互通之前,面向连接的协议会先建立连接,如TCP会三次握手。所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。
  2. TCP提供可靠传输,而UDP继承了IP包的特性,不保证不丢失,不保证按顺序到达
  3. TCP是面向字节流,而UDP继承了IP的特性,基于数据包的,一个一个的发,一个一个的收
  4. TCP是可以有拥塞控制,如果包丢失或者网络环境不好会调整行为。UDP则不会。

       

UDP包头是怎么样的?

UDP包到达服务端,发现MAC地址匹配会取下来,将剩下的包传给处理ip层的代码,把ip头取下来,发现ip地址匹配。ip头里面有个8位协议会存放是UDP/TCP。然后再将数据包传给端口号

   

   

UDP的三大特点

  1. 沟通简单(不需要大量的数据结构、处理逻辑、包头字段)
  2. 容易欺骗(可以给任何人传数据。任何人都可以传数据给他,还可以同时传给多个)
  3. 不懂改变(不会根据网络的具体情况进行拥塞控制,也不会理会丢包现象)

       

UDP的三大使用场景

扫描二维码关注公众号,回复: 5908815 查看本文章
  1. 需要资源少,在网络情况比价好的内网,或者对于丢包不敏感的应用。(DHCP就是基于UDP协议)
  2. 不需要1对1沟通,建立连接,而是可以广播的应用(DHCP就是一种广播的形式)
  3. 需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前的时候

   

基于UDP的五个使用例子

  1. 网页或者APP的访问。

    QUIC(quick UDP Internet connections 快速UDP互联网连接)

  2. 流媒体协议。

    直播协议RTMP是基于TCP的,但是由于TCP的严格顺序传输,会导致掉帧。

  3. 实时游戏

    自定义可靠UDP协议,自定义重传策略。能够把丢包产生的时延降到最低,尽量减少网络问题对游戏性造成的影响

  4. loT物联网

    物联网通信协议Thread就是基于UDP协议的

  5. 移动通信领域。

    4G网络里,移动流量上网的数据面对的协议GTP-U是基于UDP的。

  • 以上应用针对的是TCP协议传输过程中造成的卡顿时延掉帧现象,而且维护TCP协议代价太大(维护TCP连接需要在内核维护一些数据结构),而改用UDP协议

   

   

猜你喜欢

转载自www.cnblogs.com/benlack/p/10716162.html