Введение

Протокол компьютерных коммуникаций

Протокол передачи медиафайлов (MTP) является расширением протокола передачи изображений (PTP), позволяющим автоматически передавать медиафайлы на портативные устройства и с них. В то время как PTP был разработан для загрузки фотографий с цифровых фотоаппаратов, протокол передачи медиафайлов обеспечивает передачу музыкальных файлов на цифровые аудиоплееры и медиафайлы на портативные медиаплееры, а также персональную информацию на персональные цифровые помощники. MTP является ключевой частью WMDRM10 PD.

MTP входит в состав платформы "Windows Media" и, следовательно, тесно связан с Windows Media Player. Поддержка MTP реализована в операционных системах Microsoft Windows, начиная с Windows XP SP2. Для Windows XP требуется Windows Media Player 10 или более поздней версии; в более новых версиях Windows поддержка встроена. Microsoft предоставила комплект разработки MTP для более ранних версий Windows, начиная с Windows 98. В мае 2008 года рабочая группа USB Implementers Forum стандартизировала MTP как полноценный класс устройств универсальной последовательной шины (USB). С тех пор MTP является официальным расширением PTP и использует тот же классный код.

Обзор

MTP — это протокол передачи файлов высокого уровня, в отличие от протокола общего хранения, такого как USB-накопитель. Это означает, что клиент MTP (компьютер) не видит массив байтовых блоков, формирующих структуру данных, составляющую файловую систему, а взаимодействует с MTP-устройством в терминах файлов и папок. Это позволяет MTP-устройству участвовать в операциях высокого уровня (например, в обновлении индексов метаданных), сохраняя при этом целостность своей файловой системы под своим контролем. В частности, прерванные передачи (например, при слишком раннем отключении USB-кабеля) не приводят к повреждению файловой системы устройства. Ограниченность MTP влияет на то, как компьютерная операционная система может представлять MTP-устройство другим программам и пользователю. Согласно спецификации, основное назначение MTP — облегчить связь между мультимедийными устройствами при временном подключении. Узел, подключающийся к MTP-устройству, называется инициатором MTP, а само устройство — ответчиком MTP. MTP позволяет инициаторам MTP определять специфические возможности устройств в отношении форматов файлов и функциональности. В частности, инициаторам MTP может потребоваться вводить пароли и другую информацию для разблокировки файлов или для реализации управления цифровыми правами. Ничего подобного не предусмотрено в основном стандарте, но эти функции доступны через расширения, разработанные производителями. MTPZ, расширение Zune для MTP, специально запрещает доступ к файлам до завершения аутентификации, которая возможна только с использованием Windows Media Player 10 или более поздней версии.

Сравнение с USB Mass Storage

Преимущества MTP отмечены знаком "(+)", а недостатки — знаком "()".

Выступление

() Операции MTP не мультиплексируются – любая выполняемая операция должна быть либо завершена, либо прервана, прежде чем можно будет начать другую операцию. В отличие от USB-накопителей, где операционная система хоста может свободно мультиплексировать блочные передачи, а логические операции возникают как побочный эффект, операции, поддерживаемые MTP, более крупные, например, передача целых файлов. Ни один из протоколов сам по себе не является параллельным или асинхронным (за исключением расширения UAS для USB-накопителей, которое добавляет несколько очередей команд). () Ограниченная поддержка передачи частей файлов, таких как блоки или диапазоны байтов (см.). () Ограниченная поддержка непосредственного изменения файлов (см.). Для изменения файла или его метаданных может потребоваться скопировать весь файл с устройства и повторно загрузить его, что занимает много времени для большого файла или каталога и блокирует устройство для других операций на это время. Реализация MTP от Google в Android включает расширения для обхода этого ограничения; однако эти расширения должны поддерживаться операционной системой хоста. () Загрузка длинных списков файлов каталогов, содержащих тысячи элементов, происходит медленно. Это может привести к тому, что "подготовка" к передаче файлов из переполненных каталогов займет больше времени, чем сама передача файлов, поскольку файловому менеджеру необходимо сформировать список путей к файлам, которые он собирается передать, что требует доступа к медленным спискам каталогов.

Прозрачность для программного обеспечения, не знающего о MTP

Windows не назначает буквам дисков или UNC-путям устройствам MTP, поскольку не предоставляет их как виртуальные файловые системы. Без букв дисков или UNC-путей, программное обеспечение, не поддерживающее MTP, не может получить доступ к каталогам или файлам на этих устройствах. Пользователю необходимо переключиться на приложение, поддерживающее MTP, или воспользоваться приложением, поддерживающим MTP, например, проводником Windows, для копирования или перемещения файла в файловую систему, к которой приложение имеет доступ. Особую озабоченность вызывает то, что антивирусное программное обеспечение на компьютере-хосте может не распознавать устройства MTP, что делает их потенциально менее безопасными, чем устройства массового хранения (однако, если файлы на устройствах MTP копируются или перемещаются на компьютер-хост перед использованием, антивирусное программное обеспечение, не поддерживающее MTP, получит возможность их просканировать). Антивирусное сканирование также может быть затруднено из-за блокировки нормального использования устройства.

Водители знают фиксированный набор поддерживаемых устройств

Несмотря на возможность идентификации по классу устройств USB PTP/MTP, документация libmtp указывает, что комбинация идентификаторов производителя и продукта играет функциональную роль в определении MTP-устройства, в том числе и для драйверов Windows. Libmtp содержит обширные списки идентификаторов производителей и продуктов поддерживаемых устройств, а также обходные пути для исправления ошибок. Этот нестандартный подход ограничивает перспективную совместимость драйверов MTP с новыми устройствами.

Спецификация знает фиксированный набор определенных форматов файлов

Спецификация MTP содержит перечисление форматов файлов, называемое форматами объектов. Ненадежный источник: причина=Контент, созданный пользователем.

Поддержка программным обеспечением

Windows не присваивает буквам дисков или UNC-имена устройствам, подключенным через MTP; вместо этого они отображаются только как именованные устройства в приложениях, поддерживающих MTP, таких как проводник Windows. По сравнению с устройствами, реализующими USB-массовое хранилище, к таким устройствам нельзя получить программный доступ с помощью скриптов или обычных программ Windows, которые полагаются на буквы дисков или UNC-пути. Вместо этого файлы необходимо обрабатывать с помощью проводника Windows или приложений со специально разработанной поддержкой MTP. В Windows устройства, совместимые с MTP, поддерживают функцию "Автосинхронизация", которая позволяет пользователям настроить Windows Media Player для автоматической передачи всего скопированного или недавно добавленного контента на устройства при их подключении, при условии, что контент совместим с Windows Media Player. "Автосинхронизация" настраивается таким образом, чтобы проигрыватель передавал только контент, соответствующий определенным критериям (например, песни с рейтингом четыре звезды и выше). Изменения, внесенные в свойства файлов (например, рейтинг пользователя и количество воспроизведений) на устройстве, могут быть перенесены обратно на компьютер при повторном подключении устройства. Копии файлов, к которым осуществляется доступ через MTP, могут оставаться на основном компьютере даже после перезагрузки и будут доступны учетной записи пользователя, которая получила к ним доступ, а также любым другим учетным записям пользователей, имеющим права на чтение файлов этой учетной записи, включая учетные записи администраторов. Сенсорная платформа Windows 7 поддерживает датчики, встроенные в устройства, совместимые с MTP.

Поведение перемещения файлов

В реализации MTP, используемой проводником Windows, файлы, перемещенные из хранилища мобильного устройства, например, для освобождения места, не удаляются из исходного расположения по одному после каждого файла, а удаляются все сразу только после завершения передачи. Следовательно, прерванное вовремя или неожиданно перемещение файлов не освободит место на исходном устройстве.

Системы типа Unix

Бесплатная реализация с открытым исходным кодом протокола передачи медиа доступна в виде libmtp. Эта библиотека содержит идентификаторы продуктов и устройств из различных источников, разработана Филиппом Лэнгдейлом. Доступны ранние патчи для GVfs, обеспечивающие поддержку расширений прямого ввода-вывода от Google. Проект KDE разрабатывает MTP KIO Slave с уровнем интеграции, сопоставимым с GVfs. gMTP — это графический медиаплеер для *NIX, поддерживающий MTP и не связанный с GNOME или KDE.

Виртуальная файловая система

Несколько инструментов предоставляют файловую систему на основе FUSE для монтирования устройств MTP в иерархию файловой системы Unix, обеспечивая доступ к ним для любой программы, работающей с файлами и каталогами.

Другие операционные системы

Позднейшие версии нескольких операционных систем, включая AmigaOS, Android, AROS, MorphOS и Symbian OS поддерживают MTP, иногда с использованием дополнительных драйверов или программного обеспечения. Недостатком устройств MTP на Android по сравнению с USB-накопителями является то, что, хотя временные метки файлов сохраняются при копировании файлов с устройства Android на компьютер, при копировании в обратном направлении временные метки изменения файлов заменяются временем копирования.

Другие производители

Компании, включая Creative Technology, Intel, iriver и Samsung Electronics, производящие устройства на базе спецификации Microsoft "Portable Media Center", широко внедрили MTP. Устройства с поддержкой были представлены на выставке Consumer Electronics Show 2004 года. После первоначального периода неоднозначной реакции, несколько крупных производителей медиаплееров, таких как Creative Technology и iriver, перешли на протокол MTP вместо собственных. MTP поддерживается многими устройствами и аудиопрограммными приложениями.