Media Transfer Protocol

Media transfer protocol 
МТP нь PTP ийн өргөтгөсөн протокол юм энэ нь Media file уудыг зөөвөрлөхөд ( зөөврийн төхөөрөмжинд зориулсан) ашигладаг болно. Харин PTP нь Camera наас зураг татахад зориулагдаж загварчилагдасан байдаг. MTP-ээр digital audio player дээр байгаа дуунууд мөн зөөврийн media player дээр байгаа media-г зөөвөрлөхөд ашигладаг. 
MTP нь WMDRM 10-PD ний нэг хэсэг бөгөөд windows media-ийн ерөнхий бүтэцэй төстэй, Microsoft-ийн Windows XP үйлдлийн системийн хувилбар нь MTP ийг дэмждэг. МТP нь windows мэдиа фрамэворкийн 1 хэсэг бөгөөд Windows Мэдиа player-тэй холбогдож ажилдаг/холбоотой байдаг. Microsoft Windows ийн үйлдлийн системээс XP SP2 хүртэлх хувилбарууд нь МТP ийг дэмждэг. Windows XP-д  Windows media player 10 Болон түүнээс дээшх хувилбарууд шаардлагатай байдаг.Windows XP гээс хойших Windows ийн хувилбаруудад өөрт нь байдаг.Microsoft нь windows өөс Windows 98 хүртэлх хуучний хувилбаруудад МТP port-ийн хэрэгсэлийг ашиглаж болхуйцаар бүтээсэн.
USB Implementers Forum ажлын багийнхан нь 2008 оны 5 сард MTP-г бүрэн боловсорсон USB гэж сатандарчилсан. Тэрнээс хойш MTP нь PTP гийн үндсэн нэмэлт tool болж ижил код ашигладаг болсон. 
 Түүх 
Энэ протокол нь гарах эсвэл орох гэсэн 1 үйлдэлийн функцтай(нэг үйлдэл хийхэд дараагын үйлдэл хүлээгдэдэг)  бөгөөд гол зорилго нь Зөвхөн media file-уудыг төхөөрөмжрүү шилжүүлдэг. Энэ нь онгойлгох засварлах болон өөрчлөх гэсэн үйлдлүүдийг хийдэггүй. Workaround нь хостын систем рүү эдгээр үйлдлүүдийг хуулаад буцаж хуулдаг. 	
Protocol нь анх USB-д хэрэглэгдэдэг байсан ба өргөжөөд Bluethoot Болон TCP/IP-Д хэрэглэгдэдэг болсон.Windows Vista-нь МТР-ийг TCP/IP аас илүү дэмждэг. Windows 7 болон ПЛАТФОРМ той Windows Vista нь МТР-ийг bluethoot-ээс илүү дэмждэг. MTP төхөөрөмжрүү холбогдож байгаа хостийг MTP initiator гэдэг ба энэ төхөөрөмжийг МТP responder гэдэг. 
MTP-г логик файл түвшин өөс илүүтэйгээр ашиглах гол шалтагаан нь: USB mass storage divece class нь Mass storage төхөөрөмжийн блокын маштабчилсан сүүлийн үйлдэл. Мөн USB mass storage class нь хост компьютр ихэнх mass storage-уудруу ( жишээ нь флаш диск ) нэгэн хэвийн хандалт хийхээр бүтээгдэсэн.
Туршилтаар USB host компьютер нь MSC partition дээр суурилсан үед mass storage-ийг бүрэн удирдадаг ба  Хост компьютэр нь холбоог салгахгүй л бол төхөөрөмжийн өгөгдөлд алдаа гарах эрсдэлтэй байдаг.Үүнтэйгүүр хост компьютер нь холбогдсон төхөөрөмжийг бүрэн удирдаж байгаа учир хост комьютер нь файлын системийг эвдэлэх эрсдэлтэй.Ийм үед файлын системтэй холбогдоогүй USB Төхөөрөмжийг дахин форматлах эсвэл USB төхөөрөмжийг танихгүй болгон өөрчлөдөг.
MTP болон PTP нь уг асуудлыг бүхэл бүхлээр биш хэсэг хэсэг болгон тухайн газрыг ( маш том хэмжээний) агуулахад ижил тэнцүү хандаж мөн хаах замаар шийдэдэг.Ийм үед MTP нь transactional файлын системээр ажилладаг -тухайн файл нь бичигдэсэн, уншигдасан байсан ч. Алдаа заасан шилжүүлгүүд storage mediа-д нөлөөлдөггүй.
Дискэн доторх индекс ийг төхөөрөмж хадгалдаг газар МТП нь дискнии агууламж шинэчлэгдэх бүрт хийсэн дахин шалгалтиин үр дүнг хадгалдаг.
Нэмж хэлхэд: МТP нь МТP initiator-ийг функцианал хамаарал болон файл форматтай холбоотой төхөөрөмжийн тодорхой нөхцөлийг засварлахыг зөвшөөрдөг. Тухайлбал MTP initiator нь файл онгойлгохын тулд нууц үг аль эсвэл өөр мэдээлэлтэй байх шаардлагатай,эсвэл дижитал эрхийн манежмэнтийг идэвхтэй болгох хэрэгтэй.
Гол стандартад яг тодорхой шинж байхгүй боловч онцлогыг нь хөгжүүлэгчид чөлөөтэйгээр өргөжүүлдэг.
MTPZ, MTP рүү zune Extention нь Windows media player 10 Болон түүнээс дээш хувилбард баталгаажуулалт хийгдэх хүртэл файлд очих хандалтыг устгадаг.
 USB ихээр хадгалах төхөөрөмжийн төрлүүд. 
 Блок чиглүүлэх протоколоос илүү Файл чиглүүлэх 
Filesystem ба metadata index ийг илчлэлгүйгээр эдгээрий интэчир нь төхөөрөмжид бүх хяналт оршино.
Filesystem ийн эвдрэл хуулах явцад төхөөрөмжийг салгавал  үүсэх аюулгүй(atomic file transfer)
Шаардлаггүй салгалтын дараа  Metadata г re-indexing тэй хамт оруулах .
Төхөөрөмжийн Filesystemийг хост дэмжих шаардлагагүй. Эсрэгээр төхөөрөмж үйлдвэрлэгч Filesystemийг  бусад өргөн хэрэглэгддэг FAT төрлийн filesystem ээр сонгох 
Компюьтэр дээрх Filesystem  сэргээх болон undeletion багаж хэрэглэгдэх боломжгүй.
 Гүйцэтгэл 
MTP паралэлизмийг зөвшөөрөх ба NAS USB MASS storage тэй адилгүй. MTP нэгж хугацаанд нэг л үйлдэлийг зөвшөөрөх ба бусад үйлдлүүд өмнөх үйлдэлийг дуусах хүртэл хийгдэхгүй.
 Файлуудын  хэсгийг дамжуулахад хязгаарлагдмал дэмжлэг үзүүлэх, блок эсвэл byte ranges шиг.
Шууд модификац бүхий файлыг хязгаарлагдмал дэмжих . файл эсвэл metadata ийн өөрчилхийн тулд  бүхий л файлыг хуулах хэрэгтэй ба дахин байршуулах хэрэгтэй болдог, энэ нь томоохон эсвэл зааварчилгаанд ихээхэн цаг зарцуулдаг  ба энэ хугацаанд төхөөрөмжийг бусад үйлдлээс хаадаг. ANDROID дах Google MTP нэмэлт хязгаарлалттийг  зохицуулдаг. Гэсэн хэдий ч энэ нь үндсэн үйлдлийг систэмээр дэмжигдсэн байх ёстой.
 MTP мэдэгдээгүй програм хангамжийн ил тод байдал 
Үйлдлийн систэм MTP төхөөрөмжийг virtual file system гэж илчлэх хүртэл MTP  мэдэгдээгүй програм хангамж  төхөөрөмжийг хэрэглэхгүй., MTP төрлийн програмийг хязгаарлана. 1  онцгой  зүйл нь хост компютэрийн  anti-virus програм MTP төхөөрөмжийг мэдэдгүй байж болно, ихээр хадгалах төхөөрөмжийг хамгаалалт муутай болгодог. Antivirus хайлт төхөөрөмжийн хэрэглээнд дасаагүй байж болно.
 Дэмждэг төхөөрөмжийн ил жагсаалт 
MTp ийн зарим нэмэлт libmtp зэрэг худалдагч ба бүтээгдхүүний бүх төхөөрөмжид дэмжигдэх  ID дугаар  бичигдсэн байх. Энэ нь төхөөрөмж идэвхтэй болох хүртэл шинэ төхөөрөмжинд  гацалттай дэмжлэг болдог сул талтай ба  хөгжүүлэгчдэд нарийн зүйлсийг  дурддаг ба сайжруулсан програм хангамж эцсийн хэрэглэгч дээр хүрдэг.
 Боломжит файлын төрлийн хязгаарласан жагсаалт. 
MTP ийн тусгайд  файлийн enumeration төрөл ордог , object format(обьект төрөл) гэж дууддаг . энэ жагсаалтын  хэрэглээ нь дэмждэг файлийн төрөл ба дамжуулсан файлын төрөлтэй харьцахад хэрэглэдэг. Зарим ангилагдаагүй төрлийн эхнээс тусдаа, төрлийн жагсаалт зураг дуу бичлэг ба бичиг баримт гэж багцлах ба аль ч ангилал нв нэг тодорхойлогдоогүй төрлийг тодорхой төрлөөр зөвшөөрдөг. Мөн super-generic”UNDefined object ”төрөл байна.
Jolla WEBM ийн дэмжлэгийн хомсдолийг иш татахдаа  MTPийг SAILfish OS зөөврийн үйлдлийн систэмд  бичлэгний төрөл дэмждэггүйг нэг шалтгаан болгосон.  Энэ нь заварчилгааны хязгаарлалаас болж байгаа эсвэл WEBM MTP1.1 зааварчилгаагаар тодорхойлогдоогүй  болхоор ингэж байгаа үгүй нь тодорхойгүй байгаа. 
 Шууд модификац ба  хэсэгчилсэн дамжуулах онцлогууд 
Энэ онцлогууд үр дүнтэйтэйгээр бүхийл файл дамжуулах ба дахин байршуулах ийг хэрэглэж болно.
 Opcode  Үйлдлийн нэр  тайлбар0x9805  GetObjectPropList Metadata дамжуулах 0x9806  SetObjectPropList  Metadata дамжуулах 0x1019  MoveObject  Файлыг дахин нэрлэх эсвэл удирдах 0x101B  GetPartialObject  Файлын byte зайн хүсэлт
 Android extension 
go-mtpfs ийн дагуу
 Opcode  Үйлдийн нэр   Тайлбар 0x95C1 GetPartialObject64 GetPartialObject тай адил, гэвч 64 бит тэнцвэртэй 0x95C2  SendPartialObject GetPartialObject64 адил гэвч хостыг төхөөрөмжрүү хуулна0x95C3  TruncateObject  64 битийн уртруу хураангуйл нь 0x95C4  BeginEditObject  SendPartialObject ба TruncateObject ий өмнө дуудагдана 0x95C5  EndEditObject   SendPartialObject ба TruncateObject ээр өөрчлөлт хийхэд дуудагдана. 
 MTP дэмжлэг 
 WINDOWS 
MTP нь WINDOWS XP дээр хэрэв  WINDOWS MEDIA PLAYER10  эсвэл дараагийн загвар суусан бол дэмжинэ. Windows Vista  ба дараагийн MTP дэмжлэг бүтээгдсэн. WINDOWs ийн өмнөх загваруудад  тусгайлан windows 2000 windows 98  ба windows me Microsoft MTP proting kit байдаг.  Энэ нь MTP  төхөөрөмжийн Driver агуулдаг. Зарим үйлдвэрлэгчид creative technology зэрэг нь  өөрсдийн тоглуулагчид зориулж тусгай MTP driver  хийдэг, энэ нь ихэвчлэн MTP porting kit  файлаас шалтгаалж INF файл тайлбараар таарах тоглуулагчиндаа тохируулдаг.
Ихэнх MTP таарах төхөөрөмжүүд  Drive-letter  таардаггүй, оронд нь  тэд Windows explorer мэтийн аппликатионд төхөөрөмж хэлбэрээр илэрдэг. USB нэмсэн төхөөрөмжтэй харьцуулахад  ийм төхөөрөмж  програмын хувьд script лүү эсвэл энгийн Drive letter дээр тогтдог windows програмруу нэвтэрж чаддадгүй. Оронд нь  файл Windows explorer  эсвэл MTP  дэмждэг тусгайлсан аппликатион ашиглаж хувисдаг. Windows дээрх MTP төхөөрөмжийн өөр сул тал нь файл Хугацааны тамга Windows explorer дээх харагдадгүй , гэсэн хэдий ч PROPERTIES popup нээснээр буцааж авч болдог.
Windows ийн дор MTP AUTOSYNC онцлогийг дэмжих болсон ба энэ нь хэрэглэгчийг windows media player ийг автоматаар бүх хуулсан болон шинэ авсан контентийг холбосон төхөөрөмжид тохируулах боломж олгодог WINDOWS media player тэй өрсөлдөх чадвартай болгож бүтээсэн.  AUTOsync нь тоглуулагчийг зөвхөн  хэд хэдэн шалгуураар өгдөг. Өөрчлөлтүүд төхөөрөмж дээрх компюьтэрт  эргэж холбогдсон үед дахиж файлийн төлөв байдалд өгөгддөг. 
MTP ээр өгөгдсөн файлыг хуулж reboot ын дараа ч үлдхээр болгох ба нэвтэрсэн хэрэглэгчийн аккоунт дээр нэвтрэх боломжтой байх ба бусад хэрэглэгчийн аккоунтын файл уншиж болно, үүнд админ хэрэглэгч. Windows 7 мэдрэгч платформ MTP өрсөлдөгч төхөөрөмж дэмждэг
 UNIX төст систэм 
Үнэгүй ба open-source нэмэлт ба media transfer protocol  libmtp ээр байна. Энэ сан нь бүтээгдхүүнтэй хамтрах ба  олон үүсгэвэрээс  төхөөрөмжийн ID г авдаг ба MTP дэмжих бусад програм хангамж дээр хэрэглэдэг.

 Graphical(графикийн) 
Gnome  аппликатион GNOMe файлтай төстэй ба ARCHIVE manager   GIO суурьтай GVFs хэрэглэж MTP төхөөрөмждөх  файлруу нэвтэрдэг. Үндсэн MTP  дэмжлэг PHILIP LAngdale ээр GVFs ийн 1.15.2 (2013-01-15) нд нэмэгдсэн. Эхэндээ GFVs ийн патчууд googleийн I/O нэмэлтийг идэвхжүүлхэд боломжтой байсан. 
KDE PROJECT MTP KIO SLAVE г GVFs тэй ижил төвшинд  сайжруулдаг. GNOME  эсвэл KDE нь NIX графиктай  MTP capable media playerтэй gMTP холбоогүй юм.
 Virtual file system 
Хэд хэдэн багаж FUSE суурьтай файл систэм ийг өсөн нэмэгдэх MTP төхөөрөмжийг UNIX filesystem тэй шатлан захирдаг, үүнийг ямар ч файл болон чиглэл дээр ямар ч програм нэвтрэх боломжтой болгодог. Жишээ нь mtpfs, jMTPFS, go-mtpfs Ба simple-mtpfs
 MAC OS 
MAC OS MTP ийг дэмжих бүтээгдсэн ч MTP  төхөөрөмж орох оролтгүй  энэ нь хэд хэдэн 3 дагч талын файл дамжуулах аппликатион MAC OS x10.5 Ба сүүлийн загвар дээрх боломж нь:
ANDroid file transfer нь энгийн MTP client. Гэсэн хэдий ч ANDroid file TRAsnfer хэдэн жилийн туршид сайжраагүй ба android centraлд abondonware ээр бүртгэгдсэн. 
XNJB Itunesийн playlist санал болгодог
SYNCmateEXPERT үүд MTPээс  бусад давхцах үүрэг дээр дэмждэг. Энэ нь үнэгүй загвар дээр туршиж болохгүй. 
 Бусад үйлдлийн систэм. 
Сүүлийн үеийн хэд хэдэн үйлдлийн систэм  жишээ нь amigaos , android ,aros, morphos БА symbianos MTP ийг дэмждэг, заримдаа нэмэлт төхөөрөмж эсвэл програм хангамжаар.
MTPийн  android  дэх USBтэй харьцуулсан сул тал нь ихээхэн агууламж нь ANDROID оос компюьтэрлүү хуулж байхад хугацааны тамга хадгалагддаг. Энэ файл өөрчлөлтийн хугацааны тамга нь хуулж дуусхад дахин солигдоно.
 Бусад үйлдвэрлэгчид  
Компанууд жишээ нь creative technology ,intel , iriver ба  Samsung  үйлдвэрлэгчид Microsoft ийн protable media center дээр үндсэлэсэн  ихээхэн хувьссан  MTP юм. 
Дэмжих төхөөрөмжүүд нь 2004 онд costumer electronic show дээр танилцуулагдсан. Хэсэг тодорхойгүй үйлдлийн  дараа  хэд хэдэн media player үйлдвэрлэгчид  жишээ нь creative technology ба iriver MTPпротоколыг өөрсдийн протоколын оронд хэрэглэж эхэлсэн.
Ашигласан материал
"Media Transfer Protocol Implementation Details". MTP defined in slide 3. Archived from the original on December 14, 2005.
"Final Availability of Windows Media Player 10 Brings More Music and More Choices to Music Fans" (Press release). Microsoft. September 2, 2004. Archived from the original on March 7, 2006.
 "MTP, Portable Player Standard? Microsoft's McLauchlan Sets Us Straight". July 31, 2006. Retrieved June 1, 2016.
 MTP Specification 1.1 on USB.org
 "MTP Over Various Transports". Retrieved June 1, 2016.
 "MTP Specification". Archived from the original on June 4, 2011.
 "Normal file read/write support with the GVFS MTP backend!". February 18, 2013. Retrieved June 1, 2016.
 "hanwen/go-mtpfs". Retrieved June 1, 2016.
 "libmtp source code: music_players.h". Retrieved November 26, 2015.
 "Webm (VP8, VP9, Opus) support for Sailfish - together.jolla.com". Retrieved June 1, 2016.
 "Media Transfer Protocol Porting Kit". Microsoft. Retrieved June 1, 2016.
 "Sensors and Windows". Windows Portable Devices Team Blog. December 17, 2009.
 "libmtp". Libmtp.sourceforge.net. Retrieved March 15, 2014.
 "gvfs-1.15.2.changes". ftp.gnome.org. January 15, 2013. Retrieved June 6, 2013.
 "Native gvfs backend for MTP devices". August 7, 2010. Retrieved June 1, 2016.
 "gvfs - Virtual filesystem implementation for GIO". git commit adding MTP back-end to GVfs. Retrieved June 1, 2016.
 "Bug 695984 – Add support for Android direct I/O extensions". Retrieved June 1, 2016.
 Arch Linux Wiki (September 1, 2014). "MTP". Retrieved October 23, 2014.
 "Android File Transfer". Android.com. Retrieved March 15, 2014.
 "Hey, Google — how about some love for the Mac Android File Transfer app?". Androidcentral.com. Retrieved September 29, 2016.
 "Android File Transfer Linux Mac OS X". whoozle. Retrieved December 2, 2016.
 "XNJB". Richard Low. Retrieved June 15, 2014.
 "SyncMate". ELTIMA software. Retrieved June 15, 2014.
 "Issue 57065 - android - Writing files via MTP set date and time for pictures and files to current, does not preserve timestamp. - Android Open Source Project - Issue Tracker - Google Project Hosting". code.google.com. 2016-08-30. Retrieved 2016-09-02.
 "Issue 18624 - android - setLastModified() always fails on Xoom unless running as root - Android Open Source Project - Issue Tracker - Google Project Hosting". code.google.com. 2016-08-30. Retrieved 2016-09-02.

Гадаад Холбоосууд
 MTP 1.1 specification

 MTP What, Why, How. (Android feature)
 ArchLinux Wiki: MTP