TCP中的定时器

冷不防 2021-11-29 06:38 299阅读 0赞

1.连接建立(connection establishment)”定时器

  1. 在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止。

2.“重传(retransmission)”定时器

  1. TCP发送某个数据段时设定。如果该定时器超时而对端的确认还未到达,TCP将重传该数据段。重传定时器的值 (即TCP等待对端确认的时间)是动态计算的,与RTT的估计值密切相关,且还取决于该报文段已被重传的次数。

3.“延迟ACK(delayed ACK)”定时器

  1. TCP收到必须被确认但无需马上发出确认的数据时设定。如果在200ms内,有数据要在该连接上发送,延迟的ACK响应就可随着数据一起发送回对端,称为捎带确认。如果200ms后,该确认未能被捎带出去,则定时器超时,此时需要发送一个立即确认。

4.“持续 (persist)”定时器

  1. 在连接对端通告接收窗口为0,阻止TCP继续发送数据时设定。由于连接对端发送的窗口通告不可靠(只有数据才会被确认,ACK不会被确认),允许TCP继续发送数据的后续窗口更新有可能丢失。因此,如果TCP有数据要发送,但对端通告接收窗口为0,则持续定时器启动,超时后向对端发送 1字节的数据,判定对端接收窗口是否已打开。

5.“保活(keep alive)”定时器

  1. TCP控制块的so\_options字段设置了SOF\_KEEPALIVE选项时生效。如果连接的连续空闲时间超过2小时,则保活定时器超时,此时应向对端发送连接探测报文段,强迫对端响应。如果收到了期待的响应, TCP可确定对端主机工作正常,在该连接再次空闲超过 2小时之前,TCP不会再进行保活测试。如果收到的是RST复位响应, TCP可确定对端主机已重启。如果连续若干次保活测试都未收到响应, TCP就假定对端主机已崩溃,但它无法区分是主机故障还是连接故障。

6.FIN_WAIT_2定时器

  1. 当某个连接从FIN\_WAIT\_1状态变迁到FIN\_WAIT\_2状态并且不能再接收任何新数据时,FIN\_WAIT\_2定时器启动,设为10分钟。定时器超时后,重新设为75秒,第二次超时后连接被关闭。加入这个定时器的目的是为了避免如果对端一直不发送 FIN,某个连接会永远滞留在FIN\_ WAIT\_ 2状态(假设TCP不选用半打开功能)。

7.TIME_WAIT定时器

  1. 一般也称为2MSL定时器。2MSL指两倍的MSL,即最大报文段生存时间。当连接转移到TIME\_WAIT状态,即连接主动关闭时,定时器启动。状态转换图那一节中已经详细说明了需要2MSL等待状态的原因。连接进入TIME\_WAIT状态时,定时器设定为1分钟,超时后,TCP控制块被删除,端口号可重新使用。

发表评论

表情:
评论列表 (有 0 条评论,299人围观)

还没有评论,来说两句吧...

相关阅读

    相关 TCP定时器分类

    重传定时器 主要为了防止报文丢失或者阻塞。当A向B发送报文时,就会启动重传定时器,若在定时器到达之后,仍没有收到B的确认报文,则A会重新发送上次发送的报文。同时,令重传定

    相关 tcp定时器

    我们都知道,TCP发送的报文段是要交给IP层传送的,但IP层只能提供尽最大努力服务。也就是说TCP下面的网络所提供的是不可靠传输。因此TCP必须采取适当的策略。而定时器就发挥作

    相关 调研TCP定时器

    TCP定时器 TCP是提供可靠的传输层,既然传输数据就必须确认从另一方收到了数据,但是数据和确认在传输过程中都有可能丢失,那么这个时候,TCP协议是使用定时器进行实现的,如果

    相关 TCP定时器

    1、建立连接定时器(connection-establishment timer)   顾名思义,这个定时器是在建立连接的时候使用的, 我们知道, TCP建立连接需要3次

    相关 TCP定时器

    1.连接建立(connection establishment)”定时器        在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止

    相关 TCP定时器

    1、建立连接定时器(connection-establishment timer)   顾名思义,这个定时器是在建立连接的时候使用的, 我们知道, TCP建立连接需要3次