摘要:通過對CSMA協議的分析,在基于信道接入分簇網絡中提出了改進的MAC協議,即M-CSMA協議。最后,利用OPNET仿真實現了該協議,并給出了相關的仿真結果。
關鍵詞:無線傳感器網絡;分簇算法;MAC協議;OPNET
中圖分類號:TP393文獻標志碼:A
文章編號:1001—3695(2007)03—0265—03
作為全球未來十大技術之一的網絡傳感器技術已開始受到人們的重視。無線傳感器網絡綜合了傳感器技術、嵌入式計算機技術、通信技術、電源技術等多項技術,可以使人們在任何時間、地點和環境下獲得較為詳細、可靠的信息,可廣泛應用于諸如國家安全、軍事領域、醫療健康、交通管理、環境監測、空間探索、商業等領域中[1]。
無線傳感器網絡是集成了監測、控制及無線通信的網絡系統,通常節點數目龐大(上千甚至上萬),節點分布密集;網絡中傳感節點的能量、處理能力、存儲能力和通信能力等都十分有限[2];同時傳感節點檢測的數據通常有大量冗余或者數據相關,為了節約網絡的能耗需要作初步的數據融合。為適應無線傳感器網絡的這些特點,網絡分簇成為研究的熱點。
分簇算法將網絡劃分成可以互相連通并覆蓋所有節點的多個簇,并在網絡結構發生變化時更新簇結構以維護網絡的正常功能。簇頭節點擔負數據融合的任務,減少了數據通信量;分簇式的拓撲結構有利于分布式算法的應用,適合大規模部署的網絡[3]。
許多分簇算法重點在于研究形成分簇的合理性以及簇頭節點的選擇方面,如LEACH算法[4]、HEED算法[5]、TEED算法[6]和CABC算法,而較少考慮MAC的協議。它們在分簇形成階段均使用的是CSMA協議,在分簇穩定階段MAC協議有所區別。本文重點在于研究分簇形成階段中基于CSMA的MAC協議對整個分簇網絡的影響。
1MAC協議的設計
1.1CSMA協議分析
CSMA是一種常用競爭的方法來決定對媒體訪問權的協議。在網絡中,每個節點都能獨立地決定數據包的發送,若兩個或多個節點同時發送數據包就會產生沖突,導致所發送的數據包出錯。因此,一個節點發送信息成功與否,在很大程度上取決于監測總線是否空閑的算法,以及當兩個不同節點同時發送的分組發生沖突后所使用的中斷傳輸的方法[7]。
目前,對CSMA協議的定義及分類有很多種,其中針對信道劃分方式的不同可分為:時隙CSMA和非時隙CSMA;根據節點偵聽到信道為忙時處理方式的不同可分為:堅持的CSMA和非堅持的CSMA;根據節點偵聽到信道為空閑時處理方式的不同可分為:l-堅持的CSMA和P-堅持的CSMA。分類圖[8]如圖1所示。
其中時隙CSMA中的劃分與非時隙CSMA的劃分相同,因此,圖中只畫出了非時隙CSMA的分類。針對無線傳感器網絡的特點,時隙CSMA需要時間同步,為節省能耗,降低硬件實現的復雜度,因此傳感節點只考慮非時隙的CSMA協議。
非時隙CSMA協議首先對媒體上有無載波進行監聽,以確定是否有別的傳感節點在傳輸數據。如果媒體空閑,該傳感節點便可傳輸數據;否則,該站點將避讓一段時間后再作嘗試。這就需要有一種退避算法來決定避讓的時間。常用的退避算法有三種:
(1)非堅持的CSMA算法。一旦偵聽到信道空閑,立即發送報文;否則,隨機等待一段時間后再偵聽。
(2)1-堅持的CSMA算法。節點在發送數據包之前,先偵聽信道,若信道空閑,立即發送;否則繼續偵聽,直至出現信道空閑。
(3)P-堅持的CSMA算法。當節點偵聽到信道空閑時,以給定的概率p在經過一個隨機分配的延時后發送數據包文,而以概率q=1-p重新監聽信道。
比較以上三種CSMA算法可知,非堅持CSMA算法傳輸介質的利用率很低;1-堅持CSMA算法網絡沖突概率很高;P-堅持CSMA算法在這兩方面的指標介于兩種算法之間,它試圖降低1-堅持CSMA算法的沖突率,提高非堅持CSMA算法的傳輸介質利用率。但傳輸介質的利用率仍不是太高,因為即使幾個終端都有數據要發送,傳輸介質仍然有可能處于空閑狀態(因p≠1)。
另外還有預測P-堅持算法,它的消息服務類型必須選擇應答服務[9]才能實現預測。因為在無線傳感器網絡在分簇形成過程中許多消息是廣播類型的,不需要應答服務,所以P-堅持算法不適合分簇網絡,在此不討論。
1.2M-CSMA協議描述
針對無線傳感器分簇網絡的特點,提出了在分簇形成階段采用1-堅持和P-堅持相結合的混合CSMA協議,即M-CSMA(MixCSMAprotocol)協議。由上面所述,在P-堅持的CSMA協議中,當傳感節點檢測到信道空閑時,才產生概率p來發送數據,而以概率1-p退避等待。M-CSMA協議采用的是當傳感節點檢測到信道忙時,產生概率p進入信道監聽,直到信道空閑后,將數據包發送出去,此時類似于1-堅持的CSMA算法。M-CSMA具體實現過程的狀態轉換圖如圖2所示。
傳感節點經過初始化狀態init初始化關鍵參數后進入idle狀態,等待網絡層的數據包。M-CSMA具體協議過程概述如下:
(1)收到數據包后,檢查信道,如果信道忙,則進入try_or_wait狀態,計算概率p,概率p的值服從貝努利分布,即
(2)如果FLAG=1,則進入sensor_chan狀態,監聽信道直到信道空閑,然后進入xmt_pkt狀態,將數據包發送出去。在監聽信道期間,如果網絡層有數據包到達,則直接將數據包放入隊列。
(3)如果FLAG=0,則進入wait_a_time狀態,先將數據包放入隊列,然后設定隨機等待時間tw,其中tw的值服從均勻分布,即
(4)當隨機等待時間tw到達后,檢測信道是否空閑,如果信道忙,則進入狀態try_or_wait2,執行與(1)相似的操作,然后判斷FLAG2的值。如果FLAG2=1,則進入sensor_chan狀態,執行(2)的操作;如果FLAG2=0,則回到wait_a_time狀態,繼續執行(3)操作。
(5)當隨機等待時間tw到達后,檢測信道空閑,則直接進入xmt_pkt狀態,將數據包發送出去。
(6)當傳感節點進入xmt_pkt狀態后,首先判斷隊列是否為空,如果不為空,則從隊列里取出要發送的數據包,發送出去;如果還有數據包要發送,則檢測信道是否空閑,如果空閑,則繼續發送數據包;如果信道忙,則直接進入try_or_wait狀態,執行(1)操作。
2網絡仿真的實現
將100個傳感器隨機布設在1200m×1000m的區域,如圖3所示。針對OPNET仿真工具的特點,以下分網絡級、節點級和進程級三個層次有重點地介紹系統模型的實現。
2.1網絡級系統模型
(a)無線傳感器網絡結構圖(b)節點結構
網絡的分簇結構中,簇頭表示為Ci(i為形成簇的編號,即成為簇頭的傳感節點的標號),成員節點表示為Mi(i為所屬簇號)。
2.2節點級模型
網絡中的傳感節點標志為sensor_i(0≤i≤99),并且所有的傳感節點都有相同的節點模型,如圖3(b)所示。傳感器節點在系統仿真模型中只有兩種狀態,即成員狀態和簇頭狀態。
(1)進程模塊MOVE主要負責傳感節點的移動。
(2)進程模塊PHY完成物理層的功能,在仿真中根據設定的接收靈敏度和發送距離來管理包的接收與發送。
(3)進程模塊CSMS實現了數據鏈路層中MAC層的功能,在仿真中采用M-CSMA算法實現信道的接入。
(4)ROUTE進程模塊主要完成基于信道接入的分簇算法。
(5)Radio_rcv,Radio_xmt和Radio_antenna模塊實現了無線鏈路的仿真,通過設定其中的參數來模擬實際的無線信道。因為本文重點不在無線信道的研究,所以只給出關鍵的參數,如表1所示。
2.3進程級模型
2.3.1ROUTE進程模型
基于信道接入分簇算法的MAC協議研究,分簇算法不是本文的研究重點,在此只簡要敘述。基于信道接入分簇算法的實現可分為四個階段,即分簇建立階段、分簇維護階段、分簇調整階段和分簇取消階段。在分簇建立階段,一個節點如果剩余能量超過規定極限能量值,則試圖接入信道來聲明自己的是簇頭,如果在它的所有鄰居節點中最先成功地發送了簇頭聲明控制消息,那么它將成為簇頭,即按照“最先聲明優先”的規則來選舉簇頭。在分簇維護階段,傳感節點如果是成員狀態,則周期發送HEART_BEAT消息;如果是簇頭節點,則周期發送HELLO消息以維持簇結構。分簇調整階段主要是調整簇成員的歸宿和簇頭節點間的距離。分簇取消階段主要是傳感節點能源即將耗盡時,將發送DISCONNECT消息以取消分簇結構。圖4為ROUTE的進程模型。
2.3.2MAC進程模型
MAC進程模型為M-CSMA協議的實現,在第1節有詳述,在此不再累述。
3仿真結果分析
3.1信道特性比較
設定式(1)的概率值為p=0.5,式(2)中隨機等待時間tw的上限b=0.05s,在統一的仿真場景模式下,分別使用1-堅持的CSMA算法、P-堅持的CSMA算法和M-CSMA算法得到的有關信道特性的結果(圖5)。
(a)信道接入延遲(b)平均信道利用率
圖5各種算法得到的有關信道特性的結果
從圖5(a)中可以看出,M-CSMA的信道接入延遲介于1-堅持CSMA與P-堅持CSMA之間,并且在前10s的分簇形成過程中,M-CSMA的信道接入延遲只有P-堅持CSMA的1/10,十分接近1-堅持的CSMA。由圖5(b)中可知,M-CSMA在前10s的分簇形成過程中的平均信道利用率與P-堅持CSMA相似,這說明M-CSMA算法融合了1-堅持和P-堅持CSMA算法的優點,既降低1-堅持CSMA算法的沖突率,又提高P-堅持CSMA算法的傳輸介質利用率。
3.2分簇網絡性能比較
在與上面相同的條件下仿真得到有關分簇網絡性能的結果如圖6所示。
從圖6(a)中可以看出,M-CSMA的平均分簇數目最小,大約為8個,而1-堅持CSMA分簇為11個,P-堅持的分簇雖然與M-CSMA相似,但在分簇形成階段明顯分簇數目要比M-CSMA的多1個左右。從圖6(b)中可知,M-CSMA的平均信道接收數據包介于1-堅持與P-堅持CSMA算法之間,說明在分簇數目相似的情況下,M-CSMA數據包的沖突率低于P-堅持的CSMA,所以數據包重發幾率小,因而平均信道接收數據比P-堅持的CSMA少大約2000個;在平均信道接收數據包相似的情況下,M-CSMA的平均分簇數目比1-堅持的CSMA少3個,因為數據包的沖突導致節點收不到相應的響應數據包,從而導致節點重新分簇而形成新簇頭,結果導致網絡的分簇數目增加,從而影響了分簇網絡結構,增加了網絡的能量消耗。
4結束語
無線傳感器網絡是涉及多學科的研究領域,具有十分廣闊的應用前景。針對分簇網絡的MAC展開研究,在分析了常用的CSMA算法后,提出了M-CSMA協議,并在基于信道接入分簇網絡中得到驗證。通過仿真結果分析可知,M-CSMA協議結合了1-堅持和P-堅持算法的優點,既降低1-堅持CSMA算法的沖突率,又提高P-堅持CSMA算法的傳輸介質利用率。
對于M-CSMA協議同樣涉及概率p和隨機等待時間tw的界定問題:p取值較大時,監聽信道的節點增加,同時發送數據包的幾率也隨之增加,信道上會產生大量數據包碰撞,許多數據包必須延時重發,從而導致信道的利用率急劇降低;p取值較小時,表面上信道的利用率不會急劇下降,實際上由p取值很小可知,數據包立即發出的概率非常小,數據包很大可能會延時重發。因此,下一步工作的重點在于研究最佳的p值和tw值,以及它們與分簇網絡的關系。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。