アプリケーション層・DNS・Web・音声 重要度:★★★出題: AM2・PM1・PM2
HTTP/2 と HTTP/3(QUIC)
えいちてぃーてぃーぴーつーとすりー / HTTP/2 & HTTP/3 over QUIC
単一コネクション上でストリームによるリクエスト/レスポンスの多重化を実現する次世代Web通信プロトコル。
3行速習ポイント
- HTTP/1.1のHOL(Head-of-Line)ブロッキングを解消するため、HTTP/2はストリームIDを用いて1本のTCP上で並列転送
- TLSハンドシェイク時のALPN拡張により、TCP/443上で使用する上位プロトコル(h2 または http/1.1)をネゴシエーション
- HTTP/3はトランスポート層にUDPベースのQUICを採用し、パケットロス時のTCP層でのストリーム間ブロッキングも完全に解消
図解
図HTTP/1.1・HTTP/2・HTTP/3 のプロトコルスタック進化
従来方式
HTTP/1.1(TCP + TLS)
直列処理(HOLブロッキングあり)・複数TCP接続が必要
↕
TCP多重化
HTTP/2(TCP + TLS + ストリーム多重化)
単一TCP接続上でストリームIDによる並列リクエスト/レスポンス
↕
QUIC採用
HTTP/3(UDP + QUIC 統合暗号化)
UDP上でストリーム独立再送と高速ハンドシェイクを実現
概要と本質
HTTP/1.1では先行するリクエストの処理が終わるまで後続の処理が待たされる(パイプライン化の制約)ため複数のTCPコネクションを張る必要がありました。HTTP/2はバイナリフレーミング層を導入し、ストリームIDによって単一TCPコネクション内で複数のリクエストとレスポンスを並列に多重化します。HTTP/3はさらにUDP上のQUICを用いることで、ハンドシェイクの1-RTT/0-RTT化と独立したストリーム再送を実現します。
重要ポイント・コア概念
- HTTP/2のフレームにはストリームIDが付与され、リクエストの順序にとらわれずレスポンスを並列に返送可能
- HPACK(HTTP/2)およびQPACK(HTTP/3)によるHTTPヘッダ圧縮(:method, :path等の擬似ヘッダフィールド)
- ALPN(Application-Layer Protocol Negotiation)によりTLS ClientHello内で利用可能なアプリケーション層プロトコルを通知
午後I・午後II記述試験での攻略ポイント
午後試験では「HTTP/1.1ではリクエストを受けたのと同じ順序でレスポンスを返す必要がある(先行処理が終わるまで後続が待たされる)」「ストリームIDで識別して並列に送受信する」「UDP上のQUICを用いるためFWやNAPTのUDPセッション保持時間・許可設定に注意する」が頻出です。
午後記述で使える加点キーワード(クリックでコピー)
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着ネットワークスペシャリスト 過去問演習で実践力を鍛える