王艷琴
(桂林電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,桂林541004)
在眾多的路由協(xié)議中,許多研究者認(rèn)為地理位置路由協(xié)議是解決和處理資源嚴(yán)重受限的WSN最有效的方案之一。在許多應(yīng)用中,若不能獲得被監(jiān)測(cè)對(duì)象事件發(fā)生的具體地理位置,就無(wú)法采取相應(yīng)措施。如在軍事戰(zhàn)場(chǎng)中,需要知道戰(zhàn)爭(zhēng)發(fā)生的地點(diǎn);在森林火災(zāi)中,也要及時(shí)獲得火災(zāi)發(fā)生的位置。因此,研究基于地理位置的路由協(xié)議是一項(xiàng)非常有意義的工作[1]。
位置路由協(xié)議有一個(gè)顯著的特點(diǎn),節(jié)點(diǎn)能夠通過(guò)GPS或者其他類似的定位方法來(lái)獲得自身位置信息,并且可以將自己的當(dāng)前狀態(tài)與位置信息告知其通信半徑內(nèi)的鄰居節(jié)點(diǎn)。路由的建立僅通過(guò)一跳通信范圍節(jié)點(diǎn)信息就可以完成,而節(jié)點(diǎn)間的信息傳輸也只需知道目的節(jié)點(diǎn)的位置信息和下一跳節(jié)點(diǎn)的位置,不需要其他的拓?fù)湫畔ⅰ?/p>
能量對(duì)于WSN的生命周期具有決定意義,能耗是WSN路由協(xié)議需要重點(diǎn)考慮的問(wèn)題。位置和能量感知路由協(xié)議(Geographic and Energy Aware Routing,GEAR)充分考慮了能源有效性,基于地理位置,與傳統(tǒng)非能量感知的位置路由相比,極大地延長(zhǎng)了網(wǎng)絡(luò)的生命周期。
GEAR采用節(jié)點(diǎn)的地理位置信息及節(jié)點(diǎn)剩余能量的情況,建立查詢消息到目標(biāo)域的路徑。傳送數(shù)據(jù)分組到目標(biāo)域中所有節(jié)點(diǎn)的過(guò)程包括兩個(gè)階段:目標(biāo)域數(shù)據(jù)傳送和域內(nèi)數(shù)據(jù)傳送。
在目標(biāo)域數(shù)據(jù)傳送階段,當(dāng)節(jié)點(diǎn)接收到數(shù)據(jù)分組,它將鄰接點(diǎn)同目標(biāo)域的距離和它自己與目標(biāo)域的距離相比較。若存在更小距離,則選擇最小距離的鄰接點(diǎn)作為下一跳節(jié)點(diǎn);否則,認(rèn)為存在“空洞”,節(jié)點(diǎn)將根據(jù)鄰居的最小開(kāi)銷來(lái)選擇下一跳節(jié)點(diǎn)。
在域內(nèi)數(shù)據(jù)傳送階段,可通過(guò)以下兩種方式讓數(shù)據(jù)在域內(nèi)擴(kuò)散:當(dāng)節(jié)點(diǎn)密度較小時(shí),直接采用洪泛轉(zhuǎn)發(fā)機(jī)制;當(dāng)節(jié)點(diǎn)密度較大時(shí),則采用迭代轉(zhuǎn)發(fā)機(jī)制,直到域內(nèi)剩下唯一的節(jié)點(diǎn)。GEAR的解決方案:當(dāng)查詢命令到達(dá)區(qū)域內(nèi)的第一個(gè)節(jié)點(diǎn)時(shí),若該節(jié)點(diǎn)的鄰接點(diǎn)數(shù)目大于一個(gè)預(yù)設(shè)的閾值,則使用遞歸轉(zhuǎn)發(fā)機(jī)制,否則用前者。
當(dāng)這兩個(gè)階段完成后,目標(biāo)域內(nèi)節(jié)點(diǎn)都將監(jiān)測(cè)數(shù)據(jù)發(fā)送到目標(biāo)域內(nèi)第一個(gè)收到查詢消息的節(jié)點(diǎn),此節(jié)點(diǎn)再將監(jiān)測(cè)數(shù)據(jù)沿查詢消息的反向路徑向匯聚節(jié)點(diǎn)傳送。
針對(duì)GEAR路由協(xié)議在數(shù)據(jù)傳輸過(guò)程中存在的路由空洞及能量浪費(fèi)問(wèn)題,提出了一種新的位置路由協(xié)議——GEAR+。
3.1.1 路由空洞
在目標(biāo)域數(shù)據(jù)傳送階段,當(dāng)節(jié)點(diǎn)的所有鄰接點(diǎn)都比自己到目標(biāo)域的距離大時(shí),就遇到了路由空洞問(wèn)題,該節(jié)點(diǎn)知道自己遇到了路由空洞問(wèn)題,則根據(jù)鄰居節(jié)點(diǎn)的最小開(kāi)銷來(lái)選擇下一跳節(jié)點(diǎn)[2]。
當(dāng)經(jīng)過(guò)一段時(shí)間后,有可能再遇到路由空洞,若選擇原來(lái)的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),就會(huì)形成上次的路由空洞問(wèn)題,這需要在2個(gè)節(jié)點(diǎn)間不斷循環(huán)作為下一跳節(jié)點(diǎn),才能跳出空洞區(qū)域,這樣就造成了不必要的節(jié)點(diǎn)能量損耗[3]。
所以,如果節(jié)點(diǎn)能擁有相鄰兩跳或更多跳節(jié)點(diǎn)的地理位置信息,那么節(jié)點(diǎn)遇到路由空洞的條件是兩跳或多跳范圍內(nèi)沒(méi)有比它更接近目標(biāo)域的節(jié)點(diǎn)。這樣就可以提前意識(shí)到路由空洞的存在,大大減少路由空洞產(chǎn)生的概率,從而避免在錯(cuò)誤路徑上走得更遠(yuǎn),也保證了匯聚節(jié)點(diǎn)以較小的代價(jià)完成目標(biāo)域數(shù)據(jù)傳送。
3.1.2 能量浪費(fèi)
在域內(nèi)數(shù)據(jù)傳送階段,目標(biāo)域的所有節(jié)點(diǎn)一直處于數(shù)據(jù)傳輸或者空閑狀態(tài),節(jié)點(diǎn)不工作還處于空閑狀態(tài)無(wú)疑是對(duì)能量的浪費(fèi)。由于數(shù)據(jù)采集時(shí)同一區(qū)域的眾多節(jié)點(diǎn)采集的數(shù)據(jù),其中必定有一些相似或相同的,而對(duì)于采集到的數(shù)據(jù)都會(huì)沿原路返回至匯聚節(jié)點(diǎn)[4]。
所以,若讓這些節(jié)點(diǎn)協(xié)同工作,對(duì)數(shù)據(jù)進(jìn)行必要的融合,就可以減少冗余數(shù)據(jù)包的傳輸;與此同時(shí),還可以通過(guò)改變節(jié)點(diǎn)的工作狀態(tài)來(lái)節(jié)約能源,當(dāng)節(jié)點(diǎn)采集完數(shù)據(jù)送往特定節(jié)點(diǎn)進(jìn)行數(shù)據(jù)融合時(shí)其他節(jié)點(diǎn)就可以進(jìn)入休眠狀態(tài)。
本文針對(duì)GEAR算法中傳送數(shù)據(jù)分組的兩個(gè)階段都進(jìn)行了研究與改進(jìn),由于GEAR算法在NS2中的實(shí)現(xiàn)是一個(gè)簡(jiǎn)化的版本,查詢消息在目標(biāo)域內(nèi)的轉(zhuǎn)發(fā)是采用洪泛方式,并沒(méi)有采用迭代方式[5],所以為便于比較改進(jìn)前后的效果,在對(duì)第二階段改進(jìn)方案的實(shí)現(xiàn)中僅針對(duì)洪泛方式進(jìn)行設(shè)計(jì)。具體改進(jìn)方案如下:
長(zhǎng)輸管道的連頭焊接技術(shù)大多采用根焊(低氫焊條向上或者手工鎢極氬弧焊接)+填蓋(低氫焊條向上或者自保護(hù)藥芯焊絲向下)的焊接方法?!敖鹂凇钡暮附佣嗖捎酶福ㄊ止ゆu極氬弧焊)+填蓋(自保護(hù)藥芯焊絲向下)的焊接方法
①第一階段的改進(jìn)。對(duì)路由空洞的分析可知,如果節(jié)點(diǎn)能擁有相鄰兩跳或更多跳節(jié)點(diǎn)的地理位置信息,那么兩跳范圍內(nèi)或者是滿足條件的多跳范圍內(nèi)的節(jié)點(diǎn)都變成了“鄰居”節(jié)點(diǎn)。數(shù)據(jù)傳送之前,采用通過(guò)鄰居節(jié)點(diǎn)之間的N次信息交換,使各節(jié)點(diǎn)掌握K跳范圍內(nèi)鄰居節(jié)點(diǎn)的位置信息,當(dāng)在數(shù)據(jù)傳送時(shí),就可以利用K跳鄰居的位置信息優(yōu)化路由的選擇。
②第二階段的改進(jìn)。
◆匯聚節(jié)點(diǎn)在發(fā)送查詢消息前先根據(jù)節(jié)點(diǎn)的通信半徑將目標(biāo)域劃分成若干個(gè)大小相等的子區(qū)域,并把每個(gè)區(qū)域看成為一個(gè)簇;
◆根據(jù)各簇內(nèi)節(jié)點(diǎn)能量的大小為它們選擇簇首節(jié)點(diǎn),只要節(jié)點(diǎn)的能量最大,并能大于能量閾值,該節(jié)點(diǎn)就可以擔(dān)任簇首節(jié)點(diǎn);
◆節(jié)點(diǎn)將在第一個(gè)T時(shí)間內(nèi)采集的數(shù)據(jù)首先傳送至簇首節(jié)點(diǎn),由簇首節(jié)點(diǎn)對(duì)其進(jìn)行數(shù)據(jù)融合后再發(fā)送至域內(nèi)第一個(gè)接收到查詢消息的節(jié)點(diǎn),再沿查詢消息的反向路徑發(fā)送至匯聚節(jié)點(diǎn);
◆在下一個(gè)T時(shí)間里,當(dāng)簇頭節(jié)點(diǎn)接收到由簇內(nèi)節(jié)點(diǎn)采集并發(fā)送來(lái)的數(shù)據(jù)后,將簇內(nèi)節(jié)點(diǎn)轉(zhuǎn)換為休眠狀態(tài),直到第二個(gè)T時(shí)間結(jié)束,簇內(nèi)節(jié)點(diǎn)則根據(jù)自己的時(shí)鐘將自己轉(zhuǎn)入喚醒狀態(tài),等待下一次采集數(shù)據(jù)的命令。
本文采用NS2來(lái)模擬驗(yàn)證GEAR算法與改進(jìn)算法GEAR+的性能。
為了研究GEAR+的性能,并對(duì) GEAR+協(xié)議與GEAR協(xié)議進(jìn)行仿真和對(duì)比分析,本文仿真參數(shù)設(shè)置如下所示:
◆MAC層采用802.11;
◆網(wǎng)絡(luò)中分布200個(gè)相同的節(jié)點(diǎn),初始能量均為1J,且所有節(jié)點(diǎn)保持禁止;
◆200個(gè)節(jié)點(diǎn)隨機(jī)分布在600 m×600 m的區(qū)域內(nèi);
◆節(jié)點(diǎn)的通信半徑為90 m,目標(biāo)域?yàn)榫匦螀^(qū)域,矩形的中心坐標(biāo)以及大小根據(jù)實(shí)驗(yàn)場(chǎng)景具體設(shè)置;
◆所有傳輸數(shù)據(jù)分組的大小固定為32字節(jié),發(fā)送和接收一個(gè)數(shù)據(jù)分組的比值為1.6∶1.2;
◆每個(gè)節(jié)點(diǎn)發(fā)送一個(gè)數(shù)據(jù)分組消耗的能量為0.1 J,接收一個(gè)數(shù)據(jù)分組消耗的能量為0.075 J,可調(diào)權(quán)值α的取值為1,假設(shè)休眠狀態(tài)時(shí)能量消耗為0;
◆仿真時(shí)間為30 s。
以上參數(shù)并非恒定不變,根據(jù)不同的方針,場(chǎng)景需要改變其中的一些參數(shù)值。仿真過(guò)程中,當(dāng)節(jié)點(diǎn)數(shù)目增加時(shí),改變網(wǎng)絡(luò)尺寸大小,但保持節(jié)點(diǎn)密度不變。
如圖1所示,采用改進(jìn)后的算法時(shí)節(jié)點(diǎn)剩余能量較多。
圖1 節(jié)點(diǎn)能量消耗圖
本文介紹了基于地理位置信息的WSN路由協(xié)議,并詳細(xì)介紹了位置路由GEAR的基本原理。針對(duì)GEAR協(xié)議在數(shù)據(jù)傳輸過(guò)程中存在的路由空洞及能量浪費(fèi)問(wèn)題,提出了一種改進(jìn)的位置路由協(xié)議。采用NS2仿真工具對(duì)其仿真實(shí)驗(yàn),盡管仿真工具的集成版本有所限制,可實(shí)驗(yàn)還是取得了比較理想的結(jié)果,要投入實(shí)際應(yīng)用還需要大量的學(xué)習(xí)。隨著WSN技術(shù)的快速發(fā)展,相信研究地理位置路由協(xié)議會(huì)成為一項(xiàng)非常有意義的工作。
[1]胡新和,楊博雄,陳瑛.基于Gear算法的無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議研究[J].南京師范大學(xué)學(xué)報(bào):工程技術(shù)版,2010,10(3):60-63.
[2]朱少山.無(wú)線傳感器網(wǎng)絡(luò)中基于地理位置信息的混合路由算法[D].濟(jì)南:山東大學(xué),2010.
[3]張耀,賈振紅.求解路由空洞問(wèn)題的GEAR改進(jìn)算法[J].計(jì)算機(jī)工程,2008,34(12):94-96.
[4]劉曉慶,崔風(fēng)云,李玉華.無(wú)線傳感器網(wǎng)絡(luò)中基于地理位置路由算法的研究和改進(jìn)[J].電腦知識(shí)與技術(shù),2009,5(7):1745-1746.
[5]趙海霞.無(wú)線傳感器網(wǎng)絡(luò)GEA R協(xié)議的一種改進(jìn)方案[J].傳感器與微系統(tǒng),2006,25(9):61-63.