RFC 9000 - QUIC: A UDP-Based Multiplexed and Secure Transport
著者: J. Iyengar (Google), M. Thomson (Mozilla)
公開日: 2021年5月
ステータス: Standards Track(標準トラック)
更新: RFC 8999
廃止: -
概要 (Abstract)
このドキュメントは、QUICトランスポートプロトコルのコアを定義します。QUICは、UDP上でアプリケーションにストリーム抽象化(Stream Abstraction)を提供し、TCPの抽象化に類似しており、TLSとTCPに相当する組み込みセキュリティを備えています。QUICは、ストリーム多重化、ストリームごとのフロー制御、および低遅延接続確立を提供します。
目次 (Table of Contents)
主要章
- 1. 概要 (Overview)
- 2. ストリーム (Streams)
- 3. ストリーム状態 (Stream States)
- 4. フロー制御 (Flow Control)
- 5. 接続 (Connections)
- 6. バージョンネゴシエーション (Version Negotiation)
- 7. 暗号化とトランスポートハンドシェイク (Cryptographic and Transport Handshake)
- 8. アドレス検証 (Address Validation)
- 9. 接続マイグレーション (Connection Migration)
- 10. 接続終了 (Connection Termination)
- 11. エラー処理 (Error Handling)
- 12. パケットとフレーム (Packets and Frames)
- 13. パケット化と信頼性 (Packetization and Reliability)
- 14. データグラムサイズ (Datagram Size)
- 15. バージョン (Versions)
- 16. 可変長整数エンコーディング (Variable-Length Integer Encoding)
- 17. パケットフォーマット (Packet Formats)
- 18. トランスポートパラメータエンコーディング (Transport Parameter Encoding)
- 19. フレームタイプとフォーマット (Frame Types and Formats)
- 20. エラーコード (Error Codes)
- 21. セキュリティに関する考慮事項 (Security Considerations)
- 22. IANAに関する考慮事項 (IANA Considerations)
- 23. 参考文献 (References)
附録
QUICコア機能
🚀 パフォーマンス上の利点
- 0-1 RTT接続確立: 初回接続1-RTT、再接続0-RTT
- ヘッドオブラインブロッキングなし: ストリームレベルの独立した転送、単一ストリームのパケット損失が他のストリームに影響しない
- 接続マイグレーション: IP/ポート変更で接続が中断されない(Wi-Fiから4Gへのシームレスな切り替え)
- 改善された輻輳制御: より正確なパケット損失検出と回復
🔒 セキュリティ機能
- 組み込みTLS 1.3: 暗号化と認証は必須
- トランスポートパラメータの暗号化: ハンドシェイクメタデータも暗号化
- 接続ID: IPアドレス関連付け攻撃を回避
📊 TCP+TLSとの比較
| 機能 | QUIC | TCP+TLS |
|---|---|---|
| ハンドシェイクRTT | 0-1 | 2-3 |
| ヘッドオブラインブロッキング | なし (ストリームレベル) | あり (バイトストリームレベル) |
| 接続マイグレーション | ✅ ネイティブサポート | ❌ アプリケーション層での処理が必要 |
| 多重化 | ✅ ネイティブサポート | HTTP/2が必要 |
| 暗号化 | 必須 | オプション |
| デプロイメント | 高速 (UDP) | 低速 (OS更新) |
ステータス説明 (Status)
このドキュメントはIETFの標準トラックドキュメントであり、IETFコミュニティのコンセンサスを表しています。
詳細情報: https://www.rfc-editor.org/info/rfc9000