CUBIC与BBR在广域网中间的竞争

这篇文章主要了描述BBR和CUBIC竞争时会出现的状况的仿真情况,以及会出现这种状况的原因。

首先这里看到仿真的结论:当缓冲区很小时,bbr能够占据优势;而当缓冲区很大时,cubic能占据优势。也就是说,当bbr与cubic发生竞争,能够决定哪一种拥塞控制能够占据优势的因素是缓冲区的大小。

在这里插入图片描述

深究为什么会出现这种情况,应该从BBR和CUBIC的原理讲起。

先看到CUBIC。
CUBIC的核心思想是对对窗口可能的最大值进行二分查找。当前链路在网络上因为排队而发生丢包时,链路的当前最佳拥塞窗口肯定是小于丢包时的拥塞窗口的,我们称丢包时的拥塞窗口大小为Wmax,同样,CUBIC也采用乘法减小的方式减小窗口,将减小后的窗口为Wmin。每收到一个ACK的时候,便将窗口设置到Wmax和Wmin的中点,一直持续到接近Wmax。之后函数会进入探测带宽阶段,按照逼近Wmax的路径倒回去,即采用与之对称的方案。(这里其实是BIC算法的核心思想,CUBIC是基于BIC进行改进的,所以最终呈现的曲线结果来看差别不大)
在这里插入图片描述
最终CUBIC稳定状态之后呈现出来的结果就如图所示:
在这里插入图片描述

但是这里首先要明确的是,cubic是基于TCP拥塞控制算法做出的改进算法。TCP拥塞控制算法的基本逻辑就是首先慢启动阶段,丢包触发拥塞避免。在这之后就是探测剩余带宽,拥塞避免这两个阶段循环。这个时候就认为这个算法已经收敛了。在现在这种定性的分析中,具体这几个阶段是如何实现的反而没有那么重要。
很明显,CUBIC是遵循TCP拥塞控制算法这几大步骤的,是事件驱动型的拥塞控制算法。也就是说只有当缓冲区被填满,丢包事件出现时,CUBIC才能被动地降低发送窗口。

在这里插入图片描述

然后这里看到BBR。BBR是反馈驱动型的拥塞控制机制。它一共包括有如图所示的四个阶段。
第一阶段STARTUP类似于TCP的慢启动。通过指数增加的方式增加发送速率,希望能够快速探测瓶颈带宽。当判断连续三个往返时间带宽的提升不足25%时,表示已经达到了瓶颈带宽,状态切换至DRAIN。
DRAIN阶段存在的意义,是为了排空STARTUP阶段造成的网络缓存,使飞行包的大小等于BDP。
第三个阶段是BBR的稳定阶段,BBR的大部分时间都在该状态。当bbr测量到瓶颈带宽和最小rtt,并且inflight等于BDP后,便开始以一个稳定的匀速维护着网络状态,偶尔小幅提速探测是否有更大带宽,然后再小幅降速公平的让出部分带宽。
最后一个阶段PROBE_RTT。当10s内没有发现最小RTTProp时,就会进入这个阶段。在这个阶段内BBR的发送窗口会被固定为4个包,从而排空链路上的数据包,测量真实的RTT。
在这里插入图片描述
BBR的核心机制如这个图所示。在不断的探测带宽与探测RTT中间达到收敛。BBR的大部分时间也就处于这两个阶段之间。

在这里插入图片描述

那么,当BBR和CUBIC发生竞争时动态过程分析应该是这样的:首先CUBIC与BBR共存于共享链路,在瓶颈带宽被占满之后,CUBIC会继续发包填充队列,造成BBR被动排队。由于BBR的被动排队,所以rtt也会显著上升。但是这在短时间内不会影响BBR的发包,因为BBR的测量RTT的是10秒内的最小RTT。也就是说,只要BBR能够坚持10s不划走,CUBIC一旦丢包就会出现乘性减窗。BBR在回复到干净状态的同时也可以迅速占据空闲的带宽,从而达到压制CUBIC的效果。
而相反在另一种情况,如果队列足够深,rtt足够长,足以让CUBIC填充10s还不满时,CUBIC丢包前BBR就退到4个包发送速度了,这反而说CUBIC压制了BBR。

所以这里可以顺理成章地得出结论结论是,浅队列时,CUBIC受BBR的影响比较小,深队列时,BBR会受到CUBIC的影响。

另外,通过仿真,有论文得出了结论:当缓冲区长度为1.5倍的BDP时,CUBIC和BBR可以达到公平的状态。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CubicBBR都是TCP拥塞控制算法,用于在网络中实现拥塞控制和调整发送速率。它们在拥塞控制的策略和机制上有一些区别。 1. 拥塞控制策略: - CubicCubic采用了拟三次函数的增长曲线来调整发送速率。它通过监测网络的拥塞情况并根据RTT(往返时间)估算拥塞窗口大小。Cubic具有慢启动、拥塞避免和快恢复等阶段,通过调整拥塞窗口大小来逐步增加发送速率,并在网络拥塞时快速减少发送速率。 - BBRBBR(Bottleneck Bandwidth and RTT)是一种基于带宽和往返时间的拥塞控制算法BBR通过测量网络链路的带宽和RTT,并根据这些信息来推断网络的可用带宽,以达到最佳的发送速率。BBR的目标是尽可能地充分利用网络带宽,同时避免引入过多的排队延迟。 2. 带宽估计和延迟反馈: - CubicCubic主要通过观察丢包事件来判断网络拥塞,然后相应地调整发送速率。它没有直接的机制来测量带宽和延迟,而是通过拥塞窗口大小的调整来间接反映网络状态。 - BBRBBR使用了延迟和带宽的反馈信息来进行拥塞控制。它通过测量数据包的发送和接收时间以及传输时延,估算网络链路的带宽和RTT。BBR利用这些信息来调整发送速率和拥塞窗口,以实现更高的带宽利用率和更低的延迟。 总体而言,CubicBBR在拥塞控制策略和机制上有所不同。Cubic采用了拟三次函数的增长曲线来调整发送速率,而BBR基于测量的带宽和延迟信息来达到最佳的发送速率。BBR相对于Cubic在某些情况下可以实现更高的带宽利用率和更低的延迟。然而,选择使用哪种算法取决于具体的网络环境和应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值