摘 要:能耗是無線傳感網(wǎng)絡(luò)研究的核心問題,也是其網(wǎng)絡(luò)性能重要參數(shù)之一。WSNs節(jié)點的生存周期主要取決于節(jié)點的能量消耗,針對無線傳感網(wǎng)絡(luò)WSNs低速率的特點,本文對其網(wǎng)絡(luò)節(jié)點能耗做了分析研究, 討論無線傳感網(wǎng)絡(luò)MAC層的能耗管理與節(jié)能措施,從周期性監(jiān)聽和睡眠,沖突和串音避免,長信息傳遞等方面介紹與分析了S-MAC協(xié)議在WSNs中節(jié)能的合理性與實用性。
關(guān)鍵詞:無線傳感網(wǎng)絡(luò)(WSNs);MAC;能耗管理;信道
中圖分類號:TN915 文獻(xiàn)標(biāo)識碼: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
無線通信技術(shù)近年來的迅速發(fā)展主要針對語音、視頻、計算機(jī)局域網(wǎng)等相對長距離、中高數(shù)據(jù)率領(lǐng)域,而且各自的應(yīng)用都已經(jīng)有了相應(yīng)的國際標(biāo)準(zhǔn)。但是,從80211到80211a和80211g,研究的目標(biāo)始終是提高數(shù)據(jù)速率。而事實上,低速率應(yīng)用比高速率應(yīng)用更貼近我們的日常生活。近兩年無線傳感網(wǎng)絡(luò)的飛速發(fā)展,無線應(yīng)用以低傳輸帶寬,較低的傳輸延時和極低的功率消耗在無線通信領(lǐng)域獨占一席之地,在很多場合以其獨特的優(yōu)勢使得那些對功耗或網(wǎng)絡(luò)性能要求較高的個人無線應(yīng)用相形見絀。本文將對無線傳感網(wǎng)絡(luò)(WSNs)的節(jié)點能耗問題進(jìn)行分析討論,并對無線傳感器網(wǎng)絡(luò)MAC層節(jié)能協(xié)議進(jìn)行研究。
1 無線傳感網(wǎng)絡(luò)MAC層協(xié)議中的能耗分析
能耗問題是無線傳感網(wǎng)絡(luò)研究的核心問題,也是WSNs網(wǎng)絡(luò)性能最重要的參數(shù)之一。WSNs傳感器節(jié)點的生存周期主要取決于節(jié)點的能量消耗,其MAC層協(xié)議要盡可能地節(jié)約能源。傳統(tǒng)的MAC層協(xié)議追求的是在節(jié)點公平性的基礎(chǔ)上最大化吞吐量、最小化時延。而WSNs由于其低速、低延時、節(jié)點協(xié)作的應(yīng)用場景, MAC層協(xié)議設(shè)計時更關(guān)注其能耗最小化,如減少沖突和串音、降低占空比和盡量避免長距離通信等,這就決定了他可以通過適度地減小吞吐量和增加時延來實現(xiàn)節(jié)能。此外協(xié)議還應(yīng)允許用戶在節(jié)能和提高吞吐量、降低延遲之間做折衷選擇的機(jī)制。
對節(jié)點平均能耗的分析,應(yīng)考慮節(jié)點的不同狀態(tài)及在不同狀態(tài)間轉(zhuǎn)換耗費的能量大小。WSNs節(jié)點的狀態(tài)可以歸結(jié)為4種:發(fā)射、接收、空閑監(jiān)聽和睡眠。發(fā)射和接收狀態(tài)意味著節(jié)點正在發(fā)送或者接收數(shù)據(jù)包;空閑監(jiān)聽狀態(tài)的節(jié)點既不發(fā)射也不接收數(shù)據(jù),只是不斷地偵聽無線信道,為了保證在要接收的數(shù)據(jù)包到達(dá)時,節(jié)點及時完成接收狀態(tài)的轉(zhuǎn)換,空閑偵聽狀態(tài)的節(jié)點也是要消耗能量的;節(jié)點處在睡眠模式時能耗最低,這時的收發(fā)機(jī)都處在低能耗甚至關(guān)閉狀態(tài)。
可見,WSNs的節(jié)點無效功耗主要來源4個方面:
空閑偵聽[HTSS] 節(jié)點不知道鄰居節(jié)點何時向自己發(fā)送數(shù)據(jù),射頻模塊必須一直處于接收狀態(tài),消耗大量的能源。這是無效功耗的最主要來源;
沖突[HTSS] 同時向同一節(jié)點發(fā)送多個數(shù)據(jù)幀,信號相互干擾,接收方無法準(zhǔn)確接收,重發(fā)造成能量浪費;
串?dāng)_(overhearing)[HTSS] 接收和處理發(fā)往其他節(jié)點的數(shù)據(jù)屬于無效功耗;
控制開銷[HTSS] 控制報文不傳送有效數(shù)據(jù),消耗的能量對用戶來說是無效的。
本文將從以上角度分析在無線傳感網(wǎng)絡(luò)MAC層中的一種代表性節(jié)能協(xié)議——S-MAC協(xié)議。
2 面向低速率的S-MAC協(xié)議的能耗管理及節(jié)能
Sensor-MAC(S-MAC)協(xié)議是基于競爭的傳感器網(wǎng)絡(luò)MAC層協(xié)議,此協(xié)議的主要目標(biāo)就是減少能量消耗,同時支持良好的可擴(kuò)展性和沖突避免。為了最大程度地降低能耗,我們從3個方面來討論S-MAC的節(jié)能:周期性監(jiān)聽和睡眠,沖突和串音避免,長信息傳遞。
2.1 周期性監(jiān)聽和睡眠
S-MAC通過讓節(jié)點空閑時自動轉(zhuǎn)入周期性睡眠模式來減少監(jiān)聽時間。在睡眠中,節(jié)點關(guān)閉他的無線電,并設(shè)置一個定時器以便自我喚醒。監(jiān)聽和睡眠的持續(xù)時間可以根據(jù)不同應(yīng)用場景來選擇。此外為了減少控制開銷,采用讓鄰居節(jié)點一起同步的機(jī)制,他們同時監(jiān)聽同時睡眠(當(dāng)然,在一個多跳網(wǎng)絡(luò)中并不是所有的鄰居節(jié)點都可以一起同步)。
如圖1所示,兩個鄰居節(jié)點A和B也許有不同的調(diào)度,他們每個輪流和對應(yīng)的節(jié)點(C和D)同步。節(jié)點通過廣播,保證所有鄰居節(jié)點可以相互通信。如果節(jié)點A想要和B通話,他會等待一直到B監(jiān)聽。當(dāng)多鄰居節(jié)點要和同一個節(jié)點通信則采用媒介競爭。競爭機(jī)制使用RTS (Request to Send)/CTS (Clear To Send)握手:首先發(fā)出RTS包的節(jié)點贏得媒介,接收者會回復(fù)一個CTS分組。從開始數(shù)據(jù)傳輸一直到完成傳輸,這期間不會進(jìn)入周期性睡眠。
在每個節(jié)點開始周期性監(jiān)聽和睡眠以前,需要選擇一個調(diào)度并和他的鄰居節(jié)點交換,每個節(jié)點維持一個調(diào)度表,儲存他所有鄰居節(jié)點的調(diào)度。在網(wǎng)絡(luò)啟動階段,所有的節(jié)點并沒有調(diào)度,他們按照下面的步驟來選擇自己的調(diào)度并建立他們的調(diào)度表。
(1) 節(jié)點首先監(jiān)聽一段時間。如果他并沒有聽到從其他節(jié)點來的調(diào)度,他隨機(jī)的選擇一個時間睡眠并立即廣播他的調(diào)度:我要在t秒鐘后睡眠。我們稱其為同步節(jié)點。
(2) 如果一個節(jié)點在他選擇自己的調(diào)度以前,從一個鄰居節(jié)點接收到調(diào)度,就遵循這個鄰居節(jié)點的調(diào)度,把他自己的調(diào)度設(shè)置為與之相同的追隨節(jié)點,等待一個隨機(jī)的延遲(為沖突避免)并廣播他的調(diào)度。
(3) 如果一個節(jié)點在選擇自己的調(diào)度后收到鄰居節(jié)點的調(diào)度,就采用這兩種調(diào)度,并在睡眠以前廣播自己的調(diào)度。
因為在一些節(jié)點處的廣播沖突,可能有一些鄰居節(jié)點并沒有相互發(fā)現(xiàn),他們會在后來的周期性監(jiān)聽中相互發(fā)現(xiàn)。而對新節(jié)點而言,新的節(jié)點加入也許會需要監(jiān)聽相對長的時間,發(fā)現(xiàn)一個活躍的節(jié)點后,新節(jié)點就發(fā)送一個INTRO分組到這個發(fā)現(xiàn)的鄰居節(jié)點,來表明自己的存在。鄰居收到INTRO分組后,會給新節(jié)點轉(zhuǎn)發(fā)他的調(diào)度表來回復(fù)。新節(jié)點會把表上所有節(jié)點看作潛在鄰居,并在此后嘗試著和這些節(jié)點聯(lián)系。如果發(fā)現(xiàn)了一個同步節(jié)點,他會試著跟隨這個同步節(jié)點,否則,他需要自己選擇一個監(jiān)聽調(diào)度并隨后更新他對鄰居節(jié)點的同步。因為當(dāng)一個發(fā)送者和接收者完成傳輸后不會立即進(jìn)入睡眠,而是繼續(xù)監(jiān)聽直到下個睡眠時間到來,這樣就給了新節(jié)點與鄰節(jié)點建立通信的機(jī)會。
監(jiān)聽/睡眠機(jī)制要求鄰居節(jié)點間同步,為預(yù)防長時間時鐘漂移,鄰居節(jié)點間應(yīng)周期性地相互更新他們的調(diào)度(更新周期可以相當(dāng)長,實驗測量值達(dá)幾十秒)。更新調(diào)度通過發(fā)送SYNC分組完成(SYNC分組包含發(fā)送者的節(jié)點ID和他下一次睡眠的時間)。
如圖2表示一個發(fā)送者到一個接收者的三種可能情況的定時選擇,接收節(jié)點的監(jiān)聽間隔分為兩部分,第一部分是為接收SYNC分組,第二部分是為接收RTS分組, CS(carrier sense)代表載波偵聽。在圖中,發(fā)送者1只發(fā)送一個SYCN分組;發(fā)送者2只想發(fā)送數(shù)據(jù);發(fā)送者3發(fā)送一個SYCN分組和一個RTS分組。
2.2 S-MAC對沖突的避免
當(dāng)多個發(fā)送節(jié)點想同時向一個接收節(jié)點發(fā)送,就需要競爭媒介來避免沖突。S-MAC在這方面遵循類似80211對沖突避免的步驟,包括物理和虛擬載波偵聽以及RTS/CTS交換,采用RTS/CTS機(jī)制來解決隱藏終端問題。所有發(fā)送者在初始化傳輸以前執(zhí)行載波偵聽,如果一個節(jié)點沒能夠得到媒介,他會進(jìn)入睡眠。在每個傳輸分組中都有一個持續(xù)時間域,指出剩余傳輸會有多長時間。所以,一個節(jié)點如果接收到RTS或CTS分組,他會知道自己還需要保持多長時間的沉默。節(jié)點在一個被稱為網(wǎng)絡(luò)分配矢量(NAV)的變量中報告這個值并給他設(shè)置一個定時器。每當(dāng)NAV定時器計數(shù)時,節(jié)點減少NAV值直至0。當(dāng)節(jié)點有數(shù)據(jù)要傳輸,他會首先看一個NAV的值。如果他的值不是0,節(jié)點測定媒介是忙的,稱為虛擬載波傳輸。如果虛擬和物理載波偵聽都指出媒介是空閑的,媒介被認(rèn)定為空閑。
2.3 S-MAC的串音避免機(jī)制
在 802.11中每個節(jié)點保持對鄰居節(jié)點的監(jiān)聽,每個節(jié)點可能監(jiān)聽到許多本不是指向他自己的包。這就造成能量很大的浪費,尤其當(dāng)節(jié)點密度很大并且傳輸負(fù)載很重時,情況更為嚴(yán)重。
考慮到數(shù)據(jù)包通常比控制包長很多,S-MAC協(xié)議通過讓干擾節(jié)點收到RTS/CTS包以后進(jìn)入睡眠來避免串音。也就是通過阻止鄰近節(jié)點監(jiān)聽長的數(shù)據(jù)包和ACK來節(jié)能。
如圖3所示,節(jié)點A,B,C,D,E,F(xiàn) 組成一個多跳網(wǎng)絡(luò),假定每個節(jié)點只能聽到直接相連的鄰居節(jié)點的傳輸。節(jié)點A現(xiàn)在正傳輸一個數(shù)據(jù)包到節(jié)點B,由于沖突發(fā)生在接收段,很明顯節(jié)點D的傳輸干擾了B的接收,應(yīng)該進(jìn)入睡眠,而節(jié)點E和F對B并不產(chǎn)生干擾,因此不需要進(jìn)入睡眠。而節(jié)點C距離B有兩跳遠(yuǎn),他的傳輸并不干擾B的接收,所以他可以自由地傳輸?shù)剿渌泥従庸?jié)點(如E)。但是C卻不能收到E回復(fù)的CTS或數(shù)據(jù),因為E的傳輸和A的傳輸在節(jié)點C處沖突,所以C的傳輸是能量的浪費。由此我們得出:所有發(fā)送者和接收者的鄰居節(jié)點(如圖3中節(jié)點C和節(jié)點D)在聽到RTS或CTS包后都應(yīng)該進(jìn)入睡眠,一直到現(xiàn)有的傳輸結(jié)束。
每個節(jié)點維持NAV來顯示他鄰居節(jié)點的活動情況。當(dāng)一個節(jié)點接收到指向其他節(jié)點的包,他通過分組中的持續(xù)時間域來更新他的NAV值。非零的NAV值表明在他的鄰居節(jié)點里有一個活躍的傳輸,這樣,如果一個節(jié)點的NAV值不為0他就應(yīng)該進(jìn)入睡眠來避免串音,直到他的NAV值變?yōu)?時才能醒來。
2.4 長信息傳輸
通常接收者需要在實現(xiàn)網(wǎng)內(nèi)數(shù)據(jù)處理或融合前獲得全部的數(shù)據(jù)單元。長信息直接傳輸時,如在第一次傳輸只
是幾個字節(jié)損壞,重傳時卻必須傳輸全部字節(jié);若將信息
分成許多獨立的小分組傳輸可以解決大量數(shù)據(jù)重傳產(chǎn)生的浪費,但是另一方面,因為每個獨立的包在競爭中都要使用RTS和CTS分組,就不得不付出更大的控制開銷和更長的延遲。
S-MAC解決長信息傳輸?shù)姆椒ㄊ菍⑵浞譃樵S多小的片斷,只使用一個RTS分組和一個CTS分組,預(yù)約媒介傳輸所有的片斷。發(fā)送者每次傳輸一個數(shù)據(jù)片斷后,等待接收者回送的ACK。如果沒能夠接收到ACK,他將會為更多的分組擴(kuò)展保留的傳輸時間,并迅速重傳現(xiàn)有的片斷。如前所述,每個數(shù)據(jù)片斷和ACK分組都有持續(xù)時間域,指示傳輸所有剩余數(shù)據(jù)片斷和ACK分組所需的時間。如果鄰近節(jié)點聽到一個RTS或CTS分組,則進(jìn)入睡眠。
在每個數(shù)據(jù)片斷后使用ACK的目的是預(yù)防隱藏終端問題。在傳輸過程中,一個鄰居節(jié)點醒來或新節(jié)點加入都是可能的,如果節(jié)點只是接收者的鄰居(如圖3中的D節(jié)點),他就不會聽到發(fā)送者正傳輸?shù)臄?shù)據(jù)片斷;如果接收者并沒有頻繁地發(fā)送ACK,新節(jié)點也許會錯誤地從他的載波偵聽中推斷媒介是空閑的;如果他開始傳輸,現(xiàn)有傳輸將會在接收者處被損壞。
3 結(jié) 語
綜上所述,在低數(shù)據(jù)率的情形下,節(jié)點花費大量的時間等待數(shù)據(jù)包的到來,此時若關(guān)閉射頻收發(fā)器,則空閑偵聽狀態(tài)引起的能耗可得到節(jié)省。S-MAC協(xié)議以減少能量消耗為首要目標(biāo),同時具有很好的降低串?dāng)_和沖突避免能力,并限制了控制開銷的能量消耗,協(xié)議本質(zhì)上是用吞吐量和反應(yīng)時間來換取低能耗,在低數(shù)據(jù)率的無線傳感網(wǎng)絡(luò)應(yīng)用中是合理可行的。
參 考 文 獻(xiàn)
[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]焦超,王得宇.無線傳感器網(wǎng)絡(luò)及其MAC層協(xié)議[J].信息技術(shù),2007(2):32-35.
[4]楊軍,馬利亞.無線傳感器MAC層協(xié)議的分析和研究[J].現(xiàn)代電子技術(shù),2006,29(16):45-48.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文?!?/p>