TCP重传机制

一、概述

TCP提供可靠地传输层。它使用的方法之一就是确认从另一端收到的数据。单数据和确认都可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传数据。对任何实现而言,关键在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。

重传定时器在TCP发送数据时设定。如果定时器已超时而对端的确认还未到达,TCP将重传数据。重传定时器的值(即TCP等待对端确认的时间RTO)是动态计算的,取决于TCP为该连接测量的往返时间(RTT)和该报文段已被重传的次数。

二、策略

指数退避原则,则在超时后每次回增加超时时间,基本为上次的二倍,达到64s后 保持为64S。一直传送系统设置的最大次数,超过最大次数后关闭连接。

超时时间与测量的往返时间有关系,而测量的往返时间与网络质量和距离有直接关系,并且是动态变化的。这些原因都造成了超时时间是动态变化的。http://www.docin.com/p-21407969.html

RTT = (a*old_RTT)+(1-a)*new_RTT;(0<a<1)

RTO = b*RTT; (b>1;一般b=2)

上述算法能适应网络的波动性,但是会造成RTT的二义性;网络变化较大是造成了第二次计算的RTT比上次的RTT时间要短很过,从而造成二义性。

改进的算法(KARN算法):NEW_RTO = 2*RTO;

改进思想:由于二义性是由于重传报文引起的,可以对非重传报文重新计算RTT而对重重传报文不重新计算RTT,而以固定的倍率增加超时时间。

具体算法可以参考TCP/IP卷2第21章和http://baike.baidu.com/view/4330519.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值