物聯(lián)網(wǎng)設(shè)備在不同層使用不同的通信和消息傳遞協(xié)議。在開發(fā)IoT設(shè)備時,設(shè)備要執(zhí)行的類型,層和功能往往決定了最終的選擇。MQTT,XMPP,DDS,AMQP和CoAP是IoT應(yīng)用層中廣泛使用的一些通信協(xié)議。今天,小隱帶大家了解這幾個通信協(xié)議的優(yōu)缺點。
MQTT
MQTT是一種機器對機器(M2M)協(xié)議。它是一種基于發(fā)布 - 訂閱的消息傳輸協(xié)議,用于將設(shè)備數(shù)據(jù)傳送到服務(wù)器。MQTT的主要目的是遠程管理物聯(lián)網(wǎng)設(shè)備。它主要用于需要通過互聯(lián)網(wǎng)監(jiān)控或管理龐大的小型設(shè)備網(wǎng)絡(luò),即停車傳感器,水下線路,能源網(wǎng)絡(luò)等。
MQTT工作原理
優(yōu)點
適用于受限網(wǎng)絡(luò)的輕量級
靈活選擇具有給定功能的服務(wù)質(zhì)量
由OASIS技術(shù)委員會標準化
實施簡單快捷
缺點
由于基于TCP的連接,功耗很高
缺乏加密
常見應(yīng)用場景:
在大型地下停車場安裝了許多停車傳感器,以識別空的或空置的停車位的數(shù)量和位置。
XMPP
XMPP使用XML格式進行消息傳遞。該協(xié)議的主要特征是其尋址機制。它使用稱為Jabber ID(JID)的地址識別物聯(lián)網(wǎng)網(wǎng)絡(luò)中的設(shè)備/節(jié)點。JID遵循標準[email protected]。無論節(jié)點在網(wǎng)絡(luò)中的距離如何,這種尋址機制都可以使兩個節(jié)點交換信息。
XMPP消息通常通過底層TCP連接傳輸。它使用輪詢機制來標識消息的目標。XMPP使用客戶端 - 服務(wù)器體系結(jié)構(gòu)實現(xiàn)。客戶端通過發(fā)送開始標記來啟動XML流。然后,服務(wù)器使用XML流回復客戶端。由于XMPP是一種開放協(xié)議,任何人都可以在其網(wǎng)絡(luò)中擁有自己的XMPP服務(wù)器,而無需連接到Internet。
XMPP工作原理
優(yōu)點
尋址方案以識別網(wǎng)絡(luò)上的設(shè)備
客戶端 - 服務(wù)器架構(gòu)
缺點
基于文本的消息傳遞,沒有端到端的加密配置
沒有服務(wù)質(zhì)量規(guī)定
常見應(yīng)用場景:
智能恒溫器,可通過Web服務(wù)器從智能手機訪問。
一個游戲控制臺,在兩個在線玩家之間提供即時消息。
DDS
DDS也基于發(fā)布 - 訂閱模型。DDS直接連接設(shè)備,與MQTT不同,MQTT將它們連接到服務(wù)器。這就是DDS比MQTT更快的原因。顯然,它可以在幾秒鐘內(nèi)向多個不同的接收器傳送數(shù)百萬條消息,因為它消除了與服務(wù)器的通信。DDS可用于通過數(shù)據(jù)總線提供設(shè)備到設(shè)備通信。它提供詳細的服務(wù)質(zhì)量和可靠性。
DDS 工作原理
優(yōu)點
基于簡單的“發(fā)布 - 訂閱”通信范例
靈活且適應(yīng)性強的架構(gòu),支持新的或過時的端點應(yīng)用程序的“自動發(fā)現(xiàn)”
低開銷 - 可與高性能系統(tǒng)一起使用
確定性數(shù)據(jù)傳遞
動態(tài)可擴展
有效利用傳輸帶寬
常見應(yīng)用場景:
軍事系統(tǒng),風電場,醫(yī)院集成,醫(yī)療成像,資產(chǎn)跟蹤系統(tǒng)以及汽車測試和安全。
AMQP
高級消息隊列協(xié)議(AMQP)是一種開放標準應(yīng)用層協(xié)議,用于在服務(wù)器之間發(fā)送事務(wù)消息。作為以消息為中心的中間件,它可以處理數(shù)千個可靠的排隊事務(wù)。AMQP專注于不丟失消息,因為消息可以使用TCP或UDP傳輸。TCP的使用提供了可靠的點對點連接。此外,端點必須確認接受每條消息。該標準還描述了具有正式多階段提交序列的可選事務(wù)模式。AMQP專注于跟蹤消息并確保每條消息按預(yù)期交付,無論故障或重新啟動如何。
AMQP工作原理
優(yōu)點
消息可以通過TCP和UDP發(fā)送
提供端到端加密
缺點
相對較高的資源利用率,即功率和內(nèi)存使用率
常見應(yīng)用場景:
AMQP主要用于商業(yè)消息傳遞。它通常定義移動手機等設(shè)備,與后臺數(shù)據(jù)中心通信。
所有上面列出的協(xié)議都特別適用于不同的操作場景。任何協(xié)議都可以根據(jù)物聯(lián)網(wǎng)應(yīng)用程序開發(fā)的優(yōu)缺點進行精心挑選。在為應(yīng)用程序選擇其中任何一個時要考慮的主要因素是服務(wù)質(zhì)量,安全性以及應(yīng)用程序所需的可靠性。
結(jié)語:任何協(xié)議都可以根據(jù)物聯(lián)網(wǎng)應(yīng)用程序開發(fā)的優(yōu)缺點進行精心挑選。我們在為應(yīng)用程序選擇傳輸協(xié)議時需要考慮的主要因素是服務(wù)質(zhì)量,安全性以及應(yīng)用程序所需的可靠性。