摘 要:能耗是無線傳感網絡研究的核心問題,也是其網絡性能重要參數之一。WSNs節點的生存周期主要取決于節點的能量消耗,針對無線傳感網絡WSNs低速率的特點,本文對其網絡節點能耗做了分析研究, 討論無線傳感網絡MAC層的能耗管理與節能措施,從周期性監聽和睡眠,沖突和串音避免,長信息傳遞等方面介紹與分析了S-MAC協議在WSNs中節能的合理性與實用性。
關鍵詞:無線傳感網絡(WSNs);MAC;能耗管理;信道
中圖分類號:TN915 文獻標識碼:A
文章編號:1004373X(2008)0103303
Rearch on S-MAC——An Energy-constrained MAC Protocol for WSNs
LIU Lequn
(Hefei Normal College,Hefei,230061,China)
Abstract:Energy consumption is the primary goal of the rearch on wirless sensor networks,also one of the important performance parameters.Survival cycle of the node in wirless sensor networks is depended upon the energy consumption.The article analyzes the energy consumption of the nodes in networks,discusses the energy consumption management and energy conservation measurement of MAC layer in Wireless Sensor Networks(WSNs)as to its low rate feature,and then it also introduces S-MAC protocol from periodic sleep and listening,avoidance of conflict and crosstalk,and message passing,so the rationality and usability of S-MAC in energy conservation of WSNs are explained.
Keywords:WSNs;MAC;power energy consumption management;channel
無線通信技術近年來的迅速發展主要針對語音、視頻、計算機局域網等相對長距離、中高數據率領域,而且各自的應用都已經有了相應的國際標準。但是,從80211到80211a和80211g,研究的目標始終是提高數據速率。而事實上,低速率應用比高速率應用更貼近我們的日常生活。近兩年無線傳感網絡的飛速發展,無線應用以低傳輸帶寬,較低的傳輸延時和極低的功率消耗在無線通信領域獨占一席之地,在很多場合以其獨特的優勢使得那些對功耗或網絡性能要求較高的個人無線應用相形見絀。本文將對無線傳感網絡(WSNs)的節點能耗問題進行分析討論,并對無線傳感器網絡MAC層節能協議進行研究。
1 無線傳感網絡MAC層協議中的能耗分析
能耗問題是無線傳感網絡研究的核心問題,也是WSNs網絡性能最重要的參數之一。WSNs傳感器節點的生存周期主要取決于節點的能量消耗,其MAC層協議要盡可能地節約能源。傳統的MAC層協議追求的是在節點公平性的基礎上最大化吞吐量、最小化時延。而WSNs由于其低速、低延時、節點協作的應用場景, MAC層協議設計時更關注其能耗最小化,如減少沖突和串音、降低占空比和盡量避免長距離通信等,這就決定了他可以通過適度地減小吞吐量和增加時延來實現節能。此外協議還應允許用戶在節能和提高吞吐量、降低延遲之間做折衷選擇的機制。
對節點平均能耗的分析,應考慮節點的不同狀態及在不同狀態間轉換耗費的能量大小。WSNs節點的狀態可以歸結為4種:發射、接收、空閑監聽和睡眠。發射和接收狀態意味著節點正在發送或者接收數據包;空閑監聽狀態的節點既不發射也不接收數據,只是不斷地偵聽無線信道,為了保證在要接收的數據包到達時,節點及時完成接收狀態的轉換,空閑偵聽狀態的節點也是要消耗能量的;節點處在睡眠模式時能耗最低,這時的收發機都處在低能耗甚至關閉狀態。
可見,WSNs的節點無效功耗主要來源4個方面:
空閑偵聽[HTSS] 節點不知道鄰居節點何時向自己發送數據,射頻模塊必須一直處于接收狀態,消耗大量的能源。這是無效功耗的最主要來源;
沖突[HTSS] 同時向同一節點發送多個數據幀,信號相互干擾,接收方無法準確接收,重發造成能量浪費;
串擾(overhearing)[HTSS] 接收和處理發往其他節點的數據屬于無效功耗;
控制開銷[HTSS] 控制報文不傳送有效數據,消耗的能量對用戶來說是無效的。
本文將從以上角度分析在無線傳感網絡MAC層中的一種代表性節能協議——S-MAC協議。
2 面向低速率的S-MAC協議的能耗管理及節能
Sensor-MAC(S-MAC)協議是基于競爭的傳感器網絡MAC層協議,此協議的主要目標就是減少能量消耗,同時支持良好的可擴展性和沖突避免。為了最大程度地降低能耗,我們從3個方面來討論S-MAC的節能:周期性監聽和睡眠,沖突和串音避免,長信息傳遞。
2.1 周期性監聽和睡眠
S-MAC通過讓節點空閑時自動轉入周期性睡眠模式來減少監聽時間。在睡眠中,節點關閉他的無線電,并設置一個定時器以便自我喚醒。監聽和睡眠的持續時間可以根據不同應用場景來選擇。此外為了減少控制開銷,采用讓鄰居節點一起同步的機制,他們同時監聽同時睡眠(當然,在一個多跳網絡中并不是所有的鄰居節點都可以一起同步)。
如圖1所示,兩個鄰居節點A和B也許有不同的調度,他們每個輪流和對應的節點(C和D)同步。節點通過廣播,保證所有鄰居節點可以相互通信。如果節點A想要和B通話,他會等待一直到B監聽。當多鄰居節點要和同一個節點通信則采用媒介競爭。競爭機制使用RTS (Request to Send)/CTS (Clear To Send)握手:首先發出RTS包的節點贏得媒介,接收者會回復一個CTS分組。從開始數據傳輸一直到完成傳輸,這期間不會進入周期性睡眠。
在每個節點開始周期性監聽和睡眠以前,需要選擇一個調度并和他的鄰居節點交換,每個節點維持一個調度表,儲存他所有鄰居節點的調度。在網絡啟動階段,所有的節點并沒有調度,他們按照下面的步驟來選擇自己的調度并建立他們的調度表。
(1) 節點首先監聽一段時間。如果他并沒有聽到從其他節點來的調度,他隨機的選擇一個時間睡眠并立即廣播他的調度:我要在t秒鐘后睡眠。我們稱其為同步節點。
(2) 如果一個節點在他選擇自己的調度以前,從一個鄰居節點接收到調度,就遵循這個鄰居節點的調度,把他自己的調度設置為與之相同的追隨節點,等待一個隨機的延遲(為沖突避免)并廣播他的調度。
(3) 如果一個節點在選擇自己的調度后收到鄰居節點的調度,就采用這兩種調度,并在睡眠以前廣播自己的調度。
因為在一些節點處的廣播沖突,可能有一些鄰居節點并沒有相互發現,他們會在后來的周期性監聽中相互發現。而對新節點而言,新的節點加入也許會需要監聽相對長的時間,發現一個活躍的節點后,新節點就發送一個INTRO分組到這個發現的鄰居節點,來表明自己的存在。鄰居收到INTRO分組后,會給新節點轉發他的調度表來回復。新節點會把表上所有節點看作潛在鄰居,并在此后嘗試著和這些節點聯系。如果發現了一個同步節點,他會試著跟隨這個同步節點,否則,他需要自己選擇一個監聽調度并隨后更新他對鄰居節點的同步。因為當一個發送者和接收者完成傳輸后不會立即進入睡眠,而是繼續監聽直到下個睡眠時間到來,這樣就給了新節點與鄰節點建立通信的機會。
監聽/睡眠機制要求鄰居節點間同步,為預防長時間時鐘漂移,鄰居節點間應周期性地相互更新他們的調度(更新周期可以相當長,實驗測量值達幾十秒)。更新調度通過發送SYNC分組完成(SYNC分組包含發送者的節點ID和他下一次睡眠的時間)。
如圖2表示一個發送者到一個接收者的三種可能情況的定時選擇,接收節點的監聽間隔分為兩部分,第一部分是為接收SYNC分組,第二部分是為接收RTS分組, CS(carrier sense)代表載波偵聽。在圖中,發送者1只發送一個SYCN分組;發送者2只想發送數據;發送者3發送一個SYCN分組和一個RTS分組。
2.2 S-MAC對沖突的避免
當多個發送節點想同時向一個接收節點發送,就需要競爭媒介來避免沖突。S-MAC在這方面遵循類似80211對沖突避免的步驟,包括物理和虛擬載波偵聽以及RTS/CTS交換,采用RTS/CTS機制來解決隱藏終端問題。所有發送者在初始化傳輸以前執行載波偵聽,如果一個節點沒能夠得到媒介,他會進入睡眠。在每個傳輸分組中都有一個持續時間域,指出剩余傳輸會有多長時間。所以,一個節點如果接收到RTS或CTS分組,他會知道自己還需要保持多長時間的沉默。節點在一個被稱為網絡分配矢量(NAV)的變量中報告這個值并給他設置一個定時器。每當NAV定時器計數時,節點減少NAV值直至0。當節點有數據要傳輸,他會首先看一個NAV的值。如果他的值不是0,節點測定媒介是忙的,稱為虛擬載波傳輸。如果虛擬和物理載波偵聽都指出媒介是空閑的,媒介被認定為空閑。
2.3 S-MAC的串音避免機制
在 802.11中每個節點保持對鄰居節點的監聽,每個節點可能監聽到許多本不是指向他自己的包。這就造成能量很大的浪費,尤其當節點密度很大并且傳輸負載很重時,情況更為嚴重。
考慮到數據包通常比控制包長很多,S-MAC協議通過讓干擾節點收到RTS/CTS包以后進入睡眠來避免串音。也就是通過阻止鄰近節點監聽長的數據包和ACK來節能。
如圖3所示,節點A,B,C,D,E,F 組成一個多跳網絡,假定每個節點只能聽到直接相連的鄰居節點的傳輸。節點A現在正傳輸一個數據包到節點B,由于沖突發生在接收段,很明顯節點D的傳輸干擾了B的接收,應該進入睡眠,而節點E和F對B并不產生干擾,因此不需要進入睡眠。而節點C距離B有兩跳遠,他的傳輸并不干擾B的接收,所以他可以自由地傳輸到他其他的鄰居節點(如E)。但是C卻不能收到E回復的CTS或數據,因為E的傳輸和A的傳輸在節點C處沖突,所以C的傳輸是能量的浪費。由此我們得出:所有發送者和接收者的鄰居節點(如圖3中節點C和節點D)在聽到RTS或CTS包后都應該進入睡眠,一直到現有的傳輸結束。
每個節點維持NAV來顯示他鄰居節點的活動情況。當一個節點接收到指向其他節點的包,他通過分組中的持續時間域來更新他的NAV值。非零的NAV值表明在他的鄰居節點里有一個活躍的傳輸,這樣,如果一個節點的NAV值不為0他就應該進入睡眠來避免串音,直到他的NAV值變為0時才能醒來。
2.4 長信息傳輸
通常接收者需要在實現網內數據處理或融合前獲得全部的數據單元。長信息直接傳輸時,如在第一次傳輸只
是幾個字節損壞,重傳時卻必須傳輸全部字節;若將信息
分成許多獨立的小分組傳輸可以解決大量數據重傳產生的浪費,但是另一方面,因為每個獨立的包在競爭中都要使用RTS和CTS分組,就不得不付出更大的控制開銷和更長的延遲。
S-MAC解決長信息傳輸的方法是將其分為許多小的片斷,只使用一個RTS分組和一個CTS分組,預約媒介傳輸所有的片斷。發送者每次傳輸一個數據片斷后,等待接收者回送的ACK。如果沒能夠接收到ACK,他將會為更多的分組擴展保留的傳輸時間,并迅速重傳現有的片斷。如前所述,每個數據片斷和ACK分組都有持續時間域,指示傳輸所有剩余數據片斷和ACK分組所需的時間。如果鄰近節點聽到一個RTS或CTS分組,則進入睡眠。
在每個數據片斷后使用ACK的目的是預防隱藏終端問題。在傳輸過程中,一個鄰居節點醒來或新節點加入都是可能的,如果節點只是接收者的鄰居(如圖3中的D節點),他就不會聽到發送者正傳輸的數據片斷;如果接收者并沒有頻繁地發送ACK,新節點也許會錯誤地從他的載波偵聽中推斷媒介是空閑的;如果他開始傳輸,現有傳輸將會在接收者處被損壞。
3 結 語
綜上所述,在低數據率的情形下,節點花費大量的時間等待數據包的到來,此時若關閉射頻收發器,則空閑偵聽狀態引起的能耗可得到節省。S-MAC協議以減少能量消耗為首要目標,同時具有很好的降低串擾和沖突避免能力,并限制了控制開銷的能量消耗,協議本質上是用吞吐量和反應時間來換取低能耗,在低數據率的無線傳感網絡應用中是合理可行的。
參 考 文 獻
[1]Wei Ye,John Heidemann,Debroah Estrin.An Energy-Efficient MAC Protocol for Wireless Sensor Networks[C].Proc.21st Ann. Joint Conf. INFOCOM,2002:1 567-1 576.
[2]Song Xiaoqin,Hu Aiqun.Data Link Layer and Network Layer Design for Wireless Sensor Networks.
[3]焦超,王得宇.無線傳感器網絡及其MAC層協議[J].信息技術,2007(2):32-35.
[4]楊軍,馬利亞.無線傳感器MAC層協議的分析和研究[J].現代電子技術,2006,29(16):45-48.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”