唐盛禹,鄭國強(qiáng)
(河南科技大學(xué)電子信息工程學(xué)院,河南洛陽471003)
通常,事件驅(qū)動的無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,簡稱WSN)通過節(jié)點的密集部署來收集事件信息。在許多WSN的應(yīng)用中,一旦事件發(fā)生,多個鄰近節(jié)點會同時監(jiān)測到該事件,這些鄰近節(jié)點之間就形成了監(jiān)測事件的空間相關(guān)性[1]。當(dāng)節(jié)點的事件信息傳輸?shù)絽R聚節(jié)點Sink時,給數(shù)據(jù)的傳輸帶來了冗余,同時增加了節(jié)點在接入信道過程中的競爭,進(jìn)而增加了網(wǎng)絡(luò)的能量消耗。因此,如何設(shè)計有效的MAC協(xié)議來降低冗余數(shù)據(jù)的傳輸,以減少網(wǎng)絡(luò)能量的開銷,對于延長WSN的壽命具有十分重要的意義。
近年來,國內(nèi)外研究者針對WSN的應(yīng)用提出了多種不同的 MAC 協(xié)議[2-9],比較典型的如 S -MAC[6]和 T - MAC[7]等,S - MAC 協(xié)議通過協(xié)商一致性睡眠調(diào)度形成虛擬簇,控制節(jié)點盡可能處于睡眠狀態(tài)來降低能量的消耗。T-MAC協(xié)議采用自適應(yīng)的偵聽—休眠模式,根據(jù)網(wǎng)絡(luò)流量動態(tài)地調(diào)整活動時間,以減少空閑偵聽時間,進(jìn)一步降低能耗。但兩種協(xié)議的設(shè)計大部分局限在能量和延時之間尋求平衡,它們都沒有考慮到利用空間相關(guān)性來節(jié)省能量。Vuran等人提出的CC-MAC協(xié)議[8]考慮了空間相關(guān)性,但是在選擇代表節(jié)點時,沒有考慮節(jié)點所監(jiān)測的信號強(qiáng)度,代表節(jié)點的隨機(jī)選擇導(dǎo)致了傳輸?shù)臄?shù)據(jù)仍然存在冗余,增加了網(wǎng)絡(luò)的能耗。本文針對事件驅(qū)動的WSN的應(yīng)用,節(jié)點間監(jiān)測的數(shù)據(jù)具有空間相關(guān)性的特征,在CC-MAC協(xié)議基礎(chǔ)之上,提出了一種能量高效的MAC協(xié)議SEMAC。SEMAC協(xié)議采用信號強(qiáng)度優(yōu)先的節(jié)點選擇算法和沖突避免機(jī)制以進(jìn)一步減少冗余數(shù)據(jù)的傳輸。數(shù)據(jù)包在多跳傳輸中優(yōu)先傳輸以減少數(shù)據(jù)包的傳輸時延。
針對CC-MAC協(xié)議采用隨機(jī)的節(jié)點篩選策略的不足,SEMAC協(xié)議采用信號強(qiáng)度優(yōu)先的節(jié)點篩選策略以減少發(fā)送數(shù)據(jù)的節(jié)點數(shù)量,從而減少冗余數(shù)據(jù)的傳輸,進(jìn)一步的節(jié)省網(wǎng)絡(luò)能耗。下面在給出信號強(qiáng)度定義的基礎(chǔ)上,分析比較了兩種不同節(jié)點選擇策略對重建失真的影響。
在一個隨機(jī)部署的無線傳感器網(wǎng)絡(luò)中,當(dāng)事件S發(fā)生時,本文把節(jié)點i監(jiān)測到事件發(fā)生的信號強(qiáng)度定義為Zi:
式(1)中:A表示事件源的信號強(qiáng)度;di是節(jié)點i與事件源的距離;Zi是節(jié)點i的信號強(qiáng)度監(jiān)測值;θ的取值源于信號源的類型;α是控制信號衰減快慢的參數(shù)。從公式(1)可以看出,節(jié)點監(jiān)測到事件源的信號強(qiáng)度隨節(jié)點到事件源距離的增加而迅速下降,說明節(jié)點到事件源的距離越遠(yuǎn),節(jié)點所監(jiān)測到的信號強(qiáng)度就越低。因此,如果選擇與事件源距離遠(yuǎn)的代表節(jié)點傳輸數(shù)據(jù)到匯聚節(jié)點Sink,那么必然會使重建失真度上升。
為了分析信號強(qiáng)度優(yōu)先的節(jié)點篩選策略和隨機(jī)的節(jié)點篩選策略對重建失真的影響,本文利用參考文獻(xiàn)[10]給出的失真函數(shù)做了一個數(shù)值實驗,失真函數(shù)定義如下:
式(2)中,失真度D(M)是發(fā)送數(shù)據(jù)的節(jié)點個數(shù)M、節(jié)點間的相關(guān)系數(shù)ρ(i,j)、節(jié)點和事件源間的相關(guān)系數(shù) ρ(s,j)的函數(shù);σ2N和 σ2s分別是節(jié)點i的觀測值和噪聲方差;a是事件信息的均值;Ei為e-αdi。
在一個以500 m×500 m的模擬環(huán)境中隨機(jī)部署了60個傳感器節(jié)點,事件源置于網(wǎng)絡(luò)的中心位置,取參數(shù) θ=2,α 分別取0.03和0.1,兩個參數(shù)來源于公式(1),利用公式(2)計算得到的兩種不同節(jié)點選擇策略下的失真度隨著代表節(jié)點數(shù)目的變化關(guān)系如圖1、2所示,圖中的數(shù)值為1 000次實驗結(jié)果的平均值。
圖1 不同α值對應(yīng)的隨機(jī)點選擇策略
圖2 不同α值對應(yīng)的信號強(qiáng)度優(yōu)先節(jié)點選擇策略
由圖1可知,當(dāng)代表節(jié)點的數(shù)量從60個減少到20個時,在隨機(jī)的節(jié)點篩選策略下失真度基本保持不變,這是由于相鄰節(jié)點監(jiān)測值間具有空間相關(guān)性所造成。在圖2中,根據(jù)節(jié)點的信號強(qiáng)度從高到低的順序來選擇節(jié)點發(fā)送數(shù)據(jù)。當(dāng)代表節(jié)點的數(shù)量從5個增加到15個時,在信號強(qiáng)度優(yōu)先的節(jié)點篩選策略下失真度下降得非???,但是隨著信號強(qiáng)度低的節(jié)點不斷加入失真度反而逐漸上升,這是由于信號強(qiáng)度低的節(jié)點不斷加入所致。
圖1和圖2比較,可以看出在選取代表節(jié)點時,信號強(qiáng)度優(yōu)先的節(jié)點篩選策略以較少的代表節(jié)點數(shù)量可以提供較好的失真度,在隨機(jī)的節(jié)點篩選策略中只有增加代表節(jié)點的數(shù)量才能降低失真度,但節(jié)點增加到一定數(shù)量時,失真度基本不會改變。因此,基于信號強(qiáng)度優(yōu)先的節(jié)點篩選策略明顯好于基于隨機(jī)的節(jié)點選擇策略。但在采用信號強(qiáng)度優(yōu)先的策略選取代表節(jié)點時,當(dāng)代表節(jié)點數(shù)量足夠多的時候,信號強(qiáng)度低的節(jié)點不斷加入反而造成了失真度的升高。針對這種情況,SEMAC協(xié)議采用非均勻概率分布的時隙選擇算法使R個信號強(qiáng)度高的節(jié)點(R≤N)能夠在最短時間內(nèi)成功發(fā)送監(jiān)測數(shù)據(jù),并抑制其余(N-R)個信號強(qiáng)度低節(jié)點的數(shù)據(jù)發(fā)送,以進(jìn)一步減少發(fā)送數(shù)據(jù)的節(jié)點數(shù)量,降低傳輸數(shù)據(jù)的冗余,沒有發(fā)送數(shù)據(jù)的節(jié)點進(jìn)入睡眠狀態(tài)以節(jié)省能量,其中N為網(wǎng)絡(luò)中節(jié)點的個數(shù)。
SEMAC協(xié)議的實現(xiàn)由以下三個部分組成:代表節(jié)點篩選算法、沖突避免策略和多跳傳輸。
為了篩選出信號強(qiáng)度高的節(jié)點優(yōu)先發(fā)送數(shù)據(jù),限制信號強(qiáng)度低的節(jié)點發(fā)送數(shù)據(jù),本文設(shè)計如下的節(jié)點篩選算法。
(1)當(dāng)某個節(jié)點監(jiān)測到事件發(fā)生時,它是否發(fā)送數(shù)據(jù)依賴于所監(jiān)測事件的信號強(qiáng)度Z。本文采用一個階梯函數(shù)f(Z),并將Z映射到一個數(shù)值α上,如圖3所示。
圖3 Z和α對應(yīng)關(guān)系
(2)使用一種基于信號強(qiáng)度的、非均勻概率分布的時隙選擇算法決定節(jié)點發(fā)送數(shù)據(jù)的優(yōu)先權(quán),讓信號強(qiáng)度高的節(jié)點選擇前面時隙的概率較高,信號強(qiáng)度低的節(jié)點選擇后面時隙的概率較高[11]。節(jié)點在時隙c發(fā)送數(shù)據(jù)的概率分布函數(shù)為:
式(3)中,λ是常數(shù),α是信號強(qiáng)度Z所對應(yīng)的函數(shù)值(0≤α≤1)。圖4描述了α對于不同時隙發(fā)送概率的影響,橫軸表示時隙號,縱軸表示節(jié)點的發(fā)送概率。由圖4可知,當(dāng)α固定時,越靠前的時隙發(fā)送數(shù)據(jù)的概率越大,越靠后的時隙發(fā)送概率相對較小。但隨著α的增大,越靠前的時隙發(fā)送概率會增大,而越靠后的時隙發(fā)送概率有所縮小,這樣可以很好地控制了信號強(qiáng)度高的節(jié)點優(yōu)先選擇前面的時隙發(fā)送數(shù)據(jù),信號強(qiáng)度低的節(jié)點選擇偏后的時隙發(fā)送數(shù)據(jù)。信號強(qiáng)度低于某個門限值的節(jié)點,阻止其發(fā)送數(shù)據(jù),當(dāng)一個節(jié)點發(fā)現(xiàn)它沒有必要發(fā)送數(shù)據(jù)時,就進(jìn)入睡眠狀態(tài)以節(jié)省能量。因此,本文對于信號強(qiáng)度高的節(jié)點,設(shè)α=1,故能最優(yōu)先發(fā)送數(shù)據(jù);對信號強(qiáng)度為Zmin的節(jié)點,設(shè)α=0,故能阻止其發(fā)送數(shù)據(jù)。
圖4 α對發(fā)送概率P的影響
采用了上述的代表節(jié)點篩選算法后,雖然減少了信號強(qiáng)度低的節(jié)點間的競爭,但是信號強(qiáng)度高的節(jié)點間的競爭仍然存在。同時,由于信號強(qiáng)度高的區(qū)域其節(jié)點發(fā)送概率較高,使得在這區(qū)域中部分節(jié)點的能量消耗過快,不利于網(wǎng)絡(luò)能量的均勻使用。為了減少代表節(jié)點在選取過程中的信道沖突和平衡網(wǎng)絡(luò)能量消耗,將節(jié)點的能量E映射到l上,如圖5所示。
圖5 l和E的映射關(guān)系
本文采用一種退避機(jī)制,參數(shù)l,a共同決定退避時間,定義了如下的退避函數(shù)τ(l,α)
式(4)中,l是節(jié)點剩余能量參數(shù),α是發(fā)送概率P所對應(yīng)的參數(shù),λ為常數(shù)。根據(jù)定義(4),l和α越大,退避時間越短,信號強(qiáng)度高且剩余能量高的節(jié)點就能優(yōu)先接入信道。如果剩余能量非常低且信號強(qiáng)度高,退避時間相對變長。雖然接入信道的概率變小,但避免了一些信號強(qiáng)度高且剩余能量低的節(jié)點使用,這利于平衡網(wǎng)絡(luò)能量消耗。因此當(dāng)節(jié)點需要發(fā)送數(shù)據(jù)時,先通過退避函數(shù)計算出退避時間τ,在等待τ時間后才能發(fā)送數(shù)據(jù),這樣保證了信號強(qiáng)度高、剩余能量多的節(jié)點在接入信道時更有優(yōu)先權(quán),有效的減少了信道的沖突,同時也有利于延長網(wǎng)絡(luò)的壽命。
當(dāng)代表節(jié)點發(fā)送的數(shù)據(jù)包經(jīng)過其他相關(guān)區(qū)域的時候,它比本地節(jié)點產(chǎn)生的數(shù)據(jù)包重要,中繼節(jié)點優(yōu)先發(fā)送中轉(zhuǎn)數(shù)據(jù)包。中轉(zhuǎn)數(shù)據(jù)包的優(yōu)先發(fā)送機(jī)制如下:當(dāng)中繼節(jié)點在偵聽階段接收到與某個中轉(zhuǎn)數(shù)據(jù)包相關(guān)的RTS包時,它將直接轉(zhuǎn)發(fā)數(shù)據(jù)包,此節(jié)點所在相關(guān)區(qū)域的代表性節(jié)點收到相關(guān)RTS包時,如果代表節(jié)點有數(shù)據(jù)包要轉(zhuǎn)發(fā),那么將推遲自身數(shù)據(jù)包的發(fā)送,等待中轉(zhuǎn)數(shù)據(jù)包被發(fā)送完畢后,代表節(jié)點才發(fā)送自身的數(shù)據(jù)包。這樣就實現(xiàn)了中轉(zhuǎn)數(shù)據(jù)包的優(yōu)先發(fā)送。SEMAC協(xié)議選取下一跳節(jié)點時采用貪婪算法[12],保證轉(zhuǎn)發(fā)的下一跳節(jié)點是距離匯聚節(jié)點sink最近的鄰居節(jié)點,如圖6所示。
圖6 多跳傳輸
為了驗證SEMAC協(xié)議、S-MAC和CC-MAC協(xié)議的性能,本文利用OMNet++對三種協(xié)議進(jìn)行了仿真比較。下面給出了實驗結(jié)果,并分析比較了各項協(xié)議的性能。
在環(huán)狀空間相關(guān)性模型基礎(chǔ)上,仿真實驗比較了三種協(xié)議的六個主要性能指標(biāo):①失真度 由第1節(jié)公式(2)給出定義;②平均能耗 仿真期間網(wǎng)絡(luò)中一個節(jié)點平均消耗的能量;③介質(zhì)訪問延時 每個數(shù)據(jù)包從被提交到MAC層開始到被發(fā)送到下一跳所需要的平均時間;④吞吐率 匯聚節(jié)點Sink收到全部數(shù)據(jù)包的個數(shù)和所有網(wǎng)絡(luò)節(jié)點產(chǎn)生數(shù)據(jù)包個數(shù)的比值;⑤丟包率 網(wǎng)絡(luò)中丟包的總數(shù)和所有網(wǎng)絡(luò)節(jié)點產(chǎn)生的數(shù)據(jù)包個數(shù)的比值;⑥網(wǎng)絡(luò)生命周期網(wǎng)絡(luò)中節(jié)點存活的時間。
本文在一個以500 m×500 m的模擬環(huán)境中隨機(jī)部署了60個傳感器節(jié)點,匯聚節(jié)點Sink位于網(wǎng)絡(luò)中的某個位置,事件源置于網(wǎng)絡(luò)的中心位置,仿真參數(shù)如表1。在仿真實驗中,每次仿真實驗的時間為1 000 s,為了研究網(wǎng)絡(luò)的負(fù)載變化情況,本文采用不同的報告周期,以此來調(diào)節(jié)節(jié)點產(chǎn)生包的速度。
表1 仿真參數(shù)
仿真結(jié)果如圖7至圖12所示。圖7描繪了SEMAC、CC-MAC和S-MAC協(xié)議的平均能耗隨數(shù)據(jù)發(fā)送時間間隔變化而變化的情況。從圖7中可以看出,SEMAC協(xié)議的網(wǎng)絡(luò)能耗明顯低于S-MAC協(xié)議,這是因為SEMAC協(xié)議充分考慮了節(jié)點間監(jiān)測數(shù)據(jù)的空間相關(guān)性。SEMAC比CC-MAC協(xié)議的能量消耗節(jié)省了大約35%,這是因為SEMAC協(xié)議有更少量的節(jié)點接入信道,因此,SEMAC協(xié)議更加有效的提高了網(wǎng)絡(luò)能量的利用率。
圖7 平均網(wǎng)絡(luò)耗能比較
圖8 介質(zhì)訪問延時比較
圖8對比了隨數(shù)據(jù)發(fā)送時間間隔的變化三種MAC協(xié)議的介質(zhì)訪問延時的變化趨勢??梢钥闯鯯EMAC協(xié)議和CC-MAC協(xié)議的延時非常接近0.05 s。S-MAC協(xié)議的延時小于其余兩種MAC協(xié)議,這是因為前兩種MAC協(xié)議都有一個代表節(jié)點篩選的過程。圖9和圖10顯示了隨數(shù)據(jù)發(fā)送時間間隔的變化三種MAC協(xié)議的吞吐率和丟包率的變化。由于SEMAC協(xié)議發(fā)送數(shù)據(jù)的節(jié)點數(shù)量比其余兩種MAC協(xié)議都少,進(jìn)一步過濾了相關(guān)數(shù)據(jù),減少了信道的沖突,因此SEMAC協(xié)議吞吐率最高且丟包率最低。同時從圖9和圖10中可以看出,吞吐率和丟包率對網(wǎng)絡(luò)負(fù)載不敏感。
圖9 吞吐率比較
圖10 丟包率比較
圖11對比了三種MAC協(xié)議在不同網(wǎng)絡(luò)節(jié)點數(shù)目下的生存時間。與SMAC和相比,很顯然SEMAC協(xié)議網(wǎng)絡(luò)壽命更長。S-MAC協(xié)議隨著網(wǎng)絡(luò)節(jié)點變化而生存時間基本不變,大約為200s,而SEMAC協(xié)議大約為700s,網(wǎng)絡(luò)壽命延長了3.5倍左右。這主要是因為SEMAC協(xié)議引入了空間相關(guān)性,減少了冗余數(shù)據(jù)的傳輸,同時節(jié)約了網(wǎng)絡(luò)能量。與CCMAC協(xié)議相比,SEMAC協(xié)議平衡了網(wǎng)絡(luò)節(jié)點能量消耗,延長了網(wǎng)絡(luò)壽命。
圖11 網(wǎng)絡(luò)生存時間比較
圖12中對比了SEMAC協(xié)議和CC-MAC協(xié)議的重建失真度變化趨勢,SEMAC協(xié)議的重建失真度明顯要低于CC-MAC協(xié)議,這是因為SEMAC協(xié)議在選擇代表節(jié)點時考慮了信號強(qiáng)度高的節(jié)點優(yōu)先發(fā)送數(shù)據(jù),這樣使得匯聚節(jié)點sink收集的事件信息的準(zhǔn)確率高于CC-MAC協(xié)議。
圖12 重建失真比較
為了延長網(wǎng)絡(luò)的壽命,本文充分利用傳感器節(jié)點間監(jiān)測的數(shù)據(jù)具有空間相關(guān)性,深入研究了節(jié)點選擇策略,提出了一種基于空間相關(guān)性的能量高效的MAC協(xié)議SEMAC。SEMAC協(xié)議采用非均勻概率分布的時隙選擇算法讓信號強(qiáng)度高的節(jié)點傳輸數(shù)據(jù),通過該方法有效地過濾冗余數(shù)據(jù)的傳輸;沖突避免機(jī)制減少信道沖突和平衡網(wǎng)絡(luò)能量;多跳傳輸降低了中轉(zhuǎn)數(shù)據(jù)包的傳輸時延。仿真結(jié)果表明SEMAC協(xié)議比CC-MAC協(xié)議更進(jìn)一步地降低了網(wǎng)絡(luò)能耗和傳輸時延,并提高了網(wǎng)絡(luò)的吞吐率,改善了重建失真度,延長了網(wǎng)絡(luò)壽命。
[1] Jamieson K,Balakrishnan H,Tay Y.Sift:A MAC Protocol for E-vent-Driven Wireless Sensor Network[R].MIT Tech.Report LCSTR-894,2003.
[2] 蹇強(qiáng),龔正虎,朱培棟等.無線傳感器網(wǎng)絡(luò)MAC協(xié)議研究進(jìn)展[J].軟件學(xué)報,2008,19(2):389 -403.
[3] Buettner M,Yee G,Anderson E,Han R.X-MAC:A Short Preamble MAC Protocol for Duty-Cycled Wireless Sensor Networks.In:Proc.of the 4th ACM Int’l Conf.on Embedded Sensor Systems.New York:ACM Press,2006:307 -320.
[4] Chin KW,Raad R.ArDe,Z:A Low Power Asym-Metric Rendezvous MAC for Sensor Networks,In:Proc.of the 14th Int’l Conf.on Computer Commu-nications and Networks(ICCCN 2005),San Diego,2005:99 -104.
[5] Ahn GS,Miluzzo E.Funneling-MAC:A Localized,Sink-Oriented MAC for Boosting Fidelity in Sensor Networks.In:Proc.of the 4th ACM Conf.on Embedded Networked Sensor Systems(Sensys 2006).Boulder:ACM Press,2006:293 -306.
[6] Ye W,Heidemann J,Estrin D.Medium Access Control with Coordinated Adaptive Sleeping for Wireless Sensor Networks[J].IEEE/ACM Transaction.on Networking,June,2004:493 -506.
[7] Van Dam T,Langendon K.An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks[C].in Pr oc.ACM SenSys 2003,LosAngelse,CA,2003:171 -180.
[8] Muran MC,Akyildiz I F.Spatial Correlation Based Collaborative Medium Access Control in Wireless Sensor Networks[J].IEEE/ACM Transaction on Networking,2006,14(2):316 -329.
[9] 鄭國強(qiáng),孫若玉,李濟(jì)順.一種適用于無線傳感器網(wǎng)絡(luò)的跨層高效 MAC 協(xié)議[J].傳感技術(shù)學(xué)報,2009,22(1):95-99.
[10]蘇威,林亞平,李小龍,等.無線傳感器網(wǎng)絡(luò)中一種環(huán)狀空間相關(guān)性模型[J].計算機(jī)應(yīng)用研究,2008,25(6):1860 -1863.
[11]胡玉鵬,林亞平,李小龍,等.無線傳感器網(wǎng)絡(luò)中基于協(xié)同壓縮方法的 MAC 協(xié)議[J].軟件學(xué)報,2009,20(9):2483 -2494.
[12] Brad Karp,Kung H T.GPSR:Greedy Perimeter Stateless Routing for Wireless Networks[C]//ACM/IEEE International Conference on Mobile Computing and Networking,Boston,Massachusetts,USA,2000:243 -254.