TCP的四种定时器
TCP在建立连接后会启动四个定时器:
重传计时器:Retransmission Timer
坚持计时器:Persistent Timer
保活计时器:Keeplive Timer
时间等待计时器:Time_Wait Timer
1、重传计时器
为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发生两种情况:若在计时器超时之前收到对报文段的确认,则撤销计时器;若在收到对特定报文段的确认之前计时器超时,则重传该报文,并把计时器复位;TCP的发送方没有在规定的时间内收到确认就要重传已发送的报文段。这种重传概念很容易理解,但重传时间的选择却不简单。 如果把超时重传的时间设置的太短,就会引起很多报文段不必要的重传,是网络负荷量增加。但若设置的太长,使网络的空闲时间增大,降低了传输效率。
TCP采用了一种自适应算法,它记录每一个报文段发出的时间,以及收到相应的确认的时间,这两个时间差就是报文的往返时间RTT。
重传时间 = 2*RTT;
RTT是动态计算的:
RTT=旧的 RTT*i + (1-i)*当前RTT。i的值通常取90%,即新的RTT是以前的RTT值的90%加上当