前言:本站為你精心整理了改良的WSNs路由協議范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
本文作者:王坤赤鄭月節徐晨周暉慶棟良作者單位:南通大學電子信息學院
0引言
無線傳感器網絡(wirelesssensornetworks,wsns)已在軍事、醫療、交通、環保、工業等多領域得到了廣泛應用。但是,WSNs中的感知節點攜帶能量有限,且無法補充,當感知節點因能量耗盡而無法正常工作時,將會影響到網絡性能,使得用戶無法獲得完整的感知信息。因此,如何設計一個有效的路由協議,節約網絡能量消耗、最大程度利用感知節點的能量,最大化網絡功能,延長網絡的生命周期成為WSNs的研究重點[1]。路由協議是WSNs的關鍵技術之一,它負責將傳感器節點的感知信息通過網絡傳輸到匯聚節點,主要包括2個方面的功能:尋找源節點與目的節點的優化路徑,將數據分組沿著優化路徑正確轉發[2]。根據拓撲結構的不同可以將路由協議分為:平面路由協議和層次路由協議。平面路由協議具有結構簡單、網絡啟動快、維護開銷小、適合中小規模網絡等特點,典型的代表有Flooding,Gossiping,DirectedDiffusion,Rumor等協議;層次型路由協議具有路由擴展性好、能耗低、網絡延遲小、適合大規模網絡等特點,典型代表有LEACH,PEGASIS,TEEN等協議[3]。最小跳數路由(MHR)協議[4]是對DirectedDiffusion協議的改進,提出了最小跳數梯度場的概念。由于MHR協議簡單、可以自動趨向于最短路徑和時延最小等優點,倍受研究者關注,但是在研究的過程中發現該協議對能量的控制、路徑選擇等方面仍存在不足之處,需要進一步改進完善。
1最小跳數路由協議及其研究
1.1MHR協議描述
MHR協議工作過程分為2個階段,即最小跳數梯度場的建立和基于最小跳數場的數據傳輸,具體描述如下:1)梯度場的建立階段
a.初始化時,Sink節點的跳數設置為0,感知節點跳數設置為網絡不可到達的跳數,如255。b.Sink節點采用Flooding方式向傳感器網絡發送數據查詢分組,查詢分組包中含有Sink節點ID、最小跳數值HC、任務類型等。c.Sink節點的鄰居節點收到該信息后,將分組中的最小跳數值HC+1作為新HC值與自身儲存的HC值比較,若新的HC值小于原來節點存儲的HC值,用新的值代替原存儲值,并將分組中的HC值替換成新HC值、原發送節點ID換成本節點ID,然后將修改后的查詢分組同樣以Flooding方式向其鄰居節點廣播;若新HC值大于原存儲值,則丟棄查詢分組,不作其他任何處理。d.其他節點收到查詢分組后,重復第(3)步的處理。
2)數據傳輸階段
在數據傳輸階段,感知節點采集到數據后,數據以受控Flooding方式沿Sink節點方向進行轉發數據,即按照已經建立的最小跳數梯度場以每跳HC值減1為約束,以此使源節點采集到的數據沿著最小跳數值遞減的方向向Sink節點傳送。
1.2協議研究
雖然MHR協議具有許多優點,但其網絡中感知節點一般都會有多個父節點,這些父節點又會有自己的多個父節點,由于算法并未對轉發報文進行記錄,使得多個相同數據被多次重復傳送,造成了一定的資源消耗與數據碰撞等。基于MHR協議,研究者作了相關研究與改進。文獻[5]中針對網絡中終端節點、中間節點采用不同的休眠與喚醒機制,以此來降低網絡的能耗,延長網絡的生命周期。文獻[6]中通過引入元數據概念、延遲轉發和閾值的設置等措施來降低網絡中能量的消耗。針對最小跳數路由協議最小梯度場穩定周期短,導致數據接收不可靠的情況,文獻[7]提出了一種基于鏈路可靠性的最小跳數路由協議,該協議在最小跳數梯度場建立階段,控制其梯度場層次寬度,以此來提高通信鏈路的可靠性和延長最小梯度場的穩定周期。文獻[8]中就最小跳數路由協議只考慮最大限度利用網絡節點的通信覆蓋能力,而不考慮網絡節點的能量和負載的情況,提出了最優跳數路由協議。該協議的主要思想是構建一個基于跳數、能量、負載的三維決策函數,在數據傳輸階段利用決策函數來確定轉發節點,優化網絡能量消耗、均衡網絡負載。文獻[9]通過對最小跳數WSNs的行為特征分析,提出了一種控制數據包冗余度的解決策略。
上述針對MHR路由協議的改進,并沒有從如何避免數據包的多路徑冗余傳輸、查詢分組的周期泛洪、關鍵節點能量消耗速率過快,以及如何提高組網速度與動態適用性等角度考慮問題,本文將基于上述問題,提出一種改進的WSNs最小跳數路由協議。
2改進路由協議
2.1改進思路
針對上述角度提出相應的解決方案,具體思路為:1)利用偵聽機制,在全網建立單一傳輸路徑,以避免通過周期性泛洪查詢分組信息來實現網絡路由建立、更新,數據包的多路徑冗余傳輸而造成的資源不必要消耗,并能提高組網速度和動態適用性;2)引入ACK報文確認機制,以避免從多路徑到單路經數據包傳輸可靠性降低問題;3)提出一種Hello包插隊機制,以控制網絡中關鍵節點能量消耗過快問題。具體方案詳述如下:
1)偵聽機制:在傳感器網絡中,沒有路由的節點主動廣播RREQ(routingrequire)報文請求加入網絡。收到RREQ的節點不僅回復RREP(routingreply)報文以提供路由信息,而且還將該RREP報文設置為廣播型,使周圍鄰居節點也能偵聽到該路由信息,以便快速建立路由、及時更新路由,從而提高網絡的組網速度和靈活性,避免MHR協議中數據包的多路徑傳輸。
2)ACK報文確認機制:在網絡中節點發送一個數據包到父節點,等待父節點回復確認接收ACK報文。若在一段時間內收到ACK報文,則認為本次數據包傳輸成功,并在等待一段隨機時間后發送緩沖區中下一個數據包。否則,該子節點等待一段隨機時間重發該數據包,并統計重發次數,統計次數超過一定閾值n時,認為數據傳輸錯誤,丟棄該數據包。ACK報文確認機制可以保證在單路經下數據包的傳輸可靠性。
3)Hello包插隊機制:本文規定感知節點的能量消耗速率v為(公式略)。設定v的一個閾值am(根據實驗仿真部分關鍵節點的能量消耗曲線估算得到,am的值隨著網絡規模的不同取值也不同,m為網絡中節點的數量)。Hello包插隊機制的原理為:當某節點A檢測到自身的v值大于所設定的閾值時,就生成一個Hello報文,該報文包含節點跳數HC、節點ID、剩余能量、生成時間等信息。生成Hello包后,將該報文插入緩沖區隊列的頭部,廣播給鄰近節點。每個收到該Hello報文的節點首先對比節點ID與自身父節點ID,若相同則取消該鏈路,將自身HC值為255后等待RREP,并在接收到的RREP中尋找最優的父節點建立新的路由,以降低節點A的能量消耗速率,均衡網路能量消耗;若節點ID與自身父節點ID不同,再判斷本節點跳數HC是否等于或小于發Hello包節點的跳數,若滿足條件就回廣播型的RREP,否則,不做任何處理。
2.2改進協議描述
在上述思想基礎上,提出一種改進的最小跳數路由協議,改進協議對最小跳數路由梯度場的建立與數據傳輸階段進行改進,并增加路由維護階段。具體協議的描述如下:
1)網絡建立階段
a.網絡初始狀態,設置Sink節點的跳數值為0,普通節點的跳數值設置為不可達到的值(設置為255),清空父節點列表。b.每個需要加入網絡中的節點主動發送RREQ報文請求加入網絡,周圍節點收到RREQ報文后,檢查自身的父節點列表,若不為空,說明該節點有路由,則該節點回復廣播型RREP報文。c.鄰居節點在收到該廣播型的RREP報文后,將報文中的HC值加1后作為新的跳數值(HC+1)與自身儲存的HC值進行比較,若新的跳數值小于自身儲存的HC值,則將該節點作為自己的父節點,否則,丟棄該RREP報文,不做任何處理。d.其他節點重復執行步驟(2),(3),直到網絡中的每個節點都記錄了自身到Sink節點的最小HC值,完成網絡的路由建立。偵聽機制下的路由建立過程如圖1所示。圖1(a)表示網絡的初始化,圖1(b)表示節點A需要建立路由,發送RREQ報文,鄰居節點在收到RREQ報文后根據自身的情況是否恢復RREP報文。圖1(c)表示Sink節點回復的廣播型RREP報文,節點A,B在接收到該RREP報文后,將報文中的HC值0加1后作為自身的跳數值,并建立路由。圖1(d),(e),(f)則表示節點C,D,E建立路由的過程。通過圖1可以發現,基于偵聽機制的路由建立過程具有組網速度快且靈活等優點。
2)數據傳輸階段
在數據的傳送階段,改進協議引入了數據報文緩存和ACK機制,普通節點在發送數據包時,沿著已建立的拓撲結構傳向Sink節點,數據傳輸具有一定的方向性。在數據傳輸的過程中采用ACK確認機制來保證數據傳輸的可靠性。節點產生的數據包先添加到緩沖區,然后根據已建立的偵聽機制路由傳送給轉發節點,等待一段時間,若等待時間內收到轉發節點回復的ACK報文,則認為數據轉發成功,并在緩沖區內丟棄該數據包;若等待一段時間后,沒有收到轉發節點的ACK報文,則節點在接下來的時間內隨機重發該數據包,并統計重發次數,直至數據包被轉發節點成功接收,此過程中設置最大重傳次數n,超過n次,則認為數據包傳輸錯誤,丟棄數據包。
3)路由維護過程與新節點的加入
路由的維護過程分為2個部分,即節點的定時維護和檢測維護。在網絡中設定所有的感知節點工作過一段時間后,在一個隨機時間范圍內發起RREQ,進行定時的局部路由維護,選擇能量最大的鄰居節點作為父節點。與此同時,在數據包的傳輸過程中引入Hello包插隊機制,不斷地檢測節點的消耗速率,用來更新節點的路由,均衡網絡中節點能量消耗。Hello包插隊機制流程圖如圖2所示。此外,當網絡中有新的節點加入時,將新的節點跳數值設置為255,并主動廣播RREQ,鄰居節點在收到新節點發送的廣播RREQ后,回復RREP,新節點選擇能量最大節點作為父節點,加入網絡。
3實驗仿真結果與分析
3.1能量模型與仿真模型
3.1.1能量模型
在仿真實驗中,采用了以下的能量消耗計算公式E=Power×sim_step×Length.(2)其中,Power為節點的發射功率或介紹功率;sim_step為仿真步長;Length為包的長度。
3.1.2仿真模型
為了驗證改進協議I-MHR在WSNs中運行的情況,在自主研發的無線傳感器仿真平臺上建立模擬場景,將節點均勻隨機分布在5000m×5000m的正方形區域內,Sink節點分布在正方形區域的中心位置,分別設置網絡中的傳感器節點數目為100,125,150,175,200,225,圖3所示的為I-MHR協議的節點布設和網絡拓撲圖。網絡使用的信道模型為自由空間模型,信道帶寬設置為0.2MHz,網絡工作在433MHz頻段下,數據產生的速率為20kbps,數據包產生的速率為0.01Package/s,仿真的步長為0.0004s,節點的緩沖區大小為20Packages,數據包,RREQ,RREP,Hello報文長度均為48bytes,ACK報文長度為8bytes,節點的初始能量為1×10-2J,Sink的能量設置為100J,Ptx設為2.0mW,Prx設為1.0mW。Hello包插隊機制與ACK確認機制中的參數設置為:a100=0.12mJ/s,a125=0.12mJ/s,a150=0.13mJ/s,a175=0.13mJ/s,a200=0.14mJ/s,a225=0.14mJ/s;n=5。
3.2仿真結果與分析
從網絡能耗的均衡性、有效性以及網絡生命周期等方面,驗證I-MHR協議的性能,并將其與MHR協議進行比較。
3.2.1能耗的均衡性
衡量網絡協議的能耗均衡性可以從能耗方差[10]進行比較。圖4是選取150個節點的網絡規模下,節點能耗均衡性曲線,從圖中可以看出:I-MHR能耗方差上優于MHR,這是由于I-MHR采用了單一路徑傳輸,引入了能量控制策略,避免了MHR周期性的洪泛查詢和數據的冗余傳輸,降低且均衡了網絡能量消耗。
3.2.2能量有效性
能量有效性[11]是在規定的網絡仿真時間內,Sink節點接收到的數據包總數與所有普通節點消耗總能量的比值。圖5顯示了I-MHR與MHR協議在不同網絡規模中能量有效性的比較。從仿真數據可以計算出:不同網絡規模下,I-MHR協議的能量有效性比MHR協議平均提高70.78%。從圖5還可以看出:隨著網絡規模的擴大,2種協議的能量有效性都有所降低,這是因為隨著網絡規模的增加,每一個數據包到達Sink節點的跳數值隨之增加,能耗增加,降低能量有效性。
3.2.3網絡生命周期
網絡生命周期[11]是網絡仿真中第一個節點死亡的時間值,其長短是檢查網絡節點能量消耗的重要指標。圖6顯示了不同網絡規模中2種協議的網絡壽命圖,圖7顯示了在網絡規模為150個節點下的節點生存個數圖。仿真數據表明:在不同的網絡規模下,I-MHR協議比MHR協議網絡生命周期平均提高了57.59%,特別是在150個節點時,提高了94.41%。此外,由圖6可以看到,隨著節點數的增加,I-MHR與MHR協議的第一個死亡節點時間呈下降趨勢,這是因為隨著網絡規模的不斷增加,網絡中產生的數據包不斷增加,導致關鍵節點在單位時間內傳輸的數據包增加,最終使能量消耗過快,節點出現過早實效。
4結論
本文在MHR協議的基礎上,提出了一種改進的無線傳感器路由協議。改進的協議通過在路由建立階段引入偵聽機制,將RREQ報文設置為廣播型,快速建立單一傳輸路徑,有效地解決了多路徑冗余傳輸和周期洪泛問題,提高網絡的組網速度;在數據的傳輸階段通過確認機制來保證數據包的可靠傳輸;增加路由定時維護階段和運用能量控制策略,解決網絡能量消耗不均衡、部分關鍵節點的能量消耗過快等問題。仿真實驗表明:改進的路由協議可以有效地提高網絡能量的均衡性、有效性,延長了網絡生命周期。