物聯(lián)網(wǎng)終端的種類非常多,包括物聯(lián)網(wǎng)網(wǎng)關(guān)、通信模塊以及大量的行業(yè)終端,其中尤以行業(yè)終端的種類最為豐富。
通信模塊是物聯(lián)網(wǎng)應(yīng)用終端的基礎(chǔ)。物聯(lián)網(wǎng)的行業(yè)終端種類繁多,體積、處理能力、對外接口等各不相同,通信模塊將成為物聯(lián)網(wǎng)智能服務(wù)通道的統(tǒng)一承載體,嵌入各種行業(yè)終端,為各行各業(yè)提供物聯(lián)網(wǎng)的智能通道服務(wù)。而在通信中,通信協(xié)議尤其重要,是指雙方實體完成通信或服務(wù)所必須遵循的規(guī)則和約定,而且根據(jù)終端環(huán)境的不同對通信協(xié)議的要求完全不一致。
與互聯(lián)網(wǎng)時代TCP/IP,HTTP一統(tǒng)天下的局面不同,物聯(lián)網(wǎng)的通信環(huán)境有Ethernet, Wi-Fi, RFID, NFC(近距離無線通信), Zigbee, 6LoWPAN(IPV6低速無線版本),Bluetooth, GSM, GPRS, GPS, 3G, 4G等網(wǎng)絡(luò),而每一種通信應(yīng)用協(xié)議都有一定適用范圍。AMQP、JMS、REST/HTTP都是工作在以太網(wǎng),COAP協(xié)議是專門為資源受限設(shè)備開發(fā)的協(xié)議,而DDS和MQTT的兼容性則強(qiáng)很多。
1.REST(松耦合服務(wù)調(diào)用)
REST即表述性狀態(tài)傳遞(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構(gòu)風(fēng)格。它是一種針對網(wǎng)絡(luò)應(yīng)用的設(shè)計和開發(fā)方式,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。
而REST被應(yīng)用于物聯(lián)網(wǎng)主要是基于HTTP web服務(wù)的轉(zhuǎn)化,因為REST模式的Web服務(wù)與復(fù)雜的SOAP和XML-RPC對比來講明顯的更加簡潔,越來越多的web服務(wù)開始采用REST風(fēng)格設(shè)計和實現(xiàn)。
特點:
- 給一切物體一個ID
2.連接物體在一起
3.使用標(biāo)準(zhǔn)方法
4.資源多重表述
5.無狀態(tài)通信
REST其實是互聯(lián)網(wǎng)中服務(wù)調(diào)用API封裝風(fēng)格,物聯(lián)網(wǎng)中數(shù)據(jù)采集到物聯(lián)網(wǎng)應(yīng)用系統(tǒng)中,在物聯(lián)網(wǎng)應(yīng)用系統(tǒng)中,可以通過開放REST API的方式,把數(shù)據(jù)服務(wù)開放出去,被互聯(lián)網(wǎng)中其他應(yīng)用所調(diào)用,所以它非常利于服務(wù)平臺與物聯(lián)終端的獨立開發(fā),但它的通訊數(shù)據(jù)量與API內(nèi)容密切相關(guān),且是一種無狀態(tài)通信,對安全機(jī)制需要重新設(shè)計。
2.CoAP協(xié)議
由于物聯(lián)網(wǎng)中的很多設(shè)備都是資源受限型的,即只有少量的內(nèi)存空間和有限的計算能力,所以傳統(tǒng)的HTTP協(xié)議應(yīng)用在物聯(lián)網(wǎng)上就顯得過于龐大而不適用。 IETF的CoRE工作組提出了一種基于REST架構(gòu)的CoAP協(xié)議。
CoAP是一種應(yīng)用層協(xié)議,它運行于UDP協(xié)議之上而不是像HTTP那樣運行于TCP之上。CoAP協(xié)議非常的小巧,最小的數(shù)據(jù)包僅為4字節(jié)。
CoAP協(xié)議是否可以替換HTTP協(xié)議?
CoAP并不能替代HTTP協(xié)議,但是對于那些小設(shè)備(256KB Flash 32KB RAM 20MHz主頻)而言CoAP的確是一個好的解決方案。
CoAP消息類型
CoAP采用和HTTP協(xié)議相同的請求響應(yīng)工作模式。CoAP協(xié)議共有4中不同的消息類型。
CON——需要被確認(rèn)的請求,如果CON請求被發(fā)送,那么對方必須做出響應(yīng)。
NON——不需要被確認(rèn)的請求,如果NON請求被發(fā)送,那么對方不必做出回應(yīng)。
ACK——應(yīng)答消息,如果接受到CON消息的響應(yīng)。
RST——復(fù)位消息,當(dāng)接收者接受到的消息包含一個錯誤,接受者解析消息或者不再關(guān)心發(fā)送者發(fā)送的內(nèi)容,那么復(fù)位消息將會被發(fā)送。
CoAP消息結(jié)構(gòu)
一個CoAP消息最小為4個字節(jié),以下是CoAP協(xié)議不同部分的描述。
【版本Version】:類似于IPv6和IPv6,僅僅是一個版本號。
【消息類型Message Type】:CON,NON,ACK,RST。這些消息類型相當(dāng)于HTTP協(xié)議的PUTGET等
【消息ID Message ID】:每個CoAP消息都有一個ID,在一次會話中ID總是保持不變。但是在這個會話之后該ID會被回收利用。
【標(biāo)記 Token】:標(biāo)記是ID的另一種表現(xiàn)
【選項 Options】:CoAP選項類似于HTTP請求頭,它包括CoAP消息本身,例如CoAP端口號,CoAP主機(jī)和CoAP查詢字符串等。
【負(fù)載Payload】:真正有用的被交互的數(shù)據(jù)。
在當(dāng)前由PC機(jī)組成的世界,信息交換是通過TCP和應(yīng)用層協(xié)議HTTP實現(xiàn)的。但是對于小型設(shè)備而言,實現(xiàn)TCP和HTTP協(xié)議顯然是一個過分的要求。為了讓小設(shè)備可以接入互聯(lián)網(wǎng),CoAP協(xié)議被設(shè)計出來。
3.MQTT協(xié)議(低帶寬)
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實時可靠的消息服務(wù)。做為一種低開銷、低帶寬占用的即時通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。
MQTT協(xié)議運行在TCP/IP或其他網(wǎng)絡(luò)協(xié)議,提供有序、無損、雙向連接。其特點包括:
1)使用的發(fā)布/訂閱消息模式,它提供了一對多消息分發(fā),以實現(xiàn)與應(yīng)用程序的解耦。
2)對負(fù)載內(nèi)容屏蔽的消息傳輸機(jī)制。
3)對傳輸消息有三種服務(wù)質(zhì)量(QoS):
? 最多一次,這一級別會發(fā)生消息丟失或重復(fù),消息發(fā)布依賴于底層TCP/IP網(wǎng)絡(luò)。即:<=1
? 至多一次,這一級別會確保消息到達(dá),但消息可能會重復(fù)。即:>=1
? 只有一次,確保消息只有一次到達(dá)。即:=1。在一些要求比較嚴(yán)格的計費系統(tǒng)中,可以使用此級別
4)數(shù)據(jù)傳輸和協(xié)議交換的最小化(協(xié)議頭部只有2字節(jié)),以減少網(wǎng)絡(luò)流量
5)通知機(jī)制,異常中斷時通知傳輸雙方
適用范圍:在低帶寬、不可靠的網(wǎng)絡(luò)下提供基于云平臺的遠(yuǎn)程設(shè)備的數(shù)據(jù)傳輸和監(jiān)控。
協(xié)議實現(xiàn)方式
實現(xiàn)MQTT協(xié)議需要:客戶端和服務(wù)器端
MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時是訂閱者。
MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負(fù)載(payload)兩部分
? Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內(nèi)容(payload)
? payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容
MQTT協(xié)議一般適用于設(shè)備數(shù)據(jù)采集到端(Device-》Server,Device-》Gateway),集中星型網(wǎng)絡(luò)架構(gòu)(hub-and-spoke),不適用設(shè)備與設(shè)備之間通信,設(shè)備控制能力弱,另外實時性較差,一般都在秒級。
4.DDS協(xié)議(高可靠性、實時)
數(shù)據(jù)分發(fā)服務(wù)DDS(Data Distribution Service)是對象管理組織(OMG)在HLA及CORBA等標(biāo)準(zhǔn)的基礎(chǔ)上制定的新一代分布式實時通信中間件技術(shù)規(guī)范,DDS采用發(fā)布/訂閱體系架構(gòu),強(qiáng)調(diào)以數(shù)據(jù)為中心,提供豐富的QoS服務(wù)質(zhì)量策略,能保障數(shù)據(jù)進(jìn)行實時、高效、靈活地分發(fā),可滿足各種分布式實時通信應(yīng)用需求。DDS信息分發(fā)中間件是一種輕便的、能夠提供實時信息傳送的中間件技術(shù)。
特點:
- 靈活的發(fā)布/訂閱模式
- 完整DDS規(guī)范QoS服務(wù)質(zhì)量策略
- 已擴(kuò)展的QoS服務(wù)質(zhì)量策略
- 互操作
- 強(qiáng)實時
- 跨平臺
- 支持多種底層物理通信協(xié)議
- 仿真→測試→實裝的全生命周期支持
DDS很好地支持設(shè)備之間的數(shù)據(jù)分發(fā)和設(shè)備控制,設(shè)備和云端的數(shù)據(jù)傳輸,同時DDS的數(shù)據(jù)分發(fā)的實時效率非常高,能做到秒級內(nèi)同時分發(fā)百萬條消息到眾多設(shè)備。DDS在服務(wù)質(zhì)量(QoS)上提供非常多的保障途徑,這也是它適用于國防軍事、工業(yè)控制這些高可靠性、可安全性應(yīng)用領(lǐng)域的原因。但這些應(yīng)用都工作在有線網(wǎng)絡(luò)下,在無線網(wǎng)絡(luò),特別是資源受限的情況下,沒有見到過實施案例。
5.AMQP協(xié)議(互操作性)
AMQP,即Advanced Message Queuing Protocol,一個提供統(tǒng)一消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)高級消息隊列協(xié)議,是應(yīng)用層協(xié)議的一個開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計?;诖藚f(xié)議的客戶端與消息中間件可傳遞消息,并不受客戶端/中間件不同產(chǎn)品,不同的開發(fā)語言等條件的限制。Erlang中的實現(xiàn)有 RabbitMQ等。
AMQP協(xié)議是一個二進(jìn)制協(xié)議,擁有一些現(xiàn)代特點:多信道、協(xié)商式、異步、安全、跨平臺、中立、高效。
? 模型層定義了一套命令(按功能分類),客戶端應(yīng)用可以利用這些命令來實現(xiàn)它的業(yè)務(wù)功能。
? 會話層負(fù)責(zé)將命令從客戶端應(yīng)用傳遞給服務(wù)器,再將服務(wù)器的應(yīng)答傳遞給客戶端應(yīng)用,會話層為這個傳遞過程提供可靠性、同步機(jī)制和錯誤處理。
? 傳輸層提供幀處理、信道復(fù)用、錯誤檢測和數(shù)據(jù)表示。
實現(xiàn)者可以將傳輸層替換成任意傳輸協(xié)議,只要不改變AMQP協(xié)議中與客戶端應(yīng)用程序相關(guān)的功能。實現(xiàn)者還可以使用其他高層協(xié)議中的會話層。
AMQP協(xié)議最早應(yīng)用于金融系統(tǒng)之間的交易消息傳遞,在物聯(lián)網(wǎng)應(yīng)用中,主要適用于移動手持設(shè)備與后臺數(shù)據(jù)中心的通信和分析。
6.XMPP協(xié)議(即時通信)
XMPP是一種基于標(biāo)準(zhǔn)通用標(biāo)記語言的子集XML的協(xié)議,它繼承了在XML環(huán)境中靈活的發(fā)展性。因此,基于XMPP的應(yīng)用具有超強(qiáng)的可擴(kuò)展性。經(jīng)過擴(kuò)展以后的XMPP可以通過發(fā)送擴(kuò)展的信息來處理用戶的需求,以及在XMPP的頂端建立如內(nèi)容發(fā)布系統(tǒng)和基于地址的服務(wù)等應(yīng)用程序。而且,XMPP包含了針對服務(wù)器端的軟件協(xié)議,使之能與另一個進(jìn)行通話,這使得開發(fā)者更容易建立客戶應(yīng)用程序或給一個配好系統(tǒng)添加功能。
特點:
1.客戶機(jī)/服務(wù)器通信模式
2.分布式網(wǎng)絡(luò)
3.簡單的客戶端,將大多數(shù)工作放在服務(wù)器端進(jìn)行
4.標(biāo)準(zhǔn)通用標(biāo)記語言的子集XML的數(shù)據(jù)格式
XMPP協(xié)議是自由、開放、公開的,并且易于了解。而且在客戶端、服務(wù)器、組件、源碼庫等方面,都已經(jīng)各自有多種實現(xiàn)。但隨著通常超過70%的XMPP協(xié)議的服務(wù)器的數(shù)據(jù)流量的存在和近60%的被重復(fù)轉(zhuǎn)發(fā),XMPP協(xié)議目前擁有一個大型架空中存在的數(shù)據(jù)提供給多個收件人。適用于即時通信的應(yīng)用程序,還能用在網(wǎng)絡(luò)管理、內(nèi)容供稿、協(xié)同工具、檔案共享、游戲、遠(yuǎn)端系統(tǒng)監(jiān)控等。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44065瀏覽量
370257 -
GSM
+關(guān)注
關(guān)注
9文章
835瀏覽量
122769 -
nfc
+關(guān)注
關(guān)注
59文章
1617瀏覽量
180299 -
TCP
+關(guān)注
關(guān)注
8文章
1347瀏覽量
78934 -
MQTT
+關(guān)注
關(guān)注
5文章
647瀏覽量
22392
發(fā)布評論請先 登錄
相關(guān)推薦
評論