一张图里看 Reno,CUBIC 和 BBR

我又来说这张图了,但这次它只是引子,不是主角:
在这里插入图片描述

注意到 log scale,这张图与前文分析的 AIMD response curve 异曲同工。

但 BBR 显然导不出 loss rate(即前文的 p) 和 cwnd 的关系,因为 BBR 是基于 BDP 的,而 BDP 与 buffer,丢包无关,它是即时测量值。于是变通一点,给定 BDP,对 inflight 和 p 建模,一种叠加 gain 丢包的方案是:

w = B b d p ( 1 − p ) + min ⁡ ( B b d p ( G g a i n − 1 ) L c y c l e ⋅ ( 1 − p ) p , B b d p ⋅ p ) w=B_{bdp}\left(1-p\right)+\min\left(\frac{B_{bdp}\left(G_{gain}-1\right)}{L_{cycle}}\cdot\frac{\left(1-p\right)}{p},B_{bdp}\cdot p\right) w=Bbdp(1p)+min(LcycleBbdp(Ggain1)p(1p),Bbdpp)

丢包时用 gain 补偿,不需要多解释。给出给动图,p 坐标为对数坐标:
在这里插入图片描述

注意看,是不是与 BBR 论文的图匹配了。

此外,不叠加 gain 丢包以及 叠加一次 gain 的式子如下:

w = B b d p ( 1 − p ) + min ⁡ ( B b d p ( G g a i n − 1 ) L c y c l e , B b d p ⋅ p ) w=B_{bdp}\left(1-p\right)+\min\left(\frac{B_{bdp}\left(G_{gain}-1\right)}{L_{cycle}},B_{bdp}\cdot p\right) w=Bbdp(1p)+min(LcycleBbdp(Ggain1),Bbdpp)

w = B b d p ( 1 − p ) + min ⁡ ( B b d p ( G g a i n − 1 ) L c y c l e ⋅ ( 1 − p ) , B b d p ⋅ p ) w=B_{bdp}\left(1-p\right)+\min\left(\frac{B_{bdp}\left(G_{gain}-1\right)}{L_{cycle}}\cdot\left(1-p\right),B_{bdp}\cdot p\right) w=Bbdp(1p)+min(LcycleBbdp(Ggain1)(1p),Bbdpp)

由于 BBR 及时 drain 掉 queue,它用 gain 补偿丢包也就无可厚非,依赖相对准确的 BDP 测量,BBR 的这种行为并没有超发。

关于 BBR 的说明先到这里,下面看 CUBIC,这次我要导出 CUBIC 的 response function。

观察 CUBIC 的表达式 w ( t ) = C ⋅ ( t − ( 1 − β ) ⋅ W C 3 ) 3 + W w(t)=C\cdot(t-\sqrt[3]{\dfrac{(1-\beta)\cdot W}{C}})^3+W w(t)=C(t3C(1β)W )3+W,只需要计算 w(t) 在 (-K, 0) 的积分即可,然后加上基底面积取倒数,就是丢包率 p,事实上只需要算出双对数坐标下的斜率即可,推导过程麻烦但不复杂,直接给出结果:
在这里插入图片描述

所有的算法都统一到这一个图里了,此外还可以加上 Scalable TCP,HSTCP 等,一张图里看一切。但值得注意的是,BBR 的 inflight 与 p 的关系是随行的,你必须给定一个 BDP 才能讨论,即 BBR 起始位置的 y 坐标就是 BDP,随着 p 的增加,曲线的 y 坐标给出 inflight。

TCP 的响应函数很多做新样式 RDMA 的人都没听过,但却是非常重要的,它直接导出了网络容量和发送窗口之间的关系,而网络容量又由 buffer,rtt,丢包率 共同决定。它对传输协议设计以及拥塞控制算法设计至关重要。本文属于旧事重提,更加详细的阐述还要更多,比如 bbr 的响应函数(由于 bbr 属于主动利用测量数据,不算响应)是什么,它在双对数坐标系里是什么样子,未完待续。当然,等着收礼的卑微 low 逼小经理并不知道我在说什么。

浙江温州皮鞋湿,下雨进水不会胖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值