zoukankan      html  css  js  c++  java
  • 《TCP/IP详细解释》札记(23章)-TCP该保活定时器

    可能有这样的备用现实TCP连接:流通过。

    也就是说。假设TCP连接的两方都没有向对方发送数据。则在两个TCP模块之间不交换不论什么信息,这意味着我们能够启动一个客户与server建立连接,然后长时间不使用,而连接依旧保持。中间的路由器能够崩溃和重新启动,电话线能够被挂断再连接,但仅仅要两端的主机没有被重新启动。则连接依旧保持建立。

    然而,很多时候一个server希望知道客户主机是否崩溃并关机或者崩溃又又一次启动。很多实现提供的保活定时器能够提供这样的能力。保活并非TCP规范中的一部分。


    保活定时器工作原理:

    假设一个给定的连接在2小时内没有不论什么动作。那么server就向客户发送一个探查报文段。

    客户主机必须处于下面4个状态之中的一个:

    (1)客户主机依旧正常执行,并从server可达。客户的TCP响应正常。而server也知道对方的正常工作的,server在2小时内将保活定时器复位。


    (2)客户主机已经崩溃。而且关闭或者正在又一次启动。在不论什么一种情况下,客户的TCP都没有响应。server将不能收到对探查的响应。并在75秒后超时,总共发送10个探查。每一个间隔75秒。假设server没有收到一个响应,它就觉得客户主机已经关闭并终止连接。
    (3)客户主机崩溃并已经又一次启动。这是server将收到一个对其保活探查的响应。但这个响应是一个RST复位。使得server终止这个连接。

    (4)客户主机正常执行。可是从server不可达。

    这与状态2同样,由于TCP不能够区分状态4与2之间的差别,它所能发现的就是没有收到探查的响应。

    server不用关注客户主机被关闭和又一次启动的情况,当系统被操作员关闭时,全部的应用进程也被终止。这会使客户的TCP在连接上发出一个FIN。接收到FIN将使server的TCP向server进程报告文件结束,使server能够检測到这个情况。


    原作者,转载请放置:http://blog.csdn.net/xifeijian/article/details/44263873

  • 相关阅读:
    [bochs]反编译的代码只能参考参考
    [Linux命令]dd
    exp1orer.exe木马解除方法
    江民公布“密码7005”最新变种技术报告
    广外女生1次惊心动魄的卸载
    [病毒]exp1orer.exe
    [Win2003]禁用关机原因调查
    获得本机IP地址
    一段连接FTP的VC代码
    [Perl]FTP自动上传文件的脚本以及配置文件
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4571075.html
Copyright © 2011-2022 走看看