この情報はどこに保存されますか(「この接続はコンピューターA
とサーバーの間F
です」)?
TCP接続は、送信元IPとポート、および宛先IPとポートによって認識されます。これにより、OS、すべての中間セッション対応デバイス、およびサーバーのOSが接続を認識します。
HTTPはrequest-responseと連動します。クライアントはサーバーに接続し、要求を実行して応答を取得します。キープアライブがない場合、HTTPサーバーへの接続は各応答の後に閉じられます。HTTPキープアライブを使用すると、特定の基準が満たされるまで、基になるTCP接続を開いたままにします。
これにより、単一のTCP接続で複数の要求と応答のペアが可能になり、TCPの比較的遅い接続の起動の一部が排除されます。
IIS(F)がキープアライブヘッダーを送信する(またはユーザーがキープアライブを送信する)場合、(E、C、B)接続を保存することを意味しますか
いいえ。ルーターはセッションを記憶する必要はありません。実際、同じTCPセッションに属する複数のTCPパケットがすべて同じルーターを通過する必要はありません。つまり、TCPが管理する必要があります。ルーターは、最適なIPパスを選択してパケットを転送するだけです。キープアライブは、クライアント、サーバー、およびその他の中間セッション対応デバイス専用です。
これは私のセッション専用ですか?
他の誰もその接続を使用できないことを意味しますか
それがTCP接続の意図です。これは、これらの2つのパーティのみを対象としたエンドツーエンド接続です。
もしそうなら-それはそれがキープアライブヘッダー-重複する接続ユーザーの数を減らすことを意味するのですか?
「重複した接続」を定義します。以下のようないくつかの長所と短所については、HTTP持続接続を参照してください。
- CPUとメモリの使用量が少ない(同時に開かれる接続が少ないため)。
- リクエストとレスポンスのHTTPパイプラインを有効にします。
- ネットワークの混雑が緩和されます(TCP接続が少なくなります)。
- 後続のリクエストでのレイテンシの削減(ハンドシェイクなし)。
その場合、接続はどのくらいの期間保存されますか?(つまり、キープアライブを設定した場合、いつまで「キープ」するのですか?)
一般的なキープアライブ応答は次のようになります。
Keep-Alive: timeout=15, max=100
たとえば、Hypertext Transfer Protocol(HTTP)キープアライブヘッダー(キープアライブヘッダーが2616と2086の両方よりも詳しく説明されているHTTP / 2のドラフト)を参照してください。
ただし、サーバーは、任意の時間または数の要求の後(現在の要求への応答を返す限り)、接続を自由に閉じることができます。これがどのように実装されるかは、HTTPサーバーによって異なります。