Protokół przesyłania multimediów - Media Transfer Protocol

Media Transfer Protocol ( MTP ) jest rozszerzeniem do Picture Transfer Protocol (PTP) protokół komunikacyjny , który umożliwia pliki multimedialne mają być automatycznie przesyłane do iz urządzeń przenośnych. Podczas gdy PTP został zaprojektowany do pobierania zdjęć z aparatów cyfrowych , Media Transfer Protocol umożliwia przesyłanie plików muzycznych na cyfrowych odtwarzaczach audio i plików multimedialnych na przenośnych odtwarzaczach multimedialnych , a także informacji osobistych na osobistych asystentach cyfrowych . Protokół MTP jest kluczowym elementem WMDRM 10-PD, usługi zarządzania prawami cyfrowymi (DRM) dla platformy Windows Media . W 2011 roku stała się standardową metodą przesyłania plików z/do Androida.

MTP jest częścią struktury „Windows Media”, a zatem jest blisko związane z programem Windows Media Player . Wersje systemu operacyjnego Microsoft Windows od Windows XP SP2 obsługują protokół MTP. Windows XP wymaga Windows Media Player 10 lub nowszego; nowsze wersje systemu Windows mają wbudowaną obsługę. Firma Microsoft udostępniła również zestaw do przenoszenia MTP dla starszych wersji systemu Windows z powrotem do systemu Windows 98 .

Grupa robocza ds. urządzeń USB Implementers Forum standaryzowała MTP jako pełnoprawną klasę urządzeń Universal Serial Bus (USB) w maju 2008 roku. Od tego czasu MTP jest oficjalnym rozszerzeniem PTP i ma ten sam kod klasy.

Przegląd

Głównym celem tego protokołu jest umożliwienie przesyłania tylko plików multimedialnych i związanych z nimi metadanych do iz urządzeń przenośnych, przy użyciu jednej funkcji przesyłania, do lub na zewnątrz, na raz. Nie obsługuje operacji takich jak otwieranie, edytowanie i modyfikowanie. Obejście jest skopiowanie do systemu hostingowego dla tych operacji, a następnie skopiować z powrotem. Urządzenie przenośne zasilane bateryjnie może zgłaszać poziom naładowania baterii za pośrednictwem protokołu MTP.

Protokół został pierwotnie zaimplementowany do użytku przez USB, ale został rozszerzony do użytku przez TCP/IP i Bluetooth . Windows Vista obsługuje protokół MTP przez TCP/IP. Systemy Windows 7 i Windows Vista z aktualizacją platformy dla systemu Windows Vista również obsługują protokół MTP przez Bluetooth. Host łączący się z urządzeniem MTP nazywany jest inicjatorem MTP, podczas gdy samo urządzenie jest obiektem odpowiadającym MTP .

Głównym powodem używania MTP zamiast, na przykład, klasy urządzeń pamięci masowej USB (MSC) jest to, że ta ostatnia działa na poziomie szczegółowości bloku urządzenia pamięci masowej (zwykle w praktyce bloku FAT ), a nie na poziomie poziom plików logicznych. Innymi słowy, klasa pamięci masowej USB ma na celu zapewnienie komputerowi hosta niezróżnicowanego dostępu do masowej pamięci masowej, takiej jak Compact Flash , zamiast do systemu plików, który może być bezpiecznie współdzielony z urządzeniem docelowym (z wyjątkiem określonych plików, które host może modyfikować/uzyskiwać dostęp). W praktyce zatem, gdy komputer hosta USB ma zamontowaną partycję MSC, przejmuje całkowitą kontrolę nad pamięcią masową, która następnie może nie być bezpiecznie modyfikowana przez urządzenie bez ryzyka uszkodzenia danych, dopóki komputer hosta nie zerwie połączenia. Ponadto, ponieważ komputer hosta ma pełną kontrolę nad podłączonym urządzeniem pamięci masowej, istnieje ryzyko, że komputer hosta może uszkodzić system plików, sformatować go do systemu plików nieobsługiwanego przez urządzenie USB lub w inny sposób zmodyfikować go w taki sposób że urządzenie USB nie może go w pełni zrozumieć.

MTP i PTP rozwiązują ten problem, czyniąc jednostkę pamięci zarządzanej plikiem lokalnym, a nie całą (być może bardzo dużą) jednostką pamięci masowej na poziomie bloku. W ten sposób MTP działa jak transakcyjny system plików — albo cały plik jest zapisywany/odczytywany, albo nic. Nieudane transfery nie mają wpływu na nośnik pamięci.

Tam, gdzie urządzenie utrzymuje bazę danych/indeks zawartości dysku, MTP oszczędza na kosztach ponownego skanowania całego dysku przy każdej modyfikacji zawartości.

Dodatkowo, MTP pozwala inicjatorom MTP zidentyfikować specyficzne możliwości urządzenia (urządzeń) w odniesieniu do formatów plików i funkcjonalności. W szczególności inicjatorzy MTP mogą być zmuszeni do podania haseł i innych informacji w celu odblokowania plików lub umożliwienia w inny sposób zarządzania prawami cyfrowymi . Nic szczególnego tego rodzaju nie znajduje się w podstawowym standardzie, ale funkcje są dostępne za pośrednictwem rozszerzeń dostawcy. MTPZ, rozszerzenie Zune do MTP, w szczególności odmawia dostępu do plików do czasu przetworzenia uwierzytelnienia, co jest możliwe tylko przy użyciu programu Windows Media Player 10 lub nowszego.

Porównanie z pamięcią masową USB

Zalety MTP zaznaczono symbolem " (+) ", a wady symbolem " (-) ".

Protokół zorientowany na plik zamiast na protokół zorientowany blokowo

Poprzez nie narażając się systemu plików indeks i metadanych integralność nich jest uzyskać pełną kontrolę nad urządzeniem.

  • (+) Brak ryzyka uszkodzenia systemu plików w przypadku odłączenia urządzenia podczas pisania. Transfery plików są niepodzielne i nie jest wymagane jawne odmontowywanie systemu plików („bezpieczne usuwanie”) od użytkownika.
  • Urządzenie może uzyskać dostęp do własnego systemu plików podczas połączenia:
    • (+) Ponownego indeksowania po odłączeniu można uniknąć. Pomogło również włączenie metadanych do transferu.
    • (+) Oddzielny system plików do ekspozycji hosta jest zbędny. Pozwala to uniknąć nieelastycznego odkładania partycji o stałym rozmiarze dla tego systemu plików.
  • (+) Host nie musi obsługiwać systemu plików urządzenia. I odwrotnie, producent urządzenia może wybrać system plików (zwykle system plików Linux nieobsługiwany przez Windows ) inny niż szeroko obsługiwana rodzina systemów plików FAT .
  • (-) Nie można używać narzędzi do odzyskiwania i przywracania systemu plików na komputerze, ponieważ protokół MTP nie oferuje dostępu na poziomie bloków.
  • (-) Wiele urządzeń podłączonych do protokołu MTP, zwłaszcza starszych, nie ujawnia znaczników czasu plików za pośrednictwem protokołu, co powoduje ich utratę podczas kopiowania/przenoszenia plików do lub z komputera. Pliki takie jak zdjęcia JPEG z osadzonymi danymi Exif nadal mają wewnętrznie znaczniki czasu (i istnieją narzędzia do przywracania znaczników czasu plików na ich podstawie), ale to obejście nie jest dostępne dla innych typów plików bez takich wewnętrznych metadanych.

Występ

  • (-) Operacje MTP nie są multipleksowalne – każda trwająca operacja musi zostać zakończona lub przerwana, zanim będzie można rozpocząć kolejną operację. W przeciwieństwie do pamięci masowych USB , gdzie system operacyjny hosta może swobodnie przesyłać bloki multipleksowe, a operacje logiczne są zjawiskiem pojawiającym się, operacje obsługiwane przez protokół MTP są bardziej szczegółowe, takie jak przesyłanie całych plików. Żaden protokół nie jest sam w sobie równoległy ani asynchroniczny (poza rozszerzeniem pamięci masowej USB UAS , które dodaje wiele kolejek poleceń).
  • (-) Ograniczona obsługa przesyłania części plików, takich jak bloki lub zakresy bajtów (patrz § Funkcje bezpośredniej modyfikacji i częściowego przesyłania ).
  • (-) Ograniczona obsługa bezpośredniej modyfikacji plików (patrz § Funkcje bezpośredniej modyfikacji i częściowego transferu ). Aby zmodyfikować plik lub jego metadane, konieczne może być skopiowanie całego pliku z urządzenia i ponowne przesłanie, co w przypadku dużego pliku lub katalogu zajmuje dużo czasu, aw międzyczasie blokuje urządzenie dla innych operacji. Implementacja Google MTP w systemie Android obejmuje rozszerzenia, które radzą sobie z tym ograniczeniem; jednak te rozszerzenia muszą być obsługiwane przez system operacyjny hosta.
  • (-) Wczytywanie dłuższych list plików (tysiące elementów) i „przygotowanie” do przesyłania plików może potrwać dłużej niż sam transfer plików.

Przejrzystość dla oprogramowania nieświadomego MTP

(-) System Windows nie przypisuje liter dysków ani ścieżek UNC do urządzeń MTP, ponieważ nie ujawnia ich natywnie jako wirtualnych systemów plików . Bez liter dysków lub ścieżek UNC oprogramowanie nie obsługujące protokołu MTP nie może uzyskać dostępu do katalogów ani plików na tych urządzeniach. Użytkownik musi przełączyć się na aplikację obsługującą protokół MTP lub obejść ten problem, używając aplikacji obsługującej protokół MTP, takiej jak Eksplorator Windows, w celu skopiowania lub przeniesienia pliku do systemu plików, do którego aplikacja ma dostęp.

Jedną szczególną obawą jest to, że oprogramowanie antywirusowe na komputerze hosta może nie być świadome urządzeń MTP, co czyni je potencjalnie mniej bezpiecznymi niż urządzenia pamięci masowej (chociaż jeśli pliki na urządzeniach MTP są kopiowane lub przenoszone do hosta przed użyciem, oprogramowanie antywirusowe nie obsługujące protokołu MTP będzie miał okazję je zeskanować). Skanowanie antywirusowe może być również niepraktyczne ze względu na blokowanie regularnego korzystania z urządzenia.

Kierowcy znają stały zestaw obsługiwanych urządzeń

(-) Pomimo identyfikowalności na podstawie klasy urządzeń USB PTP/MTP , dokumentacja libmtp wskazuje, że kombinacja identyfikatora dostawcy i produktu odgrywa funkcjonalną rolę w identyfikacji urządzenia MTP, również przez sterowniki systemu Windows. Libmtp zawiera obszerne wykazy numerów identyfikacyjnych dostawców i produktów obsługiwanych urządzeń, a także obejścia błędów. Ta nieogólna metodologia utrudnia dalszą kompatybilność sterowników MTP z nowymi urządzeniami.

Specyfikacja zna ustalony zestaw zdefiniowanych formatów plików

Specyfikacja MTP zawiera wyliczenie formatów plików, nazywanych formatem obiektowym . Użycie tego wyliczenia dotyczy komunikowania obsługiwanych formatów plików i formatów przesyłanych plików. Oprócz kilku nieskategoryzowanych formatów na początku, lista formatów jest pogrupowana w kategorie formatów obrazu, audio, wideo i dokumentów, przy czym każda kategoria ma jeden „niezdefiniowany” format, po którym następują określone formaty. Istnieje również superogólny format „Niezdefiniowany obiekt”.

Jolla wymieniła brak obsługi WebM w MTP jako jeden z powodów, dla których nie wspierał formatu wideo w ich mobilnym systemie operacyjnym Sailfish OS . Nie jest jasne, czy ograniczenie dotyczy narzędzi lub specyfikacji, poza tym, że WebM nie jest zdefiniowany w specyfikacji MTP 1.1.

Funkcje bezpośredniej modyfikacji i częściowego przeniesienia

Te funkcje mogą być używane jako wydajniejsza alternatywa dla przesyłania i ponownego przesyłania całych plików:

Ze specyfikacji MTP 1.1:

Kod operacji Nazwa operacji Wyjaśnienie
0x9805 GetObjectPropList Transfer metadanych
0x9806 SetObjectPropList
0x1019 Przenieśobiekt Zmień nazwę pliku lub katalogu
0x101B GetPartialObjectOb Poproś o zakres bajtów pliku

Rozszerzenia dla Androida

Według go-mtpfs:

Kod operacji Nazwa operacji Wyjaśnienie
0x95C1 GetPartialObject64 To samo co GetPartialObject , ale z 64-bitowym przesunięciem
0x95C2 WyślijCzęściowy Obiekt To samo co GetPartialObject64 , ale kopiowanie hosta na urządzenie
0x95C3 Przytnij obiekt Obcina plik do długości 64 bitów
0x95C4 Rozpocznij edycję obiektu Należy wywołać przed użyciem SendPartialObject i TruncateObject
0x95C5 EndEditObject Wywoływane w celu zatwierdzenia zmian wprowadzonych przez SendPartialObject i TruncateObject

Wsparcie MTP

Okna

Adaptacja w systemie Windows

Protokół MTP jest obsługiwany w systemie Windows XP, jeśli zainstalowano program Windows Media Player 10 lub nowszy. Windows Vista i nowsze mają wbudowaną obsługę MTP. W przypadku starszych wersji systemu Windows, w szczególności Windows 2000, Windows 98 i Windows Me, firma Microsoft wydała zestaw MTP Porting Kit. który zawiera sterownik urządzenia MTP. Niektórzy producenci, tacy jak Creative Technology , dostarczają również starsze sterowniki MTP dla niektórych swoich odtwarzaczy; zazwyczaj składają się one z plików MTP Porting Kit z dostosowanym plikiem INF opisującym ich konkretne odtwarzacze.

Wsparcie przez oprogramowanie

System Windows nie przypisuje liter dysków ani ścieżek UNC do urządzeń podłączonych przez MTP; zamiast tego pojawiają się tylko jako nazwane urządzenia w aplikacjach obsługujących protokół MTP, takich jak Eksplorator Windows . W porównaniu z urządzeniami, które implementują pamięć masową USB, do takich urządzeń nie można uzyskać programowo dostępu za pomocą skryptów lub zwykłych programów systemu Windows, które zależą od liter dysków lub ścieżek UNC. Zamiast tego plikami należy manipulować za pomocą Eksploratora Windows lub aplikacji ze specjalnie napisaną obsługą protokołu MTP.

W systemie Windows urządzenia zgodne z protokołem MTP obsługują funkcję o nazwie Auto Sync, która umożliwia użytkownikom skonfigurowanie programu Windows Media Player w taki sposób, aby automatycznie przesyłał całą skopiowaną lub nowo pobraną zawartość do urządzeń, gdy są one podłączone — pod warunkiem, że zawartość jest zgodna z odtwarzaczem Windows Media. Auto Sync jest konfigurowalny, dzięki czemu odtwarzacz będzie przesyłał tylko treści, które spełniają określone kryteria (na przykład utwory z oceną co najmniej czterech gwiazdek). Zmiany wprowadzone we właściwościach plików (takich jak ocena użytkownika i liczba odtworzonych plików) na urządzeniu mogą być propagowane z powrotem do komputera po ponownym podłączeniu urządzenia.

Kopie plików, do których uzyskano dostęp za pośrednictwem protokołu MTP, mogą pozostać na komputerze hosta nawet po ponownym uruchomieniu, gdzie będą dostępne dla konta użytkownika, który uzyskał do nich dostęp, a także dla wszystkich innych kont użytkowników, które mogą odczytać pliki tego konta użytkownika, w tym dla użytkowników administracyjnych. Platforma czujników systemu Windows 7 obsługuje czujniki wbudowane w urządzenia zgodne z MTP.

Zachowanie przy przenoszeniu plików

W implementacji protokołu MTP używanego przez Eksploratora Windows pliki z zaznaczenia przeniesione z pamięci urządzenia mobilnego, być może w celu zwolnienia miejsca, nie są usuwane pojedynczo ze źródła po każdym pliku, ale zamiast tego cały wybór zostaje usunięty w raz ze źródła dopiero po zakończeniu transferu.

W rezultacie przenoszenie plików przerwane w nieodpowiednim czasie, ręcznie lub nieoczekiwanie, nie spowoduje zwolnienia miejsca na urządzeniu źródłowym.

Systemy uniksopodobne

Bezpłatna implementacja protokołu Media Transfer Protocol o otwartym kodzie źródłowym jest dostępna jako libmtp. Ta biblioteka zawiera identyfikatory produktów i urządzeń z wielu źródeł i jest powszechnie używana w innym oprogramowaniu do obsługi protokołu MTP.

Graficzny

Aplikacje GNOME , takie jak GNOME Files (wcześniej nazywane Nautilus) i Archive Manager (wcześniej nazywane File-Roller), używają GVfs opartych na GIO do uzyskiwania dostępu do plików na urządzeniach MTP. Poprawne wsparcie MTP zostało dodane do GVfs w wersji 1.15.2 (2013-01-15) przez Philipa Langdale'a. Dostępne są wczesne łatki dla GVfs umożliwiające bezpośrednie rozszerzenia we/wy Google.

Projekt KDE rozwija MTP KIO Slave z podobnym poziomem integracji jak GVfs.

Nie jest związany z GNOME ani KDE jest graficznym odtwarzaczem multimedialnym *NIX obsługującym MTP, gMTP .

Wirtualny system plików

Kilka narzędzi zapewnia system plików oparty na FUSE do montowania urządzeń MTP w hierarchii systemu plików Unix, dzięki czemu jest dostępny dla każdego programu działającego na plikach i katalogach. Przykłady obejmują mtpfs , jMTPFS , go-mtpfs i simple-mtpfs .

System operacyjny Mac

macOS ma wbudowaną obsługę MTP (poprzez aplikację „Obrazy cyfrowe”), ale nie ma sterowników (innych firm) do montowania urządzeń MTP jako dysków. Dostępnych jest również kilka aplikacji do przesyłania plików innych firm dla systemu Mac OS X 10.5 i nowszych:

  • Android File Transfer to prosty klient MTP.
  • Android File Transfer dla systemu Linux (i Mac OS X!), Open Source, Licencja GPL w wersji 3, graficzny interfejs użytkownika, narzędzie wiersza poleceń, opakowanie FUSE - montowanie urządzenia,
  • XNJB oferuje również synchronizację list odtwarzania iTunes.
  • SyncMate Expert twierdzi, że oprócz innych zadań synchronizacji obsługuje również MTP. Wsparcie nie może być testowane w wersji darmowej.
  • Commander One PRO Pack - menedżer plików, który umożliwia montowanie urządzeń MTP na Macu i zarządzanie ich zawartością.

Inne systemy operacyjne

Późniejsze wersje kilku systemów operacyjnych, w tym AmigaOS , Android , AROS , MorphOS i Symbian OS obsługują MTP, czasami z dodatkowymi sterownikami lub oprogramowaniem.

Wadą urządzeń MTP w systemie Android w porównaniu z pamięcią masową USB jest to, że chociaż znaczniki czasu plików są zachowywane podczas kopiowania plików z urządzenia z systemem Android na komputer, podczas kopiowania w drugą stronę znaczniki czasu modyfikacji plików są zastępowane czasem kopii gotowy.

Inni producenci

Firmy, w tym Creative Technology, Intel , iriver i Samsung Electronics , które produkują urządzenia oparte na „ specyfikacji Portable Media Center ” Microsoftu , szeroko przyjęły MTP. Urządzenia wspierające zostały zaprezentowane na targach Consumer Electronics Show w 2004 roku .

Po początkowym okresie niepewnych reakcji kilku dużych producentów odtwarzaczy multimedialnych, takich jak Creative Technology i iriver, przyjęło protokół MTP w miejsce własnych protokołów.

Wiele urządzeń i aplikacji audio obsługuje protokół MTP.

Alternatywy

Zobacz też

Bibliografia

Linki zewnętrzne