日本のスマホサイトはなぜ遅いのか?
なぜ日本のスマートフォンサイトは海外に比べてとても遅いのでしょうか? 例に挙げたAmazonとディノスのサイトを比べてみましょう。以下のデータは、2012年12月16日10時15分02秒のAmazonのトップページのパフォーマンスとほぼ同時刻2012年10月16日10時15分00秒のディノスのトップページのパフォーマンスです。
Amazonが4.703秒に対して、ディノスは130.938秒と約28倍も違います。同じ場所でほぼ同時刻に計測して、どうしてこれだけの差が出るのでしょうか? Total Bytes Downloadの数値を見てください。
Amazonが75.51KBに対して、ディノスは771.27KBと約10倍です。欧米のスマホサイトは1ページあたりの容量を100KB前後で収めているのに対して、日本のスマホサイトは1ページあたりの容量が500KB以上、酷いところになると1MBを超えます。原因は、1ページあたりのサイズの差と考えられます。
Web上では、au(KDDI)やソフトバンクのLTE回線速度や繋がりやすさが話題になっています。「3G回線だから遅い」とか「LTEが普及すれば問題はなくなる」と思う人もいるでしょう。それでは、RBB TODAYというツールで回線速度を調べてみましょう。
結果は、3G回線の平均値は3.56Mbps(434KB/秒)となりました。一方で、スループットは、Amazonで16.06KB/秒、ディノスで5.89KB/秒です。なぜスピードテストと実測値に乖離が発生するのでしょう? 主な要因は3つ考えられます。
1番目は、携帯網の特性です。携帯網では、最寄りの無線基地局のアンテナまで電波で通信し、そして小規模ノードビルまで光ファイバーや同軸ケーブルで接続された回線を通り、さらに大規模ノードビルのゲートウェイを通ってインターネットと繋がります。有線回線経由やWi-Fi経由のHop数(自分の端末から相手のサーバーまで経由するルーター等の数)に比べて、携帯網の場合は多くなります。また、レイテンシー(各中継機器の反応速度)は有線回線で10ms以下ですが、携帯網の場合は100〜200msになります。
トラフィックスのボトルネックとなりうるのは、無線基地局、小規模ノードビル、大規模ノードビルと3か所あります。ボトルネックは、高速道路の混雑によく似ています。無線基地局=高速道路の各入口、小規模ノードビル=ジャンクション、大規模ノードビル=インターチェンジというようなイメージです。大規模ノードビルが過負荷で落ちると、ニュースで取り上げられる「携帯網の通信障害」となるわけです。
2番目は、自分が通信している無線基地局への同時接続ユーザー数です。携帯の無線基地局は電波同士の干渉が発生してしまうので、ユーザー数が多いからといって数を増やせません。無線基地局にアクセスが集中すると、ネットワークを負荷から守るために意図的にパケットをドロップします。もちろん、電波干渉などの意図しないパケットドロップも発生します。昼間の東京駅近辺で25〜35%ぐらい、昼間の渋谷で50%ぐらい、夜の渋谷は90%ぐらいドロップします。
3番目は、Webサイト通信の断片性とインタラクティブ性です。Amazon、ディノス、それぞれの通信の詳細を見てみましょう。
お詫びと訂正:掲載当初、ディノスの通信詳細(Waterfall図)とHTTPコネクション(Connection View図)が掲載されておりませんでした。ここに訂正するとともに、お詫びいたします。(2013年1月8日)
Waterfall図は、Webブラウザーがどのような順番で構成ファイルをダウンロードしたか、Ajaxで通信したかを時系列で把握できます。通信で大きな割合を占めているのが、Content Downloadです。通常、有線回線ではContent Downloadが時間を占めている場合は、ディスクアクセスの問題です。しかし、3G回線でContent Downloadが長くなるのはパケットドロップが原因です。3G回線では有線回線にくらべてドロップ率が高く、画像などの構成ファイルを複数ダウンロードするとパケットがドロップしてしまい、TCPによる再送手順が発生して通信全体の時間が長くかかってしまうのです。