在阅读Richard的书" TCP /IP说明了第1卷“时,我偶然了解到TCP在RTO的计算方面有了改进。
该书指出,在标准方法中存在一些可能的问题,因为它使用了对rttvar项的重权重。这可能导致RTO增加,即使RTT正在减少。
它随后指出,如果RTT低于估计的RTT范围的“低端”(srtt - mdev),linux将处理RTT正在减少的情况,并提供代码片段:
if(m < (srtt - mdev))
mdev = (31/32) * mdev + (1/32) * |srtt - m|
else
mdev = (3/4) * mdev + (1/4) * |srtt - m|其中: srtt =平滑的往返时间,mdev =新测量与srtt的偏差,m=新的rtt测量。
我的问题是,我在任何linux发行版源代码中都找不到这种改进。函数static tcp_rtt_estimator(struct *sk,long mrtt_us)位于linux的tcp_input.c文件中,如RFC 6298所述,但我找不到史蒂文书中提到的改进。
我的问题是,这种改进是由于这个问题的不太合适而没有实现,还是在某些版本中实现了,但是在测试之后被删除了,得到了不满意的结果,或者别的什么?
我还获悉,2002年有一次技术会议讨论了这方面的改进。( FREENIX轨道会议记录:2002年USENIX年度技术会议),但未能找到其结论。
如果有人有关于这个话题的任何信息,我会非常感谢。
谢谢。
发布于 2022-01-26 19:10:30
我的猜测是,RFC 6298没有出现在理查德·史蒂文斯的第二版(2011年11月)中,这本书最初于1994年出版。RFC 6298于2011年6月出版。
https://stackoverflow.com/questions/44286502
复制相似问题