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

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

(2)

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