最近登場したAndroidスマートフォンやタブレットでは、パソコンとの接続にMTP(media transfer protocol)を使うものが増えてきました。これまで、Androidのパソコン接続といえば大容量ストレージ(MSC:Mass Storage Class)で、パソコン側からは外部記憶装置として見えるものでした。しかし、KDDIの「MOTOROLA XOOM Wi-Fi TBi11M」では、パソコンとの接続にMTPが使われていて、ドライブではなく、ポータブルプレーヤーとしてWindowsのエクスプローラーに表示されます。

 どちらもエクスプローラーで開けば、フォルダーが見え、実際の違いはないように見えます。しかし、あえて新機種でMTPを採用したのはなぜなのでしょうか?

 MTPは元々、デジタルカメラの画像転送プロトコルであるPTP(picture transfer protocol)をベースに、音楽ファイルなどの転送を可能にしたマクロソフトが開発した規格です。MTPは、音楽プレーヤーやデジタルカメラなどに採用されています。

 MTPとMSCの最大の違いは、ファイルをパソコンとデバイスのどちらで管理するかです。

 MSCの場合、USBで接続されたデバイスは記憶デバイスとして接続され、ファイルなどの管理はパソコン側(ホスト側)で行います。このため、MSCでは、パソコンからデバイスをフォーマットしたり、ファイルシステム形式を変更する(例えばVFAT形式からNTFS形式など)にすることが可能です(図)。ホスト側のアプリケーションからファイルへアクセスするとき、それはホスト側のOSで、記憶デバイスのブロックに対するアクセスに変換され、MSCにアクセスします。デバイス側は、単純にブロック単位でデータがアクセスされるだけで、ファイルがどこにあるのかについては理解しないで動作します。

MTPと大容量ストレージデバイス(MSC)では、ファイルシステムの管理をホスト側、デバイス側のどちらで行うのかという違いがある
MTPと大容量ストレージデバイス(MSC)では、ファイルシステムの管理をホスト側、デバイス側のどちらで行うのかという違いがある
[画像のクリックで拡大表示]

 これに対して、MTPでは、パソコン側とのやり取りをファイル単位で行います。つまり、ファイルシステムはデバイス内部で管理されます。このようなデバイスに対して、ホストはファイル単位でアクセスします。デバイス側のCPUが、USB経由でやってくるファイルのアクセスコマンドを解釈して、ファイルにアクセスします。このため、MTPでは、実際のファイルシステムがどのようになっているのかはホスト側からは分かりません。