今天说说这篇论文 Flow Control Power is Nondecentralizable:
费老劲找人帮忙下载了下来,看看结论:
简单概述一下并发表一些看法。
这篇论文非常划时代,当 Kleinrock 在 1978 年提出网络工作在 P = bw / delay 最大时处在最佳操作点时,似乎给网络传输优化定了个基调,以后的目标就是追求这个 Kleinrock’s optimal point,这个理解起来并不难,需要一些简单的排队论基础。
但 Jaffe 在 1981 年的文初引述的论文里否定了 Kleinrock’s optimal point 的可达性,意思是在一个去中心化分布式网络中,每个节点仅通过自己能获得的局部信息无法达到 Kleinrock’s optimal point。
论文中 Jaffe 分类讨论了各种不同的度量场景,最终的结论指向,无论什么场景,最优解不可能被各个独立的节点独立达到。
这篇论文可读性比较强,因为没有复杂的数学,有高中数学覆盖的基础知识就能阅读,但趣味性没有,理由依然是高中数学没有太惊艳的推导,所以没读过的就不建议阅读了。
着重说一下这篇论文对后代拥塞控制技术的影响。
首先,Kleinrock 提出 Kleinrock’s optimal point,似乎就是在 “规定” 未来传输优化的方向,这个方向对不对姑且先不说,Jaffe 的论文对这个方向的否定力量更大,因为他间接但真实的规定了未来传输优化朝向 Kleinrock’s optimal point 相反的方向:
- 引导 AIMD 成为事实上的拥塞控制标准,间接的降低了互联网传输性能;
- 由于 AIMD 理论上的公平性,收敛到公平成为了拥塞控制算法必须满足的目标;
- Vegas 等 “正确” 的算法被 AIMD 碾压,被证明为不稳定,无法收敛到公平;
来看一个新近的 draft:Safe Congestion Control,其中的附录很有趣:
This failure mechanism was shown in a formal proof [noPower] and has been demonstrated in connection with Vegas TCP [vegas][VegasFailure].
noPower 说的就是 Jaffe 的论文。
这意味着什么?这就好比在一个新东西混沌初开时,一切方向都没有,恰好有个声音发出来,就规定了方向,其实这个方向未必就是真的重要的方向,可能就是随口一说,但因为没有别的声音,这个唯一的声音因此而洪亮。
回顾 1970 年代,TCP 初始,网络就是一张白纸,没有亟待解决的问题,甚至到了 1980 年代初,人们对网络拥塞的概念也只是试探性定性,并没有实际经验。
昨天文章的评论,无论 queueing theory 还是 network calculus,都是对真实网络的失真描述,我特意强调了:
同样非线性系统,类比功率放大器,它的非线性和动态范围的统计特征都是可通过测量预估的,变换后或者简单局部线性化后它就是一个确定系统,毫无波澜,所以在音响领域有很多追求极致的作品不断磨尖挑剔者的耳朵。但网络系统类似的事就不可得,除非在规模确定的数据中心,否则试图在大规模网络中去拟合某种特征就是南辕北辙,不可实时观测意味着根本就没有典型特征,只能通过大规模测试训练,找到一个均衡点,这种系统只有均衡点没有极致点,就算硬件升级一千倍,极致点也跟着上去了,还是不可达,即便均衡点也能上去,但绝对距离可能会越来越远。大型分布式网络更匹配我们的现实社会…
说到社会,从智人心智初开,就一直面临和当今拥塞控制,传输优化完全一样的问题,公平性和效率。然而 1 万年都没解决,甚至没眉目。人类尝试过各种体制,新石器时代,古埃及,希腊罗马,春秋战国,秦汉,美苏,各种体制下,最终都会面临资源的集中,然后再平均,再集中,这不也是个锯齿?背后没什么原因和必然,可能就是随机,推荐新书《人类新史》。
不最优,不公平但可用是基本常态,就像社会学一样,从没最优解,从没公平,但人类社会依然运转,同理,即使不公平,即使不最优,网络依赖连通。公平和最优根本就不该是网络的目标。最大限度的可用性和收敛才是,避免无序。
Jaffe 的这篇论文提出,任何单独的流都无法做出最优决策,所有单独的流组合起来也不可能全局最优,这是事实,但这没什么大不了的。论文又提出,若要逼近最优解,需要某种全局的集中式控制,这也是事实,但实无必要,类似的理论也能证明,SDN 这种技术当网络规模超过一定阈值后就发散了,同样行不通。
希腊城邦式民主排除了外地人,但当罗马希望将环地中海纳入共和国时,却成了罗马帝国,西周封土建国,却不可避免走向春秋和战国,果真秦王扫六合后,还是不可避免走向了帝国。如果把公平和最优当作目标,整个智人的文明史就是一部失败的历史。
提一下 BBR。
Kleinrock 推崇 BBR,当他自己都不知道如何到达 Kleinrock’s optimal point,并且遭遇 Jaffe 的阻击时,他可能真的无言以对时,BBR 在 40 年后实现了他的理想。Jaffe 提到无法利用瞬时的,局部的状态计算最优解,BBR 引入两个时间窗口,在窗口内持续观测和跟踪 maxbw 和 minrtt 的收敛,如此反复,这必然要以对瞬时变化的灵敏度交换长期的稳定性,若非则何如?
BBR 也是因为各种稳定性,收敛,公平性的论证问题迟迟被排除在正式标准之外,我们可以持续跟踪 BBR 的提交记录,从处女座到如今:
- [net-next,14/14] tcp_bbr: add BBR congestion control
- tcp_bbr: add BBR congestion control
- BBR Congestion Control
我想 Google BBR 团队的 neal 等人一定看到过 Kleinrock 和 Jaffe 的论述并给出过分析。 Vegas TCP 加一个 ProbeRTT 就会好很多,本质上还是缺一个规定 minrtt 有效期的时间窗口,窗口内 bw 随行,窗口外 minrtt 随行,窗口间 Max(bw/minrtt) 自动随行,这就是完全基于 inflight 守恒的自适应算法了,就是我去年做的那个。
换句话说,单独的流只需要跟踪自己的 max(bw/minrtt)。
值得一提的是,没有任何算法可以摧毁整个网络。某日有个技术群聊天,有人认为当北京放开摇号,担心路上将会堵满车时,另一位群友回复 “没事,当他发现不开车一个半小时就到了而开车 3 小时还在路上堵车时,堵车问题自然就缓解了”,看,这就是社会的自动调节,无需任何干涉。
只需要把网络建好就行了,剩下的交给博弈均衡。Kleinrock’s optimal point 像是一个乌托邦固然不可达,但又如何呢。
不管 Kleinrock’s optimal point 可达与否,我始终认为克莱因洛克是对的,大型网络,用的人越多,效率越高,所以资源共享非常重要,也因此,公平性被淹没,也就没那么重要了,统计波动会平滑一切,正如大数定律和中心极限定理所说的那样。
浙江温州皮鞋湿,下雨进水不会胖。