![cover](https://img-blog.csdnimg.cn/a244b891b8084dc4b028419b66dcd3e6.png)
漫话拥塞控制:BBR
即使考虑车速公平(类比带宽公平),高速/快速路也能高概率自组织收敛,速度太慢的汽车加速空间非常大,它有很大的概率会被加速,而本来就很快的汽车加速的空间很小,它有更大的概率会减速,最终大家的速度虽然不保证绝对公平,但几乎不会相差太多,从统计分布上看,曲线将非常高且瘦,BBR 收敛到这种情况已经非常 OK,我曾经用 buffer 加速比分析过这一段,不再赘述。驾驶汽车,前面空了就一脚油门,前面刹车灯亮
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 的收敛代价,带宽溢价太大,统计期望便比千人千面更有意义。
浙江温州皮鞋湿,下雨进水不会胖。
更多推荐
所有评论(0)