分享

tcpip详解笔记(20) TCP的Keepalive定时器

 xn00 2014-08-13

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

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多