Medienübertragungsprotokoll - Media Transfer Protocol

Das Media Transfer Protocol ( MTP ) ist eine Erweiterung des Picture Transfer Protocol (PTP) -Kommunikationsprotokolls, das die automatische Übertragung von Mediendateien auf und von tragbaren Geräten ermöglicht. Während PTP zum Herunterladen von Fotos von Digitalkameras entwickelt wurde , ermöglicht das Media Transfer Protocol die Übertragung von Musikdateien auf digitale Audioplayer und Mediendateien auf tragbare Mediaplayer sowie persönliche Informationen auf persönliche digitale Assistenten . MTP ist ein wichtiger Bestandteil von WMDRM 10-PD, einem DRM-Dienst ( Digital Rights Management ) für die Windows Media- Plattform. Im Jahr 2011 wurde es zur Standardmethode zum Übertragen von Dateien von/zu Android.

MTP ist Teil des „Windows Media“-Frameworks und damit eng mit dem Windows Media Player verwandt . Versionen des Microsoft Windows- Betriebssystems ab Windows XP SP2 unterstützen MTP. Windows XP erfordert Windows Media Player 10 oder höher; spätere Windows-Versionen verfügen über integrierte Unterstützung. Microsoft hat auch ein MTP Porting Kit für ältere Windows-Versionen zurück auf Windows 98 zur Verfügung gestellt .

Die Geräte-Arbeitsgruppe des USB Implementers Forum hat MTP im Mai 2008 als vollwertige Universal Serial Bus (USB) -Geräteklasse standardisiert . Seitdem ist MTP eine offizielle Erweiterung von PTP und teilt den gleichen Klassencode.

Überblick

Der Hauptzweck dieses Protokolls besteht darin, nur die Übertragung von Mediendateien und zugehörigen Metadaten zu und von tragbaren Geräten zu ermöglichen, jeweils eine Übertragungsfunktion, ein- oder ausgehend. Es unterstützt keine Operationen wie Öffnen, Bearbeiten und Ändern. Eine Problemumgehung besteht darin, für diese Vorgänge auf das Hostsystem zu kopieren und dann zurück zu kopieren. Ein batteriebetriebenes Mobilgerät kann seinen Akkuladestand über MTP melden.

Das Protokoll wurde ursprünglich für die Verwendung über USB implementiert, aber für die Verwendung über TCP/IP und Bluetooth erweitert . Windows Vista unterstützt MTP über TCP/IP. Windows 7 und Windows Vista mit dem Plattform-Update für Windows Vista unterstützen auch MTP über Bluetooth. Der Host, der eine Verbindung zu einem MTP-Gerät herstellt, wird als MTP-Initiator bezeichnet, während das Gerät selbst ein MTP-Responder ist .

Ein Hauptgrund für die Verwendung von MTP statt beispielsweise der USB-Massenspeichergeräteklasse (MSC) ist, dass letztere mit der Granularität eines Massenspeichergeräteblocks (normalerweise in der Praxis ein FAT- Block) und nicht mit der logische Dateiebene. Mit anderen Worten, die USB-Massenspeicherklasse wurde entwickelt, um einem Host-Computer undifferenzierten Zugriff auf Massenspeicher wie Compact Flash statt auf ein Dateisystem zu ermöglichen, das sicher mit dem Zielgerät geteilt werden kann (mit Ausnahme bestimmter Dateien, die der Host möglicherweise modifiziert/zugreift). In der Praxis übernimmt daher ein USB-Host-Computer, wenn er eine MSC-Partition gemountet hat, die absolute Kontrolle über den Speicher, der dann vom Gerät nicht ohne Risiko einer Datenbeschädigung sicher modifiziert werden kann, bis der Host-Computer die Verbindung getrennt hat. Da der Host-Computer die volle Kontrolle über das angeschlossene Speichergerät hat, besteht außerdem die Gefahr, dass der Host-Computer das Dateisystem beschädigt, in ein vom USB-Gerät nicht unterstütztes Dateisystem neu formatiert oder es auf andere Weise modifiziert. dass das USB-Gerät es nicht vollständig verstehen kann.

MTP und PTP lösen dieses Problem speziell, indem sie die verwaltete Speichereinheit zu einer lokalen Datei machen und nicht zu einer ganzen (möglicherweise sehr großen) Massenspeichereinheit auf Blockebene. Auf diese Weise funktioniert MTP wie ein transaktionales Dateisystem - entweder wird die gesamte Datei geschrieben/gelesen oder nichts. Das Speichermedium ist von fehlgeschlagenen Übertragungen nicht betroffen.

Wenn das Gerät eine Datenbank/einen Index des Inhalts des Datenträgers verwaltet, spart MTP die Kosten für das erneute Scannen des gesamten Datenträgers bei jeder Änderung des Inhalts.

Darüber hinaus ermöglicht das MTP MTP-Initiatoren , die spezifischen Fähigkeiten von Geräten in Bezug auf Dateiformate und Funktionalität zu identifizieren. Insbesondere müssen MTP-Initiatoren möglicherweise Passwörter und andere Informationen bereitstellen, um Dateien zu entsperren oder anderweitig die Verwaltung digitaler Rechte zu ermöglichen . Nichts Spezifisches dieser Art ist im Kernstandard enthalten, aber die Funktionen sind über Herstellererweiterungen verfügbar. MTPZ, die Zune-Erweiterung für MTP, verweigert ausdrücklich den Zugriff auf Dateien, bis die Authentifizierung verarbeitet wurde, was nur mit Windows Media Player 10 oder höher möglich ist.

Vergleich mit USB-Massenspeicher

Die Vorteile von MTP sind mit " (+) " gekennzeichnet, während die Nachteile mit " (-) " gekennzeichnet sind.

Dateiorientiertes statt blockorientiertes Protokoll

Durch nicht aussetzt das Dateisystem und Metadaten - Index ist die Integrität dieser in der vollen Kontrolle über das Gerät.

  • (+) Kein Risiko einer Beschädigung des Dateisystems, wenn das Gerät während des Schreibens vom Netz getrennt wird. Dateiübertragungen sind atomar, und es ist kein explizites Aushängen des Dateisystems ("sicheres Entfernen") vom Benutzer erforderlich.
  • Das Gerät kann während der Verbindung auf sein eigenes Dateisystem zugreifen:
    • (+) Eine Neuindizierung nach dem Ausstecken kann vermieden werden. Auch geholfen durch die Einbeziehung von Metadaten bei der Übertragung.
    • (+) Ein separates Dateisystem für die Host-Exposition ist nicht erforderlich. Dies vermeidet die Unflexibilität, eine Partition mit fester Größe für dieses Dateisystem beiseite zu legen .
  • (+) Der Host muss das Dateisystem des Geräts nicht unterstützen. Umgekehrt steht es dem Gerätehersteller frei, ein anderes Dateisystem (normalerweise ein von Windows nicht unterstütztes Linux- Dateisystem ) als die weit verbreitete FAT- Dateisystemfamilie zu wählen .
  • (-) Tools zur Wiederherstellung und Wiederherstellung des Dateisystems auf dem Computer können nicht verwendet werden, da MTP keinen Zugriff auf Blockebene bietet.
  • (-) Viele MTP-verbundene Geräte, insbesondere ältere, stellen Dateizeitstempel nicht über das Protokoll zur Verfügung, was dazu führt, dass sie verloren gehen, wenn Dateien auf einen oder von einem Computer kopiert/verschoben werden. Dateien wie JPEG-Fotos mit eingebetteten Exif- Daten haben intern immer noch Zeitstempel (und es gibt Dienstprogramme, um die Dateizeitstempel basierend auf diesen wiederherzustellen), aber diese Problemumgehung ist für andere Dateitypen ohne solche internen Metadaten nicht verfügbar.

Performance

  • (-) MTP-Operationen sind nicht multiplexierbar – jede laufende Operation muss entweder abgeschlossen oder abgebrochen werden, bevor eine andere Operation beginnen kann. Im Gegensatz zu USB-Massenspeichern , bei denen das Host-Betriebssystem Blockübertragungen multiplexen kann und logische Operationen ein neu auftretendes Phänomen sind, sind die von MTP unterstützten Operationen grobkörniger, wie z. B. die Übertragung ganzer Dateien. Keines der Protokolle ist an sich parallel oder asynchron (abgesehen von der UAS- Erweiterung des USB-Massenspeichers, die mehrere Befehlswarteschlangen hinzufügt).
  • (-) Eingeschränkte Unterstützung für die Übertragung von Dateiteilen wie Blöcken oder Bytebereichen (siehe § Direkte Änderungs- und Teilübertragungsfunktionen ).
  • (-) Eingeschränkte Unterstützung für die direkte Änderung von Dateien (siehe § Funktionen zur direkten Änderung und teilweisen Übertragung ). Um eine Datei oder ihre Metadaten zu ändern, muss möglicherweise die gesamte Datei aus dem Gerät kopiert und erneut hochgeladen werden, was bei einer großen Datei oder einem großen Verzeichnis lange dauert und das Gerät in der Zwischenzeit für andere Vorgänge sperrt. Die MTP-Implementierung von Google in Android enthält Erweiterungen, um mit dieser Einschränkung umzugehen. diese Erweiterungen müssen jedoch vom Host-Betriebssystem unterstützt werden.
  • (-) Das Laden längerer Dateilisten (Tausende von Elementen) und das "Vorbereiten" der Dateiübertragung können länger dauern als die Dateiübertragung selbst.

Transparenz für MTP-unerfahrene Software

(-) Windows weist MTP-Geräten keine Laufwerksbuchstaben oder UNC- Pfade zu, da sie nicht nativ als virtuelle Dateisysteme verfügbar gemacht werden . Ohne Laufwerksbuchstaben oder UNC-Pfade kann MTP-unerfahrene Software nicht auf Verzeichnisse oder Dateien auf diesen Geräten zugreifen. Der Benutzer muss zu einer MTP-fähigen Anwendung wechseln oder eine Umgehung durchführen, indem er eine MTP-fähige Anwendung wie Windows Explorer verwendet, um die Datei in ein Dateisystem zu kopieren oder zu verschieben, auf das die Anwendung zugreifen kann.

Ein besonderes Problem besteht darin, dass die Antivirensoftware auf dem Hostcomputer MTP-Geräte möglicherweise nicht erkennt, was sie potenziell weniger sicher macht als Massenspeichergeräte (obwohl Dateien auf MTP-Geräten vor der Verwendung auf den Host kopiert oder verschoben werden, MTP-unerfahrene Antivirensoftware haben die Möglichkeit, sie zu scannen). Antivirus-Scans können auch unpraktisch sein, da die regelmäßige Verwendung des Geräts blockiert wird.

Treiber kennen einen festen Satz unterstützter Geräte

(-) Trotz Identifizierbarkeit durch die PTP/MTP- USB-Geräteklasse weist die libmtp-Dokumentation darauf hin, dass die Kombination von Hersteller und Produkt-ID eine funktionale Rolle bei der Identifizierung eines MTP-Geräts spielt, auch durch Windows-Treiber. Libmtp enthält umfangreiche Listen mit Hersteller- und Produkt-ID-Nummern von Geräten, die es unterstützt, sowie Problemumgehungen für Fehler. Diese nicht generische Methodik behindert die Vorwärtskompatibilität von MTP-Treibern mit neuen Geräten.

Die Spezifikation kennt einen festen Satz definierter Dateiformate

Die MTP-Spezifikation enthält eine Aufzählung von Dateiformaten, die als Objektformat bezeichnet werden . Die Verwendung dieser Aufzählung dient der Kommunikation unterstützter Dateiformate und Formaten übertragener Dateien. Abgesehen von einigen nicht kategorisierten Formaten am Anfang ist die Liste der Formate in Kategorien von Bild-, Audio-, Video- und Dokumentformaten gruppiert, wobei jede Kategorie ein "undefiniertes" Format hat, gefolgt von bestimmten Formaten. Es gibt auch ein supergenerisches "Undefiniertes Objekt"-Format.

Jolla nannte die fehlende WebM - Unterstützung in MTP als einen Grund , das Videoformat in ihrem mobilen Betriebssystem Sailfish OS nicht zu unterstützen . Es ist unklar, ob die Einschränkung in den Tools oder der Spezifikation liegt, abgesehen davon, dass WebM nicht durch die MTP 1.1-Spezifikation definiert ist.

Direkte Änderungs- und Teilübertragungsfunktionen

Diese Funktionen können als effizientere Alternativen zur Übertragung ganzer Dateien und zum erneuten Hochladen verwendet werden:

Aus der MTP 1.1-Spezifikation:

Opcode Vorgangsname Erläuterung
0x9805 GetObjectPropList Metadatenübertragung
0x9806 SetObjectPropList
0x1019 Objekt verschieben Benennen Sie eine Datei oder ein Verzeichnis um
0x101B GetPartialObject Fordern Sie einen Bytebereich einer Datei an

Android-Erweiterungen

Laut go-mtpfs:

Opcode Vorgangsname Erläuterung
0x95C1 GetPartialObject64 Wie GetPartialObject , jedoch mit 64-Bit-Offset
0x95C2 SendPartialObject Wie GetPartialObject64 , aber Host auf Gerät kopieren
0x95C3 TruncateObject Kürzt Datei auf 64-Bit-Länge
0x95C4 BeginEditObject Muss vor der Verwendung von SendPartialObject und TruncateObject aufgerufen werden
0x95C5 EndEditObject Wird aufgerufen, um Änderungen zu bestätigen, die von SendPartialObject und TruncateObject vorgenommen wurden

MTP-Unterstützung

Fenster

Anpassung in Windows

MTP wird in Windows XP unterstützt, wenn Windows Media Player 10 oder höher installiert ist. Windows Vista und höher verfügen über integrierte MTP-Unterstützung. Für ältere Windows-Versionen, insbesondere Windows 2000, Windows 98 und Windows Me, hat Microsoft das MTP-Portierungskit veröffentlicht. die einen MTP-Gerätetreiber enthält. Einige Hersteller, wie Creative Technology , bieten für einige ihrer Player auch ältere MTP-Treiber an; diese bestehen normalerweise aus MTP Porting Kit-Dateien mit einer benutzerdefinierten INF-Datei, die ihre spezifischen Player beschreibt.

Unterstützung durch Software

Windows weist Geräten, die über MTP verbunden sind, keine Laufwerksbuchstaben oder UNC- Pfadnamen zu. Stattdessen werden sie nur in MTP-fähigen Anwendungen wie Windows Explorer als benannte Geräte angezeigt . Im Vergleich zu Geräten, die USB-Massenspeicher implementieren, kann auf solche Geräte nicht programmgesteuert durch Skripte oder normale Windows-Programme zugegriffen werden, die von Laufwerksbuchstaben oder UNC-Pfad abhängen. Stattdessen müssen Dateien mit Windows Explorer oder Anwendungen mit speziell geschriebener MTP-Unterstützung bearbeitet werden.

Unter Windows unterstützen MTP-kompatible Geräte eine Funktion namens Auto Sync, mit der Benutzer den Windows Media Player so konfigurieren können, dass alle kopierten oder neu erworbenen Inhalte automatisch auf Geräte übertragen werden, wenn sie verbunden sind – vorausgesetzt, der Inhalt ist mit Windows Media Player kompatibel. Auto Sync ist anpassbar, sodass der Player nur Inhalte überträgt, die bestimmte Kriterien erfüllen (z. B. Songs mit einer Bewertung von vier Sternen oder höher). Änderungen an Dateieigenschaften (z. B. Benutzerbewertung und Anzahl der Dateiwiedergaben) auf einem Gerät können an den Computer übertragen werden, wenn das Gerät wieder angeschlossen wird.

Kopien von Dateien, auf die über MTP zugegriffen wird, können auch nach dem Neustart auf dem Hostcomputer verbleiben, wo sie dem Benutzerkonto zugänglich sind, das auf sie zugegriffen hat, sowie allen anderen Benutzerkonten, die die Dateien dieses Benutzerkontos lesen können, einschließlich aller Administratoren. Die Sensorplattform von Windows 7 unterstützt Sensoren, die in MTP-kompatible Geräte integriert sind.

Verhalten beim Verschieben von Dateien

Bei der Implementierung von MTP, die von Windows Explorer verwendet wird, werden Dateien aus einer Auswahl , die aus dem Speicher eines mobilen Geräts verschoben wurde, möglicherweise mit dem Ziel, Speicherplatz freizugeben, nicht nach jeder Datei einzeln aus der Quelle gelöscht, sondern die gesamte Auswahl wird bei . gelöscht einmal aus der Quelle erst nach Abschluss der Übertragung.

Infolgedessen haben Dateiverschiebungen, die vorzeitig, ob manuell oder unerwartet, abgebrochen werden, keinen Speicherplatz auf dem Quellgerät freigegeben.

Unix-ähnliche Systeme

Eine kostenlose Open-Source-Implementierung des Media Transfer Protocol ist als libmtp verfügbar. Diese Bibliothek enthält Produkt- und Geräte-IDs aus vielen Quellen und wird häufig in anderer Software zur MTP-Unterstützung verwendet.

Grafisch

GNOME- Anwendungen wie GNOME Files (früher Nautilus genannt) und Archive Manager (früher File-Roller) verwenden GIO- basierte GVfs, um auf Dateien auf MTP-Geräten zuzugreifen. Die richtige MTP-Unterstützung wurde GVfs in Version 1.15.2 (2013-01-15) von Philip Langdale hinzugefügt . Es sind frühe Patches für GVfs verfügbar, um die direkten E/A-Erweiterungen von Google zu aktivieren.

Das KDE-Projekt entwickelt den MTP KIO Slave mit einem ähnlichen Integrationsgrad wie GVfs.

Nicht mit GNOME oder KDE verwandt ist der *NIX grafische MTP-fähige Mediaplayer gMTP .

Virtuelles Dateisystem

Mehrere Tools bieten ein FUSE- basiertes Dateisystem zum Mounten von MTP-Geräten innerhalb der Unix-Dateisystemhierarchie, wodurch es für jedes Programm zugänglich ist, das mit Dateien und Verzeichnissen arbeitet. Beispiele sind mtpfs , jMTPFS , go-mtpfs und simple-mtpfs .

Mac OS

macOS bietet integrierte Unterstützung für MTP (über die Anwendung "Digital Images"), aber keine (Drittanbieter-)Treiber zum Einbinden von MTP-Geräten als Laufwerke. Für Mac OS X 10.5 und höher sind auch mehrere Dateiübertragungsanwendungen von Drittanbietern verfügbar:

  • Android File Transfer ist ein einfacher MTP-Client.
  • Android-Dateiübertragung für Linux (und Mac OS X!), Open Source, Lizenz GPL Version 3, Grafische Benutzeroberfläche, Befehlszeilentool, FUSE-Wrapper - Mounten Ihres Geräts,
  • XNJB bietet auch die Synchronisierung von iTunes-Wiedergabelisten.
  • SyncMate Expert behauptet, neben anderen Synchronisationsaufgaben auch MTP zu unterstützen. Der Support kann in der kostenlosen Version nicht getestet werden.
  • Commander One PRO Pack - Dateimanager, der es ermöglicht, MTP-Geräte auf dem Mac zu installieren und deren Inhalte zu verwalten.

Andere Betriebssysteme

Spätere Versionen mehrerer Betriebssysteme, darunter AmigaOS , Android , AROS , MorphOS und Symbian OS, unterstützen MTP, manchmal mit zusätzlichen Treibern oder Software.

Ein Nachteil von MTP-Geräten auf Android im Vergleich zu USB-Massenspeichern besteht darin, dass beim Kopieren von Dateien vom Android-Gerät auf den Computer zwar die Dateizeitstempel erhalten bleiben, beim Kopieren in die andere Richtung jedoch die Zeitstempel der Dateiänderung durch den Zeitpunkt ersetzt werden, zu dem die Kopie erstellt wurde getan.

Andere Hersteller

Unternehmen, darunter Creative Technology, Intel , iriver und Samsung Electronics , die Geräte herstellen, die auf der " Portable Media Center- Spezifikation" von Microsoft basieren , haben MTP weitgehend übernommen. Auf der Consumer Electronics Show 2004 wurden unterstützende Geräte vorgestellt .

Nach einer anfänglichen Phase ungewisser Reaktionen haben mehrere große Mediaplayer-Hersteller wie Creative Technology und iriver das MTP-Protokoll anstelle ihrer eigenen Protokolle übernommen.

Viele Geräte und Audiosoftwareanwendungen unterstützen MTP.

Alternativen

Siehe auch

Verweise

Externe Links