【くいっく】

QUIC とは?

最終更新:
💡 UDPの上で、暗号化と複数ストリームの通信を扱う

UDP上で動作し、暗号化・信頼性のあるストリーム・接続の移行を提供する通信プロトコル。IETFのQUICはTLSのハンドシェイクを統合し、HTTP/3の通信基盤にも使われる。

📌 このページのポイント
QUIC:ストリームの欠落待ちを分ける HTTP/2:TCP HTTP/3:QUIC 受信側 送信側 受信側 送信側 Aの途中が欠落 Aの途中が欠落 Bのデータが到着 Bのデータが到着 TCPの順序待ち Bも先へ渡せない Bは先へ渡せる Aの中は順序待ち 1本のTCP接続 1本のQUIC接続 UDP上で暗号化・確認・再送・輻輳制御 早期送信や接続の移行には条件がある どんな通信も必ず高速になるわけではない
接続確立後、Aのデータが欠ける例。独立した順序と、経路全体の損失の影響は区別する。
ひよこ ひよこ
UDPならデータを投げるだけなの?
ペンギン先生 ペンギン先生
QUICは接続を持つプロトコルだよ。UDPのデータグラムにQUICのパケットを載せ、データの確認・必要な再送・輻輳制御を行う。UDPを使うだけで信頼性や速さが自動的に得られるわけではないんだ
ひよこ ひよこ
接続を始めるとき何が違うの?
ペンギン先生 ペンギン先生
暗号と通信のパラメーターをまとめて交渉し、TLSのハンドシェイクを統合するよ。過去の通信などの条件があると0-RTTの早期データを送れる場合もある。ただしサーバーが受け付けるとは限らず、データが繰り返し処理されるリプレイのリスクも考えるんだ
ひよこ ひよこ
HTTP/2の待ち時間はなくなるの?
ペンギン先生 ペンギン先生
HTTP/2のTCPでは、途中のデータが欠けると後続のデータを渡せず、複数の要求が待つことがあるよ。QUICではストリームの順序を別々に扱う。ただし同じ経路や輻輳制御を使うため、損失の影響がほかへ一切及ばないという意味ではないんだ
ひよこ ひよこ
Wi-Fiからモバイル通信に替えても続けられる?
ペンギン先生 ペンギン先生
接続IDを使って、IPアドレスなどが変わった経路でも同じ接続を識別できるよ。新しい経路の確認や相手の対応が必要で、能動的な移行を制限する設定もある。どんな切り替えでも必ず切れないという保証ではないんだ
ひよこ ひよこ
どのネットワークでも使えるの?
ペンギン先生 ペンギン先生
UDPが遮断されると、QUICの接続に失敗する場合があるよ。HTTP/3の仕様では、その場合にTCPを使うHTTPの利用を試みることが勧められている。QUIC自体が常にUDPの443番だけを使うわけではなく、通信先や実装の設定も確認するんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「QUIC」って出てきたら「UDP上で暗号化と複数ストリームを扱う、HTTP/3の通信基盤」と思えばだいたいOK!
📖 おまけ:英語の意味
「QUIC」 = 通信プロトコルの名前
💬 IETFの仕様ではQUICは略語ではなく名前とされているよ。Quick UDP Internet Connectionsを現在の正式な展開形として覚える必要はないんだ

参考資料

← 用語集にもどる