TCP定时器 之 重传定时器

注:这部分还没有完全分析透彻,先在此记录,后面回顾的时候再进行补充;

启动定时器:

(1) 之前发送的数据段已经得到确认,新发出一个数据段之后设定;

(2) 新建连接发送syn之后设定;

(3) PMTU探测失败之后设定;

(4) 接收方丢弃SACK部分接收的段时设定;

 

定时器回调函数:

重传定时器超时回调,根据连接控制块中不同的事件类型来分别调用不同的函数进行处理,这里我们只关心ICSK_TIME_RETRANS类型(重传类型),重传细节会继续调用函数tcp_retransmit_timer进行下一步的处理;

 

tcp_retransmit_timer函数即为超时重传的核心函数,其根据不同的情况决定是否进行重传,并且调整重传次数和退避指数,设定下一次重传定时器等;

 

tcp_write_timeout为重传超时情况的判断,函数根据不同情况,获取最大重传次数,并且通过该次数获取最大的超时时间,若发送时间超过了该最大超时时间,则断开连接;

 

本文链接:TCP定时器 之 重传定时器

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注