丁 凰,繆相林,王 梅,張 媛
(1. 西安交通大學 城市學院,西安 710018;2. 西安交通大學 計算機科學與技術學院,西安 710049)
隨著電子通信技術的發(fā)展,無線傳感網絡(wireless sensor networks, WSNs)已廣泛應用于環(huán)境監(jiān)測[1-2],如植物監(jiān)測、海洋環(huán)境勘察、災難預測等。先利用WSNs 內的節(jié)點感測環(huán)境數據,再將數據傳輸到信宿,進而實現(xiàn)對環(huán)境監(jiān)測的目的。
然而,由于WSNs 網絡結構較大,數據須多跳路由才能到達信宿, 即需要多個轉發(fā)節(jié)點才能將數據傳輸到信宿,這就需要有效的轉發(fā)機制??紤]到節(jié)點能量屬有限能量[3], 一旦節(jié)點能量消耗盡,節(jié)點就無法工作。因此,在設計轉發(fā)機制時,必須考慮到節(jié)點的能耗問題。
地理位置路由只須依據節(jié)點位置傳輸數據包,無須維護節(jié)點路由表,減少了節(jié)點系統(tǒng)開銷,因此,地理位置路由受到廣泛關注[4]。但是,目前多數地理位置路由只考慮了2 維平面,并基于2 維平面的節(jié)點位置選擇轉發(fā)節(jié)點。而真實的網絡,如水下 傳感網絡,節(jié)點是處于3 維平面的。
此外,由于采用貪婪轉發(fā)策略,地理位置路由還存在路由空洞問題[5]。文獻[6]針對路由空洞問題提出了解決方案,但它只在2 維平面有效,無法應用于3 維平面[7]。
文獻[8]結合了貪婪轉發(fā)和角度轉發(fā)機制,提出 角 度 路 由 協(xié) 議(angular routing protocol, ARP), 當節(jié)點遭遇路由空洞時,就依據最小角度迂回數據包進行轉發(fā)。文獻[9]提出空洞處理路由(a void handing routing, AVHR)策略,其采用3 維貪婪角度機制傳輸數據包,并具有數據包跟蹤功能。文獻[10]針對3 維WSNs 提出實時的地理位置路由(real-time geographical routing, RTGR),并引用自適應數據轉發(fā)區(qū)域,致使只有在該區(qū)域內的數據包才能被接收。
然而,這些協(xié)議沒有考慮到能耗問題來選擇轉發(fā)節(jié)點,仍是沿用貪婪轉發(fā)機制。為此,本文提出基于能效角度路由(energy efficient angle based routing, EEAR),先依據角度信息選擇下一跳轉發(fā)節(jié)點集,然后再依據距離和能量信息,選擇從轉發(fā)節(jié)點集中擇優(yōu)選擇轉發(fā)節(jié)點。若遭遇路由空洞時,調整角度,擴大選擇下一跳轉發(fā)節(jié)點的區(qū)域。仿真結果表明,提出的EEAR 路由能有效地提高數據包傳遞率,減少能耗。
假定網絡由n 個同構的傳感節(jié)點組成,每個節(jié)點擁有自己和信宿的3 維位置信息。網絡的3 維空間的拓撲信息為已知信息,每個節(jié)點的傳輸半徑為R,最初給每個節(jié)點設定1 個初始的錐角α ,并利用錐角α 選擇向信宿傳輸數據包的下一跳轉發(fā)節(jié)點。
當源節(jié)點需要傳輸數據包時,先設置數據包的首部,包括發(fā)送節(jié)點標識符(identifier, ID),發(fā)送節(jié)點坐標、錐角α 和數據包壽命。由于每個節(jié)點均知道信宿的位置信息,數據包首部無需嵌入信宿位置信息。
每個節(jié)點維持2 個隊列:已發(fā)的隊列(resend queue, RQ)和 已 傳 輸 的 隊 列(transmitted queue, TQ)。RQ 表示源節(jié)點已傳輸且下一跳轉發(fā)節(jié)點還未轉發(fā)的數據包[11],TQ 表示源節(jié)點已傳輸且下一跳轉發(fā)也成功轉發(fā)的數據包。每個節(jié)點周期地更新RQ 和TQ。
當節(jié)點發(fā)送了1 個數據包Data,最初節(jié)點就保存它的復本,并將復本保存于RQ。若節(jié)點監(jiān)聽到下一跳轉發(fā)節(jié)點已轉發(fā)了Data,就將Data 從RQ中刪除,并將Data 加入TQ。
初始錐角α 對選擇下一跳轉發(fā)節(jié)點有重要影響,須慎重計算。如果所有節(jié)點的錐形傳輸區(qū)域等于整個區(qū)域,錐角包含1 個節(jié)點,則網絡的整個錐形體積cV 為
令V 表示整個網絡區(qū)域的體積,m 表示可選擇的節(jié)點數。由于所有節(jié)點的錐形區(qū)域等于整個網絡的區(qū)域,因此, mV = nVc。據此得出初始錐角α 的計算公式為
假定節(jié)點i 為源節(jié)點,其需要傳輸它的數據包為Datai。最初,節(jié)點向鄰居節(jié)點廣播Datai,一旦鄰居節(jié)點 j ∈ Ni收到數據包Datai,鄰居節(jié)點j 就從Datai的首部提取源節(jié)點的位置信息。再計算轉發(fā)角度
圖1 計算轉發(fā)角示意圖
鄰居節(jié)點j 一旦計算了轉發(fā)角 jθ ,就將 jθ 與錐角α 進行比較。若 jθ 小于α ,鄰居節(jié)點j 就可加入候選轉發(fā)節(jié)點集 iψ ,即
在密集型網絡區(qū)域內[12],轉發(fā)節(jié)點集 iψ 內可能有多個節(jié)點,若 iψ 存在多個節(jié)點,就再從中擇優(yōu)轉發(fā)節(jié)點。
為了更好地選擇轉發(fā)節(jié)點,EEAR 路由考慮節(jié)點能量和距離信息,從轉發(fā)節(jié)點集 iψ 中產生1 個轉發(fā)節(jié)點,并由此節(jié)點轉發(fā)數據。令 jW 表示節(jié)點j 融合了剩余能量和距離信息的權重,其定義為
計算 iψ 內的節(jié)點權重值后,再依權重設置定時器。權重值越大,定時時間越短。一旦定時完畢,且未監(jiān)聽到節(jié)點轉發(fā)數據包,就立即轉發(fā)數據包。令 jT 表示節(jié)點j 的定時時間,即
圖2 轉發(fā)數據流程
在節(jié)點稀疏環(huán)境,可能會出現(xiàn) iψ 內沒有節(jié)點,即 iψ φ= ,這說明源節(jié)點i 遭遇路由空洞,在這種情況下,就調整錐角α ,調整的步長為 1α ,即α = α0+ α1, α0為初始錐角,如圖3 所示。 每次調整后,判斷 iψ 內是否為空。若為空,繼續(xù)調整。
圖3 初始錐角α 的調整
為了更好地分析EEAR 路由性能,利用面向對象的模塊化離散事件仿真工具(objective modular network testbed in C++,OMNET++)軟件建立仿真實驗平臺[13],OMNET++可以用來仿真任何離散事件系統(tǒng)。圖4 顯示了OMNET++運行的內部結構,主要由用戶接口、模型元件庫、仿真模型等組成,其中仿真模型包含一些常用的網絡協(xié)議、通信模型。
圖4 OMNET++運行內部結構
在300 m × 300 m × 300 m區(qū) 域 隨 機 部 署 100~ 500 個節(jié)點和1 個信宿, 其中信宿位于區(qū)域中心,8 個源節(jié)點位于網絡區(qū)域的8 個角落。所有節(jié)點的初始能量為5 J。引用IEEE 802.11 標準作為介質訪問控制(medium access control, MAC)協(xié)議。具體的仿真參數如表1 所示。
表1 仿真參數
選擇RTGR、AVHR 作為參照,并與EEAR 路由進行性能對比分析,主要分析數據包傳遞率、剩余能量和流量。每次實驗獨立重復10 次,取平均值作為最終的實驗數據。
網絡內節(jié)點數對數據包傳遞率的影響,如圖5所示。其中數據包傳遞率等于信宿成功接收的數據包數與源節(jié)點總共傳輸的數據包之比。數據包傳遞率越高,數據傳輸效率就越高,性能越好。
圖5 數據包傳遞率
從圖5 可知,當節(jié)點數為100 時,數據包傳遞率越低。原因在于:100 個節(jié)點無法形成連通網絡,網絡處于斷裂狀態(tài),只有極少的數據包能夠成功傳輸至信宿。
隨著節(jié)點數的增加,數據包傳遞率快速上升,當節(jié)點數增加至300 時,EEAR 路由的數據包傳遞率達到100%。但是,RTGR 和AVHR 路由的數據包并沒有達到100%。這也說明,EEAR 路由的數據包傳遞率的性能優(yōu)于RTGR 和AVHR 路由。
用節(jié)點平均剩余能量率作為表征網絡能耗的性能指標,節(jié)點平均剩余能量率等于節(jié)點的剩余能量與初始能量之比的平均值。節(jié)點平均剩余能量率越高,網絡壽命越長,而傳輸數據和接收數據消耗了節(jié)點大部分能量。
圖6 顯示了3 個路由的節(jié)點平均剩余能量率。
圖6 節(jié)點平均剩余能量率
從圖6 可知,EEAR 和AVHR 路由消耗了更少的能量,而RTGR 路由能量消耗速度過快,原因在于:RTGR 路由產生了太多冗余數據包,而EEAR路由通過選擇最優(yōu)的下一跳轉發(fā)節(jié)點,減少路由重傳次數,降低節(jié)點的能耗。
流量是指在仿真過程中所傳輸的總的數據包數。因為數據包產生率是固定的(每個源節(jié)點每秒產生2 個數據包),所以網絡內所傳輸的總的數據包數是固定的。流量越大,表明路由開銷越大,冗余數據包數越多,路由性能越差。
圖7 顯示了EEAR、RTGR 和AVHR 路由的流量。
圖7 流量隨節(jié)點數變化情況
從圖7 可知,RTGR 路由的流量最高,且隨節(jié)點數的增加呈線性上升,原因在于:RTGR 路由引用角度廣播,增加了數據包的傳輸次數,而EEAR路由和AVHR 路由的流量隨節(jié)點數增加而保持緩慢的增加。
本文針對3 維WSNs 的路由問題展開分析,并提出能效角度路由EEAR。EEAR 路由先依據信宿位置計算角度,再根據角度選擇一部分節(jié)點作為候選轉發(fā)節(jié)點,最后利用節(jié)點的剩余能量和距離信息計算節(jié)點的權重,并依據節(jié)點權重擇優(yōu)選擇下一跳轉發(fā)節(jié)點。仿真結果表明,提出的EEAR路由能有效提高數據包傳遞率,并能控制能耗。