美文网首页
拥塞控制的基本方法

拥塞控制的基本方法

作者: iOS之文一 | 来源:发表于2021-11-30 13:39 被阅读0次

计算机网络系列文章汇总

介绍

在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞。

可以通过拥塞控制方法来进行控制,控制的是发送窗口的大小,也就是一次性可以发送多少字节,如果趋向于拥塞,就少发送,如果不发生拥塞,就多发送。

拥塞的危害:
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

拥塞的危害.png

拥塞控制

准备条件

原理:
根本原理是当拥塞发生时就将发送窗口减小,当没有发生拥塞时就将发送窗口增大,而是否发生拥塞是通过是否发送超时重传决定的。

假定条件:

  • 数据是单方向传送,而另一个方向只传送确认。
  • 接收方总是有足够大的缓存空间,因而发送方发送窗口的大小由网络的拥塞程度来决定的,避免接收方所决定的发送窗口干扰。
  • 以最大报文段MSS的个数为讨论问题的单位,而不是以字节为单位

概念:

  • cwnd为拥塞窗口: 也就是此时的发送窗口
    • 在慢开始算法时呈指数增长
    • 拥塞避免算法时+1线性增长
  • 慢开始门限ssthresh:
    • cwnd>ssthresh时,进行慢开始算法
    • cwnd<ssthresh时,开始拥塞避免算法
    • cwnd==ssthresh时,都可以
  • swnd发送窗口:
    • 在这个场景中就固定=cwnd

算法认识

慢开始算法(slow-start)

慢开始算法.png

说明:

  • 可以看到慢开始门限设置为16,cwnd在到达16前需要指数增长
  • 当传输轮次为0时,起始位置为1
  • cwnd = 2^(n-1),n为传输轮次

拥塞避免算法

拥塞避免算法.png

说明:

  • 思路:让拥塞窗口 cwnd 缓慢地增大,避免快速出现拥塞。
  • 每经过一个传输轮次,拥塞窗口 cwnd = cwnd + 1。

快重传

有个别报文段在网络中丢失,但是实际上网络并未发生拥塞,此时的发送方超时重传会导致网络误以为发生了拥塞并启动拥塞控制算法,这样就降低了发送效率。因此需要采用快重传。

原理: 快重传算法的根本原理就是让发送方尽早知道发生了个别报文段的丢失,而不需要启动超时重传机制

作用: 提高了传输效率,快重传可以使整个网络的吞吐量提高约20%

快重传.png

说明:

  • 要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认
  • 即使受到了失序的报文段也要立即发出对已收到的报文段的重复确认
  • 发送方一旦受到3个连续的重复确认,就将相应的报文段立即重传
    • 这样就不需要等到超时机制触发后进行重传
    • 也就不会进行拥塞控制了

快恢复

在快重传后如何进行拥塞窗口的控制呢?
发送方一旦受到3个重复确认报文,就知道现在只是丢失了个别的报文段,而不是发生了拥塞,所以就启动快恢复算法。

算法过程:

  • 发送方将慢开始门限ssthresh值和拥塞窗口cwnd值调整为当前窗口的一半
  • 并开始执行拥塞避免算法

拥塞控制的过程

拥塞控制有两种,一种是超时重传后进入到慢开始阶段,一种是收到3个重复确认报文后开始的快恢复阶段。

超时重传

超时重传.png
快恢复的控制
快恢复的控制.png

过程说明:
1、首先进行慢开始算法,cwnd指数增长
2、一直增长到cwnd>=ssthreesh,也就是达到了慢开始门限阈值,开始进行拥塞避免算法
3、拥塞避免算法是cwnd+1
4、当发生超时重传时,cwnd=1,ssthresh = cwnd/2 = 12
5、此时继续进行慢开始算法,指数增长
6、cwnd达到12后开始拥塞避免算法,cwnd = cwnd+1
7、当cwnd = 16时,收到3个重复确认,此时就需要进行快重传
8、快重传就是ssthresh = cwnd/2 = 16/2 = 8,而cwnd = ssthresh
9、在这个基础上继续开始快恢复。这里的快恢复直接就开始了拥塞避免算法

相关文章

  • 2.2IP/ATM QoS控制技术

    协议栈分层、QoS保障技术(流量控制,拥塞控制的基本方法)QoS的基本概念(网络性能参数)流量控制与拥塞控制的基本...

  • 拥塞控制的基本方法

    计算机网络系列文章汇总[https://www.jianshu.com/p/a935e81eeaf2] 介绍 在某...

  • 网络复习-笔记07-传输层(3)

    拥塞控制原理 在学习TCP拥塞控制之前,首先看看拥塞控制的基本原理拥塞控制非正式定义:“太多发送主机发送了太多数据...

  • TCP/IP详解

    流量控制与拥塞控制 流量控制 拥塞控制

  • 2018-07-11

    tcp的运输控制分为tcp流量控制和tcp拥塞控制,这里先讲tcp的拥塞控制。 为了讲清楚tcp的拥塞控制,还是利...

  • 拥塞控制算法对比

    RENO(经典的tcp拥塞控制): 基于丢包的拥塞控制. 分为 慢启动, 拥塞避免, 快速恢复, 快速重传...

  • 拥塞控制和流量控制

    滑动窗口的解释: 拥塞控制窗口+慢启动+拥塞控制算法=拥塞控制 TCP特性使得每个TCP连接可以得到均等的带宽。在...

  • 实时通讯中拥塞控制算法

    拥塞控制算法分类 基于丢包(loss rate)的拥塞控制算法例如TCP中早期的拥塞控制算法Reno, 会带来较高...

  • 浅谈TCP拥塞控制算法

    TCP通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的原则是,只要网络中没有出现拥塞,拥塞窗口的值就可以再增大一些,...

  • TCP Tahoe协议

    TCP Tahoe协议是TCP最早的TCP拥塞控制版本,主要包括三个机制用于控制拥塞窗口:慢启动、拥塞避免和快速重...

网友评论

      本文标题:拥塞控制的基本方法

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