王曉喃,高德民,錢煥延
(1. 常熟理工學院計算機科學與工程學院 江蘇 常熟 215500; 2. 南京理工大學計算機科學與技術學院 南京 210094)
隨著下一代網絡的不斷成熟和發展,無線傳感器網絡(w ireless sensor network, WSN)與下一代網絡實現全IP通信已成為未來發展的必然趨勢[1-2]。
實現WSN與下一代互聯網全IP通信需要解決的關鍵技術之一是WSN的IPv6地址自動配置[1,3]。IPv6地址自動配置可以在無人干預的情況下為每個接口配置具有唯一性的IPv6地址,該特性與WSN自組織、自配置的設計目標一致。但在資源有限的WSN中實施現有的IPv6地址自動配置方式還存在一些問題,如現有的有狀態地址配置方案采用服務器/客戶端的通信方式分配IPv6地址,會帶來大量的控制包開銷;在現有的基于鄰居發現協議的無狀態地址配置方案中,每個被分配的IPv6地址都需要在整個WSN中進行重復地址檢測以確保其唯一性,同樣導致大量的控制包開銷。因此,針對資源有限的WSN,需要建立一種低開銷的IPv6地址自動配置方案。文獻[4]提出了一種分布式的、基于地理位置信息的傳感器網絡地址配置方案,該方案是建立在IPv4基礎之上的。文獻[5]提出利用三原色坐標實現IPv6地址自動配置,該方案的重復地址檢測開銷很小,但擴展性有限,此外,當傳感器節點密度增加時,重復地址檢測的開銷也會隨之大幅度增加。文獻[6]提出采用分布式地址分配表統一管理地址分配,但集中式的管理需要消耗大量的存儲資源,不適合存儲資源有限的無線傳感器網絡使用。文獻[7]提出了針對無狀態IPv6地址自動配置的重復地址檢測方案,但會產生大量的控制包開銷,并不適合網絡資源有限的WSN使用。文獻[8]提出了一種基于查詢機制的重復地址檢測方案,采用泛洪方式進行重復地址檢測,但會導致大量的網絡開銷。文獻[9]對文獻[8]中的重復地址檢測方案進行改進,降低了重復地址檢測的開銷,但延遲時間有所增加,可靠性有所降低。文獻[10]提出了一種分布式動態地址配置協議,在該協議中,每個節點保留一個未分配的IP地址集,新加入網絡的節點從該地址集中分配IP地址,節點離開網絡時需將自己擁有的地址空間重新歸還給未分配的IPv6地址集,周期性地維護地址池以及采用泛洪方式進行地址空間泄露檢測,導致大量的網絡開銷。文獻[11]提出了由匯聚節點為距離自己較近的傳感器節點分配地址的方案,無需進行重復地址檢測,但存在地址過長的缺點,會增加WSN功耗。
基于上述研究成果,本文提出一種無線傳感器網絡IPv6地址自動配置方案,該方案將WSN劃分為多個簇,用哈希函數除留余數法為簇首節點和簇內節點分配IPv6地址,采用線性探測法解決IPv6地址的沖突問題。
本文方案包括6類節點。
全功能節點(full-function device) :具有路由轉發功能及分配IPv6地址功能的傳感器節點;部分功能節點(reduced-function device):不具有路由轉發功能及分配IPv6地址功能的傳感器節點;孤立節點(isolated node):既沒有標記為簇首節點或簇內節點,也沒有標記為IPv6接入網關的全功能節點或部分功能節點;IPv6接入網關節點(IPv6 ingress gateway):用于連接WSN與IPv6網絡的全功能節點,其IPv6地址預先設定,為簇首節點分配IPv6地址;簇首節點(Cluster head node):為本簇簇內節點分配IPv6地址的全功能節點;簇內節點(Cluster member):從本簇簇首節點獲取IPv6地址,不具有分配IPv6功能的部分功能節點。其中,孤立的全功能節點與簇首節點之間及孤立的部分功能節點與簇內節點之間的狀態可互相轉換。
本文方案中,一個WSN被IPv6接入網關劃分為多個PAN(personal area network),一個PAN包含一個IPv6接入網關及多個簇首節點,它們共同構建成一個樹狀結構,該樹狀結構稱作簇樹,其根節點為IPv6接入網關,中間節點及葉子節點為簇首節點。為了使WSN在網絡結構上與IPv6網絡充分融合,一個PAN劃分為多個簇,每個簇包含一個簇首節點與多個簇內節點。孤立的全功能節點通過加入一個簇樹轉換為簇首節點并獲取IPv6地址,孤立的部分功能節點通過加入簇轉換為簇內節點并獲取IPv6地址。
簇樹結構具有如下優點:1) 簇樹與IPv6 Internet的網絡結構充分融合。一個簇相當于IPv6 Internet的一個子網,簇首節點相當于網絡路由器,增強了WSN的可擴展性和魯棒性;2) 簇內節點只與本簇簇首節點進行通信,避免了簇內泛洪;3) 簇首節點的重復地址檢測只在本簇樹進行,即位于不同簇樹的簇首節點的IPv6地址配置過程可同時進行,縮短了IPv6地址配置時間,降低了WSN網絡開銷;4) 簇內節點的重復地址檢測只在本簇內進行,即位于不同簇的簇內節點的IPv6地址配置過程可同時進行,縮短了IPv6地址配置時間,降低了WSN網絡開銷。
根據IPv6地址分層結構及WSN特點,IPv6接入網關/簇首節點/簇內節點采用如下地址格式,如表1所示。

表1 IPv6地址結構
IPv6地址由4部分組成,第一部分為全局路由前綴,一個WSN中所有傳感器節點的IPv6地址的全局路由前綴都相同;第二部分為PAN ID,它唯一地標識一個PAN,一個PAN網絡中所有簇首節點的PAN ID都相同,其值等于PAN中IPv6接入網關的PAN ID;第三部分為簇ID,簇ID唯一地標識一個PAN網絡中的一個簇,一個簇中所有簇內節點的簇ID都相同,其值等于所在簇簇首節點的簇ID;第四部分為簇內節點ID唯一地標識一個簇的簇內節點。本文方案中,IPv6接入網關的IPv6地址的簇ID與簇內節點ID為0,簇首節點的IPv6地址的簇內節點ID為0。
PAN ID由I個比特組成,簇ID由n個比特組成,簇內節點ID由(64-i-n)個比特組成,i和n的值根據實際應用中傳感器節點分布密度及WSN規模大小確定,本文方案考慮一般情況,i取4,n取28。一個WSN中最多可包含42-1(0不分配)個IPv6接入網關,一個IPv6接入網關可供簇首節點分配的IPv6地址空間為228-1(0不分配),一個簇首節點可供本簇簇內節點分配的IPv6地址空間為232-1。
IPv6接入網關廣播包(Adv):IPv6接入網關在本簇樹內定期廣播的控制包,以示自己的存在。
簇首節點廣播包(Adv_C):簇首節點在本簇內定期廣播的控制包,以示自己的存在。
加入簇樹控制包(Join_T):由全功能節點向一個簇樹樹根節點發出的控制包,請求加入該樹并獲取IPv6地址。
加入簇樹應答控制包(Res_T):是簇樹樹根節點對接收到的Join_T控制包的應答控制包,包的負載為分配的IPv6地址。
簇內節點請求地址控制包(Req_A):是簇內節點向本簇簇首節點發送的請求IPv6地址的控制包。
地址請求應答控制包(Res_A):是簇首節點對接收到的Req_A控制包的應答包,包的負載為分配的IPv6地址。
本文方案中,一個IPv6接入網關節點保存一個變量key,作為分配簇ID的哈希函數的自變量,其初始值為1,每分配一個簇ID,其值遞增1。
IPv6接入網關在本簇樹內定期廣播Adv控制包,以示自己的存在,控制包的負載內容為一個距離參數,其值為轉發該控制包的簇首節點距離廣播該包的IPv6接入網關的跳數。
孤立的全功能節點X加入簇樹成為簇首節點并獲取IPv6地址的過程為:1) 節點X在規定時間內可能收到多個簇首節點轉發的Adv包,根據Adv包中的距離參數值,節點X選擇距離參數值最小的簇首節點F作為父節點,并向父節點發送一個請求IPv6地址的Join_T控制包,該包的目的地址為節點F所在簇樹樹根節點G,同時記錄下父節點的IPv6地址及自身的距離參數值;2) 父節點F將此Join_T控制包繼續轉發給其父節點,最終該控制包到達節點F所在樹樹根節點G;3) 節點G采用哈希函數除留余數法為全功能節點X分配一個簇ID,并在本簇樹內廣播該簇ID,如果在規定時間內節點G收到簇樹內具有相同簇ID的簇首節點返回的響應包,節點G采用線性探測法再產生一個簇ID,并在本簇樹內廣播該簇ID,如果在廣播了預定次數之后,節點G仍然沒有收到具有相同簇ID的簇首節點返回的響應包,那么此時節點G獲取了在本簇樹內具有唯一性的簇ID,然后將簇ID與自身的PAN ID及全局路由前綴相結合形成IPv6地址,將IPv6地址封裝成一個Res_T控制包;4) 節點X收到Res_T控制包后,將自己標記為簇首節點,同時將Res_T包中的IPv6地址作為自己的IPv6地址。至此,全功能節點X成功加入簇樹轉換成簇首節點并獲取自己的IPv6地址,如圖1所示。

圖1 簇首節點獲取IPv6地址流程
本文方案中,一個簇首節點保存一個變量key,作為分配簇內節點ID的哈希函數的自變量,其初始值為1,每分配一個簇內節點ID,其值遞增1。
簇首節點在本簇內定期廣播Adv_C控制包,以示自己的存在,控制包的負載內容為key變量值。
孤立的部分功能節點X加入簇轉換為簇內節點并獲取IPv6地址的過程為:1) 節點X在規定時間內可能收到多個簇首節點廣播的Adv_C控制包,根據Adv_C包中的key變量值,節點X選擇加入變量值最小的簇首節點H所在的簇,并向簇首節點H發送一個請求IPv6地址的Join_A控制包,同時記錄下節點H的IPv6地址;2) 節點H收到Join_A包后,采用哈希函數除留余數法為節點X分配一個簇內節點ID,并在本簇內廣播此簇內節點ID。如果在規定時間內節點H收到本簇內具有相同簇內節點ID的簇內節點返回的響應包,節點H采用線性探測法再產生一個簇內節點ID,并在本簇內廣播該簇內節點ID;如果在廣播了預定次數之后,節點H仍然沒有收到本簇內具有相同簇內節點ID的簇內節點返回的響應包,節點H即獲取了在本簇內具有唯一性的簇內節點ID,然后節點H將該簇內節點ID與自己的簇ID、PAN ID及全局路由前綴相結合形成IPv6地址,將IPv6地址封裝成一個Res_A控制包;3) 節點X收到Res_A控制包后,將自己標記為簇內節點,同時將Res_A包中的IPv6地址作為自己的IPv6地址。至此,部分功能節點X成功加入簇轉換成簇內節點并獲取了自己的IPv6地址,如圖2所示。
本文方案通過key變量有效地控制了簇的大小,使每個簇的簇內節點總數趨于均衡,從而降低了地址沖突概率,縮短了IPv6地址的配置延遲時間。

圖2 簇內節點獲取IPv6地址流程
為了評估本文方案的性能,在OPNETModeler仿真平臺上對本文方案、Strong DAD[7]及MANETConf[6]進行仿真,并比較地址配置總開銷及地址配置總延遲時間等性能參數,地址配置總開銷是指WSN中所有節點均具有唯一性地址所需要發送的控制包總數;地址配置總延遲時間是指從網絡初始化到所有節點均具有唯一性地址的時間間隔。
在OPNETModeler仿真平臺上,MAC層協議為IEEE802.15.4。初始狀態時,網絡設置3個IPv6接入網關,全功能節點總數與網絡節點總數的比例為1/10,傳感器節點隨機分布在100 m×100 m的活動區域內,以一定時間間隔逐個開始工作。Strong DAD及本文方案中取m=2,MANETConf及本文方案中取n=5,地址配置總開銷及地址配置總延遲時間的分別性能分析如圖3及圖4所示。

圖3 地址配置總開銷分析圖

圖4 地址配置總延遲時間分析圖
Strong DAD中,當網絡節點數量增加時,節點隨機選取的地址發生沖突的概率也隨之成正比增加,地址配置總開銷及總延遲時間也隨之成冪次增長;MANETConf中,當網絡節點數增加時,發起者掌握的地址分配信息也隨之增加,因此發起者分配的地址發生沖突的概率并不隨網絡節點增加,地址配置總開銷及總延遲時間隨網絡節點總數成正比增長;本文方案的簇首節點總數與網絡節點總數的比例趨于穩定,它隨著網絡節點總數成正比增長,簇內節點總數與網絡節點密度及網絡中簇的總數有關,與網絡節點總數無關,因此,簇首節點的地址配置總開銷隨網絡節點總數成冪次增長,而簇內節點的地址配置總開銷隨網絡節點總數成正比增長。
本文提出一種無線傳感器網絡IPv6地址自動配置方案,并從重復地址檢測開銷、地址配置總開銷及地址配置總延遲時間3個方面將該方案與Strong DAD及MANETConf的性能參數進行了比較分析,分析結果驗證了該方案可以大幅度地降低重復地址檢測開銷及地址配置開銷,減少地址配置延遲時間。
[1] KUSHALNAGAR N, MONTENEGRO G, SCHUMACHER C. 6LoWPAN: overview, assumptions, problem statement,and goals[S/OL]. [2009-11-10]. http://tools.ietf.org/htm l/rfc4919.
[2] MONTENEGRO G, KUSHALNAGAR N, HUI J.Transmission of IPv6 packets over IEEE802.15.4 networks[S/OL]. [2009-11-10]. http://tools.ietf.org/htm l/rfc.4944.
[3] AKKAYA K, YOUNIS M. A survey on routing protocols for w ireless sensor networks[J]. Ad hoc Networks, 2005, 3(3):325–349.
[4] DUNKELS A, ALONSO J, VOIGT T. Making TCP/IP viable for w ireless sensor networks[C]//First European Workshop on Wireless Sensor Networks. Sweden: Swedish Institute of Computer Science, 2004.
[5] SHIN H, TLIPOV E, HOJUNG C. IPv6 lightweight stateless address atuoconfiguration for 6LoWPAN using color coordinators[C]//Proceedings of the 2009 IEEE International Conference on Pervasive Computing and Communications.Washington: IEEE Computer Society, 2009.
[6] NESARGI S, PRAKASH R. MANETconf: configuration of hosts in a mobile Ad hoc network[C]//Proc IEEE INFOCOM 2002. [S.l.]: IEEE, 2002: 1059-1068.
[7] GüNES M, REIBEL J. An IP address configuration algorithm for zeroconf mobile multihop Ad hoc networks[C]//Proc Int’l Wksp Broadband Wireless Ad hoc Networks and Services. Sophia Antipolis, France: [s.n.],2002.
[8] PERKINS C, MALINEN J T, WAKIKAWA R, et al. IP address autoconfiguration for Ad hoc networks[S/OL].[2009-11-10]. http://tools.ietf.org/htm l/draft-perkin s-manetautoconf-01.
[9] WENIGER K. PACMAN: passive autoconfiguration for mobile Ad hoc networks[J]. Wireless Ad hoc Networks,2005, 23: 507-19.
[10] MANSI R T, RAVI P. A distributed protocol for dynamic address assignment inmobile Ad hoc networks[J]. IEEE Transactions on Mobile Computing, 2006, 5(1): 4-19.
[11] JOBIN J, KRISHNAMURTHY S V, TRIPATHI S K. A scheme for the assignment of unique addressesto support self-organization in w ireless sensor networks[C]//Vehicular Technology Conference. [S.l.]: [s.n.], 2004.
[12] KIM S, CHUNG J. Message complexity analysis of mobile Ad hoc network address auto-configuration protocols[J].IEEE Transactions on Mobile Computing, 2008, 7(3):356-371.
編 輯 稅 紅