唐震洲,施曉秋,金可仲
(溫州大學物理與電子信息工程學院,浙江溫州325035)
無線傳感器網絡(Wireless Sensor Networks,WSNs)是由許多傳感器節點通過共享無線介質構成的一種特殊的無線自組網絡。WSNs具有快速展開、抗毀性強等特點,可廣泛應用于軍事、工業、交通、環保等領域。由于應用前景廣泛,無線傳感器網絡引起了人們的廣泛關注。正如其他共享媒體的網絡,無線傳感器網絡的媒體訪問控制協議(Media Access Control Protocol,MAC Protocol)決定無線信道的使用方式,并在節點之間分配有限的無線通信資源。MAC協議對無線傳感器網絡的性能有著非常大的影響[1-2]。
WSNs中的傳感器節點往往由電池供電,因而能量供應有限。能量有效性是衡量一個MAC協議性能優劣的最重要的標準之一??臻e偵聽是無線傳感器節點最主要的能耗源之一。為了減少空閑偵聽而造成的無謂能耗,研究人員提出了很多基于占空比機制的解決方案。所謂占空比機制,就是讓傳感器節點在工作與睡眠兩種狀態之間進行周期性的切換,以減少空閑偵聽,達到節能的目的。節點只能在工作狀態才能與其他節點進行通信,而處于睡眠狀態時,節點將關閉無線收發機,處于低能耗狀態。我們將工作時間與睡眠時間之和稱為周期時間。
這些基于占空比機制的協議可以分為兩大類:同步的協議[3-7]與異步的協議[8-13]。為了能順利地進行數據傳輸,同步的協議要求通信雙方節點的睡眠和工作周期保持嚴格的一致,對各個節點間時鐘同步的要求非常高。這些協議需要大量的控制幀來建立與維持這種節點之間精確的同步關系,占用了大量資源。特別是對于大規模的無線傳感器網絡,實現精確的同步是非常困難的。而異步的協議,則允許節點獨立地制定自己工作與休眠的時序。這些異步協議通常采用低功耗偵聽技術(Low Power Listening,LPL),即在發送數據之前,發送方需要持續的發送一段前導。當接收方從休眠狀態醒來并檢測到這個前導之后,就保持工作狀態并開始接收數據。基于LPL的異步MAC協議具有很高的能量有效性,并避免了因為同步而產生的大量控制開銷。但是由于發送前導需要長時間占用信道,當網絡負載較大時,這些協議的性能就會大幅降低。
為了消除基于LPL技術的異步MAC協議的這些缺陷,Sun Yanjun等學者提出了一種新的異步MAC 協議——RI-MAC[8](Receiver-Initiated MAC)。RI-MAC以空閑偵聽與接收方發送信標幀相結合的方式取代了LPL中長時間發送前導的方式,釋放了大量被占用的信道時間,因此能夠提供更高的網絡吞吐量與更高的數據交付率,并達到更好的能量有效性。但是,在RI-MAC中,從封裝了協議棧上層數據的邏輯鏈路控制幀(Logic Link Control Frame,LLC Frame)到達MAC層開始,直到收到接收節點信標幀,發送節點始終工作在空閑偵聽狀態,這無疑造成大量無謂的能耗。當網絡負載增加,而節點的睡眠時間很長的情況下,由空閑偵聽引入的能耗將非常嚴重。
本文在 RI-MAC的基礎上,提出了 PA-MAC(Passive-Asynchronous MAC)。與 RI-MAC相同,PA-MAC中的數據傳輸是由接收方發起的。同時,PA-MAC包含了接收節點喚醒時間估計算法。利用該算法,發送節點能夠在通信雙方存在時鐘偏差的情況下,估計接收節點下一次被喚醒的時間,使得發送節點僅僅在接收節點喚醒之前才從休眠狀態醒來,從而提高了PA-MAC的能量有效性。本文在NS2[14]網絡仿真平臺上對 PA-MAC的性能進行了仿真評估,并與RI-MAC協議進行了性能對比。結果表明,與RI-MAC相比,PA-MAC在保持相當的吞吐量、包交付率以及端到端延遲的基礎上,進一步降低了節點的占空比,并節省了大量的能量。
本文余下的章節安排如下:第1章,我們討論各種現有的基于占空比機制的異步MAC協議;我們將在第2章對PA-MAC做詳細深入的介紹;第3章,我們在NS2網絡仿真平臺上對PA-MAC的性能進行了仿真;第4章是對本文的總結;最后是致謝。
在應用于無線傳感器網絡的異步MAC協議中,B-MAC和X-MAC是最具代表性的兩個協議。BMAC[11](Berkeley-MAC)協議使用擴展前導和 LPL技術實現低功耗通信。發送方在發送數據幀之前先要發送一段持續時間不少于接收方睡眠周期的前導。當接收方按照自己的調度信息從休眠狀態進入工作狀態之后,就會對無線信道進行探測,以確定是否存在前導。由于前導的持續時間不少于接收方睡眠周期,因此能保證接收方在前導持續時間內至少能夠醒來一次。接收方在探測到信道中存在前導后,將保持活動狀態直到數據幀接收完畢,并重新進入休眠狀態。在網絡負載較輕的情況下,由于節點工作狀態持續的時間僅僅是極短的探測信道中是否存在前導的時間,因此B-MAC是非常節能的。然而,B-MAC中的節點在探測到信道中的前導之后,無論其是否是發送方的目的地,都會保持工作狀態直到數據傳輸完畢。對除接收方之外的其他節點而言,無謂的消耗了能量。
X-MAC[12]對前導進行了改造。X-MAC的前導由若干較小的頻閃前導(Strobed Preamble)組成,并在其中加入了目的節點的地址。目的節點探測到前導,并確認了其中的目的地址之后,就會在兩個頻閃前導之間反饋一個確認信息。發送方收到確認信息之后停止發送前導,而開始發送數據幀。而非目的節點則在接收一個頻閃前導之后就會忽略隨后的信號而轉入休眠狀態。X-MAC通過在頻閃前導中加入目的地址,以及接收方提早確認機制,避免了發送節點過度前導和接收節點過度偵聽的現象。XMAC還設計了一種根據網絡流量變化動態調整節點的占空比的自適應算法,減少了單跳延時,即:每個節點通過統計一定時間內接收到的報文數量,動態調整占空比。
Wise-MAC[13](Wireless Sensor MAC)也是一種采用前導喚醒技術的協議。Wise-MAC在非堅持CSMA的基礎上,采用前導碼采樣技術控制節點處于空閑偵聽狀態時的能量消耗。WiseMAC協議的ACK幀捎帶了接收方下次喚醒時間,用于通知其他鄰居節點到下一次采樣的剩余時間。通過這種方式,每個節點不斷更新相鄰節點的采樣時間偏移表。利用這些信息,每個節點可以選擇恰當的時間,使用最小長度的喚醒前導碼向目的節點發送數據。Wise-MAC協議可以很好地適應網絡流量變化。但是,Wise-MAC協議的采樣同步機制會帶來數據包沖突的問題。
B-MAC和X-MAC協議能夠在網絡負載較低的情況下,能夠達到較高的能量有效性。但是在前導的傳輸過程中需要長時間的占用信道,因此,當網絡負載增加時,效率就會大幅下降。事實上,采用LPL技術時,完成一次數據幀的傳輸所需要占用的信道時間遠遠大于實際的數據傳輸時間,這將造成一些負面影響。首先,某個發送節點長時間占用信道,會迫使其鄰居節點推遲數據的發送,從而造成較大的延遲;其次,某個發送節點長時間占用信道也會增加其鄰居節點沖突的概率,網絡負載較大時這種現象將更加嚴重。
為了解決這個問題,Sun Yanjun等學者提出了由接收方發起數據傳輸的RI-MAC[8]協議(Receiver Initiated MAC)。RI-MAC與基于LPL技術的異步MAC之間最顯著的不同之處在于發送方與接收方如何統一數據傳輸時間。在RI-MAC中,數據傳輸是由接收方發起的。RI-MAC的工作過程如圖1所示。每個節點從睡眠狀態醒來之后就會廣播一個信標幀來宣告工作狀態的開始。當LLC幀到達發送方的MAC層時,發送節點就會被喚醒,并以空閑偵聽的方式等待接收方信標幀的到來。在接收到接收方發送的信標幀之后,發送方就開始數據傳輸。RI-MAC還提出了一種簡單的自適應退避算法,以盡量減少多個發送節點在收到信標幀之后同時向同一個目的節點發送數據幀而發生的沖突。RI-MAC的信標幀包含了BW字段,用于指定發送方的最大退避窗口。當接收節點醒來后,就會發送一個BW字段為0的信標幀,即發送方在收到這個信標幀之后應立即發送數據幀。此時,如果有多個節點都在等待發送數據幀,則必定會產生沖突。于是,在檢測到沖突之后,接收方就會通過二進制指數退避算法,增加BW的值,使得發送方在下一次重傳時進行必要的隨機退避。如圖2所示。與X-MAC相比,RI-MAC能夠提供更高的網絡吞吐量與更高的數據交付率,并達到更好的能量有效性。但是,在RI-MAC中,發送節點以空閑偵聽的方式等待信標幀的到來,這將造成大量無謂的能耗。

圖1 RI-MAC的工作示意圖

圖2 RI-MAC中的自適應退避算法
PA-MAC協議是在RI-MAC的基礎上提出的。PA-MAC同樣采用了RI-MAC中接收方發起數據傳輸的方式,并借鑒了RI-MAC的動態自適應退避算法。與RI-MAC不同的是,PA-MAC通過在信標幀中攜帶節點自身下一喚醒時刻信息,使得發送節點能夠僅在接收節點喚醒之前才從休眠狀態醒來,進一步降低了能耗。
PA-MAC中,數據的接收方是通過信標幀來控制數據幀的傳輸的。PA-MAC信標幀的格式如圖3所示。其中,Src字段為發送該信標幀的節點地址;Dst字段為信標幀的目的節點地址;BW字段為信標幀規定的退避窗口;而Nxt字段為從信標幀源節點發送前導碼第一個比特的時刻開始到該節點下一次醒來時的時間間隔TNxt。

圖3 PA-MAC幀結構
當一個節點R根據自己的狀態調度周期醒來以后,首先需要確定下一次醒來的時刻tw:

式中,Tduty是常數,是一個原始周期的持續時間;Tnow表示當前時刻。式中取隨機數,是為了避免出現信標幀重復沖突的情況。因為如果周期長度都相等的話,兩個同時醒來的相鄰節點所發送的信標幀將必然性的發送沖突,而且每個周期都會發生沖突。
然后,如果信道空閑,R就會廣播一個Dst字段為-1的信標幀,表示是廣播幀。值得注意的是,為了盡量減少誤差,信標幀中Nxt字段的值應該在R發送信標幀前導的第一個比特之前設置。而若信道繁忙,則R在退避一個隨機的時間之后再試圖廣播信標幀。此時,信標幀中的Nxt字段也需要在重發時相應的更新。發送完信標幀之后,R會持續監聽信道一段時間Tbt,如果有數據幀過來,則接收數據幀,否則,轉入睡眠狀態。Tbt可以表示為:

其中,TMax_tr為R最大傳輸范圍之內的最大傳輸延遲;TSIFS為短幀間間隔的持續時間。
任何節點收到節點R的信標幀之后,就會根據信標幀中的Nxt字段來估算R下一次被喚醒的時間t'w,并在自己的鄰居列表里搜索R的匹配項。有關t'w的估算,將在下一小節詳細描述。如果相應的記錄已經存在,則需要更新相應的t'w;否則,就在鄰居列表中相應的增加R的記錄。
現假設節點S要給鄰居節點R發送數據。S首先在自己的鄰居列表中查找R的匹配項。如果存在R的匹配項,則從對應的鄰居節點記錄中獲得R下一次喚醒的時間t'w。若t'w大于當前時間,即R下一次被喚醒的時間還沒到,則S保持睡眠狀態,并在t'w時刻醒來進入空閑偵聽狀態,等待R的信標幀;而當當前時間超過了t'w,則表明R對應的記錄已經過時,則S必須馬上醒來并進入空閑偵聽狀態以等待R的下一個信標幀。如果S在鄰居列表中找不到R的匹配項,說明S目前沒有任何有關R的信息,因此,S也必須馬上醒來并進入空閑偵聽狀態以等待R的信標幀。
R在收到S的數據幀之后,會響應一個Dst字段為S的信標幀。該信標幀具有兩個作用:首先是對剛剛接收到的數據幀的確認,其次是對下一次數據傳輸的請求。信標幀的Dst字段僅對于S是有意義的,是對剛才S發送的數據幀的確認;而R的其余鄰居節點都會忽略Dst字段,而將該確認信標幀視為普通的數據請求信標幀。如圖4所示。

圖4 捎帶確認的信標幀
傳感器網絡中每個節點的時間信息都是由節點自身的晶體振蕩器產生的本地時鐘維護的。由于不同的晶體振蕩器之間或多或少會存在著頻率偏差,因此,傳感器網絡中各個節點的時鐘之間都存在著漂移。接收到信標幀的節點必須根據信標幀的Nxt字段,來估算在自己的時鐘頻率下,信標幀源節點下一次被喚醒的時間t'w。
假設節點S收到了來自節點R的信標幀。令ttr為R發送前導碼第一個比特時的時間戳。為了盡量縮短關鍵路徑的長度,ttr已經去除了信標幀在節點R的處理延遲和MAC層的訪問延遲,如圖5所示。而tr是S接收完整個信標幀后的時間戳。在忽略信標幀傳播延遲Tt的情況下(假設兩個節點相距200 m,由此而產生的傳播延遲僅為0.67 μs。若每個節點的最大頻率偏差θ為0.03‰,則兩個節點每秒鐘產生的最大時鐘漂移為60 μs,遠大于傳播延遲。所以,忽略傳播延遲是可行的。),節點S與節點R之間的時間偏差TΔ為:


圖5 喚醒時間的估算
其中,n為整個信標幀的長度;Tb為無線接口發送一個比特所需的時間。由此,節點S就可以估算出節點R下一次被喚醒的時間t'w:

式中,我們已經考慮了由于頻偏而引入的R相對于S的最大時間提前量2θTNxt。之所以考慮提前量,而不考慮滯后,是為了確保S能夠在R被喚醒之前已經進入空閑偵聽狀態。
為了驗證PA-MAC的性能,我們通過網絡仿真對PA-MAC以及RI-MAC進行了比較。仿真平臺采用了2.29版的NS2,仿真參數見表1。無線信道傳播模型則結合了自由空間傳播模型與雙線地面反射模型。仿真的網絡場景如圖6所示。這是一個包含了25個節點的二維網絡,其中的節點表示為Ni(i=0,1,2,…,24)。節點被規則地布放成一個 5×5的方陣,同行或同列相鄰的節點之間間距設置為150 m。所有節點的調度信息都是隨機產生的,并在網絡運行期間動態的進行維護。網絡從第10 s開始產生3個CBR業務:從N0到N24,從N2到N15,以及從N4到N20。網絡持續運行1 000 s。由于仿真的目的在于驗證PA-MAC的性能,因此,為了減少其他因素的干擾,我們采用了NOAH[15]作為路由協議,并人為規定了相應的路由。

圖6 5×5的二維網絡;箭頭線表示數據報的傳輸路徑

表1 仿真參數
第一組實驗中,每個節點的原始周期持續時間Tduty都為10 s,而CBR業務的包到達間隔從1 s開始以1 s的幅度遞增,直到10 s為止。對于每種包到達間隔,分別使用10個不同的種子運行仿真,取其平均值作為觀察數據。圖7則給出了在不同包到達間隔下,整個網絡的平均能耗、CBR數據報平均端到端延遲、成功接收的CBR數據包數量以及網絡平均占空比。從圖7(a)中可以看到,當包到達間隔越大,即網絡越空閑,節點的能耗與網絡的平均能耗越小。這是因為要發送的數據越少,則處于休眠狀態的時間也越長,即節點的占空比越低,如圖7(d)所示。實驗結果表明,采用PA-MAC,整個網絡的平均能耗能節省10%以上,占空比降低18%左右,而CBR數據報的端到端延遲與成功接收的CBR數據包數量則基本保持不變。另外,實驗結果也反映出了PA-MAC的低占空比特性。對于參與數據傳輸次數少,或者幾乎不參與數據傳輸的節點,由于其工作狀態持續的時間僅僅是極短的發送一個信標幀,等待Tbt并轉入睡眠的時間,因此它們的占空比僅為大約0.1%甚至更小。圖8所示的是當包到達間隔為10 s,節點周期持續時間為10 s時,25個節點的占空比。

圖7 不同包到達間隔下,PA-MAC與RI-MAC的性能比較

圖8 包到達間隔為10 s,節點周期持續時間為10 s時,25個節點的占空比
第二組實驗,我們將CBR業務的包到達間隔設置為常數,即10 s。而每個節點的原始周期持續時間Tduty從1 s開始以1 s的幅度遞增,直到10 s為止。其余設置與第一組實驗相同。圖9給出了在不同的原始周期長度下,整個網絡的平均能耗、CBR數據報平均端到端延遲、成功接收的CBR數據包數量以及網絡平均占空比。從圖9可以看到,節點的周期長度越大,則節點被喚醒的頻率越低,因此占空比也越小,能耗越小;但代價是數據報的端到端延遲越大。實驗結果表明,采用PA-MAC,當周期長度大于2 s時,整個網絡的平均能耗也能節省10%以上,占空比降低18%左右,而CBR數據報的端到端延遲與成功接收的CBR數據包數量則基本保持不變。

圖9 不同周期長度下,PA-MAC與RI-MAC的性能比較
本文在 RI-MAC的基礎上,提出了 PA-MAC。PA-MAC通過在信標幀中攜帶節點下一喚醒時刻信息,使得數據幀的發送節點能夠在接收節點被喚醒時及時地從休眠狀態醒來,等待信標幀的到來。仿真結果表明,在保持網絡性能的前提下,PA-MAC能夠降低節點工作的占空比,進而減少節點的能耗。在下一步工作中,我們將在 TinyOS上實現 PAMAC,并用于實際網絡的測試。PA-MAC的廣播性能也使我們下一階段工作的關注重點。
致謝
本文得到了國家自然科學基金面上項目(項目號:60971008)的資助。同時,非常感謝Sun Yanjun博士及其科研團隊為我們提供了非常有價值的論文!
[1]蹇強,龔正虎,朱培棟,等.無線傳感器網絡MAC協議研究進展[J],軟件學報,2008,19(2):389 -403.
[2]Demirkol I,Ersoy C,Alagoz F.MAC Protocols for Wireless Sensor Networks:a Survey[J].IEEE Communications Magazine,2006,44(4):115-121.
[3]Wei Ye,John Heidemann,Deborah Estrin.An Energy-Efficient MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the 21th Annual IEEE Conference on Computer Communications(Infocom 2002),New York,USA,June,2002,23(27):1567 -1576.
[4]Wei Ye,John Heidemann,Deborah Estrin.Medium Access Control With Coordinated Adaptive Sleeping for Wireless Sensor Networks[J],IEEE/Acm Transactions on Networking,2004,12,(3):493-506.
[5]van Dam Tijs,Koen Langendoen.An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks[C]//Proceedings of Conference On Embedded Networked Sensor Systems(Sensys 2003),Los Angeles,California,USA,2003,5(7):171 -180.
[6]Du Shu,Amit Kumar Saha,David B Johnson.RMAC:A Routing-Enhanced Duty-Cycle MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the 26th Annual IEEE Conference on Computer Communications(INFOCOM 2007),Anchorage,Alaska,USA,May,2007,6(12):1478 -1486.
[7]Sun Yanjun,Du Shu,Omer Gurewitz,et al.DW-MAC:A Low Latency,Energy Efficient Demand-Wakeup MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the Ninth ACM International Symposium on Mobile Ad Hoc Networking and Computing(MobiHoc 2008),Hong Kong,SAR,China,May,2008,27(30):53 -62.
[8]Sun Yanjun,Omer Gurewitz,David B Johnson.RI-MAC:A Receiver Initiated Asynchronous Duty Cycle MAC Protocol for Dynamic Traffic Loads in Wireless Sensor Networks[C]//Proceedings of the 6th International Conference on Embedded Networked Sensor Systems(SenSys 2008),Raleigh,NC,USA,2008,5 -7.
[9]胡四泉,王俊峰.無線傳感器網絡的智能低功耗偵聽協議[J].通信學報,2009,30(9):95 -101.
[10]Pak Wooguil,Cho Kyong-Tak,Lee Jeongjoon,et al.W-MAC:Supporting Ultra Low Duty Cycle in Wireless Sensor Networks[C]//Proceeding of Global Telecommunications Conference(GLOBECOM 2008),New Orleans,LA,USA,2008,30(4):1 -5.
[11]Joseph Polastre,Jason Hill,and David Culler.Versatile Low Power Media Access for Wireless Sensor Networks[C]//Proceedings of the Second International Conference on Embedded Networked Sensor Systems(SenSys 2004),Baltimore,Maryland,USA,2004,3(5):95-107.
[12]Michael Buettner,Gary V Yee,Eric Anderson,et al.X-MAC:A Short Preamble MAC Protocol for Duty-Cycled Wireless Sensor Networks[C]//Proceedings of the 4th International Conference on Embedded Networked Sensor Systems(SenSys 2006),Boulder,Colorado,USA,2006,31(3):307 -320.
[13]Amre El-Hoiydi,Jean-Dominique Decotignie.WiseMAC:An Ultra Low Power MAC Protocol for Multi-hop Wireless Sensor Networks[J].Lecture Notes in Computer Science,2004,3121:18 -31.
[14]The ns Manual[EB/OL],http://www.isi.edu/nsnam/ns/doc/index.html,2010,8.
[15]NO Ad-Hoc Routing Agent(NOAH)[EB/OL],http://icapeople.epfl.ch/widmer/uwb/ns-2/noah/,2010,8.