TCP中的定时器

转载 2013年12月04日 12:23:02
TCP中的定时器
 
1.连接建立(connection establishment)”定时器
       在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止。
 
2.“重传(retransmission)”定时器
       在TCP发送某个数据段时设定。如果该定时器超时而对端的确认还未到达,TCP将重传该数据段。重传定时器的值 (即TCP等待对端确认的时间)是动态计算的,与RTT的估计值密切相关,且还取决于该报文段已被重传的次数。
 
3.“延迟ACK(delayed ACK)”定时器
       在TCP收到必须被确认但无需马上发出确认的数据时设定。如果在200ms内,有数据要在该连接上发送,延迟的ACK响应就可随着数据一起发送回对端,称为捎带确认。如果200ms后,该确认未能被捎带出去,则定时器超时,此时需要发送一个立即确认。
 
4.“持续 (persist)”定时器
       在连接对端通告接收窗口为0,阻止TCP继续发送数据时设定。由于连接对端发送的窗口通告不可靠(只有数据才会被确认,ACK不会被确认),允许TCP继续发送数据的后续窗口更新有可能丢失。因此,如果TCP有数据要发送,但对端通告接收窗口为0,则持续定时器启动,超时后向对端发送 1字节的数据,判定对端接收窗口是否已打开。
 
5.“保活(keep alive)”定时器
       在TCP控制块的so_options字段设置了SOF_KEEPALIVE选项时生效。如果连接的连续空闲时间超过2小时,则保活定时器超时,此时应向对端发送连接探测报文段,强迫对端响应。如果收到了期待的响应, TCP可确定对端主机工作正常,在该连接再次空闲超过 2小时之前,TCP不会再进行保活测试。如果收到的是RST复位响应, TCP可确定对端主机已重启。如果连续若干次保活测试都未收到响应, TCP就假定对端主机已崩溃,但它无法区分是主机故障还是连接故障。
 
6.FIN_WAIT_2定时器
       当某个连接从FIN_WAIT_1状态变迁到FIN_WAIT_2状态并且不能再接收任何新数据时,FIN_WAIT_2定时器启动,设为10分钟。定时器超时后,重新设为75秒,第二次超时后连接被关闭。加入这个定时器的目的是为了避免如果对端一直不发送 FIN,某个连接会永远滞留在FIN_ WAIT_ 2状态(假设TCP不选用半打开功能)。
 
7.TIME_WAIT定时器
        一般也称为2MSL定时器。2MSL指两倍的MSL,即最大报文段生存时间。当连接转移到TIME_WAIT状态,即连接主动关闭时,定时器启动。状态转换图那一节中已经详细说明了需要2MSL等待状态的原因。连接进入TIME_WAIT状态时,定时器设定为1分钟,超时后,TCP控制块被删除,端口号可重新使用。

TCP协议里的七种定时器

TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列,在内核中tcp协议栈有七个类型的定时器。 1 连接建立(connection establishment)”定时器在发送SY...
  • baidu20008
  • baidu20008
  • 2013年08月29日 10:31
  • 909

TCP/IP详解-坚持定时器和保活定时器

1 坚持定时器 ACK的传输并不可靠。TCP不对ACK报文段进行确认,只确认那些包含有数据的ACK报文段当接收窗口大小为0,并且接收方发送的窗口通告确认丢失了,那接收方等待接收数据,而发送方在等待允...
  • rosepicker
  • rosepicker
  • 2015年08月26日 22:33
  • 1440

TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器

TCP一共有四个主要的定时器,前面已经讲到了一个--超时定时器--是TCP里面最复杂的一个,另外的三个是: 坚持定时器 保活定时器 2MSL定时器其中坚持定时器用于防止通告窗口为0以...
  • goodboy1881
  • goodboy1881
  • 2006年05月28日 00:34
  • 24813

TCP的定时器系列 — 保活定时器

主要内容:保活定时器的实现,TCP_USER_TIMEOUT选项的实现。 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd   原理   HTTP有Keep...
  • zhangskd
  • zhangskd
  • 2015年04月05日 10:35
  • 8760

【网络协议】TCP中的四大定时器

前言 对于每个TCP连接,TCP一般要管理4个不同的定时器:重传定时器、坚持定时器、保活定时器、2MSL定时器。 重传定时器 很明显重传定时器是用来计算TCP报文段的超...
  • mmc_maodun
  • mmc_maodun
  • 2014年06月20日 08:30
  • 5061

TCP/IP详解--几类定时器的作用(重传 保活定时器)

与数据链路层的ARQ协议相类似,TCP使用超时重发的重传机制。即:TCP每发送一个报文段,就对此报文段设置一个超时重传计时器。此计时器设置的超时重传时间RTO(Retransmission Time...
  • yusiguyuan
  • yusiguyuan
  • 2014年04月02日 21:33
  • 2853

TCP坚持定时器

TCP通过让接收方指明希望从发送方接收的数据字节数(即窗口大小)来进行流量控制。如果窗口大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗口变为非0为止。 ACK的传输并不可靠,也就是...
  • zhuaimiao1
  • zhuaimiao1
  • 2015年09月26日 23:07
  • 568

linux网络编程之TCP定时器

TCP的四种定时器 重传计时器:Retransmission Timer 坚持计时器:Persistent Timer 保活计时器:Keeplive Timer 时间等待计时器:Time_Wait T...
  • someday1314
  • someday1314
  • 2017年06月20日 09:43
  • 151

TCP的四种定时器简单记录

TCP管理的4个不同的定时器: 1.重传定时器:用于当希望收到另一端的确认。 2.坚持定时器:使窗口大小信息保持不断流动。 3.保活定时器:检测TCP空闲连接的另一端何时崩溃或重启。 4.2MSL定时...
  • liuming9283
  • liuming9283
  • 2016年03月06日 16:43
  • 573

TCP的定时器系列 — 超时重传定时器

主要内容:TCP定时器开篇,超时重传定时器、ER延迟定时器、PTO定时器的实现。 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd   Q:一条TCP连接会...
  • zhangskd
  • zhangskd
  • 2015年03月30日 22:53
  • 13123
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP中的定时器
举报原因:
原因补充:

(最多只允许输入30个字)