IEEE 802.15.4[1] 是一組低功耗、低速率短距離無線傳輸協議,作為Zigbee WirelessHART、6LoWPAN 與MiWi 等協議的基礎,描述了低速率無線個人局域網的物理層和媒體接入控制協議。其低功耗、低成本的優點使其在無線傳感領域中獲得了廣泛的應用,特別是基于Zigbee 協議[2]的應用已經遍布于工業控制、智能測繪、醫療、家居等各行各業。
Zigbee 協議棧緊湊簡單,制訂了完整的網絡層與應用層協議,并提供豐富的接口與安全管理體系。相對于常見的無線通信標準,Zigbee 具體實現要求很低,只要8 位處理器再配上4 kB ROM 和64 kB RAM 等就可以滿足其最低需要,從而大大降低了芯片成本。但是Zigbee 基本協議及其終端只能實現與Zigbee 終端的交互,無法實現IP 尋址。雖然Zigbee 聯盟最近提出了Zigbee-IP 的概念,但Zigbee 協議棧的獨立性與非開源性質增加了其與傳統IP 網絡及其節點的交互的難度。
隨著物聯網的興起,無線傳感器網絡(WSN)向IPv6 網絡的融合逐漸提上日程,基于IPv6 的低功耗無線個域網(6LoWPAN) [3] 由此應運而生。6LoWPAN 協議主要在IEEE 802.15.4鏈路層之上實現了精簡的IPv6 協議,通過在鏈路層與IP 層間添加適配層實現首部壓縮與數據包的分片重裝,很好地實現了IPv6 網絡與低功耗無線網絡之間的協議適配。目前,IETF 6LoWPAN 工作組已經形成的3個標準文檔,提出了低功耗網絡中運行IP6 協議的假設、問題和目標[4],制訂了6LoWPAN 的功能及報文格式[5],以及基于上下文(Context)的IP 報文頭壓縮(IPHC) 方法[6]。此外,還出臺了6LoWPAN 鄰居發現協議、低功耗有損網絡路由協議(RPL) 等相關標準草稿。基于該標準體系的系統開發已經成功應用于相關產品中,如Sensinode 公司的基于NanoStack 的NanoRouter 產品和NanoService 產品、TI 公司生產的基于CC-6LoWPAN 的Sub-GHz 6LoWPAN Network Processor產品等。
IETF 核心工作組專為資源能量帶寬受限的網絡( 如6LoWPAN) 設計了輕量級的應用層協議(CoAP)[7],處于數據報協議(UDP) 之上,為應用終端之間提供了一種方法/響應交互模式,支持內置的資源發現(RD)機制以及組播機制,同時包含幾個關鍵Web概念如統一資源標識符(URI) 和內容類型。CoAP 是對超文本傳輸協議(HTTP)的一種簡化,滿足輕量級的同時還便于與HTTP 進行轉化。
綜上所述,無論從物聯網還是WSN 的發展趨勢來看,6LoWPAN 作為一種新興的基于IPv6 的無線傳感網協議,具備更高的應用價值與發展潛力。但從目前的行業應用現狀分析,未來很長一段時間內,Zigbee 仍然會承擔一個很重要的角色。6LoWPAN 的逐步推廣使得兩種網絡及其節點的互通成為必然。本文在原有6LoWPAN 以及Zigbee 標準不變的基礎上,首先分析了異構節點互通問題,并設計了協議轉換、網關功能以及節點交互流程;然后分析了現有的異構節點互通方案,給出了本文設計的異構節點互通場景、系統結構、協議轉換模式以及網關功能;最后對尋址、服務發現等互聯互通關鍵技術進行了分析,并基于此設計了異構節點交互流程。
1、異構網絡協議融合互通的相關研究
6LoWPAN 作為一個將低功耗網絡融合到傳統網絡的協議,與Zigbee協議的互通問題同樣與IPv6 協議密不可分。實現異構網絡協議的融合互通一般采用在網絡層進行協議轉換,因此Zigbee 協議與IPv6 協議的轉換過程必不可少。目前Zigbee 與IPv6融合的技術相對比Zigbee 與6LoWPAN 融合的技術更全面些。
1.1 Zigbee-6LoWPAN
現有Zigbee 與6LoWAN 互通方案如圖1 所示。目前有關Zigbee 節點與6LoWPAN 節點互通的方案較少,總結起來主要包括雙棧網關與雙棧節點兩種方案。兩種方案的共通點是在Zigbee 的應用層添加了IPv6 協議塊,即將IP 數據包作為應用層數據處理。雙棧節點可實現Zigbee 與6LoWPAN 的功能,但不能同時實現,且對于功耗、資源限制的節點來說不適用。雙棧網關很好地減少了域內節點的資源能源消耗。這兩種方案仍停留在框架層面,均未實現首部壓縮與解壓縮以及數據包的分片與重裝,也未解決關鍵的尋址問題與服務發現問題。由于6LoWPAN 與IPv6 密不可分的關系,上述部分問題可在Zigbee 與IPv6 網絡融合方案中找到相近的解決方案。
圖1 現有Zigbee 與6LoWAN 互通方案
1.2 Zigbee-IPv6
Zigbee 與IPv6 網絡互通的最直接的方式就是在Zigbee 網絡層與應用層之間添加IPv6/UDP 層,此時所有的Zigbee 節點均被分配了一個IPv6 地址。當網關(Zigbee 協調器) 處收到IP網絡數據包時,將其封裝成Zigbee 網絡層并轉發至Zigbee 網絡中。當網關收到Zigbee 數據包時,則將其解封裝并利用IPv6 載荷繼續傳輸。由于Zigbee/ 802.15.4 中的數據為異步通信方式,所以一般采用UDP 協議傳輸數據。這種方式最大的問題在于數據包大小,也就是首部壓縮與數據分片的問題。
Sakane S 等人設計了一種基于地址轉換的Zigbee 節點與IPv6 節點的交互機制[8]。通過雙棧網關實現地址轉換。這種方式解決了Zigbee 節點與IPv6 節點的地址統一問題,但是打破了Zigbee 端到端的信息安全等特征,且沒有解決Zigbee 網絡中最重要的服務發現功能。
Reen-Cheng Wang 等人對上述基于NAT 的交互方式進行了改進,提出了一套完整的Zigbee 節點與IPv6 節點交互機制。IPv6 over Zigbee 交互機制[9]如圖2 所示。雙棧網關不僅實現了Zigbee 地址與IPv6 地址之間的轉換,也實現了Zigbee 服務發現功能與IP 網絡的簡單服務發現協議(SSDP)的轉換。Zigbee-IPv6 協議棧如圖3 所示。協議轉換是在雙棧網關的網絡層進行的,保證了應用層數據傳輸的加密機制。為了防止廣播風暴,該機制對每個Zigbee 域設定為一個多播組,更好地支持了低功耗網絡與IP 網絡的融合。但此方案依然沒有解決數據包分片的問題。上述關于Zigbee與IPv6 的融合方案,網絡地址轉換、服務發現功能轉換等機制對6LoWPAN 與IP 網絡以及Zigbee 網絡的融合有很好的借鑒作用。
圖2 IPv6 over Zigbee 交互機制
圖3 Zigbee-IPv6 協議棧
2、6LoWPAN-IPv6-Zigbee系統架構
圖4 所示為本文所實現的6LoWPAN-IPv6-Zigbee 架構中異構節點互通的場景。6LoWPAN 節點與Zigbee 節點處于同一混合域中,通過同一個功能復雜的邊界網關實現域內異構節點間的互通,并可接入IP 網絡實現與其他節點互通。
圖4 異構節點通信應用場景
2.1 協議轉換模式
圖5 所示為在圖4 所示的應用場景下網關中的協議轉換圖。同一域內的Zigbee 節點與6LoWPAN 節點之間的交互主要通過網關中Zigbee 協議棧與6LoWPAN 協議棧之間的轉發實現。此外,在邊界網關中同樣設置IPv6 協議棧,以便域內節點與域外的IPv6 節點或者其他域節點進行通信。在處理服務發現協議的組播消息時網關也需要進行上層協議解析并且可以在不同的服務發現協議間進行轉換。
圖5 協議轉換模式
2.2 網關功能描述
邊界網關是Zigbee 協調器與6LoWPAN 邊界路由器功能的結合,同時還需完成Zigbee 協調器與6LoWPAN 邊界路由的交互功能。
網關功能主要有:
(1) 基本協議解析功能,包括Zigbee 協議、6LoWPAN協議以及IPv6 協議棧。
(2) 網絡層協議轉換,主要提供首部轉換模塊,即將Zigbee 協議的網絡層首部與IP 首部進行轉換,必要時可以將Zigbee 的應用支持子層(APS) 首部與傳輸層協議進行轉換。
(3) 地址轉換功能。由于是網絡層轉發,Zigbee 地址需先轉換為IPv6 地址,然后通過6LoWPAN 進行地址壓縮。由于邊界網關同時包含Zigbee協議與6LoWPAN 協議,且兩種協議使用不同的方法分配16 位短地址,因此在邊界網關中地址映射表存在3種鏈路層地址:EUI-64、6LoWPAN16位短地址、Zigbee16 位短地址。
(4)服務發現協議轉換,主要在應用層通過Zigbee 的應用層數據格式與CoAP-HTTP 格式轉換來實現Zigbee 設備對象- 服務發現(ZDO-SD)協議與輕量級的應用層- 資源發現(CoAP-RD)協議的轉換。
3、關鍵技術
3.1 網絡地址轉換
異構網絡協議互通的首要問題是尋址。每個Zigbee 節點需要一個IPv6 地址來與6LoWPAN 節點通信。6LoWPAN-IPv6-Zigbee 地址的轉換過程通常在邊界網關實現。
IEEE 802.15.4 定義的鏈路層地址有兩種:由設備制造商設定的全球唯一的EUI-64 地址以及在個域網(PAN)內動態分配的16 位短地址。由于Zigbee 與6LoWPAN 均是基于IEEE802.15.4 底層協議的,因此這兩種地址在兩種網絡協議中同時存在,但要實現跨協議數據傳輸,則只能采用由EUI-64 生成IPv6 地址的方式。
6LoWPAN 網絡與Zigbee 網絡各自進行域內通信時通常使用16 位短地址,但兩者的生成方式不同。6LoWPAN 邊界路由采用重復地址檢測機制(DAD) 為節點分配短地址,而Zigbee 協調器則采用CSkips 算法為節點分配短地址。因此邊界網關應為需要進行異構通信的節點分配兩種短地址,即每一個EUI-64 地址對應一個6LoWPAN 短地址和一個Zigbee短地址。
由于Zigbee 協議不存在適配層,因此需在其中添加Zigbee 地址與IPv6地址轉換模塊。此外,在邊界網關中需設置一個16 位Zigbee 短地址和16位6LoWPAN 短地址與EUI-64 地址的映射表。邊界網關中的地址映射表如表1 所示。此映射表不僅包含本域內節點的16 位短地址與EUI-64 地址的映射關系,還可能包含域外節點的地址映射表項。例如,Zigbee 協調器需為某個與此域內Zigbee 節點通信的6LoWPAN 節點分配一個16 位短地址,并在映射表中添加此條目,此時6LoWPAN 節點被Zigbee 節點當作同種節點進行通信。
表1 邊界網關中的地址映射表
3.2 報文轉換
由于Zigbee 地址與IPv6 地址轉換的可行,Zigbee 首部與IPv6 首部轉換也可實現,即在Zigbee 協調器或者邊界網關中實現Zigbee 網絡層幀頭與IPv6 首部之間的轉換模塊。上述地址的轉換過程也包含在此報文轉換模塊中。
Zigbee 協議幀中媒體訪問控制(MAC) 幀頭之后包含8 字節網絡層幀頭以及2~10 字節的APS 幀頭,因此不需要像6LoWPAN 協議一樣進行首部的壓縮與解壓縮。這兩種幀頭中除了基本的源、目的地址與端口信息外,還包含路由、安全等信息。因此在Zigbee 與IPv6 首部轉換模塊中,除了對地址進行轉換外,還需進行路由與安全方面的考慮。
6LoWPAN 數據包與Zigbee 數據包均在鏈路層最大傳送單元(MTU)之內,因此兩種節點的通信則不考慮數據包的分片與重組,但6LoWPAN 層實現的首部壓縮與解壓縮必不可少。
3.3 服務發現
在網絡初始化之后,節點通信之前的一個重要過程即服務發現與設備發現。節點在網絡上搜索自己感興趣的服務及其設備與之通信,同時需要向網絡廣播自己的設備信息以及服務功能信息供其他節點查詢。
Zigbee 聯盟在Zigbee應用層中自己設計了一套服務發現與設備發現機制—— 在ZDO 中定義的服務發現(SD)機制。本文在IP 網絡中采用通用即插即用(UPnP)架構及其SSDP 協議。由于UPnP 建立在UDP 協議以及HTTP之上,而6LoWPAN 支持UDP 協議以及簡化的HTTP 協議( 核心工作組的CoAP 協議),因此本文在6LoWPAN 協議應用層上也采用UPnP 架構,服務發現采用CoAP 協議及其RD 機制,實現6LoWPAN 與IPv6 節點及Zigbee 節點的服務與設備發現協議轉換。
圖6 為6LoWPAN、IPv6 及Zigbee節點基于服務發現機制的協議對比。
圖6 服務發現協議對比圖
綜上所述,在服務發現機制上,6LoWPAN-IPv6-Zigbee 系統架構主要在邊界網關上實現基于Zigbee 的ZDO-SD 協議、基于IP 的HTTPU-SSDP 協議以及基于6LoWPAN的CoAP-RD 協議之間的轉換。
3.4 節點交互流程
節點交互過程主要分為3 個階段:網絡初始化階段、服務發現階段以及數據傳輸階段。域內模式節點交互流程如圖7 所示。圖7 主要描述3 個階段中由6LoWPAN 節點發起Zigbee 加入請求情況時6LoWPAN 節點(A)、邊界網關(B)、Zigbee 節點(C) 之間的主要交互流程。
圖7 域內模式節點交互流程
(1)網絡初始化
6LoWPAN 節點與Zigbee 節點共享邊界網關的地址前綴信息以及組播組標識,分別通過6LoWPAN 鄰居發現協議以及Zigbee 網絡發現協議向邊界網關進行地址注冊,邊界網關分別通過重復地址檢測機制以及CSkips 算法為節點分配16 位6LoWAN短地址與Zigbee 短地址。
(2)服務發現
節點A 向網關B 發起服務發現請求,B 實現RD 協議向SD 協議的轉換,并通過組播消息轉發此請求給Zigbee 節點,提供相應服務的節點C收到請求后向B 回復單播服務確認信息。B 將回復信息經過服務發現協議轉換以及地址轉換后轉發給節點A。
(3)數據傳輸
通過網絡初始化以及服務發現階段的交互,需要通信的兩個節點A與C 完成了異構網絡地址注冊和設備服務信息互通,A 與C 即可順利進行通信。通信時源地址與目的地址的設置如圖7 所示,B 通過地址映射表可實現網絡地址轉換、數據包的轉發等功能。
4、結束語
本文根據對已有關于6LoWPAN與Zigbee 結合方案的分析,在6LoWPAN 基本協議及其應用層協議CoAP 的基礎上,結合相關方案的網絡地址轉換機制以及服務發現功能轉換機制,實現6LoWPAN 網絡與Zigbee 的互聯互通,以解決6LoWPAN與Zigbee 通信所面臨的問題。通過總體協議轉換模塊圖、節點交互流程圖以及對網關協議轉換功能的設計,本文實現了6LoWPAN-IPv6-Zigbee 總體框架。
本文充分考慮了6LoWPAN 協議與Zigbee 協議特征,在保留原有協議基本不變的基礎上,通過在網關中添加部分轉換模塊來實現6LoWPAN 與Zigbee 協議的互通,提出了新的通信模式以及功能框架,具有一定的創新性與普適性,為更深入地研究6LoWPAN 網絡與異構網絡融合奠定了基礎。
6LoWPAN-IPv6-Zigbee 提出了一些框架性的功能模塊以及節點交互流程,但是未對其進行細化,因此在遇到具體應用時還需進一步拓展。
5、參考文獻
[1] IEEE 802.15.4-2006. IEEE Standard for information technology -Telecommunications and information exchange between systems - Local and metropolitan area networks specific requirements, Part 15.4: Wireless Medium access control (MAC) and physical layer (PHY) specifications for low-rate wireless personal area networks (LR-WPANs) [S]. 2006.
[2] ZigBee Specification. Version 1.0 [R]. ZigBee Alliance, 2004.
[3] SHELBY Z, BORMANN C. 6LoWPAN: The wireless embedded Internet [M]. New York, NY, USA: John Wiley & Sons Ltd, 2009.
[4] KUSHALNAGAR N, MONTENEGRO G, SCHUMACHER C. IPv6 over low-power wireless personal area networks (6LoWPANs): Overview, assumptions, problem statement, and goals [S]. RFC 4919. Fremont, CA, USA: IETF, 2007.
[5] MONTENEGRO G, KUSHALNAGAR N, HUI J, et al. Transmission of IPv6 packets over IEEE 802.15.4 networks [S]. RFC 4944. Fremont, CA, USA: IETF, 2007.
[6] HUI J, THUBERT P. Compression format for IPv6 data grams over IEEE 802.15.4-based networks [S]. RFC 6282. Fremont, CA, USA: IETF, 2011.
[7] SHELBY Z, HARTKE K, BORMANN C, et al. Constrained application protocol (CoAP) [S]. IETF Internet Draft draft-ietf-core-coap-08. 2011.
[8] SAKANE, S, ISHII Y, TOBA K, et al. A translation method between 802.15.4 nodes and IPv6 nodes [C]//Proceedings of the International Symposium on Applications and the Internet Workshops (SAINT’06), Jan 23-27, 2006, Phoenix, AZ, USA. Los Alamitos, CA, USA: IEEE Computer Society, 2006:34-37.
[9] WANG R C, CHANG R S, CHAO H C. Internetworking between ZigBee/802.15.4 and IPv6/802.3 network [R]. Taipei, China: NICI IPv6 Steering Committee, 2007.