專利名稱:最小努力交付的跨區(qū)虛擬簇多跳路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種無線傳感器網(wǎng)絡(luò)中負(fù)載均衡的路由方法,屬于計(jì)算機(jī)通信網(wǎng)絡(luò)的 多跳路由選擇方法的技術(shù)領(lǐng)域。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測(cè)區(qū)域內(nèi)的大量微型、低成本、低功耗的傳感器節(jié) 點(diǎn)組成的多跳無線網(wǎng)絡(luò)。由于傳感器節(jié)點(diǎn)能量、處理能力和存儲(chǔ)能力有限,傳統(tǒng)MANET網(wǎng) 絡(luò)中的大多路由協(xié)議都不能很好地適用于傳感器網(wǎng)絡(luò)環(huán)境。在傳感器網(wǎng)絡(luò)的研究和設(shè)計(jì) 中,實(shí)現(xiàn)路由協(xié)議的能量高效是人們關(guān)注的核心問題之一。隨著研究的深入,文獻(xiàn)中已經(jīng) 報(bào)告了多種路由協(xié)議算法,主要包括平面路由協(xié)議和層次路由協(xié)議兩類。在平面路由協(xié)議 中,所有節(jié)點(diǎn)的地位平等,不存在等級(jí)和層次差異,具有簡單、易擴(kuò)展、無須維護(hù)的優(yōu)點(diǎn)。典 型的平面路由算法有 DD(Directed Diffusion), SAR(SequentialAssignment Routing)和 SPIN (Sensor Protocols for Information via Negotiation)等。但是采用這類路由的網(wǎng) 絡(luò)無管理節(jié)點(diǎn),缺乏對(duì)通信資源的優(yōu)化管理。層次路由彌補(bǔ)了平面路由的一些不足。層次 路由通常將網(wǎng)絡(luò)劃分為簇(cluster),簇頭管理簇內(nèi)節(jié)點(diǎn),進(jìn)行數(shù)據(jù)收集和融合處理,并轉(zhuǎn) 發(fā)到匯聚節(jié)點(diǎn)(sink)。LEACH (Low Energy AdaptiveClustering Hierarchy)是一種比較 經(jīng)典的、基于分簇的能量有效路由協(xié)議。但是LEACH算法沒有考慮節(jié)點(diǎn)的能量,簇頭選舉的隨機(jī)性可能導(dǎo)致距離匯聚節(jié)點(diǎn) 較遠(yuǎn)的簇頭因遠(yuǎn)距離通信能耗過多,而較快死亡,影響整個(gè)網(wǎng)絡(luò)的生存時(shí)間。對(duì)此,許多研 究人員進(jìn)行了深入研究并提出了若干LEACH的改進(jìn)算法。但是在這些改進(jìn)算法中,一些復(fù) 雜參數(shù)的引入使得節(jié)點(diǎn)的運(yùn)算量和運(yùn)算復(fù)雜度增加。在分區(qū)定位算法中,自定義的WSN跨 區(qū)多跳路由LEACH-CS (LEACH-Customizable Zone-Spanned)是一種比較簡單的高效路由 算法。因此,本發(fā)明在LEACH和LECSVCR的基礎(chǔ)上,提出一種最小努力交付的跨區(qū)虛擬簇
LECSVCR(Least Effort Delivering CustomizableZone-Spanned Virtual Cluster Multi-hop Router)。算法通過判斷接收信號(hào)的強(qiáng)弱來定位節(jié)點(diǎn)位置,在簇頭間采 用最小努力交付的多跳路由機(jī)制,有效避免了網(wǎng)絡(luò)中節(jié)點(diǎn)能量消耗的不均衡問題,延長了 網(wǎng)絡(luò)壽命,使其適用規(guī)模擴(kuò)大到匯聚節(jié)點(diǎn)所能覆蓋的全部范圍。
發(fā)明內(nèi)容
本發(fā)明目的是改進(jìn)LEACH協(xié)議的以下不足首先,簇頭選舉由于隨機(jī)數(shù)產(chǎn)生的不穩(wěn)定性可能導(dǎo)致簇頭分布不合理和個(gè)數(shù)偏離 期望值;第二,簇頭與匯聚節(jié)點(diǎn)直接通信,遠(yuǎn)離匯聚節(jié)點(diǎn)的簇頭能耗較大,死亡較早,死亡 分布不均勻;第三,節(jié)點(diǎn)的通信范圍有限,簇頭與匯聚節(jié)點(diǎn)的單跳方式限制了網(wǎng)絡(luò)覆蓋范圍,不 適用大規(guī)模部署的網(wǎng)絡(luò);
3
第四,多次的仿真結(jié)果顯示,從第一個(gè)節(jié)點(diǎn)死亡到網(wǎng)絡(luò)失效經(jīng)歷了一段較長的時(shí) 間,這一部分的能量可以更好地利用起來。本發(fā)明為實(shí)現(xiàn)上述目的,采用如下技術(shù)方案本發(fā)明最小努力交付的跨區(qū)虛擬簇多跳路由方法包括如下步驟(1)網(wǎng)絡(luò)初始化階段,匯聚節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)廣播一個(gè)控制消息,各節(jié)點(diǎn)判斷接收到 該消息的信號(hào)強(qiáng)度RSSI,估算與匯聚節(jié)點(diǎn)的距離,根據(jù)預(yù)設(shè)的區(qū)域差半徑rO來標(biāo)識(shí)各節(jié)點(diǎn) 所屬區(qū)域;(2)簇的選舉階段,當(dāng)節(jié)點(diǎn)產(chǎn)生的0 1之間的隨機(jī)數(shù)小于閾值T(n)時(shí),該節(jié)點(diǎn)當(dāng) 選簇頭并廣播自己是簇頭的消息,非簇頭節(jié)點(diǎn)根據(jù)收到的廣播消息計(jì)算出自身到可與之通 信的各簇頭距離并記入距離表項(xiàng);(3)成簇階段,非簇頭節(jié)點(diǎn)檢查自己表項(xiàng),判斷非簇頭節(jié)點(diǎn)所屬區(qū)域是否已產(chǎn)生簇 頭,若沒有,則返回步驟(2)自動(dòng)成為簇頭,并廣播消息,收到消息的非簇頭節(jié)點(diǎn)各自計(jì)算 距離值并記錄到距離表項(xiàng);若有,則采用就近原則選擇最近的簇頭節(jié)點(diǎn)發(fā)送入簇請(qǐng)求,同時(shí) 復(fù)制自己的距離表項(xiàng)給簇頭,告知簇頭節(jié)點(diǎn)自己還可以和哪些區(qū)域的哪些簇頭節(jié)點(diǎn)通信及 其距離;簇頭節(jié)點(diǎn)收到入簇請(qǐng)求后建立TDMA時(shí)刻表,與非簇頭節(jié)點(diǎn)構(gòu)成一個(gè)虛擬簇,并根 據(jù)最遠(yuǎn)的簇成員確定廣播半徑回復(fù)各申請(qǐng);(4)路由建立階段,同區(qū)域簇頭相互不通信,X區(qū)域中的簇頭按最近原則向Y區(qū)域 中的簇頭傳遞數(shù)據(jù),其中X興Y,且X區(qū)域中的任意節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離均大于Y區(qū)域中 的任意節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離;(5)數(shù)據(jù)傳輸階段,非簇頭節(jié)點(diǎn)收集數(shù)據(jù),發(fā)送給所在虛擬簇的簇頭節(jié)點(diǎn)簇頭節(jié) 點(diǎn)對(duì)數(shù)據(jù)融合處理后交給下一跳虛擬簇,下一跳虛擬簇的邊緣節(jié)點(diǎn)接收數(shù)據(jù)后轉(zhuǎn)發(fā)給自己 的簇頭節(jié)點(diǎn),由簇頭節(jié)點(diǎn)向下一跳虛擬簇頭轉(zhuǎn)發(fā),直到匯聚節(jié)點(diǎn);循環(huán)(2)至(4)步至網(wǎng)絡(luò) 失效。步驟(4)所述傳遞數(shù)據(jù)是根據(jù)區(qū)域差半徑r0來確定下一跳虛擬簇的所有簇頭節(jié) 點(diǎn)首先檢查自己的表項(xiàng),當(dāng)沒有可選的下一跳簇頭節(jié)點(diǎn)時(shí),比較各個(gè)非簇頭節(jié)點(diǎn)的距離表 項(xiàng),選擇距離匯聚節(jié)點(diǎn)較近方向的非簇頭節(jié)點(diǎn)作為下一跳,該非簇頭節(jié)點(diǎn)的表項(xiàng)中有距匯 聚節(jié)點(diǎn)更近區(qū)域的下一跳節(jié)點(diǎn),并且沒有可選的下一跳的簇頭節(jié)點(diǎn)與距匯聚節(jié)點(diǎn)更近區(qū)域 的下一跳節(jié)點(diǎn)不在同一個(gè)區(qū)域內(nèi);若找不到這樣的成員節(jié)點(diǎn),則本輪放棄傳遞自己的數(shù)據(jù), 同時(shí)不接收路由請(qǐng)求;當(dāng)有可選的下一跳時(shí),簇頭節(jié)點(diǎn)選擇下一跳,發(fā)送路由請(qǐng)求;收到路由請(qǐng)求的簇頭判斷兩簇頭間的距離,當(dāng)距離小于等于dO/2時(shí),直接回復(fù)確 認(rèn)消息,以實(shí)際距離作為請(qǐng)求者的廣播半徑;當(dāng)距離大于dO/2時(shí),查看下一跳簇頭節(jié)點(diǎn)所 在區(qū)域的非簇頭節(jié)點(diǎn)距離表項(xiàng),查找可達(dá)該路由請(qǐng)求者且距離小于下一跳簇頭節(jié)點(diǎn)自身到 請(qǐng)求簇頭節(jié)點(diǎn)距離的成員,選擇與該請(qǐng)求簇頭節(jié)點(diǎn)距離最近的非簇頭節(jié)點(diǎn)作為接收者,告 知被選中的非簇頭節(jié)點(diǎn)接收數(shù)據(jù)包并轉(zhuǎn)發(fā),下一跳簇頭節(jié)點(diǎn)回復(fù)確認(rèn)消息告知請(qǐng)求簇頭節(jié) 點(diǎn)將與最遠(yuǎn)的虛擬簇距離作為廣播半徑。步驟(3)成簇階段中所述被選的簇頭節(jié)點(diǎn)不一定與非簇頭節(jié)點(diǎn)在同區(qū)域。本發(fā)明具有以下有益效果1、將一個(gè)真實(shí)簇的所有節(jié)點(diǎn)抽象成一個(gè)節(jié)點(diǎn),減少上一跳的通信距離;2、各節(jié)點(diǎn)維護(hù)各自距離表項(xiàng),匯報(bào)給簇頭節(jié)點(diǎn),便于選擇最佳的路由路徑;
3、簇間建立多跳路由,算法簡單,均衡能耗,死亡節(jié)點(diǎn)分布均勻;4、延長了網(wǎng)絡(luò)有效時(shí)間,縮短從第一個(gè)節(jié)點(diǎn)死亡到網(wǎng)絡(luò)失效的時(shí)間;5、保留原LEACH中關(guān)于節(jié)點(diǎn)自主決定是否成為簇頭的特點(diǎn),從而不需要全局信 息,減少通信能耗。
圖1簇頭跨一區(qū)多跳路由示意圖;圖2MATLAB隨機(jī)生成網(wǎng)絡(luò)節(jié)點(diǎn)拓?fù)鋱D;圖3LEACH第100輪死亡節(jié)點(diǎn)分布圖;圖4LECSVCR第100輪死亡節(jié)點(diǎn)分布圖;圖5網(wǎng)絡(luò)生存時(shí)間曲線;圖6網(wǎng)絡(luò)總能耗曲線。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明1.自定義的跨區(qū)多跳路由算法LECSVCR1. ILEACH 算法簡介LEACH是由MIT的Heinzelman等人設(shè)計(jì)的一種層次型低功耗自適應(yīng)聚類路由協(xié) 議。其執(zhí)行過程引入了“輪”的概念,每輪循環(huán)分為簇的建立階段和數(shù)據(jù)通信階段。在簇的 建立階段,每個(gè)存活節(jié)點(diǎn)產(chǎn)生一個(gè)0 1之間的隨機(jī)數(shù),如果此數(shù)小于閾值T(n),則發(fā)布它 是簇頭的消息。在每輪循環(huán)中,如果節(jié)點(diǎn)已成為簇頭,則將T (η)設(shè)為0,這樣該節(jié)點(diǎn)不會(huì)在 本輪再次當(dāng)選簇頭。T(η)表示為
P Γ Γ π-;-—, neGΓ( ) = 0_Ρ[πηο(1(1/Ρ)](1)
0,n^G其中,P是簇頭在所有節(jié)點(diǎn)中所占的百分比,r是選舉輪數(shù),rmocKl/p)為這一輪循 環(huán)中當(dāng)選過簇頭的節(jié)點(diǎn)個(gè)數(shù),G是這一輪循環(huán)中未當(dāng)選過簇頭的節(jié)點(diǎn)集合。在數(shù)據(jù)通信階 段,簇內(nèi)節(jié)點(diǎn)把數(shù)據(jù)發(fā)送給簇頭,簇頭進(jìn)行數(shù)據(jù)融合后將結(jié)果發(fā)送給匯聚節(jié)點(diǎn)。因此簇頭消 耗的能量比簇內(nèi)節(jié)點(diǎn)要多。LEACH通過輪循環(huán)方式保證各節(jié)點(diǎn)等概率地?fù)?dān)任簇頭,使節(jié)點(diǎn)相 對(duì)均衡地消耗能量。但是仍然有一些缺陷,主要體現(xiàn)在以下方面(1)第一個(gè)節(jié)點(diǎn)死亡較早。從文獻(xiàn)[9]以及后續(xù)的相關(guān)改進(jìn)工作中發(fā)現(xiàn),LEACH出 現(xiàn)第一個(gè)死亡節(jié)點(diǎn)直至整個(gè)網(wǎng)絡(luò)死亡,經(jīng)歷了一個(gè)較長的時(shí)間。這一部分的能量可以更好 地利用起來;(2)簇頭選舉的隨機(jī)性會(huì)導(dǎo)致每輪簇頭分布不均勻。部分簇頭與簇內(nèi)節(jié)點(diǎn)可能出 現(xiàn)距離太近或太遠(yuǎn),使得簇的拓?fù)浣Y(jié)構(gòu)不理想,部分簇頭的負(fù)擔(dān)過重,降低網(wǎng)絡(luò)的能耗均衡 性;(3)節(jié)點(diǎn)死亡的不均勻性。多次的仿真結(jié)果顯示,距離sink節(jié)點(diǎn)遠(yuǎn)的節(jié)點(diǎn)比距離 近的節(jié)點(diǎn)死亡得更快,在網(wǎng)絡(luò)后期傳感到的數(shù)據(jù)實(shí)際上僅來自sink節(jié)點(diǎn)附近的區(qū)域,已經(jīng) 提前失去了監(jiān)測(cè)的意義,降低網(wǎng)絡(luò)的實(shí)際應(yīng)用效果;
(4)不適用于節(jié)點(diǎn)大規(guī)模部署。LEACH中簇頭到sink節(jié)點(diǎn)的通信方式是單跳的, 而目前的節(jié)點(diǎn)覆蓋能力一般為200米左右,這個(gè)距離會(huì)限制傳感節(jié)點(diǎn)的部署范圍,不能進(jìn) 行大規(guī)模的監(jiān)測(cè)。1. 2LEACH-CS 簡介首先,介紹一下能量模型。在算法分析過程中,LEACH-CS采用LEACH的提出者 Heinzelman W等人應(yīng)用的信道傳輸模型,即自由空間模型和多路徑衰落模型。當(dāng)發(fā)送節(jié)點(diǎn) 和接收節(jié)點(diǎn)之間的距離d小于某個(gè)值Cltl時(shí),采用自由空間模型,發(fā)射功率呈d2衰減;否則采 用多路徑衰減模型,發(fā)射功率呈d4衰減。模型定義無線電路發(fā)送距離為dm的Ibit消息消 耗的能量為相應(yīng)地,接收這些信息消耗的能量為 數(shù)據(jù)融合消耗的能量為 以上式中,Eele。表示電路發(fā)送或接收Ibit數(shù)據(jù)所消耗的能量;ε fsd2和ε mpd4為每 放大Ibit數(shù)據(jù)放大器消耗的能量;Egatto為每Ibit數(shù)據(jù)融合處理消耗的能量;式(4)為將 接收到的η個(gè)節(jié)點(diǎn)發(fā)送過來的nX Ibit數(shù)據(jù)融合成Ibit數(shù)據(jù)所消耗的能量。式(2)中的 d0由下面式子決定LECSVCR是在LEACH的基礎(chǔ)上,引入“區(qū)域”和“區(qū)域差”的概念,當(dāng)某區(qū)域選舉簇頭 失敗時(shí)產(chǎn)生補(bǔ)充簇頭,建立簇間路由時(shí)以跨區(qū)距離的約束來自定義合適的多跳路由方案。 算法中“區(qū)域(zone)”,指以匯聚節(jié)點(diǎn)為圓心,以多個(gè)不同長度為半徑的相鄰圓周線之間圍 成的各圓環(huán)帶(如圖1);“區(qū)域差半徑(zone difference radius) ”,指形成相鄰圓周的兩 個(gè)半徑之差的絕對(duì)值,記為^(如圖1)。LECSVCR規(guī)定了節(jié)點(diǎn)分布密度P和區(qū)域差半徑A的關(guān)系(式2、式3),在理論上 為網(wǎng)絡(luò)發(fā)揮更好的能效提供參考。 式中,ch是包含在距匯聚節(jié)點(diǎn)Cltl范圍內(nèi)的j個(gè)區(qū)域中所產(chǎn)生的簇頭總數(shù),這些簇 頭分擔(dān)其它遠(yuǎn)匯聚節(jié)點(diǎn)的區(qū)域內(nèi)簇頭傳來的數(shù)據(jù)量,ch的值可以根據(jù)實(shí)際情況自定義。近 匯聚節(jié)點(diǎn)的Ch個(gè)簇頭接收由其它簇頭發(fā)送來的數(shù)據(jù)所消耗的能量,等同于這Ch個(gè)節(jié)點(diǎn)新 接受了簇內(nèi)成員,但是必須對(duì)接受的數(shù)量加以限制。整個(gè)網(wǎng)絡(luò)平均簇成員數(shù)為(l-p)/p,設(shè) 這ch個(gè)簇頭新增成員不得超過其1/ν,ν可據(jù)實(shí)際情況自定義,則可得到式3 式(6)提供了 &和P的關(guān)系,式(7)提供了 A和ν的關(guān)系,實(shí)際環(huán)境中參考兩式 使網(wǎng)絡(luò)發(fā)揮更好的效能。LEACH-CS選擇簇頭間合適的傳輸距離的方法就是跨區(qū)多跳,其具 體方案如下(1)網(wǎng)絡(luò)初始化階段,匯聚節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)廣播一個(gè)控制消息,各節(jié)點(diǎn)判斷接收到 該消息的信號(hào)強(qiáng)度RSSI,估算與匯聚節(jié)點(diǎn)的距離,根據(jù)預(yù)設(shè)的Γ(ι來標(biāo)識(shí)自己所屬區(qū)域;(2)簇的建立階段,當(dāng)節(jié)點(diǎn)產(chǎn)生的0 1之間的隨機(jī)數(shù)小于閾值Τ(η)時(shí),該節(jié)點(diǎn)當(dāng) 選簇頭并廣播自己是簇頭的消息,非簇頭節(jié)點(diǎn)根據(jù)收到的廣播消息判斷自己所屬區(qū)域是否 已產(chǎn)生簇頭。若沒有,則自己作為簇頭,并廣播消息;若有,則采用就近原則選擇最近的簇頭 發(fā)送入簇請(qǐng)求(被選的簇頭不一定與自己同區(qū)域)。簇頭收到入簇請(qǐng)求后建立TDMA時(shí)刻表 并回復(fù)各成員;(3)路由建立階段,同區(qū)域簇頭相互不通信,距匯聚節(jié)點(diǎn)較遠(yuǎn)區(qū)域的簇頭按最近原 則向距匯聚節(jié)點(diǎn)較近區(qū)域的簇頭發(fā)送路由請(qǐng)求,收到請(qǐng)求消息的簇頭回復(fù)確認(rèn)消息。當(dāng)簇 頭距離匯聚節(jié)點(diǎn)Cltl范圍內(nèi),便直接與匯聚節(jié)點(diǎn)通信。(4)數(shù)據(jù)傳輸階段,非簇頭節(jié)點(diǎn)收集數(shù)據(jù),發(fā)送給所在簇的簇頭節(jié)點(diǎn)。簇頭對(duì)數(shù)據(jù) 融合處理后交給下一跳節(jié)點(diǎn),直到匯聚節(jié)點(diǎn)。循環(huán)(2)至(4)步至網(wǎng)絡(luò)失效。LEACH-CS選擇典型的分簇式路由協(xié)議LEACH作為研究對(duì)象,提出了自定義的跨區(qū) 多跳路由機(jī)制。該機(jī)制以區(qū)域?yàn)榛A(chǔ),執(zhí)行簇頭補(bǔ)充、跨區(qū)入簇和自定義跨區(qū)多跳路由等新 過程,提高了網(wǎng)絡(luò)生存時(shí)間、能耗速度和死亡節(jié)點(diǎn)分布等方面的性能。但是在真實(shí)環(huán)境中, 在長時(shí)間的循環(huán)后,區(qū)域中遠(yuǎn)匯聚節(jié)點(diǎn)那一側(cè)邊緣的節(jié)點(diǎn)將會(huì)較區(qū)域中其他方位的節(jié)點(diǎn)死 亡早,逐漸形成檢測(cè)盲區(qū)。下一節(jié)主要敘述本發(fā)明LECSVCR協(xié)議。1. 3最小努力交付的多跳路由算法一般來說,近距離節(jié)點(diǎn)之間的通信能耗少,通信質(zhì)量也比較好。LECSVCR協(xié)議就是 通過縮短通信節(jié)點(diǎn)間的距離來節(jié)省能量。在無線傳輸中,發(fā)射功率的衰減隨著傳輸距離的 增大而呈指數(shù)衰減。在算法分析過程中,本發(fā)明同樣采用LEACH的提出者Heinzelman W等 人應(yīng)用的信道傳輸模型。其具體方案如下(1)網(wǎng)絡(luò)初始化階段,匯聚節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)廣播一個(gè)控制消息,各節(jié)點(diǎn)判斷接收到 該消息的信號(hào)強(qiáng)度RSSI,估算與匯聚節(jié)點(diǎn)的距離,根據(jù)預(yù)設(shè)的rO來標(biāo)識(shí)自己所屬區(qū)域;(2)簇的建立階段,當(dāng)節(jié)點(diǎn)產(chǎn)生的O 1之間的隨機(jī)數(shù)小于閾值T(n)時(shí),該節(jié)點(diǎn)當(dāng) 選簇頭并廣播自己是簇頭的消息,非簇頭節(jié)點(diǎn)根據(jù)收到的廣播消息計(jì)算出自身到可與之通 信的各簇頭距離并記入距離表格。完成這個(gè)過程后,網(wǎng)絡(luò)開始補(bǔ)充簇頭。普通節(jié)點(diǎn)檢查自 己表項(xiàng),判斷自己所屬區(qū)域是否已產(chǎn)生簇頭,若沒有,則自動(dòng)成為簇頭,并廣播消息,收到消 息的節(jié)點(diǎn)各自計(jì)算距離值并記錄到距離表格;若有,則等待很短時(shí)間后,采用就近原則選擇 最近的簇頭發(fā)送入簇請(qǐng)求(被選的簇頭不一定與自己同區(qū)域),同時(shí)復(fù)制自己的表格給簇 頭,告知簇頭自己還可以和哪些區(qū)域的哪些簇頭通信及其距離。簇頭收到入簇請(qǐng)求后建立 TDMA時(shí)刻表,并根據(jù)最遠(yuǎn)的簇成員確定廣播半徑回復(fù)各申請(qǐng);
(3)路由建立階段,同區(qū)域簇頭相互不通信,距匯聚節(jié)點(diǎn)較遠(yuǎn)區(qū)域的簇頭按最近原 則向距匯聚節(jié)點(diǎn)較近區(qū)域的簇頭傳遞數(shù)據(jù)。算法中是根據(jù)區(qū)域差半徑r0來確定下一跳節(jié) 點(diǎn)所在區(qū)域的。進(jìn)入路由建立階段后,所有簇頭首先檢查自己的表項(xiàng),當(dāng)沒有可選的下一跳 時(shí),比較成員的距離表項(xiàng),選擇距離匯聚節(jié)點(diǎn)較近方向的某一成員作為下一跳,該成員的表 項(xiàng)中應(yīng)有距匯聚節(jié)點(diǎn)更近區(qū)域的下一跳。若找不到這樣的成員,則本輪放棄傳遞自己的數(shù) 據(jù),同時(shí)不接收路由請(qǐng)求。完成這一過程后,簇頭選擇下一跳,發(fā)送路由請(qǐng)求。收到請(qǐng)求消 息的簇頭判斷兩簇頭間的距離,當(dāng)距離小于等于dO/2時(shí),直接回復(fù)確認(rèn)消息,以實(shí)際距離 作為請(qǐng)求者的廣播半徑。當(dāng)距離大于dO/2時(shí),查看成員距離表項(xiàng),查找可達(dá)該請(qǐng)求者且距 離小于簇頭自身到請(qǐng)求者距離的成員,選擇與該請(qǐng)求者距離最近的幾個(gè)成員作為接收者, 告知被選中的節(jié)點(diǎn)接收數(shù)據(jù)包并轉(zhuǎn)發(fā)?;貜?fù)確認(rèn)消息告知請(qǐng)求者將與最遠(yuǎn)的接受者距離作 為廣播半徑。這樣,對(duì)于上一跳而言,下一跳所要到達(dá)的整個(gè)簇對(duì)于上一跳而言被抽象成為 一個(gè)大的虛擬的簇頭,實(shí)現(xiàn)了最小努力交付。當(dāng)簇頭距離匯聚節(jié)點(diǎn)d0范圍內(nèi),便直接與匯 聚節(jié)點(diǎn)通信。(時(shí)隙5)值得注意的是,簇頭下一跳的選擇可以是相鄰區(qū)、跨一區(qū)或跨更多區(qū)的最近簇頭, 這取決于r0和d0的關(guān)系。一般情況,如當(dāng)r0等于d0時(shí),鄰區(qū)傳遞;當(dāng)d0是r0的兩倍時(shí), 跨一區(qū)傳遞;當(dāng)d0是r0的三倍時(shí),跨兩區(qū)傳遞等。跨區(qū)一方面提供更多距近匯聚節(jié)點(diǎn)d0 范圍內(nèi)的簇頭來分擔(dān)數(shù)據(jù)傳輸能耗,另一方面縮小區(qū)域邊緣可能形成的盲區(qū)帶。如圖1,設(shè) 定Zonel和Zone2合為α區(qū),Zone3和Zone4合為β區(qū),Zone5和Zone6合為γ區(qū),且不 采用跨區(qū)路由,則β、Y區(qū)按照鄰區(qū)最近原則建立路由,這樣本來由Zonel和Z0ne3中簇頭 中繼的數(shù)據(jù)將分別由Z0ne2和Z0ne4中簇頭中繼,這樣Z0ne2和Z0ne4區(qū)中的簇頭能耗將 增加,導(dǎo)致α、β分區(qū)一側(cè)的節(jié)點(diǎn)死亡較早,形成盲區(qū)帶。(4)數(shù)據(jù)傳輸階段,非簇頭節(jié)點(diǎn)收集數(shù)據(jù),發(fā)送給所在簇的簇頭節(jié)點(diǎn)。簇頭對(duì)數(shù)據(jù) 融合處理后交給下一跳虛擬簇,下一跳的邊緣節(jié)點(diǎn)接收數(shù)據(jù)后轉(zhuǎn)發(fā)給自己的簇頭,由自己 的簇頭向下一跳虛擬簇頭轉(zhuǎn)發(fā),直到匯聚節(jié)點(diǎn)。循環(huán)(2)至(4)步至網(wǎng)絡(luò)失效。從上述步驟中可見,由于各節(jié)點(diǎn)不需要周期性地報(bào)告所屬區(qū)域,只在初始化階段 判斷并只告知自己自身位置,所以這樣的定位能耗不僅不會(huì)給整個(gè)網(wǎng)絡(luò)帶來明顯的負(fù)擔(dān)而 且可以基本忽略。且由匯聚節(jié)點(diǎn)發(fā)送控制消息,可以將網(wǎng)絡(luò)規(guī)模擴(kuò)大到匯聚節(jié)點(diǎn)信號(hào)覆蓋 的范圍。算法中,簇頭選舉采取區(qū)域自治,即當(dāng)某區(qū)域沒有產(chǎn)生簇頭時(shí),該區(qū)域某節(jié)點(diǎn)會(huì)自 動(dòng)成為簇頭,對(duì)簇頭均勻化分布起到補(bǔ)充作用;而在成簇時(shí),非簇頭節(jié)點(diǎn)打破區(qū)域的束縛, 尋找距離最近的簇頭入簇,節(jié)省能量;簇間路由采用盡最小努力交付的跨區(qū)多跳方式,節(jié)省 簇頭能量消耗,推遲整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)死亡時(shí)間、平均分布死亡節(jié)點(diǎn)。2. 1仿真環(huán)境及參數(shù)配置假設(shè)200mX 200m的正方形中隨機(jī)分布500個(gè)節(jié)點(diǎn),匯聚節(jié)點(diǎn)位于正方形的右上角 (如圖2)。具體仿真參數(shù)如表1所示。表1仿真參數(shù)
參數(shù)類型參數(shù)值傳感器個(gè)數(shù)500
8 由表1知,在整個(gè)網(wǎng)絡(luò)中每輪簇頭數(shù)約為25,現(xiàn)將這25個(gè)簇頭傳輸?shù)臄?shù)據(jù)分擔(dān)到 3個(gè)或4個(gè)近匯聚節(jié)點(diǎn)簇頭上,即ch = 3或ch = 4。將相關(guān)參數(shù)代入式(6)中,計(jì)算得表 2。表2ch = 3和吐=4時(shí)的1~(1取值情況 若以式(7)計(jì)算,則相當(dāng)于ν = 2或ν = 3,即不得超過平均簇成員數(shù)的1/2或 1/3。表2中rQ的值都是可取值,實(shí)驗(yàn)中取rQ = 45。仿真設(shè)定網(wǎng)絡(luò)運(yùn)行輪循環(huán)周期為20s,普通節(jié)點(diǎn)每2s收集一次數(shù)據(jù)轉(zhuǎn)發(fā)給簇頭, 即每周期普通節(jié)點(diǎn)發(fā)送10次數(shù)據(jù),簇頭節(jié)點(diǎn)接收、融合和發(fā)送10次數(shù)據(jù)。設(shè)定LEACH和 LECSVCR的網(wǎng)絡(luò)節(jié)點(diǎn)初始能量、拓?fù)浣Y(jié)構(gòu)一樣,規(guī)定當(dāng)網(wǎng)絡(luò)中80%的節(jié)點(diǎn)無法工作即認(rèn)為該網(wǎng)絡(luò)不可用。2. 2性能評(píng)價(jià)標(biāo)準(zhǔn)仿真實(shí)驗(yàn)將改進(jìn)的路由算法和原LEACH在相同的仿真環(huán)境和網(wǎng)絡(luò)參數(shù)配置下進(jìn) 行測(cè)試。從多個(gè)方面對(duì)跨區(qū)多跳和原有方式的路由表現(xiàn)進(jìn)行比較,具體包括■網(wǎng)絡(luò)壽命;■節(jié)點(diǎn)死亡個(gè)數(shù)和分布;■第一個(gè)節(jié)點(diǎn)死亡至網(wǎng)絡(luò)無效的時(shí)間;■網(wǎng)絡(luò)累計(jì)能耗的變化情況;仿真結(jié)果如圖3至圖6及表3所示,分別對(duì)比兩種協(xié)議的網(wǎng)絡(luò)壽命、死亡節(jié)點(diǎn)分布 和特定數(shù)量節(jié)點(diǎn)的死亡時(shí)間等。表3LECSVCR和LEACH兩種協(xié)議的節(jié)點(diǎn)死亡狀況統(tǒng)計(jì) 2. 3實(shí)驗(yàn)性能分析圖3和圖4分別是LEACH協(xié)議與LECSVCR協(xié)議在第100輪時(shí)節(jié)點(diǎn)死亡的分布狀態(tài)。 LEACH協(xié)議中距匯聚節(jié)點(diǎn)較遠(yuǎn)的節(jié)點(diǎn)已經(jīng)基本死亡(如圖3),這與LEACH協(xié)議簇頭直接和 匯聚節(jié)點(diǎn)通信消耗能量較大的分析基本符合。而LECSVCR協(xié)議采用最小交付的跨區(qū)多跳虛 擬簇路由機(jī)制,使得在多輪循環(huán)后大多數(shù)節(jié)點(diǎn)依然存活,并且基本保證死亡節(jié)點(diǎn)的平均分 布(如圖4)。這樣可以在一段較長的時(shí)間內(nèi)保證數(shù)據(jù)監(jiān)測(cè)范圍。同時(shí),圖4也顯示,在匯聚 節(jié)點(diǎn)附近的節(jié)點(diǎn)仍然比其它區(qū)域存活的多,這是由于該區(qū)域的節(jié)點(diǎn)少,成簇時(shí)簇內(nèi)成員相 對(duì)較少,節(jié)省了簇頭能量,因而存活的節(jié)點(diǎn)較多。圖5和圖6分別是兩種協(xié)議在各輪次存活節(jié)點(diǎn)數(shù)目和網(wǎng)絡(luò)總能耗的曲線圖。在 圖5中,LECSVCR繼承LEACH-CS的簇頭補(bǔ)充機(jī)制使得簇頭平均分布、最小交付的虛擬簇多 跳使得能耗均勻,所以第一個(gè)節(jié)點(diǎn)的死亡時(shí)間遠(yuǎn)遠(yuǎn)晚于LEACH。另外,LECSVCR在任意時(shí) 刻存活的節(jié)點(diǎn)數(shù)目多于LEACH,生存周期長。結(jié)合表2,LECSVCR的第一個(gè)節(jié)點(diǎn)死亡時(shí)間是 LEACH的3. 14倍,隨著時(shí)間的推移,倍數(shù)逐漸減少,百分之八十的節(jié)點(diǎn)死亡時(shí)間僅為LEACH 的1. 36倍。這也反映在圖5中,隨著輪次增加,LECSVCR曲線漸漸靠近LEACH曲線。這是 由于LECSVCR協(xié)議增加了路由控制信息,在網(wǎng)絡(luò)生存的后期,各節(jié)點(diǎn)能量所剩無幾,這些控 制信息會(huì)明顯增加能耗,加快節(jié)點(diǎn)死亡。曲線的走勢(shì)說明LECSVCR有效的存活期比LEACH 更加集中,網(wǎng)絡(luò)出現(xiàn)大面積監(jiān)控盲區(qū)的時(shí)間短。圖6是網(wǎng)絡(luò)總能耗的累計(jì)曲線圖,從圖中看出,LECSVCR總能耗變化率比LEACH變化小,說明LECSVCR每輪能耗更加均衡。結(jié)合表3, LECSVCR在減少能耗的同時(shí),對(duì)整個(gè)網(wǎng)絡(luò)的運(yùn)行能力并沒有減弱。
權(quán)利要求
一種最小努力交付的跨區(qū)虛擬簇多跳路由方法,其特征在于包括如下步驟(1)網(wǎng)絡(luò)初始化階段,匯聚節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)廣播一個(gè)控制消息,各節(jié)點(diǎn)判斷接收到該消息的信號(hào)強(qiáng)度RSSI,估算與匯聚節(jié)點(diǎn)的距離,根據(jù)預(yù)設(shè)的區(qū)域差半徑r0來標(biāo)識(shí)各節(jié)點(diǎn)所屬區(qū)域;(2)簇的選舉階段,當(dāng)節(jié)點(diǎn)產(chǎn)生的0~1之間的隨機(jī)數(shù)小于閾值T(n)時(shí),該節(jié)點(diǎn)當(dāng)選簇頭并廣播自己是簇頭的消息,非簇頭節(jié)點(diǎn)根據(jù)收到的廣播消息計(jì)算出自身到可與之通信的各簇頭距離并記入距離表項(xiàng);(3)成簇階段,非簇頭節(jié)點(diǎn)檢查自己表項(xiàng),判斷非簇頭節(jié)點(diǎn)所屬區(qū)域是否已產(chǎn)生簇頭,若沒有,則返回步驟(2)自動(dòng)成為簇頭,并廣播消息,收到消息的非簇頭節(jié)點(diǎn)各自計(jì)算距離值并記錄到距離表項(xiàng);若有,則采用就近原則選擇最近的簇頭節(jié)點(diǎn)發(fā)送入簇請(qǐng)求,同時(shí)復(fù)制自己的距離表項(xiàng)給簇頭,告知簇頭節(jié)點(diǎn)自己還可以和哪些區(qū)域的哪些簇頭節(jié)點(diǎn)通信及其距離;簇頭節(jié)點(diǎn)收到入簇請(qǐng)求后建立TDMA時(shí)刻表,與非簇頭節(jié)點(diǎn)構(gòu)成一個(gè)虛擬簇,并根據(jù)最遠(yuǎn)的簇成員確定廣播半徑回復(fù)各申請(qǐng);(4)路由建立階段,同區(qū)域簇頭相互不通信,X區(qū)域中的簇頭按最近原則向Y區(qū)域中的簇頭傳遞數(shù)據(jù),其中X≠Y,且X區(qū)域中的任意節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離均大于Y區(qū)域中的任意節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離;(5)數(shù)據(jù)傳輸階段,非簇頭節(jié)點(diǎn)收集數(shù)據(jù),發(fā)送給所在虛擬簇的簇頭節(jié)點(diǎn)簇頭節(jié)點(diǎn)對(duì)數(shù)據(jù)融合處理后交給下一跳虛擬簇,下一跳虛擬簇的邊緣節(jié)點(diǎn)接收數(shù)據(jù)后轉(zhuǎn)發(fā)給自己的簇頭節(jié)點(diǎn),由簇頭節(jié)點(diǎn)向下一跳虛擬簇頭轉(zhuǎn)發(fā),直到匯聚節(jié)點(diǎn);循環(huán)(2)至(4)步至網(wǎng)絡(luò)失效。
2.根據(jù)權(quán)利要求1所述的最小努力交付的跨區(qū)虛擬簇多跳路由方法,其特征在于步驟 (4)所述傳遞數(shù)據(jù)是根據(jù)區(qū)域差半徑r0來確定下一跳虛擬簇的所有簇頭節(jié)點(diǎn)首先檢查自 己的表項(xiàng),當(dāng)沒有可選的下一跳簇頭節(jié)點(diǎn)時(shí),比較各個(gè)非簇頭節(jié)點(diǎn)的距離表項(xiàng),選擇距離匯 聚節(jié)點(diǎn)較近方向的非簇頭節(jié)點(diǎn)作為下一跳,該非簇頭節(jié)點(diǎn)的表項(xiàng)中有距匯聚節(jié)點(diǎn)更近區(qū)域 的下一跳節(jié)點(diǎn),并且沒有可選的下一跳的簇頭節(jié)點(diǎn)與距匯聚節(jié)點(diǎn)更近區(qū)域的下一跳節(jié)點(diǎn)不 在同一個(gè)區(qū)域內(nèi);若找不到這樣的成員節(jié)點(diǎn),則本輪放棄傳遞自己的數(shù)據(jù),同時(shí)不接收路由 請(qǐng)求;當(dāng)有可選的下一跳時(shí),簇頭節(jié)點(diǎn)選擇下一跳,發(fā)送路由請(qǐng)求;收到路由請(qǐng)求的簇頭判 斷兩簇頭間的距離,當(dāng)距離小于等于dO/2時(shí),直接回復(fù)確認(rèn)消息,以實(shí)際距離作為請(qǐng)求者 的廣播半徑;當(dāng)距離大于dO/2時(shí),查看下一跳簇頭節(jié)點(diǎn)所在區(qū)域的非簇頭節(jié)點(diǎn)距離表項(xiàng), 查找可達(dá)該路由請(qǐng)求者且距離小于下一跳簇頭節(jié)點(diǎn)自身到請(qǐng)求簇頭節(jié)點(diǎn)距離的成員,選擇 與該請(qǐng)求簇頭節(jié)點(diǎn)距離最近的非簇頭節(jié)點(diǎn)作為接收者,告知被選中的非簇頭節(jié)點(diǎn)接收數(shù)據(jù) 包并轉(zhuǎn)發(fā),下一跳簇頭節(jié)點(diǎn)回復(fù)確認(rèn)消息告知請(qǐng)求簇頭節(jié)點(diǎn)將與最遠(yuǎn)的虛擬簇距離作為廣 播半徑。
3.根據(jù)權(quán)利要求1所述的最小努力交付的跨區(qū)虛擬簇多跳路由方法,其特征在于步驟 (3)成簇階段中所述被選的簇頭節(jié)點(diǎn)不一定與非簇頭節(jié)點(diǎn)在同區(qū)域。
全文摘要
本發(fā)明公布了一種最小努力交付的跨區(qū)虛擬簇多跳路由方法,屬于計(jì)算機(jī)通信網(wǎng)絡(luò)領(lǐng)域。本發(fā)明根據(jù)無線傳感器網(wǎng)絡(luò)中分簇多跳路由算法的特點(diǎn),在LEACH協(xié)議的基礎(chǔ)上,引用“區(qū)域”的概念,由匯聚節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)廣播一個(gè)控制消息,各節(jié)點(diǎn)根據(jù)收到的信號(hào)強(qiáng)度確定自己所屬的區(qū)域,通過區(qū)域的限制來規(guī)定多跳路由的方向。在網(wǎng)絡(luò)輪循環(huán)過程中,當(dāng)某區(qū)域選舉簇頭失敗時(shí)網(wǎng)絡(luò)在該區(qū)域產(chǎn)生補(bǔ)充簇頭,在建立路由時(shí),將簇虛擬成一個(gè)節(jié)點(diǎn),避免相距較遠(yuǎn)的簇頭間直接通信,進(jìn)行最小努力的交付。本發(fā)明可以提高網(wǎng)絡(luò)的生存時(shí)間,更好地平衡網(wǎng)絡(luò)的節(jié)點(diǎn)能耗,均勻死亡節(jié)點(diǎn)的分布,也擴(kuò)大協(xié)議適用的網(wǎng)絡(luò)規(guī)模。
文檔編號(hào)H04W40/02GK101917750SQ20101024158
公開日2010年12月15日 申請(qǐng)日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者何風(fēng), 曹磊, 沈航, 白光偉, 顧躍躍 申請(qǐng)人:南京工業(yè)大學(xué)