TCP BBR算法学习笔记(1)

2016-12-22  本文已影响0人  Chinainvent

(本篇文章主要是给自己以后看,协助记忆,不会过于在意菜鸟读者是否能够完全读懂)

TCP BBR的ACM论文中,开篇就引入了图1,以此来说明BBR算法的切入点:

图1

为了理解这张图花了我整整一个晚上的时间,它使我重新审视了所有基础概念,而我以下的讨论对于TCP定义的RTT、带宽、Inflight data都作了简化,从而使讨论更易于满足物理直觉,但又不影响最终结论。

为了便于讨论,先引入形式符号。当我们使用TCP从A端到B端传输数据时,A与B间的网络链路是复杂的并且是动态变化的,但我们可以把A到B的网络想象成一段黑盒链路,这条链路有以下物理属性:

仅有物理属性还不够,在实际应用中我们最关心的是TCP链接的两个真实属性:

我再啰嗦一句:TCP BBR协议定义的带宽(delivery rate)与我们的直觉不一样,它的定义是:

带宽 = 数据量/从发送出去至收到ACK的时长

而我们的直觉是:数据穿过网线的速度

为了利于的直觉想象,本文使用T来代替RTT,使用R来代替delivery rate,下文的所有概念也一样作为简化,请注意!

此外,为了定量分析T与R,再引入一个概念:

有了以上定义,很自然就有了以下3个式子:

由以上3式可得:

  1. T/S >= 1/BtlBw
  2. R/S <= 1/RTprop

1,2两式就是图中两个斜率(slope)的由来。

有了上面的讨论,就可以较为轻松地理解上半图与下半图的物理意义了:

上半图

下半图

由此就可以解答这两个问题了:

因为基于丢包探测的算法总会使inflight的数据量达到BDP+BtlBufSize这个状态,在现代的路由器中由于缓存很大,相当于把物理链路人为的拉长了,使数据传输的延时变大,即RTT变大。

BBR算法不再基于丢包探测,而是努力去估算BDP和RTprop,从而使RTT向它的物理极限RTprop靠近,从而减少传输时延,达到提速TCP的目的。

那么BBR与丢包探测算法的共同点在哪里?——它们都试图使链路的带宽趋于它的物理极限:BtlBw。

上一篇 下一篇

猜你喜欢

热点阅读