精述IBM的MQTT協議和MQTT-S協議

一.MQTT簡介

MQTT (Message Queuing Telemetry Transport) 是由IBM研發的構建在TCP/IP之上的簡單輕量的消息協議,目標使用場景爲受限制環境,如低帶寬、高延遲、不可靠網絡,很適用於M2M和IoT中。它的競爭協議包括XMPP協議和IETF的CoAP協議。設計模式

MQTT協議最先於1999年發佈初版並被普遍使用在各個行業中,在2013年發佈MQTT 3.1版本。
MQTT-S(MQTT for Sensor Networks)是專門爲WSN(無線傳感器網絡,Wireless Sensor Network)設計的協議,是MQTT的修改版本,1.2版本於2014年推出,可用於zigbee網絡。安全

The EVERYTHING IoT platform使用MQTT做爲上百萬鏈接產品的M2M協議。Facebook Messenger、Amazon Web Service也都使用了MQTT協議。網絡

二.MQTT具體細節

MQTT消息報文的方式包括connect,disconnect,subscribe,unsubscribe,publish等(相似於HTTP請求行的方法字段)。值得注意的是,爲了保持簡單和輕量,MQTT提供的安全比較少,主要藉助其餘設施,如SSL協議和由應用程序本身解決。less

MQTT的消息模型爲publish-subscribe (發佈-訂閱模式),即設計模式中的觀察者模式,接收者(subscriber)向中介(broker)提交訂閱本身感興趣的內容,發送者(broker)把消息發送給中介,再由中介發送給訂閱者。
這種模式這種通訊模式的好處是接收者和發送者輕耦合,雙方都只需與中介打交道,不須要關心另外一方是誰和在哪裏,而且方便接收者、發送者數量的增長和減小,很適用於分佈式環境中,典型模式如圖1所示。分佈式

圖片2.png

圖1 典型的發佈/訂閱消息通訊模型

把WSN融入傳統網絡的拓撲圖如圖2所示,
圖片3.pngui

圖2  WSN和傳統網絡的融合圖

而把MQTT協議應用於傳統網絡中的拓撲模式如圖3所示(結構與圖2很相近,不一樣點在於傳統網絡中增長了broker的角色,充當中介,減輕了gateway的通訊交互壓力),其中WSN的gateway充當publisher的角色,把傳感器的數據發佈給傳統網絡中的用戶。spa

圖片4.png

圖3  使用發佈/訂閱通訊模式的WSN與傳統網絡融合圖

而專門爲WSN而設計的MQTT-S協議中,在WSN中進一步細化了角色,把終端傳感器和執行器看成MQTT-S Client。從圖中能夠看出,MQTT-S協議用於WSN中傳感器與WSN網關的通訊,而MQTT協議用於WSN網關與傳統網絡中broker的通訊。兩個協議是能夠互補,一塊兒工做的。設計

圖片5.png

圖4 MQTT-SN的結構

而更具體地,在WSN中網關做爲WSN傳感器與傳統互聯網中broker的中間者,通訊模式可分爲透明傳輸和匯聚傳輸兩種,如圖4所示。code

透明傳輸實現更簡單,可是WSN中有多少終端,broker就會收到多少鏈接,而由於WSN中傳感器、執行器數量衆多,這種模式會給broker很大的鏈接壓力。相比之下匯聚傳輸則不會有這個問題,因此有大量WSN終端時匯聚模式更合適。orm

圖片6.png

圖5 網關的透明傳輸和匯聚傳輸模式
相關文章
相關標籤/搜索