鐵 玲, 任海波
(1.成都大學 信息科學與工程學院, 四川 成都 610106;2.成都世紀華寧科技有限公司, 四川 成都 610041)
基于Contiki的無線傳感器網絡的6LoWPAN子網和互聯網互聯研究
鐵 玲1, 任海波2
(1.成都大學 信息科學與工程學院, 四川 成都 610106;2.成都世紀華寧科技有限公司, 四川 成都 610041)
無線傳感器網絡是物聯網的重要組成部分,主要通過傳感器感受外界環境,同時將測量參數通過無線媒介傳遞給后臺服務器,并且傳感器節點之間可以組網完成數據路由功能.傳統的IP協議棧并不適合資源和能量受限的無線傳感器節點,6LoWPAN技術主要完成IPv6互聯網與無線傳感器網絡之間協議和數據的轉換.通過在傳感器節點和嵌入式網關中間引入Contiki操作系統以及合適的IPv6協議棧可以很好地實現無線傳感器網絡和Internet的互聯.實現了基于Contiki的CC2530網關節點的uIP協議棧,并設計了UDP通信協議,針對設計方案搭建合理的測試環境,并采用PING命令進行了連通性測試實驗.
6LoWPAN;IPv6;Internet;聯接
6LoWPAN技術主要針對在無線傳感器網絡(wireless sensor network,WSN)上提供IPv6協議,IETF工作組的RFC4944標準[1]對IPv6分組如何在無線傳感器網絡上被封裝和轉發進行了詳細說明.此外,Contiki是一種在無線傳感器網絡上開發的開源操作系統[2],在此之上實現了uIP(micro-IP) and lwIP TCP/IP協議棧,每個節點提供IPv6連接,從而實現無線傳感器網絡和IPv6互聯網之間全IP的互聯互通[3].本研究基于Contiki,實現一個6LoWPAN的網關,完成IPv6協議棧和6LoWPAN協議棧的轉換,使得6LoWPAN的無線傳感器節點和IP網絡的主機能相互訪問.
基于6LoWPAN的無線傳感器網絡主要由IPv6的無線傳感器節點、6LoWPAN網關、IPv6網絡和節點組成,其網絡體系結構如圖1所示[4].
無線傳感器節點支持Contiki的uIP[5]協議,其網絡的協議棧如圖2所示.6LoWPAN適配層是IPv6網絡和IEEE 802.15.4 MAC層間的一個中間層,其向

圖1 6LoWPAN網絡體系結構
上提供IPv6對IEEE 802.15.4媒介訪問支持,向下則控制網絡構建、拓撲及MAC層路由.6LoWPAN適配層的基本功能包括鏈路層的分片和重組、頭部壓縮、組播支持、網絡拓撲構建和地址分配、IPv6報文的轉發.

圖2 6LoWPAN協議棧
Contiki[6]是一個適用于有內存的嵌入式系統的開源、高可移植并支持網絡的多任務操作系統,其系統架構如圖3所示,包括一個多任務核心、TCP/IP堆棧、程序集以及低能耗的無線通信堆棧.Contiki可以在每個進程內選擇是否支持先占式多線程,進程間通信通過事件利用消息來實現.Contiki還包括一個可選的GUI子系統,可以提供對本地終端、基于VNC的網絡化虛擬顯示或者Telnet的圖形化支持.

圖3 Contiki的系統架構示意圖
uIP的TCP/IP協議棧是為能夠在對內存具有嚴格要求的智能體和其他網絡嵌入式設備運行而設計的.本設計中,uIP協議棧[7]主要有2個任務:傳感器的數據包通過uip封裝成IP報文,然后放在緩存區里,適配層通過對其報文的頭部壓縮和分片,在通過加入相應的mesh頭或分片來構造6LoWPAN數據包,最后發送出去;處理由底層驅動收到的數據包.數據的接收過程正好相反.協議實現的構架圖如圖4所示.

圖4 uIP協議
本設計主要采用應用UDP[8]來實現數據的轉發.通過timeout-handler()函數來觸發定時器,然后調用uip-udp-packet-send()函數來實現發送.該函數通過調用網絡層驅動sicslowpan.c文件中的sicslowpan-init(void)來啟動MAC層的輸出,最后將數據發送出去.應用層程序通過uip-udp-new()函數建立一個新的UDP連接,動態分配一個未使用的本地端口號,可以在使用uip-udp-new后調用uip-udp-bind()函數來選擇使用其他端口號[9].具體為:
uip-ipaddr-t addr;
struct uip-udp-conn*c;
uip-ipaddr(&addr,192,168,2,1);
c=uip-udp-new(&addr,UIP-HTONS(12345));
if(c!=NULL)
{uip-udp-bind(c,UIP-HTONS(12344));
}
struct uip-udp-conn*uip-udp-new
(
const uip-ipaddr-t*ripaddr,
uint16-t rport
);
本設計主要實現了LJ601[10]網關,其將6LoWPAN網絡和互聯網互聯在一起,運行有IPv4和IPv6雙棧.此網關有2個口:一個是WAN口,另一個是LAN口.WAN口可以直接連接到互聯網.本設計采用WAN口,所有的6LoWPAN節點都共享這單一的WAN口,其測試平臺的結構如圖5所示.測試中,通過Contiki對節點和網關分配地址:節點IPv6地址為2001::1/64,其網關缺省IPv6地址為2001::1,Window 7 PC IPv6地址為2001::6/64.為了測試其連通性,6LoWPAN傳感器節點使用PING命令,測試結果如圖6所示.
圖5 6LoWPAN測試平臺

圖6 6LoWPAN PING測試結果
本研究設計了一個網關,并采用Contiki操作系統實現6LoWPAN節點和IPv6互聯網的互操作,連通性測試結果表明,外部互聯網可以使用IPv6協議完成和內部無線網絡的全IP連接,這對于實現互聯網及物聯網的互操作和集成有一定的指導意義.
[1]Montenegro G,Kushalnagar N,Hui J,et al.TransmissionofIPv6packetsoverIEEE802.15.4networks,RFC4944[EB/OL].[2015-10-14].http://data tracker.ietf.org/doc/rfc4944.
[2]Dunkels A,?sterlind F,He Zhitao.Anadaptivecommunicationarchitectureforwirelesssensornetworks[C]//Proceedingsofthe5thInternationalConferenceonEmbeddedNetworkedSensorSystem,2007.Sydney,Australia:ACM Press,2007.
[3]Zimmermann Andre,Silva J S,Sobral J B,et al.6GLAD:IPv6globaltolink-layerAddresstranslationfor6LoWPANoverheadreducing[C]//NextGenerationInternetNetwork,2008.Krakow,Poland:IEEE Press,2008.
[4]Hossen M S,Kabir AFM S,Khan R H,et al.Interconnectionbetween802.15.4devicesandIPv6:Implicationsandexitingapproaches[J].Int J Comp Sci Iss,2010,7(1):19-31.
[5]Choi D I,Kim M S,Park C U,et al.Anefficientglobalcommunicationmethodfor6LoWPAN[J].Int J Inf,2012,15(5):1949-1960.
[6]Campos B D S,Rodrigues J J P C,Mendes L D P,et al.DesignandconstructionofwirelesssensornetworkgatewaywithIPv4/IPv6support[J].Wirel Sens Netw,2011,57(4):1-5.
[7]劉嘉宇,高德云.基于Contiki OS的低功耗無線傳感器網絡節點設計[J].計算機與現代化,2015,31(3):122-126.
[8]朱曉榮,李鳳國.基于Contiki的6LoWPAN適配層的研究與實現[J].信息通信技術,2013,7(3):66-70.
[9]張巖.基于Contiki系統的物聯網應用平臺設計與實現[D].哈爾濱:哈爾濱工程大學 2013.
[10]聞志平,李迅,李洪峻.無線傳感器網絡IPv6接入系統的設計與實現[J].計算機工程,2010,36(3):109-111.
Abstract:Wireless sensor network(WSN) is one of the important parts of the Internet of Things,which mainly detects the outside environment through sensors and passes the measurement parameters to the server through wireless medium.The sensor nodes can be connected together to form the data network routing.The traditional IP protocol stack is not suitable for wireless sensor nodes because of its limited resources and energy.6LoWPAN technology is mainly used to complete the conversion between IPv6 Internet and WSN protocol and data.By introducing the Contiki operating system and the appropriate IPv6 protocol stack between the sensor nodes and the embedded gateway,the interconnection between WSN and the Internet can be well implemented.In this paper,the uIP protocol stack of CC2530 gateway based on Contiki is implemented,and the UDP communication protocol is designed.The test environment is set up according to the design scheme,and the connectivity test is carried out by using the PING command.
Keywords:6LoWPAN;IPv6;Internet;connectivity
ResearchonConnectivityBetween6LoWPANSubsetinWirelessSensorNetworkandInternetBasedonContiki
TIELing1,RENHaibo2
(1.School of Information Science and Engineering, Chengdu University, Chengdu 610106,China;2.Shijihuaning Technology Co., Ltd., Chengdu 610041, China)
TP311.52;TN929.532
A
1004-5422(2017)03-0262-03
2017-07-12.
四川省科技廳自然科學基金(2013GZ0016)資助項目.
鐵 玲(1970 — ), 女, 博士, 副教授, 從事物聯網與信息安全研究.