미디어 전송 프로토콜

미디어 전송 프로토콜(Media Transfer Protocol, MTP)는 International Imaging Industry Association 고안한 PTP(Picture Transfer Protocol)를 마이크로소프트가 디지털 카메라 외의 장치들(디지털 오디오 플레이어, 이동형 미디어 장치/휴대형 비디오 플레이어)로부터 적용되도록 확장한 것이다.

미디어 전송 프로토콜은 윈도우 미디어 프레임워크의 한 부분으로, 윈도우 미디어 플레이어와 밀접한 관계를 맺고 있다. 윈도우 비스타는 MTP에 대한 지원을 내장하고 있고 윈도우 XP에 대한 지원은 윈도 미디어 플레이어 10 이후 버전을 설치를 필요로 한다.

맥 오에스 텐이나 리눅스같은 다른 운영체제 시스템은 네이티브 수준으로 지원하지 않지만 이를 지원하는 소프트웨어 꾸러미를 가지고 있다.

USB 임플리멘터스 포럼 디바이스 워킹 그룹(Implementers Forum device working group)은 MTP를 2008년 5월에 fully fledged USB 기기 클래스로 표준화하였다. 그 이후로 MTP는 공식적인 PTP(Picture Transfer Protocol, 사진 전송 프로토콜)의 확장이고 같은 class code를 공유한다.

 일반적인 사양 
MTP는 USB로 구현된다. MTP 장치에 접속하는 호스트를 MTP Initiator라고 하고, MTP 장치는 MTP Responder라 한다.

MTP가 지향하는 목적은 장치로부터 미디어 파일과 이와 연관된 메타데이터를 전송하는 데에 있고 여기에 부가적으로 장치에 대한 원격제어를 통해 제한된 DRM 관련 장치 매개변수를 읽고 설정하는 것이다. 또한 장치가 MTP를 통해 호스트에 이벤트를 보낼 수도 있다.

USB 대용량 장치 계열 대신 MTP를 사용하는 주 이유는 USB 대용량 장치 계열이 장치(MSC, mass-storage device class)를 논리 파일 수준이 아니라 낮은 수준의 블록 인터페이스에서 동작하기 때문이다. 다시 말해, USB 대용량 장치 계열은 호스트 컴퓨터가 대상 장치와 안전하게 공유될 수 있는 파일 시스템에 접근하지 않고 콤팩트 플래시와 같은 대용량 기억 장치를 대상으로 특성 없는 접근을 제공하도록 설계되었다는 것이다.

이를테면, USB 호스트 컴퓨터가 MSC 파티션을 마운트한다면, 해당 기억 장치에 대한 절대적인 제어권을 얻게 된다. 이렇게 되면 호스트 컴퓨터가 연결을 끊을 때까지 데이터 손상의 위험에 노출되게 된다.

MTP와 PTP는 이런 문제를 극복하기 위해 대상 장치를 낮은 수준의 블록 수준이 아니라 장치를 로컬 파일로 다룬다.

여기에 부가적으로 MTP는 MTP Initiator가 장치의 특별한 기능을 파악할 수 있게 하고, 또 접근이 제한된 파일에 대해 접근하기 위해 암호와 같은 정보를 제공할 수도 있다. 참고로 이런 기능은 핵심 표준에서 정해진 것이 아니라 업체의 확장(Vendor extension)을 통해 가능한 기능이다.

 직접 수정 및 부분 전송 기능 
이 기능들은 전체 파일 전송 및 다시 업로드 보다 더 효율적인 대안으로 사용할 수 있다.

MTP 1.1 사양의 경우:
 Opcode  명령 이름  설명 0x9805  GetObjectPropList  메타데이터 전송 0x9806  SetObjectPropList 0x1019  MoveObject  파일이나 디렉터리의 이름을 변경 0x101B  GetPartialObject  바이트 범위의 파일 요청

 안드로이드 확장 
go-mtpfs에 따르면:
 Opcode  명령 이름  설명0x95C1  GetPartialObject64  GetPartialObject와 동일하지만 64비트 오프셋 포함0x95C2  SendPartialObject GetPartialObject64과 동일하지만 호스트 대 디바이스 복사0x95C3  TruncateObject  64비트 길이로 잘라냄0x95C4  BeginEditObject  SendPartialObject와 TruncateObject를 사용하기 전에 호출해야 함0x95C5  EndEditObject  SendPartialObject와 TruncateObject가 취한 변경사항을 커밋하기 위해 호출됨

 같이 보기 
 윈도우 미디어
 USB 대용량 장치 계열

 각주 

 외부 링크 
 MTP 1.1 사양


분류:마이크로소프트 API
분류:멀티미디어
분류:마이크로소프트 윈도우 멀티미디어 기술