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