TCP定时器

TCP中使用了几个定时器来确保传输时不会发生过多的延时。

重传计时器(Retransmission Timer):

如果传输过程中发生了丢包就会用到重传定时器(RTO)
每次发一个数据段的时候都会开启重传计时器,收到确认包的时候计时器关闭;如果定时器到时间了,就会发生超时并且重新发送该段,这个重传超时时间RTO为1RTT(round trip time,往返时间),计算重传超时时间,首先要计算RTT:
下面介绍三种类型的RTT:
Mesured RTT(RTTm)——一个数据段从发送到收到确认的时间
Smoothed RTT(RTTs)——加权平均往返时间,RTTm可能会发生变化,波动会很大

 Initially -> No value
After the first measurement -> RTTs=RTTm             //第一个数据段之后
After each measurement -> RTTs= (1-t)*RTTs + t*RTTm  //每一个数据包之后计算RTT 
Note: t=1/8 (default if not given)

Deviated RTT(RTTd)——偏差RTT,大多数时候不单独使用RTTs,需要计算RTTd

Initially -> No value
After the first measurement -> RTTd=RTTm/2
After each measurement -> RTTd= (1-k)*RTTd + k*(RTTm-RTTs)
Note: k=1/4 (default if not given)

重传超时RTO的时间大多数都是基于RTTs和RTTd来计算的,使用如下公式进行计算

 Initial value -> Original (given in question)
After any measurement -> RTO=RTTs + 4*RTTd

NOTE:每次重传时,RTO的值都会翻倍。 (RTO(新)= RTO(重传之前) 2)这在Karn算法中有解释*

Persistent持续定时器

是在接收方设置滑动窗口为0的时候使用的(处理零窗口大小的死锁情况:接收方请求下面的数据的包丢了)
当发送TCP收到窗口大小为0的确认时,它会启动持续定时器;当持续定时器到时间后,发送方会发送一个探测报文段(该段只包含1个字节的新数据,有一个序列号,但是序列号不会被确认)这个探测报文段会让接收方重新发送丢失的确认包
(就算你不让我传数据了我也得定时去问问你可以传了没,万一我没收到可以传的消息呢----所以要一直保持联系哦)

Keep Alive计时器

防止两个TCP之间长时间的空闲连接。如果客户端打开了与服务器的连接,然后传了一些数据后就静默了(不处理数据也不发送确认),客户端会崩溃,并且连接会永远保持打开状态,为了防止这种现象,使用了keep alive保持活动计时器。
每次服务器从客户端收到信息时,就会重置keep alive计时器。超时通常是2个小时,如果服务器两个小时后还没有收到客户端的消息,就会发送一个探测段。如果10个探测(每个探测间隔75秒)之后都没有响应的话就终止连接。
(确认对面还活着么哈哈哈哈哈哈哈)

Time Wait等待计时器

在释放连接的时候使用
在发送完第二个FIN的最后一个确认包后开启这个计时器,因为万一我发的确认包中途丢了对面再发一个请求关闭过来,我都已经关闭连接了岂不是糟糕了,所以要等一段时间再关闭连接。

全部评论

相关推荐

小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
今天 20:14
已编辑
叮咚买菜
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 10人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务