TCP保活定时器
2015-09-26 23:14
651 查看
现实中可能存在这么一种空闲TCP连接:没有任何数据流通过。也就是说,如果TCP连接的双方都没有向对方发送数据,则在两个TCP模块之间不交换任何信息,这意味着我们可以启动一个客户与服务器建立连接,然后长时间不使用,而连接依然保持。中间的路由器可以崩溃和重启,电话线可以被挂断再连接,但只要两端的主机没有被重启,则连接依然保持建立。
然而,许多时候一个服务器希望知道客户主机是否崩溃并关机或者崩溃又重新启动,许多实现提供的保活定时器可以提供这种能力。保活并不是TCP规范中的一部分。
保活定时器工作原理:
如果一个给定的连接在2小时内没有任何动作,那么服务器就向客户发送一个探查报文段。客户主机必须处于以下4个状态之一:
(1)客户主机依然正常运行,并从服务器可达。客户的TCP响应正常,而服务器也知道对方的正常工作的,服务器在2小时内将保活定时器复位。
(2)客户主机已经崩溃,并且关闭或者正在重新启动。在任何一种情况下,客户的TCP都没有响应,服务器将不能收到对探查的响应,并在75秒后超时,总共发送10个探查,每个间隔75秒。如果服务器没有收到一个响应,它就认为客户主机已经关闭并终止连接。
(3)客户主机崩溃并已经重新启动。这是服务器将收到一个对其保活探查的响应,但这个响应是一个RST复位,使得服务器终止这个连接。
(4)客户主机正常运行,但是从服务器不可达。这与状态2相同,因为TCP不能够区分状态4与2之间的区别,它所能发现的就是没有收到探查的响应。
服务器不用关注客户主机被关闭和重新启动的情况,当系统被操作员关闭时,所有的应用进程也被终止,这会使客户的TCP在连接上发出一个FIN。接收到FIN将使服务器的TCP向服务器进程报告文件结束,使服务器可以检测到这个情况。
然而,许多时候一个服务器希望知道客户主机是否崩溃并关机或者崩溃又重新启动,许多实现提供的保活定时器可以提供这种能力。保活并不是TCP规范中的一部分。
保活定时器工作原理:
如果一个给定的连接在2小时内没有任何动作,那么服务器就向客户发送一个探查报文段。客户主机必须处于以下4个状态之一:
(1)客户主机依然正常运行,并从服务器可达。客户的TCP响应正常,而服务器也知道对方的正常工作的,服务器在2小时内将保活定时器复位。
(2)客户主机已经崩溃,并且关闭或者正在重新启动。在任何一种情况下,客户的TCP都没有响应,服务器将不能收到对探查的响应,并在75秒后超时,总共发送10个探查,每个间隔75秒。如果服务器没有收到一个响应,它就认为客户主机已经关闭并终止连接。
(3)客户主机崩溃并已经重新启动。这是服务器将收到一个对其保活探查的响应,但这个响应是一个RST复位,使得服务器终止这个连接。
(4)客户主机正常运行,但是从服务器不可达。这与状态2相同,因为TCP不能够区分状态4与2之间的区别,它所能发现的就是没有收到探查的响应。
服务器不用关注客户主机被关闭和重新启动的情况,当系统被操作员关闭时,所有的应用进程也被终止,这会使客户的TCP在连接上发出一个FIN。接收到FIN将使服务器的TCP向服务器进程报告文件结束,使服务器可以检测到这个情况。
相关文章推荐
- TCP坚持定时器
- 计算机网络 之 常见网络协议相关总结
- TCP超时重传
- 2015 上海网络赛 ACM/ICPC Asia Regional Shanghai Online
- HTTP Status 500 -(struts2整合进spring2.5和hibernate3.3)
- 端 口 详 解
- 计算机网络
- 《TCP/IP详解》
- 【2015上海赛区网络赛】(没有补完)
- http请求头
- Android studio开发找不到HttpClient问题
- Linux Signal实现代码分析http://blog.csdn.net/suqin0802/article/details/8093004
- Android ViewPager从网络获取图片实现无限轮播
- hdu 5476 Explore Track of Point 2015上海网络赛 几何
- IOS 9 关于微信,QQ三方登陆的https适配结局方案,XCODE配置
- nefu487最长递增子序列问题【网络流24题】超详细讲解+模板
- 黑马程序员-----java基础(网络编程)
- TCP成块数据流
- hdu 5478 Can you find it 2015上海网络赛 数论
- TCP交互数据流