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