精述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協議和由應用程序自己解決。
MQTT的消息模型為publish-subscribe (發布-訂閱模式),即設計模式中的觀察者模式,接收者(subscriber)向中介(broker)提交訂閱自己感興趣的內容,發送者(broker)把消息發送給中介,再由中介發送給訂閱者。
這種模式這種通信模式的好處是接收者和發送者輕耦合,雙方都只需與中介打交道,不需要關心另一方是誰和在哪里,并且方便接收者、發送者數量的增加和減少,很適用于分布式環境中,典型模式如圖1所示。
圖1 典型的發布/訂閱消息通信模型
把WSN融入傳統網絡的拓撲圖如圖2所示,
而把MQTT協議應用于傳統網絡中的拓撲模式如圖3所示(結構與圖2很相近,不同點在于傳統網絡中增加了broker的角色,充當中介,減輕了gateway的通信交互壓力),其中WSN的gateway充當publisher的角色,把傳感器的數據發布給傳統網絡中的用戶。
圖3 使用發布/訂閱通信模式的WSN與傳統網絡融合圖
而專門為WSN而設計的MQTT-S協議中,在WSN中進一步細化了角色,把終端傳感器和執行器當作MQTT-S Client。從圖中可以看出,MQTT-S協議用于WSN中傳感器與WSN網關的通信,而MQTT協議用于WSN網關與傳統網絡中broker的通信。兩個協議是可以互補,一起工作的。
圖4 MQTT-SN的結構
而更具體地,在WSN中網關作為WSN傳感器與傳統互聯網中broker的中間者,通信模式可分為透明傳輸和匯聚傳輸兩種,如圖4所示。
透明傳輸實現更簡單,但是WSN中有多少終端,broker就會收到多少連接,而因為WSN中傳感器、執行器數量眾多,這種模式會給broker很大的連接壓力。相比之下匯聚傳輸則不會有這個問題,所以有大量WSN終端時匯聚模式更合適。
圖5 網關的透明傳輸和匯聚傳輸模式
總結
以上是生活随笔為你收集整理的精述IBM的MQTT协议和MQTT-S协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 入侵 mysql_Java访问
- 下一篇: s3c2440移植MQTT