mtp简介

1.定义

MTP(Media Transfer Protocol),即媒体传输协议,由微软(Microsoft)开发。Linux有支持MTP的软件包。

根据MTP协议,MTP的使用者包括两个部分,分别是Initiator和Responder
  Initiator:主要是指USB Host,例如PC机,笔记本等。协议规定所有MTP操作只能由Initator发起。
  Responder:一般是诸如数码相机、智能手机等存储媒体文件的设备。Responder在MTP中的作用就是处理Initator发起的请求。
同时,它还会根据自身状态的变化发送Event以通知Initiator。

2.mtp的协议栈

与很多协议一样,MTP也有自己的协议栈, MTP协议栈由下到上分别是:

a. 物理层:物理层在MTP协议中用来传输数据。目前有三种物理层可供MTP使用:

    USB:其主要特点是传输文件,同步媒体文件时速度快,而且可以边工作边充电,这是目前用的最多的一种方式;
    IP:基于IP的MTP(简称MTP/IP)将通过UPnP来匹配和发现设备。它是家庭网络中是最理想的传输方式;
    Bluetooth:MTP/BT是最省电,同时也是速度最慢的一种传输方式,用处较少。

b. 传输层:MTP中,数据传输格式遵循PTP协议(PTP协议是MTP协议前身)
c. 命令层:实现了MTP协议中的各种命令。

 

 

3.mtp运行规则
mtp采用命令----应答方式来工作,(Initator发送命令给Responder处理,Responser反馈处理结果),这种方式的主要特点有:

所有MTP命令均以Package(数据包)的方式在设备两端进行传递。 Initiator必须接收到前一条消息的处理结果(不论是成功还是超时)后,才能发送下一条消息。


扩展 :微服务架构和MTP架构的比较如下:

MTP架构的不足之处:

代码庞杂,理解困难,上手也困难;

维护困难,如果应用越大,则维护的人越多,效率也会越低下;

启动一般较慢;

持续部署困难:每一次小改动都需要重新部署整个应用;

技术堆栈固化:尝试新技术的代价太高;

扩展困难:应用某些部分偏IO密集型、某些部分却偏CPU密集型,但应用却只部署在一台机器上,很难用单一硬件来满足应用各部分对硬件资源的不同要求;

微服务架构的优点:

每个微服务功能简单,代码量也不多,新人上手容易;

每个微服务可以由不同团队开发;

系统稳定性增强,单个服务的失效不会影响其他服务,可以一定程度实现服务降级;

容易尝试技术创新,甚至每个微服务都可以采用不同的编程语言编写,只要对外提供约定好的接口就行。

猜你喜欢

转载自www.cnblogs.com/PinkPink/p/9262586.html