ホームページ >Java >&#&チュートリアル >TCP キープアライブはどのようにして古いソケット接続を防止しますか?
はい。TCP ソケット接続には、 TCP キープアライブ。これは、ソケット接続が無期限に開いたままになるのを防ぎ、一方が他方に通知せずに接続を終了するシナリオに対処します。
TCP キープアライブは、次の方法で Linux 上で構成できます。プロパティ:
このプロセスには、応答を受信するまで空の ACK パケットを定期的に送信することが含まれます。指定された数のプローブ後に応答が受信されない場合、接続は終了します。
キープアライブ パケットはオプションであり、確実に送信されない可能性があります。ただし、実際には、ほとんどのオペレーティング システムとクラウド プロバイダーがこのメカニズムをサポートしています。
ソケットごとの構成 (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:
レジストリ キー: HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTCPIPParameters
以上がTCP キープアライブはどのようにして古いソケット接続を防止しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。