BBR 到底有什么不一样,还是要看它的 论文
在这里插入图片描述
首先,引用的那篇 Jeffrey M Jaffe 在 1981 年的论文 Flow Control Power is Nondecentralizable 证明分布式算法无法收敛到 maxbw 和 minrtt 的最佳操作点(这也是 BBR 的理论操作点),至少在理论上 BBR 就不应以 AIMD 类似的方式启发公平性,应向别处看。

其次,上图引述第二段,BBR 几乎完全来自实践经验,通过分析实际流量获得与 Jafffe 理论证明所不同的认知。

最终,通过对实践数据的进一步分析,形成一套全新的,通过不断测量 bw 和 rtt,对拥塞进行直接反应的 BBR 算法,该算法不保证绝对收敛到 maxbw 和 minrtt 的操作点,但仍在统计意义上以很高的概率部分收敛。

总结起来就是统计实线。

以上概述就是 BBR 的与众不同之处,这也是我说 BBR 没有理论基础的原因。

BBR 与 cubic 等 AIMD 算法相比,它不存在公平收敛所必须付出的代价,无需为丢包事件无条件激烈反应,它的参数在实践中调制,在特定环境中,总体表现 OK。

BBR 和 vegas 等 delay-based 算法相比,它内在的有限状态机保护其不被实际测量结果无条件控制,例如,BBR 周期性 probe up 保证自身不会被 AIMD 算法无限抢占。

BBR 和 AIMD 算法以及 delay-based 算法共存从大的方面看没有问题,问题总在细节。

如果整个互联网只有一类算法,因为所有的流量遵循一致至少类似的原则,公平收敛就不是问题,并且可以证明,只要流足够多,整体带宽利用率接近 100%。但有趣的是,各类算法总是优先照顾同类公平性,异类公平性总是作为补充存在。但最难的偏偏是异类算法之间公平性。BBR 在这方面有些不一样。

简单说,把 BBR 看作加了引擎的 vegas 是合适的,相比之下,vegas 更像是一叶扁舟或者滑翔机,完全被外界推着走,RTT 大了就减速,RTT 小了就加速,自身却没有能动性,显然一旦和 AIMD 算法共存,必然会被挤压。

BBR 通过更加精准的测量 delivery rate 反馈,实现了 vegas 类似但更精确的效果,但测量过程却被包含在自身的状态机转换的过程中,其中周期性 probe up 可以夺回被 AIMD 挤压的带宽,这在一定程度上屏蔽了 AIMD 算法对自身的影响。

BBR 直接对拥塞进行反应,那么何以定义拥塞?有点无级变速的意思。所以 BBR 的公平性能否根据所承载业务的 QoE 来定义值得讨论。

联想高速公路或城市快速路上在不堵车时的车流,有的快有的慢,车速并不公平,但每个人都很满意,这就是 QoE 公平。快速路道路没有任何理论上的公平收敛原则,每辆车之间也互不沟通,但在整个分布式空间,却形成了自组织的 QoE 统计公平,这和 BBR 算法如出一辙。

驾驶汽车,前面空了就一脚油门,前面刹车灯亮了就减速,偶尔会有急躁的司机变道超车,也会有追尾,但都不是大问题,只要司机目视测速准确,一切就井然有序。即使下班高峰车流量巨大,也是同步缓慢前行,但不会停驻。但目标永远不是车速的公平,而是都很满意。

即使考虑车速公平(类比带宽公平),高速/快速路也能高概率自组织收敛,速度太慢的汽车加速空间非常大,它有很大的概率会被加速,而本来就很快的汽车加速的空间很小,它有更大的概率会减速,最终大家的速度虽然不保证绝对公平,但几乎不会相差太多,从统计分布上看,曲线将非常高且瘦,BBR 收敛到这种情况已经非常 OK,我曾经用 buffer 加速比分析过这一段,不再赘述。

现代高速网络中,BBR 的这种高效的分布式自组织 QoE 公平以及高概率但不绝对的带宽公平(converges with high probability to Kleinrock’s optimal operating point),才是真正现代的拥塞控制算法的特质。我在前一篇文章说到资源越匮乏,绝对公平越有意义,就是这个意思。

然而,很多人却把 BBR 当成了传输加速的手段。

全局拥塞控制和传输加速,根本是两件事。但很遗憾,互联网作为一个全局资源池,更需要均衡调度资源,而不是为单流加速。加速是硬件升级的结果,而不是软件结果,但凡采用软件手段进行加速的行为(不靠更好的路,却靠加塞的技术),与拥塞控制相反,为抓取更多带宽而破坏均衡,这是在制造拥塞。

最后,按照 BBR 的实践经验,多少连接样本才能刻画出精确的链路画像,以此为基准调节 BBR 参数,有必要开发一个管理面搜集大数据进行分析吗,谁知道呢… 和 cubic 一样,找出统计期望附近的参数作为缺省值。

和 cubic 同一组参数在统计意义上足够可接受不同,BBR 却可千人千面,理论上,每一组 source/destination 二元组都对应一组最优参数。而 cubic 由于 AIMD 的收敛代价,带宽溢价太大,统计期望便比千人千面更有意义。

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

Logo

纵情码海钱塘涌,杭州开发者创新动! 属于杭州的开发者社区!致力于为杭州地区的开发者提供学习、合作和成长的机会;同时也为企业交流招聘提供舞台!

更多推荐