• 《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

  • 相关阅读:
    正则表达式(验证账号密码邮箱身份证)
    JS Fetch
    事件流动
    JS DOM和BOM
    CSS的定位
    For each...in / For...in / For...of 的解释和例子
    CSS的gridlayout
    CSS position属性
    CSS的颜色
    twelfth week
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4571075.html
Copyright © 2020-2023  润新知