關於物聯網通訊協議(通信協議)

1、區分通信與通訊協議:
一、傳統意義上的「通信」主要指電話、電報、電傳。通信的「訊」指消息(Message),媒體訊息經過通信網絡從一端傳遞到另一端。媒體訊息的內容主要是話音、文字、圖片和視頻圖像。其網絡的構成主要由電子設備系統和無線電系統構成,傳輸和處理的信號是模擬的。因此,「通信」一詞應特指採用電報、電話、網絡等媒體傳輸系統實現上述媒體信息傳輸的過程。「通信」重在內容形式,所以通信協議主要集中在ISO七層協議中的應用層。通信協議主要是運行在傳統互聯網TCP/IP協議之上的設備通信協議,負責設備經過互聯網進行數據交換及通訊。

二、通訊」僅指數據通訊,即經過計算機網絡系統和數據通訊系統實現數據的端到端傳輸。通訊的「信」指的是信息(Information),信息的載體是二進制的數據,數據則是能夠用來表達傳統媒體形式的信息,如聲音、圖像、動畫等。「通訊」重在傳輸手段或使用方式,從這個角度,「通訊」的概念包括了信息「傳輸」。所以通訊協議主要集中在ISO七層協議中的物理層、數據鏈路層、網絡層和傳輸層。

三、在物聯網應用中,通訊技術包括Wi-Fi、RFID、NFC、ZigBee、Bluetooth、LoRa、NB-IoT、GSM、GPRS、3/4/5G網絡、Ethernet、RS23二、RS48五、USB等。

四、相關的通訊協議(協議棧、技術標準)包括:Wi-Fi(IEEE 802.11b)、RFID、NFC、ZigBee、Bluetooth、LoRa、NB-IoT、CDMA/TDMA、TCP/IP、WCDMA、TD-SCDMA、TD-LTE、FDD-LTE、TCP/IP、HTTP等。

五、物聯網技術框架體系中所使用到的通信協議主要有:AMQP、JMS、REST、HTTP/HTTPS、COAP、DDS、MQTT等。

2、通信協議:
一、HTTP協議簡介
HTTP是一個屬於應用層的面向對象的協議,因爲其簡捷、快速的方式,適用於分佈式超媒體信息系統。它於1990年提出,通過幾年的使用與發展,獲得不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規範化工做正在進行之中,並且HTTP-NG(Next Generation of HTTP)的建議已經提出。

二、HTTP協議特色
【1】支持客戶/服務器模式
【2】簡單快速
【3】靈活
【4】無鏈接
【5】無狀態

三、HTTPS協議簡介
該協議使用了HTTP協議,但HTTPS使用不一樣於HTTP協議的默認端口及一個加密、身份驗證層(HTTP與TCP之間)。這個協議的最初研發由網景公司進行,提供了身份驗證與加密通訊方法,如今它被普遍用於互聯網上安全敏感的通訊。

四、客戶端雲web服務器通訊時的步驟以下:
【1】客戶使用https的URL訪問Web服務器,要求與Web服務器創建SSL鏈接。
【2】Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。
【3】客戶端的瀏覽器與Web服務器開始協商SSL鏈接的安全等級,也就是信息加密的等級。
【4】客戶端的瀏覽器根據雙方贊成的安全等級,創建會話密鑰,而後利用網站的公鑰將會話密鑰加密,並傳送給網站。
【5】Web服務器利用本身的私鑰解密出會話密鑰。
【6】Web服務器利用會話密鑰加密與客戶端之間的通訊。

五、WebSerivce/REST協議簡介
WebService和REST都不是一種協議,他們是基於HTTP/HTTPS的一種技術方式或風格,之因此放在這裏,是由於在物聯網應用服務對外接口方式常採用WebService和RESTful API。

5.一、WebSerivce介紹
【1】WebService是一種跨編程語言和跨操做系統平臺的遠程調用技術。
【2】XML+XSD(XML Schema),SOAP和WSDL就是構成WebService平臺的三大技術。
【3】XML解決了數據表示的問題,但它沒有定義一套標準的數據類型,更沒有說怎麼去擴展這套數據類型。XML Schema(XSD)就是專門解決這個問題的一套標準。它定義了一套標準的數據類型,並給出了一種語言來擴展這套數據類型。WebService平臺就是用XSD來做爲其數據類型系統的。
【3】SOAP協議定義了SOAP消息的格式,SOAP協議是基於HTTP協議的,SOAP也是基於XML和XSD的,XML是SOAP的數據編碼方式。打個比喻:HTTP就是普通公路,XML就是中間的綠色隔離帶和兩邊的防禦欄,SOAP就是普通公路通過加隔離帶和防禦欄改造過的高速公路。公式是:SOAP協議= HTTP協議+ XML數據格式
【4】WSDL(Web Services Description Language)就是這樣一個基於XML的語言,用於描述Web Service及其函數、參數和返回值。

5.二、REST介紹
REST是表徵狀態轉換,是基於HTTP協議開發的一種通訊風格,目前還不是標準。REST是互聯網中服務調用API封裝風格,物聯網中數據採集到物聯網應用系統中,在物聯網應用系統中,能夠經過開放REST API的方式,把數據服務開放出去,被互聯網中其餘應用所調用。

六、CoAP (Constrained Application Protocol)協議簡介
CoAP協議簡稱:受限應用協議,應用於無線傳感網中協議。CoAP是簡化了HTTP協議的RESTful API,CoAP是6LowPAN協議棧中的應用層協議,適用於:在資源受限的通訊的IP網絡。
【1】報頭壓縮
【2】方法和URIs
【3】傳輸層使用UDP協議
【4】支持異步通訊
【5】支持資源發現
【6】支持緩存

七、MQTT (Message Queuing Telemetry Transport )協議簡介
【1】簡介
消息隊列遙測傳輸,由IBM開發的即時通信協議,相比來講比較適合物聯網場景的通信協議。MQTT協議採用發佈/訂閱模式,全部的物聯網終端都經過TCP鏈接到雲端,雲端經過主題的方式管理各個設備關注的通信內容,負責將設備與設備之間消息的轉發。適用於:在低帶寬、不可靠的網絡下提供基於雲平臺的遠程設備的數據傳輸和監控。

【2】使用特色
《1》使用基於代理的發佈/訂閱消息模式,提供一對多的消息發佈;
《2》使用TCP/IP提供網絡鏈接;
《3》小型傳輸,開銷很小(固定長度的頭部是2字節),協議交換最小化,以下降網絡流量;
《4》支持QoS,有三種消息發佈服務質量:「至多一次」,「至少一次」,「只有一次」。

【3】應用場景
《1》已經有PHP,JAVA,Python,C,C#等多個語言版本的協議框架;
《2》IBM Bluemix的一個重要部分是其IoT,Foundation服務,這是一項基於雲的MQTT實例;
《3》移動應用程序也早就開始使用MQTT,如Facebook Messenger和com等。

八、DDS(Data Distribution Service for Real-Time Systems)協議簡介
【1】簡介
面向實時系統的數據分佈服務,這是大名鼎鼎的OMG組織提出的協議,其權威性應該能證實該協議的將來應用前景。適用於:分佈式高可靠性、實時傳輸設備數據通訊。目前DDS已經普遍應用於國防、民航、工業控制等領域。

【2】使用特色
《1》以數據爲中心;
《2》使用無代理的發佈/訂閱消息模式,點對點、點對多、多對多;
《3》提供多大21種QoS服務質量策略。

九、AMQP(Advanced Message Queuing Protocol)協議簡介
【1】簡介
先進消息隊列協議,這是OASIS組織提出的,該組織曾提出OSLC(Open Source Lifecyle)標準,適用於:業務系統例如PLM,ERP,MES等進行數據交換。

【2】協議特色
《1》Wire級的協議,它描述了在網絡上傳輸的數據的格式,以字節爲流;
《2》面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全;

【3】開源協議包括:
《1》Erlang中的實現有RabbitMQ
《2》AMQP的開源實現,用C語言編寫OpenAMQ
《3》Apache Qpid
《3》stormMQ

十、XMPP(Extensible Messaging and Presence Protocol)協議簡介
【1】簡介
可擴展通信和表示協議,XMPP的前身是Jabber,一個開源形式組織產生的網絡即時通訊協議。XMPP目前被IETF國際標準組織完成了標準化工做。適用於:即時通訊的應用程序,還能用在網絡管理、內容供稿、協同工具、檔案共享、遊戲、遠端系統監控等。

【2】協議特色
《1》客戶機/服務器通訊模式;
《2》分佈式網絡;
《3》簡單的客戶端,將大多數工做放在服務器端進行;
《4》標準通用標記語言的子集XML的數據格式。

【3】注意事項
XMPP是基於XML的協議,因爲其開放性和易用性,在互聯網及時通信應用中運用普遍。相對HTTP,XMPP在通信的業務流程上是更適合物聯網系統的,開發者不用花太多心思去解決設備通信時的業務通信流程,相對開發成本會更低。可是HTTP協議中的安全性以及計算資源消耗的硬傷並無獲得本質的解決。

十一、JMS(Java Message Service)協議簡介
【1】簡介
JAVA消息服務,這是JAVA平臺中著名的消息隊列協議。Java消息服務應用程序接口,是一個Java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通訊。Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。JMS是一種與廠商無關的API,用來訪問消息收發系統消息,它相似於JDBC(Java Database
Connectivity)。web

相關文章
相關標籤/搜索