美文网首页转载部分视觉艺术
网络协议(九)-传输层(拥塞控制)

网络协议(九)-传输层(拥塞控制)

作者: 小冰山口 | 来源:发表于2020-11-26 00:03 被阅读0次

    以下内容来自于小码哥"网络协议从入门到底层原理"

    image.png
    • 拥塞控制
      -- 防止过多的数据注入到网络中
      -- 避免网络中的路由器或链路过载

    • 拥塞控制是一个全局性的过程
      -- 涉及到所有主机, 路由器
      -- 以及与降低网络传输性能有关的所有因素
      -- 是大家共同努力的结果

    • 相比而言, 流量控制是点对点通信的控制

    TCP-拥塞控制-方法
    • 慢开始(slow start, 慢启动)

    • 拥塞避免(congestion avoidance)

    • 快速重传(fast retransmit)

    • 快速恢复(fast recovery)

    • 几个缩写
      -- MSS(Max Segment Size): 每个段最大的数据部分大小
      ✅在建立连接时确定

    -- rwnd(receive window): 接收窗口

    -- cwnd(congestion window): 拥塞窗口

    -- swnd(send window): 发送窗口
    swnd = min(cwnd, rwnd)

    TCP-拥塞控制-慢开始
    image.png image.png
    • cwnd的初始值比较小, 然后随着数据包被接收方确认(收到一个ACK)
      -- cwnd就成倍增长
    TCP-拥塞控制-拥塞避免
    image.png
    • ssthresh(slow start threshold): 慢开始阈值, cwnd达到阈值后, 以线性的方式增加
    • 拥塞避免(加法增大): 拥塞窗口缓慢增大, 以防止网络过早出现拥塞
    • 乘法减小: 只要网络出现拥塞, 把ssthresh减半, 于此同时, 执行慢开始算法(cwnd又恢复到初始值)
    TCP-拥塞控制-快重传
    • 接收方
      -- 每收到一个失序的分组后就立即发出重复确认
      -- 使发送方及时知道分组没有到达
      -- 而不是等待自己发送数据时才进行确认
    image.png
    • 发送方
      -- 只要连续收到三个重复确认(总共4个相同的确认), 就应当立即重传对方尚未收到的报文段
      -- 而不必继续等待重传计时器到期后再重传
    TCP-拥塞控制-快重传 + 快恢复
    image.png
    TCP-拥塞控制-快恢复
    • 当发送方连续收到三个重复确认, 就执行"乘法减小"算法, 把ssthresh减半
      -- 与慢开始不同之处是现在不执行慢开始算法, 即cwnd现在不恢复到初始值
      -- 而是把cwnd值设置为ssthresh减半后的数值
      -- 然后开始执行拥塞避免算法("加法增大"), 使拥塞窗口缓慢地线性增大
    TCP-拥塞控制-发送窗口的最大值
    • 发送窗口的最大值: swnd = min(cwnd, rwnd)
    • rwnd < cwnd时, 是接收方的接收能力限制发送窗口的最大值
    • cwnd < rwnd时, 是网络的拥塞限制发送窗口的最大值

    相关文章

      网友评论

        本文标题:网络协议(九)-传输层(拥塞控制)

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