一个更高效的RACK机制

本文介绍了TCP RACK机制在kernel-4.3及4.14内核中的改进,旨在解决尾部丢包和误判问题。通过加入REO定时器和动态调整乱序时间窗口值,提高了丢包检测的效率。当收到D-SACK时,时间窗口值会增加,而在连续16轮未收到D-SACK后则会降低,以适应网络状况变化。
摘要由CSDN通过智能技术生成
tcp在kernel-4.3内核中加入了RACK机制,用从时间维度上来判断丢包,用最新被(S)ACK确认的数据包为基准,其发送时间减去一个乱序时间窗口之前的数据包如果没有收到反馈,就可以判断为丢失了。主要为了解决尾部丢包和二次重传的问题。
旧版RACK一个比较明显的缺点就是容易误判,尤其是在重传数据包被(S)ACK确认,是否更新最近被确认的数据包问题上,只是简单用判断重传到被确认的时间是否大于min_rtt。如果min_rtt很小,连接又有乱序情况,很容易误判一大片丢包,造成传输效率低下的问题。
当然,旧版的RACK还存在其他问题,比如时间窗口值为(1ms,min_rtt/4)的最大值,几乎可以认为是一个固定的值,当发现误判时,收到客户端反馈回来的D-SACK信息,并不能动态的调节这个乱序时间窗口。其次,RACK的另一个好处是解决尾部丢包问题,但是这是ack驱动的,每次丢包判断只能在更新了最近被(S)ACK之后进行。如果某一次判定,最新更新数据包的发送时间与该发送时间减去乱序时间窗口的时间区间,还剩下两三个数据包未能判断丢失,只能等下次满足判断条件的ack到来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值