cq9电子·(中国)官方网站

技術服務
24小時提供高效率、高質量的技術支持

MQTT协议详解 MQTT协议的特点

时间:2019-07-05 14:01:55來源:本站原創

MQTT网关

 

  1、MQTT簡介

  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。

  MQTT是一個支持客戶端-服務器的發布/訂閱消息傳輸的標准通信協議。MQTT是輕量級的、開放的、簡單的、在設計上是易于實現的。這些特性使得MQTT非常適合于許多場景,包括受限的環境,比如M2M的通信和物聯網IoT通信,只需一點點計算資源和一點網絡帶寬就可以實現。


  2、MQTT 协议设计原则

  由于物聯網的環境是非常特別的,所以MQTT遵循以下設計原則:

  (1)精簡,不添加可有可無的功能;

  (2)發布/訂閱(Pub/Sub)模式,方便消息在傳感器之間傳遞;

  (3)允許用戶動態創建主題,零運維成本;

  (4)把傳輸量降到最低以提高傳輸效率;

  (5)把低帶寬、高延遲、不穩定的網絡等因素考慮在內;

  (6)支持連續的會話控制;

  (7)理解客戶端計算能力可能很低;

  (8)提供服務質量管理;

  (9)假設數據不可知,不強求傳輸數據的類型與格式,保持靈活性。

  3、MQTT 协议特性

  MQTT協議工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:

  (1)使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程序耦合。

  這一點很類似于XMPP,但是MQTT的信息冗余遠小于XMPP,,因爲XMPP使用XML格式文本來傳遞數據。

  (2)對負載內容屏蔽的消息傳輸。

  (3)使用TCP/IP提供網絡連接。

  主流的MQTT是基于TCP連接進行數據推送的,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式,優缺點自然也就各有不同了。

  (4)有三種消息發布服務質量:

  “至多一次”,消息發布完全依賴底層TCP/IP網絡。會發生消息丟失或重複。這一級別可用于如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因爲不久後還會有第二次發送。這一種方式主要普通APP的推送,倘若你的智能設備在消息推送時未聯網,推送過去沒收到,再次聯網也就收不到了。

  “至少一次”,確保消息到達,但消息重複可能會發生。

  “只有一次”,確保消息到達一次。在一些要求比較嚴格的計費系統中,可以使用此級別。在計費系統中,消息重複或丟失會導致不正確的結果。這種最高質量的消息發布服務還可以用于即時通訊類的APP的推送,確保用戶收到且只會收到一次。

  (5)小型傳輸,開銷很小(固定長度的頭部是2字節),協議交換最小化,以降低網絡流量。

  這就是爲什麽在介紹裏說它非常適合“在物聯網領域,傳感器與服務器的通信,信息的收集”,要知道嵌入式設備的運算能力和帶寬都相對薄弱,使用這種協議來傳遞消息再適合不過了。

  (6)使用Last Will和Testament特性通知有关各方客户端异常中断的机制。

  Last Will:即遗言机制,用于通知同一主題下的其他设备发送遗言的设备已经断开了连接。

  Testament:遗嘱机制,功能类似于Last Will。

计讯物联——物联网産品与行业解决方案提供商 申請樣機
相關方案Relevant Solutions
All Rights Reserved 廈門cq9电子官方网站物聯科技有限公司版權所有 閩ICP備15001895號 闽公网安备 35021102001331号
【网站地图】【sitemap】