计算机网络——TCP超时重传时间的选择
Posted 花生酱拌面
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络——TCP超时重传时间的选择相关的知识,希望对你有一定的参考价值。
超时重传时间的选择是TCP最复杂的问题之一,超时重传时间RTO在很大程度上影响了TCP的传输效率。
如上图所示的通信过程,A首先向B发送数据报文段0,并接收来自B的确认报文段,这中间的时间称为往返时间RTT,因此我们选择的超时重传时间RTO应当略大于往返时间RTT,如果太小了就会导致A在收到确认报文之前就进行了重传。
但网络是很复杂的,基于一次样本的测量是无法确定RTO的,就比如A给B发送的数据报文段1,它的往返时间很可能因为网络质量的波动,而导致往返时间大于超时重传时间。
因此,我们需要选择新的、更加合理的RTO计算方案。如上图所示的计算公式,考虑到了新的RTT样本给RTO带来的影响,进行了加权处理。
在根据RTT计算出RTO后,当又获得了新的RTT样本,那么就要综合两个RTT时间,给新老RTT赋予不同的权值,新的RTTs=(1-α)x 旧RTTs + α x 新的RTT样本值,而新的RTO由RTTs和RTTD两部分组成,RTTD的计算公式也如图上所示。
在对RTT样本进行采集时,也可能会出现一定的问题。如上图所示,如果A发送的报文段丢失了,在到达重传时间后进行该报文的重传,并收到了针对重传报文的确认,而如果把这个确认当做是对丢失报文的确认,就会使RTT样本过大;而如上图右侧所示,如果将对报文的确认误以为是对重传报文的确认,就会导致RTT样本过小。
为了解决这个问题,提出了一个方案,即报文段每重传一次,就将超时重传时间RTO增大,一般做法是取为原来的两倍。
如上图所示的通信过程,根据采集到的往返时间RTT和RTO的计算公式,我们可以很方便地求得具体的RTO数值。
而如果出现了超时重传的情况,就直接将新的RTO取为原来的两倍即可。
以上是关于计算机网络——TCP超时重传时间的选择的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络湖科大微课堂笔记 p60-63 TCP的流量控制拥塞控制超时重传时间的选择可靠传输的实现