2018/2
asnokaze.hatenablog.com
Googleの考案したQUICは現在IETFで標準化が進められており、多くの人々によって議論されております。QUICの中身よりも現在の状況について、自分用に整理する。
Issueが追えてないので残念感ある。
概要
UDP上で信頼性のある暗号化されたHTTP/2通信を行うQUICは、もともとはGoogleが考案・実装・実証をすすめられていた。
IETFの会合で数度のBoF(WG設立前の議論)の開催へて、2016年にQUIC WGが出来QUICの標準化を進めることが決定した。
QUIC WGのゴールはCharterにかかれている通り、大まかに以下のとおりである
- アプリケーションのために、コネクション及びトランスポートの遅延を最小化すること
- head-of-lineブロッキングの無い多重化を提供すること
- エンドポイントの変更のみでデプロイ可能とすること
- マルチパスとFEC(forward error correction)を拡張機能として有効にする
- TLS1.3を使用した常時暗号を提供すること
また、マイルストーンとしては主要な4つの仕様は 2018年ごろにほぼほぼ標準としては固まった状態となり、IESGに提出される予定になっている
- Mar 2018 Core Protocol document to IESG
- Mar 2018 Loss detection and Congestion Control document to IESG
- Mar 2018 TLS 1.3 Mapping document to IESG
- Nov 2018 HTTP/2 mapping document to IESG
- Nov 2018 QUIC Applicability and Manageability Statement to IESG
- May 2019 Multipath extension document to IESG
7月に行われるIETF99において、以下にあげる仕様(draft04)で相互接続通信ハッカソンが行われる予定になっている。しかし、フル実装ではなく1RTTハンドシェイクにフォーカスしたものである (Home · quicwg/base-drafts Wiki · GitHub)
仕様・ドキュメント
主要仕様
現在の仕様、主要な4つに関してはWGドラフトとなりすでに改版が進んでいる。直近で6/13にdraft-04となっている
- 「QUIC: A UDP-Based Multiplexed and Secure Transport」 コアスペック。トランスポートとしてコネクションの確立やフレームやストリームの仕様
- 「QUIC Loss Detection and Congestion」 QUICのパケットロスの検出と輻輳制御について。基本的には既存の仕組みを利用する。
- 「Using Transport Layer Security (TLS) to Secure QUIC」 TLSを使用した暗号通信の仕様
- 「Hypertext Transfer Protocol (HTTP) over QUIC」 QUIC上でのHTTP通信を行う仕様
Ops
Opsに関して、すでにAdopetされている個人ドラフト
- 「Applicability of the QUIC Transport Protocol」 QUIC上のアプリケーションプロトコルの開発・デプロイに際しての注意事項
- 「Manageability of the QUIC Transport Protocol」 QUICのトラフィックがネットワーク運用に与える影響の注意事項
個人ドラフト
その他個人ドラフト
- 「Header Compression for HTTP/QUIC」QUICのヘッダ圧縮案の一つ。QPACKと呼ばれる
- 「Header Compression for HTTP over QUIC」QUICのヘッダ圧縮案の一つ。QCRAMと呼ばれる
- 「Hypertext Transfer Protocol (HTTP) over multicast QUIC」
- 「ECN support in QUIC」
- 「One Way Latency Considerations for Multipath in QUIC」マルチパス時の片方向レイテンシについての考慮事項
ドキュメント
その他仕様ではないが、参照されるもの
- 「QUIC Versions」Google QUICとIETF QUICのバージョンについて
- 「First Implementation Draft」相互接続通信テストのドキュメント
- 「Implementations」実装リスト
Google QUIC
その他Google QUIC側の資料は「Chromiumのプロジェクトページ」から辿れる。すべての資料ではないが、YoutubeにおいてFECを有効にした際の評価についての資料などもある。
議論/発表資料
直近の議論と、発表資料についてまとめる
IETF QUIC Working Group Interim Meeting
6/6~8にかけて行われた、IETFの本会合との間に設けられているQUIC WGの中間会議
「議事録」の通りとなるが、Implementation Draftの議論、幾つかのIssueについての熱い議論及び、下記の発表があった
- Encrypting QUIC Metadata
- QUIC Stateless Reset
- Unidirectional Streams
- Server chosen Connection ID
- Ending QUIC Connections
過去のIETF/Interimの議事録・発表資料はGithubで公開されている
https://github.com/quicwg/wg-materials
The HTTP Workshop
6/12~13にかけて行われた、標準化の場ではないが、仕様の著者、ブラウザベンダ、ミドルウェア実装者、CDNや大手サービスがHTTPについて議論するWorkshopであり、QUICに関する発表もあった。
- 「HTTP Header Compression over QUIC」 FacebookでのQPACK/QCRAM実装での実証実験
- 「Measurements From A QUIC Deployment」GoogleでのQUICデプロイの測定結果
Next IETF
次のIETFは7/16~21であり、もちろんQUIC WGのセッションもある。スケジュールはすでに公開されており、QUICのセッションは20, 21である。
余談だが、リモートでの参加は誰でも無料で出来る、深夜帯ではあるが興味ある方は下記記事を参照頂ければと思う
qiita.com