• BBR 公平收敛


    BBR 的公平收敛来自于两点:

    • ProbeBW 状态加速比收敛:带宽越大,加速比越小。
    • ProbeRTT 状态 RTT 收敛:inflight 越大,越容易让 inflight 小的测到 minrtt 而避免进入 ProbeRTT,inflight 越小,测量 minrtt 偏大,趋向更大 inflight。

    详情参见:有趣的TCP BBR ProbeRTT行为点滴
    但还是复杂了,写个简单的解释。

    排队论模型,排队时间为: T = 1 / ( μ − λ ) T=1/(μ−λ) T=1/(μλ) ,T 作为 RTT 的一部分,λ 为 Pacing Rate, μ 为Delivery Rate, μ 一定,作图如下:
    在这里插入图片描述
    这是双曲线的一支。

    ProbeBW 加速比描述为增加单位 inflight 带来 Delivery Rate 的增量。inflight 在排队系统描述为排队时间 T 的线性函数,则加速比即该曲线的斜率,很明显,斜率是递增的。

    若排队时间一定, μ 和 λ 是线性关系。在排队系统中,多流排队时间相同,所以:

    • inflight 越大,增加相同 inflight 带来的 Delivery Rate 增益越小,趋向公平。

    收敛图如下:
    在这里插入图片描述
    这个结论套用了排队理论公式,但直接从 BBR 原理图也能殊途同归。

    先看理想情况:
    在这里插入图片描述
    考虑下图,盗自 单流 TCP 100Gbps+ 难题的直观解释
    在这里插入图片描述
    ​所以事情真相是:
    在这里插入图片描述
    DeliveryRate/inflt 曲线一定上凸,这一点从以上 “处理时间/到达时间” 图中看出:inflt 增加,排队概率增加,由于钟形分布对称,净损耗率增加,吞吐增益减少。

    若不易直观看出,可想象排列组合,1 个 inflt 只能有一种到达方式,带来 1 个增益,2 个 inflt 在 2 个时间槽可排 (0, 2),(1, 1) 两种,凡是带有 0 的组合,都有浪费的周期,3 个 inflt 在 3 个时间槽可排 (3, 0, 0),(2, 1, 0),(1, 1, 1),随着 inflt 增加,“到达模式” 中全 1 的满载槽占比减少,分别为 1/1,1/2,1/3,1/4,1/5 …

    同理,RTT/inflt 曲线一定是下凸。最终拟合两张图,得到右图,与排队论公式描述一致。

    核心在于 DeliveryRate/inflt 上凸曲线和 RTT/inflt 下凸曲线是普适的,反而 BBR 只是一个特例,这就是排队系统的直观解释。

    有了该图,看图说话就行,公平收敛结论和基于排队论公式的结论一致。

    下面是上图一个拟合示例:
    在这里插入图片描述
    浙江温州皮鞋湿,下雨进水不会胖。

  • 相关阅读:
    一文读懂在Postgresql数据库中进行窗口函数的操作
    FastJson2.0介绍和使用
    沙盘游戏咨询感悟
    音频数据分析注意事项
    MaxCompute 基本概念与术语
    【飞控开发基础教程3】疯壳·开源编队无人机-串口(基础收发)
    电子签名如何制作——word
    C++ 图解二叉树非递归后序 + 实战力扣题
    Linux系统 SSHD服务安全优化方案
    【数据库原理及应用】——数据库设计(学习笔记)
  • 原文地址:https://blog.csdn.net/dog250/article/details/128128806