QUIC くいっく
UDPHTTP/3TLS 1.3トランスポート層多重化低遅延
QUICについて教えて
簡単に言うとこんな感じ!
インターネット通信の「高速道路」を作り直したプロトコルだよ!従来のTCPという仕組みは渋滞が起きやすかったんだけど、QUICはそれをすっ飛ばして「複数車線・信号なし」で爆速通信できる次世代の道路なんだ!
QUICとは
QUIC(Quick UDP Internet Connections) は、Googleが2012年頃に開発を始め、その後IETFによって標準化されたトランスポート層プロトコルです。従来のウェブ通信を支えてきたTCP(Transmission Control Protocol) の課題を解決するために設計されており、特にページ読み込みの速度改善や不安定な回線でのパフォーマンス向上に大きく貢献します。
QUICの最大の特徴は、UDP(User Datagram Protocol) の上に構築されながらも、TCPが持っていた「信頼性のある通信」や「暗号化」の機能を自前で実装している点です。さらに TLS 1.3 による暗号化が最初から組み込まれており、接続確立にかかるラウンドトリップ(通信の往復回数)を大幅に削減します。2022年にRFC 9000として正式標準化され、HTTP/3 の基盤プロトコルとしても採用されています。
QUICの仕組みと特徴
| 特徴 | 内容 |
|---|---|
| ベースプロトコル | UDP上で動作(TCPではない) |
| 暗号化 | TLS 1.3が標準組み込み(オプションではない) |
| 接続確立 | 初回は1-RTT、再接続は0-RTTで完了 |
| 多重化 | 複数ストリームを並列処理(HOLブロッキングなし) |
| 接続移行 | IPアドレスが変わっても接続を維持できる |
HOLブロッキングって何?
HOLブロッキング(Head-of-Line Blocking) とは、先頭のデータが届くまで後続のデータが全部待たされてしまう問題のこと。TCPでは1本の「パイプ」にデータを順番に流すので、先頭のパケットが詰まると全体が止まってしまいます。QUICは複数の独立したストリームでデータを並行送受信するため、1つが詰まっても他には影響しません。
接続確立の速さで比べると
| プロトコル | 接続確立のラウンドトリップ数 |
|---|---|
| TCP + TLS 1.2 | 3-RTT(TCPで1、TLSで2) |
| TCP + TLS 1.3 | 2-RTT(TCPで1、TLSで1) |
| QUIC(初回) | 1-RTT |
| QUIC(再接続) | 0-RTT(即座にデータ送信!) |
歴史と背景
- 2012年 — Googleが社内プロジェクトとして実験的にQUICを開発開始
- 2013年 — ChromeブラウザとGoogleサーバー間での実験的な運用開始
- 2015年 — IETFに提案。標準化の議論が始まる
- 2018年 — HTTP over QUICが「HTTP/3」と改名され、IETFのドラフト仕様として整備が進む
- 2021年 — HTTP/3がRFC 9114として公開(QUICを下位プロトコルとして採用)
- 2022年 — RFC 9000としてQUICが正式標準化。主要なクラウドサービス・CDNが対応
TCPとQUICの比較
TCP(従来)とQUIC(新世代)の構造を並べて見てみましょう。
実務でQUICが使われている場面
- Google系サービス(Gmail, YouTube, Google検索) — QUICを最も積極的に使っているサービス
- Cloudflare, AWS CloudFront — HTTP/3対応CDNとしてQUICを採用
- Meta(Facebook) — 独自のMVFSTというQUIC実装を運用
- モバイル通信 — Wi-Fiから4G/5Gへ切り替わっても接続が途切れない「接続移行」が特に有効
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 9000 | QUICトランスポートプロトコルの主仕様(2022年) |
| RFC 9001 | QUICにおけるTLS 1.3の使用方法 |
| RFC 9002 | QUICの損失検出・輻輳制御アルゴリズム |
| RFC 9114 | HTTP/3(QUICをベースとしたHTTPの次世代仕様) |
| RFC 8446 | TLS 1.3(QUICが内部で使用する暗号化プロトコル) |
関連用語
- UDP — QUICが基盤として採用している軽量トランスポートプロトコル
- TCP — QUICが置き換えを目指す従来のトランスポートプロトコル
- HTTP/3 — QUICを下位プロトコルとして採用したHTTPの最新バージョン
- TLS — QUICに内蔵されている通信暗号化の仕組み(バージョン1.3)
- HTTP/2 — TCP上で多重化を実現したHTTPの前世代(HOLブロッキングの課題が残る)
- CDN — QUICに対応したコンテンツ配信ネットワーク。CloudflareやAWSが採用
- RTT — Round-Trip Time。接続確立の速さを測る指標でQUICの性能比較に使われる
- 輻輳制御 — ネットワークの混雑を制御する仕組み。QUICは独自実装を持つ