KeepAliveとは

KeepAliveとは、ネットワークシステムにおいて、デバイスやソフトウェアが定期的に信号を交換し、相互の接続が維持されていることを確認する通信方式です。あらかじめ設定された間隔で一方がKeepAlive信号を送信し、受信側はその信号を接続が正常に機能していることの確認として解釈します。一定時間KeepAlive信号を受信しなかった場合、システムは接続が失われたと判断し、通信チャネルの切断、セッションの終了、再接続などの処理を開始します。

TCPでは、この機能はTCP KeepAliveと呼ばれます。サーバー側では、到達不能になったクライアントとの接続に割り当てられているリソースを自動的に解放します。クライアント側では、フェイルオーバーによってサーバーのIPアドレスが変更された場合などに、TCP KeepAliveによる自動再接続が可能になります。

HTTPには、クライアントとサーバー間のTCP接続を明示的に維持するKeepAlive機能があります。これにより、必要なTCP接続数が減り、接続リソースを節約してパフォーマンスを向上できます。Webページを読み込む際は、メインのHTMLファイルだけでなく、画像、CSS、JavaScriptファイルなどの関連リソースも転送する必要があります。通常、これらのファイルを転送するには、ファイルごとに個別のTCP接続が必要です。しかし、KeepAliveを有効にすると、単一のTCP接続でこれらを転送できます。この機能はHTTP/1.0では任意でしたが、HTTP/1.1以降はデフォルトで有効になっています。