精述IBM的MQTT协议和MQTT-S协议

一.MQTT简介

MQTT (Message Queuing Telemetry Transport) 是由IBM研发的构建在TCP/IP之上的简单轻量的消息协议,目标使用场景为受限制环境,如低带宽、高延迟、不可靠网络,很适用于M2MIoT中。

 

MQTT协议最早于1999年发布第一版并被广泛使用在各个行业中,在2013年发布MQTT 3.1版本。

MQTT-SN(MQTT for Sensor Networks)是专门为WSN设计的协议,是MQTT的修改版本,1.2版本于2014年推出,可用于zigbee网络。

 

The EVERYTHING IoT platform使用MQTT作为上百万连接产品的M2M协议。Facebook MessengerAmazon Web Service也都使用了MQTT协议。

它的竞争协议包括XMPP协议和IETFCoAP协议。

 

 

二.MQTT具体细节

 

MQTT消息报文的方式包括connect,disconnect,subscribe,unsubscribe,publish等(类似于HTTP请求行的方法字段)。

 

如图1所述,为了保持简单和轻量,MQTT提供的安全比较少,主要借助其他设施,如SSL协议和由应用程序自己解决。

 

   精述IBM的MQTT协议和MQTT-S协议_第1张图片

                        图1   MQTT官方文档中安全部分的资料

 

 

 

MQTT的消息模型为publish-subscribe (发布-订阅模式),接收者(subscriber)向中介(broker)提交订阅自己感兴趣的内容,发送者(broker)把消息发送给中介,再由中介发送给订阅者。

这种模式这种通信模式的好处是接收者和发送者轻耦合,双方都只需与中介打交道,不需要关心另一方是谁和在哪里,并且方便接收者、发送者数量的增加和减少,很适用于分布式环境中,典型模式如图2所示。

 精述IBM的MQTT协议和MQTT-S协议_第2张图片

      图2 典型的发布/订阅消息通信模型

 

 

把WSN融入传统网络的拓扑图如图3所示,

 精述IBM的MQTT协议和MQTT-S协议_第3张图片

                图3  WSN和传统网络的融合图

 

而把MQTT协议应用于传统网络中的拓扑模式如图4所示(结构与图3很相近,不同点在于传统网络中增加了broker的角色,充当中介,减轻了gateway的通信交互压力),其中WSNgateway充当publisher的角色,把传感器的数据发布给传统网络中的用户。

 精述IBM的MQTT协议和MQTT-S协议_第4张图片

           图4   使用发布/订阅通信模式的WSN与传统网络融合图

 

 

而专门为WSN而设计的MQTT-S协议中,在WSN中进一步细化了角色,把终端传感器和执行器当作MQTT-S Client。从图中可以看出,MQTT-S协议用于WSN中传感器与WSN网关的通信,而MQTT协议用于WSN网关与传统网络中broker的通信。两个协议是可以互补,一起工作的。

 精述IBM的MQTT协议和MQTT-S协议_第5张图片

                        图5  MQTT-SN的结构

 

 

而更具体地,在WSN中网关作为WSN传感器与传统互联网中broker的中间者,通信模式可分为透明传输和汇聚传输两种,如图5所示。

透明传输实现更简单,但是WSN中有多少终端,broker就会收到多少连接,而因为WSN中传感器、执行器数量众多,这种模式会给broker很大的连接压力。相比之下汇聚传输则不会有这个问题,所以有大量WSN终端时汇聚模式更合适。

 精述IBM的MQTT协议和MQTT-S协议_第6张图片

                      图6 网关的透明传输和汇聚传输模式

你可能感兴趣的:(网络协议)