圖片來源:iotforall.com 對于開發(fā)者來說,在嵌入式系統(tǒng)設(shè)計中使用傳感器和通信是最平常不過的事情。但在這些系統(tǒng)中使用互聯(lián)網(wǎng)技術(shù)則是最新的潮流,也是大多數(shù)物聯(lián)網(wǎng)(IoT)的直接表現(xiàn)形式?;ヂ?lián)網(wǎng)協(xié)議(IP)并不是新技術(shù),應(yīng)用于物聯(lián)網(wǎng)(IoT)的IP網(wǎng)絡(luò)則有所不同,它們重塑了廣域網(wǎng)絡(luò)的各種功能。TCP/IP套接字上面有多個IP應(yīng)用層協(xié)議,每一種都有自己的優(yōu)勢和限制。了解這些協(xié)議,有助于開發(fā)人員為產(chǎn)品做出最佳設(shè)計。選擇IoT協(xié)議時,對帶寬要求、實(shí)時性能和內(nèi)存占用則是需要考慮的主要標(biāo)準(zhǔn)。許多物聯(lián)網(wǎng)項目由首席信息官(CIO)和IT部門推動,他們要求開發(fā)人員使用他們所知的技術(shù)和協(xié)議。但是我們要知道,IoT設(shè)備的管理更接近運(yùn)營技術(shù)(OT),或者稱為資產(chǎn)管理,將IT直接套用于OT,很多時候并不是最優(yōu)選項。 開發(fā)人員需要了解物聯(lián)網(wǎng)設(shè)備有比IT技術(shù)更好的專有協(xié)議選項。 應(yīng)用IP技術(shù)的網(wǎng)絡(luò)有多種類別: ? 消費(fèi)者與工業(yè) ? 網(wǎng)頁服務(wù) ? 物聯(lián)網(wǎng)服務(wù) ? 發(fā)布/訂閱 ? 請求/響應(yīng) 在設(shè)計新系統(tǒng)時必須考慮這些類別。讓我們看一下物聯(lián)網(wǎng)應(yīng)用的IP網(wǎng)絡(luò),并定義選擇標(biāo)準(zhǔn)。 互聯(lián)網(wǎng)Internet是將IP數(shù)據(jù)包從數(shù)據(jù)源路由到目的地的、所有網(wǎng)絡(luò)設(shè)備的總和。相比之下,萬維網(wǎng)是一種在互聯(lián)網(wǎng)上運(yùn)行的應(yīng)用系統(tǒng)。Web是人們?yōu)榻粨Q信息構(gòu)建的工具,在過去的20年中,Web已經(jīng)趨于完善,即便是普通的非技術(shù)人員也可以輕松高效地使用Internet。例如,因特網(wǎng)的人機(jī)界面現(xiàn)在包括電子郵件、搜索引擎、瀏覽器、移動應(yīng)用程序、Facebook和Twitter、以及其他流行的社交媒體。 相比之下,在物聯(lián)網(wǎng)中,我們最基本的想法是電子設(shè)備之間通過互聯(lián)網(wǎng)交換信息。但是這些設(shè)備并沒有瀏覽器或社交媒體一樣的機(jī)器來促進(jìn)溝通。由于物聯(lián)網(wǎng)設(shè)備需要協(xié)同工作,在速度、規(guī)模和功能的需求上,物聯(lián)網(wǎng)也與Web不同。這些要求遠(yuǎn)遠(yuǎn)超出了人們的需求或使用范圍。我們正處于為這些系統(tǒng)開發(fā)新工具和服務(wù)的初始階段,這也是難以鎖定物聯(lián)網(wǎng)定義的原因之一。在現(xiàn)實(shí)應(yīng)用中,存在許多愿景相互沖突,包括如何定義它能夠做什么,可能做什么或應(yīng)該做什么,等等。 TCP/IP協(xié)議棧TCP / IP協(xié)議棧是Internet和Web的核心。它使用七層開放系統(tǒng)互連參考模型(OSI)來表示,如下所示(圖1)。最頂端的三層組合在一起,簡化了模型。 圖1 七層OSI參考模型 以下是從嵌入式系統(tǒng)集成角度對重要OSI層的快速描述: 1.物理和數(shù)據(jù)鏈路層 嵌入式系統(tǒng)使用的最常見的物理層協(xié)議是: ? 以太網(wǎng)(10 Mbps,100 Mbps,1 Gbps) ? Wi-Fi(802.11b / g / n) ? 串行點(diǎn)對點(diǎn)協(xié)議(PPP) ? GSM,3G,4G,LTE 2.網(wǎng)絡(luò)層 這是互聯(lián)網(wǎng)的生活方式?;ヂ?lián)網(wǎng) - 網(wǎng)絡(luò)間的簡稱 - 之所以如此命名,是因為它提供了網(wǎng)絡(luò)之間、物理層之間的連接。這是我們找到無處不在的IP地址的地方。 3.傳輸層 在IP之上,我們有傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)這兩種傳輸協(xié)議。由于TCP用于我們與Web的大多數(shù)人工交互(電子郵件,Web瀏覽等),因此人們普遍認(rèn)為TCP應(yīng)該是傳輸層使用的唯一協(xié)議。TCP提供了邏輯連接的概念、傳輸?shù)臄?shù)據(jù)包的確認(rèn)、丟失的數(shù)據(jù)包的重傳以及流量控制 - 所有這些都是很棒的事情。但對于嵌入式系統(tǒng),TCP可能是過度的要求。因此,即使UDP長期以來已經(jīng)被降級,僅應(yīng)用于域名服務(wù)器(DNS)和動態(tài)主機(jī)配置協(xié)議(DHCP)等網(wǎng)絡(luò)服務(wù),現(xiàn)在也在物聯(lián)網(wǎng)的傳感器數(shù)據(jù)獲取和遠(yuǎn)程控制領(lǐng)域找到了自己的位置。對于語音和視頻等實(shí)時數(shù)據(jù)應(yīng)用,如果您需要某種類型的數(shù)據(jù)管理,UDP也比TCP更適合。原因是TCP的數(shù)據(jù)包確認(rèn)和重傳功能對這些應(yīng)用程序來說是無用的開銷。如果一段數(shù)據(jù)(例如一些語音音頻)沒有及時到達(dá)其目的地,則重傳該分組是沒有意義的,因為它將不按順序到達(dá)并使語音亂碼。 TCP有時優(yōu)先于UDP,因為它提供持久連接。要使用UDP啟用相同功能,必須在UDP上方的協(xié)議層中實(shí)現(xiàn)此功能。 當(dāng)您決定如何將數(shù)據(jù)從“物”通過本地網(wǎng)絡(luò)連接到IP網(wǎng)絡(luò),您有多種選擇。由于所使用的技術(shù)是成熟的,并且可以開源獲得——通過網(wǎng)關(guān)鏈接兩個網(wǎng)絡(luò),或者可以將網(wǎng)關(guān)構(gòu)建到“物”本身?,F(xiàn)在,許多微控制器(MCU)都在芯片上安裝了以太網(wǎng)控制器,這使得這項工作變得更加容易。 物聯(lián)網(wǎng)協(xié)議圖片來源:https://entrepreneurshiptalk./2014/01/29/the-internet-of-thing-protocol-stack-from-sensors-to-business-value/ 使用現(xiàn)有的Web技術(shù)構(gòu)建物聯(lián)網(wǎng)系統(tǒng)是可能的,即使它不如新協(xié)議那么高效。超文本傳輸協(xié)議(HTTP / S)和WebSockets是有效載荷的通用標(biāo)準(zhǔn),以及可擴(kuò)展標(biāo)記語言(XML)或JavaScript對象表示法(JSON)。使用標(biāo)準(zhǔn)Web瀏覽器(HTTP客戶端)時,JSON為Web開發(fā)人員提供了一個抽象層,通過保持打開兩個HTTP連接,創(chuàng)建一個具有到Web服務(wù)器(HTTP服務(wù)器)的持久雙工連接的、有狀態(tài)Web應(yīng)用程序。 HTTPHTTP是用于Web的客戶端 - 服務(wù)器模型的基礎(chǔ)。在IoT設(shè)備中實(shí)施HTTP的最安全方法是僅包括客戶端,而不是服務(wù)器。換句話說,當(dāng)IoT設(shè)備可以啟動與Web服務(wù)器的連接,但不必是接收連接請求時則更安全; 我們不希望外部計算機(jī)訪問安裝了IoT設(shè)備的本地網(wǎng)絡(luò)。 WebSocketWebSocket是一種通過單個TCP連接提供全雙工通信的協(xié)議,通過該連接可以在客戶端和服務(wù)器之間發(fā)送消息。它是超文本標(biāo)記語言5(HTML5)規(guī)范的一部分。WebSocket標(biāo)準(zhǔn)簡化了雙向Web通信和連接管理的復(fù)雜性。 XMPP可擴(kuò)展消息傳遞和在線協(xié)議(XMPP)是現(xiàn)有Web技術(shù)在物聯(lián)網(wǎng)領(lǐng)域?qū)ふ倚掠猛镜囊粋€很好的例子。 XMPP來源于即時消息和狀態(tài)信息,并已擴(kuò)展到語音和視頻調(diào)用、協(xié)作、輕量級中間件、內(nèi)容聯(lián)合以及XML數(shù)據(jù)的通用路由。它是管理大規(guī)模白色家電(如洗衣機(jī),烘干機(jī),冰箱等)的有力競爭者。 XMPP的優(yōu)勢在于其尋址、安全性和可擴(kuò)展性。這使其成為面向消費(fèi)者的物聯(lián)網(wǎng)應(yīng)用的理想選擇。 HTTP,WebSocket和XMPP是為物聯(lián)網(wǎng)服務(wù)的技術(shù)示例。其他團(tuán)隊也在IoT領(lǐng)域,努力向我們展示新的解決方案。 Wannabe通用協(xié)議許多物聯(lián)網(wǎng)專家將IoT設(shè)備稱為受約束系統(tǒng),因為他們認(rèn)為物聯(lián)網(wǎng)設(shè)備應(yīng)盡可能便宜,并使用可用的最小MCU,同時仍然運(yùn)行通信堆棧。 目前,為物聯(lián)網(wǎng)調(diào)整互聯(lián)網(wǎng)是許多全球標(biāo)準(zhǔn)化機(jī)構(gòu)的主要優(yōu)先事項之一。表1包含當(dāng)前活動的簡短摘要。 表1 受約束系統(tǒng)標(biāo)準(zhǔn)化工作 如果您的系統(tǒng)不需要TCP的功能并且可以使用更有限的UDP功能,則刪除TCP模塊將顯著減小產(chǎn)品總代碼占用空間的大小。這就是為物聯(lián)網(wǎng)領(lǐng)域帶來的,用于無線傳感器網(wǎng)絡(luò)(WSN)和約束應(yīng)用協(xié)議(CoAP),輕型互聯(lián)網(wǎng)協(xié)議的低功耗無線個域網(wǎng)(6LoWPAN)的IPv6網(wǎng)絡(luò)。 CoAP協(xié)議雖然Web基礎(chǔ)架構(gòu)可用于物聯(lián)網(wǎng)設(shè)備,但對于大多數(shù)物聯(lián)網(wǎng)應(yīng)用來說,它太龐大了。2013年7月,Internet Engineering Task Forcce(IETF)發(fā)布了CoAP,用于低功耗和有損節(jié)點(diǎn)網(wǎng)絡(luò)(LLN)。與HTTP一樣,CoAP是RESTful(Representational state transfer, 通過統(tǒng)一的應(yīng)用程序編程接口(API)協(xié)議操作資源和資源標(biāo)識符的能力)。 CoAP在語義上與HTTP對齊,甚至與HTTP進(jìn)行一對一映射。網(wǎng)絡(luò)設(shè)備受限于閃存和RAM、或較小MCU的限制,而本地網(wǎng)絡(luò)的約束來源于高的分組錯誤率和低吞吐量(幾十kbps)。CoAP可以是用于電池或能量收集的設(shè)備的良好協(xié)議。 CoAP的特點(diǎn): ? 由于CoAP使用UDP,因此某些TCP功能可直接在CoAP中復(fù)制。例如,CoAP區(qū)分可確認(rèn)(需要確認(rèn))和不可確認(rèn)消息。 ? 請求和響應(yīng)通過CoAP消息異步交換(與使用現(xiàn)有TCP連接的HTTP不同)。 ? 所有標(biāo)頭,方法和狀態(tài)代碼都是二進(jìn)制編碼的,這樣可以減少協(xié)議開銷。但是,這需要使用協(xié)議分析器來解決網(wǎng)絡(luò)問題。 ? 與HTTP不同,緩存CoAP響應(yīng)的能力不依賴于請求方法,而是依賴于響應(yīng)代碼。 ? CoAP完全解決了對極輕協(xié)議的需求,該協(xié)議表現(xiàn)出類似于永久連接的行為。它對HTTP具有語義熟悉,并且是RESTful。如果您有網(wǎng)絡(luò)背景,使用CoAP相對容易。 MQTT消息隊列遙測傳輸(MQTT)是一種開源協(xié)議,針對受限設(shè)備和低帶寬,高延遲或不可靠網(wǎng)絡(luò)而開發(fā)和優(yōu)化。它是一種發(fā)布/訂閱消息傳輸,非常輕量級,非常適合以較小的帶寬將小型設(shè)備連接到網(wǎng)絡(luò)。MQTT具有帶寬效率、與數(shù)據(jù)無關(guān),并且具有連續(xù)的會話感知,因為它使用TCP。它旨在最大限度地減少設(shè)備資源需求,同時還試圖確??煽啃院鸵欢ǔ潭鹊姆?wù)等級交付保證。 MQTT針對需要從Internet上的后端服務(wù)器進(jìn)行監(jiān)視或控制的大型小型設(shè)備網(wǎng)絡(luò)。它不是為設(shè)備到設(shè)備傳輸而設(shè)計的,也不是為了將數(shù)據(jù)“多播”到許多接收器而設(shè)計的。MQTT很簡單,幾乎沒有控制選項。使用MQTT的應(yīng)用程序通常很慢,因為在這種情況下“實(shí)時”的定義通常以秒為單位進(jìn)行測量。 MQTT與CoAPMQTT發(fā)布/訂閱可以很好地擴(kuò)展,并且已經(jīng)證明了該架構(gòu)的優(yōu)點(diǎn)。在最新的IETF評論請求(RFC)中,CoAP引入了對發(fā)布/訂閱的支持。 CoAP的輕型有效載荷非常適合無線傳感器網(wǎng)絡(luò)。傳感器網(wǎng)絡(luò)的MQTT(MQTT-SN)采用了這一想法并對其進(jìn)行了再現(xiàn)。 兩個主要的專用物聯(lián)網(wǎng)協(xié)議是相互借鑒的。這兩個協(xié)議是否能成為主流?我們相信,至少需要五到十年。 潛在的物聯(lián)網(wǎng)協(xié)議的比較思科(CISCO)是互聯(lián)網(wǎng)的核心; 它的IP設(shè)備無處不在。思科積極參與物聯(lián)網(wǎng)的發(fā)展,并看到了連接物理對象,從我們的環(huán)境獲取數(shù)據(jù)以及處理這些數(shù)據(jù)以提高我們的生活水平的潛力(表2)。 表2 思科在物聯(lián)網(wǎng)標(biāo)準(zhǔn)方面的工作 表2中所示的特定于因特網(wǎng)的IoT協(xié)議已經(jīng)開發(fā)出來,以滿足低存儲能力、低帶寬和高延遲的網(wǎng)絡(luò)的設(shè)備的要求。圖2提供了這些協(xié)議為物聯(lián)網(wǎng)帶來的性能優(yōu)勢的另一個很好的總結(jié)。 圖2 Web和IoT協(xié)議的比較。 資料來源:Zach Shelby,Micro:bit Foundation [1] 選擇正確的物聯(lián)網(wǎng)協(xié)議連接傳感器和對象打開了一個可能的、全新的用例世界——正是這些用例將確定何時為正確的應(yīng)用程序使用正確的協(xié)議。 每種協(xié)議的高級定位都是類似的。除了HTTP之外,所有提到的協(xié)議都被定位為實(shí)時發(fā)布/訂閱IoT協(xié)議,支持?jǐn)?shù)百萬臺設(shè)備。根據(jù)您定義“實(shí)時”(秒,毫秒或微秒)和“物”(無線傳感器網(wǎng)絡(luò)WSN節(jié)點(diǎn)、多媒體設(shè)備、個人可穿戴設(shè)備,醫(yī)療掃描儀、引擎控制等)的方式,針對這些產(chǎn)品,協(xié)議選擇至關(guān)重要。從根本上說,這些協(xié)議絕對不會是相同的。 今天,Web運(yùn)行在數(shù)百種協(xié)議之上;物聯(lián)網(wǎng)將支持?jǐn)?shù)百個。在設(shè)計系統(tǒng)時需要做的是非常精確地定義系統(tǒng)需求,并選擇正確的協(xié)議集來解釋?;ヂ?lián)網(wǎng)協(xié)議是一個載體; 它可以為IoT封裝盡可能多的協(xié)議,就像今天的Web一樣。 許多行業(yè)專家都在尋求協(xié)議標(biāo)準(zhǔn)化但是如果有很多協(xié)議用于網(wǎng)絡(luò),為什么物聯(lián)網(wǎng)的協(xié)議數(shù)量不會那么多呢?您可以選擇符合要求的協(xié)議。唯一的區(qū)別是物聯(lián)網(wǎng)協(xié)議仍然很年輕,必須證明其可靠性。請注意,當(dāng)互聯(lián)網(wǎng)成為現(xiàn)實(shí)時,IPv4才出現(xiàn)。我們現(xiàn)在正在大規(guī)模部署IPv6,物聯(lián)網(wǎng)是電信運(yùn)營商一直在等待證明所需投資的殺手級應(yīng)用。 Which IoT protocol should I use for my system? 原文地址:https://www./embedded-computing-design/which-iot-protocol-should-i-use-for-my-system
Micrium Silicon Laboratories 參考文檔:1. Zdshelby Follow. “Standards Drive the Internet of Things.” LinkedIn SlideShare. May 22, 2013. Accessed April 11, 2017. https://www./zdshelby/standards-drive-the-internet-of-things. |
|