唐健華
(南京郵電大學 通信與信息工程學院 江蘇 南京 210003)
無線傳感網絡包括多個能量有限的智能節點,無線傳感網絡沒有像通信基站一樣的中央控制機構,網絡節點的節能效能直接影響無線傳感網絡的使用壽命,因此在設計無線傳感網絡的MAC協議時,重點關注的問題有:能量感知[7]和節省;網絡效率;可擴展性。對于無線傳感網絡,能量的重要性以及由能源而引起的高失效性是一個很值得關注的方面,這種網絡需要一種有效的MAC協議[2]。在無線傳感網絡中,任何一個節點能量的耗盡都將影響整個網絡的性能,所以降低能耗成為了MAC協議設計中的一個最主要的目標。 因此在本文中,我們提出一種改進的有效節能的MAC協議。
IEEE 802.11 MAC DCF源于CSMA/CA,使用4次握手機制實分布式數據業務接入過程,采用RTS/CTS的虛擬載波偵聽機制和幀分割技術,它包括兩個重要組成部分:監聽和退避機制,因業務類型不匹配,它并不太適合無線傳感網絡。
在無線傳感網絡中,S-MAC協議是一個典型的能量節省協議[1]。S-MAC協議是一種隨機接入,采用監聽與睡眠機制的協議,但這兩點持續時間是固定的。在S-MAC協議中,它的時間幀分為兩個部分,一個是監聽階段,一個是睡眠階段,如圖1,顯示這種協議的睡眠機制。

圖1 S-MAC 的基本機制
僅當節點處于監聽周期時才可以與其它節點通信,才能發送一些控制報文,如SYNC,RTS,和CTS,相鄰節點間的SYNC控制報文交換可以同步周圍的節點,RTS/CTS分組則負責節點之間的通信,在睡眠周期內,當節點之間有數據傳送時就喚醒節點進行數據包的傳輸,沒有數據時就讓其處于睡眠狀態。同樣地,所有其它的節點都按同樣的睡眠機制來避免無效的監聽[1]。
圖1說明了S-MAC協議基本的策略[4],在圖中,假設有3個節點,節點A競爭獲得時隙發送它的SYNC分組,在緩存隊列中它向節點B發送數據流,節點A再獲得發送RTS分組機會(見圖1(a)),在節點B接收到RTS分組后,它向節點A發送CTS分組確認。
當這兩點節點成功交換RTS/CTS分組后,這兩節點將進入睡眠時隙,而此時如果有數據要傳送,則兩節點應該處于喚醒狀態,用這段時隙來進行數據的傳送,直到下一個監聽時隙。同時,所有其它沒有數據通信的節點將進入睡眠狀態。
雖然S-MAC協議也能減少監聽時間,由于它采用固定時隙,因而它不是最優的。由此引發的問題是,當沒有節點有數據要發送的,在監聽周期也沒有相應的RTS/ CTS分組要發送,而此時,每一節點也將按機制進入監聽周期,這樣將產生能量的浪費(如圖1(b) ),這主要是由于S-MAC協議沒有考慮網絡中實際的流量信息。這樣就促使我們去想出一種新的更有效節能的傳感網MAC協議,當節點感知到在當前時間幀中沒有數據流時,盡早地讓節點進入睡眠狀態,從而節省能量。
為了減少能量消耗,本文在已有的S-MAC的基礎上主要做出兩點修改:第一,當感知網絡中沒有數據要發送的時候盡早讓節點關閉射頻模塊,第二,即使有可能存在數據流時也要限制單獨RTS控制分組的通信。在S-MAC協議中,沒有考慮網絡中數據通信有無的可能性,這樣在監聽周期內,每個節點都要求處于激活狀態[8]。而我們現在要做的是,利用每個節點的流量信息去避免節點在整個監聽周期都處于激活狀態。
S-MAC把每個監聽周期分為了SYNC,RTS ,CTS分組間隔,這樣監聽將花費較長的時間。在同一平臺測試過,S-MAC協議總的監聽時間可達115ms,而相應的此節能協議具有83ms短的時間,它把監聽周期只分為兩個部分:一部分是當節點有信息要傳送時發送SYNC分組的監聽時隙,稱之為SYNCdata,另一部分是當緩存里沒有可發送的數據時發送SYNC分組的監聽時隙,可稱之為SYNCnodata。這也就是說,這種協議每個節點根據發送SYNC分組的不同區別不同的時隙。這種區分是基于一個節點有沒有數據要發送來決定的。可以這樣,當一個節點沒有任何數據流的時候,它將延遲一段時間將本段SYNC并入到二部分監聽時隙,如SYNCnodata周期。這樣的話,當緩存隊列中沒有可發送的消息時,在SYNCdata周期將不會存在SYNC分組,如此,當節點在SYNCnodata周期內收到SYNC分組后就可讓自己進入睡眠狀態,這樣就可大大加長節點的睡眠時間。
對于沒有數據通信的節點,甚至在一些有數據流以致要在第一部分監聽周期發送SYNC分組的節點中,且設這樣的節點為節點X,該協議可更進一步減少監聽時間。可以通過將RTS放入SYNC分組包時來達到這樣的目的。假設節點X獲得信道權限在SYNCdata周期發達SYNC分組,節點X也應假設有數據要發,同時根據RTS,SYNC分組的結構特點,所以,將RTS和SYNC分組包組合在一起是可行的。我們將SYNC和RTS合到一起的這樣控制數據包稱為SYNCrts分組,圖2表示SYNCrts的分組結構。

圖2 SYNCrts分組結構
這種新的控制分組結構只是在原形SYNC結構上增加了兩個原來在RTS中的域,接收的地址域ToAddr和網絡分配矢量NAV。
當在SYNCdata時隙尾收到SYNCrts包時,節點不僅可以獲得同步信息,而且還可知道數據接收者的地址信息。因此,只需目的節點在收到SYNCrts包時傳回CTS分組包進行行確認即可,而其它在SYNCnodata周期時就沒必要喚醒起來收包了,它們就只需在很短的第一部分監聽周期保持激活狀態就可以了。這樣的話,這種協議節能協議睡眠機制中的監聽與睡眠周期就是可變可適應流量變化的而不像S-MAC那樣是固定的。如圖3所示。

圖3 改進節能協議的基本機制
在圖3中,節點A有數據發往節點B,節點A在它的第一監聽周期廣播它的SYNCrts控制包。假定這個包成功廣播出去,節點B將會檢測包的地址信息并向節點A回復CTS分組進行確認,同時其它結點可以獲知該控制分組不是發給自己的而讓自己處于睡眠狀態直到下一個監聽周期。然后節點A與節點B利用它們的睡眠周期進行數據的傳送。當它們發送完數據后就進入睡眠狀態。圖3(b)則說明了當沒有數據流時的情況。
將IEEE802.11,S-MAC和本文的協議在節能方面做個比較。為了估計這3種不同協議的性能,我們利用無線傳感網的專門仿真工具并采用一個簡單的拓撲結構圖,如圖4所示。

圖4 簡單兩跳式網絡拓撲示意圖
這拓撲結構圖是包含兩個源節點兩個目的節點的二跳網絡圖。數據流從節點A傳到Sink2,從節點B到Sink1,兩個數據流都經過中間節點C。我們改變消息的到達周期來測量在不同的流量負荷情況下所消耗的能量。這本實驗中,可以設定消息的發送間隔為1s到7s,例如,設消息的到達間隔為7s,每7s源節點發送20個消息,當兩個源節點都發送了20個消息到每個Sink結點時我們停止測試。這實驗中我們分別使用3種不同的MAC協議測試它們的3個參數:源節點的睡眠時間比,源節點總的控制報文數量以及源節點的總能量消耗。經過實驗訪真可以得到以下這些結果。
以下幾個曲線圖反應了實驗的對比結果(見圖5-圖7)。

圖5.源節點的睡眠時間比
圖6如下,源節點總的控制報文數量

圖6.源節點總的控制報文數量
圖7如下:源節點的總能量消耗

圖7 源節點的總能量消耗
從以上3幅實驗對比圖可以看出,無論是在節點的休眠時間,源節點控制報文數量還是總的能量消耗方面,該協議都具有更好的性能。
在本文中,我們為無線傳感網改進了一種新的節能MAC協議。為了節省能耗,協議是基于S-MAC協議同樣的睡眠機制。然而,該協議能有效利用節點的流量信息,使得睡眠和監聽周期的持續時間隨流量信息變化,能達到更有效節能的目的。經過實驗表明,該節能協議比IEEE802.11和S-MAC在節能方面有更大的優勢。
[1] 宋文. 無線傳感器網絡技術與應用[M].北京:電子工業出版社,2007.
[2] P.Lin, C.Qiao.Medium Access Control With A Dynamic Duty Cycle For Sensor Networks[J].inWCNC,2004(3).
[3] A.El-Hoiydi,J.-D.Decotignie.Low Power MAC Protocols for Infrastructure WSN[C]. Swiss Center for Electronics and MIcrotechnology, 2007.
[4] T.V.Dam and K.Langendoen.An adaptive energyefficient MAC protocol for wireless sensor networks[C]. in ACM Sensys,2003.
[5] W.Ye, J.Heidemann,D.Estrin. An energy-efficient MAC protocol for wireless sensor networks[J].IEEE INFOCOM,2002.
[6] Matthew J.Miller .A MAC Protocol to Reduce Sensor Network Energy Consumption Using a Wakeup Radio[J].Technical Report,2004.
[7] Gang Lu,Bhaskar Krishnamachari.An adaptive energyefficient and low-latercy MAC for tree=based data gathering in sensor networks [C].University of Southern California U.S.A. 2007.