ひと月の旅行のあとにデータ警告が届くと、この疑問が浮かびます。VPNが容量を食ったのか。トンネルがバイトを増やすのは事実です。すべてのパケットに新しい外側ヘッダーが付き、接続自体が制御用の通信を運ぶからです。しかし、ダウンロードしたファイルを二倍にするわけでも、事業者が計測をやめるわけでもありません。正直な答えは二つの半分に分かれます。一つはオーバーヘッドについて、もう一つは数字がどう作られるかについてです。

俗説:VPNは使用量を何倍にもする

トンネリングは通信量をほぼ二倍にするので、容量は二倍の速さで消えるという説です。それにはオーバーヘッドがペイロードの大きさに近づく必要があり、ごく小さなパケットとおしゃべりなプロトコルでしか起きません。ふつうの閲覧やストリーミングでは、余分なバイトは全体のごく一部で、ひと月が早く終わる原因がトンネルであることはまれです。不安定なトンネルは別の話で、本当の倍増はそこにあります。

事業者は中身に関係なく外側の接続を計測するので、トンネルが通信を無料にすることはできません。通信量をキャリアから隠すこともできません。運んでいるのはキャリア自身だからです。

実際にバイトを増やすもの

カプセル化は各パケットを新しいヘッダーで包み、認証は独自のフィールドを加えます。正確なコストはプロトコルと使われるアドレス体系によります。小さなパケットほど不利で、固定のヘッダーが小さな合計に占める割合が大きくなります。最大サイズのペイロードで続く転送は相対的に安く済み、同じVPNでも二人がまったく違う割合を見るのはそのためです。パケットサイズとMTUが、経路のどれだけを中身ではなくヘッダーに使うかを決めます。

キープアライブとハンドシェイクは、トンネルを開いたままにするためだけの通信を加えます。何かが壊れるまでは無視できる量です。不安定な回線ではこれが実際のコストになります。再接続のたびに設定をやり直し、切れたストリームごとにアプリが再試行するからです。高くつくのは再試行のほうで、ゼロからやり直すアップロードは一週間分のキープアライブより高くつくことがあります。

アプリはファイルの中身以外も送ります。リクエスト、確認応答、プロトコルのやり取りはトンネル以前から存在し、今も計測されます。つまり、ありとなしの差は会話全体ではなく包みの部分です。VPNが実際に持っているのは包みだけです。

二つのカウンターが決して一致しない理由

使用量を報告できる場所は四つあります。スマートフォン、VPNアプリ、ルーター、キャリアで、それぞれ別のインターフェースを別の期間で測ります。仮想インターフェースのカウンターは内側の通信を見て、物理インターフェースは外側のパケットを見るので、その差は測ろうとしているオーバーヘッドとほぼ同じです。帰属の表示が重なることもあり、表示された数字を全部足すと同じバイトを二重に数えることがあります。請求サイクル、アプリのセッション、OSのリセットも始まる時点が違います。

Androidでこれを扱う公式の仕組みは NetworkStatsManager で、時間枠ごとにインターフェース別・uid別のバケットを報告します。お金に関わることでは、アプリのセッション合計よりも事業者の計測を信じてください。アプリはあくまで便宜的な表示で、実装によって通信を含めたり除いたりしますし、報告が遅れると何も変わっていないのに後の値が誤って見えます。

adb shell dumpsys netstats | grep -A3 "iface=wlan0"
adb shell dumpsys netstats detail | grep -i vpn

何かを比べる前に、各行のインターフェース名を読んでください。別のインターフェースの二つの合計は同じものの二つの測定ではなく、一つとして扱うと、実態は会計上の差であるオーバーヘッドの数字ができあがります。

速度テストではなく再現できる作業を測る

カウンターを一つ、端末を一台、ネットワークを一つ、作業を一つ選び、その作業を繰り返して読みを比べます。速度テストは適切な道具ではありません。意図的にできるだけ消費するうえ、そのコストが調べていた日常的な問題を上回ることがあるからです。まずバックアップと更新を止め、バックグラウンドの活動が落ち着くのを待ち、数字のそばにプロトコルとクライアントの版を書き留めます。再開したアップロードはきれいな転送とは別の作業なので、両者を比べても役に立つものは測れません。

直接の比較がプライバシー要件と衝突するなら、代わりにサポートされている二つのVPN構成を比べ、その制限を結果と一緒に記してください。どの構成がどの数字を出したかを書き留めれば、比較は次の読み手にも引き継げます。

請求とアプリが食い違うときに見る場所

まず期間、次にインターフェース、最後に層を確認します。三つすべてを通過しても食い違うなら、クライアントの設定ではなく事業者への質問であり、答えはたいてい報告の遅れか共有の容量を挙げます。

アプリの更新とモバイルデータの設定を容量に見合ったものにし、大量の転送はそれに耐えられる回線に予定してください。テザリングするなら、ホットスポットの範囲を別に確認してください。スマートフォンのトンネルは、テザリングされた通信がどう経路づけられ、どう数えられるかについて何も語らないからです。

関連記事