古いバージョンのブラウザーを使用しています。MSN を最適にご利用いただくために、サポートされているバージョンをご使用ください。

「スピードテストブースト」は可能なのか?

ITmedia Mobile のロゴ ITmedia Mobile 2017/05/03 06:00
「スピードテストブースト」は可能なのか?: ITmedia Mobileでも、スピードテストアプリを用いたテストを実施している © ITmedia Mobile 提供 ITmedia Mobileでも、スピードテストアプリを用いたテストを実施している

 2017年4月に筆者が所属するIIJが主催したイベント「IIJmio meeting 15 大阪会場」の席上で、「ITmediaで実施している、アプリで測ったスピードテストの結果と、画像のダウンロード速度が大きく違う事業者さんがある」というご質問を会場の方からいただきました。

 この「アプリ」とは、AndroidやiPhoneのマーケットで無料で配布されている「スピードテストアプリ」です。スピードテストアプリについては以前にこの連載でも取り上げた通り、いろいろな前提条件はあるものの、MVNOの比較ポイントである通信速度を調べるための手法の1つとしてよく使われています。

 この記事が掲載されているITmedia Mobileでも、編集部の調査記事として各MVNOの速度比較が定期的に掲載されています。また、他のWeb媒体や雑誌・新聞、そして個人のブログでも同じ趣旨の記事が掲載されています。これらの記事のほとんどではスピードテストアプリの結果をもって、MVNO間の優劣を比較するという構成になっています。今回の指摘は、一部のMVNOではこれらの結果が実際の利用感を反映していないのではないか、というものです。

 同様の指摘は他にもあり、例えば2017年3月に開催された「モバイルフォーラム2017」の席上ででもジャーナリストの石川温氏から同じ趣旨の問題提起がなされています。

 ネット上では、このようなスピードテストアプリの不可解な挙動に対して「スピードテストブースト」や「スピテス番長」などいう言葉が使われています。その言葉の意味することは、「MVNOが細工をすることでスピードテストアプリだけ良い結果が出るようにしているのではないか」という疑念です。比較記事の多くは、スピードテストアプリを使えば「公平な」比較ができるという前提で書かれていますので、仮にスピードテストの結果を細工できるというのであれば、これらの記事の根拠が揺らいでしまいます。

 こうした指摘を受けてか、ITmedia Mobile編集部では4月よりスピードテストアプリだけでなく、YouTubeなど実際のアプリケーションを使って実際の利用時の体感を調査する試みを始めているようです。しかし残念ながら、スピードテストアプリの結果とその他のアプリの利用感が懸け離れているMVNOがあることがこの記事でも確認されています。

 これらのMVNOは「スピードテストブースト」のような細工をしているのでしょうか? そもそも、技術的にスピードテストの結果だけを良くするような細工は可能なのでしょうか? 今回の「MVNO深イイ話」では、スピードテストブーストが実現できるのかどうか、そして、その技術的な背景について紹介したいと思います。

●「混雑のため速度が低下する」とは?

 スピードテストブーストについて考えるためには、まず「混雑のために通信速度が低下する」という現象について理解しなければなりません。実際の環境ではさまざまな要因が重なり複雑な挙動をするため一言で説明するのは難しいのですが、この記事では要点のみを単純化して説明してみたいと思います。

 次の図は、ある装置を境に容量の異なる通信回線が接続されている様子を表しています。それぞれの回線の中には、パケットという単位でデータが流れています。ここでは1秒間に120パケットのデータを流すことができる回線を「容量120の回線」と表しています。

 いま、装置の右側から左側に向けて毎秒120個のパケットが流れています。装置右側の回線は十分に容量が大きい状態、左側の回線は容量120としていますので、毎秒120個のパケットは問題なくこの機器を通過できます。

 この、「毎秒120個のパケットが流れている」という状態を「通信速度120」と表すことにします。

 では、ここに毎秒140個のパケットが流れてきた場合はどうなるでしょうか。装置左側の回線は容量120しかありませんので、全てのパケットが通過することはできません。この場合、通過できなかったパケットは装置上の「バッファ」と呼ばれる領域に一時的に保留された後、破棄されます。破棄されたパケットは通信相手に届きませんので、データの一部が欠落してしまいます。これでは利用に支障がありますので、実際には欠落したデータを再度送り直す「再送」が行われます。

 パケットを破棄する前にバッファに保留するのは、パケットの破棄をできる限り避けるためです。実際の環境ではデータの流れる量は一様ではないため、少し時間をずらせばパケットを破棄せずに送信できる可能性があります。もちろんパケットを無限に保留することはできないため、バッファに一定の量がたまったり、時間がたったりすると、パケットは破棄されてしまいます。バッファにどのぐらいの量、何時間パケットをためておくかは機器の性能や設定によります。一切バッファにためずに即時パケットを破棄する設定も可能です。

 パケットの破棄が起こった結果、機器左側の回線には毎秒120個のパケットしか流れません。つまり、機器の右側からどれだけパケットが流れてきても、機器の左側では回線容量の上限である通信速度120に制限されるのです。

 ここまで、機器を通過するパケットは特に区別をしていませんでした。次の例では、1つの機器、回線を赤、緑、青の通信が同時に通過するという状態を考えてみます。

 機器の右側から、赤、緑、青の種類のパケットがそれぞれ毎秒100個流れてきています。しかし、機器左側の回線は容量120しかありませんので、この全てを通過させることはできません。通過できなかったパケットは、バッファに保留された後破棄されます。このとき、赤、緑、青のそれぞれから均等にパケットを破棄したとすると、機器左側の回線には、赤、緑、青のパケットがそれぞれ毎秒40個ずつ流れ、合計が回線容量と等しい毎秒120個になります。

 この状態について、赤、緑、青それぞれの通信に着目すると、「機器の右側では通信速度100だったものが、機器左側では通信速度40に低下した」と言うことができます。

 ここまで説明した内容を、MVNOの設備に当てはめてみましょう。

 この図は、キャリアの携帯電話網にMVNOの設備が接続されている状況を示しています。インターネットからダウンロードするパケットがMVNOの設備を経由して、キャリアの携帯電話網を通り、最終的にMVNO契約者のスマートフォンに届きます。しかし、MVNO〜キャリア間の通信回線は、MVNOとキャリアの契約により通過できるパケットの量が決まっており、それを超過したパケットはMVNOの設備上で破棄されます。結果、スマートフォンに届くパケットの量が制限され、利用者視点で見ると「通信速度が遅い」ように感じられるのです。

 これが、「混雑のために通信速度が低下する」という現象に相当します。

●通信の優先度と破棄するパケットの選択

 ここまでの説明では、回線の容量以上のパケットが流れ込んできた場合(混雑している場合)に破棄するパケットを、赤、緑、青の通信から均等に選んでいました。もし、均等に選ばなかった場合はどうなるのでしょうか?

 この例は、先ほどと同じように機器の右側から赤、緑、青それぞれ毎秒100個のパケットが流れてきて、これを機器左側の容量120の回線に流しているときの図です。先ほどと違うのは、赤の通信のパケットを優先し、できるだけパケットを破棄しないようにしていることです。

 その結果、赤の通信に着目すれば、右側からの流入毎秒100に対し左側へは毎秒80パケット流れ、均等に破棄したときに比べて通信速度の低下が抑えられています。しかしその一方で、緑、青の通信は20のパケットしか流れておらず、均等に破棄した場合よりも通信速度が落ち込んでいます。

 特定の通信を優先することで、その通信の速度低下は確かに抑えられますが、その分他の通信の速度低下が激しくなります。回線の容量が変わらない以上、これは仕方がないことです。

 「スピードテストブースト」という細工がもしあるとすれば、このような状態になっていると推測されます。つまり、スピードテストの通信だけが優先され、ある程度の速度が出る一方で、それ以外の通信がその分遅くなっているという状況です。

●通信を特定することでブーストが可能?

 ここまでの説明で、特定の通信だけを優先し、通信速度の低下を緩和することができることが分かりました。しかし、実際に「スピードテストブースト」を行うためには、回線に流れている通信の中でどれが「スピードテスト」に該当するかを特定する必要があります。そのための方法はいくつか考えられます。

 1つ目は、通信先による識別です。スピードテストアプリでは、アプリとインターネット上にあるサーバとの間で実際にデータを流します。測定用のサーバはアプリの開発元が用意していることが多く、アプリの通信を解析することで推定可能です。そのため、そのサーバとの間で行われている通信であれば、スピードテストのための通信だと推定することができます。

 2つ目は、通信の中身を見る方法です。スピードテストアプリと測定用サーバの間の通信は、何らかの特定の形式であったり手順を踏んでいたりすることが一般的です。そこで、各種スピードテストアプリの通信をあらかじめ確認しておき、実際の通信と照らし合わせることで、その通信がスピードテストのものかどうかを推定することができます。

 スピードテストのアプリによっては測定サーバが多数用意されており、通信先だけではそれがスピードテストなのかどうか判断しにくいことがあります。そのような場合でも、通信の中身を見ることでスピードテストの通信であるかどうかを推定できる場合があります。

 また、通信の中身を見ることで、スピードテストに限らず、動画の再生やゲームなど、その通信がどのような目的のものかを識別することができます。

 3つ目は、通信の特徴を捉える方法です。アプリによっては通信を暗号化しているため、通信を中継する機器がその中身を見ることができない場合があります。そのような場合には、通信の特徴を捉えることで、何のための通信かを推定する方法があります。

 スマホが行う通信は、その目的によって特徴的なパターンが現れることがあります。次に挙げたグラフは、Webの閲覧、動画の閲覧、スピードテストアプリの通信のパケットの流れ方のイメージです。

 Webの閲覧では、画面をタップした後に不規則にパケットが流れます。これは、Webを構成するHTMLやCSS、画像などを画面表示に従って随時ダウンロードするためです。

 YouTubeなどの動画の閲覧は、一定間隔で規則的にパケットが流れます。スマートフォンで使われる動画の配信方式(HLSなど)では、数秒単位に分割された動画のデータを、再生の進行に合わせて順次ダウンロードするため、このような特徴が現れます。

 一方、スピードテストアプリは回線の通信能力の限界を図ることが目的ですので、測定が始まると大量のパケットが継続的に流れ続けます。

 このように、通信の中身を見ずとも、パケットの流れ方の特徴から何のための通信かをある程度推定できる場合もあるのです。

 これらの手法を組み合わせることで、回線を流れている通信の中からスピードテストと思われるものが推定できれば、あとはその通信を優先的に流すように制御をすれば良いことになります。

 ところで、ここで取り上げた通信の推定方法はDPI(Deep Packet Inspection)といいます。DPIは特定アプリの通信料を無料にするカウントフリーでも使われることがあります。

●通信制御の技術と意図

 ここまで、「スピードテストブースト」を実現するために使われるであろう技術について紹介しました。注意していただきたいのは、これらの技術を使ったとしても、設備の上限を上回る結果を出すことはできない、あくまでスピードテストの通信の速度低下を緩和することができるだけだということです。

 しかし、昼休み(12時〜13時)など、利用の集中のために全体的に速度が低下している中で、スピードテストのみ速度の低下が緩和されているのであれば、結果的に「ブースト」したように見えるでしょう。昼休みの速度低下はほぼ全てのMVNOで共通して起こっていることですので、その時間帯でもスピードテストの結果が低下していなことをみた利用者は良い印象を持つものと思われます。

 この通り、技術的には「スピードテストブースト」のようなことは可能です。しかし、アプリの結果や動画のダウンロード速度の比較だけを見て、あるMVNOがスピードテストをターゲットに細工していると考えるのはいささか勇み足です。仮に何らかの通信制御が行われていたとしても、外部からの観測だけでは実際にどのような細工が施されているのか、また、それがどのような意図に基づいて行われたのかを断定することはできません。

 例えば、スピードテストアプリの結果に比べて動画再生時のダウンロード速度が著しく遅いといった現象を確認したとしても、それがスピードテストの通信を優先させたのか、反対に動画のダウンロードだけを劣後させていたのかは分かりません。

 また、優先する通信、劣後させる通信を識別する際に、その識別条件が十分ではなく、本来対象と考えていたのとは異なる通信に影響を与えていただけという可能性もあります。

 特定のアプリの通信を無料化する「カウントフリー」や、画像・動画の品質を劣化させることで体感速度を高める「通信の最適化」を始め、MVNO各社は特色を出すために通信内容をさまざまに制御する技術を投入しています。それによって得られるメリットもあるでしょうが、一方で利用者にとっては投入された技術が自分の通信にどのような影響を与えるのか分かりにくくなっているという側面もあります。

 スピードテストは結果が数字で表される「分かりやすい」指標です。しかし、それに過度に注目しすぎると、事業者も、利用者も本質を見失ってしまう可能性があります。

 そもそも、スピードテストアプリは通信速度を測るための1つの方法ではありますが、アプリが測った速度があらゆる状況に適用できるわけではありません。スピードテストが計測のために行う通信は、スマートフォンが行う通信の中でもかなり極端なものです。スピードテストの結果はあくまで1つの結果として、ほどほどに参考にするのが良いのではないかと考えています。

ITmedia Mobileの関連記事

image beaconimage beaconimage beacon