TCP ソケット接続には「キープアライブ」がありますか?
HTTP キープアライブとは異なり、TCP ソケット接続は無期限に開いたままになるわけではありません。代わりに、TCP キープアライブによって強制されるタイムアウト制限の対象となります。
はじめに
TCP 接続には 2 つのソケットが含まれ、それぞれが接続の一端に存在します。通常、これらのソケットは、FIN パケットによって示されるように、一方の端が接続を終了するまで開いたままになります。ただし、意図しないソケット終了が発生した場合、古い接続を検出して閉じるために TCP キープアライブが存在します。
キープアライブ プロセス
Linux システムでは、TCP キープアライブ次のデフォルト設定で動作します:
接続が tcp_keepalive_time を超えてアイドル状態のままの場合、ACK パケットが相手側に送信されます。指定した数のプローブ後に応答がない場合、接続は RST 経由で終了します。
Gotchas
2 時間 デフォルト: デフォルト、キープアライブ プロセスは、非アクティブ状態が 2 時間続いた後にのみ開始され、古い接続が持続する可能性があります。
キープアライブはオプションです: キープアライブ パケットへの応答はオプションです。
TCP タイムアウトの変更
TCP タイムアウトを変更するには、次の OS 固有の手順を参照してください:
Linux:
Mac OS X:
Windows:
以上がTCP キープアライブはどのように機能し、ソケット接続はどのくらいの時間開いたままになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。