陳開鋒, 陳 明, 馮國富
(上海海洋大學 信息學院,上海 201306)
基于NAT64的6LoWPAN邊緣路由器設計*
陳開鋒, 陳 明, 馮國富
(上海海洋大學 信息學院,上海 201306)
針對目前基于6LoWPAN邊緣路由器只適用與IPv6設備互聯、網絡報文傳輸復雜繁瑣、邊緣路由器映射表復雜且開銷大等問題,引入IEEE 802.15.4地址概念對6LoWPAN網絡內報文交互方式與數據包格式進行優化,提出一種6LoWPAN與IPv4協議轉換機制和邊緣路由器地址映射轉換方法,設計出適合在8位單片機上運行的輕量級微系統,最后用CoAP協議來訪問節點數據,驗證系統,實現6LoWPAN網絡與IPv4,IPv6網絡之間的通信。該方法實現了6LoWPAN與IPv4網絡互聯通信,保留6LoWAPN與IPv6網絡通信的功能,同時提高了6LoWPAN內網絡的吞吐量,降低邊緣路由器維護地址映射表的開銷,提高了邊緣路由器效率,有效降低6LoWPAN網絡傳輸數據時的功耗,提高節點生存時間。
6LoWPAN邊緣路由器; 協議轉換; 地址映射; 低功耗; NAT64
隨著物聯網技術的興起和發展,作為下一代互聯網協議的IPv6協議由于自身特點與物聯網未來發展趨勢相符,所以與物聯網技術漸漸密不可分[1]。在IPv6發展的初期階段,仍將處于并長期處于一個IPv4與IPv6共存的年代[2],所以目前6LoWPAN網絡要與(IPv4)Internet網絡互聯,應采用相應的邊緣路由器進行協議間的轉換[3]。在目前階段,對6LoWPAN網絡的優化和研究實現其與IPv4公網通信的邊緣路由器就顯得尤為迫切,意義深遠。
目前對6LoWPAN網絡的研究,大多數研究集中在6LoWPAN與IPv6網絡互聯方面[4],對6LoWPAN網絡與IPv4網絡互聯的研究相對較少,對邊緣路由器和6LoWPAN網絡整體提出優化方案的就更少。在6LoWPAN網絡與IPv4設備互聯方面,目前絕大多數6LoWPAN邊緣路由器需要在Linux環境工作[5,6],或是采用多芯片解決方案[7],不僅功耗較高,而且消耗單片機本就有限的資源,才能實現與IPv4公網通信。目前還沒有適用于8位單片機的協議,而無線傳感器網絡的低功耗要求迫切需要一種能支持8位低功耗單片機的協議或者類似的產品出現[8,9]。
為此,本文主要研究6LoWPAN網絡與IPv4公網通信,同時,保留6LoWAPN與IPv6網絡通信的功能。針對與IPv4網絡通信,提出適合在資源受限的8位單片機上實現的邊緣路由器。
1.1 6LoWPAN網絡總體架構
6LoWPAN整體網絡架構如圖1所示,節點內數據通過6LoWPAN邊緣路由器將數據上傳到互聯網服務器。

圖1 6LoWPAN網絡架構Fig 1 Architecture of 6LoWPAN network
1.2 6LoWPAN網絡報頭壓縮
在本文中,引入以太網 MAC地址概念對6LoWPAN內數據包進行優化,由于48位MAC地址的全球唯一性,通信時可通過MAC地址直接發送數據包,省去了鄰居協議里的地址沖突查詢、地址解析,路由重定向等一系列過程,這樣不僅減小IPv6報頭,增加數據包數據部分長度,提高數據傳輸效率而且在邊緣路由器進行NAT64轉換時,查找映射表更加方便快捷,在進行源地址和目的地址轉換后,可以直接發送,大大提高了處理數據包的效率。
1.3 ICMPv6協議的精簡
ICMPv6消息分為兩類,一類是錯誤消息,一類是信息消息。在WSNs應用中,節點不需要接收錯誤消息,在前期調試過程中,這類消息對開發調試人員有幫助,但對已經應用部署的WSNs內資源受限的節點而言,這是一種資源的浪費。所以,本文只對ICMPv6信息類消息進行傳送。
1.4 NAT64地址轉換設計
地址轉換是指IPv6傳輸地址到IPv4傳輸地址和IPv4傳輸地址到IPv6傳輸地址的映射。
網關接收數據包:邊緣路由器收到數據包時,首先檢查版本號。當接收到IPv4類型的數據包時,提取數據包目的地址和端口,查找端口映射表,若查到,邊緣路由器用NAT64算法對IPv4數據包進行轉換,在映射表根據訪問的端口號記錄IPv4源地址,將數據包發往對應節點。否則丟棄數據包。節點收到路由器發來的數據包后,完成相應動作,交換源MAC和目的MAC,將數據包發往路由器,路由器收到數據包,檢查數據包版本號,確定是IPv6數據包后檢查數據包目的地址,如果是自己,則查找映射表源MAC地址和源端口號對應的IPv4地址,將數據包轉成IPv4格式,發送出;如目的地址不是自己,則直接發出。整個過程如圖2~圖5所示。

圖2 邊緣路由器數據包收發與轉換流程圖Fig 2 Flowchart of edge router data packet tranceiving and converting

圖3 邊緣路由器模型Fig 3 Edge router model

圖4 6LoWPAN節點數據包收發流程Fig 4 Flow chart of 6LoWPAN node data packet transceiving

圖5 節點協議棧模型Fig 5 Node protocol stack model
本實驗硬件平臺基于TI公司的符合IEEE 802.15.4標準的CC2530芯片,軟件基于瑞典計算機學院開發的Contiki系統,并在此基礎上對鄰居發現協議、地址解析協議、地址重復檢測、錯誤消息傳遞、路由重定向等進行優化改進設計。
2.1 邊緣路由器映射表構建
在邊緣路由器中構建如表1所示的數據結構。MAC地址+端口號分別表示IPv6節點的MAC地址與節點對應的UDP和CoAP通信端口。映射端口表示節點相應的UDP或者通信端口在邊緣路由器上的映射端口,為了保證路由器其他服務端口通信正常,映射端口地址池從10 000開始。IP地址為訪問路由器該服務端口的IP地址。在邊緣路由器進行映射前,先進行DHCPv4操作,獲取到邊緣路由器IPv4地址。
表1 邊緣路由器映射表
Tab 1 Edge router mapping table

路由器端口映射如圖6所示。

圖6 路由器端口映射Fig 6 Edge router port mapping
2.2 RTT測試
當IPv4設備與同一地址的IPv6節點通信后,對64字節和128字節的數據包進行了RTT測試,測試結果如表2和表3所示。

表2 64字節數據多次通信RTT測試Tab 2 64 bytes data multiple communication RTT test

表3 128字節數據多次通信RTT測試Tab 3 128 bytes data multiple communication RTT test
測試結果表明:無論在傳輸數據為64字節還是128字節,改進后的6LoWPAN邊緣路由器都比一般的邊緣路由器有這更出色的表現,在數據量增加情況下,改進后的邊緣路由器RTT并沒有明顯提高,而沒有改進的邊緣路由器RTT明顯增加。實驗結果表明:改進后的路由器更適合節點眾多數據傳輸量大的6LoWAPN網絡。
2.3 系統功耗測試
測試了6LoWPAN網絡節點和邊緣路由器在5h內發送不同字節數據所消耗的能量。節點使用2節5號電池進行供電,節點入網后或者收發完數據后即進入休眠狀態,使用萬用表對節點芯片進行測量,測得以下數據:節點休眠時候平均電流為0.92 mA,節點運行過程中平均電流最高為7.32 mA。節點每2 min采集發送一次數據,按理原系統和改進后系統1 h內實測值推算,測試結果如表4和表5所示。

表4 邊緣路由器功耗測試Tab 4 Edge router power consumption test

表5 節點功耗測試Tab 5 Node power consumption test
按此功耗,優化后的節點每日功耗不超過3 mAh,節點用2節1 200 mAh供電時間從原來的15個月提高到26個月,大大提高了無線傳感器網絡生存時間。
本文針對現6LoWPAN邊緣路由器與現IPv4的融合問題,提出了一種基于NAT64的邊緣路由器,簡化映射表,使用48位MAC地址優化6LoWPAN網絡內傳送數據包,實驗結果表明:該邊緣路由器能實現IPv4設備通信,且數據處理能力得到提高,功耗大大降低,具有實用價值。
[1] 李 明.物聯網中輕量級IPv6協議棧的研究[D].南京:南京郵電大學,2014:5-6.
[2] 呂 游.對NAT64的研究及設計實現[D].武漢:武漢郵電科學研究院,2015:2-3.
[3] Kim J H,Hong C S,Shon T S.A lightweight NEMO protocol to support 6LoWPAN[J].Etri Journal,2008,30(5):685-695.
[4] 王中震.IPv4至IPv6過渡技術方案的設計與實施[D].北京:北京郵電大學,2012:7-9.
[5] Geng D,Dai F,LI Xiaolong,et al.Research and implementation of packet scheduling in 6LoWPAN access(IPv4)Internet[J].Chinese Journal of Sensors & Actuators,2013,26(12):1752-1756.
[6] Wang X,Le D,Cheng H,et al.Location-based address configuration for 6LoWPAN wireless sensor networks[J].Wireless Networks,2015,21:1-15.
[7] Wang X,Zhong S.An IPv6 address configuration scheme for wireless sensor networks based on location information[J].Telecommunication Systems,2013,52(1):151-160.
[8] Bagnulo M,Garcia-Martinez A,Van Beijnum I.The NAT64/DNS64 tool suite for IPv6 transition[J].IEEE Communications Magazine,2012,50(7):177-183.
[9] 仲元昌,陳 鋒,李發傳,等.大規模無線傳感器網絡覆蓋優化算法[J].傳感器與微系統,2014,33(11):117-120.
Design of 6LoWPAN edge router based on NAT64*
CHEN Kai-feng, CHEN Ming, FENG Guo-fu
(College of Information Technology,Shanghai Ocean University,Shanghai 201306,China )
In order to solve the problems of current 6LoWPAN edge router only can communication with IPv6 equipment,network data packet transmission complex and the edge router complex mapping table consume valuable resources of single chip micyoco.so,introduce the concept of IEEE 802.15.4 address to optimize the packet format in 6LoWPAN network.The conversion mechanism between 6LoWPAN and IPv4 protocol,and the mapping method of edge router address are proposed.A lightweight system is designed for 8 bit single chip micyoco.CoAP (constrained application protocol) protocol is used to access node data and verify the system to realize the communication between 6LoWPAN network and IPv4 network.This method realizes the interconnection between 6LoWPAN and IPv4,retains the functions of 6LoWAPN and IPv6 network,and improves the throughput of 6LoWPAN,and reduces the overhead of 6LoWPAN network,increase efficiency of edge router,effectively reduce power consumption data transmission,prolong lifetime of node.
IPv6 over low-power wireless personal area networks(6LoWPAN) edge router; protocol conversion; address mapping; low power consumption; NAT64
10.13873/J.1000—9787(2016)07—0094—03
2015—10—21
國家“863”計劃資助項目(2012AA101905);江蘇省科技支撐計劃資助項目(BE2014333)
TP 212.9
A
1000—9787(2016)07—0094—03
陳開鋒(1990 - ),男,江蘇江陰人,碩士研究生,主要研究方向為無線傳感器網絡。