MIN_RTO 对话

经理:为啥 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 已经可配置,但这确实不好公开。

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值