MIN_RTO 对话-CSDN博客

经理:为啥 minrto 要 200 ms 那么大?

​工人:你说的是 Linux 吧?

​经理:不管什么系统,anyway,whatever,为啥 minrto 那么大,比如 200 ms,100 ms ?

​工人:因为要照顾 Delayed ACK,避免不必要超时重传。规范说 Delayed ACK 的 delay 时长大概是 minrto 这个量级,比如 50 ms,100 ms,200 ms。

经理:原来如此,那为啥 minrto 不能每连接配置呢 ?

​工人:因为 Delayed ACK 时间不能每连接配置,且 delay 时间对端不知道。

​经理:我若确保我的连接在 IDC 内呢,RTT 不可能超过 1 ms 。

​工人:Delayed ACK 该 delay 多久还是多久,且接收端不知道发送端在 IDC 内部。

​经理:那我强行改 minrto 为 200us 呢 ?

​工人:rto 精度为 ms,达不到 us。

​经理:我若改了实现,精度达到 us 呢 ?

​工人:经理有这个能力吗?

​经理:你有就行,现在就改,不然开除你。

​工人:我已改好,但仍然不允许你配置每连接 minrto,这个必须全局定死,且必须与 Delayed ACK 量级一致。

​经理:这 TMD 为什么?

​工人:如果完全照 RTT 算 rto,全世界遵守 Delayed ACK 规范情况下将造成频繁不必要超时重传,造成互联网拥塞!不必要超时重传造成互联网拥塞使所有拥塞控制机制付之东流。

​经理:我保证只在 IDC 使用,不堵公网。

​工人:有配置就肯定有人用,你兜不住的,人们必然会错误配置,就会堵互联网。不能开这个口子!

​经理:还有别的办法吗?

​工人:你想咋搞,偷摸的,别声张。

​工人:Google 有两个方案,支持 us 时间戳,但不解决根本问题。

​经理:那我找工人偷摸搞吧。

​工人:经理好运!

附:

draft-wang-tcpm-low-latency-opt-00
draft-yang-tcpm-ets-00

很多 “不能开口子” 的配置,比如 Timewait 时间。全局考虑是必要的,若要保证这个全局,“什么配置是可以随意改的” 就需要严格控制。

拥塞控制要保证一个数据包有且只有一个副本在网络上,因此 “避免不必要重传” 就是要严格制止的,虽然你有权力任意修改 TCP 实现,但原则上你是违规的。因此,标准能带头违规吗?显然不行。

很多私有实现中,MIN_RTO 已经可配置,但这确实不好公开。

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

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

欢迎关注

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

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

    MIN_RTO 对话-CSDN博客

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

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

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

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

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

相关推荐