ネットワークの基礎
RTT(往復の時間)が100 msのWebサーバに、HTTPS(TCPの上のTLS 1.3)で新しく接続し、最初のリクエストを送って応答を受け取り始めるまでにかかる時間に最も近いものはどれか。DNSの名前解決は済んでおり、サーバの処理時間とデータの転送時間は無視する。
- A約100 ms
- B約300 ms
- C約200 ms
答えと解説を見る
正解:B. 約300 ms
まずTCPの3ウェイハンドシェイクで1往復かかります(クライアントは最後のACKと一緒にTLSの最初のメッセージを送れます)。次にTLS 1.3のハンドシェイクで1往復、その後にHTTPのリクエストと応答で1往復かかり、合計で3往復、3 × 100 = 300 msです。TLS 1.2では鍵の交換に2往復かかるため、4往復の400 msになります。この待ち時間は距離で決まるRTTの回数で決まるので、回線の帯域を増やしても短くなりません。HTTP/3で使われるQUICは、トランスポートと暗号のハンドシェイクを1往復にまとめ、再接続のときには最初の往復でデータを送る方法(0-RTT)も用意しています。
- A. HTTPのリクエストと応答の1往復だけで、TCPとTLSのハンドシェイクを数えていません。
- B. 正しい。TCP、TLS 1.3、HTTPでそれぞれ1往復、合計3往復です。
- C. TCPかTLSのどちらかのハンドシェイクを数え忘れた値です。