有些網絡應用在網線斷開後從新連上的狀況下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就三個參數: