什麼是 物聯網通信協議?
物聯網協定是標準或 “語言” 被機器用來相互通信, 或透過平台. 基於它們的特性和功能, 這些協議主要分為 3 類型: 傳輸協定, 通訊協議, 和行業特定協議.
傳輸協定: 設備用於 物聯網網路 並在子網中連接, 包括無線網路, 藍牙, 紫蜂, 乙太網路, 近場通訊, 3G/ 4G/ 5G等.
通信協議: 用於數據傳輸設備之間的數據傳輸, 在網絡層上方操作並為用戶提供應用程序層服務. 一些通信協議: MQTT, 砲台, http/https, Websocket, AMQP.
特定於行業的協議: 特定行業內的標準協議,以確保設備之間的兼容性, 系統, 不同製造商和品牌的平台, 例如JT/T 808 中國的車輛終端通信協議.
理解 7 物聯網通信協議:
在這裡,您會發現物聯網行業中使用的一些通信協議, 包括:
1. 休息/http
什麼是休息
休息 (代表性國家轉移)是一種建築風格,而不是設計網絡應用程序的標準, 通常使用HTTP作為其運輸協議來實施其建築原理.
特徵:
- 無狀態: 每個請求包含所有必要的信息, 服務器無法維護客戶端的狀態.
- 資源標識: 在服務器端, 應用狀態和功能可以分為各種資源, 暴露於客戶. 資源的示例包括應用程序對象, 數據庫記錄, 演算法, ETC. 每個資源都使用URI分配一個唯一地址 (通用資源標識符).
- 統一界面: 使用標準的HTTP方法來操縱資源, 例如獲取, 郵政, 放, 刪除
應用:
REST/HTTP主要旨在簡化Internet的系統體系結構, 快速在客戶端和服務器交互之間實現鬆散的耦合, 從而減少互動延遲. 所以, 適合 物聯網應用, 通過休息使物聯網資源的暴露, 允許其他應用程序調用服務.
2. 砲台
什麼是Coap
砲台 (受限的應用程序協議) 為受限設備提供簡單有效的溝通, 使其非常適合低功率運行, 低帶寬, 和高延遲環境.
特徵:
- 標題壓縮: COAP具有緊湊的二進制標頭,底座 4 位元組, 其次是擴展選項, 通常導致請求標題 10-20 位元組.
- 方法和烏里斯: 支持獲得, 放, 郵政, 刪除方法, 和用於訪問服務器資源的URI.
- 運輸層: 建立在UDP上,以最大程度地減少開銷並支持多播, 具有簡單的停留和等待可靠性機制.
- 異步交流: 與HTTP不同, COAP支持異步通信, M2M應用的理想.
- 資源發現: 包括用於資源發現的內置格式, 符合RFC 5785, 使用/.well-known/core用於資源描述.
- 快取: 支持緩存資源描述以提高性能.
應用:
COAP是簡化的基於HTTP的RESTFUL API. COAP是應用程序層協議 6 Lowpan協議堆棧, 適用於資源受限的通信IP網絡, 例如低功率傳感器和嵌入式系統.
3. MQTT
什麼是mqtt
MQTT協議使用發布/訂閱模式, IOT終端通常通過TCP連接到MQTT代理. 經紀人通過主題管理通信內容,並負責在設備之間轉發消息.
特徵:
- Pubish/訂閱模型: 客戶可以將消息發佈到主題並訂閱以從特定主題接收消息. 該模型啟用靈活的消息分發.
- 低帶寬: 消息標題很小, 通常僅 2 位元組, 支持有效的帶寬使用情況並使其適用於低型帶寬, 高延遲, 和不穩定的網絡.
- 可靠性: MQTT提供三個QoS級別用於消息傳遞: “最多一次,” “至少一次,” 和 “完全是一次。”
應用:
MQTT通常適用於設備數據收集到端點 (例如, 裝置 -> 伺服器) 和星際網絡體系結構中的集中溝通, 經紀人充當樞紐. 它在IoT方案中廣泛使用,也已在某些移動應用程序中採用, 例如Facebook Messenger (歷史上).
4. DDS
什麼是DDS
DDS (數據分配服務) 是為創建的中間件標準 實時系統. 它通過提供低潛伏期來滿足分佈式應用程序的嚴格要求, 高通量, 和確定性的表現.
特徵:
- 以數據為中心
- Brokeless發布/訂閱消息模型: 支持點對點, 點對點, 和多點到雜貨通信.
- 提供 21 服務質量 (QoS) 政策
應用:
分佈式, 高度可靠, 設備的實時數據通信. 現在, DDS廣泛用於民航和工業控制等領域.
5. AMQP
什麼是AMQP
AMQP是一種開放標準的應用層協議,旨在確保可靠的消息傳輸和排隊機制.
特徵:
- 電線級協議: 作為字節流在整個網絡上傳輸數據.
- 由於公開標準而引起的高兼容性
- 靈活的 & 安全的: 支持各種消息模式, 包括發布/訂閱和點對點. 它還結合了多種安全機制, 例如加密和身份驗證.
應用:
最初用於金融系統中的交易消息傳遞, 現在,AMQP主要用於物聯網應用程序,用於移動設備和後端數據中心之間的通信和數據分析.
6. xmpp
什麼是xmpp
作為開放標準的通信協議, xmpp (可擴展的消息傳遞和存在協議) 專為實時通信而設計, 例如即時消息傳遞和存在信息.
特徵:
- 客戶端/服務器通信模型: 客戶將請求發送到服務器, 哪個處理請求並將適當的響應或資源發送給客戶端.
- 分佈式網絡: 多個獨立節點形成網絡, 消除單點失敗.
- 簡單的客戶: 客戶處理更少的任務, 在服務器端完成的大多數計算.
- XML用於描述數據, 確保跨平台兼容性, 儘管JSON在現代應用中變得越來越流行.
應用:
XMPP用於即時消息傳遞, 網管, 內容交付, 協作工具, 文件共享, 賭博, 遠程系統監視, 還有更多.
7. JMS
什麼是JMS
JMS (Java消息服務) 是用於分佈式應用程序中消息傳遞的Java平台的標準API. 它允許應用程序通過消息隊列進行通信, 因此實現異步, 靈活的, 和可靠的消息交換.
特徵:
- 異步交流: 允許在不同時間發送和接收消息, 增加系統靈活性和響應能力.
- 消息耐用性: 提供消息持久性, 確保在系統故障的情況下不會丟失消息, 並提高可靠性
- 交易支持: JMS提供交易支持, 確保一組消息操作的原子量, 意味著所有操作要么完全成功,要么完全失敗, 從而保證數據一致性.
應用:
JMS是需要異步消息傳遞的分佈式應用程序的理想選擇, 系統解耦, 和高可靠性, 例如企業應用程序集成, 事件驅動的架構, 和實時數據處理.
物聯網通信協議的比較
特徵 | DDS | MQTT | AMQP | xmpp | JMS | 休息/http | 砲台 |
---|---|---|---|---|---|---|---|
抽象 | Pub/sub | Pub/sub | Pub/sub | 那 | Pub/sub | 請求/回复 | 請求/回复 |
建築學 | 全球數據空間 | 代理人 | P2P或代理 | 那 | 代理人 | 通過TCP保證 | P2P |
QoS | 22 類型 | 3 類型 | 3 類型 | 那 | 3 類型 | 通過TCP或已確認的消息確認 | 是的 |
互操作性 | 是的 | 部分 | 是的 | 那 | 不 | 是的 | 是的 |
表現 | 100,000 msg/s/sub | 1,000 msg/s/sub | 1,000 msg/s/sub | 那 | 1,000 msg/s/sub | 100 req/s | 100 req/s |
即時的 | 是的 | 不 | 不 | 不 | 不 | 不 | 是的 |
運輸層 | 支持UDP和TCP | 傳輸控制協定 | 傳輸控制協定 | 未指定, 通常是TCP | 傳輸控制協定 | UDP | UDP |
訂閱過濾 | 基於消息內容和基於主題的過濾 | 基於主題和消息內容的分層訂閱 | 隊列和消息過濾 | 那 | 消息內容和主題過濾 | 不支援 | 支持主題和多播 |
編碼 | 二進制 | 二進制 | 二進制 | XML格式 | 二進制 | 純文本 | 純文本 |
動態發現 | 是的 | 不 | 不 | 那 | 不 | 不 | 不 |
安全 | 提供FSS, 傳輸層安全協定, 和其他安全選項 | 簡單的用戶名/密碼, SSL數據加密 | SASL和TLS數據加密 | 那 | 提供FSS, 傳輸層安全協定, JAAS API支持 | 對SSL和TLS的一般支持 | 對SSL和TLS的一般支持 |
結論
MQTT, DDS, AMQP, xmpp, JMS, 休息, 和砲台是廣泛使用的協議, 每個都有多個實現, 要求對實時發布/訂閱物聯網通信的支持. 然而, 設計特定的物聯網系統體系結構時, 必須考慮場景的實際溝通需求,例如帶寬限制, 延遲要求, 和安全性 - 在選擇最合適的協議之前.