QUICとは
くいっく
UDPの上で動くトランスポート層のプロトコル。TLS 1.3による暗号化を組み込み、接続の確立と鍵の交換を合わせて1往復で行う。1つの接続の中に複数のストリームを多重化し、あるストリームのパケットが失われても、ほかのストリームは止まらない。HTTP/3の土台で、2021年にRFC 9000としてIETFで標準化された。
「QUIC」は、2分野の3問の練習問題に出てきます(ネットワークの基礎, Web技術の基礎など)。
この用語の分野: ネットワークの基礎
くいっく
UDPの上で動くトランスポート層のプロトコル。TLS 1.3による暗号化を組み込み、接続の確立と鍵の交換を合わせて1往復で行う。1つの接続の中に複数のストリームを多重化し、あるストリームのパケットが失われても、ほかのストリームは止まらない。HTTP/3の土台で、2021年にRFC 9000としてIETFで標準化された。
「QUIC」は、2分野の3問の練習問題に出てきます(ネットワークの基礎, Web技術の基礎など)。
この用語の分野: ネットワークの基礎
IPの上に新しいトランスポートのプロトコルを直接作っても、途中のNATやファイアウォールの多くは、知らないプロトコルのパケットを通しません。また、TCPはOSのカーネルの中に実装されているので、改良しても世の中の機器に行き渡るまでに長い時間がかかります。QUICは、どこでも通るUDPの上に作り、アプリケーションやライブラリの中で動かすことで、ブラウザなどの更新に合わせて改良できるようにしました。ヘッダのほとんども暗号化し、途中の機器が中身に依存して将来の変更を妨げることを防いでいます。
TCPとTLSを使うと、TCPの3ウェイハンドシェイクの後にTLSのハンドシェイクが続きますが、QUICは両方を1つにまとめ、1往復でデータを送り始められます。前に接続したサーバには、最初のパケットからデータを送る0-RTTも使えます(ただし、繰り返されても困らない要求に限ります)。また、HTTP/2はTCPの1つの接続に複数のストリームを載せるので、1つのパケットが失われると全部のストリームが待たされますが、QUICはストリームごとに順序を管理するので、損失の影響はそのストリームだけで済みます。
TCPの接続はIPアドレスとポート番号の組で区別されるので、スマートフォンがWi-Fiから携帯電話の回線に切り替わると切れてしまいます。QUICは接続をコネクションIDで区別するので、アドレスが変わっても接続を続けられます(コネクションマイグレーション)。損失の検出、再送、輻輳制御もQUICの中で行い、パケット番号を再利用しないので、元のパケットと再送したパケットを区別でき、RTTを正確に測れます。一方、カーネルやネットワークカードの支援が多いTCPに比べ、CPUの負荷が高くなりやすいという課題もあります。
正解:A. コネクションを確立せず、再送や順序の制御をしないので、ヘッダが小さく、送るまでの待ちもない
UDPは、IPの上にポート番号と簡単な誤り検出(チェックサム)を加えただけの軽いプロトコルで、ヘッダは8バイトです(TCPはオプションなしで20バイト)。接続の手順がなく、届いたかの確認や再送もしないため、少し失われても遅れない方がよい音声通話やライブ映像、1回の問い合わせと応答で済むDNSなどに使われます。信頼性が必要なら、アプリケーションの側で補います。例えば、HTTP/3で使われるQUICは、UDPの上で再送や暗号化を実装しています。コネクションの確立、再送、順序の制御を行うのはTCPです。
正解: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)も用意しています。
どちらも確実で順序どおりの通信を提供しますが、QUICはUDPの上で動き、TLS 1.3の暗号化を組み込んでいます。接続の確立が速く(1往復、再接続なら0往復)、1つの接続に複数のストリームを独立して流せ、IPアドレスが変わっても接続を続けられる点がTCPと違います。
HTTP/3は、HTTPのやり取りをQUICの上で行う版です。HTTP/2がTCPとTLSの上で行っていたストリームの多重化や暗号化を、QUICが担います。そのためHTTP/3の通信は、通常UDPの443番ポートを使います。
例えば、HTTP/3で使われるQUICは、UDPの上で再送や暗号化を実装しています。
UDPの特徴として正しいものはどれか。HTTP/3で使われるQUICは、トランスポートと暗号のハンドシェイクを1往復にまとめ、再接続のときには最初の往復でデータを送る方法(0-RTT)も用意しています。
RTT(往復の時間)が100 msのWebサーバに、HTTPS(TCPの上のTLS 1.3)で新しく接続し、最初のリク…HTTP/3はUDPの上で動くQUICを使い、ストリームごとに順序を管理するので、損失の影響がそのストリームだけにとどまります。
HTTP/2とHTTP/3の説明として正しいものはどれか。Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。
TCP HTTP UDP DNS IP(インターネットプロトコル) ポート番号 ARQ(自動再送要求) RTT(往復遅延時間) HTTPS TLS