• 11 传输层协议


    1、传输层里比较重要的两个协议,一个是 TCP,一个是UDP

    对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议。

    2、TCP 和 UDP 有哪些区别?
    1.TCP 是面向连接的,UDP 是面向无连接的。
    
    • 1

    什么叫面向连接,什么叫无连接呢?

    1.在互通之前,面向连接的协议会先建立连接.//例如,TCP 会三次握手
    2.UDP 不会建立连接
    
    • 1
    • 2

    为什么要建立连接呢?UDP不是也可以发3个包么?为啥不发?

    1.所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。
    2.例如,TCP 提供可靠交付。通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。我们
    都知道 IP 包是没有任何可靠性保证的,一旦发出去,都只能随它去。
    3.UDP 继承了 IP包的特性,不保证不丢失,不保证按顺序到达。
    4.再如,TCP 是面向字节流的。发送的时候发的是一个流,没头没尾。IP 包可不是一个流,而是一个个的
    IP 包。之所以变成了流,这也是 TCP 自己的状态维护做的事情。
    5.UDP 继承了 IP 的特性,基于数据报的,一个一个地发,一个一个地收。
    6.还有TCP 是可以有拥塞控制的。它意识到包丢弃了或者网络的环境不好了,就会根据情况调整自己的行
    为,看看是不是发快了,要不要发慢点。UDP 就不会,应用让我发,我就发,管它呢。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    因而TCP 其实是一个有状态服务,通俗地讲就是有脑子的,里面精确地记着发送了没有,接收到没有,发送到哪个了,应该接收哪个了,错一点儿都不行。
    而UDP 则是无状态服务。通俗地说是没脑子的,发出去就发出去了。

    1.MAC 层定义了本地局域网的传输行为
    2.IP 层定义了整个网络端到端的传输行为
    
    • 1
    • 2

    UDP 包头
    在这里插入图片描述
    在这里插入图片描述
    UDP 的三大特点

    1.沟通简单,相信网络世界是美好的,相信网络通路默认就是很容易送达的,不容易被丢弃的。
    2.轻信他人。它不会建立连接,虽然有端口号,但是监听在这个地方,谁都可以传给他数据,他也可以传给任何人数据,甚至可以同时传给多个人数据。
    3.做事不懂权变,不会根据网络的情况进行
    发包的拥塞控制,无论网络丢包丢成啥样了,它该怎么发怎么发
    
    • 1
    • 2
    • 3
    • 4
    UDP 的三大使用场景
    1.第一,需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用
    2.不需要一对一沟通,建立连接,而是可以广播的应用 
      UDP 的不面向连接的功能,可以使得可以承载广播或者多播的协议
      DHCP 就是一种广播的形式,就是基于 UDP 协议的
    3.第三,需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    stream流参数总结
    【重识云原生】第六章容器6.1.7.1节——Docker核心技术cgroups综述
    渗透测试修复笔记 - 02 Docker Remote API漏洞
    vue3 接入网易易盾
    PCB layout 小功率板子减小干扰方法
    web大作业 静态网页(地下城与勇士 10页 带视频)
    CICD流水线
    Oracle 用户 profile 属性
    蛋白质深度学习
    大数据-Hadoop部署模式
  • 原文地址:https://blog.csdn.net/weixin_39563769/article/details/134273187