專利名稱:基于跨層的無線傳感器網絡節能方法
技術領域:
本發明涉及無線傳感器網絡能量管理領域,特別是涉及一種基于跨層的解決無線傳感器 網絡能耗問題的方法。
背景技術:
無線傳感器網絡作為一種新型的信息感知和獲取手段,因其自身特點以及廣泛的應用前 景,被認為是將對21世紀產生巨大影響力的技術之一。可生存性是無線傳感器網絡首先要考 慮的基本問題之一。在無線傳感器網絡中,節點通常采用容量極其有限的電池供電,而電池 的充電或是更換常常是不便甚至是不可能,這會導致傳感器網絡節點的失效,最終使整個網 絡崩潰。因此,如何在網絡使用過程中節省網絡節點的耗電量,延長網絡生存期是無線傳感 器網絡所面臨的關鍵問題,在這方面的研究與探索具有重要的理論意義和應用價值。
近幾年,為了提高無線傳感器網絡的節能效率,學者們做了不少的探索。相關的研究主
要包括
(1) 拓撲控制這種方法是在滿足網絡連通性和覆蓋的情況下,通過功率控制和骨干網 節點選擇,剔除節點之間無用或不必要的通信鏈路,生成一個高效的數據轉發的網絡拓撲結 構,從而降低網絡的通訊能耗。
(2) 能量感知路由這種方法是根據節點的剩余能量或傳輸路徑上的能量需求,選擇數 據的轉發路徑。從而降低整個網絡的能耗,延長網絡的生存周期。
(3) 睡眠管理由于節點在空閑狀態下消耗的能量是在睡眠狀態下消耗的能量的很多倍, 所以,將空閑節點置于睡眠狀態也可以節省很多的能量,達到節能的目的,這主要是MAC 層的節能策略。在這種情況下,網絡中只有很小的一部分節點仍然處于工作狀態,來為數據 提供傳輸與接收的服務,而大部分節點都已經被置于了睡眠的狀態,降低了網絡的能耗。
上面提到的這些方法都集中于無線傳感器網絡節點協議棧中的某一層,忽略了協議棧中 不同層之間協同工作的重要性。拓撲控制和能量感知路由是網絡層的一種節能策略,都是在 節點處于工作狀態時,通過一些策略來減少傳輸或者接收時消耗的能量,來達到總消耗能量 最小化;而睡眠管理是通過把空閑節點轉化到睡眠狀態,從而達到總能耗最小的目的,這是 MAC層一般采用的一種節能方法。因此可以看出MAC層的方法僅僅集中于解決該層的能量 消耗問題,沒有考慮來自網絡層的路由信息。而網絡層的路由協議僅僅集中于連通性或路徑 的有效性,沒有考慮MAC層節點的工作周期。如此單一層的方法導致了節點的能量利用率不高,節能效果不理想。因此,從跨層思想出發,綜合考慮MAC層和網絡層的實際情況, 使兩層之間共享信息,協同工作,從而設計出更加高效的節能方法,盡可能使無線傳感器網 絡能量消耗極小化。
發明內容
本發明的目的是設計一種基于跨層的無線傳感器網絡節能方法。綜合考慮網絡層的路由、 MAC層的能量消耗問題。它首先從MAC層收集與節點傳輸功率有關的參數,來構造網絡的 路由信息和維護節點的鄰居節點表,使用這些信息來解決MAC層能耗問題,從而有效提高 節點的能量利用率,延長網絡的生存周期。
本發明的第一方面是從MAC層收集信息,來維護每個節點的鄰居表和構造整個網絡的路 由表,同時對路由表進行更新和維護。
所述的鄰居表的維護主要是維護網絡的拓撲控制,每個節點都維護著一張鄰居節點表, 這個鄰居表里面包含著這個節點無線通信傳輸范圍內的所有的鄰居節點,以及當前節點與它 的鄰居節點之間能夠進行高質量的通信時需要使用的最小傳輸功率。所述的路由建立階段負責為網絡中的每個節點建立到匯聚節點(即目的節點)的路由路 徑,在路由建立階段試圖為每個節點尋找到匯聚節點(即目的節點)消耗能量最少的路由路 徑。
所述的路由維護、更新階段是當無線傳感器網絡中的路由表由于某種原因崩潰,或者某 個節點失效,有新的節點加入,這時網絡要很快適應這種拓撲結構的變化,快速重建或更新 整個網絡的路由表。本發明第二方面使用已有的路由信息設計MAC層工作方法,解決能耗 問題。MAC層能耗的主要來源是節點的空閑偵聽、數據碰撞、串音。因此,MAC層的能量 管理方法涉及到以下幾個方面。
(一) MAC層中節點空閑偵聽問題 節點在不需要發送數據時一直保持對無線信道的空閑偵聽以便接收可能傳輸給自己的數
據。這種過度的空閑偵聽或沒必要的空閑偵聽同樣會造成節點能量的浪費。本申請針對這一 問題在MAC層使用了周期性"偵聽/睡眠"的無線信道使用機制。
(二) MAC層中碰撞問題
碰撞是當MAC協議采用競爭方式使用共享無線信道,節點在發送數據的過程中,可能與 其它節點發送的數據產生碰撞,導致數據的重發,引起不必要的能量浪費。因此,本申請采 用基于兩階段的競爭來解決節點之間的碰撞問題。
(三) MAC層中串音問串音是指節點接收并處理不必要的數據消耗,增加了節點接收模塊和處理器模塊消耗的 能量。在串音避免方面,使用了兩種可選擇的機制。采用類似于802. 11MAC協議的RTS/CTS 機制和基于MAC數據分組頭部的串音避免。
相對于現有技術,本發明的創新之處在于
本發明采用跨層的思想,綜合考慮了MAC層、網絡層對無線傳感器網絡能量問題的影響, 區別于以往的僅僅集中于單層的方法。它根據MAC層獲得與傳輸能耗有關的信息,以降低網 絡能耗為出發點,選擇能耗最少的最優通訊路徑。根據路由信息來設計MAC層節點的工作方 式,設計睡眠調度策略、碰撞避免策略和串音避免策略來解決MAC層的能耗問題。使MAC層 和網絡層之間在能耗極小化的前提下,實現信息共享、協同工作,有效延長了網絡的生存期。
圖l鄰居表維護過程示意圖 圖2路由表的格式
圖3解決MAC層空閑節點偵聽問題步驟示意圖 圖4解決MAC層數據碰撞問題步驟示意圖 圖5解決MAC層串音問題示意圖 圖6數據轉發過程示意圖
具體實施例方式
圖1描述了鄰居表的維護過程。研究表明傳感器網絡節點成功接收一個數據分組的概率 主要取決于接收方的信號強度, 一般使用接收信號強度指數(RSSI)來衡量。同時接收信號 強度指數(RSSI)值與節點之間的傳輸功率有很大的聯系,研究發現呈線性關系。因此,首 先給當前節點i設定一個RSSI值的閾值、節點成功接收數據分組的閾值和一組不同級別的傳 輸功率,同時該節點i以這組不同級別的傳輸功率向無線傳感器網絡中的其他節點廣播數據
分組,節點i+r收到這組以不同級別的傳輸功率發送的數據分組以后,節點i+i的物理層根
據傳輸功率的值得到每個級別的傳輸功率對應的接收信號強度指數(RSSI)值,然后封裝在 數據分組中返回給當前節點i的MAC層。因為節點成功傳輸數據分組的數量與兩節點之間的 距離成反比,因此當節點i+l返回給當前節點i的數據分組數量超過已設定的節點成功接收 數據分組的閾值時,就認為節點i+l在節點i的無線通信覆蓋范圍內,所以節點i+l是節點 i的鄰居節點。同時利用這些返回的數據分組中的RSSI值建立傳輸功率與RSSI閾值之間的 線性模型。然后利用巳建立的線性模型與已設定的RSSI閾值計算出節點i+l與節點i進行通 信的合適的最小傳輸功率,并把節點對應的編號i+l和最小傳輸功率加入到當前節點i的鄰居表中。這樣網絡中的各個節點周期性地更新自己的鄰居表,就建立起了一個實時的鄰居表 的維護機制。接下來利用MAC層維護的鄰居表來建立網絡層的路由表,圖2描述了路由表的格式。下 面具體描述一下路由建立的主要過程,在該過程中用Cost(N,)表示節點i到匯聚節點(即目的節點)的能量開銷,Metric(Ni,Nj)表示節點i到節點j的傳輸能量開銷, 公式(1<formula>formula see original document page 7</formula>其中gj代表節點i與節點j之間的傳輸功率,R代表數據的傳輸速率,B代表網絡帶寬。(1) 初始化網絡中所有節點除了匯聚節點(即目的節點)以外都設置為非活動節點,匯 聚節點(即目的節點)將Cost(Nj)置為零,匯聚節點(即目的節點)首先設置一個路由更新序列號為0,建立自己的路由表。在這個路由表中下一跳表項設置為無效,其他節點也初始 化它們的路由表。匯聚節點(即目的節點)開始向它的鄰居節點廣播路由更新信息,同時每 廣播一個路由更新信息,路由更新序列號加一。路由信息中包括Cost(N,)值、路由更新序列號。(2) 匯聚節點(即目的節點)的鄰居節點i收到路由更新信息以后,查詢自己的鄰居表中 到匯聚節點(即目的節點)的傳輸功率,根據公式(1)計算出Metric(Ni,Nj),即Cost(Nj^Metric(Ni,Nj),下一跳節點(數據轉發時所經過的下一個節點)為匯聚節點(即目的節點),把Cost(Nj)存儲在路由表中,并標記匯聚節點(即目的節點)為活動節點。同時把該路由更新信息轉發給自己的鄰居節點,每發送一個路由更新信息路由更新序列號加一。(3) 當中間節點j收到鄰居節點i的路由信息后,查詢自己的鄰居表中相對應的傳輸功率, 根據公式(1)計算出Metric(Nj,Nj),同時查詢自己是否為活動節點,計算出Cost(Nj),計算公式如下—yCost(Ni)+Metric(Ni,Nj)+Cost(i)當節點i是非活動節點 CoSt(Nj) = (Cost(Ni)+Metric(Ni,Nj)當節點i是活動節點 公式(2)(Cost(i)為節點i的開銷) 節點j是否更新路由表取決于以下三方面l)如果新收到的路由更新信息的路由更新序列號小于它當前路由表中己有的路由更新序 列號,則直接丟棄這個信息,如果兩者的路由更新序列號相等,而新的路由比已有的路由好,也就是說Cost(Nj)比當前路由表中已存在的所有能量開銷值都小,則節點j更新自己的路由表,選擇節點i為下一跳節點,同時把節點i的狀態轉變為活動狀態。同時轉發這個路由更新信息 和路由更新序列號加一。2) 如果新收到的路由更新信息的能量開銷值比路由表中已存在的所有能量開銷值都大, 則丟棄這個信息;3) 當新路由更新信息的路由更新序列號大于路由表中已有的路由更新序列號,若新的路 由更新信息到匯聚節點的開銷Cost(Nj)比路由表中現存的路由開銷Cost(Nj)少或者相等,則節點j更新自己的路由表,選擇節點i為下一跳節點,同時把節點i的狀態轉變為活動狀態。同 時轉發這個路由更新信息和路由更新序列號加一。否則丟棄這條信息,但是,需要注意的是, 如果新路由更新信息的路由更新序列號大于路由表中己有的路由更新序列號且到匯聚節點的 開銷大于路由表中已存在的開銷,但是新路由更新信息的路由更新序列號減去舊路由更新信 息的路由更新序列號的差值己經超過了某一個閾值,或者在路由表里面查到原來的下一跳地 址已經不是當前節點的鄰居,則認為舊的路由已經失效,所以需要強制當前節點更新自己的 路由表。當前節點的路由表一旦被更新,當前節點便把這條路由更新信息發布給它們各自的 鄰居,同時每發送一個路由更新信息路由更新序列號加一。(4)重復上述過程(3),直到網絡中的每個節點都找到匯聚節點(即目的節點)的路由 路徑。路由更新、維護主要包括以下三方面1) 匯聚節點(即目的節點)失效當網絡中的匯聚節點(即目的節點)失效以后采用快 速恢復機制。所謂的快速恢復機制是指當匯聚節點(即目的節點)失效后每次重新啟動時, 它首先發送出一些路由更新請求信息,網絡中的節點收到這些信息后,會發送回自己當前的 路由信息,與匯聚節點(即目的節點)進行同步,匯聚節點(即目的節點)得知了當前的最 新路由信息序列號以及已經找到的數據源節點的路由后,便可以繼續自己在崩潰前的工作。2) 新節點的加入新加入網絡的節點以洪泛的方式對它的鄰居節點廣播節點加入的信 息,然后鄰居繼續廣播, 一直到這個消息傳遞到匯聚節點(即目的節點),匯聚節點(即目的 節點)在自己的路由表里面注冊這個新節點,然后按照上面的路由建立方法尋找該節點到目 的節點的最優路經。3) 普通節點失效節點失效以后就處于睡眠狀態,以該節點為下一跳的節點會持續收到 序列號較新而花費卻較大的路由更新信息,而收不到該節點處于活動狀態的路由更新信息, 按照前述路由表的建立方法,當新的路由序列號與自己路由表里面保存的序列號的差值超過一個固定的閾值時,這時節點就會認為下一跳節點失效,根據新接收到的路由信息對路由表 進行強制的更新。這就是所謂的普通節點超時機制。利用已建立的路由表,節點轉發數據分組時,從已建立的路由表中選擇下一跳節點,然 后發一個短喚醒標識(即短的控制分組)喚醒下一跳節點,而節點的其他鄰居節點沒有接到 喚醒標識,繼續處于睡眠狀態。此時下一跳節點處于喚醒狀態,準備接收數據分組。兩個節 點之間傳輸數據時在MAC層可能會出現碰撞、串音這些問題,同時網絡中不參與傳輸活動的節 點應該進入睡眠狀態而不是一直保持著對無線信道的偵聽,這涉及到節點的空閑偵聽問題, 因此提出以下方法來解決這些問題。圖3說明在MAC層解決空閑節點偵聽問題的過程針對這一問題在MAC層使用了周期性 "偵聽/睡眠"的無線信道使用機制。節點收到鄰居節點喚醒標識以后,節點喚醒短時間偵聽 信道,以確定是否需要接收數據。如果需要,保持喚醒接收數據。否則的話,節點再次睡眠。 目的是讓不參與路由的節點能夠在第一時間關閉通信模塊從而避免節點的過度偵聽。同時為 了降低傳輸延遲,每個節點都使用SYNC (同步信號分組)分組向鄰居節點通告自己的調度狀 態,同時也維持一個調度表,這個表里保存了所有鄰居節點的調度信息。當節點喚醒以后, 先偵聽信道一段時間,如果在這段時間內收到了鄰居節點的調度信息,節點調整自己的調度 狀態,使節點與鄰居節點的狀態保持同步。圖4描述了解決數據碰撞問題的過程,使用兩階段的競爭。首先,發送方節點在第一個 競爭階段隨機選擇一個時間槽進行偵聽,如果信道空閑,節點在第一個競爭階段剩余的時間 內發送一個短的喚醒標識。如果信道忙,節點進入睡眠狀態。當節點成功發送喚醒標識以后 進入第二個競爭周期。如果在第二個競爭周期內,仍然偵聽到信道空閑,它開始發送數據。解決串音問題的方法,我們使用了兩種可選擇的機制。圖5描述了第一種機制,第一種是 使用類似于802. 11MAC協議的RTS/CTS機制,當發送方節點決定向接收方節點發送數據時,發 送方節點首先向接收方節點發送一個RTS (請求發送分組)分組,當接收方節點收到這個請求 分組以后,它回送一個CTS (清除信道分組)分組。此時標識該發送方節點和接收方節點占用 了信道。發送方節點收到CTS分組以后開始發送數據,接收方節點采用基于MAC分組頭部的串 音避免,具體方法是一個接收方節點在完全收到數據分組之前,接收到數據分組的頭部以后 立即檢查一個包的目的地址,如果是傳給其他節點的包,節點立即停止接收進入睡眠。否則 的話,接收數據。接收方節點收到一個完整的數據分組以后用一個ACK (收到數據確認分組) 分組作為應答。同時接收方在接收到數據以后不是立即進入睡眠狀態,而是保持偵聽一段時 間,如果在這段時間內收到RTS分組,則可以立即接收數據,沒有必要等到下一次喚醒周期, 這樣可以減少數據分組的傳輸延遲。利用跨層的無線傳感器網絡的節能方法在無線傳感器網絡中轉發數據的流程如圖6所示, 具體步驟如下1) 通過路由發現階段建立的路由表,數據源節點査詢路由表找到通往匯聚節點(即目的 節點)的下一跳節點,數據分組轉發給下一跳節點時在MAC層經歷以下過程① 節點首先偵聽信道,如果信道空閑,發送短的喚醒標識,喚醒下一跳節點,否則的話, 節點進入睡眠狀態。② 節點仍然偵聽到信道空閑,發送RTS分組,當下一跳節點收到RTS分組之后回送一個CTS 分組,占用無線信道。③ 節點開始發送數據,下一跳節點在完全收到數據分組以前,檢查數據分組的頭部,查 看頭部所包含的目的地址是否與自身地址相匹配,如果匹配則接收數據,回復一個ACK分組。④ 下一跳節點接收完數據之后,繼續保持偵聽信道一段時間,如果在這段時間內收到RTS 分組,則立即接收數據。2) 中間節點(數據分組從源節點到匯聚節點中間所經過的節點)接收到數據分組以后, 查詢路由表找到去往匯聚節點的下一跳節點,喚醒節點,向節點發送數據分組,中間節點轉 發數據分組時在MAC層也經歷步驟1)中的過程;3) 匯聚節點(即目的節點)收到該分組以后,確認自己是目的地后,不再轉發。
權利要求
1、一種基于跨層的無線傳感器網絡節能方法,其特征包括以下步驟1)鄰居表的維護,所述鄰居表的維護是為無線傳感器網絡中的每個節點發現鄰居節點,其中,無線傳感器網絡中的節點i以若干個不同級別的數據傳輸功率向無線傳感器網絡廣播數據分組,當無線傳感器網絡中的其它節點收到這些數據分組后,分別從物理層取得對應的接收信號強度指數(RSSI),并把它封裝在數據分組中返回給節點i,節點i根據傳回的包含接收信號強度指數(RSSI)的數據分組的數量來確定哪個節點是它的鄰居節點,同時節點i在MAC層利用鄰居節點傳回的數據分組中接收信號強度指數(RSSI)值來計算兩個節點之間能成功傳輸數據的最小傳輸功率,把該最小傳輸功率和鄰居節點的編號填入鄰居表中;2)路由表的建立,所述路由表的建立是為無線傳感器網絡中的每個節點建立到匯聚節點(即目的節點)的路由信息,其中,無線傳感器網絡中的每個節點收到鄰居節點發來的路由信息時,計算自身通過該鄰居節點到匯聚節點(即目的節點)的能量開銷,然后與該節點路由表中已存在的那些表項中到目的節點的能量開銷比較,如果該能量開銷值比路由表中已存在的小,那么就把該鄰居節點作為該節點到目的節點所經過的下一跳節點,更新路由表,并把該信息轉發給它的鄰居節點;3)數據轉發,所述的數據轉發是數據源節點利用路由表的建立步驟中建立的路由表,把數據分組傳輸到匯聚節點(即目的節點),當數據分組到達網絡中的每個節點時,該節點從自己的路由表中選擇下一跳節點,把數據分組轉發給下一跳節點,當數據分組從一個節點轉發到它的下一跳節點的過程中,如果下一跳節點處于睡眠狀態,則喚醒它接收數據分組。
2、 如權利要求1所述的基于跨層的無線傳感器網絡節能方法,其特征在于,鄰居表的維護步 驟中,設置成功接收數據分組的閾值,當節點i在MAC層接收到的來自節點j的包含接收信 號強度指數(RSSI)的數據分組的數量超過設置的上述閾值時,認為節點j是節點i的鄰居 節點。
3、 如權利要求1-2所述的基于跨層的無線傳感器網絡節能方法,其特征在于,路由表的建立 步驟中,所述的能量開銷由以下方法確定,根據發送方節點是否為活動節點,如果發送方節 點為活動節點,則能量開銷為發送方節點與接收方節點之間的能量開銷加上發送方節點自身 的能量開銷;否則的話能量開銷為發送方節點與接收方節點之間的能量開銷,發送方節點與 接收方節點之間的能量開銷是根據下述公式計算的能量開銷-最小傳輸功率X數據傳輸速率/網絡帶寬。
4、 如權利要求1所述的基于跨層的無線傳感器網絡節能方法,其特征在于,在數據轉發步驟,采用以下方式來解決空閑節點偵聽問題節點收到鄰居節點喚醒標識以后,節點喚醒短時間偵聽信道,以確定是否需要接收數據,如果需要,保持喚醒接收數據;否則的話,節點再次睡眠。
5、 如權利要求1所述的基于跨層的無線傳感器網絡節能方法,其特征在于,在數據轉發步驟, 采用以下方式來解決數據碰撞問題無線傳感器網絡中的節點喚醒以后,偵聽信道,如果信 道空閑,發送方節點發送一個短的喚醒標識喚醒下一跳節點(即接收方節點),接著發送方節 點繼續偵聽信道,如果信道仍然空閑,節點開始給下一跳節點發送數據分組。
6、 如權利要求l所述的基于跨層的無線傳感器網絡節能方法,其特征在于,在數據分組轉發 步驟,采用以下方式來解決串音問題當無線傳感器網絡中的節點決定向下一跳節點發送數 據時,節點首先向下一跳節點發送一個RTS (請求發送分組)分組,當下一跳節點收到這個請 求分組以后,它回送節點一個CTS (清除信道分組)分組,節點收到CTS分組以后開始發送數據,下一跳節點在完全收到數據之前,當接收到數據分組的頭部以后立即檢查包的目的地址, 如果目的地址與自身地址不匹配,下一跳節點立即停止接收進入睡眠狀態,否則的話,下一跳節點接收數據,完全收到數據以后用一個ACK (收到數據確認分組)分組作為應答返回給節 占。
全文摘要
一種基于跨層的無線傳感器網絡節能方法,從無線傳感器網絡的MAC層和網絡層出發,綜合考慮這兩層對無線傳感器網絡能耗問題的影響,它首先從MAC層收集有關的信息,來為無線傳感器網絡中的每個節點構造和維護鄰居表。接著,它利用每個節點的鄰居表和從MAC層收集的有關信息來為無線傳感器網絡中每個節點發現到目的節點(即匯聚節點)能量消耗最少的路由,由此構建每個節點的路由表。最后,利用已建立的路由表,把數據分組從源節點轉發到目的節點(即匯聚節點)。在數據分組轉發的過程中根據路由信息決定節點的工作方式,同時解決了MAC層所存在的碰撞、串音等能耗問題。
文檔編號H04L12/10GK101217381SQ20081005645
公開日2008年7月9日 申請日期2008年1月18日 優先權日2008年1月18日
發明者劉淑娟, 白躍彬, 成 羅 申請人:北京航空航天大學