莊旭菲 高睿鵬 劉志強(qiáng)
摘 ? 要:針對軟件定義的無線傳感器網(wǎng)絡(luò)的節(jié)能問題,文章提出一種將元胞自動(dòng)機(jī)用于分布式SD-WSN路由設(shè)計(jì)的節(jié)能機(jī)制。該機(jī)制在分布式控制器中設(shè)置CA處理模塊,節(jié)點(diǎn)自組織形成以分布式控制器為中心的二維元胞自動(dòng)機(jī)區(qū)域。控制器采用節(jié)點(diǎn)的智能鄰居列表計(jì)算節(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ò);元胞自動(dòng)機(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)路由計(jì)算任務(wù),可以節(jié)約一些能量。
近年來,研究未能將元胞自動(dòng)機(jī)技術(shù)應(yīng)用于SD-WSN中,缺少將元胞自動(dòng)機(jī)與SD-WSN網(wǎng)絡(luò)協(xié)議相融合的實(shí)例。由于SD-WSN在單一的全局控制器中設(shè)置元胞自動(dòng)機(jī)(Cellular Automata,CA)處理模塊會(huì)增加網(wǎng)絡(luò)通信開銷,所以需要對SD-WSN中的元胞自動(dòng)機(jī)處理機(jī)制及路由協(xié)議做進(jìn)一步的研究。
1 ? ?WSN的元胞自動(dòng)機(jī)模擬
一個(gè)基本的二維元胞自動(dòng)機(jī)是一個(gè)規(guī)則的元胞網(wǎng)格,每個(gè)元胞都有有限的狀態(tài)數(shù),根據(jù)一個(gè)局部的、相同的交互規(guī)則更新,下一時(shí)間的元胞狀態(tài)由其自身的當(dāng)前狀態(tài)和周圍元胞的當(dāng)前狀態(tài)決定[2]。
2 ? ?基于多分區(qū)元胞自動(dòng)機(jī)的SD-WSN路由設(shè)計(jì)
2.1 ?CA區(qū)域構(gòu)建
本文將多個(gè)分區(qū)控制器應(yīng)用到SD-WSN中,形成基于多分區(qū)元胞自動(dòng)機(jī)的分布式SD-WSN。系統(tǒng)拓?fù)淙鐖D1所示,在數(shù)據(jù)平面根據(jù)節(jié)點(diǎn)的傳感器特性(如采集溫度)將節(jié)點(diǎn)劃分為多個(gè)CA區(qū)域,每個(gè)元胞自動(dòng)機(jī)區(qū)域由一個(gè)處于控制平面的分區(qū)控制器管理,負(fù)責(zé)本區(qū)域內(nèi)的路由計(jì)算及CA處理。分區(qū)控制器上層是全局控制器,負(fù)責(zé)整個(gè)網(wǎng)絡(luò),具有全局網(wǎng)絡(luò)視圖,擁有控制器的SDN功能。
WSN啟動(dòng)后,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)行路由計(jì)算。本文需將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ī)則計(jì)算節(jié)點(diǎn)下一時(shí)刻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è)計(jì)
CA區(qū)域內(nèi)的節(jié)點(diǎn)是通過分區(qū)控制器下發(fā)的CA狀態(tài)動(dòng)作指令和流表匹配進(jìn)行休眠與喚醒操作的。本文對原有SD-WSN報(bào)文類型進(jìn)行了擴(kuò)展,報(bào)文類型“0x0c”表示此報(bào)文是CA狀態(tài)動(dòng)作指令。
SD-WSN的流表包括3部分:匹配規(guī)則、動(dòng)作和統(tǒng)計(jì)[3]。基于CA的流表結(jié)構(gòu)如表1所示,當(dāng)節(jié)點(diǎn)接收到報(bào)文后,會(huì)和節(jié)點(diǎn)內(nèi)的流表匹配,如果報(bào)文類型為“0x0c”,目的節(jié)點(diǎn)ID為自身ID,則查看報(bào)文的內(nèi)容是否為0(節(jié)點(diǎn)休眠指令)或1(節(jié)點(diǎn)工作指令),按照報(bào)文內(nèi)容修改當(dāng)前的節(jié)點(diǎn)狀態(tài)為0(休眠)或1(工作)。
3 ? ?仿真實(shí)驗(yàn)
采用Contiki Cooja平臺(tái)進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)中考慮了兩種類型的網(wǎng)絡(luò):(1)未加入CA的SD-WSN。(2)采用CA處理機(jī)制的SD-WSN,按照上文在分區(qū)控制器中加入了CA處理模塊,設(shè)計(jì)了能夠識(shí)別CA指令的流表。仿真實(shí)驗(yàn)的網(wǎng)絡(luò)規(guī)模分別為25個(gè)、49個(gè)節(jié)點(diǎn)。
圖2為網(wǎng)絡(luò)能量消耗,節(jié)點(diǎn)從第50 s開始啟動(dòng),發(fā)送/接收數(shù)據(jù),從中可以看出,隨著時(shí)間推移,網(wǎng)絡(luò)整體能量消耗越來越大,采用CA處理機(jī)制的網(wǎng)絡(luò)比未加CA處理機(jī)制的網(wǎng)絡(luò)能量消耗減少5%~15%。
圖3是節(jié)點(diǎn)生存時(shí)間,隨著節(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)生存時(shí)間更長。
4 ? ?結(jié)語
本文以二維元胞自動(dòng)機(jī)為模型建立了以分布式控制器為核心的元胞自動(dòng)機(jī)節(jié)點(diǎn)區(qū)域,設(shè)計(jì)了SD-WSN的休眠/喚醒路由算法及流表結(jié)構(gòu)。分區(qū)控制器的CA處理模塊根據(jù)節(jié)點(diǎn)的當(dāng)前狀態(tài)及剩余能量,按照轉(zhuǎn)換規(guī)則計(jì)算節(jié)點(diǎn)下一時(shí)刻的狀態(tài),下發(fā)CA指令到節(jié)點(diǎn)中,節(jié)點(diǎn)通過流表匹配規(guī)則來進(jìn)行自身的休眠/喚醒。仿真實(shí)驗(yàn)表明,CA處理機(jī)制減少了網(wǎng)絡(luò)的整體能耗,延長了SD-WSN的生存時(shí)間。本文的仿真實(shí)驗(yàn)未能考慮不規(guī)則的元胞自動(dòng)機(jī)拓?fù)浣Y(jié)構(gòu),下一步還需在SD-WSN的連通度和覆蓋率上進(jìn)行進(jìn)一步的研究。
[參考文獻(xiàn)]
[1]杜永文,王章閔,胡曉輝,等.軟件定義無線傳感器網(wǎng)絡(luò)研究綜述[J].計(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