QUIC (Quick UDP Internet Connections、「クイック」と発音) はUDP上で動く多重化トランスポートプロトコルであり、主に0-RTT 接続オーバーヘッドを目標としている。Googleの開発者であるRobbie Shade氏がビデオでQUICを紹介した。QUICには次のような特徴があるという。
SPDYのメリットすべて (多重化、優先度、など)
0-RTTコネクション
パケットペーシングによるパケットロス削減
再送前方誤り訂正による再送レイテンシ削減
適応型輻輳制御 (TCPフレンドリな) によるモバイルクライアントの再接続削減
TLS同等の暗号化
ChromeとGoogle間でQUIC通信が可能
QUICは伝送の信頼性、パケットの欠落や順番違いなど、UDPがデフォルトで提供していないものに対応する。QUICの多重化は複数のチャンネルを使ってデータを送ることを意味している。したがって、パケットがデータストリームの1つで失われても、ほかのストリームがその欠けたデータを待ってブロックするようなことはない。これはSPDYを使ったときと似ているが、SPDYは1つのチャンネル上で多重化している。QUICのアプローチはTCP伝送で起こり得る行頭ブロッキング問題を解決するとShade氏は言う。
QUICを使う大きなメリットは、クライアントとサーバが最初のやりとりをするとき、ハンドシェイクのステップが必要ないことだ。これはTCP Fast Openといくらか似ている。これは2011年以来議論されてきたが、まだ広く導入されてはいない。Shade氏によると、TCPハンドシェイクには大西洋を横断するコネクションで最大300msかかるが、QUICだとそのレイテンシを100msにまで削減できるという。
QUICのもう1つのメリットは、通信チャンネルがIP+ポートではなくIDによって定義されていることだ。これはWiFiゾーンを離れて企業のモバイルゾーンに入るといったネットワークの切り替えがあっても、コネクションの継続を可能にする。
QUICコネクションはすべて暗号化される。詳細な仕組みについてはQUIC Cryptoドキュメントにある。
なぜTCP+TLSの改良版を使わないのかという疑問に対し、Shade氏はこう答える。TCPとTLSは改良されているが、プロトコルのイテレーションとデプロイメントは非常に遅い。QUICはカーネルレベルではなくクライアントレベルでデプロイされるので、はるかに素早いイテレーション「数年ではなく数週」になる。
Shade氏によると、SPDYは将来QUICの上で動かすことができ、これはSPDYを今よりもさらに改善するという。Googleによって実際にQUICをテストして学んだ教訓のいくつかは、将来のTCPに取り込まれるだろう。
現在、Chromiumで利用できるクライアントとサーバがあり、QUICはgoogle.com、GMail、YouTube他、Googleのサービスで使われている。
参考: QUICビデオ、QUICビデオスライド、QUIC – プロトコルを詳細に説明したドキュメント、QUIC Wire Layout Specification – ワイヤフレーム仕様、QUIC Crypto、SPDY Indicatorエクステンション。