王克重,鮑 宇,楊 軒,張 宇
1(中國(guó)礦業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇徐州221116)
2(中國(guó)礦業(yè)大學(xué)礦山數(shù)字化教育部工程中心,江蘇徐州221116)
時(shí)消耗的能量較多.因此,需要對(duì)WSN 中節(jié)點(diǎn)的能耗均衡方法進(jìn)行詳細(xì)研究.
隨著我國(guó)5G 技術(shù)的不斷發(fā)展,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network)將更廣泛的應(yīng)用到工業(yè),農(nóng)業(yè),醫(yī)療等各個(gè)領(lǐng)域[1].在工業(yè)中,應(yīng)用于生產(chǎn)過程自動(dòng)化,設(shè)備狀態(tài)監(jiān)測(cè);在農(nóng)業(yè)中,應(yīng)用于蔬菜生產(chǎn)基地中溫室濕度,溫度等的控制;在醫(yī)療中,應(yīng)用于監(jiān)測(cè)人體的各項(xiàng)生理指標(biāo)等[2].
WSN 中的感知節(jié)點(diǎn)(sensor nodes)分布在被監(jiān)控區(qū)域的各個(gè)位置,與sink 的距離遠(yuǎn)近不一,而節(jié)點(diǎn)的能耗與距離有關(guān),因此SNs 面臨能耗不均的問題.另外,自組網(wǎng)的方式,網(wǎng)絡(luò)不能靈活控制節(jié)點(diǎn)的數(shù)據(jù)傳輸方向,導(dǎo)致節(jié)點(diǎn)在傳輸數(shù)據(jù)
軟件定義網(wǎng)絡(luò)(Software-defined Network)是美國(guó)斯坦福大學(xué)提出的一種網(wǎng)絡(luò)架構(gòu),隨后被學(xué)術(shù)研究人員和工業(yè)界廣泛應(yīng)用[3].SDN 通過數(shù)據(jù)平面與控制平面分離的技術(shù),將網(wǎng)絡(luò)設(shè)備的控制功能從邏輯中分離出來,轉(zhuǎn)移到概念上的高層網(wǎng)絡(luò)實(shí)體控制器中[4].
為延長(zhǎng)WSN 的生存時(shí)間,提高WSN 的性能,可采取優(yōu)化部署網(wǎng)絡(luò)節(jié)點(diǎn),或完善路由協(xié)議.文獻(xiàn)[5]采用優(yōu)化部署網(wǎng)絡(luò)節(jié)點(diǎn)的方法,將WSN 劃分為若干集群,在集群內(nèi)部選舉若干節(jié)點(diǎn)作為中繼節(jié)點(diǎn)(relay nodes),并為RNs 額外提供能量.數(shù)據(jù)在集群內(nèi)部傳輸時(shí),每個(gè)集群中的RNs 按照順序轉(zhuǎn)換,稱之為“虛擬移動(dòng)中繼”方法.這種方法有效延長(zhǎng)了網(wǎng)絡(luò)的生存時(shí)間,但主要應(yīng)用于線性網(wǎng)絡(luò)中,并且需要事先選定RNs配給額外能量,如何選定RNs 是需要考慮的問題.文獻(xiàn)[6]基于LEACH 協(xié)議提出EBCA 方法,將節(jié)點(diǎn)按層次劃分為遠(yuǎn)層,中層和近層三層結(jié)構(gòu).選取中繼時(shí),遠(yuǎn)層SNs 選取中層SNs作為 RNs,中層 SNs 選取近層 SNs 作為 RNs.傳輸數(shù)據(jù)時(shí),SNs 感知數(shù)據(jù)的一部分傳輸給RNs,一部分傳輸給簇首.而每條路徑傳輸?shù)臄?shù)據(jù)量,則由遠(yuǎn)層SNs 根據(jù)路徑上的節(jié)點(diǎn)數(shù)量,位置求解,以達(dá)到能耗均衡的目的.該方法在一定程度實(shí)現(xiàn)了能耗均衡,但選取中繼的方法未闡述,并且沒有考慮簇首的能量損耗.文獻(xiàn)[7]采用博弈論方法完善路由協(xié)議,通過不斷博弈,實(shí)現(xiàn)能耗均衡.在該方法中,節(jié)點(diǎn)首先確定鄰居節(jié)點(diǎn),然后將自身的剩余能量信息傳遞給鄰居節(jié)點(diǎn),以便在下一輪運(yùn)行時(shí)進(jìn)行概率判斷.文獻(xiàn)[6,7]中,簇內(nèi)各節(jié)點(diǎn)均存儲(chǔ)本簇內(nèi)所有節(jié)點(diǎn)的剩余能量信息,以在下一輪選取最優(yōu)中繼節(jié)點(diǎn),實(shí)現(xiàn)能量的均衡,但這需要更多的存儲(chǔ)空間,以空間換時(shí)間,會(huì)對(duì)網(wǎng)絡(luò)的性能有一定的影響.文獻(xiàn)[10]提出了一個(gè)軟件定義無線傳感網(wǎng)絡(luò)的結(jié)構(gòu),定義了設(shè)備管理,拓?fù)涔芾淼南嚓P(guān)報(bào)文格式,但是對(duì)于選舉中繼的報(bào)文格式未明確說明.
在大型WSN 中,使用LEACH 協(xié)議,將節(jié)點(diǎn)劃分為若干集群,在集群中隨機(jī)選取RNs,以延長(zhǎng)網(wǎng)絡(luò)的生存時(shí)間.在小型WSN 中,由于節(jié)點(diǎn)數(shù)較少,采用隨機(jī)選舉RNs 的方式對(duì)網(wǎng)絡(luò)的生存時(shí)間提升較小,甚至?xí)档途W(wǎng)絡(luò)的生存時(shí)間.而采用非隨機(jī)選取RNs,可以選擇使網(wǎng)絡(luò)生存時(shí)間最長(zhǎng)的中繼位置,有效提升網(wǎng)絡(luò)生存時(shí)間.但是何時(shí)選取RNs,怎樣選取RNs是現(xiàn)存的問題.

圖1 SDN-WSN 模型Fig.1 SDN-WSN model
通過對(duì)現(xiàn)存網(wǎng)絡(luò)結(jié)構(gòu)的能耗分析,發(fā)現(xiàn)集中式的網(wǎng)絡(luò)控制方式可以提高網(wǎng)絡(luò)的生存時(shí)間,因此,本文提出了一種基于軟件定義WSN 的網(wǎng)絡(luò)結(jié)構(gòu).如圖1所示,SDN-WSN 有基礎(chǔ)設(shè)施層、控制與傳輸層和用戶層三個(gè)層次.其中控制節(jié)點(diǎn)為單節(jié)點(diǎn),由圖中sink 節(jié)點(diǎn)充當(dāng).由于單節(jié)點(diǎn)控制相比于多節(jié)點(diǎn)控制具有存儲(chǔ)開銷少,通信開銷小,響應(yīng)速度快等優(yōu)點(diǎn)[8],因而SDN-WSN 中選取單節(jié)點(diǎn)控制方式.但是,單節(jié)點(diǎn)控制方式可能出現(xiàn)單點(diǎn)失效問題[9].
1)基礎(chǔ)設(shè)施層.在SDN-WSN 中,基礎(chǔ)設(shè)施層由布置在各處的SNs 組成,網(wǎng)絡(luò)初始時(shí),直接與sink 通信.基礎(chǔ)設(shè)施層的主要功能是感知數(shù)據(jù)和轉(zhuǎn)發(fā)數(shù)據(jù).
2)控制與傳輸層.由sink,無線路由器和無線電發(fā)射塔組成.基礎(chǔ)設(shè)施層中SNs 的控制功能集中在sink 中,是網(wǎng)絡(luò)的核心.sink 為用戶提供了可編程的北向接口,以及定義了轉(zhuǎn)發(fā)設(shè)備指令集合的南向接口[9].sink 通過南向接口將數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則傳輸給SNs,以此控制SNs 的數(shù)據(jù)流向.無線路由器與無線電發(fā)射塔是數(shù)據(jù)的傳輸中介,可將SNs 感知的數(shù)據(jù)傳輸給用戶.
3)用戶層.由各類用戶組成,包括便攜主機(jī),智能終端等.通過控制與傳輸層提供的接口,用戶根據(jù)需求開發(fā)應(yīng)用程序.如果需要多用戶監(jiān)控,可在便攜主機(jī)或智能終端上安裝監(jiān)測(cè)軟件,對(duì)數(shù)據(jù)采集情況實(shí)時(shí)監(jiān)控.
控制與傳輸層中的sink 是SDN-WSN 的核心,主要包括拓?fù)浒l(fā)現(xiàn)功能,設(shè)備管理功能,存儲(chǔ)功能以及重定義管理功能等[9],如圖2 所示.拓?fù)浒l(fā)現(xiàn)功能通過底層協(xié)議收集 SNs 的信息,形成全局視圖下的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,并保存在存儲(chǔ)中.設(shè)備管理功能包括傳感設(shè)備的管理,延遲管理等[10].重定義管理功能是指,當(dāng)SNs 能量降低到設(shè)定值后,sink 根據(jù)公式、算法為其選舉中繼的過程,該過程稱之為重定義網(wǎng)絡(luò)(Redefine the network).

圖2 控制節(jié)點(diǎn)的功能Fig.2 Functions of the control node
重定義網(wǎng)絡(luò)時(shí),sink 需要將RNs 的編號(hào)發(fā)送給SNs.由于Samaresh Bera[10]等人未對(duì)重定義網(wǎng)絡(luò)的報(bào)文格式設(shè)計(jì),因此,本文根據(jù)Samaresh Bera 等人的報(bào)文格式,設(shè)計(jì)了重定義網(wǎng)絡(luò)的報(bào)文格式,如圖3 所示.其中重要字段的含義如下:

圖3 重定義網(wǎng)絡(luò)報(bào)文格式Fig.3 Redefine the network message format
長(zhǎng)度:整個(gè)報(bào)文的長(zhǎng)度L.
類型:設(shè)置為單播和多播,在網(wǎng)絡(luò)運(yùn)行初期,sink 通過多播向SNs 傳輸轉(zhuǎn)發(fā)規(guī)則.當(dāng)一個(gè)節(jié)點(diǎn)的能量下降到能量閾值后,sink 以單播形式將轉(zhuǎn)發(fā)規(guī)則傳輸給SNs.
SNs-ID:表示感知節(jié)點(diǎn)的編號(hào).
操作:定義了多種操作,主要包括節(jié)點(diǎn)登陸,退出,更改節(jié)點(diǎn)的數(shù)據(jù)傳輸目的地等,是重定義網(wǎng)絡(luò)報(bào)文中重要的字段.
TTL:表示報(bào)文的生存時(shí)間.
校驗(yàn)位:檢驗(yàn)數(shù)據(jù)完整性.
本文使用文獻(xiàn)[11]提出的自由空間模型,即節(jié)點(diǎn)的能耗與距離的二次方相關(guān).由于硬件技術(shù)的快速發(fā)展,采集設(shè)備的能量損耗主要集中在傳輸數(shù)據(jù),接收數(shù)據(jù),其他的能量損耗基本可以不計(jì)[12].假設(shè)在單位時(shí)間內(nèi),SNs 采集和發(fā)送1bit 數(shù)據(jù),由公式(1),公式(2)可以分別計(jì)算在t 時(shí)間內(nèi)SNs 傳輸、接收數(shù)據(jù)需要的能量[1,13].

其中,εrx,εele是與距離相關(guān)的常量;εamp是與距離相關(guān)的系數(shù),與發(fā)送放大器的能耗有關(guān)[13];α 是路徑損耗指數(shù),且2≤α≤4[5].
當(dāng)SNs 剩余的能量低于設(shè)定值時(shí),由A 類節(jié)點(diǎn)變?yōu)锽 類節(jié)點(diǎn),SDN-WSN 重定義網(wǎng)絡(luò),為B 類節(jié)點(diǎn)選舉中繼,更新網(wǎng)絡(luò)拓?fù)?選舉出RNs 的能量消耗可由公式(3)計(jì)算,其中t 表示運(yùn)行時(shí)間,n 表示有(n-1)個(gè)節(jié)點(diǎn)將其作為中繼.

為在下文表示方便,進(jìn)行如下定義.
定義1.能量閾值(Ethreshold):SNs 的能量降低到設(shè)定值時(shí),工作模式與網(wǎng)絡(luò)拓?fù)鋵⒈籗DN 能耗均衡算法重定義.
定義2.A 類節(jié)點(diǎn):SNs 剩余的能量高于能量閾值,稱這類節(jié)點(diǎn)為A 類節(jié)點(diǎn).
定義3.B 類節(jié)點(diǎn):SNs 剩余的能量低于能量閾值,稱這類節(jié)點(diǎn)為B 類節(jié)點(diǎn).
SDN-WSN 中與sink 距離近的節(jié)點(diǎn)能量消耗慢,與sink距離較遠(yuǎn)的節(jié)點(diǎn)能量消耗快,死亡早,導(dǎo)致網(wǎng)絡(luò)中節(jié)點(diǎn)能量消耗不均問題突出.因此,本文為節(jié)點(diǎn)定義了能量閾值,當(dāng)節(jié)點(diǎn)的能量低于能量閾值時(shí),由A 類節(jié)點(diǎn)變?yōu)锽 類節(jié)點(diǎn),sink 根據(jù)SDN 能耗均衡算法為B 類節(jié)點(diǎn)選取中繼,重定義網(wǎng)絡(luò),能量閾值的選取與最優(yōu)中繼節(jié)點(diǎn)的位置有關(guān).如圖4 所示,使用重定義網(wǎng)絡(luò)后,SNs 變?yōu)閮蓪咏Y(jié)構(gòu),B 類節(jié)點(diǎn)在剩余生存時(shí)間內(nèi),只向中繼傳輸數(shù)據(jù).

圖4 SDN-WSN 重定義網(wǎng)絡(luò)圖示Fig.4 SDN-WSN redefines the network diagram
由于sink 重定義網(wǎng)絡(luò),導(dǎo)致網(wǎng)絡(luò)生存周期內(nèi)出現(xiàn)兩個(gè)階段:t1階段SNs 向 sink 傳輸數(shù)據(jù),t2階段 SNs 向中繼傳輸數(shù)據(jù).因此,為使網(wǎng)絡(luò)的生存時(shí)間最長(zhǎng),需要求解t1,t2之和的最大值,也即求網(wǎng)絡(luò)生存時(shí)間的最優(yōu)解問題,其優(yōu)化目標(biāo)函數(shù)如公式(4)所示.

其中,d1表示 SNs 與 sink 之間的距離,d3表示 RNs 與sink 之間的距離,d2表示SNs 與RNs 之間的距離,約束公式(7)-公式(9)保證節(jié)點(diǎn)之間的距離符合要求.
根據(jù)目標(biāo)函數(shù)及約束,可用優(yōu)化工具求出d3的值.在部署節(jié)點(diǎn)時(shí),可將中繼部署在d3的位置,或者部署在最接近d3的位置,以延長(zhǎng)網(wǎng)絡(luò)的生存時(shí)間.

表1 算法涉及的變量及含義Table 1 Variables and implications of the algorithm
本文設(shè)計(jì)了SDN 能耗均衡算法(SDN Energy Consumption Equalization Algorithm),當(dāng)節(jié)點(diǎn)剩余的能量低于能量閾值時(shí),sink 節(jié)點(diǎn)根據(jù)SDNECEA,重定義網(wǎng)絡(luò).SDNECEA 涉及的變量及含義如表1 所示.Clusterflag 值為1 時(shí),表示消息來自 SNs,值為 2 時(shí),表示消息來自 RNs.NodeType 值為 1 時(shí),表示為A 類節(jié)點(diǎn),值為2 時(shí),表示為B 類節(jié)點(diǎn),算法如下.

設(shè)計(jì)實(shí)驗(yàn),對(duì)網(wǎng)絡(luò)中感知節(jié)點(diǎn)的能耗進(jìn)行仿真測(cè)試.本文只考慮SNs,RNs 接收和轉(zhuǎn)發(fā)時(shí)的能量損耗,不考慮其他能量損耗.仿真參數(shù)如表2 所示.為測(cè)試SDNECEA 方法是否有效、效果如何,設(shè)計(jì)實(shí)驗(yàn)1,實(shí)驗(yàn)2 進(jìn)行驗(yàn)證.節(jié)點(diǎn)的能耗與距離有關(guān),所以在SNs 與sink 間選取不同的距離,設(shè)計(jì)對(duì)比實(shí)驗(yàn)3,實(shí)驗(yàn)4,探索使用SDNECEA 方法與不使用SDNECEA 方法,使用SDNECEA 方法與其他方法,對(duì)網(wǎng)絡(luò)生存時(shí)間的影響.
實(shí)驗(yàn)1.根據(jù)上節(jié)提出的重定義網(wǎng)絡(luò)方法,選取d1=10m進(jìn)行仿真實(shí)驗(yàn),測(cè)試網(wǎng)絡(luò)的生存時(shí)間是否延長(zhǎng).根據(jù)公式(4)-公式(9)求得 d1=10m 時(shí) d3=4.795m.通過仿真發(fā)現(xiàn),使用重定義網(wǎng)絡(luò)方法前,網(wǎng)絡(luò)的生存時(shí)間為1018,如圖5(a)所示.使用重定義網(wǎng)絡(luò)方法后,網(wǎng)絡(luò)的生存時(shí)間為1021,如圖5(b)所示.結(jié)果表明,經(jīng)過重定義網(wǎng)絡(luò)后,網(wǎng)絡(luò)的能量消耗更均衡,網(wǎng)絡(luò)的生存時(shí)間也延長(zhǎng)了0.29%,但是延長(zhǎng)的效果不顯著.

表2 仿真參數(shù)設(shè)置Table 2 Simulation parameter setting

圖5 d1=10 時(shí)能耗仿真結(jié)果Fig.5 Simulation results of energy consumption when d1=10
實(shí)驗(yàn)2.考慮到節(jié)點(diǎn)的能量消耗與距離有關(guān),設(shè)置d1=20m 進(jìn)行仿真實(shí)驗(yàn),觀察網(wǎng)絡(luò)生存時(shí)間延長(zhǎng)的效果是否顯著.根據(jù)公式可求得d1=20m 時(shí)d3=8.685m.通過仿真發(fā)現(xiàn),使用重定義網(wǎng)絡(luò)方法前,網(wǎng)絡(luò)的生存時(shí)間為679,如圖6(a)所示.使用重定義網(wǎng)絡(luò)方法后,網(wǎng)絡(luò)的生存時(shí)間為706,如圖6(b)所示.結(jié)果表明,經(jīng)過重定義網(wǎng)絡(luò)后,網(wǎng)絡(luò)的生存時(shí)間延長(zhǎng)了3.97%,網(wǎng)絡(luò)延長(zhǎng)的效果較為顯著,能耗較為均衡.

圖6 d1=20 時(shí)能耗仿真結(jié)果Fig.6 Simulation results of energy consumption when d1=20
根據(jù)實(shí)驗(yàn)1,實(shí)驗(yàn)2 推測(cè),當(dāng)d1的值越大時(shí),網(wǎng)絡(luò)生存時(shí)間延長(zhǎng)的效果越顯著,設(shè)計(jì)實(shí)驗(yàn)3 比較SNs 在不同距離下延長(zhǎng)時(shí)間的效果如何.
實(shí)驗(yàn)3.設(shè)計(jì) d1的值分別為10m,20m,30m,40m,50m,對(duì)應(yīng)d3的值分別為 4.795m,8.685m,11.586m,13.758m,15.434m.通過仿真發(fā)現(xiàn),使用重定義網(wǎng)絡(luò)方法后,不同的d1值,網(wǎng)絡(luò)的生存時(shí)間各延長(zhǎng)了3,27,64,95,120,比使用重定義網(wǎng)絡(luò)方法前的生存時(shí)間各延長(zhǎng)了 0.29%,3.97%,14.68% ,32.65%,58.82%,如圖8 所示.實(shí)驗(yàn)結(jié)果說明,SDNECEA 可以實(shí)現(xiàn)節(jié)點(diǎn)的能耗均衡.當(dāng)d1的值較大時(shí),網(wǎng)絡(luò)生存時(shí)間延長(zhǎng)較多,節(jié)點(diǎn)的能耗更均衡.但是當(dāng)d1的值較小時(shí),網(wǎng)絡(luò)生存時(shí)間延長(zhǎng)較少,SDNECEA 的效果不明顯.
為了進(jìn)一步確定該算法的優(yōu)劣,對(duì)比了直接傳輸,隨機(jī)選取中繼位置,文獻(xiàn)[6]的EBCA 以及SDNECEA,四種方法的網(wǎng)絡(luò)生存時(shí)間.
實(shí)驗(yàn)4.如圖7 所示,使用隨機(jī)中繼位置的方法,當(dāng)中繼節(jié)點(diǎn)選擇適當(dāng)?shù)臅r(shí)候可以提升網(wǎng)絡(luò)的生存時(shí)間,但是如果選擇不當(dāng),甚至?xí)档途W(wǎng)絡(luò)的生存時(shí)間;使用EBCA 對(duì)網(wǎng)絡(luò)的生存時(shí)間有提升,但是提升效果不明顯;使用SDNECEA 對(duì)網(wǎng)絡(luò)生存時(shí)間的提升較為顯著,且較為穩(wěn)定.

圖7 四種方法實(shí)驗(yàn)結(jié)果Fig.7 Experimental results of four methods

圖8 不同方法延長(zhǎng)網(wǎng)絡(luò)生存時(shí)間的比例Fig.8 Different methods to extend the proportion of network lifetime
如圖8 所示,采用隨機(jī)中繼位置的方法,效果不穩(wěn)定,當(dāng)中繼位置選取不當(dāng)時(shí),反而會(huì)降低網(wǎng)絡(luò)的生存時(shí)間;采用EBCA,對(duì)網(wǎng)絡(luò)生存時(shí)間有提升,但是提升效果有限;采用本文方法,網(wǎng)絡(luò)的生存時(shí)間隨著距離的增大而提升,效果較為顯著,但是當(dāng)距離較近時(shí),提升的時(shí)間較短,效果較差.實(shí)驗(yàn)表明,本文提出的方法對(duì)提升網(wǎng)絡(luò)生存時(shí)間更有效.
針對(duì)現(xiàn)有網(wǎng)絡(luò)中,節(jié)點(diǎn)能耗嚴(yán)重不均衡的情況,本文提出了一種基于軟件定義WSN 的同質(zhì)節(jié)點(diǎn)的能耗均衡方法.為了減少數(shù)據(jù)傳輸過程中的能量損耗,采用軟件定義網(wǎng)絡(luò)的思想,將網(wǎng)絡(luò)拓?fù)涞闹貥?gòu)控制功能從物理設(shè)備分離出來,集中在sink 節(jié)點(diǎn),雖然集中管理控制功能會(huì)額外消耗能量,但現(xiàn)有條件下,可為sink 提供充分的能量.通過抽象的優(yōu)化模型,求解最優(yōu)中繼位置.部署節(jié)點(diǎn)時(shí),可選擇最優(yōu)中繼位置,或者最接近中繼的位置,以實(shí)現(xiàn)網(wǎng)絡(luò)的能耗均衡.當(dāng)節(jié)點(diǎn)的剩余能量降低到能量閾值后,sink 根據(jù)SDNECEA 重定義網(wǎng)絡(luò).實(shí)驗(yàn)結(jié)果表明,在節(jié)點(diǎn)剩余能量低于能量閾值后,使用SDNECEA 重定義網(wǎng)絡(luò),網(wǎng)絡(luò)的能耗更均衡,網(wǎng)絡(luò)生存時(shí)間最高可延長(zhǎng)58.82%.但是,在近距離使用SDNECEA 方法,實(shí)驗(yàn)的效果不顯著.在進(jìn)一步的研究中,還需要對(duì)以下方面進(jìn)行研究:
1)網(wǎng)絡(luò)優(yōu)化問題;
2)節(jié)點(diǎn)同步問題.