《三国演义》和《长安十二时辰》有什么不同?
关羽败走麦城,远在千里之外的刘备收到两个信号,一个需要 “星夜驰援”,紧接着 “二弟休矣”,三国的故事在东亚大陆展开,地理尺度巨大,星夜不星夜其实无所谓,拖到次日早上也无妨,长距离行军途中,任何事都可能推翻军队开拔时的决策。如千里行军,只为攻城,当行军至百里时,城可能已被它方势力攻破,这种尺度下故事情节的展开多由策略推动,而不是具体军事行动,那些后方军师的重要性和魅力要高于战将。
而不良人张小敬在长安城的演绎却表现在小范围城市巷战,各方信息快速通达,军警配合行动,步步紧逼,非常具有节奏感,这种场合下那些手无缚鸡之力的长者军师更多表现为多舌和啰嗦,整个剧情在追跑,隐蔽,巷战中展开,更需要身手敏捷的主角。
现代一个对等的例子,对比大陆警匪片和香港警匪片也能体现上述描述。大陆片在大地理尺度展开,总有一个老谋深算的智者不出门出策略,一队人从东北追到云南却扑了个空,镜头再切到福建海边。而香港警匪片基本上全程都是身材精瘦的警匪在追打,所以也能归为动作片。
这个意思可以直观解释我一再强调的 “广域网上别求太精确的测量”,因为根本就不可能测准,广域网全局部署 cubic 几乎是最优解,aimd 就是背后的那个军师。
广域网的一切问题反过来都是数据中心的方案。
数据中心可以低成本获得全局视图,在非常小的传播时延中这个全局视图可以指导精确的行为,因此 aimd 这种盲视图的收敛算法就不再特别重要。全局控制的意思是全局流量调度,虽然 pfc 以及它的引申算一类,但它还是不如 ib,因为以太网本身的矛盾就很有趣,它生在一个小地理尺度环境,却在一开始自带了大尺度的盲视图策略 csma/cd,即使交换机诞生,交换机 buffer 检测积攒冲突(执行 cd),再也攒不住时,端主机收敛一半的流量,aimd 顺理成章。
如果以太网的矛盾不解决,不在交换机里做点什么除了缓存 packet 之外的事,所有的算法都会显得拧巴蹩脚。君不见如今的自研交换机,无非是如何更巧妙地缓存 packet 以利用 buffer 罢了。
这就好比香港警匪片,在高架桥上修建了很多驿所(长距离行军才需要),让泼丽斯们逐跳前往下一个驿所等候行动命令,明明一架直升机和一通电话就能搞定的事,这和从佳木斯追到西双版纳中间必须加油住店协调部署完全是不同的环境。
在广域网视图通过精确测量做决策算一种不成功的创新,而在数据中心部署 aimd 更多是一种拿来主义。很多人都讲过,aimd 是一种经过严密论证的非常成熟的拥塞控制策略,所以几乎任何算法都拿来用,哪怕只是兜底,但毕竟底都兜住了,上面的不做也罢,于是纷纷卷入更能所见即所得的方向,比如网卡。
最后,看一个从小尺度集中调度到大尺度分布式统计复用的转化过程的例子,二者也不是强制二选一的。
典型的红绿灯和环岛转盘,目前很多地方都用红绿灯替换了环岛。但实际上环岛是一种非常高效的分布式控制系统:
从左到右,第一个图是单纯的红绿灯,红灯停绿灯行,第二个图是小环岛,就像长春市中心那些环岛,图三是个完全环岛。
图一有指挥灯统一调度,图三则将集中式统一调度转换成了分布式自行变道。
但是参见图二,现实中的城市环岛。大规模把环岛拆掉换成红绿灯的原因和网络拥塞控制领域的不良行为也是一样。
如果环岛交通参与者能自行遵守 “进入让驶出” 的原则(出去了才能腾出空间),环岛肯定比红绿灯更高效,时延抖动会大幅降低,尾时延也会降低,但问题就是那些不遵守规则的人引入的,结果换成了红绿灯这种虽然低效但能兜底的策略。
互联网上的情形也不过如此,不管是广域网还是数据中心,传输低效的核心在于有人不遵守规则,公地悲剧,布雷斯悖论,科斯定律,主角就是他们。只要现在的互联网云计算公司的无知经理还在视图 “提升业务数据传输效率”,互联网的整体传输效率就会越来越低效。
浙江温州皮鞋湿,下雨进水不会胖。