标签:
可能有这样的备用现实TCP连接:流通过。
也就是说。假设TCP连接的两方都没有向对方发送数据。则在两个TCP模块之间不交换不论什么信息,这意味着我们能够启动一个客户与server建立连接,然后长时间不使用,而连接依旧保持。中间的路由器能够崩溃和重新启动,电话线能够被挂断再连接,但仅仅要两端的主机没有被重新启动。则连接依旧保持建立。
然而,很多时候一个server希望知道客户主机是否崩溃并关机或者崩溃又又一次启动。很多实现提供的保活定时器能够提供这样的能力。保活并非TCP规范中的一部分。
保活定时器工作原理:
假设一个给定的连接在2小时内没有不论什么动作。那么server就向客户发送一个探查报文段。
客户主机必须处于下面4个状态之中的一个:
(1)客户主机依旧正常执行,并从server可达。客户的TCP响应正常。而server也知道对方的正常工作的,server在2小时内将保活定时器复位。(4)客户主机正常执行。可是从server不可达。
这与状态2同样,由于TCP不能够区分状态4与2之间的差别,它所能发现的就是没有收到探查的响应。
server不用关注客户主机被关闭和又一次启动的情况,当系统被操作员关闭时,全部的应用进程也被终止。这会使客户的TCP在连接上发出一个FIN。接收到FIN将使server的TCP向server进程报告文件结束,使server能够检測到这个情况。
原作者,转载请放置:http://blog.csdn.net/xifeijian/article/details/44263873
标签:
原文地址:http://www.cnblogs.com/bhlsheji/p/4571075.html