一个 TCP 双边方案的对话

Posted dog250

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个 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。
经理:那它叫什么?
工人:名字重要吗?
经理:你被开除了。

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

以上是关于一个 TCP 双边方案的对话的主要内容,如果未能解决你的问题,请参考以下文章

拨打 tcp 127.0.0.1:8080:连接:连接被拒绝。去码头工人应用

双边过滤器[关闭]

在 c# 中进行正确且快速的 TCP 网络连接

将订单发送给按小时支付的工人的最佳解决方案?

MIN_RTO 对话

用C语言分配开辟内存问题