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

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