首页 百科知识 确认重传机制

确认重传机制

时间:2022-10-01 百科知识 版权反馈
【摘要】:当收到接收方的ACK报文后,通过ACK报文中所包含的确认号来判断接收方已收到了哪些报文段。显然,通过采用“确认重传”机制可以有效提高报文段传输的可靠性,但同时也需要制定较为复杂的确认和重传协议,并且还需要增加网络额外的通信负荷,占用网络的带宽。此外,在采用“确认重传”机制时,一个关键的问题就是如何设定超时计时器的初值,因此,科学地确定超时间隔的长度非常重要。

在TCP协议中,主要是通过采用“确认-重传”机制来保证数据传输的可靠性,其实现策略如下:发送方以不同的序号发送报文段,同时为每个已发送的报文段设定一个超时计时器,并保存已发的报文段序号,然后进入等待。当收到接收方的ACK报文后,通过ACK报文中所包含的确认号来判断接收方已收到了哪些报文段。如果存在某个已发送的报文段,在其超时间隔之内,发送方没有及时收到接收方的ACK回复,则在该报文段的计时器时钟超时之后,发送方将会重传该报文段。

显然,通过采用“确认−重传”机制可以有效提高报文段传输的可靠性,但同时也需要制定较为复杂的确认和重传协议,并且还需要增加网络额外的通信负荷,占用网络的带宽。此外,在采用“确认−重传”机制时,一个关键的问题就是如何设定超时计时器的初值,因此,科学地确定超时间隔的长度非常重要。目前,采用较多的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理如下:

对每条连接TCP都保持一个变量RTT,用于存放当前到目的端往返所需要时间最接近的估计值。当发送一个数据段时,同时启动连接的超时计时器。

(1)如果在计时器超时前确认到达,则记录所需要的时间(M),并通过以下公式修正RTT的值:

RTT=α·RTT+(1−α)·M

其中:M表示当前测量到的RTT值;

等式右边的RTT表示以前估算的老RTT值;

等式左边的RTT表示新估算的RTT值;

α为平滑因子,表示老RTT值在新RTT值的估算中所占的权重

(2)如果计时器超时前没有收到确认,则将RTT的值增加1倍。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈