TCP 四种定时器(重传定时器,坚持计时器,保活定时器,时间等待计时器)

所属分类: 软件编程 / 其它相关 阅读数: 2104
收藏 0 赞 0 分享

TCP 四种定时器

重传定时器

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

坚持计时器

此计时器针对下面场景:

当B向A发送了0窗口报文,B此时已经没有空间接受A发送的数据了,通知A停止发送。A在收到后即停止发送,等待一段时间后,B有了一些空间,可以继续接收了。此时再向A发送非0窗口报文。如果此非0窗口报文在网络中阻塞或者丢失了,那么A将永远以为B没有空间接收数据,B也永远在等待A发来的数据。这样就会造成死锁的局面。

在A接收到B发送的0窗口报文后,就设立坚持定时器,当定时器到达后,A就像B发送一个探测报文。B收到探测报文后会给出A确认报文。

* 确认报文中的窗口值不是0,则死锁局面打开。
* 确认报文中的窗口值是0,则重置坚持定时器,并将时间翻倍,但是最大不能超过60秒。(到达60后,以后都是60秒)
* A在发送探测报文后,启动重传定时器,若没有收到B的确认报文,则重传探测报文。

保活定时器

应用场景:客户机因为某些故障退出,而服务器并不知道,还在一直等待客户机发来的数据,这样就白白浪费了计算机资源。

在服务器端设置保活计时器,服务器每收到客户机的一次消息,就重置保活计时器,时间通常为2小时。若2个小时都没有收到客户机发来的消息,服务器就像客户机发送一个探测报文,以后每隔75分钟发送一次。若连续发送了10个探测报文后客户机仍无响应,则服务器就会认为客户机故障,并断开这次连接。

时间等待计时器

时间等待及时器用于TCP“四次挥手”阶段。当客户端向服务器发送最后一次确认报文时,就设定一个时间等待及时器,等待2MSL时间后再结束连接。

MSL:最长报文段寿命,大小为30s~2分钟。根据不同的应用有不同的设置。

客户机为什么要等待2MSL时间?

①为了保证服务器能够收到客户机发送的最后一个确认报文。

因为这个最后报文可能丢失,服务器收不到客户机的确认信息,就无法进入CLOSED状态。就会在重传定时器到达后重新发送上一次的报文(此时会重置时间等待计时器,再次等待2MSL时间),这样客户机在等待2MSL时间过程中就可以收到这个重传报文,并重新发送确认报文。

②防止出现“已失效的连接请求报文”再次出现的情况。

客户机在等待的这2MSL时间中,就可以使此次连接的所有报文都从网络中消失,这样在下一次新的连接中就不会出现旧的连接请求报文。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

Idea 无法引用类问题解决办法

这篇文章主要介绍了 Idea 无法引用类问题解决办法的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Unity3D中shader 轮廓描边效果实现代码

这篇文章主要介绍了Unity3D中shader 轮廓描边效果的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

8个基于Lucene的开源搜索引擎(推荐)

Lucene是一种功能强大且被广泛使用的搜索引擎,以下列出8种基于Lucene的搜索引擎,你可以想象他们有多么强大
收藏 0 赞 0 分享

计算机二级如何一次性通过?给NCRE焦躁心情降温!

计算机二级到现阶段应该如何备考,该听什么课?该针对哪些考点重点学习,这些都要做到心里有数,有计划性。这篇文章为大家分享了计算机二级备考技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

HBuilder打包App方法(图文教程)

下面小编就为大家带来一篇HBuilder打包App方法(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

深入理解Scala函数式编程过程

这篇文章主要介绍了深入理解Scala函数式编程过程的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下
收藏 0 赞 0 分享

权限控制之粗粒度与细粒度概念及实现简单介绍

这篇文章主要介绍了权限控制之粗粒度与细粒度概念及实现简单介绍,具有一定参考价值,需要的朋友可以了解下。
收藏 0 赞 0 分享

Hbuilder配置Avalon和Vue指令提示的方法详解

HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE,下面这篇文章主要给大家介绍了关于Hbuilder如何配置Avalon和Vue指令提示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面来一起看
收藏 0 赞 0 分享

Hbuilder连远程接服务器上传代码的图文教程

下面小编就为大家分享一篇Hbuilder连远程接服务器上传代码的图文教程,具有很好的参考价值,一起跟随小编过来看看吧,希望对大家有所帮助
收藏 0 赞 0 分享

App开发建议技巧

有同学问我,对应用开发你有没有值得注意或小技巧的地方可以分享的。比如适配、优化、排查错误什么的。鸡排把自己的总结笔记整理出来了。供大家参考
收藏 0 赞 0 分享
查看更多