無線傳感器網絡MAC協議(下)

2.其他基於IEEE802.11改進的MAC協議

儘管傳統的基於CSMA方式的MAC協議也是基於載波監聽和退避機制,但它們並不太適合無線傳感器網絡,因爲它們都基本假設了隨機分佈的業務,並且趨向於支持獨立的點到點的業務流。此外,無線傳感器網絡的MAC協議必須支持可變的而且高度相關和可控的週期業務。任意基於CSMA的MAC機制都有兩個重要組成部分:監聽和退避機制。實際上,無線傳感器網絡MAC協議關注的基本問題主要還是能耗管理,而射頻通信模塊是能耗的最大部件,而MAC協議直接控制射頻通信模塊,對無線傳感器網絡節點節能具有重要的影響。

(1) S-MAC/DSMAC

W.Ye等通過實驗證實了無線傳感器網絡無效能耗的四大來源:空閒監聽,由於節點不知何時鄰居節點會向自己發送數據,射頻通信模塊一直處於接收狀態,消耗大量能量;數據衝突,鄰居節點同時向同一節點發送多個數據幀,信號相互干擾,接收方無法準確接收,重發數據造成能量浪費;串擾,接收和處理無關的數據;控制開銷,控制報文不傳送有效數據,消耗節點能量。在IEEE802.11MAC協議基礎上,W.Ye等提出了第一個完全針對無線傳感器網絡設計的MAC協議S-MAC(Sensor MAC),具有有效節能、擴展性和衝突避免三大優點。S-MAC協議對網絡做了三大基本假設:擁有很多小的傳感器節點;採用Ad-hoc網絡配置;節點致力於協作完成一個或多個共同任務。此外,對於無線傳感器網絡應用,S-MAC協議還假設了網絡能夠容忍一定的通信延遲;具有較長的空閒週期(直到檢測到事件發生爲止);應用關注網絡的壽命。針對上面提到的四種能量浪費因素,S-MAC採用的主要應對機制如下:

1) 週期監聽和睡眠機制

S-MAC協議將時間分爲幀,幀長度由應用程序決定。幀內分監聽工作階段和睡眠階段。監聽/睡眠階段持續時間根據應用可調,當節點處於睡眠階段就關掉無線電波以節省能量,但需緩存這期間收到的數據以便工作階段集中發送並設置一個喚醒定時器。節點還需發送週期同步信息以同步鄰居(通過虛擬簇方式),相鄰節點也可採用相同的監聽/睡眠策略,新節點也可加入進來,節點還需要廣播它們各自的監聽/睡眠計劃,這樣使得S-MAC具有良好的擴展性。S-MAC協議採用RTS/CTS/DATA/ACK機制發送數據,發送數據期間不會進入睡眠階段。該機制存在不足的是由於採用週期睡眠會帶來一定的通信延遲,此外會佔用大量存儲空間緩存數據,這在資源受限的無線傳感器網絡顯得尤爲突出,如圖3-4所示給出了S-MAC協議週期性監聽和睡眠。

2) 衝突和串音避免機制

爲了減少衝突和避免串音,S-MAC採用了物理和虛擬載波(使用網絡分配矢量NAV)監聽機制和RTS/CTS握手交互機制。與IEEE802.11 MAC協議不同的是當鄰居節點正在通信時,S-MAC協議節點直接進入睡眠階段;當接收方節點處於空閒並正在監聽週期時,就會被喚醒。串音分組通常是不需要的分組,它隨着節點密度和業務負載增加而變得更加嚴重,因而造成能量浪費。串音可以通過更新基於RTS/CTS的NAV來避免,當NAV不爲零就進入睡眠階段,從而避免串音現象發生。一個可以遵循的原則就是當發送方和接收方的所有鄰居在節點發送數據期間監聽到RTS/CTS後就應當進入睡眠階段。

3) 消息傳遞機制

S-MAC協議採用了消息傳遞機制以很好支持長消息的發送。對於無線信道,傳輸差錯和消息長度成正比,短消息傳輸成功的概率要大於長消息。消息傳遞技術根據這一原理,將長消息分爲若干個短消息,採用一次RTS/CTS交互的握手機制預約這個長消息發送的時間,集中連續發送全部短消息,既可以減少控制報文開銷,又可以提高消息成功發送率。IEEE802.11 MAC與S-MAC協議不同的是考慮了網絡的公平性,RTS/CTS只預約下一個短消息發送的時間,其他節點在每個短消息發送完成後都不需醒來進入監聽工作階段,只要發送方沒有收到某個短消息的應答,連接就會斷開,其他節點便可以開始競爭信道。

4) 流量自適應監聽機制

在多跳無線傳感器網絡中,節點週期性睡眠會導致通信延遲的累加。S-MAC協議採用了流量自適應監聽機制,減小了通信延遲的累加效應。主要思想就是在一次通信過程中,通信節點的鄰居節點在通信結束後不立即進入睡眠階段,而是保持監聽一段時間。如果節點在該時間段內收到RTS分組,則可立即接收數據,無須進入下一次監聽工作週期,從而減少了數據分組的傳輸延遲。如果這段時間沒有收到RTS分組,則轉入睡眠階段直到下一次監聽工作週期。

DSMAC協議是在S-MAC協議基礎上引入了動態工作週期特徵,旨在減少延遲敏感應用的傳輸延遲。在SYNC同步期間,所有節點共享一跳的延遲值(指當接收到進入隊列的一個分組與其傳輸之間的時間間隔),且開始都是相同的工作週期。如圖3-5所示給出了DSMAC協議工作週期加倍的原理。當一個接收節點發現平均一跳延遲值較高時,就決定縮短其睡眠時間並在SYNC期間廣播該消息。對應地,當發送節點收到睡眠時間縮短信號,則檢查其隊列的發往接收方的分組。如果存在一個分組且電池高於規定的閾值時,就決定將其工作週期加倍。

DSMAC協議工作週期加倍後使得鄰居的調度將不受影響。這樣其傳輸延遲要優於S-MAC協議的延遲。此外,對於每個分組而言,DSMAC協議擁有更低的平均功耗。

(2) T-MAC

T-MAC(Timeout-MAC)協議是在S-MAC協議基礎上改進的,也將時間分爲幀,幀長度固定,監聽工作長度可變。作者認爲空閒監聽的能耗佔前面提到的四種無效能耗中絕對大的比例,特別是在消息傳輸頻率較低的情況下。T-MAC協議規定了五種事件和一個計時器TA,根據TA確定監聽工作階段的結束時間。五種事件分別是:幀長度超時,即週期時間定時器溢出;節點在無線信道收到數據;通過接收信號強度指示RSSI感知數據傳輸衝突;節點的數據或確認發送完成;通過監聽RTS/CTS確認鄰居節點完成數據交換。如果在TA內,通信模塊沒有監聽到這五種事件中的任何一種,就認爲信道進入空閒狀態。節點就關閉無線電波通信模塊,進入睡眠階段。爲了減少空閒監聽能耗,可以採用低能耗監聽技術。T-MAC協議節點週期性地短時間監聽信道,以確定信道空閒狀態。如果無線信道空閒,節點再次進入睡眠階段。如果信道忙,節點繼續監聽信道,直到數據接收完畢或信道再次空閒。節點在發送數據時,幀前加入喚醒前導,使得接收節點在幀的數據部分發送前進入工作狀態,以接收數據。加入喚醒前導,增加了發送和接收數據的控制開銷,但減少了空閒監聽的能耗。大家知道,S-MAC協議的週期長度受限於應用延遲要求和節點緩存大小,活動時間主要依賴於消息速率。這樣就存在一個問題:延遲要求和緩存大小通常都是固定的,而消息速率是變化的。如果要保證及時可靠的消息傳輸,節點活動時間必須適應最高通信負載。當負載較小時,節點處於空閒監聽時間相對增加。針對此問題,T-MAC協議在保持週期長度不變的基礎上,根據通信流量動態調節活動時間,用突發方式發送消息,從而減少空閒監聽時間。相對於S-MAC,T-MAC協議減少了處於活動階段的時間。在每個活動階段的開始,T-MAC按照突發方式發送所有數據,其中TA決定每個週期最小的空閒監聽時間,它的取值對於整個協議性能至關重要,如圖3-6所示。

由於無線傳感器網絡存在業務匯聚的數據單向通信情況,T-MAC協議存在一種特殊的通信延遲,即早睡(Early-sleep Problem)問題。如圖3-7所示,假設節點A沿路線A→B→C→D傳輸數據到節點D。如節點A首先獲得競爭優先權發送數據RTS消息給節點到B,B收到RTS後應答CTS消息。節點C收到B發出的CTS消息立即轉入睡眠階段,等節點B接收完數據才醒來,以便接收節點B發給它的數據。D由於不知道節點A和B之間的通信存在,故節點A→B的通信結束後就處於睡眠階段,節點C只有等到下一個工作週期才能傳數據給節點D,這樣就存在一個通信延遲,即早睡現象。

爲克服上面的目的節點早睡問題,T-MAC協議又提出了兩種解決方案:第一種方法是在節點C和A分別引入FRTS(Future Request-To-Send)和DS(Data-Send)分組。節點C收到B發給A的CTS分組後立即向下一跳節點D發出FRTS,其中包含D接收數據前需等待的時間,節點D必須睡眠該等待時間後才能喚醒接收數據。節點A收到CTS分組後需發送一個與FRTS等長度的分組DS才能實現對無線信道的佔用,節點A在DS分組之後就可發送數據消息了。儘管FRTS方法提高了數據吞吐率,但帶來了額外的分組FRTS和DS通信開銷。第二種方法就是滿緩衝區優先策略(Full Buffer Priority)。當節點緩衝區快要滿時,對收到的RTS不予應答,而立即向目標接收者發送RTS消息,並傳輸數據給目標節點。該方法優點是減小早睡問題發生的可能性,起到一定網絡流量控制作用,然而增加了網絡衝突的可能性。

(3) Sift

Sift協議是K.Jamieson等提出的基於事件驅動的無線傳感器網絡MAC協議,不同於上面IEEE802.11和其他基於競爭的MAC協議,它充分考慮了無線傳感器網絡的三個特點:大多數傳感器網絡是事件驅動的網絡,因而存在事件檢測的空間相關性和事件傳遞的時間相關性;由於匯聚節點的存在,不是所有節點都需要報告事件;感知事件的節點密度隨時間動態變化。

Sift協議設計的目的是當共享信道的N個傳感器節點同時監測到同一事件時,希望R個節點(R≤N)能夠在最小時間內無衝突地成功地發送事件檢測消息,抑制剩餘(N-R)個節點的消息發送。Sift協議不但保留了S-MAC和T-MAC協議都具有的儘可能讓節點處於睡眠階段以節省能量的功能。而且,由於無線傳感器網絡的流量具有突發性和局部相關性,Sift協議很好地利用了這些特點,通過在不同時隙採用不同的發送概率,使得在短時間內部分節點能夠無衝突地廣播事件,從而在節省能量的同時也減少了消息傳輸的延遲,這是和以往的MAC協議的最大不同之處。

通常一般的基於窗口的競爭性MAC協議中,當有數據需要發送時,節點首先在發送窗口[1,CW]內的概率隨機選擇一個發送時隙;然後節點監聽直到選擇的發送時隙到來。如監聽期間沒有其他節點使用信道,則節點立即發送數據,否則需在信道空閒時重新選擇發送時隙。當多個節點選擇相同一個時隙時就會發生衝突。多數協議都是規定衝突節點倍增CW值,並在新窗口內重新選擇發送時隙,以增大無衝突發送的概率。但是,這種方法使無線傳感器網絡存在新的問題:當多個節點同時監測到同一事件,並同時發送數據時,導致事件區域內節點同時閒忙,忙時競爭加劇,需要經過很長時間來調整CW值,以適應發送節點的數目;如果CW值很大,而同時監測同一事件的節點數目很少時,就會造成報告事件的延遲較大;此外,CW取值是爲了保證所有活動節點都有機會發送數據,而無線傳感器網絡只需N個活動節點中有R個節點能夠無衝突地報告事件。Sift協議採用的是CW值固定的窗口,節點不是從發送窗口選擇發送時隙,而是在不同時隙中選擇不同發送數據的概率。因此,關鍵在於如何在不同時隙爲節點選擇合適的發送概率分佈,使得監測到同一事件的多個節點能夠在競爭窗口前面各個時隙內無衝突地發送數據消息。

Sift協議工作過程如下:當節點有消息發送時,首先假定當前有N個節點與其競爭發送。如果在第一個時隙內節點不發送消息,也無其他節點發送消息,則節點就減少假想的競爭發送節點的數目,並相應地增加選擇在第二個時隙發送數據的概率;如果節點沒有選擇第二個時隙,且無其他節點在該時隙發送消息,則節點繼續減少假想的競爭發送節點數目,並進一步增加選擇第三個時隙發送數據的概率。依次類推,節點在選擇第r個時隙發送數據的概率Pr爲:

式中,α爲分佈參數(0<α<1)。如果選擇時隙過程中有其他節點發送消息,節點就進入重新開始競爭過程。Sift協議就是通過非均勻概率分佈將優勝節點從整個競爭節點中篩選(Sift)出來的。式(3-1)中參數α選擇與N和CW值相關。具體設置見參考文獻[13]。

Sift協議和S-MAC以及T-MAC協議一樣只是從發送數據的節點考慮問題,對接收節點的空閒狀態考慮較少,需要節點間保持時鐘同步,特別適合於傳感器網絡內局部區域使用,如分簇結構網絡。簇頭可以一直處於監聽狀態,這樣節點發送消息給一直處於活動狀態的簇頭節點,通過簇頭節點的能量消耗換來消息傳輸延遲的縮短。

(4) WiseMAC

由於T-MAC協議在幀前加入了喚醒前導,這樣就引入了控制開銷。爲了將控制開銷壓縮到最小,WiseMAC協議在數據確認分組中攜帶了下一次信道監聽時間,節點獲得所有鄰居節點的信道監聽時間。在發送數據時可以將喚醒前導壓縮到最短。

考慮節點時鐘的漂移,喚醒前導長度TP=min(4θL,TW)。其中,θ是節點的時鐘漂移速度,L是從上次確認分組到現在的時間,TW是所有節點監聽信道的時間間隔。儘管WiseMAC協議能夠很好地適應網絡流量的變化,但是節點需要存儲鄰居節點的信道監聽時間,會佔用大量存儲空間,並增加協議實現的複雜度,對於高密度的無線傳感器網絡,該問題較爲突出。

(5) B-MAC

B-MAC(Berkeley-MAC)協議採用信道估計和退避算法分配信道,通過鏈路層保證傳輸可靠性,利用低功耗技術減少空閒監聽,實現低功耗通信。

信道估計憑藉對接收信號強度指示RSSI,採用指數加權移動平均算法計算出信道的平均噪聲,再將一小段時間內的最小RSSI值與平均噪聲相比較,從而確定信道的衝突狀態。退避算法根據應用需求可以選擇初始退避和擁塞退避兩種方式。

(6) IEEE 802.15.4 MAC協議

IEEE 802.15.4爲無線傳感器網絡的應用提供了一種低成本、低功耗和低速率的無線聯網的標準。該標準不但定義了物理層,即可以有三種頻率選擇(2.4GHz、915MHz和868MHz),而且也規定了MAC層協議採用CSMA/CA的競爭性接入方式。爲降低功耗,採用了緩存節能機制,如圖3-8所示。節點週期監聽信道,接收信標(Beacon)幀,當沒有數據接收和發送時就進入睡眠階段。網絡協調者暫時緩存發往睡眠節點的數據,並定期發送信標幀,信標幀攜帶了這些緩存數據的目的節點的地址。當節點發現網絡協調者緩存了發往自己的數據之後,向其發送輪詢幀(Poll),表明自己可接收數據了。當網絡協調者收到輪詢幀後,首先向節點發送確認幀(ACK),然後發送緩存的數據。收到數據後,節點再向網絡協調者發送確認幀。

(7) BMA協議

BMA協議適合於分簇的無線傳感器網絡,分爲簇建立和穩定兩個階段。在簇建立期間,節點是根據剩餘能量多少來選擇簇頭節點的。所有當選簇頭通過非持續的CSMA方式向其他節點廣播當選通告。其他節點收到通告後根據接收信號強度決定加入哪一個簇。經過一段時間系統進入穩定工作階段。該階段由若干定長的會話組成,每個會話包括競爭階段、數據傳輸階段和空閒階段。競爭階段所有節點都打開通信模塊,競爭數據傳輸階段。競爭階段之後,簇頭建立數據發送調度策略並向簇內節點廣播數據發送調度策略,這樣每個需要發送數據的節點獲得了一個確定的發送時間。各個節點只有在自己的發送時問內打開通信模塊,向簇頭髮送數據,其餘時間都轉入睡眠階段。如果一個長會話內沒有節點發送數據,那麼數據傳輸階段長度爲0。簇頭收到簇內節點數據後,需要進行數據融合,並向匯聚節點發送。相比於傳統的TDMA和有效節能的TDMA協議(節點在分配給它的時隙裏沒有數據發送就將無線電通信模塊關掉),BMA協議最大的貢獻就是使得平均分組延遲大大減小。

此外,除了上面主要關注節能和延遲的MAC協議外,Woo和Culler提出了一個新的基於CSMA的無線傳感器網絡的MAC競爭協議,考慮了有效節能和公平性問題,沒有引入額外的控制分組開銷,並從仿真實驗證實了採用固定的監聽週期策略且在退避期間關掉無線電波方式較爲節能,而且引入隨機延遲使得無線傳感器網絡對於避免數據的反覆衝突提供了魯棒性。他們還提出了一種自適應傳輸速率控制機制,實現了公平性和較好的吞吐性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章