1. 程式人生 > >關於物聯網通信協議(通訊協議)

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

出了 ems 訂閱 不可 關於 ase -i 目前 點對點

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

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

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

4、相關的通信協議(協議棧、技術標準)包括: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等。

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

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

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

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

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

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

5.1、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.2、REST介紹
REST是表征狀態轉換,是基於HTTP協議開發的一種通信風格,目前還不是標準。REST是互聯網中服務調用API封裝風格,物聯網中數據采集到物聯網應用系統中,在物聯網應用系統中,可以通過開放REST API的方式,把數據服務開放出去,被互聯網中其他應用所調用。

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

7、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等。

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

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

9、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

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

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

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

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

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