柚子快報激活碼778899分享:物聯(lián)網(wǎng)8大協(xié)議介紹及對比
柚子快報激活碼778899分享:物聯(lián)網(wǎng)8大協(xié)議介紹及對比
一.物聯(lián)網(wǎng)主流協(xié)議介紹
1.MQTT 協(xié)議
MQTT(Message Queuing Telemetry Transport)即消息隊列遙測傳輸。
MQTT 協(xié)議最初是在 1999 年由 IBM 公司開發(fā)的,用于將石油管道上的傳感器與衛(wèi)星相連接。2014 年正式成為 OASIS 開放標(biāo)準(zhǔn)。
MQTT 使用類似 MQ 常用的發(fā)布 / 訂閱模式,起到應(yīng)用程序解耦、異步消息、削峰填谷的作用。很多 MQ 中間件也支持 MQTT 協(xié)議,比如 ActiveMQ、RabbitMQ、Kafka 等。
適用范圍:在低帶寬、不可靠的網(wǎng)絡(luò)下提供基于云平臺的遠(yuǎn)程設(shè)備的數(shù)據(jù)傳輸和監(jiān)控。
優(yōu)勢:
使用發(fā)布 / 訂閱模式,提供一對多的消息發(fā)布,使消息發(fā)送者和接受者在時間和時空上解耦。
二進(jìn)制協(xié)議,網(wǎng)絡(luò)傳輸開銷非常小(固定頭部是2字節(jié))。
靈活的 Topic 訂閱、QoS 等特性。
缺點(diǎn):
集中化部署,服務(wù)端壓力大,需要考慮流程控制及高可用。
對于請求 / 響應(yīng)模式的支持需要在應(yīng)用層根據(jù)消息 ID 做發(fā)布主題和訂閱主題之間的關(guān)聯(lián)。
MQTT 缺少存儲轉(zhuǎn)發(fā)隊列功能。
2.CoAP 協(xié)議
CoAP(Constrained Application Protocol)即受限的應(yīng)用協(xié)議。CoAP 是為了讓低功耗受限設(shè)備可以接入互聯(lián)網(wǎng),由 IETF 組織制定的,它借鑒了 HTTP 大量成功經(jīng)驗,同樣使用請求 / 響應(yīng)工作模式。
使用范圍:適用于互聯(lián)網(wǎng)環(huán)境下一對一 M2M 通訊。
優(yōu)勢:
采用和 HTTP 相似語義的請求和響應(yīng)碼,使用二進(jìn)制報文,報文大小較小。
傳輸層基于 UDP 協(xié)議,比 TCP 數(shù)據(jù)包小,并不需要建立連接帶來握手的開銷。
資源發(fā)送支持,通過觀察者模式實現(xiàn)類似發(fā)布 / 訂閱效果。
缺點(diǎn):
基于 UDP 的不可靠傳輸,但通過四種報文類型的組合及重傳機(jī)制提高了傳輸?shù)目煽啃浴?/p>
基于 UDP 的無連接傳輸,不利于不同網(wǎng)絡(luò)間消息的回傳。
3.HTTP 協(xié)議
HTTP 協(xié)議,即超文本傳輸協(xié)議(Hypertext Transfer Protocol),是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則,通過因特網(wǎng)傳送萬維網(wǎng)文檔得到數(shù)據(jù)傳送協(xié)議。
目前 HTTP 協(xié)議作為 WEB 的標(biāo)準(zhǔn)協(xié)議已被廣泛使用,它在一些物聯(lián)網(wǎng)場景中同樣可以使用,例如手機(jī)、PC等終端設(shè)備。但是作為適應(yīng)瀏覽器場景的 HTTP 協(xié)議,并不適用于物聯(lián)網(wǎng)的其他設(shè)備。
適用范圍:開放物聯(lián)網(wǎng)中的資源,實現(xiàn)服務(wù)被其他應(yīng)用所調(diào)用。
優(yōu)勢:
簡單的工作模式,請求 / 響應(yīng)。
完整的方法定義。
合理的狀態(tài)碼設(shè)計。
友好的媒體類型支持,如文本、圖片、視頻等。
缺點(diǎn):
單向傳輸,可以通過客戶端輪詢實現(xiàn)類似推送效果或者HTTP2.0
安全性不高,HTTP是明文協(xié)議,可以使用 HTTPS 傳輸。
HTTP 是文本協(xié)議,冗長的協(xié)議頭部,對于運(yùn)算、存儲、帶寬資源受限的設(shè)備來說開銷大。
4.AMQP
AMQP(Advanced Message Queuing Protocol)高級消息隊列協(xié)議,是一個進(jìn)程間傳遞異步消息的網(wǎng)絡(luò)協(xié)議。
(1)工作過程
發(fā)布者(Publisher)發(fā)布消息(Message),經(jīng)由交換機(jī)(Exchange)。
交換機(jī)根據(jù)路由規(guī)則將收到的消息分發(fā)給與該交換機(jī)綁定的隊列(Queue)。
最后 AMQP 代理會將消息投遞給訂閱了此隊列的消費(fèi)者,或者消費(fèi)者按照需求自行獲取。
AMQP 定義了四種類型的交換機(jī):
直接(點(diǎn)對點(diǎn)):消息直接發(fā)送給綁定到交換機(jī)的指定隊列。
扇出:消息發(fā)送給綁定到交換機(jī)的所有隊列。
主題(發(fā)布-訂閱):消息根據(jù)路由鍵和交換機(jī)綁定的模式發(fā)送到相應(yīng)的隊列。
頭部(發(fā)布-訂閱):消息根據(jù)消息頭部的匹配規(guī)則發(fā)送到相應(yīng)的隊列。
(2)AMQP 傳輸和幀
AMQP 是一種基于 TCP/IP 的二進(jìn)制協(xié)議,它在客戶端和 Broker 之間建立可靠的、持久的、面向流的連接。一個單一的套接字連接上可以創(chuàng)建多個信道,實現(xiàn)多個數(shù)據(jù)流的同時傳輸。
AMQP 1.0 版本中的幀由一個 8 字節(jié)的固定頭部、一個可選的擴(kuò)展頭部和一個長度可變的二進(jìn)制有效載荷組成。固定頭部包含了幀類型、信道號和有效載荷大小的信息。有效載荷包含了要傳輸?shù)膶嶋H消息,以及相關(guān)的元數(shù)據(jù)。
(3)AMQP的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
支持存儲轉(zhuǎn)發(fā)隊列:AMQP 支持存儲轉(zhuǎn)發(fā)隊列,但相對于 MQTT 而言,犧牲了一些效率并增加了一些復(fù)雜度。
活的消息路由:AMQP 提供多種消息路由方式,包括點(diǎn)對點(diǎn)、發(fā)布-訂閱和扇出。
安全:AMQP 支持 TLS 和 SASL 等加密和認(rèn)證安全機(jī)制。
成熟的生態(tài)系統(tǒng):AMQP 生態(tài)系統(tǒng)擁有豐富而成熟的開源服務(wù)器實現(xiàn)和客戶端庫,覆蓋多種編程語言。
缺點(diǎn):
復(fù)雜:AMQP 的模型涉及了許多概念,可能不太容易理解、配置和管理。
重量級:AMQP 在傳輸層通過“信道”實現(xiàn)了多路復(fù)用。而且每個 AMQP 幀都有 8 字節(jié)的頭部開銷。
向后兼容性差:AMQP 的最大問題是 0.9.1 版本和 1.0 版本完全不兼容,增加了解決方案的復(fù)雜度。
可擴(kuò)展性和性能受限:AMQP 在一些場景中可能受到可擴(kuò)展性和性能的限制。這是由于其架構(gòu)相對于輕量級協(xié)議如 MQTT 而言,引入了更多的復(fù)雜性和開銷。
(4)MQTT 與 AMQP 的詳細(xì)對比
(5)選擇 MQTT 和 AMQP 時需要考慮的因素
基于用戶場景的評估:
選擇 MQTT 或 AMQP 主要取決于用戶場景的需求。如果您要處理資源有限的設(shè)備或不穩(wěn)定的網(wǎng)絡(luò),MQTT 憑借其輕量級的特性可能是更佳的選擇。如果您的用戶場景需要復(fù)雜的路由和高可靠性,那么 AMQP 會更適合。
基于系統(tǒng)架構(gòu)的評估:
系統(tǒng)架構(gòu)也會影響決策。MQTT 的簡單性使其成為具有清晰簡單通信模型的系統(tǒng)的理想選擇。AMQP 憑借其靈活性和強(qiáng)大的功能集,更適合具有多樣化通信需求的復(fù)雜系統(tǒng)。
基于網(wǎng)絡(luò)條件的評估:
網(wǎng)絡(luò)條件是另一個重要因素。MQTT 在低帶寬、高延遲或不可靠的網(wǎng)絡(luò)中表現(xiàn)優(yōu)異。相反,AMQP 由于其較高的開銷,需要穩(wěn)定的網(wǎng)絡(luò)連接。
基于所需服務(wù)質(zhì)量的評估:
MQTT 提供了三個級別的服務(wù)質(zhì)量,可靈活保證消息的傳輸。AMQP 通過其持久化消息功能,可確保消息傳輸?shù)母呖煽啃浴?/p>
5.websocket
(1)概述
WebSocket 是一種用于在單個 TCP 連接上進(jìn)行全雙工通信的網(wǎng)絡(luò)協(xié)議。它使用類似于 HTTP 的握手來建立連接,然后使用單獨(dú)的持久連接來進(jìn)行通信。這種方式使得 WebSocket 可以在瀏覽器和服務(wù)器之間進(jìn)行實時通信,
而不需要多次發(fā)送 HTTP 請求來獲取數(shù)據(jù)。這意味著連接是持久的,它一直保持打開,直到有一方主動關(guān)閉連接。這使得 WebSocket 非常適合用于實時應(yīng)用程序,因為它不需要不斷地建立和關(guān)閉連接。
(2)WebSocket的實際用途
最常見的用途是在實時應(yīng)用程序開發(fā)中,它有助于在客戶端持續(xù)顯示數(shù)據(jù)。由于后端服務(wù)器不斷發(fā)回此數(shù)據(jù),WebSocket 允許在已打開的連接中不間斷地推送或傳輸此數(shù)據(jù),使此類數(shù)據(jù)傳輸更快,并利用了應(yīng)用程序的性能。
WebSocket 連接是可以加密的,可以使用 TLS(Transport Layer Security,傳輸層安全)協(xié)議來保護(hù)數(shù)據(jù)的安全。這種加密連接使用的是 wss:// 協(xié)議前綴,與不加密的連接使用的 ws:// 協(xié)議前綴相區(qū)別。除此之外,
WebSocket 還支持安全握手協(xié)議(Secure Handshake Protocol),這使得它可以在瀏覽器和服務(wù)器之間進(jìn)行加密通信。總的來說,WebSocket 具有較高的安全性,可以保護(hù)數(shù)據(jù)的安全。
(3)WebSocket和HTTP區(qū)別。
連接方式:HTTP是一種無狀態(tài)的協(xié)議,每次請求都需要建立一個新的連接,完成請求后立即關(guān)閉連接。而WebSocket是一種全雙工的協(xié)議,它在客戶端和服務(wù)器之間建立一條持久的連接,可以實現(xiàn)雙向通信。
數(shù)據(jù)傳輸:HTTP協(xié)議是基于請求-響應(yīng)模式的,客戶端發(fā)送請求,服務(wù)器返回響應(yīng)。而WebSocket允許服務(wù)器主動向客戶端推送數(shù)據(jù),實現(xiàn)了服務(wù)器和客戶端之間的實時雙向通信。
數(shù)據(jù)格式:HTTP協(xié)議傳輸?shù)臄?shù)據(jù)通常是文本或二進(jìn)制數(shù)據(jù),而WebSocket可以傳輸任意格式的數(shù)據(jù),包括文本、二進(jìn)制、JSON等。
端口:HTTP協(xié)議使用的默認(rèn)端口是80(HTTP)或443(HTTPS),而WebSocket使用的默認(rèn)端口是80(WS)或443(WSS)。
總結(jié)來說,HTTP協(xié)議適用于客戶端向服務(wù)器發(fā)送請求并獲取響應(yīng)的場景,而WebSocket適用于需要實時雙向通信的場景,例如在線聊天、實時數(shù)據(jù)更新等。
(4)應(yīng)用場景
主要應(yīng)用場景:
在線聊天應(yīng)用:WebSocket可以實現(xiàn)即時消息傳遞,無需輪詢服務(wù)器即可接收和發(fā)送消息。
視頻會議和協(xié)作工具:WebSocket可以實時傳輸音頻和視頻數(shù)據(jù),以及屏幕共享等功能。
多人游戲:WebSocket可以實時更新游戲狀態(tài),確保玩家之間的交互流暢無延遲。
實時對戰(zhàn)游戲:WebSocket可以快速響應(yīng)玩家的動作,提供流暢的游戲體驗。
股票交易平臺:WebSocket可以實時推送股票市場的最新價格和交易數(shù)據(jù)。
實時新聞和體育賽事更新:WebSocket可以即時向用戶推送新聞更新和賽事比分。
物聯(lián)網(wǎng)應(yīng)用場景(相對較少):
工業(yè)自動化:WebSocket可以用于實時監(jiān)控和控制生產(chǎn)線上的設(shè)備。
智能家居:WebSocket可以實時接收和發(fā)送指令,控制家中的智能設(shè)備。
設(shè)備監(jiān)控和控制:WebSocket可以用于遠(yuǎn)程監(jiān)控和控制連接到互聯(lián)網(wǎng)的設(shè)備。
實時傳感器數(shù)據(jù)傳輸:WebSocket可以實時收集和傳輸來自傳感器的數(shù)據(jù)。
6.XMPP協(xié)議
??(1)概述
???????該協(xié)議的前身是Jabber,我們采取XMPP協(xié)議主來實現(xiàn)IM主要是考慮XMPP協(xié)議是以XML為基礎(chǔ)的,它繼承了在XML環(huán)境中靈活的發(fā)展性。這表明XMPP是可擴(kuò)展的,所以XMPP信息不僅可以是簡單的文本,
而且可以攜帶復(fù)雜的數(shù)據(jù)和各種格式的文件,也就是說XMPP協(xié)議不僅可以用在人與人之間的交流,而且可以實現(xiàn)軟件與軟件或軟件與人之間的交流,目前支持XMPP協(xié)議的即時通訊工具有Gtalk、FaceBook IM、Twitter、
網(wǎng)易POPO等等通訊工具,具有非常好的發(fā)展情景。由于XMPP是一種基于XML架構(gòu)的開放式協(xié)議,在IM通訊中被廣泛采用。
(2)Xmpp協(xié)議內(nèi)容
XMPP中定義了三個角色,客戶端,服務(wù)器,網(wǎng)關(guān)。通信能夠在這三者的任意兩個之間雙向發(fā)生。服務(wù)器同時承擔(dān)了客戶端信息記錄,連接管理和信息的路由功能。網(wǎng)關(guān)承擔(dān)著與異構(gòu)即時通信系統(tǒng)的互聯(lián)互通,
異構(gòu)系統(tǒng)可以包括SMS(短信),MSN,ICQ等。基本的網(wǎng)絡(luò)形式是單客戶端通過TCP/IP連接到單服務(wù)器,然后在之上傳輸XML。
(3)應(yīng)用場景
?????XMPP協(xié)議主要在互聯(lián)網(wǎng)及時通訊應(yīng)用中運(yùn)用的比較多,在物聯(lián)網(wǎng)中目前較少應(yīng)用;
7.DDS協(xié)議
DDS(Data Distribution Service for Real-Time Systems,實時系統(tǒng)數(shù)據(jù)分發(fā)服務(wù))是一種由對象管理組(OMG)為實時系統(tǒng)設(shè)計的中間件和數(shù)據(jù)分發(fā)協(xié)議。它主要用于分布式實時系統(tǒng)中的數(shù)據(jù)傳輸,確保數(shù)據(jù)在多個節(jié)點(diǎn)之間高效、可靠地流動。
主要特點(diǎn):
數(shù)據(jù)中心性:DDS 是一種數(shù)據(jù)中心協(xié)議,這意味著它以數(shù)據(jù)為中心,而不是以服務(wù)或接口為中心。這種設(shè)計使得應(yīng)用程序可以直接操作和分發(fā)數(shù)據(jù),而不需要關(guān)注底層的通信機(jī)制。
實時性:DDS 專為實時系統(tǒng)設(shè)計,支持低延遲和高吞吐量的數(shù)據(jù)傳輸,確保數(shù)據(jù)在嚴(yán)格的時限內(nèi)得到處理和分發(fā)。
靈活性:DDS 提供了多種數(shù)據(jù)分發(fā)模式,如發(fā)布/訂閱(publish/subscribe)和查詢(query),這使得開發(fā)者可以根據(jù)應(yīng)用需求選擇合適的分發(fā)策略。
可擴(kuò)展性:DDS 支持從幾個到成千上萬個節(jié)點(diǎn)的可擴(kuò)展性,這使得它適用于從小型系統(tǒng)到大型分布式系統(tǒng)的各種應(yīng)用場景。
容錯性:DDS 提供容錯機(jī)制,確保即使在部分網(wǎng)絡(luò)或系統(tǒng)組件失敗的情況下,也能保持?jǐn)?shù)據(jù)的一致性和可用性。
DDS 應(yīng)用領(lǐng)域(物聯(lián)網(wǎng)領(lǐng)域應(yīng)用較少):
金融服務(wù):實時市場數(shù)據(jù)的分發(fā)和交易執(zhí)行。
電信:網(wǎng)絡(luò)狀態(tài)信息和用戶數(shù)據(jù)的實時更新。
交通管理系統(tǒng):實時監(jiān)控和管理交通流量。
智能電網(wǎng):實時監(jiān)控和管理電網(wǎng)狀態(tài)和數(shù)據(jù)。
國防和航空:實時戰(zhàn)術(shù)數(shù)據(jù)和態(tài)勢感知信息的分發(fā)。
8.LwM2M協(xié)議
LWM2M全稱lightweight Machine to Machine,是一種物聯(lián)網(wǎng)協(xié)議,主要可以使用在資源受限(包括存儲、功耗等)的嵌入式設(shè)備上。LwM2M是一種輕量級的M2M協(xié)議,旨在簡化設(shè)備管理并降低帶寬要求。
協(xié)議層次結(jié)構(gòu):
LWM2M屬于應(yīng)用層協(xié)議,位于CoAP協(xié)議之上,而CoAP可以進(jìn)行DTLS加密處理,最后通過UDP或SMS方式傳送。
二.總結(jié)
? ? ? ?從當(dāng)前物聯(lián)網(wǎng)應(yīng)用發(fā)展趨勢來分析,MQTT協(xié)議具有一定的優(yōu)勢,因為目前國內(nèi)外主要的云計算服務(wù)商,比如阿里云、AWS、百度云、Azure以及騰訊云都一概支持MQTT協(xié)議。
? ? ? ?還有一個原因就是MQTT協(xié)議比CoAP成熟的要早,所以MQTT具有一定的先發(fā)優(yōu)勢,但隨著物聯(lián)網(wǎng)的智能化和多變化的發(fā)展,后續(xù)物聯(lián)網(wǎng)應(yīng)用平臺肯定會兼容更多的物聯(lián)網(wǎng)應(yīng)用層協(xié)議。
柚子快報激活碼778899分享:物聯(lián)網(wǎng)8大協(xié)議介紹及對比
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。