物聯(lián)網(wǎng)IoT終端設(shè)備如何選擇接入?yún)f(xié)議
掃描二維碼
隨時(shí)隨地手機(jī)看文章
TCP與UDP的區(qū)別
差異 | TCP | UDP |
---|---|---|
是否連接 | 面向連接 | 面向非連接 |
傳輸可靠性 | 可靠 | 不可靠 |
應(yīng)用場(chǎng)合 | 少量數(shù)據(jù) | 大量數(shù)據(jù) |
速度 | 慢 | 快 |
1、TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接
2、TCP提供可靠的服務(wù)。也就是說,通過TCP連接傳送的數(shù)據(jù),無差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,即不保證可靠交付
3、TCP面向字節(jié)流,實(shí)際上是TCP把數(shù)據(jù)看成一連串無結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)文的
UDP沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低(對(duì)實(shí)時(shí)應(yīng)用很有用,如IP電話,實(shí)時(shí)視頻會(huì)議等)
4、每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交互通信
5、TCP首部開銷20字節(jié);UDP的首部開銷小,只有8個(gè)字節(jié) 6、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道
那么傳輸層協(xié)議是否適合直接運(yùn)用到物聯(lián)網(wǎng)設(shè)備終端上?
傳輸層,顧名思義,他只負(fù)責(zé)傳輸數(shù)據(jù),就好比是一輛運(yùn)貨的貨車,但是想讓貨物完好無損地運(yùn)到目的地,那就還需要做打包、裝車、驗(yàn)貨、入庫(kù)、簽回單等工作,這就需要做更多地工作,這些工作也就是應(yīng)用層協(xié)議要做的工作。所以物聯(lián)網(wǎng)設(shè)備終端要想對(duì)數(shù)據(jù)進(jìn)行穩(wěn)定、可靠地交互,就需要使用應(yīng)用層的協(xié)議,而不能直接使用傳輸層的協(xié)議。以下將介紹MQTT、CoAP、LwM2M三種適合在物聯(lián)網(wǎng)設(shè)備終端上運(yùn)用的應(yīng)用層協(xié)議。
應(yīng)用層協(xié)議MQTT 與CoAP
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)是IBM開發(fā)的一個(gè)即時(shí)通訊協(xié)議,有可能成為物聯(lián)網(wǎng)的重要組成部分。該協(xié)議支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來,被用來當(dāng)做傳感器和制動(dòng)器(比如通過Twitter讓房屋聯(lián)網(wǎng))的通信協(xié)議。
2、MQTT協(xié)議特點(diǎn)
1、使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合;
2、對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸;
3、使用TCP/IP 提供網(wǎng)絡(luò)連接;
4、有三種消息發(fā)布服務(wù)質(zhì)量:
“至多一次”,消息發(fā)布完全依賴底層 TCP/IP 網(wǎng)絡(luò)。會(huì)發(fā)生消息丟失或重復(fù)。這一級(jí)別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無所謂,因?yàn)椴痪煤筮€會(huì)有第二次發(fā)送?!爸辽僖淮巍保_保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生?!爸挥幸淮巍?,確保消息到達(dá)一次。這一級(jí)別可用于如下情況,在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。小型傳輸,開銷很小(固定長(zhǎng)度的頭部是 2 字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。
由于物聯(lián)網(wǎng)中的很多設(shè)備都是資源受限型的,即只有少量的內(nèi)存空間和有限的計(jì)算能力,所以傳統(tǒng)的HTTP協(xié)議應(yīng)用在物聯(lián)網(wǎng)上就顯得過于龐大而不適用。IETF的CoRE工作組提出了一種基于REST架構(gòu)的CoAP協(xié)議。CoAP是工作在UDP協(xié)議族,采用的是二進(jìn)制格式,相比起HTTP采用的文本格式,CoAP比HTTP更加緊湊。
4、CoAP協(xié)議特點(diǎn)
1、消息模型,以消息為數(shù)據(jù)通信載體,通過交換網(wǎng)絡(luò)消息來實(shí)現(xiàn)設(shè)備間數(shù)據(jù)通信
2、對(duì)云端設(shè)備資源操作都是通過請(qǐng)求與響應(yīng)機(jī)制來完成,類似HTTP,設(shè)備端可通過4個(gè)請(qǐng)求方法(GET, PUT, POST, DELETE)對(duì)服務(wù)器端資源進(jìn)行操作。
3、協(xié)議包輕量級(jí),最小長(zhǎng)度僅為4B。
4、支持可靠傳輸,數(shù)據(jù)重傳,塊傳輸,確保數(shù)據(jù)可靠到達(dá)。
5、支持IP多播, 即可以同時(shí)向多個(gè)設(shè)備發(fā)送請(qǐng)求
5、MQTT與CoAP的區(qū)別
類別 | MQTT | CoAP |
---|---|---|
通信機(jī)制 | 異步 | 同步 |
連接方式 | TCP | UDP |
通信模式 | 多對(duì)多 | 多對(duì)一 |
使用場(chǎng)景 | 更適用于推送和IM | 物聯(lián)網(wǎng) |
功耗 | 功耗高 | 功耗低 |
反向控制 | 可用于反向控制 | 非長(zhǎng)連接,不適合反向控制 |
那么MQTT和CoAP哪個(gè)更適合用于物聯(lián)網(wǎng)設(shè)備上呢?
隨著物聯(lián)網(wǎng)興起,萬物互聯(lián)的時(shí)代終將到來。但鑒于成本和性能的考慮,設(shè)備的資源往往受限,那么就需要一種專門為資源受限的物聯(lián)網(wǎng)設(shè)備設(shè)計(jì)的協(xié)議來滿足萬物互聯(lián)的需求,這就是LwM2M協(xié)議。
1、LwM2M概述:
OMA是一家國(guó)際組織,最初定義了一套 OMA-DM的協(xié)議,用來遠(yuǎn)程管理移動(dòng)終端設(shè)備,比如手機(jī)開戶,版本升級(jí),等等。OMA-DM有著非常廣泛的應(yīng)用,很多運(yùn)營(yíng)商比如Verizon Wireless, Sprint都有自己的OMA-DM服務(wù)并要求手機(jī)/模塊入網(wǎng)的時(shí)候通過自定義的OMA-DM入網(wǎng)測(cè)試。因?yàn)槲锫?lián)網(wǎng)的興起,OMA在傳統(tǒng)的OMA-DM協(xié)議基礎(chǔ)之上,提出了LwM2M協(xié)議。2013年底,OMA發(fā)布了LwM2M規(guī)范。
LwM2M 定義了三個(gè)邏輯實(shí)體:
在這三個(gè)邏輯實(shí)體之間有4個(gè)邏輯接口:
Device Discovery and Registration:這個(gè)接口讓客戶端注冊(cè)到服務(wù)器并通知服務(wù)器客戶端所支持的能力(簡(jiǎn)單說就是支持哪些資源Resource和對(duì)象Object
Bootstrap:Bootstrap server:通過這個(gè)接口來配置Clinet - 比如說LwM2M server的URL地址 Device Management and Service Enablement:這個(gè)就是最主要的業(yè)務(wù)接口了。LwM2M Server 發(fā)送指令給 Client 并收到回應(yīng).
Information Reporting:這個(gè)接口是 LwM2M Client 來上報(bào)其資源信息的,比如傳感器溫度。上報(bào)方式可以是事件觸發(fā),也可以是周期性的。
這三個(gè)邏輯實(shí)體與四個(gè)邏輯接口之間的關(guān)系如下圖:
3、LwM2M 協(xié)議棧:
LwM2M 協(xié)議棧結(jié)構(gòu)如下圖所示:
LwM2M Objects | |
LwM2M Protocol | |
CoAP | |
DTLS | |
UDP | SMS |
urn:oma:lwm2m:oma:2; (LwM2M Server Object)
urn:oma:lwm2m:oma:3; (LwM2M Access Control Object)
每個(gè)object下可以有很多resource. 比如Firmware object可以有Firmware版本號(hào),size等resource.
LwM2M Protocol: 定義了一些邏輯操作,比如Read, Write, Execute, Create or Delete.
CoAP: 是IETF 定義的Constrained Application Protocol 用來做LwM2M的傳輸層,下層可以是 UDP 或SMS .UDP 是必須支持的,SMS是可選的。CoAP有自己的消息頭,重傳機(jī)制等。
LwM2M的消息沒有對(duì)稱的反饋消息,由于LwM2M承載在CoAP協(xié)議上,使用CoAP的get、post、put、delete方式,對(duì)于相應(yīng)消息成功或失敗的反饋是通過CoAP協(xié)議本身的交互來實(shí)現(xiàn)的。LwM2M載荷支持四種格式 plain text、Opaque、TLV、JSON,這四種協(xié)議要求服務(wù)器端必須都要支持,而在客戶端必須支持TLV格式。1
猜你喜歡:
基于LiteOS的智慧農(nóng)業(yè)案例實(shí)驗(yàn)分享
【Linux筆記】通俗易懂的Linux驅(qū)動(dòng)基礎(chǔ)
【Linux筆記】pc機(jī)_開發(fā)板_ubuntu互ping實(shí)驗(yàn)
【Linux筆記】掛載網(wǎng)絡(luò)文件系統(tǒng)
學(xué)習(xí)STM32的一些經(jīng)驗(yàn)分享
后臺(tái)回復(fù):加群。添加ZhengN微信,加入【嵌入式大雜燴】交流群
點(diǎn)個(gè)贊,證明你還愛我
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!