一个 TCP 双边方案的对话

最近聊到一个 TCP 双边方案,一段对话。
经理:我正在抄 Kernel TCP 关于时间戳处理的代码?
工人:时间戳?IDC 内部它的精度不够吧?在我看来不支持时间戳也罢,巨复杂,抄它干嘛?
经理:要实现 Eifel 算法,需要时间戳支持。
工人:Eifel 算法一定需要时间戳吗?
经理:是的,Eifel 算法需要基于时间戳来实现。
工人:Eifel 算法的目标是什么?
经理:区分原始报文和重传报文啊。
工人:区分原始报文和重传报文需要时间戳吗?
经理:这个不需要。
工人:区分原始报文和重传报文,最简单需要怎么做?
经理:设置一个 bit 进行区别即可。
工人:那为什么不用一个 bit 区分呢?
经理:TCP 标准不认额外的 bit 啊。
工人:你不是 TCP 双边吗?为什么一定要遵循标准呢?
经理:对啊。TCP 头还有 4 个额外保留 bit 啊,用掉 1 个。
工人:1 个够吗?
经理:够了,区分第一个重传报文和原始报文,够了。
工人:如果我要区分第一次重传报文和第二次重传报文呢?
经理:那就需要 2 个 bit 了。
工人:如果是 10 个报文呢?
经理:那 4 个 bit 就不够了…
工人:不能开辟一些新的 bits 吗?
经理:TCP 头就那么大,不允许啊…
工人:可你这是 TCP 双边啊,两边互认不就行了吗?
经理:对啊,那就开 16 个 bit 吧,足够了。
工人:16 个 bit 可以识别多少重传报文呢?
经理:可以识别…
工人:给你 32bit 的空间,你要怎么用?
经理:我可以实现 us 级时间戳…
工人:全部用来识别原始报文和重传报文不好吗?
经理:对啊,这样也可以。
工人:这不就是 QUIC 的 Packet ID 嘛…
经理:妙啊,都快成 QUIC 了,可这已经不是 TCP 了吧。
工人:谁说这一定要是 TCP 的,“TCP 双边”,多一个字它都不是 TCP。
经理:那它叫什么?
工人:名字重要吗?
经理:你被开除了。

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

原文链接: https://blog.csdn.net/dog250/article/details/128678092

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    一个 TCP 双边方案的对话

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/405317

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午9:07
下一篇 2023年4月26日 上午9:07

相关推荐