首頁  >  文章  >  Java  >  TCP 保持活動狀態如何運作以及套接字連線保持開啟狀態多久?

TCP 保持活動狀態如何運作以及套接字連線保持開啟狀態多久?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-26 14:05:03513瀏覽

How Does TCP Keep-Alive Work and How Long Do Socket Connections Remain Open?

TCP 套接字連接是否具有「保持活動狀態」?

與 HTTP 保持活動狀態不同,TCP 套接字連線不會無限期地保持開啟。相反,它們受到 TCP Keep-Alive 強制執行的逾時限制。

簡介

TCP 連接涉及兩個套接字,每個套接字駐留在連接的一端。通常,這些套接字保持開啟狀態,直到一端終止連線(由 FIN 資料包指示)。但是,如果發生意外的套接字終止,TCP Keep-Alive 會偵測並關閉過時的連線。

Keep-Alive Process

在Linux 系統上,TCP Keep-Alive使用以下預設設定運行:

  • (2 小時)
  • tcp_keepalive_probes:9
  • tcp_keepalive_intvl:75 秒

如果連接空閒時間超過tc_p_ACK_ACK_ACK_ACK_ACK.ACK_ACK_ACK_ACK_ACK_ACK_ACK_ACK_ACK。如果在指定次數的偵測後沒有回應,則透過 RST 終止連線。

問題

2 小時預設值: 默認,Keep-Alive 過程僅在2 小時不活動後啟動,這可能會導致過時的連接持續存在。

Keep-Alive 是可選的: 回應 Keep-Alive 封包是可選的,並且某些實作可能會丟棄它們。

更改TCP 逾時

要修改TCP 超時,請參考以下特定作業系統的說明:

Linux:

  • 每個插槽: Java 目前不支援
  • 系統範圍: 使用echo 調整/ proc/sys/net/ ipv4/[tcp_keepalive_time|tcp_keepalive_probes|tcp_keepalive_intvl]

Mac OS X:

  • 持久: 將設定加到/etc/sysctl.conf
  • Windows:
  • 系統範圍:

    編輯HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTCPIPParameters
    • 中的登錄值

    以上是TCP 保持活動狀態如何運作以及套接字連線保持開啟狀態多久?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn