有些网络应用在网线断开后从新连上的状况下tcp socket链接保持ESTABLISH状态不变,假如应用程式不使用tcp的keepalive,在网线断开以后,之前创建的 socket 连接仍然会保持在ESTABLISH 状态不会改变。实际上tcp协议对这部分是有所处理的,须要服务端程式,在配置socket属性时,使用 keepalive option,一旦有此配置,这些长时间无数据的连接会根据tcp的keepalive内核属性,在大于(tcp_keepalive_time(tcp_keepalive_probes * tcp_keepalive_intvl))所对应的时间(单位为秒)以后,断开这些连接。

    关于keep alive不管windows,仍是linux,keepalive就三个参数: