TCP 与 CPU 架构发展史
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP 与 CPU 架构发展史相关的知识,希望对你有一定的参考价值。
周五下班前跟同事聊了几句,还是关于 TCP 协议的。
诞生于 1970s 的 TCP 协议,在 1981 年作为 TCP/IPv4 被标准化,其实质直到今天都没有发生改变,按序,可靠,其间有过一些涉及效率的修补。
另一方面,CPU 架构从 1970s 到今天不知迭代了多少代。这是一个有趣的类比。
把一个程序看作一条指令流是合适的,CPU 按序执行指令。CPU 架构的历史演进大家都知道,加入了超标量,流水线,多核。为了避免流水线停顿(HoL),引入了乱序执行,将指令分成不相干的部分,乱序执行,最后再 reorder。
日光之下无新事。TCP 按照 CPU 架构的历史走一遍就是了。
程序视角看起来还是按序执行的,可 CPU 确实乱序执行微指令,TCP 应用看起来还是按照到达的一条流,但网络却可以乱序传输。
同一条 TCP 流无法利用 ECMP,不过目前的 Multi-Path TCP 似乎有这个方向了,但粒度还是太粗。TCP 的停顿来自于保序引入的 HoL,学 CPU 乱序执行的样子引入乱序传输就行了。一旦支持乱序传输,包粒度 ECMP 即自然而然。
可直到今天,TCP over IP 依然是最短路径优先逐跳路由,同流同路径,这就好比古老的指令流跑在现代 CPU 上,造成资源大量闲置。无论是端资源,还是网络转发资源。
TCP over IP 按照 CPU 架构发展史的路线再来一遍,没有空闲资源,最小化等待,就是高尚的,当然,名字可以不叫 TCP。
浙江温州皮鞋湿,下雨进水不会胖。
以上是关于TCP 与 CPU 架构发展史的主要内容,如果未能解决你的问题,请参考以下文章