最近、キャリアが通信を勝手に「最適化」しているというが…

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

最近キャリアが勝手に通信の最適化を行っているといい物議を醸しています。最も何が正しくて何が間違っているのかというのははっきりとはいえませんが私なりの考えをまとめておきます。

前提知識

どうやら前提知識が微妙にあやふやになっているのでなお混乱しているようなので単語のおさらいをしておきましょう。

圧縮

元のデータよりも容量を落として、元のデータと同じか似たようなデータにすること。
つまり、完全に復元できるものもあれば完全には復元できないものがあります。

不可逆式圧縮

圧縮の中でも完全には元のデータに戻すことのできないものです。画像のレートを落としたり、サイズを小さくしたりするのがこれに当たります。
一度してしまうと元のようにきれいなデータに戻すことはできません。
例えばJPEGファイルには圧縮レベルというものが存在します。これはレベルを高くすればするほど、画像は汚くなるがデータのサイズは小さくなるというものです。

可逆式圧縮

元のデータに完全に戻せる圧縮の方法です。
例えばよく知られているZIPファイルというものがありますね。これをアーカイブファイルというのですが、これを使うことでもどのデータよりも小さくすることができます。しかしデータはちゃんと元通りになります。
また、通信で使われる可逆式圧縮にはGZというものがあります。これはZIPの技術を利用したもの。これも元のデータに戻せます。そしてHTTP通信で広く使われています。

HTTP通信/HTTPS通信

最もメジャーな通信方法と考えてもいいと思います。実にわかりやすい通信方法で、機械的に中身を解析することも可能だったりします。
HTTPSの方はHTTP通信を暗号化したもの。これは中身が暗号化されているため、中身を解析することは不可能です。

勝手に通信の内容をいじることに問題がある

キャリアからすれば通信する量は少なければ少ないほど機器に負担がかかりにくくなります。つまり維持するためのコストが下がるという意味ですね。
ただそのために通信のデータを勝手に最適化」してしまうということが問題となっています。
最もただ単純に通信量が少なくなるだけのものならいいのですが、更にいうとその最適化とやらは「データの内容が劣化してしまう」ものだったのです。
この通信の劣化のことですが、対象となっているのは画像や動画等です。ちなみに動画については私も知っているのですが、「(動画は)事前に同意した上で画質を落とす処理をしている」というものがあるとは聞いていました。画像については知らなかったですが。そこのところ確認とっていたのかは謎なんですが

画像の最適化を極論で言うと…

画像の最適化は大雑把に2通りあります。それは可逆式圧縮と不可逆式圧縮。
前項の「前提知識」で紹介しましたように、JPEGは不可逆、PNGの一部の圧縮処理は可逆式圧縮です。PNGって高解像度でも無地ならサイズは小さいでしょう。
キャリアが行って問題となっていたのは不可逆式圧縮を行っていたからなんですね。
元の画像よりも劣化してしまうので気分悪いですよね。
キャリア側の説明曰く、人間の目にはわからないレベルだとの説明がありましたが、広げるとすぐに劣化がわかりやすし、壁紙なんか低画質使いたくないですよね。

もっと問題なのは別の所にあった

別に人の目で分からない程度っていうのはいいんですよ。まあ百歩譲って。
問題なのは、通信してダウンロードしたデータを利用するアプリですね。通信というのは傍受されて盗み見されたり、データをすり替えられたりすることがあります。
しかもこれ、公共のWi-Fiスポットでは特に注意しないといけないもので、これでHTTP通信でログインしているアカウントなんかはセッションハイジャックという脆弱性につながることがあります。
アプリ側はその対策のため、ダウンロードしたデータが本当に正しいか、サーバー側とスマホ側で確認しあって「OK」を出すというものがあります。
ただ、キャリアの通信の段階で劣化したデータをダウンロードしてしまうと、サーバー側にあるデータとは完全一致しないので問題が起こるわけです。そしてアプリ側はそれを「危険だ」と認識してエラーを出すようになっています。
最も、ゲーム等にあるこの追加ダウンロードですが、サーバーにあるZIPとかをダウンロードする方式だと問題ありません。が、サーバーから画像を一枚一枚ダウンロードする方法がアウトなんですね。

そもそも最適化とは

キャリアの説明にあった「通信の最適化」という言葉mちょっとつっかかりますよね。なぜ圧縮という言葉を使わずに最適化という言葉を使っているのでしょう
辞書にはこのように載っているみたいです。

最適化(さいてきか、Optimization)とは、関数・プログラム・製造物などを最適な状態に近づけることをいう。
Wikipedia – https://ja.wikipedia.org/wiki/%E6%9C%80%E9%81%A9%E5%8C%96
無駄を省いて最高の結果を出せるように調整することです。パソコンでは、特にハードディスクフラグメンテーション(断片化)を解消するデフラグ作業を指すことが多いです。
コトバンク – https://kotobank.jp/word/%E6%9C%80%E9%81%A9%E5%8C%96-3646

つまり、そもそも最適化の意味はかなり広い範囲で受け取れます。
プログラミングとかでソースコードの最適化をする。
必要以上のものを切り捨てて適度なデータにすること。不可逆式圧縮ですね。
たくさんのファイルを一度にダウンロードできるようにするためにZIP化すること。結果的には可逆式圧縮ですね。
また、通信量を削減するためにHTTP通信の段階でGZ圧縮すること。これは可逆式圧縮です。
このように、最適化といっても意味が広いため、キャリアの説明のように、「最適化をしている。」というのが必ずしも元のデータに戻せるなんて言っていない。なんて言い訳も通じるのです。
言葉の綾といいますか、言い換えていいように聞こえるようにしているというわけですね。

法的にはどうなのか

一番言われている法律的にはどうなのかというものですね。

データの傍受

まずは通信内容を傍受して勝手に見ているんじゃないだろうか。というものですが、目的がデータの圧縮のためだけであり、人間が何かしらのデータ収集の目的を持っていないため、これは問題ないと思います。
データの最適化(圧縮)を行っているのは機械です。人間がちまちま作業しているわけではありません。

著作権の侵害

著作物を最適化(圧縮)すると少なくとも元のデータをいじることになります。某氏がキャリアにきいた際の回答は「著作物は最適化自体行っていない」という回答がありましたが…
そもそも著作物だけを最適化しないなんてフィルターをかけるとものすごいシステムに負担がかかると思います。というわけでそんな選別は現実的ではないと私は考えます。
なので、これはれっきとした問題点だと思います。

結果的に…

キャリア側に問題があると思います。「通信」というだけでいろんな通信方法があり、様々な通信内容があります。
確かに通信量を減らしたいキャリアの気持ちもわかりますが…それは結局何かしらのトラブルを起こしてかえって面倒にさせているだけになっています。
キャリアとの契約の際。契約した後でもその最適化とやらをオンにしたりオフにできたりするようにするのが一番だと思います。
ゲームをしない人からすれば少なからず通信が早くなるので助かりますからね。不要としている人に無理強いをするのはおかしいでしょう。