QUIC

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

QUIC (Quick UDP Internet Connections、「クイック」と発音) とはGoogleが開発している実験的なトランスポートレイヤー[1]ネットワークプロトコルで2013年より実装している[2][3][4]User Datagram Protocol (UDP)上の2つのエンドポイント間の多重化接続の集合体に対応していて、TLS/SSLと同等のセキュリティ保護を提供するだけでなく、接続と転送のレイテンシ削減やネットワーク輻輳を避けるために各方向で帯域幅英語版推定を行う。主な目標は現在TCPを使用するウェブアプリケーションの接続指向を最適化することである[1]

詳細[編集]

TCPの改善はGoogleにとって長期的な目標であり、QUICの目的は独立したTCP接続と同等に近づけることだが、できるだけレイテンシを削減し(目標はラウンドトリップタイム無しの一般的な接続)とSPDY対応の推進で、もしQUICの機能が効果的に実証されたらTCPとTLSの後継バージョンに移行することができる。

QUIC開発の動機の1つが、TCPにおけるシングルパケットの遅延がSPDYストリームの集合体全体でヘッド・オブ・ライン・ブロッキング英語版を引き起こす事実であり、QUICでは多重化に対応することでストリームを1つだけ一時停止することができる。

光速でおおまかに定義されるラウンドトリップタイムは制限されているが、接続レイテンシを減らす方法はより少ないラウンドトリップを生成することである。QUICで行われる作業のほとんどはハンドシェイクの段階、暗号化のセットアップ、初期データの要求を含む新たな接続が来た時に必要なラウンドトリップを減らすことに集中されている。QUICのクライアントには例として初期パケットのセッションネゴシエーション情報が含まれるとされ、QUICのサーバーでは他方、この情報の一部をホストするために静的構成ファイルを発行するとされる。クライアントはサーバーから得られた同期クッキーを保存することで、レイテンシ無し(最も良い場合)で同じサーバーへの後に続く接続を行えるようになる[1]

プロトコルはパケット損失英語版を処理することが多いが、パケットレベルの前方誤り訂正に加えて、QUICは暗号化ブロック境界やパケット境界を整列することで、パケット損失の影響を低減する。TCPが輻輳を避けるために輻輳ウインドウ英語版を使う時(TCP輻輳回避アルゴリズム英語版を参照)、多重化接続を許可しないが、QUICには検討中ながら現代的な技術の集合体がある。テストされた技術にはパケットペーシング(帯域幅推定をしながら)や積極的かつ推論的な再伝送英語版(エラー訂正や初期の暗号化ネゴシエーションのような最も重要なパケットの重複したコピーを送信する)がある。

QUICは冗長なデータ転送(ヘッダ英語版など)を削減や圧縮を行うためにより高レベルなアプリケーションプロトコル(SPDYのような)に対応している。

採用[編集]

クライアント(ブラウザ)対応[編集]

QUICのコードはGoogle Chrome [5]に統合されていて、バージョン29(2013年8月20日公開)の一部になっており、「chrome://flags/#enable-quic」と「chrome://flags/#enable-quic-https」の設定で有効にすることができる上、「chrome://net-internals/#quic」でアクティブなセッションを見ることができる。さらにこのブラウザ拡張機能でQUIC対応サイトかどうか表示することができる。

同様に、Opera 16にも導入されていて、「opera://flags/#enable-quic」と「opera://flags/#enable-quic-https」という設定で有効にすることができる上、「opera://net-internals/#quic」でアクティブなセッションを見ることができる。

サーバー対応[編集]

GoogleのサーバーはQUICに対応していて、Google自身も試作サーバーを公開している。

ソースコード[編集]

コードはBSDライセンスで公開されていて、ライセンスファイルにも明記されている。

Chromiumプロジェクトのウェブサイトでコード全文が閲覧可能かつ[6]Gitリポジトリとしても公開されている[7]

関連項目[編集]

脚注[編集]

  1. ^ a b c Nathan Willis. “Connecting on the QUIC”. Linux Weekly News. 2013年7月16日閲覧。
  2. ^ QUIC, Google wants to make the web faster, François Beaufort, Chromium Evangelist, https://plus.google.com/u/0/100132233764003563318/posts/b36wVornPtD 
  3. ^ Experimenting with QUIC”. Chromium Official Blog. 2013年7月16日閲覧。
  4. ^ QUIC: next generation multiplexed transport over UDP”. YouTube. 2014年4月4日閲覧。
  5. ^ Chromium Code Reviews: Issue 12317026: Various small QUIC cleanups after merging to Chrome.”. 2013年2月22日閲覧。
  6. ^ [chrome] Index of /trunk/src/net/quic
  7. ^ quic - chromium/src/net - Git at Google

外部リンク[編集]