摘 要: 在無線傳感器網(wǎng)絡中,基于競爭的S-MAC協(xié)議存在無法使節(jié)點的活動時間根據(jù)通信負載動態(tài)變化以及節(jié)點休眠帶來的延遲問題。本文結合T-MAC協(xié)議和D-MAC協(xié)議,提出了自己針對這些問題的改進方法。仿真結果證明,提出的改進方法不僅能夠使節(jié)點的活動時間適應通信負載的動態(tài)變化,還能夠極大地減少節(jié)點休眠帶來的延遲。
關鍵詞 : S-MAC ; 通信負載;延遲 ; NS-2
1 引言
隨著計算機、傳感器和無線通信的發(fā)展,出現(xiàn)了一種新興的計算機網(wǎng)絡——無線傳感器網(wǎng)絡[1] 。由于其廣泛的應用前景,無線傳感器網(wǎng)絡受到越來越多研究人員的青睞。介質訪問控制(MAC)協(xié)議決定了無線信道使用的方式,在傳感器結點之間分配有限的通信資源,用來構建傳感器網(wǎng)絡系統(tǒng)的底層基礎結構。MAC協(xié)議對傳感器網(wǎng)絡的性能有較大影響,是保證無線傳感器網(wǎng)絡高效通信的關鍵網(wǎng)絡協(xié)議之一。
S-MAC [2]協(xié)議是一種典型的基于競爭的隨機訪問MAC協(xié)議,它是建立在IEEE802.11MAC[3] 協(xié)議的基礎上,針對傳感器網(wǎng)絡的節(jié)省能量需求而提出來的傳感器網(wǎng)絡MAC協(xié)議。該協(xié)議具有良好的擴展性,不要求嚴格的時間同步,但是它也存在著節(jié)點活動時間無法根據(jù)通信負載動態(tài)變化以及節(jié)點休眠帶來的延遲問題。
本文首先解析了S-MAC協(xié)議采用的機制,指出其存在的問題,然后結合T-MAC協(xié)議和D-MAC協(xié)議,提出了改進方法。最后通過仿真分析,證明了改進后的方法能使節(jié)點活動時間靈活的適應網(wǎng)絡通信負載的變化,進一步節(jié)省了能量,同時能在很大程度上減少節(jié)點休眠產(chǎn)生的延遲。
2 S-MAC協(xié)議采用機制解析
S-MAC協(xié)議是一種基于競爭的控制協(xié)議,它主要采用以下機制:
“虛擬簇”機制:每個節(jié)點在每個時隙開始的時候廣播含有自己調度信息的同步數(shù)據(jù)包,接受到同步數(shù)據(jù)包的節(jié)點按需要調整時鐘。這樣具有相同調度的節(jié)點形成一個“虛擬簇”。原則上整個網(wǎng)絡應該工作在同一“時隙結構”,但是由于移動性和時隙調度機制,在網(wǎng)絡中可包含許多“虛擬簇”。
周期性活動和休眠機制:S-MAC協(xié)議將時間劃分為多個幀,每個幀由兩部分構成:活動狀態(tài)和休眠狀態(tài)。在活動狀態(tài)節(jié)點和相鄰節(jié)點進行通信,接收或發(fā)送數(shù)據(jù),活動狀態(tài)通常固定在300ms。在休眠狀態(tài)節(jié)點將其發(fā)射接收器關閉,以此減少能量的損耗,如果此時有數(shù)據(jù)要處理,就被緩存起來,等到節(jié)點處于活動狀態(tài)再處理,通過周期性的活動/休眠大大減少了空閑監(jiān)聽造成的能量損耗。
3 S-MAC協(xié)議存在問題
S-MAC協(xié)議采用周期性的活動/休眠調度機制,活動時間通常是固定不變的,而消息速率是變化的,協(xié)議處于活動狀態(tài)的時間長度不能根據(jù)網(wǎng)絡中業(yè)務量的變化動態(tài)調整,不能有效的節(jié)省能量。
通信模塊處于休眠狀態(tài)的節(jié)點,如果檢測到事件,就必須等到通信模塊轉換到活動周期才能發(fā)送數(shù)據(jù),中間節(jié)點要轉發(fā)數(shù)據(jù)時,下一跳節(jié)點可能處于休眠狀態(tài),此時也必須等到它轉換到活動周期,這種由于節(jié)點休眠帶來的延遲會隨著路徑上跳數(shù)的增加成比例增加。
4 S-MAC協(xié)議的改進
針對無線傳感器網(wǎng)絡S-MAC協(xié)議存在無法使節(jié)點的活動時間根據(jù)通信負載動態(tài)變化以及節(jié)點休眠帶來的延遲問題,我們首先分析一下T-MAC協(xié)議和D-MAC協(xié)議對它的改進,然后再提出自己的改進方法。
T-MAC協(xié)議主要是針對S-MAC協(xié)議活動時間固定、無法適應通信負載變化的問題而提出來的。它在保持周期長度不變的基礎上,根據(jù)通信流量動態(tài)地調整活動時間。處在活動狀態(tài)的節(jié)點,如果在一個給定時間TA內(nèi)沒有發(fā)生周期時間定時器溢出或感知網(wǎng)絡發(fā)生沖突,就結束活動狀態(tài),進入休眠狀態(tài),但是引入了早睡問題。
D-MAC協(xié)議主要是針對節(jié)點休眠帶來的延遲問題而提出來得。它采用交錯調度機制,將節(jié)點周期劃分為接收時間、發(fā)送時間和休眠時間。其中接受時間和發(fā)送時間相等,均為發(fā)送一個數(shù)據(jù)分組的時間。每個節(jié)點的調度具有不同的偏移,下層節(jié)點的發(fā)送時間對應上層節(jié)點的接收時間。這樣數(shù)據(jù)能夠連續(xù)地從數(shù)據(jù)源節(jié)點傳送到匯聚節(jié)點,減少了傳輸延遲,但是D-MAC協(xié)議需要嚴格的時間同步。
結合T-MAC協(xié)議和D-MAC協(xié)議各自的優(yōu)缺點,下面提出了自己對S-MAC協(xié)議的改進方法,改進后的S-MAC協(xié)議機制如圖1所示:
[align=center]

圖1 S-MAC改進[/align]
節(jié)點周期仍然劃分為活動時間和休眠時間兩部分,活動時間和休眠時間都不是固定的。在改進后的協(xié)議中節(jié)點周期性喚醒進行監(jiān)聽,如果在Δt時間內(nèi)沒有發(fā)生任何一個激活事件,則提前結束活動周期,減少能量的損耗。激活事件為:感知網(wǎng)絡上發(fā)生沖突;周期的幀定時器打開;傳送數(shù)據(jù)結束,等待對方發(fā)送確認信息;監(jiān)聽網(wǎng)絡上的RTS和CTS數(shù)據(jù)包,與相鄰節(jié)點進行數(shù)據(jù)交換。每個節(jié)點的調度具有不同的偏移,下層節(jié)點的活動時間和上層節(jié)點的活動時間相對應,這樣當下層節(jié)點有數(shù)據(jù)需要發(fā)送給目的節(jié)點或從目的節(jié)點接收數(shù)據(jù)時,它就能夠及時迅速的和上層鄰居節(jié)點進行數(shù)據(jù)傳遞,最終像爬樓梯或下樓一樣到達目的節(jié)點,這樣大大減少了節(jié)點休眠帶來的延遲問題。改進后的S-MAC協(xié)議采用ACK應答機制,發(fā)送節(jié)點如果沒有收到ACK應答,要在下一個發(fā)送時間重發(fā)。節(jié)點正確接收到數(shù)據(jù)后,立刻發(fā)送ACK消息給發(fā)送數(shù)據(jù)的節(jié)點。為了減少發(fā)送數(shù)據(jù)產(chǎn)生的沖突,節(jié)點在等待固定的后退時間后,在沖突窗口內(nèi)隨機選擇發(fā)送等待時間。
此外采用自適應占空比機制,根據(jù)網(wǎng)絡流量變化動態(tài)調整整條路徑上節(jié)點的活動時間。當傳輸?shù)臄?shù)據(jù)量比較大時,節(jié)點可能需要在一個發(fā)送周期內(nèi)發(fā)送多個分組,此時需要增加節(jié)點的占空比,并請求傳輸路徑上的節(jié)點也相應的增加占空比。通過在傳輸路徑上進行逐跳預約,能夠大大提高網(wǎng)絡的數(shù)據(jù)傳輸率。
5 仿真分析
本文采用了由UC Berkeley 開發(fā)的、面向對象的、離散事件驅動的網(wǎng)絡環(huán)境模擬器NS-2對改進的S-MAC協(xié)議進行了仿真,也可以用TOSSIM作為無線傳感器網(wǎng)絡仿真環(huán)境[4]。NS-2這種仿真軟件以腳本作為輸入,腳本描述了網(wǎng)絡拓撲結構、網(wǎng)絡協(xié)議、網(wǎng)絡負載,以及一些控制參數(shù)。NS-2輸出的是一系列的數(shù)據(jù),如每個數(shù)據(jù)源所發(fā)送的數(shù)據(jù)包數(shù)量,每個網(wǎng)絡節(jié)點處的延遲等等。
在仿真實驗中我們對原S-MAC協(xié)議和改進的S-MAC協(xié)議分別收集以下性能評價參數(shù)來比較分析:能量開銷和延遲,根據(jù)消耗的能量多少來判斷活動時間是否改進。其定義分別為:
能量開銷(energy overhead):從源點到目的節(jié)點發(fā)送一定數(shù)量的包的總的花費。
延遲(latency):傳輸一個包端到端的時延。
仿真中有關參數(shù)設置如下:
無線設備帶寬100kbps,傳輸范圍250m,干擾范圍550m,包長度100字節(jié),傳輸功率0.66瓦,接收功率0.395瓦,空閑監(jiān)聽時耗電0.35瓦,休眠時耗電忽略不計設為0。根據(jù)無線參數(shù)和包的長度,S-MAC協(xié)議的活動時間設為20ms。改進后的S-MAC協(xié)議的活動時間不固定,受其周圍環(huán)境和鄰居節(jié)點收發(fā)數(shù)據(jù)的影響,其值應小于20ms。
下面在簡單的多跳鏈式拓撲結構和隨機分布的拓撲結構中分別進行仿真。
為了在一個相對可靠的環(huán)境下研究驗證S-MAC協(xié)議改進后的性能,我們首先在一個簡單多跳的、11個節(jié)點組成的鏈式拓撲邏輯結構中進行測試。鄰居節(jié)點的距離被配置為100米。
模擬結果如圖2所示:
[align=center]

圖2.1 能量分析

圖2.2延遲分析[/align]
圖2.1描述了多跳鏈式拓撲結構中S-MAC協(xié)議和改進后的S-MAC協(xié)議在能量開銷上的對比,兩種MAC協(xié)議的能量開銷都隨著跳數(shù)的增加而增加。從圖2.1看出當跳數(shù)增大到5以后,改進后的S-MAC協(xié)議幾乎比原來的S-MAC節(jié)省了近一半的能量。因為改進后的S-MAC協(xié)議的活動時間根據(jù)通信量的多少變化,原S-MAC協(xié)議對一些不是下一跳的節(jié)點也發(fā)送數(shù)據(jù)包,占用了額外的活動時間,造成了能量的浪費。
為了驗證改進后的S-MAC協(xié)議在減少節(jié)點休眠延遲方面的能力,我們測量在輕負載的情況下數(shù)據(jù)包端到端的延遲。圖2.2顯示了在不同跳數(shù)情況下的模擬結果,改進后的S-MAC協(xié)議比原來的S-MAC 協(xié)議在延遲方面有明顯好轉,特別是在4跳以后,改進后的S-MAC協(xié)議比原來減少了大約60%的延遲。因為采用交錯調度機制使數(shù)據(jù)能夠連續(xù)的從源節(jié)點傳送到目的節(jié)點,減少節(jié)點的休眠帶來的傳輸延遲。
議改進后的效果。50個節(jié)點隨機的配置在100*500m2的區(qū)域,我們通過在網(wǎng)絡邊緣的節(jié)點中隨機選擇來改變源節(jié)點的數(shù)目,所有的源節(jié)點每3秒產(chǎn)生一條消息。
[align=center]

圖3.1 能量分析

圖3.2 延遲分析[/align]
圖3.1和3.2分別在能量和延遲方面對S-MAC協(xié)議及其改進后的協(xié)議進行分析。這是在更為真實復雜的環(huán)境下對協(xié)議進行的仿真。從圖3.1可以看出原S-MAC協(xié)議隨著源節(jié)點數(shù)目的增加,消耗的能量線性上升,而改進后的S-MAC協(xié)議能量消耗的曲線近似平滑直線,大致在500焦耳左右。圖3.2反映了改進前后的S-MAC協(xié)議延遲的對比,隨著源節(jié)點數(shù)目的增加干擾增加,導致原S-MAC延遲的不斷增加,在36個源節(jié)點的時候延遲達到2.7s,而改進后的S-MAC協(xié)議因為使數(shù)據(jù)連續(xù)傳輸受干擾較小,最大延遲只有1.6s。
6 結束語
本文對無線傳感器網(wǎng)絡S-MAC協(xié)議進行了深入的分析,指出了S-MAC協(xié)議存在的問題,然后結合無線傳感器網(wǎng)絡T-MAC協(xié)議和D-MAC協(xié)議,提出了自己的改進方法。通過仿真分析,結果表明該方法有效地減少了節(jié)點空閑監(jiān)聽造成的能量損耗,緩解了節(jié)點休眠引起的傳輸延遲問題,改進效果明顯,具有實際意義。
參考文獻
[1] Akyildiz LF, Su WL, Sankarasubramaniam Y, Cayirci E. A survey on sensor networks[J]. IEEE Communications Magazine, 2002, 40(8):102~114.
[2] Ye W, Heidemann J , Estrin D.An energy-efficient MAC protocol for wireless sensor network[C] . In: Proc 21st Int’l Annual Joint Conf IEEE Computer and Communication Societics (INFOCOM 2002),New York ,NY, June 2002
[3] IEEE802.11 Wireless LAN Medium Access Control and Physical Layer Specifications[S],1997
[4] 袁紅林,徐晨,章國安. TOSSIM:無線傳感器網(wǎng)絡仿真環(huán)境[J].微計算機信息,2006,7-1:154-156