您的位置:首页 > 理论基础 > 计算机网络

TCP的四种定时器

2017-06-20 15:25 405 查看
TCP使用的四种计时器:

1.重传计时器

为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发生两种情况:若在计时器超时之前收到对报文段的确认,则撤销计时器;若在收到对特定报文段的确认之前计时器超时,则重传该报文,并把计时器复位;

2.坚持计时器

假设TCP收到了一个窗口大小为0报文段,发送TCP就停止传送报文段,直到接收TCP发送一个非零的窗口大小。但是这个确认有可能丢失,若确认丢了,接收TCP并不会知道,而是认为他已经完成任务了。但是发送TCP由于没有收到确认,就会一直等待接收方发送确认来通知窗口的大小。双方的TCP这时就会造成死锁,所以要使用一个计时器来避免死锁的发送。

当TCP收到一个窗口大小为0的确认时,就要启动坚持计时器。当坚持计时器期限到时,发送TCP就发送一个特殊的探测报文,这个探测报文段只有一个字节数据,它有一个序号,但是它的序号永远不需要确认。探测报文段提醒对端,确认已丢失,必须重传。

坚持计时器的值设置为重传时间的数值。若没有收到从接收端来的响应,需要发送一个探测报文,并将坚持计时器的值加倍和复位,直到这个值增大到门限值(通常60秒)为止。在这以后,发送端每隔60秒发送一个探测报文,直到窗口重新打开。

3.保活计时器

保活定时器是为了应对 TCP 连接双方出现长时间的没有数据传输的情况。如果客户端与服务器建立了 TCP 连接之后,客户端由于某种原因导致主机故障,则服务器就不能收到来自客户端的数据,而服务器不可能一直处于等待状态,保活定时器就是用来解决这个问题的。服务器每收到一次客户端的数据,就重新设置保活定时器,通常为 2 小时,如果 2 小时没有收到客户端的数据,服务端就发送一个探测报文,以后每隔75秒发送一次,如果连续发送10次探测报文段后仍没有收到客户端的响应,服务器就认为客户端出现了故障,就可以终止这个连接。

4.时间等待计时器

当客户端进入TIME-WAIT状态的时候,链接还没有释放掉,必须等待2倍的MSL(最长报文段寿命)后,客户端才能关闭连接。在时间等待期间,链接还处于一种过渡状态。这就可以使重复的FIN报文段(若果有的话)可以到达目的站因而可将其丢弃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: