Tcp拥塞控制算法入门:分类及介绍( Reno bic Cubic vegas Bbr)

目录

一、Tcp拥塞控制算法的发展历程及种类

二、Reno算法

三、bic算法、Cubic算法

3.1bic算法

3.2Cubic算法

四、vegas算法

五、Bbr算法


本文介绍了一些基础的拥塞控制算法,欲了解更多,请查看新的博客:

(11条消息) 拥塞控制算法总结_爱嘤嘤嘤斯坦i的博客-CSDN博客

一、Tcp拥塞控制算法的发展历程及种类

有以下几种类型的分类:

  1. 基于丢包的拥塞控制:将丢包视为出现拥塞,采取缓慢探测的方式,逐渐增大拥塞窗口,当出现丢包时,将拥塞窗口减少,如Tahoe、RenoBIC-TCP、Cubic等;
  2. 基于时延的拥塞控制:将时延增长视为出现拥塞,延时增长时增大拥塞窗口,延时减少时减少拥塞窗口,如Vegas、Westwood等;
  3. 基于链路容量的拥塞控制:实时测量网络带宽和时延,认为网络上报文总量大于带宽时延乘积时出现了拥塞,如BBR
  4. 基于学习的拥塞控制:没有特定的拥塞信号,而是借助评价函数,基于训练数据,使用机器学习的方法造成一个控制策略,如Remy。

二、Reno算法

课本上的四个阶段:慢启动阶段、拥塞避免阶段、快重传阶段、快速恢复阶段。就是reno算法

下面这个链接详细介绍了这四个过程

https://www.cnblogs.com/MnHoy/p/16369215.html

 基础核心概念: 

补充:补充一些核心概念,参考自如下文章

https://blog.csdn.net/dog250/article/details/51439747#comments_20896403

先介绍了一下慢启动,ssthresh,拥塞避免。Ack确认,拥塞是怎么搞的,以及为什么每次拥塞之后窗口要设为一半。

然后介绍了一下慢启动的hystatr优化

ssthresh的快速穿越问题

AIMD的公平性收敛:降窗比率和RTT,两个因素会主要影响两个共享链路的tcp的带宽。

三、bic算法Cubic算法

BIC和CUBIC的慢启动、快速重传恢复阶段与Reno相同。不同在于拥塞避免阶段。Reno是线性的(每个rtt增加1),bic是二分,cubic是三次函数

3.1bic算法

二分查找的思想

https://www.likecs.com/show-305496303.html

稳定拥塞避免阶段(Steady State)和空闲资源探测阶段(Max Probing)

3.2Cubic算法

锯齿状?

其窗口增长仅取决于两个连续拥塞事件之间的时间。窗口增长与RTT无关。

四、vegas算法

时延增加:说明路由器交换机开始排队了,此时降窗,保证了公平性

时延降低:说明路由器交换机的排队正在缓解,可以适当增窗,保证带宽满负荷

出现丢包:重传丢包,不调整窗口,因为算法过程完全接管窗口调整,丢包与窗口无关

会监控 RTT

会尝试增加发送速率来探测链路带宽

如果丢包或者 RTT 增⼤就降低发送速率

缺点:

CWND 增⻓是线性的,不能很好利⽤⽹络传输速率

不能跟基于丢包的算法共存

五、Bbr算法

QUIC也使用了BBR作为拥塞控制算法。

因为最优带宽和延迟无法同时测量(btlBw的测量会造成存在网络缓存增加RTT,而RTprop的测量要求网络缓存为空),所以分别估计带宽(btlBw)和延迟(RTprop),最后计算出cwnd。同时增加变量pacing rate(btlBw * 增益系数),用于控制发送端的发送速率,以解决发送端突发造成的网络排队问题。

四个状态:

Startup:类似于慢启动,发送大量包

Drain

ProbeBW:探测带宽

ProbeRTT:探测延迟

补充:inflight是指在途数据包数目,即发送方暂时未确认的

了解更多,请查看新的博客:

(11条消息) 拥塞控制算法总结_爱嘤嘤嘤斯坦i的博客-CSDN博客

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值