田海濤 譚敏生 陳偉
南華大學(xué)計算機學(xué)院 湖南 421001
無線傳感器網(wǎng)絡(luò)是一個由大量廉價的無線傳感器節(jié)點組成的全分布式的自組織網(wǎng)絡(luò),它集成了信息采集、信息處理、信息傳輸、信息管理與應(yīng)用等多種技術(shù)。由于無線傳感器網(wǎng)絡(luò)具有自組織、易擴展、實時性和健壯性等特點,使其在軍事、農(nóng)業(yè)、醫(yī)療、環(huán)境監(jiān)測等領(lǐng)域有著傳統(tǒng)網(wǎng)絡(luò)無法比擬的優(yōu)勢,具有很高的應(yīng)用價值。不同的應(yīng)用對無線傳感器網(wǎng)絡(luò)的能耗、吞吐量、延遲等有不同的要求,這些獨特的要求和制約因素為無線傳感器網(wǎng)絡(luò)的研究提出了新的技術(shù)問題。而在這些技術(shù)問題中,能耗問題成為了無線傳感器網(wǎng)絡(luò)的首要問題。
媒介訪問控制(Medium Access Control,MAC)是數(shù)據(jù)鏈路層的一部分,是使得WSNs能夠正常運作的重要技術(shù),其主要功能是控制媒介訪問,協(xié)調(diào)多個競爭節(jié)點共享信道資源,避免沖突發(fā)生。無線傳感器網(wǎng)絡(luò)的性能如能耗、吞吐量、延遲等在很大程度上取決于所采用的MAC協(xié)議。因此,MAC協(xié)議的設(shè)計十分關(guān)鍵。
目前針對不同的應(yīng)用,研究人員從不同方面提出了多種MAC協(xié)議。
S-MAC是一種基于CSMA隨機競爭方式的MAC協(xié)議,其沖突避免機制類似于IEEE802.11,采用物理載波偵聽和虛擬載波偵聽兩種方式降低沖突發(fā)生概率,RTS/CTS握手機制避免隱藏終端問題。此外,S-MAC首先引入了周期激活/休眠機制以避免空閑監(jiān)聽,如圖1所示,每個節(jié)點周期地在一段時間內(nèi)偵聽信道,等待業(yè)務(wù)的到來,然后進入休眠直到下一激活期。
圖1 周期偵聽和休眠
S-MAC協(xié)議采用消息傳遞(message passing)機制,很好地支持長消息傳遞。該機制是將長消息分為若干短包,采用RTS/CTS握手機制集中連續(xù)發(fā)送全部短包,即可提高發(fā)送成功率,又可減少控制開銷。S-MAC協(xié)議的擴展性較好,可以適應(yīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)的變化;其缺點是實現(xiàn)復(fù)雜,需要占用大量的存儲空間,這對資源受限的無線傳感器節(jié)點顯得尤為突出。
為了減少能耗,T-MAC協(xié)議針對S-MAC協(xié)議進行了改進,在保持周期長度不變的基礎(chǔ)上,根據(jù)通信流量動態(tài)的調(diào)整活動時間,以突發(fā)方式發(fā)送信息,減少空閑偵聽時間。如圖2所示,T-MAC協(xié)議相對S-MAC協(xié)議減少了處于活動狀態(tài)的時間。
在T-MAC協(xié)議中,發(fā)送數(shù)據(jù)時仍采用RTS/CTS/DATA/ACK的通信過程,節(jié)點周期性喚醒偵聽,如果在一個給定時間TA(Time Active)內(nèi)沒有活動發(fā)生,直接進入休眠。
圖2 S-MAC和T-MAC的基本機制
T-MAC協(xié)議雖然減少了空閑偵聽,但卻帶來了早睡問題。T-MAC為此提出了兩種解決方案,一種稱為未來請求發(fā)送(Future Request-To-Send,F(xiàn)RTS);另一種稱為滿緩沖區(qū)優(yōu)先(full buffer priority),但是這兩種方法都不是很好。
為了減少空閑監(jiān)聽,提出了一種載波檢測機制,通過使節(jié)點的無線收發(fā)裝置有規(guī)律地處于“工作”、“待命”狀態(tài),而不丟失發(fā)送給該節(jié)點的數(shù)據(jù),以減少空閑偵聽的能量消耗。這種機制工作在物理層,它在每個無線數(shù)據(jù)包的前面附加了一個前導(dǎo)載波Preamble,這個前導(dǎo)載波Preamble的主要作用是通知接收節(jié)點將有數(shù)據(jù)發(fā)送過來,使其調(diào)整為接收模式準備接收數(shù)據(jù)。這種機制的主要思想是減少接收節(jié)點在空閑偵聽上的能耗,使接收節(jié)點能周期性地開啟無線收發(fā)裝置,偵聽是否有前導(dǎo)載波Preamble,從而決定是否要接收數(shù)據(jù)。如果接收節(jié)點在工作狀態(tài)檢測到前導(dǎo)載波Preamble,它就會一直偵聽信道,直到數(shù)據(jù)被正確地接收;如果節(jié)點沒有檢測到前導(dǎo)載波,接收節(jié)點的無線裝置將被置于“待命”狀態(tài),直到下一個前導(dǎo)載波檢測周期到來,如圖3所示。
這種有效的載波偵聽方法可以和任何一種基于競爭的MAC協(xié)議相結(jié)合,將其與ALOHA協(xié)議結(jié)合,提出了前導(dǎo)字段偵聽(Preamble sampling)協(xié)議;將其與CSMA協(xié)議結(jié)合,提出了低功耗偵聽(Low power listening)協(xié)議。這兩種協(xié)議統(tǒng)稱為LPL協(xié)議。LPL協(xié)議通過周期性關(guān)閉無線裝置節(jié)省節(jié)點的能耗,對節(jié)點的存儲能力要求很低,并且不需要周期性的信息交換和維護鄰居節(jié)點的狀態(tài)信息,節(jié)省了協(xié)議的控制開銷,具有良好的可擴展性,但減小了數(shù)據(jù)成功發(fā)送的概率。前導(dǎo)字段的長度與節(jié)點的無線模塊通斷時間有關(guān)。節(jié)點周期睡眠的時間越長,發(fā)送節(jié)點發(fā)送數(shù)據(jù)時前導(dǎo)字段的長度就越長。因此,隨著前導(dǎo)字段長度的增加,發(fā)送節(jié)點的能量消耗也隨之增加。
由于喚醒前導(dǎo)會隨著節(jié)點周期休眠時間的增加而變長,增加了發(fā)送節(jié)點的控制開銷,因此必須壓縮前導(dǎo)序列的長度。WiseMAC采用動態(tài)調(diào)整前導(dǎo)長度方法減少控制開銷,其基本思想是通過在數(shù)據(jù)確認包中攜帶節(jié)點下次信道偵聽時間,節(jié)點獲得所有鄰居的信道偵聽時間。在發(fā)送數(shù)據(jù)時,可以將喚醒前導(dǎo)序列壓縮到最短。WiseMAC協(xié)議可以很好地適應(yīng)網(wǎng)絡(luò)流量變化,它是針對WiseNET設(shè)計的MAC協(xié)議。但是由于節(jié)點需要存儲鄰居節(jié)點的信道偵聽時間,會占用寶貴的存儲空間,增加協(xié)議實現(xiàn)復(fù)雜度,尤其是在節(jié)點密度較高的網(wǎng)絡(luò)內(nèi)這個問題尤為突出。
B-MAC協(xié)議是加州大學(xué)伯克利分校開發(fā)的伯克利媒介訪問控制協(xié)議(Berkeley Media Access Control,B-MAC),該協(xié)議是一個設(shè)計和實現(xiàn)簡單,且可配置的MAC協(xié)議。B-MAC協(xié)議采用空閑信道評估CCA(Clear Channel Assess)技術(shù)進行信道監(jiān)測,采用低功耗偵聽LPL(Low Power Listening)機制實現(xiàn)低功耗通信,采用退避算法減少碰撞,使得其性能遠高于S-MAC協(xié)議。信道評估通過對接收信號強度RSSI采用指數(shù)加權(quán)滑動平均算法求出信道平均噪聲,再將一小段時間內(nèi)的最小RSSI值與平均噪聲比較,以確定信道狀態(tài)。B-MAC采用周期信道采樣和發(fā)送前導(dǎo)序列的方法減少空閑偵聽。退避算法包括初始退避和擁塞退避兩種,可有應(yīng)用程序設(shè)置。該協(xié)議的最主要貢獻是它向上層協(xié)議提供了一系列雙向接口,通過配置這些接口,可以使該協(xié)議應(yīng)用于不同流量類型的網(wǎng)絡(luò)。B-MAC協(xié)議無需共享調(diào)度信息,可以有效縮短喚醒時間,因此,在吞吐量和延遲等方面優(yōu)于S-MAC協(xié)議,但在減少能耗方面并沒有太大優(yōu)勢,對B-MAC協(xié)議和S-MAC協(xié)等協(xié)議進行比較后得出,B-MAC協(xié)議更適合于延遲要求不高的應(yīng)用,在延遲要求較高的情況下,S-MAC等同步MAC協(xié)議更節(jié)能。
為了縮短前導(dǎo)長度,減少能耗,X-MAC協(xié)議將前導(dǎo)序列分為若干個較小的頻閃前導(dǎo)(strobed preamble),每個頻閃前導(dǎo)中都包含有目的地址,便于非接收節(jié)點盡早丟棄分組進入休眠。利用頻閃前導(dǎo)之間的時間間隔,接收節(jié)點可以向源節(jié)點發(fā)送早期確認,發(fā)送節(jié)點接收到早期確認后立刻發(fā)送數(shù)據(jù)分組,從而避免發(fā)送節(jié)點過度前導(dǎo)和接收節(jié)點過度偵聽。圖4比較了B-MAC、WiseMAC等一般擴展前導(dǎo)MAC協(xié)議和XMAC協(xié)議的時序關(guān)系。X-MAC協(xié)議還設(shè)計了一種自適應(yīng)算法,根據(jù)網(wǎng)絡(luò)流量變化動態(tài)調(diào)整占空比以減少單跳延遲。
圖4 低功率偵聽擴展前導(dǎo)與X-MAC時序比較
X-MAC協(xié)議在能量效率、吞吐量和延遲等性能上優(yōu)于B-MAC協(xié)議和WiseMAC協(xié)議。與傳統(tǒng)的基于LPL的MAC協(xié)議相比,X-MAC協(xié)議更易于被支持分組無線收發(fā)器的無線傳感器節(jié)點所實現(xiàn),但是X-MAC協(xié)議對時間同步精度要求高于WiseMAC,分組長度、數(shù)據(jù)發(fā)送速率等協(xié)議參數(shù)還需進一步確定。
XW-MAC協(xié)議是在采用低功耗偵聽機制基礎(chǔ)上,為了進一步節(jié)省能耗,結(jié)合了X-MAC協(xié)議和WiseMAC協(xié)議的優(yōu)點,提出了優(yōu)化低功率偵聽擴展前導(dǎo)序列機制。另外,XW-MAC協(xié)議中還增加了自適應(yīng)機制,以適應(yīng)不同的網(wǎng)絡(luò)流量。
優(yōu)化低功率偵聽擴展前導(dǎo)沿用了X-MAC協(xié)議的前導(dǎo)機制,在發(fā)送數(shù)據(jù)時,將前導(dǎo)分為若干個短前導(dǎo)碼(short preamble),短前導(dǎo)碼中只包含一個短的前導(dǎo)序列和一個目標地址。在發(fā)送前導(dǎo)序列時,每個短前導(dǎo)碼之間都有一個接收ACK包的時間間隔,如果接收節(jié)點蘇醒后收到短前導(dǎo)碼中的目的地址是本地地址,那么就向發(fā)送節(jié)點發(fā)送一個ACK應(yīng)答包。當發(fā)送節(jié)點發(fā)送一個短前導(dǎo)碼后收到ACK應(yīng)答包后,立即開始發(fā)送數(shù)據(jù);如果發(fā)送完一個短前導(dǎo)碼后沒有收到ACK包,就接著發(fā)送下一個短前導(dǎo)碼,直到收到ACK應(yīng)答包或超出所能發(fā)送的最大短前導(dǎo)碼數(shù)。XW-MAC協(xié)議的優(yōu)化在于采用WiseMAC喚醒偏移機制,發(fā)送節(jié)點記錄每個接收節(jié)點發(fā)送ACK應(yīng)答包時發(fā)送的短前導(dǎo)碼的個數(shù),將其作為接收節(jié)點喚醒偏移,在以后向該節(jié)點發(fā)送數(shù)據(jù)時,根據(jù)偏移發(fā)送短前導(dǎo)碼,這樣可以減少發(fā)送短前導(dǎo)碼的個數(shù),從而減少能耗。如圖5所示,X-MAC中在發(fā)送到第四個短前導(dǎo)碼時收到ACK應(yīng)答包,如果時序不變,在以后的通信中發(fā)送節(jié)點仍然要發(fā)送四個短前導(dǎo)碼才能被接收節(jié)點偵聽到;在XW-MAC協(xié)議中,兩個節(jié)點的第一次通信與X-MAC協(xié)議一樣,都發(fā)送四個短前導(dǎo)碼,但經(jīng)過此次通信后,發(fā)送節(jié)點記錄接收ACK時發(fā)送的短前導(dǎo)碼包的個數(shù)4作為接收節(jié)點的喚醒時間,在以后的通信中,發(fā)送節(jié)點先計時發(fā)送三個短前導(dǎo)碼的時間,之后再開始真正發(fā)送短前導(dǎo)碼,圖中為了保證接收節(jié)點偵聽的可靠性,提前多發(fā)送一個短前導(dǎo)碼。相比之下,XW-MAC協(xié)議的優(yōu)化前導(dǎo)序列比X-MAC協(xié)議中的能耗更少。
圖5 優(yōu)化前導(dǎo)序列與X-MAC序列比較
節(jié)點周期休眠和低功耗偵聽機制是目前很多MAC協(xié)議采用的機制,它們也是XW-MAC協(xié)議優(yōu)化前導(dǎo)序列實現(xiàn)的基礎(chǔ)。在X-MAC協(xié)議中,發(fā)送節(jié)點無需知道接收節(jié)點蘇醒的時間,當有數(shù)據(jù)要發(fā)送時,首先發(fā)送喚醒前導(dǎo)碼,直到接收節(jié)點蘇醒;在WiseMAC協(xié)議中,發(fā)送節(jié)點要知道接收節(jié)點嚴格的蘇醒時間,發(fā)送節(jié)點在接收節(jié)點蘇醒前開始發(fā)送信息;XW-MAC協(xié)議對前兩種方式進行了折中,發(fā)送節(jié)點只要知道接收節(jié)點蘇醒的大致時間,只要在這之前開始發(fā)送前導(dǎo)碼即可,能夠減少發(fā)送節(jié)點發(fā)送前導(dǎo)碼的長度,也無需嚴格的時鐘同步。另外,為了保證發(fā)送數(shù)據(jù)的可靠性,在XW-MAC協(xié)議中,當發(fā)送節(jié)點發(fā)送了指定偏移量的短前導(dǎo)碼后仍沒有收到接收節(jié)點的確認幀,就繼續(xù)發(fā)送短前導(dǎo)碼,直到達到最大短前導(dǎo)碼數(shù)或收到確認幀才停止。
對于密集性網(wǎng)絡(luò),MAC協(xié)議的性能嚴重影響網(wǎng)絡(luò)的吞吐量和延遲。為了使節(jié)點適應(yīng)不同的網(wǎng)絡(luò)應(yīng)用,XW-MAC協(xié)議采用自適應(yīng)機制,根據(jù)網(wǎng)絡(luò)流量,動態(tài)調(diào)整檢測間隔時間CT(check time)和前導(dǎo)長度L。在XW-MAC協(xié)議中,將流量分為三個級別:A、B、C,A代表流量較大,B代表流量一般,C代表流量較低,它們分別對應(yīng)的(檢測間隔,前導(dǎo)長度)為(CTa,La)、(CTb,Lb)、(CTc,Lc)。每個節(jié)點都以B為默認級別,當流量不斷增加達到A級時,XW-MAC協(xié)議就改變節(jié)點的檢測間隔和前導(dǎo)長度變?yōu)镃Ta和La;同理,當流量減少到B級,就調(diào)整為CTc和Lc。
無線傳感器網(wǎng)絡(luò)節(jié)點能耗問題是制約網(wǎng)絡(luò)性能的關(guān)鍵因素之一,與網(wǎng)絡(luò)的壽命密切相關(guān)。網(wǎng)絡(luò)的壽命有節(jié)點壽命決定,節(jié)點壽命有其總能耗決定。能耗越小,節(jié)點壽命就長,因此,在保證節(jié)點正常通信前提下,盡量減少能耗,延長節(jié)點壽命,是無線傳感器網(wǎng)絡(luò)追求的目標之一。節(jié)點的總功率E,單位為毫瓦,一般是固定值,總能量E乘以節(jié)點壽命t得到總能耗。對于WSN應(yīng)用,
E=Erx+Etx+Elisten+Ed+Esleep
其中,Erx代表接收功率,Etx代表發(fā)送功率,Elisten代表監(jiān)聽功率,Ed代表數(shù)據(jù)采樣功率,Esleep代表休眠功率。傳感器是WSN的一部分,一般也由節(jié)點供電,所以數(shù)據(jù)采樣功率一般計算在總功率中。
對于采用不同的MAC協(xié)議的WSN,在相同的節(jié)點,相同的數(shù)據(jù)采樣頻率,相同的數(shù)據(jù)包大小情況下,其Erx、Etx和Ed都是相同的,又由于節(jié)點休眠時Esleep很小,所以Elisten成為影響節(jié)點能耗的關(guān)鍵參數(shù)。XW-MAC協(xié)議與X-MAC協(xié)議相比,采用相同的低功耗偵聽和帶ACK的前導(dǎo)序列,所以它們能耗的不同在于前導(dǎo)序列的平均長度。XW-MAC協(xié)議中前導(dǎo)序列一般都是固定的1~2個短前導(dǎo)碼長度,只有在出現(xiàn)變更檢測間隔變化時才會出現(xiàn)大于兩個短前導(dǎo)碼,而X-MAC協(xié)議的發(fā)送的短前導(dǎo)碼個數(shù)不確定,要比XW-MAC協(xié)議的多,因此,XW-MAC協(xié)議比X-MAC協(xié)議更節(jié)能。
以減少節(jié)點能耗為目標,結(jié)合X-MAC協(xié)議和WiseMAC協(xié)議的優(yōu)點,提出了XW-MAC協(xié)議。通過定性的能耗分析,XW-MAC協(xié)議比X-MAC協(xié)議更節(jié)能。進一步的工作將通過仿真和實驗進行定量的驗證和分析。
[1]孫利民,李建中,陳渝,朱紅松.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社.2005.
[2]Holger Karl,Andreas Willig著,邱天爽,唐洪,李婷等譯.無線傳感器網(wǎng)絡(luò)協(xié)議與體系結(jié)構(gòu)[M].北京:電子工業(yè)出版社.2006.
[3]Ye W,Heidemann J,Estrin D.An Energy-Efficient MAC Protocol for Wireless Sensor Networks.In: Proc.of the INFOCOM 2002.San Francisco: IEEE Computer Society.2002.
[4]陳林星.無線傳感器網(wǎng)絡(luò)技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社.2009.
[5]van Dam T,Langendoen K.An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks.In: Proc.of the 1st.ACM Conf.on Embedded Networked Sensor Systems(SenSys),New York: ACM Press.2003.
[6]EI-Hoiydi A.Aloha with preamble sampling for sporadic traffic in ad hoc wireless sensor networks.In:Proceedings of IEEE International Conference on Communications.New York,USA:IEEE.2002.
[7]Hill J L,Culler D E.Mica:a wireless platform for deeply embedded networks.IEEE Micro.2002.
[8]EI-Hoiydi A,Decotignie J D.WiseMAC: an ultra low power MAC protocol for the downlink of infrastructure wireless sensor networks.In: Proceedings of the 9th IEEE International Symposium on Computers and Communications.New York,USA: IEEE.2004.
[9]C.Enz,A.El-Hoiydi,J-D Decotignie,et al.WiseNET: An ultralow power wireless sensor network solution.Computer.2004.
[10]Jamieson K,Balakrishnan H,Tay YC.Sift: A MAC protocol for event-driver wireless sensor networks.Technical Report,MITLCS-TR-894,MIT.2003.
[11]Buettner M,Yee G,Anderson E,Han R.X-MAC: A short preamble MAC protocol for duty-cycled wireless sensor networks.In: Proc.of the 4th ACM Int'1 Conf.on Embeded Sensor System(SenSys).New York: ACM Press.2006.