物聯網筆記四:物聯網網絡及協議

物聯網筆記四:物聯網網絡及協議

1.概要html

通訊對物聯網極爲重要。網絡技術使得 IoT 設備不只能與其餘設備進行通訊,還能與在雲中運行的應用程序和服務進行通訊。互聯網依靠標準化的協議來確保可以在各類各樣的設備之間安全可靠地進行通訊。標準協議指定了設備用來創建和管理網絡,以及在這些網絡間傳輸數據的規則和格式。安全

咱們一般認爲,網絡是由堆棧技術構建的,堆棧底部的技術(好比藍牙低功耗)與物理鏈接設備相關,而堆棧中更靠上的技術(好比 IPv6)與邏輯設備尋址和網絡流量路由相關。堆棧頂部的技術(如消息排隊技術)由運行在這些層之上的應用程序使用。網絡

在本文中,我將介紹一些被普遍採用的 IoT 網絡技術和標準。還將解釋你將如何選擇哪一種網絡協議。而後我將討論與 IoT 中的網絡相關的關鍵考慮因素和挑戰,包括傳輸距離、帶寬、電量使用、間歇連通性、互操做性和安全性。less

2.網絡標準和技術dom

開放式系統互聯 (OSI) 模型是一種 ISO(國際標準化組織) 標準抽象模型,它描述了一個包含 7 層的協議棧。這些層從上往下依次是:應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層和物理層。TCP/IP 或互聯網協議套件支撐着互聯網,提供了 OSI 模型中各層的簡化的具體實現。ide

1. OSI 和 TCP/IP 網絡模型

 

TCP/IP 模型僅包含 4 層,併合並了 OSI 模型的一些層(參見 圖 1):性能

1)網絡接入和物理層優化

這個 TCP/IP 層包含 OSI 的第 1 和第 2 層。物理 (PHY) 層(OSI 的第 1 層)負責如何經過硬件將每一個設備以物理方式鏈接到網絡,例如經過光纜、電線或在 wifi 等無線網絡中經過無線電 (IEEE 802.11 a/b/g/n) 鏈接。在鏈路層(OSI 的第 2 層),設備由 MAC 地址標識,這一層上的協議負責物理尋址,好比交換機如何將幀傳送到網絡上的設備。ui

2)互聯網層加密

這一層對應於 OSI 的第 3 層(網絡層),它關係到邏輯尋址。這一層上的協議定義了路由器如何在 IP 地址所標識的源和目標主機之間傳送數據包。IoT 設備尋址一般採用 IPv6。

3)傳輸層

傳輸層(OSI 中的第 4 層)專一於端到端通訊,提供的特性包括可靠性、避免擁塞,而且保證將包按照被髮送的相同順序送達。出於性能緣由,IoT 傳輸經常採用 UDP(用戶數據報協議)。

4)應用層

應用層(OSI 中的第 五、6 和 7 層)負責應用級消息傳遞。HTTP/S 是互聯網上被普遍採用的應用層協議的一個例子。

儘管 TCP/IP 和 OSI 模型抽象的提供了有用的用於討論的網絡協議,以及實現每種協議的具體技術,但實際上,一些協議沒法恰當地納入這些分層模型中。例如,使用加密來確保網絡流量的隱私和數據完整性的傳輸層安全 (TLS) 協議,可能被認爲是跨 OSI 的第 四、5 和 6 層而運行。

3.IoT 網絡協議

IoT 中被普遍採用且能納入 TCP/IP 層的一些網絡協議如 圖 2 所示。

2. 與 TCP/IP 模型對應的 IoT 網絡協議

 

IoT 領域正在採用許多新興且有競爭性的網絡技術。許多技術由不一樣的供應商提供或針對不一樣的垂直市場,好比家庭自動化、醫療保健或工業 IoT,它們一般爲相同的標準協議提供了替代性實現。例如,IEEE 802.15.4 描述了低速率無線個域網 (LR-WPAN) 的工做原理,而且由多種競爭性技術實現,包括 ZigBee、Z-Wave、EnOcean、SNAP 和 6LoWPAN。

例如,用於鏈接互聯網的技術(好比以太網)一般可應用在 IoT 中;可是,人們正在開發新的技術來專門解決 IoT 的挑戰。越朝物理傳輸技術方向考慮協議棧,面臨的特定於 IoT 設備和 IoT 上下文的挑戰就越多。

網絡的結構被稱爲網絡的拓撲結構。IoT 中採用的最多見網絡拓撲結構是星型和網狀拓撲結構。在星型拓撲結構中,每一個 IoT 設備直接與一箇中央集線器(網關)相連,該集線器會傳輸來自上游鏈接設備的數據。在網狀拓撲結構中,設備與傳輸距離內的其餘設備以及網絡中的節點相連,這些設備可充當簡單的傳感器節點,也能充當路由流量的傳感器節點,或者充當網關節點。網狀網絡比星型拓撲結構的網絡更爲複雜,但優點在於故障恢復能力更強,由於它們不依賴於單箇中央網關。

3.1網絡接入層和物理層 IoT 網絡拓撲結構

須要知道的靠近協議棧底部的 IoT 網絡技術包括蜂窩技術、wifi 和以太網,以及更專業的解決方案,好比 LPWAN、藍牙低功耗 (BLE)、ZigBee、NFC 和 RFID。

1)LPWAN

低功耗廣域網)是一種專爲低功耗、長距離無線通訊而設計的技術類別,因此它們很是適合用在無線傳感器等低功耗 IoT 設備的大規模部署中。LPWAN 技術包括 LoRa(LongRange 物理層協議)、Haystack、SigFox、LTE-M 和 NB-IoT(窄帶 IoT)。

2)蜂窩技術

LPWAN NB-IoT 和 LTE-M 標準旨在使用現有的蜂窩網絡提供低功耗、低成本的 IoT 通訊選擇。NB-IoT 是這些標準中的最新標準,專一於大量主要在戶內的設備之間的長距離通訊。LTE-M 和 NB-IoT 是專爲 IoT 開發的,可是長距離無線通訊中也常常採用現有的蜂窩技術。這些技術包括 2G (GSM),主要用在遺留設備中,該技術目前正被逐漸淘汰,CDMA、3G 和 4G 也是如此。

3)藍牙低功耗 (BLE)

BLE 是流行的藍牙 2.4 GHz 無線通訊協議的低功耗版本。它專爲短距離(不超過 100 米)通訊而設計,一般用在星型配置中,有一個控制多個輔助設備的主要設備。藍牙跨 OSI 模型的第 1 層 (PHY) 和第 2 層 (MAC) 而運行,如 圖 1 所示。BLE 最適合突發性傳輸少許數據的設備,由於這些設備被設計爲在不傳輸數據時休眠,以節約用電。可穿戴健康和健身跟蹤器等我的 IoT 設備經常使用 BLE。

4)ZigBee

ZigBee 也在 2.4GHz 無線通訊頻譜上運行,但它的傳輸距離比 BLE 的最長 100 米更長。與 BLE(270 kbps)相比,它的數據傳輸速率稍微低一些(最高 250 kbps)。ZigBee 是一種網狀網絡協議,不一樣於 BLE,不是全部設備都能在沒有突發性傳輸數據時休眠,這取決於它們在網格中的位置以及是否須要充當網格中的路由器或控制器。ZigBee 專爲建築和家庭自動化應用而設計,好比控制照明。另外一種與 ZigBee 緊密相關的技術是 Z-Wave,它也基於 IEEE 802.15.4 MAC。Z-Wave 也是專爲家庭自動化而設計,它曾經是一種專用技術,最近才做爲一種公共領域規範發佈

5)NFC

近場通訊 (NFC) 協議用於很是短距離的通訊(最遠 4 釐米),好比手持一張 NFC 卡或標籤靠近讀卡器。NFC 經常用於支付系統,但它對簽到系統和工業 IoT 應用中用於跟蹤資產的智慧標籤也頗有用。

6)RFID

RFID 表示射頻識別。RFID 標籤存儲標識符和數據,並將它們附加到設備上供 RFID 讀取器讀取。RFID 的典型傳輸距離小於 1 米。RFID 標籤能夠採用有源、無源或輔助無源形式。無源標籤很是適合沒有電池的設備,由於 ID 由讀取器被動讀取。有源標籤會按期廣播其 ID,而輔助無源標籤在 RFID 讀取器出現時會變爲有源。Dash7 是一種通訊協議,它使用了專爲在工業 IoT 應用中使用而設計的有源 RFID,以便執行安全的長距離通訊。相似於 NFC,RFID 的典型用例是在零售和工業 IoT 應用中跟蹤庫存商品。

7)Wifi

Wifi 是基於 IEEE 802.11a/b/g/n 規範的標準無線網絡技術。802.11n 提供了最高的數據吞吐量,但代價是功耗很高,因此出於節能緣由,IoT 設備可能僅使用 802.11b 或 g。儘管許多原型和最新一代 IoT 設備中都採用了 wifi,但隨着長距離和低功耗解決方案變得更加廣泛,wifi 可能會被這些低功耗替代方案所取代。

8)以太網

以太網採用了 IEEE 802.3 標準,被普遍部署在局域網內,以便創建有線鏈接。不是全部 IoT 設備都必須是設計小巧的無線設備。例如,安裝在建築自動化系統內的傳感器裝置可以使用以太網這樣的有線網絡技術。電力線通訊 (PLC) 是一種替代性的硬線解決方案,它使用現有的電線代替專門的網線。

3.2互聯網層 IoT 網絡拓撲結構

互聯網層技術(OSI 第 3 層)負責識別和路由數據包。與這層相關且IoT一般採用的技術包括 IPv六、6LoWPAN 和 RPL。

互聯網層技術(OSI 第 3 層)負責識別和路由數據包。與這層相關且IoT一般採用的技術包括 IPv六、6LoWPAN 和 RPL。

IPv6

在互聯網層,設備由 IP 地址標識。IPv6 一般用於 IoT 應用,而不是傳統的 IPv4 尋址。IPv4 被限定爲 32 位地址,總共僅能提供約 43 億個地址,這少於目前連網的 IoT 設備數量,而 IPv6 採用了 128 位地址,因此能提供 2128 個地址(約 3.4 × 1038 或 340 x 10 億 x 10 億 x 10 億 x 10 億個地址)。實際上,並非全部 IoT 設備都須要公共地址。在預計將來幾年內鏈接到 IoT 的數百億個設備中,許多設備將部署在私有網絡中,這些網絡將使用私有地址範圍,並且僅使用網關與外部網絡上的其餘設備或服務進行出站通訊。

6LoWPAN

IPv6 低功耗無線個域網 (6LoWPAN) 標準容許在 802.15.4 無線網絡上使用 IPv6。6LoWPAN 經常用於無線傳感器網絡,並且用於家庭自動化設備的 Thread 協議也在 6LoWPAN 上運行。

RPL

互聯網層還負責路由。IPv6 低功耗和有損網絡路由協議 (RPL) 專爲在低功耗網絡(好比在 6LoWPAN 上實現的網絡)上路由 IPv6 流量而設計。RPL(發音爲 「ripple」)被設計用於在受限的網絡中路由數據包,好比無線傳感器網絡,在這些網絡中,不是全部設備都始終可達,並且存在很高或沒法預測的包丟失量。RPL 能基於動態指標和約束條件(好比最低能耗或延遲)來構建網絡中的節點圖,從而計算最佳路徑。

3.3應用層 IoT 網絡拓撲結構

HTTP 和 HTTPS 在互聯網應用中隨處可見,在 IoT 中也是如此,IoT 中普遍部署了 RESTful HTTP 和 HTTPS 接口。CoAP(受限應用協議)就像一種輕量級 HTTP,經常與基於 UDP 的 6LoWPAN 結合使用。MQTT、AMQP 和 XMPP 等消息協議也經常用在 IoT 應用中:

1)MQTT

消息隊列遙測傳輸 (MQTT) 是一種基於發佈/訂閱的消息協議,專爲在低帶寬狀況下使用而設計,特別適合不可靠網絡上的傳感器和移動設備。

2)AMQP

高級消息排隊協議 (AMQP) 是一種用於面向消息的中間件的開放標準消息協議。很顯然,AMQP 由 RabbitMQ 設計。

3)XMPP

可擴展消息和狀態協議 (XMPP) 最初是爲包括即時消息在內的實時人類間通訊而設計的。此協議針對機器間 (M2M) 通訊進行了調整,以實現輕量級中間件和路由 XML 數據。XMPP 主要用於智慧家電。

這一層上選擇的技術將取決於 IoT 項目的具體應用需求。例如,對於涉及多個傳感器的經濟型家庭自動化系統,MQTT 是一個不錯的選擇,由於它很是適合在沒有太多存儲或處理能力的設備上實現消息功能,並且該協議的實現既簡單又輕便。

4.IoT 網絡考慮因素和挑戰

考慮在 IoT 應用中採用哪些網絡技術時,必定要留意如下限制:

傳輸距離

帶寬

功耗

間歇連通性

互操做性

安全性

4.1傳輸距離

網絡可經過附加到網絡的 IoT 設備的典型數據傳輸距離來描述:

1)PAN(個域網)

PAN 是一種短距離網絡,其中的距離是以米爲單位來衡量的,好比經過 BLE 與手機上的應用通訊的可穿戴健身跟蹤器設備。

2)LAN(局域網)

LAN 是一種短到中等距離的網絡,其中的距離最長可達數百米,好比家庭自動化或安裝在工廠生產線中的傳感器,它們經過 wifi 與安裝在同一建築中的網關設備進行通訊。

3)MAN(城域網)

MAN 是一種長距離(城市級)網絡,其中的距離可達數公里,好比經過網狀網絡拓撲結構相連的遍佈全城的智能停車傳感器。

4)WAN(廣域網)

WAN 是一種長距離網絡,其中的距離可達數公里,好比安裝在大型農場中用於監視整個農場上的微氣候環境條件的農業傳感器。

您的網絡應該設計爲,從 IoT 設備中獲取數據,並將數據用於這些設備中。因此請確保您選擇的網絡協議與您的用例所需的傳輸距離相匹配。例如,不該爲須要跨數公里距離運行的 WAN 應用選擇 BLE。若是在所需的距離內傳輸數據存在挑戰,可考慮邊緣計算,它能夠將數據分析轉移到設備上,而不是將數據轉移到別處進行處理。

4.2帶寬

帶寬,或在特定時間段內能傳輸的數據量,限制了可從 IoT 設備收集數據並傳輸到上游的速率。考慮如下因素:

每一個設備生成的數據量

部署在網絡中的設備數量

數據是源源不斷地發送仍是間歇性地突發性發送,由於須要使用可用的帶寬來應對高峯時段

您選擇的網絡協議的包大小應與一般傳輸的數據大小相匹配。發送填滿空數據的包是一種低效操做,但另外一方面,將更大的數據塊拆分爲太多小包也會產生開銷。數據傳輸速率並不老是對稱的(也就是說,上傳速率可能低於下載速率)。所以,若是設備間存在雙向通訊,則須要考慮數據傳輸。無線和蜂窩網絡一般具備較低的帶寬,因此須要考慮對高數據量應用選擇無線技術是否穩當。

另外,考慮是否全部原始數據都須要傳輸。一個解決方案多是經過下降採樣頻率,捕獲更少的變量,或者在設備上執行某種過濾來丟棄不重要數據,從而捕獲更少的數據。若是在傳輸數據前對其進行聚合,有助於減小要傳輸的數據量,可是此過程會影響上游分析的靈活性和粒度。聚合和突發性發送並不老是適合時間敏感或延遲敏感的數據。全部這些技術還會增長 IoT 設備的數據處理和存儲需求。

4.3功耗

從設備傳輸數據會消耗電力,長距離傳輸數據須要的電力比短距離更多。必須考慮依靠電池運行的設備,以節約用電,從而延長電池壽命和減小操做成本。要延長電池壽命,能夠在設備空閒時讓其進入休眠模式。一個不錯的主意是對設備在不一樣負載和不一樣網絡條件下的能耗進行建模,確保設備的電源供應和存儲容量與使用特定網絡技術傳輸必要數據所需的電量相匹配。

4.4間歇連通性

IoT 設備並不老是處於鏈接狀態。在某些狀況下,設備被設計爲按期鏈接,以節省用電或帶寬。可是,有時不可靠的網絡可能致使設備因爲鏈接問題而掉線。有時會出現服務質量問題,好比處理使用共享頻譜的無線網絡上的干擾或信道爭用。

4.5互操做性

有如此多不一樣設備鏈接到 IoT,互操做性多是一大挑戰。採用標準協議是在互聯網上維護互操做性的傳統方法。可是,對於 IoT,標準化流程有時很難跟上快速的變化節奏,並且發佈的技術基於即將出現的標準版本,而這些標準仍可能發生變化。在這些狀況下,能夠考慮圍繞這些技術的生態系統;也就是說,詢問如下問題:它們是否被普遍採用?它們是開放的仍是專用的?有多少實現可用?

4.6安全性

安全始終是優先考慮事項,因此必定要選擇實現端到端安全的網絡技術,包括身份驗證、加密和開放端口保護。例如,IEEE 802.15.4 包含的一種安全模型提供了許多安全特性,包括訪問控制、消息完整性、消息機密性和重放保護,這些特性是由基於此標準的技術(好比 ZigBee)實現的。

1)身份驗證

採用安全協議來支持設備級的網關、用戶、應用和服務身份驗證。例如,考慮採用 X.509 標準來執行設備身份驗證。

2)加密

若是使用 wifi,那麼可使用 WPA2(Wireless Protected Access 2,無線保護接入第 2 代)來執行無線網絡加密,或者能夠採用 PPSK(Private Pre-Shared Key,私有預共享密鑰)方法。要確保應用之間的通訊的隱私和數據完整性,必定要採用 TLS 或基於 TLS 的 DTLS(數據報傳輸層安全),但要針對在 UDP 上運行的不可靠鏈接進行調整。TLS 會加密應用數據並確保其完整性。

3)端口保護

端口保護確保只有與網關、上游應用或服務通訊所需的端口是保持對外部鏈接開放的。全部其餘端口都應被禁用或受防火牆保護。例如,在通用即插即用 (UPnP) 漏洞被利用時,設備端口可能被公開,因此應在路由器上禁用 UPnP。

5.結束語

選擇要採用的 IoT 網絡技術的整個過程當中都涉及到折中考慮。您選擇的網絡技術會影響 IoT 設備的設計,並且我在本文中討論的大部分考慮因素都是相互依賴的。例如,網絡傳輸距離、數據速率和功耗都是直接相關的。若是增長網絡傳輸距離或速率和傳輸的數據量,IoT 設備幾乎確定須要額外的電力來在這些條件下傳輸數據。

對於基本的家庭自動化項目,電源考慮標準可能不過重要,由於設備極可能直接經過壁式插座供電。帶寬限制和鏈接丟失具備更高的優先級,因此您能夠採用 wifi,由於它提供了合理的帶寬,並且使得該項目更容易使用商用硬件進行構建。可是,wifi 沒有針對低功耗設備進行優化,因此對於經過電池供電的設備,該選擇可能不是一個好的選擇。

在本文中,我概述了一些最經常使用於 IoT 的網絡協議和技術。您須要根據這些 IoT 網絡挑戰來考慮您的需求,找到最適合您的 IoT 應用的技術

相關文章
相關標籤/搜索