在linux中「/proc/sys/net/ipv4/tcp_keepalive_time」對客戶端和伺服器都有影響嗎?

在linux中「/proc/sys/net/ipv4/tcp_keepalive_time」對客戶端和伺服器都有影響嗎?

我們有一台在 Linux 上運行的機器,我們在其中公開並使用使用 Keep Alive 設定的基於 SOAP 的 Web 服務。現在,當我們透過在Linux中設定「/proc/sys/net/ipv4/tcp_keepalive_time」來更改TCP保持活動逾時值時,這會影響在此Linux機器中執行的TCP客戶端和伺服器嗎?

附加資訊:我們使用部署在 apache karaf(servicemix) 中的 apache camel-cxf 端點來公開並使用基於 SOAP 的 Web 服務。

答案1

Linux核心對TCP keepalive的內建支援影響全部啟用 keepalive 的 TCP 套接字。

不過,預設情況下不啟用 TCP keepalive:應用程式必須使用該setsockopt介面明確請求其套接字的 keepalive 控制。

netstat您可以使用帶有選項的命令來檢查特定套接字上是否啟用了 keepalive -o, --timers

這裡可以看到,同一個進程可以在兩種模式下開啟不同的網路套接字:

# netstat -anpo | grep 8999
tcp        0      0 10.10.171.44:48744         10.10.139.30:8999          ESTABLISHED 18232/java          keepalive (83.39/0/0)

# netstat -anpo | grep 8009
tcp        0      0 10.10.171.44:8009          10.10.171.42:40947         ESTABLISHED 18232/java          off (0.00/0/0)

相關內容