【くいっく】

QUIC とは?

最終更新:
💡 TCPの信頼性をUDPの速さで実現する次世代プロトコル
📌 このページのポイント
ハンドシェイク比較 TCP + TLS 1.2 Client Server SYN SYN-ACK RTT1 ACK + ClientHello ServerHello RTT2 Finished Finished RTT3 データ送信開始 QUIC Client Server Initial + ClientHello Handshake + ServerHello RTT1 データ送信開始 再接続時: 0-RTT 前回の鍵で即データ送信 QUICは接続確立が高速
QUICプロトコルの特徴
ひよこ ひよこ
QUICってなんでTCPじゃなくてUDPを使うの?
ペンギン先生 ペンギン先生
TCPはデータを確実に届ける信頼性がある代わり、接続確立に時間がかかるんだ。UDPは接続確立なしでデータを投げつけるから速い。QUICはUDPの速さを使いつつ、信頼性と暗号化を自分の仕組みで実装しているんだよ。
ひよこ ひよこ
HTTP/2と何が違うの?
ペンギン先生 ペンギン先生
HTTP/2ではTCPの上で複数ストリームを多重化するんだけど、1つのパケットが失われると全ストリームが止まる「ヘッドオブラインブロッキング」が起きる。QUICはストリームが独立しているから、1つのパケットが失われても他のストリームは影響を受けないんだ。
ひよこ ひよこ
スマホで画面を切り替えたりしたとき速い感じがするのもQUICのおかげ?
ペンギン先生 ペンギン先生
そう!QUICはコネクションIDという仕組みで、IPアドレスが変わっても接続を維持できるんだ。WiFiからモバイル通信に切り替わっても接続が切れないのはこのおかげ。YouTubeやGoogleの多くのサービスはもうQUICを使っているよ。
ひよこ ひよこ
QUICが普及するとファイアウォールで困ることがあるって本当?
ペンギン先生 ペンギン先生
これは見落とされがちな話でね。従来のファイアウォールTCPの検査が得意で、UDPはよく知られたポート(DNSなど)以外はブロックすることが多いんだ。QUICはUDP 443番を使うけど、ブロックする環境ではブラウザが自動的にHTTP/2TCP)にフォールバックする。でも企業のネットワーク管理者がUDP 443を意図的にブロックしていたり、QUICを想定していないミドルウェアが誤動作したりすることがある。プロトコルが進化しても、ネットワーク機器が追いつくまでに時間がかかる問題は昔から変わらないんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「QUIC」って出てきたら「UDPを使いながらTCP信頼性と暗号化を組み合わせた、HTTP/3を支える高速プロトコルだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「QUIC(Quick UDP Internet Connections)」 = 高速なUDPインターネット接続
💬 もとはGoogleが「Quick」をイメージして命名した略称。IETFによる標準化後は固有名詞扱いで、略語としての意味はなくなっているよ
← 用語集にもどる