zoukankan      html  css  js  c++  java
  • tcpip详解笔记(20) TCP的Keepalive定时器

    1. Keepalive定时器用于用于检测空闲连接的另一端是否崩溃或重启。

    2. 设置SO_KEEPALIVE选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP就自动给对方 发一个保持存活探测报文段,客户主机处于以下4种状态之一:
    (1)客户主机接收一切正常,服务器收到期望的ACK响应,并将keepalive定时器复位。
    (2)客户主机已崩溃,并且关闭或者正在重启。此时,服务器无法收到相应,在75s后超时。服务器=总共发出10个这样的探查,每个间隔75秒。如果一个响应都没有收到,则终止连接。
    (3)客户主机已重启,此时服务器将收到一个复位响应,终止连接。
    (4)客户主机正常运行,但服务不可达,同(2)。

    3. keepalive定时器默认2小时的间隔备受争议,通常应用上需要的时间要比2小时短的多。并且,当系统关闭一个由KEEPALIVE机制检查出来的死连接时,是不会主动通知上层应用的,只有在调用相应的IO操作在返回值中检查出来。因此,如果上层应用需要保活机制,最好还是自己实现。

  • 相关阅读:
    A. Difference Row
    B. Fixed Points
    命运
    Climbing Worm
    大学感想
    Constructing Roads
    lintcode605- Sequence Reconstruction- medium- airbnb google
    lintcode616- Course Schedule II- medium
    lintcode615- Course Schedule- medium
    lintcode127- Topological Sorting- medium
  • 原文地址:https://www.cnblogs.com/feisky/p/2735942.html
Copyright © 2011-2022 走看看