關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 無線傳感器網絡SMAC協議的研究與改進

        無線傳感器網絡SMAC協議的研究與改進

        作者: 時間:2013-04-09 來源:網絡 收藏

        摘要:介質訪問控制(MAC)協議是保證網絡高效通信的關鍵網絡協議之一。傳感器介質訪問控制(SMAC)協議是以節能為目的的MAC協議。介紹了工作原理,針對退避機制的缺陷,借鑒二進制指數,在的基礎上引入了一種具有公平性的退避機制。節點根據接入信道的次數動態調整,退避失敗時凍結退避計時器,在下個競爭周期繼續計時,增加了節點接入信道的公平性,減小了碰撞,增大了吞吐量和信道利用率。仿真結果表明:改進后的SMAC協議在吞吐量,能量消耗和能量利用率方面相對于SMAC協議有顯著的提高,起到了節能的效果。
        關鍵詞:;SMAC協議;

        0 引言
        (Wireless Sensor Networks,WSNs)目前是一個最新的研究領域,它是由大量的節點組成的面向任務的分布式網絡。而作為協議棧重要基礎構架的介質訪問控制(Medium Access Control,MAC)協議決定著無線信道的使用方式,負責為網絡節點分配無線信道資源,直接影響網絡整體性能,成為網絡協議研究的重中之重。
        因為WSNs技術應用的獨特性,SMAC協議以盡可能地節約能量,提高能量效率,從而延長整個網絡的生存周期。Wei Ye等在2002年提出了傳感器介質訪問控制(Sensor MAC,SMAC)協議,SMAC協議同IEEE 802.11相比,具有明顯的節能效果,但是由于SMAC協議引入了周期性睡眠方式,節點不一定能及時傳遞數據,使網絡的能量利用率、吞吐量下降。本文通過引入動態自適應網絡競爭動態改變大小的思想,在減少MAC協議能量消耗的同時,增加網絡的吞吐量,增大了能量利用率。

        1 SMAC協議簡介
        SMAC協議是專門為WSN設計的MAC協議。該協議通過綜合運用時間安排協議和競爭協議能夠達到良好的可擴展能力和碰撞回避能力,為了實現能量效率,盡量降低能量是SMAC協議的主要目標。
        1.1 周期性偵聽與休眠
        SMAC協議使節點周期性地進入休眠狀態,從而縮短偵聽時間以減少空閑偵聽帶來的能量損耗。如圖1所示,節點通過選擇和維護休眠調度表,使相鄰節點組成休眠/喚醒自同步的虛擬簇,從而實現信息傳輸的同步,并降低控制開銷。

        本文引用地址:http://www.104case.com/article/159452.htm

        a.JPG


        1.2 碰撞回避
        為了避免碰撞以及解決隱含終端問題,SMAC協議采用虛擬載波偵聽和物理載波偵聽以及RTS/CTS交互機制。每個所發送的分組中都有一個時間域,用于標明剩余的傳輸時間。一個節點接收到傳遞給另一個節點的一個分組后,就能夠根據該分組中持續時間域的數值而決定自己需要保持多長時間的靜默,并將該值記錄到一個叫做網絡分配矢量(Network Allocation Vector,NAV)的變量中,然后設置相應的定時器。每當啟動定時器時,節點遞減其NAV,直到NAV等于零為止。節點在開始發送之前首先檢查其NAV:若其NAV不等于零,節點判定媒介忙,叫做虛擬載波偵聽。物理載波偵聽是在物理層實現的,通過偵聽信道確定是否有信息在傳輸。為了避免碰撞,SMAC協議采用隨機的載波偵聽時間。如果虛擬載波偵聽和物理載波偵聽都判定媒介空閑,才判定媒介空閑。

        2 SMAC協議改進策略
        2.1 SMAC協議隨機退避原理
        在SMAC協議中,為了減小分組傳輸發生碰撞而造成的能量損耗,節點在發送數據前要隨機退避一段時間。在每個周期的開始,消息隊列非空的節點就會從[0,CW-1]中隨機選擇一個退避數。如果信道空閑,每過一個時隙,退避計數器的值就會減1,當退避計數器的值遞減為0時,節點就開始發送數據。此時,沒有競爭到信道的節點就會停止退避計數器的計時,轉入睡眠狀態等到下一個周期的到來繼續競爭信道。由于SMAC協議采用的是固定競爭窗口CW,這就不能很好的適應信道的變化,降低了信道的利用率,降低了網絡的吞吐量。另外,節點每次競爭信道失敗或者在退避過程中發現信道忙時,都會重新計算退避值。這就導致有些節點在經過很長的退避計時后由于信道忙競爭信道失敗,而重新計算退避值,等到下一個競爭周期時執行新的退避值。這就使得一些節點低概率接入信道,能量消耗不均勻,并導致網絡區域性中斷不連通,降低了整個網絡的生命周期。
        2.2 SMAC協議改進
        為了適應信道狀態的動態變化和提高節點訪問信道的公平性,本文參考了IEEE 802.11 DCF退避機制,針對SMAC的不足點加以改進。并引進了二進制指數退避BEB(Binary Exponential Backoff)算法,它的主要特征如下:
        采用較小的初始化窗口CWMin和較大的最大值窗口CWMax。
        當節點每次發送失敗時,節點就會將其退避窗口CW加倍直到CWMax。
        當節點每次發送成功時,節點就會將其退避窗口CW置為最小競爭窗口CWMin。
        由于BEB算法針對節點競爭信道失敗采用了競爭窗口倍增的思想,使節點快速擺脫競爭區提高節點接入信道幾率。當節點發送分組成功時,就會將競爭窗口CW置為CWMin。這樣就會使得上一次競爭信道成功的節點永遠具有較小的競爭窗口,其接入信道的幾率遠遠大于其他節點。競爭窗口的波動比較大,增加了節點的潛在競爭幾率,勢必會影響網絡的吞吐量。
        首先,在新的退避算法中引進3個定值,最小競爭窗口值min CW,最大競爭窗口值max CW,中間門限值mid CW=(minCW+maxCW)/2。
        新退避算法的具體描述如下:
        (1)信道競爭失敗:如果節點在信道競爭過程當中失敗,它便會倍增競爭窗口直到最大競爭窗口maxCW,CW=min(maxCW,CW×2)。
        (2)信道競爭成功:如果節點成功地完成信道競爭,它便會將競爭窗口置為最優初始競爭窗口initCW,為了提高所有節點接入信道的公平性,初始競爭窗口是通過節點連續占用信道次數動態確定的。節點每次成功占用信道時都會將其信道占用計數器值Count加1,當信道占用計數器值小于信道占用次數閾值thCount時,此時將競爭窗口減半并以min CW為下限,初始競爭窗口initCW=max(minCW,CW/2)。當信道占用計數器值大于信道占用次數閾值th Count時,為了提高其他節點接入信道的幾率,節點的初始競爭窗口盡量維持在一合適值范圍內。在本算法中競爭窗口先減半再加上2倍信道占用次數值記為temp CW,將temp CW與mid CW比較,如果小于mid CW,此時競爭窗口位于小值區域內。再將temp CW與min CW比較,如果小于min CW則置init CW為min CW,否則置初始競爭窗口為temp CW減1。如果temp CW大于mid CW,則競爭窗口位于大值區域內,此時的初始退避窗口值計算為:
        init CW=CW-[CW+(temp CW/mid CW)·CW]/Count
        (3)退避過程:當所有處于未休眠狀態的節點偵聽信道時,節點發現信道空閑了一個時隙,它就會減少一個時隙的退避時間(BT),BTnew= BTold-aSlotTime,當它的退避計數器值為0時,節點會發送數據包。為了提高信道利用率,降低節點因退避而造成的能量浪費。如果節點偵聽到信道有連續2minCW+1空閑時隙,則信道每經過一個空閑時隙就使BTnew=BTold/2,如果BTnewaSlotTime,則BTnew=0。

        3 理論分析
        在一個周期內,影響SMAC協議能量利用率的主要因素有2個:因傳輸失敗而重傳數據消耗的能量和連續競爭信道消耗的能量。在高流量和一些遍歷性假設的情況下,可以得到如下的能量利用率:
        b.JPG
        式中:PSD表示節點Ni在一個周期內成功發送數據包過程所消耗的功率;Pc表示在一個周期內節點因發生碰撞發送數據包失敗過程所消耗的功率;PD表示在一個周期內節點成功發送數據包所消耗的功率。設在一個傳輸周期內數據包平均發生碰撞的次數為E[Cc],在競爭周期內由于退避而產生的空閑時隙的期望值為E[Bc],ts為每個時隙的時間長度,c1.jpg為數據包的平均長度,PT為發送功率,PR為接收功率,PIdle為節點空閑時消耗功率。在Pc階段時長為TPc,在PD階段時長為TPD。則有下式:
        c.JPG
        由式(1),式(4)~式(6)可以看出:如果數據包在傳輸過程中是一個接一個沒有任何間隔,就可以得到最大的能量利用率和最大的吞吐量。在這種情況下,E[Cc]=0,E[Bc]=0,能量利用率為:
        d.JPG
        在此情形下,節點在競爭周期內傳輸數據包的必要條件是節點接入信道的概率P較其他節點大。本協議采用的是隨機退避機制,所以,節點Ni在競爭周期內接入信道的概率取決于退避計數器:
        e.JPG
        式中Cbi為節點Ni的退避計數器。
        由式(8)知,當節點Ni的退避計數器Cbi=0時,它將立即占用信道發送數據包,此時它在當前競爭周期內發送數據包的概率Ptrans(i)=1;當節點Ni的退避計數器Cbi=∞時,節點在當前競爭周期內發送數據包的概率Ptrans(i)=0。通過以上分析可知:對于將要發送數據包的節點設置較小的退避計數器,而對于暫時沒有數據包要發送的節點設置較大的退避計數器,這樣可以有效的提高節點能量利用率和吞吐量。對于長時間占用信道的節點設置較大的退避計數器,對于長時間因競爭失敗且需要發送數據的節點設置較小的退避計數器,這樣可以有效的提高節點接入信道的公平性和減少數據包的傳輸時延。
        當節點競爭信道失敗,加倍退避窗口有效地減少了“將來”發生碰撞的概率,減少了E[Cc]。在節點退避過程,節點發現信道連續空閑會認為信道上沒有節點傳輸數據包,退避窗口成指數倍減少,可以減少空閑時隙E[Bc],減少節點退避時能量浪費,提高節點能量利用率和吞吐量。如果節點發現信道忙,計時器被掛起,等下一個競爭周期到來繼續執行,提高節點接入信道的概率實現節點接入信道公平性。節點成功發送數據包后,根據占用信道次數動態調整退避計數器,使得需要發送數據包的節點在退避時能成功完成退避過程,減小E[Bc],這樣可以提高節點接入信道的公平性也提高了整個網絡的吞吐率。

        4 仿真試驗與結果分析
        本文仿真平臺為NS-2.34,對SMAC協議和改進的SMAC協議進行仿真比較。配置仿真拓撲為一個由10個節點組成的鏈狀拓撲。拓撲中每2個節點間的距離是200 m,節點的通信距離為250 m,節點只能與周圍一跳節點進行通信,保證數據包只能一跳一跳的通信。
        通過改變CBR數據流發包間隔(interval)的值來模擬網絡的不同流量負荷情況。數據包發送間隔設置從1~15 s,當發送間隔為5 s的時候,即每隔5 s發1個包。初始能量設為1 000 J,以保證整個仿真時間內節點能量不耗盡。發送功耗為386 mW,接收功耗為368.2 mW,空閑偵聽功耗為344.2 mW,睡眠功耗為50μW。仿真帶寬為20 Kb/s,路由協議為DSR,占空比為20%。
        4.1 網絡吞吐量分析
        數據流的端到端的平均吞吐量是指目的節點在整個連續時間內成功接收到得數據包的平均值。由圖2可以看出:由于SMAC協議采用的是固定競爭窗口和二進制指數退避算法,在網絡流量很大時,造成數據包發生碰撞的次數增加,碰撞后重傳的次數必然增大,因而,吞吐量保持在一個相對較低的值。改進后的SMAC協議,由于在退避機制上的改進,在網絡流量很大時,顯著的提高了網絡吞吐量。當分組間隔小于5 s,改進后的SMAC協議比SMAC協議的吞吐量平均提高了近約70%。

        f.JPG


        4.2 網絡能耗分析
        網絡總的能量消耗,就是把網絡初始時的各個節點的能量累加起來,仿真結束時的各個節點的能量累加起來,能量差就是網絡消耗的總能量。由圖3可以看出:由于SMAC協議采用的是固定競爭窗口且每次退避時都是重獲取窗口的大小,在網絡流量較大時,造成數據包碰撞的幾率較大,碰撞后數據包重傳的幾率較大,因而,能量消耗保持在一個相對較大的值。改進后的SMAC協議,由于改進了退避機制,能夠適應網絡流量的動態變化,減少了數據包的碰撞幾率,因而,減少了因重傳數據包所消耗的能量。本文的SMAC協議根據節點占用信道的次數動態調整節點的退避窗口,提高了節點接入信道的公平性,一定程度上降低了節點因連續競爭信道所消耗的能量。在整個仿真過程中,改進后的SMAC協議比SMAC協議的總能量消耗平均降低了100 J左右。

        g.JPG


        4.3 能量效率分析
        本文的能量效率采用文獻的定義,即每焦耳能量所能發送的數據包,單位為b/J。顯而易見,每焦耳能量所能發送的數據包越多,協議就具有越好的節能性。由圖4可以看出:在網絡流量較大時,SMAC協議由于數據包的重傳浪費了大量的能量,導致能量效率較低。改進后的SMAC協議,根據節點占用信道的次數動態調整了退避窗口值,減少了數據包重傳所消耗的能量,能量效率相對較高。當分組間隔小于6 s,改進后的SMAC協議比SMAC協議的能量效率平均提高了近55%。當分組間隔大于6 s,由于改進后的SMAC協議較SMAC協議能量消耗較少,能量效率較SMAC協議有所提高。

        h.JPG



        5 結語
        本文研究了SMAC協議,并在此基礎上借鑒了二進制指數退避算法,對SMAC協議進行了改進。在改進的SMAC協議中,節點根據接入信道的次數動態調整退避窗口,在退避時能根據信道的狀態動態調整退避計時器值。最后,利用NS2仿真軟件進行仿真驗證,證實了在吞吐量、能量消耗和能量利用率方面,改進后的SMAC協議與SMAC協議相比有所提高。

        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 合川市| 朝阳市| 梁山县| 昆明市| 靖宇县| 阿勒泰市| 姚安县| 霍州市| 外汇| 达尔| 乐东| 蒙自县| 盈江县| 泰安市| 化德县| 高雄市| 贵州省| 日喀则市| 郁南县| 海门市| 甘洛县| 鹿邑县| 伊金霍洛旗| 兴隆县| 北流市| 临泉县| 龙陵县| 温州市| 电白县| 南投县| 灯塔市| 洪江市| 台南市| 古交市| 丰城市| 漳州市| 吉水县| 齐河县| 中山市| 乐陵市| 长垣县|