莊旭菲 高睿鵬 劉志強(qiáng)
摘 ? 要:針對軟件定義的無線傳感器網(wǎng)絡(luò)的節(jié)能問題,文章提出一種將元胞自動機(jī)用于分布式SD-WSN路由設(shè)計的節(jié)能機(jī)制。該機(jī)制在分布式控制器中設(shè)置CA處理模塊,節(jié)點(diǎn)自組織形成以分布式控制器為中心的二維元胞自動機(jī)區(qū)域??刂破鞑捎霉?jié)點(diǎn)的智能鄰居列表計算節(jié)點(diǎn)的CA狀態(tài),節(jié)點(diǎn)根據(jù)控制器發(fā)布的CA指令匹配自身流表,切換工作狀態(tài)進(jìn)行休眠/喚醒以實(shí)現(xiàn)節(jié)能。仿真實(shí)驗(yàn)結(jié)果驗(yàn)證了該機(jī)制能降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)生存周期。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);軟件定義網(wǎng)絡(luò);元胞自動機(jī);節(jié)能
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)節(jié)點(diǎn)能量有限,如何節(jié)約節(jié)點(diǎn)的能量消耗、延長WSN的網(wǎng)絡(luò)生存周期是WSN研究的熱點(diǎn)之一。軟件定義的無線傳感器網(wǎng)絡(luò)(Software-Defined Wireless Sensor Network,SD-WSN)是將軟件定義網(wǎng)絡(luò)(Software-Defined Network,SDN)應(yīng)用到WSN中形成的一種新興網(wǎng)絡(luò)[1],SD-WSN將數(shù)據(jù)轉(zhuǎn)發(fā)與路由控制分離,由控制器控制全局網(wǎng)絡(luò)路由,傳感器節(jié)點(diǎn)不再承擔(dān)路由計算任務(wù),可以節(jié)約一些能量。
近年來,研究未能將元胞自動機(jī)技術(shù)應(yīng)用于SD-WSN中,缺少將元胞自動機(jī)與SD-WSN網(wǎng)絡(luò)協(xié)議相融合的實(shí)例。由于SD-WSN在單一的全局控制器中設(shè)置元胞自動機(jī)(Cellular Automata,CA)處理模塊會增加網(wǎng)絡(luò)通信開銷,所以需要對SD-WSN中的元胞自動機(jī)處理機(jī)制及路由協(xié)議做進(jìn)一步的研究。
1 ? ?WSN的元胞自動機(jī)模擬
一個基本的二維元胞自動機(jī)是一個規(guī)則的元胞網(wǎng)格,每個元胞都有有限的狀態(tài)數(shù),根據(jù)一個局部的、相同的交互規(guī)則更新,下一時間的元胞狀態(tài)由其自身的當(dāng)前狀態(tài)和周圍元胞的當(dāng)前狀態(tài)決定[2]。
2 ? ?基于多分區(qū)元胞自動機(jī)的SD-WSN路由設(shè)計
2.1 ?CA區(qū)域構(gòu)建
本文將多個分區(qū)控制器應(yīng)用到SD-WSN中,形成基于多分區(qū)元胞自動機(jī)的分布式SD-WSN。系統(tǒng)拓?fù)淙鐖D1所示,在數(shù)據(jù)平面根據(jù)節(jié)點(diǎn)的傳感器特性(如采集溫度)將節(jié)點(diǎn)劃分為多個CA區(qū)域,每個元胞自動機(jī)區(qū)域由一個處于控制平面的分區(qū)控制器管理,負(fù)責(zé)本區(qū)域內(nèi)的路由計算及CA處理。分區(qū)控制器上層是全局控制器,負(fù)責(zé)整個網(wǎng)絡(luò),具有全局網(wǎng)絡(luò)視圖,擁有控制器的SDN功能。
WSN啟動后,CA區(qū)域內(nèi)的節(jié)點(diǎn)周期性通過拓?fù)浒l(fā)現(xiàn)(Topology Discovery,TD)層向本分區(qū)控制器發(fā)送TD數(shù)據(jù)包,分區(qū)控制器在接收到TD數(shù)據(jù)包后生成智能鄰居列表,此列表包含相鄰節(jié)點(diǎn)的地址、RSSI及其節(jié)點(diǎn)能量。分區(qū)控制器在拓?fù)涔芾恚═opology Management,TM)層構(gòu)建網(wǎng)絡(luò)的本地拓?fù)湟晥D,然后再進(jìn)行路由計算。本文需將CA處理模塊設(shè)置在分區(qū)控制器中,分區(qū)控制器根據(jù)智能鄰居列表生成節(jié)點(diǎn)CA信息,包括節(jié)點(diǎn)和鄰居節(jié)點(diǎn)ID、剩余能量及當(dāng)前CA狀態(tài),之后通過CA狀態(tài)轉(zhuǎn)移規(guī)則計算節(jié)點(diǎn)下一時刻CA狀態(tài),將節(jié)點(diǎn)CA休眠/喚醒指令下發(fā)到CA區(qū)域內(nèi)的節(jié)點(diǎn)中,節(jié)點(diǎn)通過分區(qū)控制器指定的CA狀態(tài)進(jìn)行休眠或喚醒。
2.2 ?基于CA的流表設(shè)計
CA區(qū)域內(nèi)的節(jié)點(diǎn)是通過分區(qū)控制器下發(fā)的CA狀態(tài)動作指令和流表匹配進(jìn)行休眠與喚醒操作的。本文對原有SD-WSN報文類型進(jìn)行了擴(kuò)展,報文類型“0x0c”表示此報文是CA狀態(tài)動作指令。
SD-WSN的流表包括3部分:匹配規(guī)則、動作和統(tǒng)計[3]?;贑A的流表結(jié)構(gòu)如表1所示,當(dāng)節(jié)點(diǎn)接收到報文后,會和節(jié)點(diǎn)內(nèi)的流表匹配,如果報文類型為“0x0c”,目的節(jié)點(diǎn)ID為自身ID,則查看報文的內(nèi)容是否為0(節(jié)點(diǎn)休眠指令)或1(節(jié)點(diǎn)工作指令),按照報文內(nèi)容修改當(dāng)前的節(jié)點(diǎn)狀態(tài)為0(休眠)或1(工作)。
3 ? ?仿真實(shí)驗(yàn)
采用Contiki Cooja平臺進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)中考慮了兩種類型的網(wǎng)絡(luò):(1)未加入CA的SD-WSN。(2)采用CA處理機(jī)制的SD-WSN,按照上文在分區(qū)控制器中加入了CA處理模塊,設(shè)計了能夠識別CA指令的流表。仿真實(shí)驗(yàn)的網(wǎng)絡(luò)規(guī)模分別為25個、49個節(jié)點(diǎn)。
圖2為網(wǎng)絡(luò)能量消耗,節(jié)點(diǎn)從第50 s開始啟動,發(fā)送/接收數(shù)據(jù),從中可以看出,隨著時間推移,網(wǎng)絡(luò)整體能量消耗越來越大,采用CA處理機(jī)制的網(wǎng)絡(luò)比未加CA處理機(jī)制的網(wǎng)絡(luò)能量消耗減少5%~15%。
圖3是節(jié)點(diǎn)生存時間,隨著節(jié)點(diǎn)能量消耗、節(jié)點(diǎn)的數(shù)量減少。采用CA處理機(jī)制的網(wǎng)絡(luò)節(jié)點(diǎn)由于進(jìn)行了休眠,能量消耗較少,比未加入CA處理機(jī)制的網(wǎng)絡(luò)節(jié)點(diǎn)生存時間更長。
4 ? ?結(jié)語
本文以二維元胞自動機(jī)為模型建立了以分布式控制器為核心的元胞自動機(jī)節(jié)點(diǎn)區(qū)域,設(shè)計了SD-WSN的休眠/喚醒路由算法及流表結(jié)構(gòu)。分區(qū)控制器的CA處理模塊根據(jù)節(jié)點(diǎn)的當(dāng)前狀態(tài)及剩余能量,按照轉(zhuǎn)換規(guī)則計算節(jié)點(diǎn)下一時刻的狀態(tài),下發(fā)CA指令到節(jié)點(diǎn)中,節(jié)點(diǎn)通過流表匹配規(guī)則來進(jìn)行自身的休眠/喚醒。仿真實(shí)驗(yàn)表明,CA處理機(jī)制減少了網(wǎng)絡(luò)的整體能耗,延長了SD-WSN的生存時間。本文的仿真實(shí)驗(yàn)未能考慮不規(guī)則的元胞自動機(jī)拓?fù)浣Y(jié)構(gòu),下一步還需在SD-WSN的連通度和覆蓋率上進(jìn)行進(jìn)一步的研究。
[參考文獻(xiàn)]
[1]杜永文,王章閔,胡曉輝,等.軟件定義無線傳感器網(wǎng)絡(luò)研究綜述[J].計算機(jī)工程與應(yīng)用,2019(1):7-14,69.
[2]WOLFRAM S,MALLINCKRODT,JOHN A.Cellular automata and complexity[J].Computers in Physics,1995(1):55.
[3]GALLUCCIO L,MILARDO S,MORABITO G,et al.SDN-WISE:design,prototyping and experimentation of a stateful SDN solution for WIreless SEnsor networks[J].Computer Communications,2015(5):44-45.
Abstract:To solve the energy-saving problem of software-defined wireless sensor networks , an energy-saving mechanism using cellular automata for distributed SD-WSN routing design is proposed in this paper. The CA processing module is set up in the distributed controller, and the nodes self-organize to form a two-dimensional cellular automata region centered on the distributed controller. The controller calculates the CA state of the node by using the intelligent neighbor list of the node. The node matches its own flow table according to the CA instruction issued by the controller, and switches the working state to sleep/wake up in order to save energy. The simulation results show that the mechanism can reduce the network energy consumption and prolong the network lifetime.
Key words:wireless sensor network; software definition network; cellular automata; energy saving