物聯網(IoT,或者說工業互聯網)的基礎在於設備之間的通信,通信協議在將海量設備連接到互聯網時發揮着重要作用。本文介紹IoT中的通信/通訊協議,並對常用的協議如:MQTT, CoAp, OPC UA, Modbus, Profinet ,介紹其特點,並進行比較,說明協議的適用場景。先上一張大圖。

MQTT
MQTT全稱消息隊列遙測傳輸(Message Queue Transfering Transport),是一種輕量級,可擴展的互聯網協議,可用於支持物聯網全局通信。MQTT專為物聯網交互設計,通信對設備的資源要求低,保證了通信的高效性(支持低帶寬網絡)。和HTTP等協議相比,其網絡開銷非常小。同時,MQTT允許定義服務質量,分為最多一次發送(QoS 0),至少一次發送(QoS 1)和只有一次發送(QoS 2)三個等級,通信質量由低到高,資源占用由少至多。MQTT網絡由發布者(Publisher),代理(Broker)以及訂閱者(Subscriber)三者構成,如圖。

客戶端通過代理向服務端訂閱消息主題。當服務端發布消息時,代理將該消息發送給訂閱此主題的客戶端。
ModBus/MBus
Modbus核心是一個串行通信協議,采用主從模式,主機向從機請求數據,是短距離連接行業設備的標准協議。標准Modbus最多支持247台從機(采用2字節尋址,可提高從機數量)。經過四十年發展,Modbus已經演變為支持多種物理鏈接的協議集(如RS-485)。借助RS-485,主從機之間的通信發生在指示功能碼的幀中。該功能碼指示要操作的功能:讀取輸入/隊列 或執行診斷函數,從機根據功能碼進行響應。Modbus協議非常簡單,其開放性使其成為整個行業或SCADA系統的實際通信協議。

應用IP技術的網絡有多種類別:
- 消費者與工業
- 網頁服務
- 物聯網服務
- 發布/訂閱
- 請求/響應
在設計新系統時必須考慮這些類別。讓我們看一下物聯網應用的IP網絡,並定義選擇標准。
互聯網
Internet是將IP數據包從數據源路由到目的地的、所有網絡設備的總和。相比之下,萬維網是一種在互聯網上運行的應用系統。Web是人們為交換信息構建的工具,在過去的20年中,Web已經趨於完善,以便普通的非技術人員可以輕松高效地使用Internet。例如,因特網的人機界面現在包括電子郵件、搜索引擎、瀏覽器、移動應用程序、Facebook和Twitter、以及其他流行的社交媒體。
相比之下,在物聯網中,我們最基本的想法是電子設備之間通過互聯網交換信息。但是這些設備並沒有瀏覽器或社交媒體一樣的機器來促進溝通。由於物聯網設備需要協同工作,在速度、規模和功能的需求上,物聯網也與Web不同。這些要求遠遠超出了人們的需求或使用范圍。我們正處於為這些系統開發新工具和服務的開始階段,這也是難以鎖定物聯網定義的原因之一。在現實應用中,存在許多願景相互沖突,包括如何定義它能夠做什么,可能做什么或應該做什么,等等。
TCP/IP協議棧
TCP / IP協議棧是Internet和Web的核心。它使用七層開放系統互連參考模型(OSI)來表示,如下所示(圖1)。最頂端的三層組合在一起,簡化了模型。

以下是從嵌入式系統集成角度對重要OSI層的快速描述:
1.物理和數據鏈路層
嵌入式系統使用的最常見的物理層協議是:
- 以太網(10 Mbps,100 Mbps,1 Gbps)
- Wi-Fi(802.11b / g / n)
- 串行點對點協議(PPP)
- GSM,3G,4G,LTE
2.網絡層
這是互聯網的生活方式。互聯網 - 網絡間的簡稱 - 之所以如此命名,是因為它提供了網絡之間、物理層之間的連接。這是我們找到無處不在的IP地址的地方。
3.傳輸層
在IP之上,我們有傳輸控制協議(TCP)和用戶數據報協議(UDP)這兩種傳輸協議。由於TCP用於我們與Web的大多數人工交互(電子郵件,Web瀏覽等),因此人們普遍認為TCP應該是傳輸層使用的唯一協議。TCP提供了邏輯連接的概念、傳輸的數據包的確認、丟失的數據包的重傳以及流量控制 - 所有這些都是很棒的事情。但對於嵌入式系統,TCP可能是過度的要求。因此,即使UDP長期以來已經被降級,僅應用於域名服務器(DNS)和動態主機配置協議(DHCP)等網絡服務,現在也在物聯網的傳感器數據獲取和遠程控制領域找到了自己的位置。對於語音和視頻等實時數據應用,如果您需要某種類型的數據管理,UDP也比TCP更適合。原因是TCP的數據包確認和重傳功能對這些應用程序來說是無用的開銷。如果一段數據(例如一些語音音頻)沒有及時到達其目的地,則重傳該分組是沒有意義的,因為它將不按順序到達並使語音亂碼。
TCP有時優先於UDP,因為它提供持久連接。要使用UDP啟用相同功能,必須在UDP上方的協議層中實現此功能。
當您決定如何將數據從“物”通過本地網絡連接到IP網絡,您有多種選擇。由於所使用的技術是成熟的,並且可以開源獲得——通過網關鏈接兩個網絡,或者可以將網關構建到“物”本身。現在,許多微控制器(MCU)都在芯片上安裝了以太網控制器,這使得這項工作變得更加容易。
物聯網協議

使用現有的Web技術構建物聯網系統是可能的,即使它不如新協議那么高效。超文本傳輸協議(HTTP / S)和WebSockets是有效載荷的通用標准,以及可擴展標記語言(XML)或JavaScript對象表示法(JSON)。使用標准Web瀏覽器(HTTP客戶端)時,JSON為Web開發人員提供了一個抽象層,通過保持打開兩個HTTP連接,創建一個具有到Web服務器(HTTP服務器)的持久雙工連接的、有狀態Web應用程序。
HTTP
HTTP是用於Web的客戶端 - 服務器模型的基礎。在IoT設備中實施HTTP的最安全方法是僅包括客戶端,而不是服務器。換句話說,當IoT設備可以啟動與Web服務器的連接,但不必是接收連接請求時則更安全; 我們不希望外部計算機訪問安裝了IoT設備的本地網絡。
的WebSocket
WebSocket是一種通過單個TCP連接提供全雙工通信的協議,通過該連接可以在客戶端和服務器之間發送消息。它是超文本標記語言5(HTML5)規范的一部分。WebSocket標准簡化了雙向Web通信和連接管理的復雜性。
XMPP
可擴展消息傳遞和在線協議(XMPP)是現有Web技術在物聯網領域尋找新用途的一個很好的例子。
XMPP來源於即時消息和狀態信息,並已擴展到語音和視頻調用、協作、輕量級中間件、內容聯合以及XML數據的通用路由。它是管理大規模白色家電(如洗衣機,烘干機,冰箱等)的有力競爭者。
XMPP的優勢在於其尋址、安全性和可擴展性。這使其成為面向消費者的物聯網應用的理想選擇。
HTTP,WebSocket和XMPP是為物聯網服務的技術示例。其他團隊也在IoT領域,努力向我們展示新的解決方案。
Wannabe通用協議
許多物聯網專家將IoT設備稱為受約束系統,因為他們認為物聯網設備應盡可能便宜,並使用可用的最小MCU,同時仍然運行通信堆棧。
目前,為物聯網調整互聯網是許多全球標准化機構的主要優先事項之一。表1包含當前活動的簡短摘要。

如果您的系統不需要TCP的功能並且可以使用更有限的UDP功能,則刪除TCP模塊顯着有助於減小產品總代碼占用空間的大小。這就是為物聯網領域帶來的,用於無線傳感器網絡(WSN)和約束應用協議(CoAP)輕型互聯網協議的低功耗無線個域網(6LoWPAN)的IPv6網絡。
CoAP協議
雖然Web基礎架構可用於物聯網設備,但對於大多數物聯網應用來說,它太龐大了。2013年7月,Internet Engineering Task Forcce(IETF)發布了CoAP,用於低功耗和有損節點網絡(LLN)。與HTTP一樣,CoAP是RESTful(Representational state transfer, 通過統一的應用程序編程接口(API)協議操作資源和資源標識符的能力)。
CoAP在語義上與HTTP對齊,甚至與HTTP進行一對一映射。網絡設備受限於閃存和RAM、或較小MCU的限制,而本地網絡的約束來源於高的分組錯誤率和低吞吐量(幾十kbps)。CoAP可以是用於電池或能量收集的設備的良好協議。
CoAP的特點:
- 由於CoAP使用UDP,因此某些TCP功能可直接在CoAP中復制。例如,CoAP區分可確認(需要確認)和不可確認消息。
- 請求和響應通過CoAP消息異步交換(與使用現有TCP連接的HTTP不同)。
- 所有標頭,方法和狀態代碼都是二進制編碼的,這樣可以減少協議開銷。但是,這需要使用協議分析器來解決網絡問題。
- 與HTTP不同,緩存CoAP響應的能力不依賴於請求方法,而是依賴於響應代碼。
- CoAP完全解決了對極輕協議的需求,該協議表現出類似於永久連接的行為。它對HTTP具有語義熟悉,並且是RESTful。如果您有網絡背景,使用CoAP相對容易。
MQTT
消息隊列遙測傳輸(MQTT)是一種開源協議,針對受限設備和低帶寬,高延遲或不可靠網絡而開發和優化。它是一種發布/訂閱消息傳輸,非常輕量級,非常適合以較小的帶寬將小型設備連接到網絡。MQTT具有帶寬效率、與數據無關,並且具有連續的會話感知,因為它使用TCP。它旨在最大限度地減少設備資源需求,同時還試圖確保可靠性和一定程度的服務等級交付保證。
MQTT針對需要從Internet上的后端服務器進行監視或控制的大型小型設備網絡。它不是為設備到設備傳輸而設計的,也不是為了將數據“多播”到許多接收器而設計的。MQTT很簡單,幾乎沒有控制選項。使用MQTT的應用程序通常很慢,因為在這種情況下“實時”的定義通常以秒為單位進行測量。
MQTT與CoAP
MQTT發布/訂閱可以很好地擴展,並且已經證明了該架構的優點。在最新的IETF評論請求(RFC)中,CoAP引入了對發布/訂閱的支持。
CoAP的輕型有效載荷非常適合無線傳感器網絡。傳感器網絡的MQTT(MQTT-SN)采用了這一想法並對其進行了再現。
兩個主要的專用物聯網協議是相互借鑒的。這兩個協議是否能成為主流?我們相信,至少需要五到十年。
潛在的物聯網協議的比較
思科是互聯網的核心; 它的IP設備無處不在。思科積極參與物聯網的發展,並看到了連接物理對象,從我們的環境獲取數據以及處理這些數據以提高我們的生活水平的潛力(表2)。

表2中所示的特定於因特網的IoT協議已經開發出來,以滿足低存儲能力、低帶寬和高延遲的網絡的設備的要求。圖2提供了這些協議為物聯網帶來的性能優勢的另一個很好的總結。

選擇正確的物聯網協議
連接傳感器和對象打開了一個可能的、全新的用例世界——正是這些用例將確定何時為正確的應用程序使用正確的協議。
每種協議的高級定位都是類似的。除了HTTP之外,所有提到的協議都被定位為實時發布/訂閱IoT協議,支持數百萬台設備。根據您定義“實時”(秒,毫秒或微秒)和“物”(WSN節點、多媒體設備、個人可穿戴設備,醫療掃描儀、引擎控制等)的方式,針對這些產品,協議選擇至關重要。從根本上說,這些協議絕對不會是相同的。
今天,Web運行在數百種協議之上;物聯網將支持數百個。在設計系統時需要做的是非常精確地定義系統需求,並選擇正確的協議集來解釋。互聯網協議是一個載體; 它可以為IoT封裝盡可能多的協議,就像今天的Web一樣。
許多行業專家都在尋求協議標准化但是如果有很多協議用於網絡,為什么物聯網的協議數量不會那么多呢?您可以選擇符合要求的協議。唯一的區別是物聯網協議仍然很年輕,必須證明其可靠性。請注意,當互聯網成為現實時,IPv4才出現。我們現在正在大規模部署IPv6,物聯網是電信運營商一直在等待證明所需投資的殺手級應用。
作者:輸配電世界
鏈接:https://www.jianshu.com/p/7902d2a42f37
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:cooooooooodeway
鏈接:https://www.jianshu.com/p/112055661233
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。