AIMD CUBIC 在实际网络有效的原因

既然 BBR 在实际网络中失效,那么 AIMD,CUBIC \text{AIMD},\text{CUBIC} AIMDCUBIC 在实际网络中表现如何,答案是它非常有效,本文说的就是这,大多数情况下, AIMD \text{AIMD} AIMD BBR \text{BBR} BBR 反方向走,就知道了原因。

BBR \text{BBR} BBR 的纯模型驱动不同, CUBIC,RENO \text{CUBIC},\text{RENO} CUBICRENO AIMD \text{AIMD} AIMD 算法在数学上天然契合自相似流量的统计特性,其有效性并非源于对网络状态的精确预测,而是用指数分布削掉了帕累托的重尾。

实际流量服从帕累托分布 P [ X > x ] ∝ x − α P[X\gt x]\propto x^{−\alpha} P[X>x]xα α < 2 \alpha\lt 2 α<2 时方差无穷大, BBR \text{BBR} BBR 的估计带宽依赖样本均值的收敛,而 AIMD \text{AIMD} AIMD 不依赖任何统计矩估计。

AIMD \text{AIMD} AIMD 机制构成了一个自调节马尔可夫链,其稳态分布不依赖于输入流量的矩结构,无论背景流量是理想指数分布还是重尾, AIMD \text{AIMD} AIMD 稳态窗口期望值满足:

E [ W ] ∝ 1 p E[W]\propto \sqrt{\dfrac{1}{p}} E[W]p1

这一结果仅依赖于丢包率 p p p ,完全不依赖于流量分布方差,因此,帕累托重尾导致的无穷方差问题对 AIMD \text{AIMD} AIMD 的稳态行为没影响。

BBR \text{BBR} BBR 需要估计 B max ⁡ B_{\max} Bmax R T T min ⁡ RTT_{\min} RTTmin,其估计误差方差在自相似流量下以 T 2 H − 1 T^{2H−1} T2H1 发散, AIMD \text{AIMD} AIMD 则规避了这问题。

AIMD \text{AIMD} AIMD 带宽利用率由稳态吞吐量决定:

λ = E [ W ] R T T \lambda=\dfrac{\text{E}[W]}{RTT} λ=RTTE[W]

由于 E [ W ] \text{E}[W] E[W] 仅由丢包率决定, AIMD \text{AIMD} AIMD 的吞吐估计不存在方差发散问题。

在数学上,$\text{AIMD} 窗口序列 W n {W_n} Wn 是一个马尔可夫链,当这个马尔可夫链满足一定的遍历性条件时,它存在一个唯一的平稳分布,记为 π \pi π

AIMD \text{AIMD} AIMD 显然满足,因为它会在一个有限的状态空间内不可约地转移。一旦系统达到稳态,任意时刻 n n n 的窗口 W n W_n Wn 都服从这个相同的分布 π \pi π。 根据方差的定义:

Var ( W n ) = E [ W n 2 ] − ( E [ W n ] ) 2 \text{Var}(W_n)=\text{E}[W_n^2]−(\text{E}[W_n])^2 Var(Wn)=E[Wn2](E[Wn])2

因为 W n W_n Wn 的分布 π \pi π 不随时间 n n n 改变,所以它的一阶矩都是固定常数,由于 E [ W ] \text{E}[W] E[W] 是常数 ∼ 1 p \sim\sqrt{\dfrac{1}{p}} p1 ,因此, Var ( ⋅ ) \text{Var}(\cdot) Var() 是常数。

这一方差与 H H H 无关,高 Hurst \text{Hurst} Hurst 参数仅使 AIMD \text{AIMD} AIMD 窗口波动在时间上更持久,但不改变其波动幅度,因此, AIMD \text{AIMD} AIMD 不会因长程依赖而产生系统性的过冲或欠冲。

再看多流竞争下的公平性。

N N N AIMD \text{AIMD} AIMD 流共享瓶颈的场景中,每个流的窗口更新为:

W i ( t + 1 ) = β W i ( t ) 当 ∑ j = 1 N W j ( t ) > C ⋅ R T T W_i(t+1)=\beta W_i(t)\quad 当 \sum_{j=1}^N W_j(t)\gt C\cdot RTT Wi(t+1)=βWi(t)j=1NWj(t)>CRTT

丢包事件为所有流提供了等价信号,在 AQM \text{AQM} AQM 和链路容量共同约束下,所有流等价 MD \text{MD} MD,这机制数学上保证了:

lim ⁡ ⁡ t → ∞ W i ( t ) W j ( t ) = 1 \lim⁡_{t\to\infty}\dfrac{W_i(t)}{W_j(t)}=1 limtWj(t)Wi(t)=1

这一收敛性不依赖于流量的自相似性,即使背景流量具有 H = 0.95 H=0.95 H=0.95 的极端 $\text{LRD},丢包事件仍然提供了确定性的负反馈,使系统始终被拉回公平点。

$\text{BBR} 试图显式测量 R T T min ⁡ RTT_{\min} RTTmin 来避免 bufferbloat \text{bufferbloat} bufferbloat,但在自相似流量下这一测量失效, AIMD \text{AIMD} AIMD 则通过丢包作为缓冲区溢出的终极信号来隐式控制队列,当 buf_size ≫ BDP \text{buf\_size}\gg \text{BDP} buf_sizeBDP 时, AIMD \text{AIMD} AIMD 的稳态队列长度为:

E [ Q ] ≈ E [ W ] 2 ∝ 1 p \text{E}[Q]\approx\dfrac{\text{E}[W]}{2}\propto\sqrt{\dfrac{1}{p}} E[Q]2E[W]p1

这一队列长度与缓冲区大小无关,只要缓冲区足够容纳 E [ W ] \text{E}[W] E[W] 个数据包, AIMD \text{AIMD} AIMD 就会通过丢包将队列稳定在 O ( p − 1 ) O(\sqrt{p^{-1}}) O(p1 ) 量级。

相比之下, BBR \text{BBR} BBR 迷信测试而缺乏负反馈,在大缓冲区下会持续填充至 2 × BDP 2\times\text{BDP} 2×BDP 甚至更多。

最重要的是 AIMD \text{AIMD} AIMD 的数学上的有界性。

AIMD \text{AIMD} AIMD 窗口过程的稳态分布具有指数尾部,而非帕累托重尾:

P [ W > x ] ∼ e − c x P[W\gt x]\sim e^{−cx} P[W>x]ecx

这意味着即使输入流量具有无穷方差的帕累托特性, AIMD \text{AIMD} AIMD 窗口分布仍然轻尾,所有矩都存在,这是 AIMD \text{AIMD} AIMD 在重尾环境中保持稳定的根本数学保证。

以下简单推导这事。

考察窗口在极大值 x x x 附近的稳态概率 P ( x ) P(x) P(x),在 AIMD \text{AIMD} AIMD 中,要到达一个极大的窗口状态 x x x ,只有唯一的路径:

  • 系统必须在前一个 R T T RTT RTT 处于状态 x − α x−\alpha xα,假设 α = 1 \alpha=1 α=1,即 x − 1 x−1 x1
  • 在下一个 R T T RTT RTT 没有发生丢包,其概率为 1 − p 1−p 1p

如果前一个状态是 x x x 且发生了丢包,它会跳到 β x \beta x βx,远小于 x x x,如果前一个状态是 x + 1 x+1 x+1 且没丢包,它会变成 x + 2 x+2 x+2,因此,没有任何其他状态能直接转移到 x x x

根据稳态下的概率守恒,到达 x x x 的概率流等于从 x x x 离开的概率流:

P ( x ) = P ( x − 1 ) × ( 1 − p ) P(x)=P(x−1)\times(1−p) P(x)=P(x1)×(1p)

这是一个极其简单的等比数列递推:

P ( x ) = ( 1 − p ) P ( x − 1 ) P(x)=(1−p)P(x−1) P(x)=(1p)P(x1)

P ( x ) = ( 1 − p ) 2 P ( x − 2 ) P(x)=(1−p)^2P(x−2) P(x)=(1p)2P(x2)

P ( x ) = ( 1 − p ) x P ( 0 ) P(x)=(1−p)^xP(0) P(x)=(1p)xP(0)

利用自然对数底数 e e e 进行换底:

( 1 − p ) x = e x ln ⁡ ⁡ ( 1 − p ) = e − [ − ln ⁡ ⁡ ( 1 − p ) ] x (1−p)^x=e^{x\ln⁡(1−p)}=e^{−[−\ln⁡(1−p)]x} (1p)x=exln(1p)=e[ln(1p)]x

令衰减常数 λ = − ln ⁡ ⁡ ( 1 − p ) > 0 \lambda=−\ln⁡(1−p)\gt 0 λ=ln(1p)>0,我们得到:

P ( x ) = P ( 0 ) e − λ x P(x)=P(0)e^{−\lambda x} P(x)=P(0)eλx

这意味着,稳态概率密度函数 P ( x ) P(x) P(x) 随窗口大小 x x x 呈指数衰减,这就干掉了重尾。

来看 λ = − ln ⁡ ⁡ ( 1 − p ) > 0 \lambda=−\ln⁡(1−p)\gt 0 λ=ln(1p)>0 的物理意义, p p p 越大, λ \lambda λ 越大,意味着指数衰减得越快,越陡峭。这很容易理解,如果丢包率 p p p 很高,说明网络拥堵,这时稍微把窗口 x x x 调大一点,触发丢包的概率就极高,因此,系统根本不敢把窗口维持在很高的状态,大窗口出现的概率会断崖式下降。

正确的事总有同归的殊途,下面看基于连续流体近似(Fluid Model)模型下如何描述这事。

我的目标是求稳态下窗口处于极大值 w w w 的概率密度 f ( w ) f(w) f(w)。在稳态下,对于任意一个极高的窗口值 w w w ,流入 w w w 的概率流必须等于流出 w w w 的概率流。

流入 w w w 的唯一的方式是从 w − d w w−\text{d}w wdw 线性增长过来,所以单位时间内流入 w w w 的概率流为 Inflow = α f ( w ) \text{Inflow}=\alpha f(w) Inflow=αf(w) 而流出 w w w 的唯一的方式是触发丢包,单位时间内从 w w w 离开的概率流为 Outflow = p f ( w ) \text{Outflow}=pf(w) Outflow=pf(w)

考虑窗口 W W W 超过极高阈值 w w w 的概率 $\overline{F}(w) 的衰减,看累积概率 F ‾ ( w ) = P r ⁡ ( W > w ) \overline{F}(w)=P_r⁡(W\gt w) F(w)=Pr(W>w) 的变化。

在流体模型(非严格和精确意义,我只是为了推导出指数衰减,而不是要算具体衰减率)中,稳态下大于 w w w 的概率 F ‾ ( w ) \overline{F}(w) F(w) 满足以下经典的 AIMD \text{AIMD} AIMD 流体方程:

α d F ‾ ( w ) d w = − p F ‾ ( w ) \alpha\dfrac{\text{d}\overline{F}(w)}{\text{d}w}=-p\overline{F}(w) αdwdF(w)=pF(w)

解它:

F ‾ ( w ) = C ⋅ e − p α w \overline{F}(w)=C\cdot e^{−\frac{p}{\alpha}w} F(w)=Ceαpw

由于 f ( w ) = − d F ‾ ( w ) d w f(w)=−\dfrac{\text{d}\overline{F}(w)}{\text{d}w} f(w)=dwdF(w),所以:

f ( w ) ∝ e − p α w f(w)\propto e^{−\frac{p}{\alpha}w} f(w)eαpw

意思是, AIMD \text{AIMD} AIMD 窗口的稳态分布呈严格的指数衰减,衰减率 λ = p α \lambda=\dfrac{p}{\alpha} λ=αp,如果考虑更精确的积分流体模型,衰减率会修正为 λ = − ln ⁡ ⁡ ( 1 − p ) α \lambda=\dfrac{−\ln⁡(1−p)}{\alpha} λ=αln(1p),即与上述殊途同归。 这是另一种削掉重尾的解释。

裤衩子锁着边儿,而且绣着花儿。

综上:

  • t e x t A I M D text{AIMD} textAIMD 稳态窗口仅依赖丢包率;
  • MD \text{MD} MD 提供分布式共识,公平手链;
  • 隐式丢包负反馈控制队列有界;
  • 窗口稳态分布为指数尾,削掉重尾;

AIMD \text{AIMD} AIMD 的有效性在于它的反馈控制结构天然免疫于自相似流量的病理,帕累托重尾,高 Hurst \text{Hurst} Hurst,长程依赖这些使 BBR \text{BBR} BBR 的开环估计崩溃的因素,对 AIMD \text{AIMD} AIMD 的闭环反馈机制几乎没有影响 AIMD \text{AIMD} AIMD 用丢包这一个标量信号,替代了 BBR \text{BBR} BBR 需要精确估计的整个网络状态空间,这种信息压缩正是其在实际网络中保持稳定有界的数学本质。

必须要说的是,我平时说的 BBR,CUBIC,AIMD \text{BBR},\text{CUBIC},\text{AIMD} BBRCUBICAIMD 并非 TCP \text{TCP} TCP 的特定概念,它们属于一个更大的范畴,比如主流 RDMA ( RoCEv2 ) \text{RDMA}(\text{RoCEv2}) RDMA(RoCEv2) 标准拥塞控制 DCQCN \text{DCQCN} DCQCN 核心就是 AIMD \text{AIMD} AIMD,而部分 RDMA \text{RDMA} RDMA 算法则不使用 AIMD \text{AIMD} AIMD

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值