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。

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

  • 3
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

dog250

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值