十年前范雅各布森关于bufferbloat的讨论

Source

周末下雨,在家扒拉了几篇10年前的论文。

我主要是有个疑问,BBR真的是Von Jacobson的idea吗?毕竟论文作者有他的名字,我想知道范雅各布森在BBR里的角色是什么。

但我没有找到。不过还是挖出一些有趣的东西。

2011年的一篇论文《BufferBloat: What’s Wrong with the Internet?》:
https://queue.acm.org/detail.cfm?id=2076798

这一篇是一个关于bufferbloat的讨论,我摘录了其中有趣的一些段落。

配置大buffer有利于设备的销售:
在这里插入图片描述
下面是范雅各布森的一些抱怨:
在这里插入图片描述
下面这个有意思,提出从时间角度去评估buffer而不是大小:
在这里插入图片描述
你要说“我有10ms的buffer”,但这必须指定数据包进入buffer以及离开buffer的速率。而这个速率却是无法固定的。不过尽管如此,“提高一倍速率,节省一半延迟”的观点也是挺trick的,事实上就是如此,不是吗?

下面的这段,提供了bufferbloat为什么总发生在边缘的佐证,至少是理论上的佐证:
在这里插入图片描述
现实中,经济因素实际上是最重要的因素。不管是核心backbone无需buffer还是边缘网络趋向渐大的buffer,都是经济因素:

在这里插入图片描述

一个重要的观点很少在这类论文里被讨论和提及,那就是 buffer的作用仅仅是用来平滑统计复用的突发的 ,这在 “统计复用的存储转发式的分组交换网” 被设计伊始的1960年代就是说定了的。然而buffer在1986年前后却被选成了拥塞控制的核心组件之一,如此一来buffer便兼职了拥塞控制的职责,它的任务就是在buffer overflow的时候提供一个信号给端到端的TCP协议,仅此而已。如此,这便是bufferbloat的开端。

现如今,BBR采用了另一种方式来进行拥塞控制,不再以填充buffer以获得丢包收敛信号为目标,这显然是一个创新,事实上,Delay-based的拥塞控制算法一直致力于此,但由于无法和AIMD共存从而无法推广部署,这不,BBR终于也面临了这个问题,所以BBRv2便无法保持纯粹了。

除了在拥塞控制算法上做文章之外,AQM是另一个领域。下面的一篇论文比较有趣《Controlling Queue Delay
A modern AQM is just one piece of the solution to bufferbloat.》:
https://queue.acm.org/detail.cfm?id=2209336

以下描述的雅各布森管道虽然是一个基础,但讲的很好,让人嗅出了BltBW和RTprop的味道:
在这里插入图片描述
在这里插入图片描述
在此基础上这篇论文主要是想提出codel的逻辑,这是一种非常精美且简单精巧的队列管理算法。

AQM一定要是简单的,一定要自适应,这是互联网设计之初就必须要遵守的核心要求,这也是传输控制协议为什么是端到端的核心原因,我们始终不能忘记互联网的核心原则: Intelligence Edge && Dummy Core


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