《電子技術應用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > 无线传感器网络高效的MAC协议研究
无线传感器网络高效的MAC协议研究
丁 亮 华 蓓 中国科学技术大学
摘要: 目前无线传感器网络中的MAC协议可分为发送端启动和接收端启动两类。同步的发送端启动协议同步代价高,基于前导的异步协议网络利用率低,而接收端启动的算法会产生发送端盲等等问题。本文结合这两类协议的优点,提出一种可自适应变换数据传输模式的MAC协议(IL-MAC)。该协议根据节点的消息队列长度决定当前使用哪种传输模式,并通过局部同步算法减少发送端与接收端在建立连接时的盲等,解决了以上问题。在网络仿真平台NS2上的仿真实验表明,IL-MAC要优于RL-MAC,尤其在高负载下优势明显。
Abstract:
Key words :

0 引言
    無線傳感器網絡(Wireless Sensor Networks)由大量具有感知、計算和無線通信能力的廉價節點組成,通過節點間協作地感知和處理網絡分布區域中監測對象的相關信息,為人們提供有關監測對象的詳實而可靠的信息,可廣泛應用于環境監測、搶險救災、戰場監視、城市交通、智能家居等多個領域。
    MAC協議負責在傳感器節點間分配有限的通信資源,構建傳感器網絡系統的底層通信結構,因此是傳感器網絡研究的一個重要方面。
    文獻統計了傳感器節點中通信單元、處理單元和傳感單元的能量消耗,如圖1所示。從圖中可以看到,傳感單元和處理單元的能耗遠遠低于通信單元的能耗,而在通信單元的四種狀態中,能耗依次按休眠、監聽、接收及發送遞增,所以盡量增大節點休眠時間是節省能耗的一個重要措施。目前傳感器網絡中的MAC協議都將節省能耗作為研究重點,大部分協議都是通過節點周期性休眠以及不需要時關閉無線電收發器來節省能量。

a.JPG


    目前傳感器網絡中的MAC協議大致可以分為發送端啟動和接收端啟動兩類。在發送端啟動的同步協議中,各節點使用相同的休眠調度表,在各自規定的時間醒來參與通信活動,保證節點盡可能多地休眠而不會錯過任何一個數據。這類協議的典型代表有S-MAC、T-MAC等。此類協議可以極大地減少節點空閑監聽的時間,但要求節點間保持精確同步,而其開銷卻是不可忽視的。在發送端啟動的異步協議中,各節點不需要按照相同的休眠調度表工作,發送端在有數據發送時在信道中發送一個長度略長于接收端休眠時間的前導信號,接收節點在醒來監聽到前導信號時便開始接收數據。這類協議消除了顯式同步的需要,但由于大量的前導消息增大信道的壓力,降低了信道的整體利用率。這類協議的典型代表有B-MAC、X-MAC等。
    接收端啟動的協議是近兩年提出的一種新協議,典型代表為RI-MAC。發送端有數據發送時在信道中靜默監聽,接收端醒來后即發送信標(beacon消息),發送端在監聽到信標后發送數據。該算法由于消除了發送端前導信號對信道的占用,提高了信道的利用率。但是在高負載情況下,發送端的盲等、過聽會造成節點能量的大量消耗,另外正在發送的節點可能會較長時間占用信道,導致其它節點的數據包傳輸延遲增大。

1 問題描述與分析
    由上述分析可知,異步的RI-MAC協議沒有采用發送端前導偵聽技術,這既是它的優點,也是它的缺點。優點是避免了某個發送節點長時間占用信道,缺點是發送端和接收端失去了有效的溝通渠道,在負載較大時可能導致發送端盲等和數據傳輸延遲增加。在圖2的例子中,S1和S2監聽信道,等待各自的接收端R1和R2醒來。R2首先醒來發送beacon消息,s2向。R2發送數據。在此過程中R1醒來,發現信道被占用后轉入休眠。隨后S3監聽信道準備向R3發送數據,R3醒來后與S3建立數據傳輸。在此過程中S1再次醒來,發現信道仍被占用,再次轉入休眠。S1監聽整個時間段,始終未監聽到R1,數據傳輸被長時間推遲。

b.JPG


    在發送端啟動的異步MAC協議中,前導被發送端用來獲取信道并聲明有數據發送,只要相應的接收端如期醒來,數據傳輸就能夠完成。而RJ-MAC依靠接收端發送beacon消息來聲明自己的存在,能否進行數據傳輸要取決于是否有發送端正準備向其發送數據。也就是說,作為數據生產者或轉發者的發送節點,只能被動等待傳輸請求,卻無法主動要求進行數據傳輸。
    作為一個異步MAC協議,RI-MAC去除了節點間的同步。這在避免節點同步開銷的同時,也使得發送節點無法知道接收端什么時候醒來。從而發送節點必須一直監聽,直至數據成功傳輸。在圖2的例子中,S1長時間監聽信道而得不到發送的機會。此外,接收端在接收完一幀數據后,使用beacon消息作為響應,發送端有數據可繼續向其發送。這種策略使得接收端一旦開始接收數據后,將一直占用信道,直到發送結束。
    基于以上分析,本文考慮對RI-MAC協議進行改進。

2 IL-MAC協議設計要點
    IL-MAC主要在以下幾個方面對RI-MAC進行改進:
2.1 自適應前導技術
    自適應前導技術在網絡負載較輕時,發送端不使用前導:在數據積累較多時,發送端發送前導,主動請求數據傳輸,以期盡快進行數據傳輸。為此,每個發送端設定一個隊列長度門限Qmax。發送端有數據要發送時檢查隊列長度,小于等于Qmax則采用無前導方式,監聽信道等待接收端醒來;若大于Omax,發送前導主動要求與接收端建立連接。
    在圖3中,S的隊列長度小于等于Qmax,S監聽信道等待R醒來;R醒來后發送hello消息;S聽到后向R發送數據;R發送hello消息告知傳輸完畢。在圖4中,S的隊列長度大于Qmax,S主動發送一系列包含接收節點(R)地址的前導消息(preamble);R醒來后聽到前導消息,在前導發送的間隔回復hello消息;S發送數據;R接收完畢后發送hello消息,告知接收完畢。

c.JPG

f.JPG

 


    進一步地,算法還可以在每個數據包中加入產生時間或優先級等信息,節點可以根據數據包的緊急程度選擇采用何種發送方式。

2.2 局部同步
    RI-MAC的發送端并不主動尋求與接收端同步,而是靜靜地監聽信道。IL-MAC通過引入局部同步來改善這一點。節點在廣播的hello消息中均包含該節點的休眠調度信息,這樣鄰居節點可以建立起一個休眠調度表。發送端有數據要發送時,先檢查鄰居休眠調度表;若表中有接收節點的休眠調度信息,可休眠并在接收端醒來前的某個時刻醒來;如沒有接收節點的調度信息,堅持監聽信道。
    一般來說,每個節點都有一個常規的休眠周期,即沒有數據收發情況下的休眠周期。自適應前導技術,在常規的休眠周期中引入一些臨時性的休眠調度,但臨時調度行為不會干擾節點固有的休眠調度周期。圖5為某個節點的實際休眠調度周期圖,其中每個slot為一個正常的休眠周期。節點在slot1收發完數據后休眠;在slot2醒來,發現隊列長度大于QImax,查看鄰居休眠表后再轉入休眠;若干時間后醒來發送前導,與接收端完成數據傳輸后,再次進入休眠。在slot3醒來后,為等待接收端的hello消息而長時間監聽信道,直至slot4完成傳輸后休眠;在slot5仍按時醒來。

e.JPG


    由于晶振頻率的不一致,各節點會有計時上的誤差,即時鐘偏移,需要進行同步。節點在所發送的每個hello消息中都包含最近一次按常規調度醒來的時間,并在hello包上打上發送時間戳。收到hello消息的節點將包中的發送時間戳加上hello消息的發送延遲(消息長度/發送速度),得到鄰居節點的當前時鐘值(忽略信號傳播時間)。節點將自己的當前時鐘值減去鄰居節點的當前時鐘值,得到相對于該鄰居節點的時鐘偏移量。為減小估計誤差,可對最近n次的時鐘偏移量取算術平均值,作為當前時刻相對于該鄰居節點的時鐘偏移。
    各節點通過與鄰居節點交換hello消息,獲得與鄰居節點的時鐘偏差,并以此修正鄰居休眠調度表。由于每個節點的調度周期相同,所以鄰居休眠調度表中只記錄每個鄰居最近一次常規調度醒來的時間。
2.3 競爭信道
    在RI-MAC中,接收端接收完一幀后發送的beacon消息有兩個作用,一是告知數據接收完畢,二是詢問是否還有節點要向它發送。因此,正在通信的接收端具有優先使用信道的權利,這在某些情況下會導致接收節點長時間占用信道。例如在一個樹型網絡中,所有節點都要向樹根傳輸數據,越靠近樹根的節點轉發壓力越大。假如有兩個靠近樹根的節點是鄰居,就可能出現一個節點長時間占用信道,而另一個節點長時間無法接收數據的情況。
    取消beacon消息的第二個作用可以較好地避免這個問題,即當一個節點接收完數據后放棄信道,然后所有節點重新競爭信道,這會使網絡中的數據傳輸更均衡。
2.4 消息格式
    Hello包在IEEE 802.1 5.4的beacon幀基礎上設計,如圖6所示。其中,幀長度、FCF(Frame Control Field)和FCS(Frame Check Seq-uence)為原有的域。Hello消息增加了用于標記幀功能的H域、接收節點和發送節點ID,記錄最近一次常規調度醒來時間的sys域和hello包發送時間戳time-stamp。

g.JPG


    節點發送的hello消息(查詢是否有發送給自己的數據)中Dst及BW域為空,發生沖突后填入KBW值,確認傳輸成功的hello幀中填入Dst域,防止其它節點向其傳輸數據。H域的第一位(0/1)標識該幀是接收節點發送的探詢Hello消息還是響應發送端前導的hello消息,第二位(0/1)標識該幀中BW域是否有效,第三位(0/1)標識該幀中Dst域是否有效,其余位置0。
    圖7為前導消息格式,也是在IEEE 802.15.4的幀基礎上設計的,其中除Hardware Preamble、Frame length、FCF及FCS四個固定域以外,加入了接收節點ID(Dst域)。

h.JPG



3 仿真實驗
    我們在NS2平臺上仿照了RI-MAC的實驗設置在網狀拓撲結構下比較了RI-MAC與IL-MAC算法,其中節點傳輸半徑為250m,無線鏈路速率250 kb/s,前導包長度6個字節,數據包長度50字節,回退窗口大小0~255,最大重傳次數5次,自定義的Hello包長度為13字節。
    實驗場景采用7×7的網格拓撲結構,每個格點上設一個節點,每個格子的邊長為200m,接收節點位于網絡中心,每個節點的通信半徑為250m。在實驗中利用不同范圍內的節點依次產生數據包,在相關的空間范圍內指定數據流來模擬網絡負載。實驗以接收節點為中心,依次采用9個節點(500m×500m,8個發送節點和1個接收節點)和49個節點(1500m×1500m,48個發送節點和1個接收節點)的正方形區域劃分為兩組實驗,在每組實驗中每個發送節點每秒產生10、20和30個包依次進行對比試驗。仿真時間為30分鐘,觀察網絡中的平均延遲、平均能耗以及吞吐量,取10次實驗的平均值作為實驗結果。
    圖8、9為平均延遲隨節點發包數量變化的曲線。從圖8可以看出,在網絡中負載較低、節點數量較少時,IL-MAC中節點的平均延遲稍稍好于RI-MAC。而當節點數量增加時,如圖9所示,IL-MAC算法在延遲上要明顯好于RI-MAC。這是因為IL-MAC能夠通過發送端傳輸模式的變換及時進行傳輸,將一些延遲高的數據通過前導優先發送。

i.JPG     j.JPG


    圖10、11為平均能耗隨節點數量及發送速率的變化曲線。總的來說,IL-MAC協議在耗能上低于RL-MAC。由于IL-MAC在網絡初始化時需要進行局部同步,會有一定的額外開銷,因此在發送節點較少時IL-MAC的優勢并不明顯。但是隨著發送節點的增多,節點之間的相互影響增大,IL-MAC通過睡眠調度節省能耗的優勢逐漸顯現出來。如圖11中,IL-MAC在較高負載時的性能要遠遠好于RI-MAC算法。

k.JPG


    圖12、13為平均吞吐量隨發送節點及發包速率的變化曲線。IL-MAC協議在9個節點的網絡中吞吐量與RI-MAC基本持平,在7×7的網絡中表現出較好的性能提升。由于去除前導技術在發送節點過多時,因接收端相同發生沖突的概率很大,會造成吞吐量下降。如圖13中,當發包速度提高到每秒30個包時,RI-MAC的吞吐量有一定的下降。而前導傳輸較少產生沖突,隨著局部同步的引入,發送節點能夠盡量縮短前導的長度,相比較于產生沖突的去前導來說,IL-MAC能得到更高的吞吐量。

4 結束語
    本文結合傳感器網絡中發送端啟動和接收端啟動算法的優點,設計和實現了一個能夠自適應轉換前導發送模式并具有局部同步功能的IL-MAC協議。該協議根據發送端消息隊列的長度來決定是否采用前導發送模式,減少了接收端的饑餓狀態;當網絡中負載較大時,避免了多個節點同時向一個節點發送數據帶來的沖突,確保發送端能盡快與接收端完成消息傳遞;采用局部同步算法,大大減少了發送節點實時監聽的時間。IL-MAC在RI-MAC基礎上進行的一些改進充分利用了網絡中的調度信息,克服了RI-MAC存在的不足,有效地降低了網絡延遲,也在一定程度上克服了網絡中一些隨機、可變的因素,使算法性能更加穩定、均衡。
    此外在實驗過程中也發現,由于本算法基于單信道通訊,若通信范圍內有節點在傳輸消息,則鄰居節點只能進行休眠。而多信道可以利用不同的頻率同時進行傳輸,在很大程度上減少沖突的發生,提高網絡的吞吐量,下一步擬采用多信道傳輸的IL-MAC,使其能更好地適應更多應用的需要。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美一区二区三区精品电影| 久久久欧美精品| 欧洲精品久久| 国产成人精品视| 精品午夜一区二区| 日韩精品―中文字幕| 日本三级韩国三级久久| 欧美在线一级va免费观看| 九九久久九九久久| 久久99精品久久久水蜜桃| 国产在线一区二区三区播放| 韩国成人一区| 亚洲 中文字幕 日韩 无码| 国产精品色悠悠| 国产女精品视频网站免费| 丁香六月激情网| 欧美亚洲日本在线观看| 精品综合久久久久久97| 久久久国产视频91| 成人精品网站在线观看| 欧美在线亚洲一区| 国产一区视频在线播放| 亚洲欧洲一区二区| 人妻少妇精品久久| 激情网站五月天| 国产精品美女免费视频| 日本亚洲欧美三级| 国产成人在线一区| 精品中文字幕在线观看| 久久99精品国产99久久6尤物| 国产日韩欧美在线看| www国产亚洲精品| 无码人妻精品一区二区蜜桃百度| 久久中文精品视频| 久久99国产综合精品女同| 欧美中文字幕在线观看视频| 国产精品午夜视频| 国产日本一区二区三区| 福利视频久久| 国产精品国内视频| 国产一级片91|