802.15.4 6LoWPAN IPv6

融合IPv6/802.15.4優點 6LoWPAN加速物聯網成形

2015-03-02
IPv6低功率無線個人區域網路(6LoWPAN)能夠連結許多事物至雲端,由於其低功率IP節點與大型網狀網路等特質,這項技術相當適合物聯網應用。6LoWPAN做為一種網路技術或調節層,可在以IEEE 802.15.4定義的小型連接層架構中,迅速傳輸IPv6封包,其點到點(P2P)IP基礎架構充分運用逾30年的IP技術開發經驗,促進開放標準與互用性,創造近三十億用戶的網際網路日常使用經驗。
6LoWPAN為「網際網路工程任務組」(IETF)在RFC 6282內定義的開放標準。該組織訂定網際網路上使用的諸多開放標準,如UDP、TCP、HTTP等,6LoWPAN原本是為支援2.4GHz頻段的IEEE 802.15.4低功率無線網路,但經過調節後,可應用於多種其他網路媒介,如Sub-GHz低功率射頻、藍牙智慧(Bluetooth Smart)、電力線控制、低功率Wi-Fi等。

本文將討論6LoWPAN設計的重要概念,並說明如何在IEEE 802.15.4無線連結中使用IPv6。

圖1 包含6LoWPAN網狀網路的IPv6網路範例

圖1為IPv6網路範例,其中包括6LoWPAN網狀網路,以及連結至網際網路的上行鏈路,後者由做為IPv6路由器的存取點(AP)處理。

克服現有通訊標準問題 6LoWPAN專為物聯網而生

在一般情況中,存取點會和多種裝置相連,如個人電腦、伺服器等;而6LoWPAN網路使用邊緣路由器連接至IPv6網路。邊緣路由器須具備三項功能:一、6LoWPAN裝置與網際網路(或其他IPv6網路)的資料交換;二、6LoWPAN內部裝置之間資料交換;三、無線子網路(6LoWPAN網路)生成與維護。

6LoWPAN網路可與IP自然溝通,只要使用IP路由器,即可連接至其他網路。如圖1所示,6LoWPAN網路通常在邊緣運作,扮演短截網路的角色,代表資料在進入網路後,最終會被傳送至6LoWPAN內的某一裝置。單一6LoWPAN網路可能透過一個或多個邊緣路由器,在不同媒介之間發送IP資料包,連接至其他IP網路;也可能透過其他路徑,如乙太網路(Ethernet)、無線區域網路(Wi-Fi)、3G/4G等。

由於6LoWPAN僅定義IPv6在IEEE 802.15.4標準下的運作情況,邊緣路由器也可能支援IPv6轉換機制,以連結6LoWPAN與IPv4網路,例如RFC 6146定義的NAT64。這些IPv6轉換機制執行部分或所有IPv4時,不需要6LoWPAN節點。

由於邊緣路由器在網路層發送資料包(請見通訊層相關段落),因此不會維持任何應用層狀態。ZigBee、Z-wave、藍牙及其他專利網路架構則須維持狀態,有時甚至需要複雜的應用閘道,才能連結至網際網路等IP網路。這些應用閘道須了解網路內可能使用的所有應用檔案,無線節點若更改應用協定,也必須更改閘道;反觀IP邊緣路由器則不受6LoWPAN內的應用協定影響,不僅能降低邊緣路由器的處理負擔,亦可選用成本較低、軟體較簡易、硬體較不複雜的嵌入式裝置。不過IP架構不會排除今日網路內常見的代理伺服器或快取,無法藉此提升網路效能。

在一般6LoWPAN網路內,也包括路由器與主機兩種裝置。路由器一如其名,會為資料指路,導向6LoWPAN網路內另一節點;主機亦稱為終端裝置,不會導引資料至網路內其他裝置。主機也可能是休眠裝置,定期甦醒向路由器確認資料,藉此降低用電量。

以省電/開放為首要目標 6LoWPAN各層設計皆具巧思

顯而易見,6LoWPAN大幅改變物聯網面貌,過去ZigBee、藍牙及其他專利系統得透過複雜的應用層閘道,才能連接至網際網路,而6LoWPAN在IP堆疊連結與網路層之間加入調節層,解決這項問題,即可透過IEEE 802.15.4無線連結傳輸IPv6資料包。

6LoWPAN所有通訊系統均依據一組規則或標準,決定資料格式與控制交換,最常見的資訊通訊系統模型為「開放系統互連(OSI)」架構,將通訊拆解為五個基礎層,圖2說明簡化的OSI架構及另外兩種物聯網裝置典型堆疊,一種是使用Wi-Fi堆疊的裝置,另一種是以6LoWPAN為基礎的物聯網裝置。

圖2 OSI架構、Wi-Fi堆疊與6LoWPAN堆疊

實體層將資料轉換為訊號,以無線方式收發。在6LoWPAN的範例中,採用IEEE 802.15.4,這項標準除完整的2006版本外,還有e與g兩項重要的修正版,其中,IEEE 802.15.4e為媒體存取層(MAC)修正版,改善項目包括分時頻道跳動(TSCH)與定時訊號採樣(CSL),藉以降低用電量,也讓介面更加健全;IEEE 802.15.4g則為實體層修正版,提供額外的無線頻段範圍,即便在Sub-GHz頻段中,也能全球通用。

資料連結層偵測與訂正實體層收發時可能出現的錯誤,為直接相連的節點提供可靠連結,資料連結層內含MAC,提供媒體存取,使用載波檢測多路存取/碰撞避免(CSMA-CA)等功能,無線網路會先確認沒有其他傳輸作業,才發送資料。資料連結層亦可處理資料框架,在6LoWPAN的範例中,MAC採用IEEE 802.15.4標準。6LoWPAN調節層也位於資料連結層內,提供IPv6至IEEE 802.15.4相關調節。

網路層在資料需要多次跳躍時,負責配予位址,並導引資料在網路間的傳輸。IP便是一項網路協定,為所有裝置提供IP位址,讓封包能夠在裝置之間傳輸。

傳輸層在終端裝置上的各種應用之間溝通,有了傳輸層之後,裝置內各個應用均可擁有自己的通訊通道。TCP為網際網路上的主流傳輸協定,不過TCP屬連接式協定(包括封包排序),額外負擔龐大,未必適合需要超低用電量的裝置;UDP則為額外負擔較低的無連接式協定,較適合此類裝置。傳輸層安全協議(TLS)使用以UDP為基礎的TCP與DTLS,即為安全傳輸層範例。

應用層負責資料格式,也確保資料以最適合應用的結構傳輸。網際網路上最常見的應用層便是使用TCP的HTTP,HTTP使用文字程式語言XML,額外負擔龐大,故在許多6LoWPAN系統內,並不適合使用HTTP。

不過6LoWPAN與網際網路通訊時,HTTP還是很方便,因此業界開發出其他替代應用層協定,如「受限應用協定(COAP)」,使用UDP及類似HTTP的改良版REST機制。COAP由IETF在RFC 7252內定義,其定義內容包括重傳、可確認與不可確認訊息、支援休眠裝置、區段移轉、訂閱支援、資源探索等,COAP也很容易透過代理伺服器連結至HTTP。

另一項應用層協定「訊息佇列遙測傳輸 (MQTT)」也值得一提,這項開放源碼協定由IBM發明,使用TCP,屬於發表/訂閱型協定,資料並不直接在端點間傳輸,而透過伺服器等中介傳遞訊息。MQTT會設定主題,裝置可發表與訂閱不同主題,裝置所訂閱的主題只要更新,裝置會透過中介得知與接收資料;裝置亦可使用#或*等字元設定主題階層。

MQTT支援多層服務品質(QoS),確保訊息傳遞,中介可能位於IP內部網路或網際網路上,而同一系統裡也可能支援多個中介。目前已有數個公共中介,許多雲端服供應商亦提供MQTT存取。還有許多其他應用層協定也使用TCP/UDP,在此所列項目均為針對低功率物聯網應用的相關協定。

融合IPv6/802.15.4優點 6LoWPAN打造網狀網路

今日網際網路(與許多獨立IP網路)以IPv4為主要基礎,使用32位元位址,故不重複位址上限為4,294,967,296,隨著位址陸續分派給用戶及裝置,閒置位址自然減少。IPv4位址已於2011年2月3日用罄,不過先前已透過網路位址轉換(NAT)途徑大幅延後時程。

由於IPv4有此限制,業界於90年代開發IPv6,並自2006年起投入商用。IPv6涵蓋2128位址空間與3.4×1038不重複位址,即使聯網裝置至2020年將突破500億,仍應足以服務未來數10年的網路發展需求。

因應頻寬增加,IPv6將「最大傳輸單位(MTU)」下限從576位元組提高至1,280位元組,並反映網際網路使用的連結層技術變化與進展。乙太網路是主流連結技術,吞吐量連年成長,Wi-Fi與乙太網路能力相仿,支援類似大小的MTU及超高連結速率,兩者均適用功能強大、電源充沛的裝置。

相對的,IEEE 802.15.4服務的市場不同,主要針對需大量低成本、超低功率裝置的長壽應用,此標準的吞吐量上限為250kbit/s,框架長度上限為127位元組,可確保在損耗射頻環境內,較低的封包與位元錯誤率。此外,IEEE 802.15.4使用兩種位址:16位元短位址與EUI-64長位址,降低檔頭額外負擔,並減少記憶體需求;由於6LoWPAN運作通常會多次跳躍,形成低功率網狀網路,故與乙太網路或Wi-Fi網路大不相同。另一方面,使用6LoWPAN的裝置通常資源有限,只有大約16kB RAM與128kB ROM。

在上述資源限制與6LoWPAN多重跳躍拓撲下,在IEEE 802.15.4網路支援IPv6面臨多項挑戰:

首先,IPv6資料包並非先天適合IEEE 802.15.4網路。由於低吞吐量、緩衝有限、資料包只有IPv6 MTU下限的十分之一,故必須壓縮檔頭,資料分割也勢在必行,例如IEEE 802.15.4連結檔頭可能限制有效負載為81位元組,故IPv6(40位元組)、TCP(20位元組)與UDP(8位元組)檔頭顯得過大。

其次,由於IEEE 802.15.4特點為低功率、低吞吐量、使用射頻為媒介,較容易出現雜訊干擾、連結故障、不對稱連結(A能聽見B,但B無法聽見A),因此網路層必須具備彈性及迅速反應,同時維持低功率與高效能。

最後,6LoWPAN最常見網路拓撲為低功率網狀網路,故連結並非單一廣播區域,這一點非常重要,因為探索芳鄰等IPv6基礎均仰賴這項特質。

針對上述幾項問題,6LoWPAN標準制定組織也逐一做出回應,以下將詳細說明。

調節層換新資料框架壓縮方式

透過MAC與實體層傳送資料時,一定會使用調節層,例如RFC 2464定義乙太網路框架下的IPv6封包壓縮方式,相同的作法也用於IEEE 802.11 Wi-Fi技術。RFC 6282則為6LoWPAN定義在IEEE 802.15.4無線連結下的IPv6資料框架壓縮方式。

網際網路工程任務組(IETF) 6LoWPAN工作組(WG)的焦點在於,改善IEEE 802.15.4等低功率有損網路的IPv6封包傳輸,因此發表RFC 6282,其中訂定:

檔頭壓縮
  自動假設使用共同欄位,藉此壓縮40位元組的IPv6與8位元組的UDP檔頭,檔頭欄位若能從連結層內取出,即可省略。此檔頭壓縮方式是6LoWPAN標準僅支援IPv6,而不支援IPv4的主因。值得注意的是,6LoWPAN系統並未禁止使用TCP,但RFC 6282內並未定義TCP檔頭壓縮。
分割與重組
  IEEE 802.15.4資料連結框架上限為127位元組,並不符合IPv6的MTU(1,280位元組),而IEEE 802.15.4g框架格式並無此限制。
無狀態自動配置
  在無狀態自動配置過程中,位於6LoWPAN網路內的裝置自動產生自己的IPv6位址,而重複位址檢測(DAD)機制可避免兩項裝置取得相同位址。

在6LoWPAN調節層內,重點概念在於運用無狀態或共享脈絡壓縮,省略檔頭欄位,如此可將所有檔頭(調節、網路、傳輸層)壓縮至幾位元組,由於檔頭欄位通常帶有共用數值,因此能夠壓縮。共用數值的產生主要源於頻繁使用IPv6功能的子集合,如UDP、TCP、ICMP;共享脈絡的情況類似,可假設整套6LoWPAN系統的網路前置位元皆相同。

6LoWPAN調節層也移除可從其他層取出的重複資料,如IPv6位址及UDP/IPv6長度欄位,以下將說明RFC 6282三項重要改變帶來的效益:

檔頭壓縮更適合多重跳躍通訊

IP檔頭壓縮的舊有方式取決於狀態,適用於端點間傳輸穩定的點到點連結,因此在連結穩定的靜態網路內很有效;而在多重跳躍通訊之中,每次跳躍都須要壓縮與解壓縮。6LoWPAN系統內常使用的路由協定(如RPL)藉由重找路徑,維持接收器多元性,但因為需要狀態移轉,大幅降低壓縮效能。

6LoWPAN無線網路等動態變化網路中,須多重跳躍與不定期傳輸,則須採用6LoWPAN無狀態與共享脈絡壓縮,不需要任何狀態,路由協定亦可動態選擇路線,不會影響壓縮比例。

圖3說明三種通訊情境:

圖3 6LoWPAN IPv6檔頭壓縮範例

同一6LoWPAN網路內部兩項裝置通訊,使用連結本機位址,IPv6檔頭可壓縮至兩位元組。
與6LoWPAN網路外部裝置通訊,已知外部網路的前置位元,IPv6檔頭可壓縮至12位元組。
與前一項相似,但不知道外部裝置前置位元,IPv6檔頭為20位元組。

本案例最佳情況為第1種,但並不適合傳送應用資料(只能在直接芳鄰之間傳送資料),不過對於路由協定而言,能夠在鄰近裝置交換的資料內壓縮檔頭格外重要。最糟情況為第3種,但其壓縮比例仍達50%;在此案例中,假設介面ID可從裝置的MAC位址取出,如本文先前所述,6LoWPAN標準已納入UDP檔頭壓縮,但未呈現在本案例中。

因應IPv6格式分割與重組封包

為透過IEEE 802.15.4無線連結傳輸IPv6框架,須將IPv6框架切割成許多較小區塊,因此要在檔頭中產生額外資料,藉以確保最終能正確重組封包。當資料封包重組時,也會移除這些額外資訊,將封包恢復至原始IPv6格式。

分割序列依據路由類型而異(稍後討論各種路由技術)。在Mesh-under路由機制中,封包抵達目的地才重組,採用Route-over路由機制的網路則是每次跳躍後重組資料封包。因此在Route-over網路中,每一跳躍都必須擁有足夠資源,儲存所有封包;而在Mesh-under系統中則因為所有封包立即通過,造成龐大網路流量的迅速產生,若在重組時遺漏任何封包,所有封包需求必須重新傳送。

由於分割會縮短裝置電池壽命,應盡可能避免,因此最重要的是維持低負載(包括選擇最適合的應用級協定),並善用檔頭壓縮。

檔頭堆疊增添應用彈性

6LoWPAN使用堆疊檔頭,也和IPv6相似採用延伸檔頭,6LoWPAN檔頭決定各個子檔頭的能力,子檔頭共分三種:網狀位址、分割與檔頭壓縮,網狀位址支援第二層(資料連結)傳送,分割則支援IPv6 MTU傳輸。定義檔頭格式時,使用每一檔頭最初的檔頭類型欄位(圖4)。

圖4 6LoWPAN堆疊檔頭範例

檔頭堆疊很容易分析,亦可視需要移除子檔頭,封包若能容納在單一IEEE 802.15.4框架中,亦可省略分割檔頭;若傳送資料過程只有一次跳躍,則不須使用網狀檔頭,若負載大於單一IEEE 802.15.4框架,則須使用分割檔頭。

分割檔頭共有三個欄位:資料包尺寸、資料包標籤、資料包偏移。資料包尺寸說明未分割的總負載量,資料包標籤註記封包分組,用來組合同一負載的封包,資料包偏移註記封包在未分割負載內的偏移。分割檔頭長度在第一檔頭為四位元組,所有後續檔頭為五位元組。

網狀位址檔頭用於傳送6LoWPAN網路內多重跳躍封包,其中包含三個欄位:跳躍限制、來源位址、目的位址,跳躍限制欄位能限制傳送的跳躍次數,數值隨著每次跳躍減少,歸零後,封包就會停住;來源與目的位址欄記錄IP端點,兩者均為IEEE 802.15.4位址,並依據標準,可能是短位址或延伸位址。網狀位址檔頭長度依位址模式而異,介於5位元組至17位元組之間。

兩類6LoWPAN路由各擅勝場

路由意指在裝置間傳送資料封包的能力,有時可能涉及多次跳躍。路由機制依據使用層不同,可分為Mesh-under與Route-over兩種(圖5),Mesh-under運用第二層(連結層)位址(IEEE 802.15.4 MAC或短位址)傳送資料封包,Route-over則使用第三層(網路層)位址(IP位址)。

圖5 Mesh-under與Route-over封包轉發架構
在Mesh-under系統中,資料路由相當透明,故一般認為Mesh-under網路為IP子網路。此類系統中,邊緣路由器是唯一IP路由器,並劃定單一廣播區域,以確保與更高層的IPv6協定相容,如DAD。這些訊息必須發送至網路內所有裝置,故網路負載高,下行網路最適合小型區域網路。

如前所述,Route-over網路的路由取道IP位址,故網路內每次跳躍都代表一個IP路由器,因為每個路由器都必須落實DAD等一般IP路由器支援的所有功能,IP路由為較大型、功能較強、較具彈性的網路奠定基礎。今日在採用Route-over的6LoWPAN網路中,最常使用的路由協定為RPL,IETF在RFC 6550內定義這項內容。

相較於Mesh-under路由機制,Route-over路由機制的優點,在於不須經過任何改變即可沿用今日標準TCP/IP堆疊內多數協定。RFC 6550明定低功率有損網路(RPL)的IPv6路由協定,在6LoWPAN網路內,支援從裝置至中央控制點(如網際網路伺服器)的多點對點流量,以及從中央控制點至裝置的點對多點流量。

RPL雖然也支援點到點流量,但因為常得經過邊緣路由器,故並非最佳選項。RPL支援兩種路由模式:儲存模式與非儲存模式。在儲存模式中,6LoWPAN網路內所有路由器裝置都具備路由表與芳鄰表,路由表可用來查詢各項路線,芳鄰表則追蹤節點直接芳鄰。

在非儲存模式中,只有邊緣路由器具備路由表,故採用來源路由,代表封包內含所有抵達目的地所需的完整路徑(或跳躍)資訊;例如在同一6LoWPAN網路的裝置間傳送資料時,資料先從來源裝置送往邊緣路由器,邊緣路由器再搜尋路由表,並將前往目的地的完整路徑資訊加入封包。儲存模式對扮演路由器的裝置要求較高(須擁有儲存路由表及芳鄰表的資源),而在非儲存模式中,封包傳輸過程的跳躍次數愈多,額外負擔愈大。

強化裝置互連設計 IPv6支援自動指派/芳鄰探索

自動指派意即自動生成裝置的IPv6位址,這項流程在IPv4和IPv6之間有別,後者允許裝置自動生成IPv6位址,不需與DHCP伺服器等外部裝置互動,取得位址時,主機可透過芳鄰探索協定(NDP)溝通,但RPL也包括許多NDP功能,因此也適用上述流程,其中包括四種訊息類型:

路由請求(RS)
路由公告(RA)
芳鄰請求(NS)
芳鄰公告(NA)

IPv6芳鄰探索功能方便裝置探索芳鄰、維持可達性資訊、指派預設路徑,以及傳播指派參數等。RS訊息內包括網路的IPv6前置位元,網路內所有路由器會定期發送這些RS訊息。某一主機若希望參與6LoWPAN網路,主機可自行賦予連結本機單播位址(FE80::IID),再以NS訊息將此位址傳送至子網路內所有參與者,確認位址是否已使用;如果在一定時間內,未接收到任何芳鄰公告訊息,則認定位址無人使用,這套流程稱為重複位址檢測。

為取得正確網路前置位元,主機會發送RS訊息至路由器;使用這四種訊息後,主機就能獲得全球獨一無二的IPv6位址。

因為使用來源位址自動指派功能,每一主機均可運用IEEE 802.15.4 EUI-64位址、16位元短位址、或同時使用兩者,產生連結本機IPv6位址,在Mesh-under模式中,連結本機範圍涵蓋整個6LoWPAN網路,甚至包括多重跳躍,且單一連結本機位址就足夠處理6LoWPAN內部通訊,只有在與6LoWPAN網路外通訊時,才需要IPv6位址。在Route-over模式中,單一連結本機位址足以處理無線範圍內節點通訊,但需要可路由位址,才能與多次跳躍外的裝置溝通。

若要取得單播位址,最有效率的方式是自本地IEEE EUI-64位址取得。6LoWPAN因為結合連結、調節與IP檔頭,故可省去位址解析需求,因此縮小檔頭。同樣的,自動指派功能應在介面位址內使用共同前置位元,讓6LoWPAN可省略前置位元,6LoWPAN也能使用短連結位址取得IPv6位址,進而縮短檔頭。

結合AES-128加密機制 6LoWPAN提升網路安全性

安全性對物聯網系統至關重要,也總是一大難題,由於物聯網節點眾多,許多節點的功能也有限,為外部攻擊者提供更多可趁之機。此外,一般物聯網系統內流動的資料也不僅只是「資料」,有些還可用來開啟住家大門,或是遠端開關警報裝置,故潛在危險更高。

基於以上因素,物聯網系統需要頂尖安全方案,6LoWPAN運用IEEE 802.15.4的強大AES-128連結層安全功能,由連結層提供連結認證與加密;此外,傳輸層安全(TLS)機制也很適合6LoWPAN系統,RFC 5246所定義的TLS採用TCP,在有限環境與系統中,若選擇UDP做為傳輸層協定,RFC 6347(資料包傳輸層安全性協議(DTLS))可確保傳輸層安全。

不過若要採行TLS/DTLS,裝置本身必須擁有硬體加密引擎等必要資源,才能使用先進密碼組等功能。

新興標準組織力推互通性認證

互通性幫助來自不同製造商的裝置交換資料,許多聯盟與組織均明定規格、測試程序與互通性測試,確保通訊堆疊各層間的互作用性。有些標準定義OSI架構內其中一兩層的互通性,有些則涵蓋整套完整系統。

IEEE發表標準規格,著重於通訊與無線工程,並不提供互通性測試或認證方案,IEEE公告的項目中,802.3為今日多數電腦採用的乙太網路規格,802.11提供普遍的Wi-Fi規格基礎,802.15.4定義ZigBee及6LoWPAN等使用的無線個人區域網路,802.15.4定義實體層與MAC。

IETF為開放標準組織,負責今日網際網路上許多標準,最知名的便是其TCP/IP系列。如本文所述,IETF標準透過「徵求修正意見書(RFC)」發布,可自由在www.ietf.org網站下載,較常見的項目包括:定義HTTP/1.1的RFD 2616,與定義IPv4的RFC 791。與IEEE相同,IETF亦不提供認證方案,故產品即便符合這些標準,亦無法獲得認證。

有些組織與聯盟在採用IEEE、IETF或其他單位的標準後,建立由上而下的認證方案,確保產品互作用性無虞。部分組織投入6LoWPAN互作用性項目,例如2014年7月才成立的Thread Group,著重於定義智慧家庭系統中,包括傳輸層(OSI模型)在內的各環節,並提供認證方案。「開放互連聯盟(Open Interconnect Consortium)」則定義共同通訊架構,維護裝置間資訊流動的無線連接與智慧管理。其他如Wi-SUN、IPSO、ZigBee IP等單位,同樣在其系統內納入6LoWPAN。

6LoWPAN在市場上尚屬新穎,格外適合如具備感測器與致動器的家庭自動化系統、路燈監控、居家照明、智慧量表、聯網裝置的一般物聯網應用等部分市場。

今日系統同時運用2.4GHz及Sub-GHz,並以IEEE 802.15.4優點為基礎,包括支援大型網狀網路拓撲、通訊功能健全、極低用電量等。如再加上過去30餘年發展的各項IP通訊應用,便能輕易了解由於6LoWPAN具備眾多優點,如開放標準、使用壽命長、學習門檻低(多數開發人員已熟知IP)、網際網路透明整合,自然適合推進物聯網市場快速成長。

(本文作者任職於德州儀器)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!