是,TCP 套接字連接有一個超時機制,稱為TCP 保持活動。它可以防止套接字連接無限期地保持開啟狀態,解決一側終止連接而不通知另一側的情況。
TCP 保持活動可以透過以下方式在Linux 上設定屬性:
這個過程涉及定期發送空的ACK 封包,直到收到回應。如果在指定次數的探測後沒有收到回應,則連線終止。
Keep-Alive 封包是可選的,可能無法可靠傳輸。然而,實際上,大多數作業系統和雲端提供者都支援此機制。
每個套接字配置(Java 11 及更高版本):
Java 11 引入了使用本機程式碼在每個套接字層級配置TCP 逾時的功能。
系統範圍配置:
對於舊版的 Java 和在其他作業系統上,您可能需要在系統層級套用逾時設定。
Linux:
# Echo commands to modify the values in /proc echo 180 > /proc/sys/net/ipv4/tcp_keepalive_time echo 3 > /proc/sys/net/ipv4/tcp_keepalive_probes echo 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl
Mac OS X:
# Use sysctl to modify values sysctl -w net.inet.tcp.keepidle=180000 net.inet.tcp.keepintvl=10000 net.inet.tcp.keepcnt=3
Windows
WindowsWindows 登錄項目:HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTCPIPParameters以上是TCP Keep-Alive 如何防止陳舊的套接字連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!