一種無線傳感器網絡路由空洞處理方法
【專利摘要】本發明公開了一種無線傳感器網絡路由空洞處理方法,其特征在于以下步驟。步驟1:發現節點(發現節點指無法找到比自身離目的節點距離更近的其他節點的節點)發起空洞探測包標定空洞邊緣節點;步驟2:發現節點把空洞邊緣節點映射到一虛擬圓上得到相應的虛擬坐標,并發起分發包分發至各節點;步驟3:對當前空洞周邊區域進行劃分,在不同區域中執行不同的策略來選取下一跳節點,繞開無線傳感器網絡中的空洞。該無線傳感器網絡路由空洞處理方法能使來自不同方向的數據有效繞開空洞,易于實施。
【專利說明】一種無線傳感器網絡路由空洞處理方法
【技術領域】
[0001]本發明屬于無線傳感器網絡通信【技術領域】,涉及無線傳感器網絡路由空洞處理方法。
【背景技術】
[0002]地理位置路由是一種僅依靠周邊鄰居節點位置信息進行路徑選取的路由算法,由于該類協議受網絡規模的影響小、可擴展性好,因此在大規模無線傳感器網絡中有廣闊的應用前景。
[0003]地理位置路由中普遍采用貪婪算法機制。節點使用貪婪算法時,通過選取比自身更接近目的節點的鄰居節點作為其下一跳,如果不存在這樣的節點,則出現局部極小值問題,或稱路由空洞問題。克服路由空洞的方法主要有兩類,一類是降低貪婪算法的失效比例,如利用鄰居節點位置的平局值來取代自身位置的算法,利用距特定錨節點的距離重新建立各節點位置信息的算法。另一類是采用貪婪算法和恢復模式相結合的機制,該類路由首先工作在貪婪模式,在出現路由空洞后進入恢復模式,通過恢復模式找到更接近目的節點的節點后,路由再次進入貪婪模式。如利用貪婪模式和面路由模式相結合的路由算法,通過對網絡進行劃分進而利用子網絡進行周邊路由的路由算法。
[0004]上述第一類算法雖然可以提高傳輸成功率,但仍然會有部分節點無法克服路由空洞,如果其中有關鍵節點存在,則會對系統功能的完整性和有效性造成致命影響。此外,由于需要洪泛、回溯等機制完成位置信息的重建或空洞柵欄的設立,因此會導致較大的控制包開銷,不利于網絡節能。第二類方法雖然能使數據包順利繞過空洞,但由于路徑長度往往較大且隨著網絡規模的增大,節點需要耗費較多資源維護網絡的鏈路拓撲圖,所以不利于無線傳感器網絡的擴展;并且恢復模式需要較多的控制包開銷,因此數據包經過空洞時頻繁進入恢復模式會導致控制開銷增大。
【發明內容】
[0005]本發明提出一種無線傳感器網絡路由空洞處理方法,該無線傳感器網絡路由空洞處理方法能使數據包順利繞開空洞,復雜度低,計算量小,便于實施。
[0006]本發明的技術解決方案如下:
一種無線傳感器網絡路由空洞處理方法,包括以下步驟:
步驟1:發現節點(發現節點指貪婪算法失效的節點)發起探測包標定空洞邊緣節點。
[0007]步驟2:發現節點把空洞邊緣節點映射到一虛擬圓上得到相應的虛擬坐標,并發起分發包分發至各節點。
[0008]步驟3:對當前空洞周邊區域進行劃分,在不同區域中執行不同的策略來選取下一跳節點,繞開無線傳感器網絡中的空洞。
[0009]所述步驟I的具體步驟為:
發現節點在發現路由空洞后首先緩存當前要轉發的數據包,隨后生成空洞探測包并發起空洞探測過程,空洞探測算法使用右手法則(或左手法則)。各邊緣節點在收到空洞探測包后,將自身ID和坐標追加到空洞探測包尾部,然后再轉發到下一個邊緣節點。
[0010]當同一空洞內出現兩個或兩個以上的空洞探測包時,以探測包內記錄的空洞發現時間先后為依據,保留較早產生的探測包,丟棄較晚產生的探測包,確保一個空洞區域僅有一個發現節點。
[0011]在空洞探測算法執行過程中,發現節點將始終偵聽探測包的轉發,若其直接收到探測包或者偵聽到探測包被發往已收到過探測包并轉發的節點,則判斷步驟I結束。
[0012]所述步驟2的具體步驟為:
首先根據空洞探測包內包含的空洞邊緣節點ID和對應地理位置坐標信息計算出空洞的中心點,然后再計算出邊緣節
點至該中心點的最大距離4。采用以空洞中心點O為圓心A為半徑的圓來確定為該空洞
的映射虛擬圓。映射虛擬圓確定之后,進行空洞邊緣節點的虛擬坐標映射算法,包含兩個規則:
規則I以映射虛擬圓的圓心為起點,沿著各邊緣節點作延長線,該延長線與映射虛擬圓的交點即為各邊緣節點的虛擬映射節點,或稱該邊緣節點的虛擬位置。
[0013]規則2若出現延長線與空洞邊緣相交兩次以上的情況,則查找該邊緣節點前后首個僅相交一次的節點,然后在映射虛擬圓上這兩個節點的虛擬位置中間段,按照空洞邊緣的順序,平均分配虛擬位置給其間的邊緣節點。
[0014]映射完畢后,由發現節點發起虛擬位置分發包,將各邊緣節點對應的虛擬位置坐標和空洞中心坐標沿著原探測包路徑分發到相應的邊緣節點。在邊緣節點收到虛擬位置分發包之后,向自己的鄰居節點廣播虛擬信息數據包。
[0015]所述步驟3的具體步驟為:
根據空洞位置和數據包目的節點位置,把從目的節點向映射虛擬圓的兩條切線與映射虛擬圓的圓心至兩條切線的垂線所圍成的閉合區域劃分為接近區。在包含映射虛擬圓的兩條切線區域內,去除接近區后剩余的區域劃分為脫離區。在節點分布范圍內,去除接近區和脫離區后的區域劃分為自由區。
[0016]最后在不同區域內執行不同的路由規則:
規則I處于接近區內的節點,選擇虛擬圓上較靠近目的節點的映射節點作為下一跳路由節點;
規則2處于脫離區內的節點,優先選擇在實際地理位置上較靠近目的節點的節點作為下一跳路由節點;若不存在,則選擇虛擬圓上較靠近目的節點的映射節點作為下一跳路由節點;
規則3處于自由區內的節點,若出現貪婪算法失效問題,則發起空洞探測過程。
[0017]本發明的有益效果。通過本發明的應用,在無線傳感器網絡中可以克服路由空洞導致的貪婪算法失效問題,同時僅通過一次處理,就可以使得通過空洞的其他來自不同源節點或不同目的節點的數據包順利繞過空洞,提高了路由效率,降低了控制信息開銷,從而節省能量消耗。
【專利附圖】
【附圖說明】[0018]圖1為無線傳感器網絡中路由空洞分布圖 圖2為邊緣節點探測示意圖
圖3為邊緣節點探測流程圖 圖4為虛擬映射后的虛擬位置節點分布圖 圖5為部分邊緣節點映射示意圖 圖6為空洞周邊區域劃分圖
【具體實施方式】:
實施例1:
網絡模型:
本文實例假定節點隨機均勻分布在一個二維平面區域內,并且具有如下的性質:
(1)所有的節點有唯一的節點標識ID ;
(2)所有節點是同構的,即具有相同的處理和通信能力;
(3)所有節點均可通過GPS或其他的定位方法獲得自身的地理位置坐標,
(4)所有節點都預先設定存儲空間來存儲以下信息:
節點自身ID和節點地理位置二維坐標(X,Y);
是否使用虛擬坐標的布爾值;
自身虛擬坐標(H)以及所屬映射虛擬圓的圓心坐標(X2J2)和半徑;
數據的目標節點或基站ID和節點地理位置二維坐標(Χ,y);
鄰居節點的ID及其相應的地理位置二維坐標(Χ,y);
使用虛擬坐標的鄰居節點ID及其相應的虛擬位置二維坐標(Χ,y)。
[0019]本方法主要用到以下兩種數據包和一種消息類型:
空洞探測包:數據包內存儲貪婪算法的失效時間,邊緣節點的ID和對應的地理位置信息,用于收集邊緣節點信息。
[0020]虛擬位置分發包:數據包內存儲虛擬映射圓的中心坐標和半徑,各邊緣節點的ID和對應的虛擬位置信息,用于當前空洞信息的分發。
[0021]虛擬信息數據包:包含了虛擬映射圓的中心坐標和半徑,邊緣節點的ID和對應的虛擬位置信息,用于向鄰居節點廣播。
[0022]下面參照附圖對本發明提出的無線傳感器網絡路由空洞處理方法的【具體實施方式】進行說明:
如圖1所示,某源節點向目的節點£丨發送數據包,當數據包到達節* 1時,貪婪模式失效,出現路由空洞,此時轉入空洞處理,主要分為三個階段:
O空洞探測階段
如附圖2所示,£)為目的節點,節點、h、h均可相互通信,節點h為當前空洞的發現節點。~生成空洞探測包后,按照右手法則選取節占為一下跳節點。,把空洞探測包發送給節點&。節點h把其節點ID和地理位置添加到探測包內,同樣按照右手法則選取下一條節點。在此過程中節點~將始終偵聽探測包轉發并接收,當節點4按照右手法則把探測包發送給&2時,節盧i接收到探測包,此時bi判定探測算法執行完畢,丟棄數據包不再
轉發。流程圖如附圖3所示。
[0023]2)虛擬映射階段
首先發現節點h根據空洞探測包內包含的空洞邊緣節點ID和對應地理位置坐標信息
計算出空洞的中心點O ,然后再計算出邊緣節點至該中心點的最大距離內。以空洞中心點
力圓心、以A為半徑的圓確定為該空洞的映射虛擬圓,如附圖4中所示以力圓心的圓。
映射虛擬圓確定之后,進行虛擬坐標的映射,以附圖5中所示空洞周邊部分邊緣節點& -夂為例:
根據規則1,以映射虛擬圓的圓心O為起點,沿著邊緣節點4和~作延長線,該延長線與映射虛擬圓的交點為^/和^ ,即別為邊緣節點!^和^的虛擬映射節點。
[0024]根據規則2,節點.?、~和&4的延長線與空洞邊緣相交兩次以上,則查找該邊緣節點前后首個僅相交一次的節點,然后^在映射虛擬圓上這兩個節點的虛擬位置和¥中間段,按照空洞邊緣的順序,平均分配虛擬位置得到點^、每和4和?即為節點h、*3和&的虛擬映射節點。
[0025]映射完畢后,由發現節點^發起虛擬位置分發包,將各邊緣節點對應的虛擬位置坐標和空洞中心坐標沿著原探測包路徑分發到相應的邊緣節點。在收到虛擬位置分發包之后,邊緣節點向自己的鄰居節點廣播信息數據包。
[0026]3)區域劃分階段
如附圖6所示,O為空洞中心,虛線所示圓為映射虛擬圓。從目的節點向映射虛擬圓作兩條切線,分別交于點m和》,由點O、w、》和D圍成的四邊形區域為該映射虛擬圓的接近區,如圖中區域4在包含映射虛擬圓的兩條切線區域內,去除接近區,剩余的區域為該映射虛擬圓的接近區,如圖中區域忍;節點分布范圍內,其它區域稱為該映射虛擬圓的自由區,如圖中區域C。
[0027]在三個不同區域中,路由的選擇方式不同,但均采用貪婪算法。具體規則如下: 規則I處于接近區的節點,即處于區域.4的節點,選擇虛擬圓上較靠近目的節點的映
射節點作為下一跳路由節點;
規則2處于脫離區的節點,即處于區域5的節點,優先選擇在實際地理位置上較靠近目的節點的節點作為下一跳路由節點;若不存在,則選擇虛擬圓上較靠近目的節點的映射節點作為下一跳路由節點;
規則3處于自由區的節點,即處于區域C的節點,若出現貪婪算法失效問題,則發起空洞探測過程。
[0028]至此,通過上述方法對空洞的處理,可以使得數據包順利繞過空洞,并達到減少控制包,節約網絡能量的目的。
【權利要求】
1.一種無線傳感器網絡路由空洞處理方法,其特征在于以下步驟: 步驟1:發現節點(發現節點指貪婪算法失效的節點)發起探測包標定空洞邊緣節點; 步驟2:發現節點把空洞邊緣節點映射到一虛擬圓上得到相應的虛擬坐標,并發起分發包分發至各節點; 步驟3:對當前空洞周邊區域進行劃分,在不同區域中執行不同的策略來選取下一跳節點,繞開無線傳感器網絡中的空洞。
2.根據權利要求1所述方法,其特征在于:發現節點在發現路由空洞后首先緩存當前要轉發的數據包,隨后生成空洞探測包并發起空洞探測過程,空洞探測算法使用右手法則(或左手法則),對于各邊緣節點,在收到空洞探測包后,將自身ID和坐標追加到空洞探測包尾部,然后再轉發到下一個邊緣節點。
3.根據權利要求2所述方法,其特征在于:當同一空洞內出現兩個或兩個以上的空洞探測包時,以探測包內記錄的空洞發現時間先后為依據,保留較早產生的探測包,丟棄較晚產生的探測包,確保一個空洞區域僅有一個發現節點。
4.根據權利要求1和2所述方法,其特征在于:根據空洞探測包內包含的空洞邊緣節點ID和對應地理位置坐標信息計算空洞的中心點O以及邊緣節點至該中心點的最大距離I,采用以空洞中心點O為圓心i為半徑的圓來確定該空洞的映射虛擬圓。
5.根據權利要求4所述方法,其特征在于:以映射虛擬圓的圓心為起點,沿著各邊緣節點作延長線,該延長線與映射虛擬圓的交點即為各邊緣節點的虛擬映射節點。
6.根據權利要求4所述方法,其特征在于:若出現延長線與空洞邊緣相交兩次以上的情況,則查找該邊緣節點前后首個僅相交一次的節點,然后在映射虛擬圓上這兩個節點的虛擬位置中間段,按照空洞邊緣的順序,平均分配虛擬位置給其間的邊緣節點。
7.根據權利要求1所述方法,其特征在于:由發現節點發起虛擬位置分發包,將各邊緣節點對應的虛擬位置坐標和空洞中心坐標沿著原探測包路徑分發到相應的邊緣節點,在邊緣節點收到虛擬位置分發包之后,向自己的鄰居節點廣播虛擬信息數據包。
8.根據權利要求1所述方法,其特征在于:把當前空洞的周邊區域劃分為接近區、自由區和脫離區,在不同區域內執行不同路由規則。
【文檔編號】H04W52/02GK103702381SQ201210366953
【公開日】2014年4月2日 申請日期:2012年9月28日 優先權日:2012年9月28日
【發明者】董恩清, 張德敬, 錢鵬, 喬富龍, 孫祺, 常樹旺, 張軍蕊 申請人:山東大學(威海), 董恩清