图片33
MQTT(Message Queuing Telemetry Transport),由IBM开发的即时通信协议,相对于IBM开发的IM协议,更适合物联网场景。MQTT协议采用发布/订阅模式,所有的物联网终端通过TCP连接到云上,在云中按照主题管理每个设备所关注的通信内容,负责在设备和设备之间转发消息。
由于MQTT协议设计时考虑到了不同设备计算性能的差异,因此各种协议均采用二进制格式编解码,且编码格式具有很好的开发和实现性。最小包仅为2字节,对低功率、低速网络具有良好的自适应能力。很完善的QOS机制,根据业务场景,最多一次、至少一次、三次同时进行三种消息传递方式。TCP协议运行于TCP协议之上,同时支持TCP+SSL协议,并且由于所有的数据通信通过云平台,安全性得到很好的保证。
应用领域:提供基于云平台的远程设备在低带宽、不可靠网络中的数据传输和监测。
其特征如下:
(1)采用基于代理的发布/订阅消息模式,提供一对多消息的发布;
(2)通过TCP/IP网络连接;
(3)小型传输,开销极小(固定长度的头为2字节),并尽量减少协议交换以减少网络通信;
(4)QoS支持方面,有三种消息发布服务质量:“最多一次”、“至少一次”、“仅一次”。
主协议的实现和应用:
(1)已有多种语言版本的PHP、JAVA、Python、C、C#等等;
(2)IBMBluemix的一个重要组成部分是其IoT Foundation服务,它是一个基于云的MQTT实例;
(3)移动应用很早就开始使用MQTT。
此外,通常将MQTT协议用于采集设备和终端的数据(Device→服务器、设备→网关);集中式星型网络体系结构,不适用于设备与设备间的通讯,另外,对设备的控制能力较弱,另外实时性较差,通常是秒级。