丁 凰,繆相林,王 梅,張 媛
(1. 西安交通大學 城市學院,西安 710018;2. 西安交通大學 計算機科學與技術學院,西安 710049)
隨著電子通信技術的發展,無線傳感網絡(wireless sensor networks, WSNs)已廣泛應用于環境監測[1-2],如植物監測、海洋環境勘察、災難預測等。先利用WSNs 內的節點感測環境數據,再將數據傳輸到信宿,進而實現對環境監測的目的。
然而,由于WSNs 網絡結構較大,數據須多跳路由才能到達信宿, 即需要多個轉發節點才能將數據傳輸到信宿,這就需要有效的轉發機制。考慮到節點能量屬有限能量[3], 一旦節點能量消耗盡,節點就無法工作。因此,在設計轉發機制時,必須考慮到節點的能耗問題。
地理位置路由只須依據節點位置傳輸數據包,無須維護節點路由表,減少了節點系統開銷,因此,地理位置路由受到廣泛關注[4]。但是,目前多數地理位置路由只考慮了2 維平面,并基于2 維平面的節點位置選擇轉發節點。而真實的網絡,如水下 傳感網絡,節點是處于3 維平面的。
此外,由于采用貪婪轉發策略,地理位置路由還存在路由空洞問題[5]。文獻[6]針對路由空洞問題提出了解決方案,但它只在2 維平面有效,無法應用于3 維平面[7]。
文獻[8]結合了貪婪轉發和角度轉發機制,提出 角 度 路 由 協 議(angular routing protocol, ARP), 當節點遭遇路由空洞時,就依據最小角度迂回數據包進行轉發。文獻[9]提出空洞處理路由(a void handing routing, AVHR)策略,其采用3 維貪婪角度機制傳輸數據包,并具有數據包跟蹤功能。文獻[10]針對3 維WSNs 提出實時的地理位置路由(real-time geographical routing, RTGR),并引用自適應數據轉發區域,致使只有在該區域內的數據包才能被接收。
然而,這些協議沒有考慮到能耗問題來選擇轉發節點,仍是沿用貪婪轉發機制。為此,本文提出基于能效角度路由(energy efficient angle based routing, EEAR),先依據角度信息選擇下一跳轉發節點集,然后再依據距離和能量信息,選擇從轉發節點集中擇優選擇轉發節點。若遭遇路由空洞時,調整角度,擴大選擇下一跳轉發節點的區域。仿真結果表明,提出的EEAR 路由能有效地提高數據包傳遞率,減少能耗。
假定網絡由n 個同構的傳感節點組成,每個節點擁有自己和信宿的3 維位置信息。網絡的3 維空間的拓撲信息為已知信息,每個節點的傳輸半徑為R,最初給每個節點設定1 個初始的錐角α ,并利用錐角α 選擇向信宿傳輸數據包的下一跳轉發節點。
當源節點需要傳輸數據包時,先設置數據包的首部,包括發送節點標識符(identifier, ID),發送節點坐標、錐角α 和數據包壽命。由于每個節點均知道信宿的位置信息,數據包首部無需嵌入信宿位置信息。
每個節點維持2 個隊列:已發的隊列(resend queue, RQ)和 已 傳 輸 的 隊 列(transmitted queue, TQ)。RQ 表示源節點已傳輸且下一跳轉發節點還未轉發的數據包[11],TQ 表示源節點已傳輸且下一跳轉發也成功轉發的數據包。每個節點周期地更新RQ 和TQ。
當節點發送了1 個數據包Data,最初節點就保存它的復本,并將復本保存于RQ。若節點監聽到下一跳轉發節點已轉發了Data,就將Data 從RQ中刪除,并將Data 加入TQ。
初始錐角α 對選擇下一跳轉發節點有重要影響,須慎重計算。如果所有節點的錐形傳輸區域等于整個區域,錐角包含1 個節點,則網絡的整個錐形體積cV 為

令V 表示整個網絡區域的體積,m 表示可選擇的節點數。由于所有節點的錐形區域等于整個網絡的區域,因此, mV = nVc。據此得出初始錐角α 的計算公式為

假定節點i 為源節點,其需要傳輸它的數據包為Datai。最初,節點向鄰居節點廣播Datai,一旦鄰居節點 j ∈ Ni收到數據包Datai,鄰居節點j 就從Datai的首部提取源節點的位置信息。再計算轉發角度



圖1 計算轉發角示意圖
鄰居節點j 一旦計算了轉發角 jθ ,就將 jθ 與錐角α 進行比較。若 jθ 小于α ,鄰居節點j 就可加入候選轉發節點集 iψ ,即

在密集型網絡區域內[12],轉發節點集 iψ 內可能有多個節點,若 iψ 存在多個節點,就再從中擇優轉發節點。
為了更好地選擇轉發節點,EEAR 路由考慮節點能量和距離信息,從轉發節點集 iψ 中產生1 個轉發節點,并由此節點轉發數據。令 jW 表示節點j 融合了剩余能量和距離信息的權重,其定義為

計算 iψ 內的節點權重值后,再依權重設置定時器。權重值越大,定時時間越短。一旦定時完畢,且未監聽到節點轉發數據包,就立即轉發數據包。令 jT 表示節點j 的定時時間,即


圖2 轉發數據流程
在節點稀疏環境,可能會出現 iψ 內沒有節點,即 iψ φ= ,這說明源節點i 遭遇路由空洞,在這種情況下,就調整錐角α ,調整的步長為 1α ,即α = α0+ α1, α0為初始錐角,如圖3 所示。 每次調整后,判斷 iψ 內是否為空。若為空,繼續調整。

圖3 初始錐角α 的調整
為了更好地分析EEAR 路由性能,利用面向對象的模塊化離散事件仿真工具(objective modular network testbed in C++,OMNET++)軟件建立仿真實驗平臺[13],OMNET++可以用來仿真任何離散事件系統。圖4 顯示了OMNET++運行的內部結構,主要由用戶接口、模型元件庫、仿真模型等組成,其中仿真模型包含一些常用的網絡協議、通信模型。

圖4 OMNET++運行內部結構
在300 m × 300 m × 300 m區 域 隨 機 部 署 100~ 500 個節點和1 個信宿, 其中信宿位于區域中心,8 個源節點位于網絡區域的8 個角落。所有節點的初始能量為5 J。引用IEEE 802.11 標準作為介質訪問控制(medium access control, MAC)協議。具體的仿真參數如表1 所示。

表1 仿真參數
選擇RTGR、AVHR 作為參照,并與EEAR 路由進行性能對比分析,主要分析數據包傳遞率、剩余能量和流量。每次實驗獨立重復10 次,取平均值作為最終的實驗數據。
網絡內節點數對數據包傳遞率的影響,如圖5所示。其中數據包傳遞率等于信宿成功接收的數據包數與源節點總共傳輸的數據包之比。數據包傳遞率越高,數據傳輸效率就越高,性能越好。

圖5 數據包傳遞率
從圖5 可知,當節點數為100 時,數據包傳遞率越低。原因在于:100 個節點無法形成連通網絡,網絡處于斷裂狀態,只有極少的數據包能夠成功傳輸至信宿。
隨著節點數的增加,數據包傳遞率快速上升,當節點數增加至300 時,EEAR 路由的數據包傳遞率達到100%。但是,RTGR 和AVHR 路由的數據包并沒有達到100%。這也說明,EEAR 路由的數據包傳遞率的性能優于RTGR 和AVHR 路由。
用節點平均剩余能量率作為表征網絡能耗的性能指標,節點平均剩余能量率等于節點的剩余能量與初始能量之比的平均值。節點平均剩余能量率越高,網絡壽命越長,而傳輸數據和接收數據消耗了節點大部分能量。
圖6 顯示了3 個路由的節點平均剩余能量率。

圖6 節點平均剩余能量率
從圖6 可知,EEAR 和AVHR 路由消耗了更少的能量,而RTGR 路由能量消耗速度過快,原因在于:RTGR 路由產生了太多冗余數據包,而EEAR路由通過選擇最優的下一跳轉發節點,減少路由重傳次數,降低節點的能耗。
流量是指在仿真過程中所傳輸的總的數據包數。因為數據包產生率是固定的(每個源節點每秒產生2 個數據包),所以網絡內所傳輸的總的數據包數是固定的。流量越大,表明路由開銷越大,冗余數據包數越多,路由性能越差。
圖7 顯示了EEAR、RTGR 和AVHR 路由的流量。

圖7 流量隨節點數變化情況
從圖7 可知,RTGR 路由的流量最高,且隨節點數的增加呈線性上升,原因在于:RTGR 路由引用角度廣播,增加了數據包的傳輸次數,而EEAR路由和AVHR 路由的流量隨節點數增加而保持緩慢的增加。
本文針對3 維WSNs 的路由問題展開分析,并提出能效角度路由EEAR。EEAR 路由先依據信宿位置計算角度,再根據角度選擇一部分節點作為候選轉發節點,最后利用節點的剩余能量和距離信息計算節點的權重,并依據節點權重擇優選擇下一跳轉發節點。仿真結果表明,提出的EEAR路由能有效提高數據包傳遞率,并能控制能耗。