[iPhone] iOS版Chromeにデータ圧縮プロキシ(SPDY Proxy)の限定プレビュー版がやってきた!

ある日のこと。iPhone5上のChromeを起動するとデータ圧縮プロキシ(Data Compression Proxy)の限定プレビューの招待が来ていました(やったー!)
データ圧縮プロキシはSPDY Proxyとも呼ばれている機能で、Googleの提供するSPDY Proxyを使用することで、高速化と安全性向上の機能を提供します。
この機能を少しだけ試してみました。(少しだけ…という理由はのちほど)

【データ圧縮プロキシとは】

データ圧縮プロキシについては、Google DevelopersのData Compression Proxyに書かれています。https://developers.google.com/chrome/mobile/docs/data-compression
Googleのサイトに記載されている内容を要約すると次の通りです。
ChromeからのHTTP要求はGoogleのデータセンタ内に設置されたSPDY Proxyを経由してWebサイトへ送られます(なおHTTPS要求は、SPDY Proxyを経由しません)。
spdy-proxy
※上記イラストはGoogleの記事より引用

SPDYを使用することにより、ChromeとSPDY Proxy間は単一のTCP接続のみが行われ、その接続中で複数の要求と応答が処理されます。したがってTCPハンドシェイクのオーバーヘッドやスロースタートフェイズがなくなることでより高いスループットを可能にします。Googleの調査によるとモバイルネットワークでは、SPDYを使用するだけで約23%の時間短縮になるとのことです。
副次的な効果として、DNSルックアップ時間の削減や、よりセキュアな接続が可能となります。
http-https
※上記イラストはGoogleの記事より引用

またSPDY Proxy上では、画像ファイルの最適化、テキストの圧縮(HTML/JavasScript/CSSの空白の削除、コメント等の縮小などを行う)、セーフティブラウジング機能(マルウェアやフィッシングサイトの検知を行う)が行われます。これによりSPDY以外の部分でも高速化が図れるだけでなく、安全性も向上します。

なおこのSPDY ProxyはiOS版Chromeの他、Android版Chromeでも限定プレビューが行われています。またPC版にもこの機能が搭載されているとのことです。ですので、サーバ側のSPDY対応を待つことなく、SPDYの恩恵を受けることができます。

【利用方法】

chrome_iOS_SPDY_1
データ圧縮プロキシに招待されると、Chromeを立ち上げ時に「招待済み」と書かれた画面が表示されます!
この画面には「招待済み 限定プレビューに参加してChromeに新機能を試す 帯域幅の節約と安全なブラウジング」と書かれ、即「有効化」するか、「詳細」で内容を確認することができます。

chrome_iOS_SPDY_2
「詳細」をタッチすると、データ圧縮プロキシ(SPDY Proxy)の機能について説明されます。
■帯域幅の節約
Chromeでは閲覧ページのデータ送受信が最適化されるため、データ通信量を抑えて多くのページをブラウジングできます。
■読み込みの高速化
データ通信量を抑えウェブページを拘束で読み込むことができます。
■安全なブラウジング
Chromeのセーフティブラウジング技術を使うと、フィッシングや不正なソフトウェアが含まれている疑いのあるサイトにアクセスする前に警告が表示されます。
上記のように説明されています。

chrome_iOS_SPDY_3
Chromeの設定メニューを選択すると「帯域幅の管理」メニューが追加されているのがわかります。

chrome_iOS_SPDY_4
「帯域幅の管理」メニューでは「ウェブページのプリロード」と「データ使用量を節約」が選択できます。
「ウェブページのプリロード」は、ウェブページを先読みする機能で、設定値としては常時、Wi−Fi接続時のみ、許可しないが選択できます。
「データ使用量を節約」でデータ圧縮プロキシ(SPDY Proxy)を使用するか否かが選択できます

chrome_iOS_SPDY_5
「データ使用量を節約」を選択すると、
この機能を有効にすると、アクセスしたページがGoogleサーバで圧縮されてからダウンロードされます。SSLとシークレットモードでアクセスしたページは対象外です。
Chromeのセーフティブラウジングには、不正なソフトウェアが含まれているページを検出し、フィッシング、不正なソフトウェア、有害なダウンロードからユーザーを保護する働きもあります。
とSPDY Proxyの機能についての説明があります。

【実際にSPDY Proxyを使用してみた】

[有効にしない時のIPアドレス]
chrome_iOS_SPDY_6a
確認くんで調べると、データ圧縮プロキシ(SPDY Proxy)を有効にしない場合、REMOTE_ADDRにはISPのものが表示され、FORWARDED_FORが(none)であるのでProxyは経由していないことがわかります。

REMOTE_ADDR: 1.77.95.246
REMOTE_HOST: u595246.xgsnum204.imtp.tachikawa.mopera.net
FORWARDED_FOR: (none)

※この時にはDoCoMoのモバイルルータを使用していたため、ISPがmoperaとなっています。

[有効にした時のIPアドレス]
chrome_iOS_SPDY_7a
確認くんで調べると、データ圧縮プロキシ(SPDY Proxy)を有効にした場合、以下の値となります。

REMOTE_ADDR: 74.125.16.4
REMOTE_HOST: (none)
FORWARDED_FOR: 1.77.95.246

REMOTE_ADDRは74.125.16.4となり、FORWARDED_FOR:には先ほどのmoperaのIP(1.77.95.246)が表示されます。74.125.16.4はwhoisで問い合わせると、Googleに割り当てられているアドレスブロックであることがわかります。
http://whois.arin.net/rest/nets;q=74.125.16.4?showDetails=true&showARIN=false

NetRange 74.125.0.0 – 74.125.255.255
CIDR 74.125.0.0/16
Name GOOGLE
Handle NET-74-125-0-0-1
Parent NET74 (NET-74-0-0-0-0)
Net Type Direct Allocation
Origin AS
Organization Google Inc. (GOGL)

これにより mopera から GoogleのSPDY Proxy を経由して外部に接続していることがわかります。

【どの程度帯域が節約できたか】

chrome_iOS_SPDY_8
先ほど確認くんで調べた際には約2%が圧縮されたことがわかります。

chrome_iOS_SPDY_9
グラフでも表示されるので、時系列でどの程度圧縮されたかがわかります。

テストデータが心もとないですが、テキストページでも圧縮できることがわかります。
実は、データ圧縮プロキシ(SPDY Proxy)でどの程度通信料が削減されるか、その後に詳細を調べる予定でした。しかし再度Chromeの画面を開いたところ「帯域幅の管理」メニューが消えていました….。その後もメニューは出てこず。ということで中途半端な状態ですが記事にまとめました。

この機能ですが、高速化や安全性向上といったメリットはありますが、httpの全トラフィックがGoogleのSPDY Proxyを経由することとなります。したがって表示している内容がGoogleに渡ってしまうというリスクもあります。どの程度の影響がでるかはわかりませんが、その点を認識した上で利用されるのが良いのではないでしょうか。


※タイトルを一部修正および、文中の表記を加筆・修正しました(9/26)