無(wú)線傳感器網(wǎng)絡(luò)GEAR協(xié)議的一種改進(jìn)方案
時(shí)間:2006-11-30 16:38:00來(lái)源:guyan
導(dǎo)語(yǔ):?針對(duì)WSNs的GEAR路由協(xié)議,提出一種能耗上的改進(jìn)方案并進(jìn)行仿真,仿真結(jié)果顯示:該方案能明顯降低能耗。
[摘 要]:無(wú)線傳感器網(wǎng)絡(luò)(WSNs)被認(rèn)為是未來(lái)改變世界的十大技術(shù)之首,但有限的計(jì)算、存儲(chǔ)和通信能力,尤其是嚴(yán)重受限的能量使其應(yīng)用前景面臨巨大挑戰(zhàn),WSNs在應(yīng)用之前需要解決許多關(guān)鍵問(wèn)題,能量問(wèn)題即是其中之一。能量對(duì)于WSNs的生命周期具有決定意義,設(shè)計(jì)WSNs路由協(xié)議需要重點(diǎn)考慮能耗問(wèn)題;針對(duì)WSNs的GEAR路由協(xié)議,提出一種能耗上的改進(jìn)方案并進(jìn)行仿真,仿真結(jié)果顯示:該方案能明顯降低能耗。
關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);GEAR協(xié)議;能耗
0 引 言
在無(wú)線傳感器網(wǎng)絡(luò)(WSNs)中,節(jié)點(diǎn)通常需要獲取其位置信息,這樣,它采集的數(shù)據(jù)才有意義。如在森林防火應(yīng)用中,需要知道火災(zāi)的具體位置。地理位置路由假設(shè)節(jié)點(diǎn)知道自身及目標(biāo)區(qū)域的位置,以這些位置信息作為路由選擇的依據(jù),按照一定策略轉(zhuǎn)發(fā)數(shù)據(jù)到目標(biāo)區(qū)域。位置和能量感知的地理路由(geographical and energy aware routing,GEAR)屬于這一類路由協(xié)議,它是WSNs中的一個(gè)能量感知的基于位置的地理路由協(xié)議,模擬結(jié)果顯示:GEAR路由,與傳統(tǒng)非能量感知的地理路由相比能極大地延長(zhǎng)網(wǎng)絡(luò)壽命。能量對(duì)于WSNs的生命周期具有決定意義,能耗是WSNs路由協(xié)議需要重點(diǎn)考慮的問(wèn)題。本文針對(duì)GEAR路由協(xié)議,依據(jù)GEAR的特點(diǎn)提出了一種改進(jìn)方案,使其在能耗力方面有所改進(jìn)。
1 GEAR路協(xié)議
1.1 核心思想
由于Sink發(fā)出的查詢消息中經(jīng)常包含位置屬性,GEAR路由協(xié)議在向目標(biāo)區(qū)域散布查詢消息的同時(shí)考慮了地理位置信息的使用。其主要思想是通過(guò)利用位置信息使得“興趣”的傳播僅到達(dá)目標(biāo)區(qū)域,而不是傳播到整個(gè)網(wǎng)絡(luò),從而避免洪泛方式,減少路由建立的開(kāi)銷。
GEAR路由中查詢消息的傳播包括2個(gè)階段:(1)查詢消息轉(zhuǎn)發(fā)到目標(biāo)區(qū)域:從Sink節(jié)點(diǎn)開(kāi)始的路徑建立過(guò)程采用貪婪算法,節(jié)點(diǎn)在鄰居中選擇到目標(biāo)區(qū)域代價(jià)最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),并將自己的路由代價(jià)設(shè)為該下一跳節(jié)點(diǎn)的路由代價(jià)加上到該節(jié)點(diǎn)一跳通信的代價(jià)。若陷入路由洞,節(jié)點(diǎn)則選取鄰居中代價(jià)最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),并修改自己的路由代價(jià);(2)在目標(biāo)區(qū)域內(nèi)散布查詢消息:查詢消息到達(dá)目標(biāo)區(qū)域后,通過(guò)迭代地理(節(jié)點(diǎn)密度較大時(shí))或洪泛方式(節(jié)點(diǎn)較少時(shí))將查詢消息傳播到目標(biāo)區(qū)域內(nèi)的所有節(jié)點(diǎn)。這2個(gè)階段完成后,監(jiān)測(cè)數(shù)據(jù)沿查詢消息的反向路徑向Sink節(jié)點(diǎn)傳送。
1.2 NS2中GEAR的實(shí)現(xiàn)細(xì)節(jié)
GEAR路由協(xié)議在NS2中的實(shí)現(xiàn)是一個(gè)簡(jiǎn)化的版本,查詢消息在事件區(qū)域的轉(zhuǎn)發(fā)是采用洪泛方式,沒(méi)有實(shí)現(xiàn)迭代地理方式,下面僅對(duì)改進(jìn)時(shí)關(guān)心的問(wèn)題進(jìn)行說(shuō)明。
首先,GEAR路由假設(shè)已知節(jié)點(diǎn)的位置和剩余能量信息,通過(guò)下面幾個(gè)變量來(lái)表示:
double geo_longitude_, geo_latitude_;//節(jié)點(diǎn)的位置信息;
int nmn_pkt_sent_, num_pkt_recv_;//發(fā)送和接收的信息包數(shù)量;
double initial_energy_;//節(jié)點(diǎn)的初始能量;
double unit_energy_for_send_, unit_energy_for_recv_;//發(fā)送和接收單位信息包消耗的能量。
其次,NS2中實(shí)現(xiàn)的CEAR發(fā)布查詢消息時(shí)分為2個(gè)階段,在消息沒(méi)有到達(dá)目標(biāo)區(qū)域時(shí),采用貪婪算法(單播方式)轉(zhuǎn)發(fā)消息,消息到達(dá)目標(biāo)區(qū)域后,采用洪泛方法(廣播方式)轉(zhuǎn)發(fā)查詢消息。節(jié)點(diǎn)根據(jù)不同的情況作出相應(yīng)的處理:
enum geo_actions { BROADCAST = 0, BROADCAST_SUPPRESS,
OUTSIDE_REGION } ,
其中,BROADCAST=0表示節(jié)點(diǎn)在目標(biāo)區(qū)域內(nèi)部,采用廣播方式轉(zhuǎn)發(fā)查詢消息;BROADCAST_SUPPRESS表示節(jié)點(diǎn)的所有鄰居都不在目標(biāo)區(qū)域內(nèi),節(jié)點(diǎn)不轉(zhuǎn)發(fā)查詢消息;
OUTSIDE_REGION表示節(jié)點(diǎn)在目標(biāo)區(qū)域外,用單播轉(zhuǎn)發(fā)查詢消息。與路由相關(guān)的函數(shù):
int32_ t findNextHop (GeoHeader * geo _ header, bool greedy) ;// 找到下一跳鄰居;
int floodlnsideRegion(GeoHeader * geo_header) ;// 在區(qū)域內(nèi)轉(zhuǎn)發(fā)信息包;
double retrieveHeuristicValue (GeoLocation dst ) ;// 得到節(jié)點(diǎn)的通信代價(jià);
void broadcastHeuristicValue (GeoLocation dst, doublenew_heuristic_value);當(dāng)出現(xiàn)路由洞時(shí),需要修改節(jié)點(diǎn)的通信代價(jià),并將這個(gè)修改后的通信代價(jià)告知其鄰居節(jié)點(diǎn)。
NS2中實(shí)現(xiàn)的GEAR,查詢消息在事件區(qū)域內(nèi)的轉(zhuǎn)發(fā)沒(méi)有采用迭代地理的方式,僅采用了洪泛方式,具體的洪泛代碼見(jiàn)NS2代碼中~ns/diffusion3/filters/gear.
2 GEAR路由協(xié)議的改進(jìn)方案
2.1 問(wèn)題描述
文獻(xiàn)[2]指出:如果使用Micadot節(jié)點(diǎn),發(fā)送一個(gè)比特上盡量進(jìn)行網(wǎng)內(nèi)處理,減少數(shù)據(jù)傳輸量,可以有效地節(jié)省能量。理想的融合情況下,中間節(jié)點(diǎn)可以把n個(gè)長(zhǎng)度相等的輸人數(shù)據(jù)分組合并成一個(gè)等長(zhǎng)的輸出分組,只需消耗不進(jìn)行融合所消耗能量的1/n即可完成數(shù)據(jù)傳輸;最差的情況下,融合操作并未減少數(shù)據(jù)量,但通過(guò)減少分組個(gè)數(shù),可以減少信道的協(xié)商或競(jìng)爭(zhēng)過(guò)程造成的能量開(kāi)銷,所以,在數(shù)據(jù)傳輸時(shí)要盡量采用數(shù)據(jù)融合。在GEAR路由中,當(dāng)查詢消息到達(dá)目標(biāo)區(qū)域后,事件區(qū)域中的節(jié)點(diǎn)采集的數(shù)據(jù)沿查詢消息的反向路徑向Sink節(jié)點(diǎn)傳送,由于數(shù)據(jù)采集時(shí)同一區(qū)域的眾多節(jié)點(diǎn)采集的數(shù)據(jù)往往有相似性,如果能夠讓這些節(jié)點(diǎn)協(xié)同工作,對(duì)數(shù)據(jù)進(jìn)行必要的融合,就可以減少冗余數(shù)據(jù)包的傳輸。
如果節(jié)點(diǎn)密度比較大,GEAR采用迭代地理轉(zhuǎn)發(fā)機(jī)制,作為對(duì)GEAR路由協(xié)議的改進(jìn),每一次迭代的中心節(jié)點(diǎn)可以作為數(shù)據(jù)融合節(jié)點(diǎn),將其子區(qū)域節(jié)點(diǎn)采集的數(shù)據(jù)進(jìn)行處理后再沿反向路徑傳送。這樣,目標(biāo)區(qū)域內(nèi)第一個(gè)收到查詢消息的節(jié)點(diǎn)將融合后的數(shù)據(jù)沿查詢消息的反向路徑向Sink節(jié)點(diǎn)傳送。
如果節(jié)點(diǎn)密度比較小,GEAR則采用洪泛轉(zhuǎn)發(fā)機(jī)制。這時(shí)由于沒(méi)有子區(qū)域中心節(jié)點(diǎn)可以使用,需要以某種方法產(chǎn)生一個(gè)融合節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行處理。一種簡(jiǎn)單的方法是選擇能量比較大的節(jié)點(diǎn)作為融合節(jié)點(diǎn),當(dāng)然,該節(jié)點(diǎn)需要能夠與其他節(jié)點(diǎn)直接通信。該節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行處理后沿查詢消息的反向路徑向Sink節(jié)點(diǎn)傳送。
2.2 解決方案實(shí)現(xiàn)
根據(jù)2.1節(jié)的思路,迭代地理方式采用數(shù)據(jù)融合具有明顯的優(yōu)勢(shì):首先,融合節(jié)點(diǎn)不需要選取,以子區(qū)域中心節(jié)點(diǎn)作為融合節(jié)點(diǎn)即可;其次,節(jié)點(diǎn)密度較大時(shí),采用融合方式更節(jié)省能量。但由于NS2中實(shí)現(xiàn)的GEAR是一簡(jiǎn)化版本,查詢消息在事件區(qū)域內(nèi)的轉(zhuǎn)發(fā)并沒(méi)有采用迭代地理方式,為便于比較改進(jìn)前后的效果,在改進(jìn)方案的實(shí)現(xiàn)中僅針對(duì)洪泛方式進(jìn)行設(shè)計(jì)。具體的改進(jìn)方案分為如下幾個(gè)步驟:
(1)當(dāng)查詢消息轉(zhuǎn)發(fā)到事件區(qū)域后,區(qū)域內(nèi)的節(jié)點(diǎn)先建立簇。由于GEAR中每個(gè)節(jié)點(diǎn)知道自身及鄰居節(jié)點(diǎn)的位置和能量信息,因此,可根據(jù)節(jié)點(diǎn)的位置信息,結(jié)合節(jié)點(diǎn)的通信范圍,在事件區(qū)域內(nèi)部形成簇;
(2)設(shè)定算法選擇簇首節(jié)點(diǎn),簇首節(jié)點(diǎn)需要滿足幾個(gè)條件:①能量足夠大,大于設(shè)定的能量閾值;②簇首節(jié)點(diǎn)能夠與簇內(nèi)其他節(jié)點(diǎn)直接通信,在簇形成時(shí)保證這一點(diǎn);③可以對(duì)數(shù)據(jù)進(jìn)行相應(yīng)處理。簇首節(jié)點(diǎn)選出后通報(bào)整個(gè)簇內(nèi)節(jié)點(diǎn);
對(duì)于簇首節(jié)點(diǎn)選擇的具體算法,為便于實(shí)現(xiàn),只要能量大于能量閾值,位置在事件區(qū)域的節(jié)點(diǎn)就可以擔(dān)任簇首節(jié)點(diǎn)。由于可能有多個(gè)符合條件的節(jié)點(diǎn),因此,在代碼實(shí)現(xiàn)中是選出事件區(qū)域內(nèi)能量最大,且能量大于能量閾值的節(jié)點(diǎn)作為簇首節(jié)點(diǎn);
(3)節(jié)點(diǎn)開(kāi)始采集數(shù)據(jù),簇內(nèi)節(jié)點(diǎn)將采集的數(shù)據(jù)首先傳送到簇首節(jié)點(diǎn),由簇首節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行壓縮整合,除去冗余數(shù)據(jù)后再發(fā)往區(qū)域內(nèi)第一個(gè)接收到查詢消息的節(jié)點(diǎn),沿查詢消息的相反路徑轉(zhuǎn)發(fā)到Sink節(jié)點(diǎn)。以查詢消息要求的時(shí)間間隔T為周期,在這個(gè)T時(shí)間范圍內(nèi),接收簇內(nèi)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)并進(jìn)行緩存,在下一個(gè)時(shí)間間隔對(duì)數(shù)據(jù)進(jìn)行融合并轉(zhuǎn)發(fā)。
具體實(shí)現(xiàn)時(shí),將在[0,T]時(shí)間范圍接收到的數(shù)據(jù)包認(rèn)為是一個(gè)時(shí)間產(chǎn)生的數(shù)據(jù),如果這些數(shù)據(jù)的監(jiān)測(cè)對(duì)象為同一類型,則判定這些數(shù)據(jù)互為冗余數(shù)據(jù)。根據(jù)可信度,挑選出可信度最高的數(shù)據(jù)進(jìn)行傳輸,其他數(shù)據(jù)將丟棄。最大可信度數(shù)據(jù)意味著高質(zhì)量的數(shù)據(jù),同時(shí),降低了冗余數(shù)據(jù)的傳輸。
3 仿真實(shí)驗(yàn)設(shè)置及結(jié)果分析
由于GEAR在NS2中沒(méi)有集成迭代地理方式,因此,本實(shí)驗(yàn)針對(duì)區(qū)域內(nèi)的洪泛方式進(jìn)行比較,并采用平均能耗參數(shù)來(lái)衡量改進(jìn)后的協(xié)議性能。平均能耗是網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)在傳輸一個(gè)單位的數(shù)據(jù)包時(shí)所消耗的能量。另外,本文感興趣的還有平均能耗和網(wǎng)絡(luò)尺寸的關(guān)系,因此,通過(guò)改變網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目來(lái)研究平均能耗,并與改進(jìn)前GRAR路由進(jìn)行比較。
3.1 實(shí)驗(yàn)場(chǎng)景的參數(shù)選用
根據(jù)GEAR路由協(xié)議以及國(guó)際上發(fā)表的針對(duì)WSNs的相關(guān)文獻(xiàn)[1,3]的實(shí)驗(yàn)場(chǎng)景設(shè)置,本文采用了如下實(shí)驗(yàn)場(chǎng)景設(shè)置:在下面的實(shí)驗(yàn)中,默認(rèn)采用1.6MB/s的802.11MAC層協(xié)議,每個(gè)節(jié)點(diǎn)的通信范圍為100個(gè)單位,每個(gè)目標(biāo)區(qū)域是一圓形區(qū)域,其半徑為50個(gè)單位。數(shù)據(jù)包的大小為64字節(jié),查詢消息大小為32字節(jié)。
實(shí)驗(yàn)采用不規(guī)則拓?fù)鋱?chǎng)景,網(wǎng)絡(luò)大小從50個(gè)節(jié)點(diǎn)到250個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)的覆蓋面積是670×670平方單位,固定節(jié)點(diǎn)的通信范圍是100個(gè)單位,目標(biāo)區(qū)域是半徑為50單位的圓形區(qū)域。設(shè)定節(jié)點(diǎn)的初始能量是1J,發(fā)送和接收一個(gè)數(shù)據(jù)包消耗0.001J,比例參數(shù)a值取0.8。數(shù)據(jù)源節(jié)點(diǎn)設(shè)為5個(gè),Sink節(jié)點(diǎn)設(shè)為2個(gè)。
3.2 仿真結(jié)果及分析
對(duì)生成的trace文件的剩余能量進(jìn)行統(tǒng)計(jì)。統(tǒng)計(jì)方法為平均能量消耗:消耗能量/(網(wǎng)絡(luò)尺寸×數(shù)據(jù)量)。其中,消耗能量是初始總能量減去最后的剩余能量,網(wǎng)絡(luò)尺寸是節(jié)點(diǎn)個(gè)數(shù),數(shù)據(jù)量是數(shù)據(jù)源節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)包和Sink節(jié)點(diǎn)發(fā)出的查詢消息總和,即,數(shù)據(jù)量:運(yùn)行時(shí)間×(單位時(shí)間數(shù)據(jù)包×源節(jié)點(diǎn)個(gè)數(shù)+單位時(shí)間查詢消息×Sink節(jié)點(diǎn)個(gè)數(shù));消耗能量=總初始能量-總剩余能量;網(wǎng)絡(luò)尺寸=節(jié)點(diǎn)個(gè)數(shù)。設(shè)定運(yùn)行時(shí)間為30min,30min后停止仿真,整理后的數(shù)據(jù)見(jiàn)表1。

由表1可見(jiàn),改進(jìn)后的能量顯著節(jié)省。且隨著節(jié)點(diǎn)個(gè)數(shù)的增加,能量節(jié)省更為顯著。這是因?yàn)殡S著節(jié)點(diǎn)個(gè)數(shù)的增加,網(wǎng)絡(luò)密度增大,洪泛方式能耗更多,而采用數(shù)據(jù)融合后,節(jié)省能量更為明顯。
4 結(jié) 論
由于目前GEAR在NS2中集成版本的限制,實(shí)驗(yàn)僅針對(duì)區(qū)域內(nèi)的洪泛方式進(jìn)行了簡(jiǎn)單仿真,取得了比較理想的實(shí)驗(yàn)結(jié)果,這種微小的改進(jìn),對(duì)GEAR降低能耗有比較明顯的效果,可以預(yù)期,NS2和GEAR協(xié)議本身的發(fā)展和完善,將為進(jìn)一步的實(shí)驗(yàn)提供更好的條件。