0-RTT接続、これがQUICの力。QUIC対SPDY3の再接続対決(動画有)
1. QUICサーバを試す
先日紹介したGoogleの新プロトコル QUIC ですが、Chomium ソース中にテスト用の QUICサーバが用意されています(net/tools/quic以下)。 今のところこの QUIC サーバは、Linux上でしかビルドできません。また、コンテンツの方はあらかじめ wget で取得した静的なもの(バルサフレーム形式と呼ばれている)しか使えませんが、現在これを使っていろいろQUICの特性を評価しているところです。
Googleからのアナウンスにあるよう、QUICの大きな特徴の一つとして、
が挙げられます。
UDP上でQUIC独自にセッション管理をしているので再接続時には全くハンドシェイク無しで接続を開始できる技です。モバイル環境の様に頻繁にネットワークの切断・再接続が行われる場合などでは、その効果が表れることが期待されています。
そこで今回、この QUICの特徴、再接続の強さを検証してみたいと思います。
2. QUIC vs SPDY3 再接続対決
モバイルルーターに接続した端末を用意して、同一VPS上に QUICサーバとSPDY3サーバ(apache+mod_spdy)を用意します。ブラウザーは、Chrome Canary 30.0.1554.0 を使いました。
1000枚の画像(画像は数字が書いてあるだけ)を用意して Ajax で順次その画像を取得するページを作ります。
コードは以下で公開しています。
https://gist.github.com/shigeki/5930941
モバイルルータのLTE接続を不定期にOFF/ONして QUIC とSPDY3 で接続耐性がどれだけ違うか比較してみます。
試験した動画を以下に公開します。まず見てください。
当初短い時間の再接続では SPDY の方が若干有利、もしくは対等ですが、ある程度長い時間に接続断になると SPDY の Ajax リクエストが切れてしまっていることがわかります。(最終的に QUIC も切れてしまいます。)
何回か繰り返し試験をしたところ、たまにQUICが最初に切れる場合もありましたが、ほとんどがこの傾向でした。
このことからネットワーク再接続の管理をTCPに任せているSPDYに比べ、UDP上で独自にセッション管理を行うQUICの方が再接続耐性が強いことがわかったかと思います。