文章目錄
- 物聯網IoT系列之MQTT協議基礎知識
- 物聯網IoT是什么?
- 什么是MQTT?
- 為什么說MQTT是適用于物聯網的協議?
- MQTT工作原理
- 核心組件
- 核心機制
- MQTT工作流程
- 1. 建立連接
- 2. 發布和訂閱
- 3. 消息確認
- 4. 斷開連接
- MQTT工作流程圖
- MQTT在物聯網中的應用
物聯網IoT系列之MQTT協議基礎知識
物聯網IoT是什么?
物聯網(Internet of Things,簡稱IoT)是一個由互聯網、傳統電信網、傳感器網絡等組成的龐大網絡,它通過嵌入式傳感器、設備和軟件,將物理世界中的物體連接起來,實現物與物、物與人、物與網絡之間的智能化交互。簡單來說,物聯網就是讓“萬物互聯”,讓設備能夠自主地感知、傳輸和處理數據,從而為人類生活和工業生產帶來更高的效率和便利。
什么是MQTT?
MQTT(Message Quelemetry Transport)是一種輕量級的、基于發布訂閱模式的網絡傳輸協議,適用于資源受限的設備和低帶寬、高延遲或不穩定的網絡環境。它在物聯網環境中應用廣泛,能夠實現傳感器、執行器和其他設備之間的高效通信。
為什么說MQTT是適用于物聯網的協議?
- 輕量級設計:MQTT協議頭部最小僅2字節,網絡傳輸開銷極小,適合在窄帶網絡(如NB-IoT)中使用。
- 低功耗:使用異步傳輸機制和較小的數據包傳輸,使得設備在通信過程中的能耗更低。
- 高可靠性:提供3種QoS級別(0/1/2),確保消息必達。
- 靈活擴展:通過主題(Topic)和通配符機制,設備可以靈活訂閱和發布消息,支持大規模設備接入。
- 適應不穩定網絡:心跳機制和會話恢復功能,確保設備在斷網后能夠快速恢復連接并獲取未讀消息。
MQTT工作原理
核心組件
- 發布者(Publisher):將消息發布到指定的主題(Topic),例如溫度傳感器、智能開關等。
- 消息代理(Broker):作為中間節點,負責接收發布者的消息并轉發給訂閱者,例如EMQX、Mosquitto、AWS IoT等。
- 訂閱者(Subscriber):訂閱特定Topic的消息,例如手機App、云端控制臺等。
核心機制
- Topic通配符
- 示例:
home/floor1/#
,訂閱floor1
下所有子主題的消息。
- 示例:
- QoS機制
- QoS是MQTT中用于控制信息傳輸質量的機制,MQTT定義了三種不同的QoS等級:QoS 0、QoS 1和QoS 2。
QoS等級 | 傳輸過程 | 適用場景 |
---|---|---|
0 | 最多發送一次(無需確認) | 實時性高但允許丟失數據的場景 |
1 | 至少一次(Broker確認) | 設備控制指令 |
2 | 精確一次(四次握手確保唯一性) | 支付、安全告警 |
MQTT工作流程
1. 建立連接
客戶端向Broker發送CONNECT
報文,包含客戶端ID、用戶名和密碼等認證信息。Broker驗證后返回CONNACK
報文,表示連接成功。
2. 發布和訂閱
- 發布:發布者將消息通過
PUBLISH
報文發送到Broker指定的主題(Topic),Broker根據訂閱關系將消息發送給指定的訂閱者。 - 訂閱:訂閱者發送
SUBSCRIBE
報文,指定要訂閱的主題(Topic)和QoS級別。
3. 消息確認
根據QoS級別,消息可能需要確認:
- QoS 0:消息“最多發送一次”,無需確認。
- QoS 1:消息“至少發送一次”,需要確認。
- QoS 2:消息“僅發送一次”,需要復雜的確認流程。
4. 斷開連接
客戶端發送DISCONNECT
報文,通知Broker主動斷開連接。
MQTT工作流程圖
以下是文字描述的流程圖結構:
客戶端|v
[建立連接] -> [發送CONNECT報文] -> [接收CONNACK報文]|v
[發布消息] -> [發送PUBLISH報文] -> [Broker轉發消息]|v
[訂閱消息] -> [發送SUBSCRIBE報文] -> [接收消息]|v
[消息確認] -> [根據QoS級別確認消息]|v
[斷開連接] -> [發送DISCONNECT報文]
MQTT工作流程圖:
MQTT在物聯網中的應用
MQTT廣泛應用于設備監控、車聯網、智能家居等領域。例如:
- 工業設備監控:通過MQTT實現設備狀態的實時傳輸。
- 智慧城市:用于環境傳感器實時傳輸溫度、濕度等數據。
- 智能家居:通過MQTT連接智能設備,實現遠程控制和自動化管理。