TCP协议中的四大定时器

介绍一下TCP连接中的4个定时器:重传定时器、坚持定时器、保活定时器、2MSL定时器,他们存在于每一个连接中。

  重传定时器 

    重传定时器是用来计算TCP报文段的超时重传时间的,每发送一个报文段就会启动重传定时器,如果在定时器时间到后还没收到对该报文段的确认,就重传该报文段,并将重传定时器复位,重新计算;如果在规定时间内收到了对该报文段的确认,则撤销该报文段的重传定时器。

  坚持定时器 

   坚持定时器主要是为了应付零窗口大小通知可能导致的死锁问题。如果接收端在向发送端发送了零窗口报文段后不久,接收端的接收缓存又有了一些存储空间,于是接收端向发送端发送了一个非零窗口大小的报文段,然而这个报文段在传送过程中丢失了,发送端没有收到该报文段,就一直等待接收端发送非零窗口的报文通知,而接收端并不知道报文段丢失了,而是觉得已经告诉发送端了,就会一直等待发送端发送数据,如果没有任何措施的话,这话死锁的局面会一直延续下去。

    为了解决这个问题,TCP为每一个连接设有一个坚持定时器。只要TCP连接的一方收到对方的零窗口通知,就启动坚持定时器。若坚持定时器设置的时间到期,就发送一个零窗口控测报文段,该报文段只有一个字节的数据,它有一个序号,但该序号永远不需要确认,因此该序号可以持续重传,这种状态会持续到窗口被打开,或者应用进程使用的连接被终止。


 保活定时器 

    保活定时器是为了应对两个TCP连接间出现长时间的没有数据传输的情况,而服务器又想知道客户端主机是否崩溃关机,或则崩溃重启。服务器每收到一次客户端的数据,就重新设置保活定时器,通常为2小时,如果2小时没有收到客户端的数据,服务端就发送一个探测报文,以后每隔75秒发送一次,如果连续发送10次探测报文段后仍没有收到客户端的响应,服务器就认为客户端出现了故障,就可以终止这个连接。

  2MSL定时器 

    在TCP四次挥手中,主动断开连接的一方会进入到到一个2MSL的TIME-WAIT状态,2MSL定时器就是测量这个TIME—WAIT状态的时间,(2MSL报文段寿命的两倍)。

2MSL的TIME-WAIT状态的主要作用:1.确保发送的最后一个ACK报文段能够到达对方,在ACK报文丢失的情况下确保对方正常断开连接。

                               2.防止之前与本连接有关的由于延迟等原因而导致已失效的报文在新的连接中被误判为有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值