通信對物聯(lián)網(wǎng)來說十分關(guān)鍵,無論是近距離無線傳輸技術(shù)還是移動(dòng)通信技術(shù),甚至是LPWAN都影響著物聯(lián)網(wǎng)的發(fā)展。通信協(xié)議是指雙方實(shí)體完成通信或服務(wù)所必須遵循的規(guī)則和約定。那么物聯(lián)網(wǎng)都有哪些通信協(xié)議?眾多的協(xié)議該如何選擇?
我們將物聯(lián)網(wǎng)通信協(xié)議分為兩大類,一類是接入?yún)f(xié)議,一類是通訊協(xié)議。接入?yún)f(xié)議一般負(fù)責(zé)子網(wǎng)內(nèi)設(shè)備間的組網(wǎng)及通信;通訊協(xié)議主要是運(yùn)行在傳統(tǒng)互聯(lián)網(wǎng)TCP/IP協(xié)議之上的設(shè)備通訊協(xié)議,負(fù)責(zé)設(shè)備通過互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)交換及通信。
本文羅列下市面上物聯(lián)網(wǎng)協(xié)議,總結(jié)下它們各自特點(diǎn)、特定的物聯(lián)網(wǎng)應(yīng)用場景等。
物聯(lián)網(wǎng)聯(lián)接的問題空間
上圖為物聯(lián)網(wǎng)聯(lián)接的問題空間,其中物聯(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)很多。
互聯(lián)網(wǎng)時(shí)代,TCP/IP協(xié)議已經(jīng)一統(tǒng)江湖,現(xiàn)在的物聯(lián)網(wǎng)的通信架構(gòu)也是構(gòu)建在傳統(tǒng)互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)之上。在當(dāng)前的互聯(lián)網(wǎng)通信協(xié)議中,HTTP協(xié)議由于開發(fā)成本低,開放程度高,幾乎占據(jù)大半江山,所以很多廠商在構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時(shí)也基于http協(xié)議進(jìn)行開發(fā)。包括google主導(dǎo)的physic web項(xiàng)目,都是期望在傳統(tǒng)web技術(shù)基礎(chǔ)上構(gòu)建物聯(lián)網(wǎng)協(xié)議標(biāo)準(zhǔn)。
HTTP協(xié)議是典型的CS通訊模式,由客戶端主動(dòng)發(fā)起連接,向服務(wù)器請求XML或JSON數(shù)據(jù)。該協(xié)議最早是為了適用web瀏覽器的上網(wǎng)瀏覽場景和設(shè)計(jì)的,目前在PC、手機(jī)、pad等終端上都應(yīng)用廣泛,但并不適用于物聯(lián)網(wǎng)場景。在物聯(lián)網(wǎng)場景中其有三大弊端:
1. 由于必須由設(shè)備主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),難以主動(dòng)向設(shè)備推送數(shù)據(jù)。對于單單的數(shù)據(jù)采集等場景還勉強(qiáng)適用,但是對于頻繁的操控場景,只能推過設(shè)備定期主動(dòng)拉取的的方式,實(shí)現(xiàn)成本和實(shí)時(shí)性都大打折扣。
2. 安全性不高。web的不安全都是婦孺皆知,HTTP是明文協(xié)議,在很多要求高安全性的物聯(lián)網(wǎng)場景,如果不做很多安全準(zhǔn)備工作(如采用https等),后果不堪設(shè)想。
3. 不同于用戶交互終端如pc、手機(jī),物聯(lián)網(wǎng)場景中的設(shè)備多樣化,對于運(yùn)算和存儲(chǔ)資源都十分受限的設(shè)備,http協(xié)議實(shí)現(xiàn)、XML/JSON數(shù)據(jù)格式的解析,都是不可能的任務(wù)。
REST/HTTP(松耦合服務(wù)調(diào)用)
REST (Representational State Transfer),表征狀態(tài)轉(zhuǎn)換,是基于HTTP協(xié)議開發(fā)的一種通信風(fēng)格,目前還不是標(biāo)準(zhǔn);
適用范圍:REST/HTTP主要為了簡化互聯(lián)網(wǎng)中的系統(tǒng)架構(gòu),快速實(shí)現(xiàn)客戶端和服務(wù)器之間交互的松耦合,降低了客戶端和服務(wù)器之間的交互延遲。因此適合在物聯(lián)網(wǎng)的應(yīng)用層面,通過REST開放物聯(lián)網(wǎng)中資源,實(shí)現(xiàn)服務(wù)被其他應(yīng)用所調(diào)用。