物聯網筆記四:物聯網網絡及協議
1.概要
通信對物聯網極為重要。網絡技術使得 IoT 設備不僅能與其他設備進行通信,還能與在雲中運行的應用程序和服務進行通信。互聯網依靠標准化的協議來確保能夠在各種各樣的設備之間安全可靠地進行通信。標准協議指定了設備用來建立和管理網絡,以及在這些網絡間傳輸數據的規則和格式。
我們通常認為,網絡是由堆棧技術構建的,堆棧底部的技術(比如藍牙低功耗)與物理連接設備相關,而堆棧中更靠上的技術(比如 IPv6)與邏輯設備尋址和網絡流量路由相關。堆棧頂部的技術(如消息排隊技術)由運行在這些層之上的應用程序使用。
在本文中,我將介紹一些被廣泛采用的 IoT 網絡技術和標准。還將解釋你將如何選擇哪種網絡協議。然后我將討論與 IoT 中的網絡相關的關鍵考慮因素和挑戰,包括傳輸距離、帶寬、電量使用、間歇連通性、互操作性和安全性。
2.網絡標准和技術
開放式系統互聯 (OSI) 模型是一種 ISO(國際標准化組織) 標准抽象模型,它描述了一個包含 7 層的協議棧。這些層從上往下依次是:應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層和物理層。TCP/IP 或互聯網協議套件支撐着互聯網,提供了 OSI 模型中各層的簡化的具體實現。
圖 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 地址標識,這一層上的協議負責物理尋址,比如交換機如何將幀傳送到網絡上的設備。
(2)互聯網層
這一層對應於 OSI 的第 3 層(網絡層),它關系到邏輯尋址。這一層上的協議定義了路由器如何在 IP 地址所標識的源和目標主機之間傳送數據包。IoT 設備尋址通常采用 IPv6。
(3)傳輸層
傳輸層(OSI 中的第 4 層)專注於端到端通信,提供的特性包括可靠性、避免擁塞,並且保證將包按照被發送的相同順序送達。出於性能原因,IoT 傳輸常常采用 UDP(用戶數據報協議)。
(4)應用層
應用層(OSI 中的第 5、6 和 7 層)負責應用級消息傳遞。HTTP/S 是互聯網上被廣泛采用的應用層協議的一個例子。
盡管 TCP/IP 和 OSI 模型抽象的提供了有用的用於討論的網絡協議,以及實現每種協議的具體技術,但實際上,一些協議無法恰當地歸入這些分層模型中。例如,使用加密來確保網絡流量的隱私和數據完整性的傳輸層安全 (TLS) 協議,可能被認為是跨 OSI 的第 4、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通常采用的技術包括 IPv6、6LoWPAN 和 RPL。
互聯網層技術(OSI 第 3 層)負責識別和路由數據包。與這層相關且IoT通常采用的技術包括 IPv6、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 應用中采用哪些網絡技術時,一定要留意以下限制:
l 傳輸距離
l 帶寬
l 功耗
l 間歇連通性
l 互操作性
l 安全性
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 應用的技術