BBR 会取代 CUBIC 吗?

先说结论:不会。还是那句话,TCP 拥塞控制的问题根本就不是技术问题,而是社会学问题。
先列举一些既证事实。

实验测量事实:

  • BBR vs CUBIC,1 v 1,Buffer 小于一定阈值,BBR 完爆 CUBIC。
  • BBR vs CUBIC,1 v 1,Buffer 超过一定阈值,BBR 不敌 CUBIC。

经济学事实:

  • BBR 收敛需要成本,增加 BBR 流的边际收益递减。
  • CUBIC 收敛需要成本,增加 BBR 流的边际收益递减。

本文简单推演。

假设场景, BBR vs CUBIC,N v N,Buffer 小于阈值,总带宽 C,N 条 BBR 流所占带宽大于 N 条 CUBIC 流所占带宽:

α C > ( 1 − α ) C αC>(1−α)C αC>(1α)C

因此, α > 12 α>12 α>12

式子转换几下:

α N + α > α N − α + 1 \alpha N+\alpha > \alpha N-\alpha+1 αN+α>αNα+1
α > α N − α + 1 N + 1 \alpha>\dfrac{\alpha N-\alpha+1}{N+1} α>N+1αNα+1
α N > α N + ( 1 − α ) N ( N + 1 ) \dfrac{\alpha}{N}>\dfrac{\alpha N+(1-\alpha)}{N(N+1)} Nα>N(N+1)αN+(1α)
α C N > α C + ( 1 − α ) C N N + 1 \dfrac{\alpha C}{N}>\dfrac{\alpha C+\dfrac{(1-\alpha)C}{N}}{N+1} NαC>N+1αC+N(1α)C

来看看最后一个式子的物理意义。

它实际上就是在表达边际收益递减。式子右边就是一个 CUBIC 流叛变加入 BBR 后,新的 BBR 平均带宽。这意味着加入一个叛徒后,新平均带宽竟然变小了。

正式表述为:

现在有一个 CUBIC 切换成 BBR,N+1 v N-1,简单边际收益递减,1 个叛徒带过来的 CUBIC 带宽平分后的份额不足以弥补新加入者带来的收敛成本:
BBR 会取代 CUBIC 吗?_第1张图片
从 BBR 这一边观之,这意味着切换 BBR 的意愿越来越低,且 BBR 存量也不希望再有新的 BBR 加入,蓝海逐渐变红。

现在看 CUBIC 一边。

随着 CUBIC 切换到 BBR,CUBIC 红海逐渐变蓝。

CUBIC 收敛成本随着数量的降低而降低,打个比方,Buffer 大小为 b,N 条 CUBIC 流时,每条流在平均占据 b/N Buffer 时便会收敛,随着 N 的减少,收敛时 Buffer 占据变多了。这等价于,Buffer 变深了。
随着这种等价的 Buffer 变深,总能超过一个阈值,CUBIC 的带宽大于 BBR 的带宽。

BBR 那边的收益在不断减少,CUBIC 这边反而逐渐扳回,总能达到一个平衡点,CUBIC 不再切 BBR,BBR 也不会回退到 CUBIC。

当然,上面的分析太朴素而简陋,我只是简单评说,没有分析 BBR 和 CUBIC 之间的交互动力学。详情请看:

https://conferences.sigcomm.org/events/apnet2021/papers/apnet2021-4.pdf
https://www.comp.nus.edu.sg/~bleong/publications/imc2022-nash.pdf
本文来自周五对一个 BBR 邮件组 issue 的思考:

千般苦,万般难,任何事都要付出代价。

若说为什么 CUBIC 完美取代了 Reno,原因很简单,它们是一类的,CUBIC 本就是 Reno 的升级版。但 BBR 不同,BBR 是另一回事,所以事情就不会那么简单。

BBR 是否会取代 CUBIC,这不就是所有社会学实验的必然结论吗,只是用数学论证一下就是一个paper。社会主义 vs 资本主义,君主立宪 vs 君主专制,麦当劳 vs 肯德基,议会民主 vs 寡头民主… 最终都是异构共存。

本质就是 “边际收益递减”,这是个类似能量守恒一样的真理。

跟同事聊到一个 issue,看了篇论文,周末了,开始写点东西,本文形而上,不过也是经过了些思考。

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

你可能感兴趣的:(网络)