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キープアライブの組み込みサポートは、全てキープアライブ対応 TCP ソケット。

ただし、TCP キープアライブはデフォルトでは有効になっていません。アプリケーションは、setsockoptインターフェイスを使用してソケットのキープアライブ制御を明示的に要求する必要があります。

netstat次のコマンドオプションを使用して、特定のソケットでキープアライブが有効になっているかどうかを確認できます-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)

関連情報