吳麗杰,張璐璐,唐 珊
(安徽糧食工程職業(yè)學(xué)院,安徽 合肥 230011)
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(WSN)由于其在環(huán)境監(jiān)測(cè)、精準(zhǔn)農(nóng)業(yè)、工業(yè)現(xiàn)場(chǎng)監(jiān)測(cè)、目標(biāo)跟蹤、野生動(dòng)物保護(hù)和軍事應(yīng)用等領(lǐng)域的廣泛應(yīng)用而變得非常流行。此外,WSN還作為物聯(lián)網(wǎng)的一種末梢網(wǎng)絡(luò)和感知延伸網(wǎng),是物聯(lián)網(wǎng)的重要基礎(chǔ)。傳感器部署在無(wú)人值守的環(huán)境中,傳感器節(jié)點(diǎn)由電池供電,頻繁更換電池并非易事。隨著物聯(lián)網(wǎng)、車(chē)載Ad Hoc網(wǎng)絡(luò)和其他無(wú)線(xiàn)通信系統(tǒng)的廣泛應(yīng)用,迫切需要提高WSN的能量效率、吞吐量和其他傳輸性能[1-3]。
WSN節(jié)點(diǎn)能量主要消耗在無(wú)線(xiàn)通信上,數(shù)據(jù)鏈路層中的介質(zhì)訪問(wèn)控制(MAC) 決定著無(wú)線(xiàn)信道的使用方式,控制節(jié)點(diǎn)的工作狀態(tài),對(duì)節(jié)點(diǎn)和WSN壽命起決定性作用[4]。MAC協(xié)議中,載波偵聽(tīng)多路訪問(wèn)(CSMA)是理想的低競(jìng)爭(zhēng)網(wǎng)絡(luò)解決方案,但在高競(jìng)爭(zhēng)環(huán)境卻產(chǎn)生較低吞吐量;而時(shí)分多址(TDMA)在高競(jìng)爭(zhēng)下可以有效地調(diào)度節(jié)點(diǎn)并保持高信道利用率,但是在低競(jìng)爭(zhēng)環(huán)境下有較嚴(yán)重的時(shí)隙浪費(fèi)。研究者們提出不少混合MAC協(xié)議,這類(lèi)協(xié)議結(jié)合了TDMA和CSMA的優(yōu)點(diǎn)同時(shí)彌補(bǔ)它們的不足,如ABROAD[5]、Z-MAC[6]等。混合MAC協(xié)議在網(wǎng)絡(luò)競(jìng)爭(zhēng)較低時(shí)使用CSMA,在高競(jìng)爭(zhēng)下切換到TDMA模式。Z-MAC是其中比較典型的代表,它采用DRAND時(shí)隙分配算法,相比較其他節(jié)能MAC協(xié)議,能耗較高[7]。
針對(duì)Z-MAC能耗較高,文章提出一種基于節(jié)能DRAND算法的新MAC協(xié)議。新MAC協(xié)議相比較Z-MAC,具有較高的吞吐量和較低的能耗。
Z-MAC在啟動(dòng)時(shí)需要執(zhí)行以下網(wǎng)絡(luò)設(shè)置階段:鄰居發(fā)現(xiàn)、時(shí)隙分配、本地幀交換和全局時(shí)間同步。在鄰居發(fā)現(xiàn)階段,每個(gè)節(jié)點(diǎn)都收集其一跳鄰居列表,其中包含鄰居的一跳鄰居。在鄰居發(fā)現(xiàn)結(jié)束時(shí),每個(gè)節(jié)點(diǎn)將具有兩跳鄰居列表。該列表用作分布式時(shí)隙分配算法的輸入,以將時(shí)隙分配給網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)。時(shí)隙分配階段,采用DRAND算法,該算法根據(jù)兩跳范圍內(nèi)的節(jié)點(diǎn)數(shù)來(lái)分配時(shí)隙,而不是依賴(lài)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。通過(guò)限制每輪申請(qǐng)節(jié)點(diǎn)時(shí)隙的概率,DRAND能保證節(jié)點(diǎn)兩跳范圍內(nèi)的時(shí)隙沒(méi)有重疊,數(shù)據(jù)收發(fā)不會(huì)產(chǎn)生干擾和沖突[8]。之后每個(gè)節(jié)點(diǎn)將自身的幀大小和時(shí)隙數(shù)轉(zhuǎn)發(fā)到其兩跳鄰居節(jié)點(diǎn),完成本地幀交換階段。最后,所有節(jié)點(diǎn)都同步到第一個(gè)時(shí)隙,進(jìn)入Z-MAC的傳輸控制階段。
Z-MAC的傳輸控制階段有兩種節(jié)點(diǎn)模式:低競(jìng)爭(zhēng)級(jí)別(LCL)和高競(jìng)爭(zhēng)級(jí)別(HCL)。在LCL模式, 節(jié)點(diǎn)在自身時(shí)隙內(nèi)可以?xún)?yōu)先發(fā)送數(shù)據(jù),同時(shí)也可搶占共他節(jié)點(diǎn)的時(shí)隙,此時(shí)工作方式為CSMA。當(dāng)節(jié)點(diǎn)從其兩跳鄰居中的節(jié)點(diǎn)接收到顯式競(jìng)爭(zhēng)通知(ECN)時(shí),該節(jié)點(diǎn)會(huì)處于HCL模式,通知兩跳內(nèi)節(jié)點(diǎn)禁止搶占其他時(shí)隙,進(jìn)入TDMA工作方式。
盡管Z-MAC利用了CSMA和TDMA的優(yōu)點(diǎn),但網(wǎng)絡(luò)設(shè)置的4個(gè)階段能耗開(kāi)銷(xiāo)很大[9]。網(wǎng)絡(luò)設(shè)置中的時(shí)隙分配階段采用DRAND,而該算法采用基于隨機(jī)概率的分配機(jī)制,這導(dǎo)致消息在分發(fā)過(guò)程中的沖突率高,算法執(zhí)行時(shí)間長(zhǎng)且能耗較高。為了解決這個(gè)問(wèn)題,相關(guān)研究者提出了基于節(jié)點(diǎn)剩余能量和拓?fù)浣Y(jié)構(gòu)的改進(jìn)時(shí)隙分配算法E-T-DRAND算法[10-11]。該類(lèi)算法是對(duì)DRAND算法的改進(jìn),當(dāng)請(qǐng)求時(shí)隙資源時(shí),低能量節(jié)點(diǎn)具有更高的時(shí)隙分配優(yōu)先級(jí),能夠平衡能耗,提高時(shí)隙利用率。
新混合MAC協(xié)議解決Z-MAC在網(wǎng)絡(luò)設(shè)置階段的鄰居發(fā)現(xiàn)與時(shí)隙分配能耗開(kāi)銷(xiāo)過(guò)大的問(wèn)題,即將E-T-DRAND算法替換Z-MAC中采用的DRAND時(shí)隙分配算法。新協(xié)議和Z-MAC在吞吐量和能量消耗上進(jìn)行對(duì)比,驗(yàn)證新協(xié)議是否比原協(xié)議更節(jié)能。
E-T-DRAND引入了能量拓?fù)湟蜃拥母拍睢⒐?jié)點(diǎn)i的剩余能量表示為Ei,節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)能量信息表示為Ni,未分配時(shí)隙的鄰居節(jié)點(diǎn)的個(gè)數(shù)表示為T(mén)i。能量拓?fù)湟蜃覧T表示為:ET->F(Ei+Ni+α×Ti) ,其中參數(shù)α∈[0, 1]。ET是基于節(jié)點(diǎn)剩余能量和拓?fù)浣Y(jié)構(gòu)的信息,對(duì)時(shí)隙分配有著很大的影響。
E-T-DRAND通過(guò)HELLO消息廣播節(jié)點(diǎn)的剩余能量信息。節(jié)點(diǎn)接收到時(shí)隙分配請(qǐng)求階段發(fā)送的HELLO消息,更新單跳鄰居的剩余能量信息。同理通過(guò)獲取單跳鄰居節(jié)點(diǎn)的剩余能量信息表,節(jié)點(diǎn)更新兩跳鄰居節(jié)點(diǎn)的剩余能量信息。至此,節(jié)點(diǎn)獲得了兩跳范圍內(nèi)的所有鄰居節(jié)點(diǎn)及其剩余能量信息。
為了保障剩余能量低的節(jié)點(diǎn)不會(huì)因?yàn)槟芰亢谋M而中斷傳輸,根據(jù)ET因子來(lái)進(jìn)行時(shí)隙分配優(yōu)先級(jí)設(shè)計(jì)。在時(shí)隙分配請(qǐng)求期間,第一次只有一個(gè)節(jié)點(diǎn)可以發(fā)送消息。一個(gè)節(jié)點(diǎn)鄰居節(jié)點(diǎn)數(shù)較多,如時(shí)隙分配失敗會(huì)導(dǎo)致消耗額外的能量,該節(jié)點(diǎn)將獲得較高的時(shí)隙分配優(yōu)先級(jí)。如果一個(gè)節(jié)點(diǎn)的剩余能量較低,則鄰居節(jié)點(diǎn)也將獲得較高的優(yōu)先級(jí)。如果節(jié)點(diǎn)決定分配一個(gè)時(shí)隙,但是兩跳范圍內(nèi)節(jié)點(diǎn)的剩余能量較低,節(jié)點(diǎn)會(huì)停止分配時(shí)隙并降低其時(shí)隙分配優(yōu)先級(jí)。根據(jù)ET因子,時(shí)隙分配優(yōu)先級(jí)設(shè)計(jì)偽碼描述如下:
Node A;
Node B;//節(jié)點(diǎn)A單跳鄰居節(jié)點(diǎn)
Node C;//節(jié)點(diǎn)A兩跳鄰居節(jié)點(diǎn)
ET[];//節(jié)點(diǎn)的時(shí)隙分配優(yōu)先級(jí)數(shù)組
hasLowEnergy(i);//判斷剩余能量是否較低
ET [A]+=neighbourNum;//初始值為鄰居數(shù)
//提高節(jié)點(diǎn)B的優(yōu)先級(jí)
while(節(jié)點(diǎn)B有未分配時(shí)隙的單跳節(jié)點(diǎn)&& hasLowEnergy(節(jié)點(diǎn)B未分配時(shí)隙的單跳節(jié)點(diǎn))) {
ET [B]++;
}
//提高節(jié)點(diǎn)C的優(yōu)先級(jí)
while(節(jié)點(diǎn)C有未分配時(shí)隙的兩跳節(jié)點(diǎn)&& hasLowEnergy(節(jié)點(diǎn)C未分配時(shí)隙的兩跳節(jié)點(diǎn)))
{
ET [C]++;
}
//發(fā)送時(shí)隙請(qǐng)求
while(max(ET [])==ET [A])
{
發(fā)送時(shí)隙請(qǐng)求包;
設(shè)置當(dāng)前狀態(tài)為請(qǐng)求狀態(tài);
}
設(shè)定由N個(gè)節(jié)點(diǎn)組成且分布均勻的WSN。r表示節(jié)點(diǎn)的傳輸半徑,A表示所有節(jié)點(diǎn)在其中移動(dòng)的二維幾何區(qū)域。
根據(jù)E-T-DRAND算法,兩跳范圍內(nèi)只有一個(gè)節(jié)點(diǎn)可以訪問(wèn)時(shí)隙。從幾何學(xué)角度分析,任意兩個(gè)節(jié)點(diǎn)在彼此傳輸半徑的概率為πr2/A。對(duì)于任何兩個(gè)這樣的連接節(jié)點(diǎn),間距x(0≤x≤r)的累積分布函數(shù)為:

(1)
隨機(jī)分布函數(shù)f(x)=F(x)dx=2x/r2,間距x的期望值可表示如下:

(2)

由于新混合MAC協(xié)議根據(jù)ET因子來(lái)進(jìn)行時(shí)隙分配優(yōu)先級(jí)設(shè)計(jì),分析中先假定任意一個(gè)節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)包的概率為α,占用時(shí)隙后發(fā)送數(shù)據(jù)包的概率為α/N。設(shè)定P為一個(gè)節(jié)點(diǎn)競(jìng)爭(zhēng)時(shí)隙的概率,則節(jié)點(diǎn)競(jìng)爭(zhēng)成功概率可以表示為:
那么一個(gè)節(jié)點(diǎn)的近似平均吞吐量Tnode可表示如下:
通過(guò)分析可知,節(jié)點(diǎn)的吞吐量和WSN中的節(jié)點(diǎn)數(shù)成正比例關(guān)系。在協(xié)議仿真階段,將通過(guò)不同節(jié)點(diǎn)數(shù)來(lái)驗(yàn)證新MAC協(xié)議的吞吐量和其他性能。
網(wǎng)絡(luò)模擬器(NS2)是一款開(kāi)源且提供的模塊幾乎涉及到了網(wǎng)絡(luò)技術(shù)的所有方面[12]。利用NS2,可以較方便添加新的MAC協(xié)議。由于新MAC協(xié)議是基于Z-MAC,將新MAC協(xié)議從吞吐量和能量消耗方面和Z-MAC進(jìn)行比較。
網(wǎng)絡(luò)拓?fù)溆?0~200個(gè)節(jié)點(diǎn)組成,節(jié)點(diǎn)隨機(jī)分布在區(qū)域?yàn)?0 m*40 m的范圍,信道速率為1 Mbps,傳輸功率為2.4 GHz。節(jié)點(diǎn)根據(jù)彼此的距離分成不同集群,每個(gè)集群節(jié)點(diǎn)數(shù)為5~10個(gè)。
3.2.1 吞吐量
圖1顯示了新MAC協(xié)議與Z-MAC在不同節(jié)點(diǎn)數(shù)下的吞吐量對(duì)比。隨著節(jié)點(diǎn)數(shù)的增加,系統(tǒng)吞吐量明顯增大。由于新MAC協(xié)議在網(wǎng)絡(luò)設(shè)置階段采用E-T-DRAND時(shí)隙分配算法,避免了在時(shí)隙分配請(qǐng)求階段的隨機(jī)性,提高了時(shí)隙利用率。即MAC協(xié)議相比較Z-MAC提高了系統(tǒng)吞吐量。
3.2.2 能量消耗
圖2顯示了新MAC協(xié)議與Z-MAC在不同節(jié)點(diǎn)數(shù)下的能耗對(duì)比。隨著鄰居節(jié)點(diǎn)數(shù)的增加,傳輸鏈路變短,能耗明顯降低。而新MAC協(xié)議減少了時(shí)隙分配失敗的可能性,平衡了能耗,相比較Z-MAC,新MAC協(xié)議的能耗要更低。
文章探討了Z-MAC協(xié)議的優(yōu)缺點(diǎn),針對(duì)Z-MAC能耗較高的問(wèn)題,提出使用節(jié)能的E-T-DRAND時(shí)隙分配算法替代Z-MAC協(xié)議使用的DRAND算法。在此基礎(chǔ)上,設(shè)計(jì)了新的混合MAC協(xié)議,新協(xié)議通過(guò)對(duì)節(jié)點(diǎn)時(shí)隙分配階段節(jié)點(diǎn)剩余能量及拓?fù)湫畔⒏拢瑴p少了由于隨機(jī)性時(shí)隙競(jìng)爭(zhēng)引起的相鄰節(jié)點(diǎn)的能量消耗。通過(guò)仿真,證明了新的混合MAC協(xié)議比Z-MAC節(jié)約了能耗并提高了系統(tǒng)吞吐量。