TCP/IP 之TCP协议(6):4种计时器

1、大多数TCP实现使用至少4种计时器:重传,2MSL,持久,保活

2、2MSL计时器用于连接终止时,原因见:TCP协议的状态和连接

3、保活计时器(keepalive timer)用于防止连接出现长时间的空闲;每当服务器收到客户消息就把该计时器复位,如果超过时间还没有收到消息,就发送探测报文段,定时的发N个,如果还没有收到响应,就认为是客户除了故障,终止连接

4、持久计时器(persistence timer),用于对付0窗口而引起的死锁。

当发端收到窗口为0的消息,开启该计时器,到了一定时间,发字节为一的报文段去试探(试探报文段只有一个字节,且无需确认),如果没有响应,则再发,同时将该计时器加倍和复位。到这个值到达上限为止(一般是1分钟),然后就每隔这个上限发一次报文到窗口重新打开。

5、重传计时器:

(1)、重传的两种情况,当TCP发送一个报文段时,创建这个报文段的重传计时器。重传超时(RTO)

a、如果在这个时间之前,收到此报文的ACK,则撤销此计时器
b、如果时间到,将计时器复位,并重传报文

(2)、RTT(往返时间)的测量,用RTT(M)表示测量的RTT值,注意的是,如果测量已经开始,在此测量未结束之时,不能进行另一个测量;在计算新的RTO时候不用考虑重传的RTT

(2)、平滑RTT(S)与偏差RTT(D),使用前后的测量值加权的结果,计算方法如下(多数实现中,a取1/8,b取1/4):

第一次测量后:RTT(S) = RTT(M), RTT(D) = RTT(M)/2;

以后每次测量后:RTT(S) = (1 - a) * RTT(S) + a * RTT(M)
               RTT(D)= (1 - b) * RTT(D) + b * abs( RTT(S) - RTT(M) );

(3)、重传超时(RTO)的计算:

最初:RTO = 初始值
每次测量后:RTO = RTT(S) + 4 * RTT(D);

(4)、发生重传时,就将RTO加倍,RTO *= 2; 这个叫做指数退避,知道一个上限为止。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值