美文网首页
07-UDP协议

07-UDP协议

作者: Mr_十九 | 来源:发表于2018-11-04 23:44 被阅读0次

    本人在“极客时间”上购买了一套“趣谈网络协议”的课程,本文为该课程第10讲(第第10讲 | UDP协议:因性善而简单,难免碰到“城会玩” )的课程笔记。


    tips:

    • 二层是数据链路层,使用mac寻址,三层是网络层使用ip寻址。
    • 传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。

    1.TCP和UDP的区别

    1)TCP 面向连接,UDP 面向无连接

    • 所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。
    • TCP 提供可靠交付。而UDP 继承了 IP 包的特性,不保证不丢失,不保证按顺序到达。
    • TCP 是面向字节流的。发送的时候发的是一个流,没头没尾。而UDP 继承了 IP 的特性,基于数据报的,一个一个地发,一个一个地收。
    • TCP 是可以有拥塞控制的。并且 TCP是一个有状态服务,通俗地讲就是有脑子的,而 UDP 则是无状态服务。 没脑子。
      2)如果 MAC 层定义了本地局域网的传输行为,IP 层定义了整个网络端到端的传输行为,这两层基本定义了这样的基因:网络传输是以包为单位的,二层叫帧,网络层叫包,传输层叫段。我们笼统地称为包。包单独传输,自行选路,在不同的设备封装解封装,不保证到达。基于这个基因,生下来的孩子 UDP 完全继承了这些特性,几乎没有自己的思想。

    2.UDP 包头及特点

    • 包头:包括源端口、目的端口、长度、校验和、数据等


      包头
    • 特点1,沟通简单

    • 特点2,轻信他人,可以把数据给任何人

    • 特点3,愣头青,做事儿不懂权变,无论网络丢包多严重,不会影响继续发包

    3.UDP 的三大使用场景

    • 第一,需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用。
    • 第二,不需要一对一沟通,建立连接,而是可以广播的应用。
    • 第三,需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前的时候。
    • 例子:
      网页或者 APP 的访问、流媒体的协议、实时游戏(游戏对实时要求较为严格的情况下,采用自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。)、IoT 物联网、移动通信领域

    UDP 总结

    1)如果将 TCP 比作成熟的社会人,UDP 则是头脑简单的小朋友。TCP 复杂,UDP 简单;TCP 维护连接,UDP 谁都相信;TCP 会坚持知进退;UDP 愣头青一个,勇往直前;
    2)UDP 虽然简单,但它有简单的用法。它可以用在环境简单、需要多播、应用层自己控制传输的地方。例如 DHCP、VXLAN、QUIC 等。

    相关文章

      网友评论

          本文标题:07-UDP协议

          本文链接:https://www.haomeiwen.com/subject/uvgkxqtx.html