调研tcp定时器

来源:互联网 发布:js获取点击按钮的id 编辑:程序博客网 时间:2024/06/08 15:30

1. 常见的定时器都有哪一些?

 TCP常见的四种定时器

(1)重传计时器   Retransmission Timer

(2)持续计时器   Persistent Timer

(3)保活计时器    Keeplive Timer

(4)时间等待计时器   Time_Wait Timer

2. 各自的特点以及应用场景 

(1)重传计时器

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

(2)持续计时器 

      用于处理零窗口值的通过。若接收端的TCP要命令发送端的TCP停止发送报文段时,就向发送TCP发送一个报文段,该报文的窗口大小字段为0,称为零值窗口。发送端的TCP收到该零值窗口值报文后,就会停止向接收端的TCP发送报文,直到接收端的TCP发送一个窗口大小非0的ACK报文。若接收端TCP向发送TCP发送ACK报文,以通知其发送窗口的大小(非0)后,接收端的TCP便等待发送端发送数据,若该ACK回去的路上丢失了,则发送端的TCP并没收到ACK报文,便不会向接收端发送报文,而接收却以为自己的ACK报文发成功了,便一直等待,进入死锁状态,为了防止该死锁状态的出现,TCP为发送TCP设置了一个持续计时器,一旦发送TCP收到了“零值窗口报文”,该计时器便启动。启动后,在为超时期间,若收到了接收端的非0窗口的通知,则停止该计时器;若该持续计时器超时了,则发送TCP就发送一个特殊的探测报文段,该报文段仅包含1B的新数据,该报文不需要确认,探测报文的作用在于提醒对方重传下上次发送发送的那个ACK报文。

(3)保活计时器     

   这个计时器就是用来防止客户机发生故障服务器白白等待浪费资源的现象。举例来说:假设客户机与服务器已经建立好了连接,此时客户机突然出现了故障,因此服务器会等待客户机发送的数据,会一直等待吗?不是的。服务器每收到客户机发来的数据,就会重置这个保活计时器,一般设置为2小时,如果这个2小时都没有收到数据,服务器就会侦测客户机是否出现问题,多次侦测没有响应,服务器就会不再等待。

(4)时间等待计时器 

      为了保证 让服务器收到客户端发出的ACK确认字段。


原创粉丝点击