任秀麗,陳 洋
(遼寧大學 信息學院,沈陽 110036)
由于無線傳感器網絡(Wireless Sensor Network,WSN)的低成本性,因此被廣泛應用在各種領域。它是由一組有限的移動或靜態的節點組成,感知各種現象并將感知信息轉發到目的地[1]。傳感器網絡具有很強的應用相關性,不同應用中的路由協議可能差別很大,沒有一個通用的路由協議[2]。對于一些低延時事件,要解決由于網絡流量大而造成的數據包端到端延時較高的問題,同時保證節點間數據傳輸的質量。
文獻[3]中提出了基于簇的延時約束和能量高效的多跳(Delay-Constrained Energy Multi-hop,DCEM)路由協議,該協議提出能量成本函數和端到端延時函數用于簇間多跳路由算法,但是沒有考慮到節點間通信鏈路的質量對于數據包端到端延時的影響。文獻[4]中提出了無線傳感網中事件驅動的延時和能量高效的主動路由協議(Delay and Energy Efficient Proactive routing protocol for event-driven WSNs,DEEP),該協議構造了一個基于能量和延時的最短路徑樹,在感知相同事件的節點之間進行聚簇,通過最短路徑樹將數據發送到基站,但是在網絡流量大時可能產生較大的排隊延時。文獻[5]中提出了能量感知事件驅動的路由協議和動態傳輸方案(Energy Aware Event Driven Routing protocol and dynamic delivering scheme,EAEDR),該協議將低延時事件分割成兩個數據包,通過兩條路徑傳輸;由于在Sink節點處需要進行數據包的合并,因此難以保證兩個數據包會在延時容忍范圍內同時到達。文獻[6]中提出了基于鏈路質量和延時的復合負載均衡路由協議(link quality and delay based Composite Load Balancing routing protocol,ComLoB),該協議使用分組排隊延時和預期傳輸計數來度量節點到基站的路徑質量,通過隨機選擇下一跳節點公平地分配流量負載以避免擁塞;但路由表的更新以及隊列的監控將產生更多的數據包在網絡中發送并占用數據包隊列,使得該協議的端到端延時更高。文獻[7]中提出了擁塞避免多路徑路由協議(Congestion Avoidance multipath routing protocol based on Routing Protocol for Low-power and lossy network,CA-RPL),該協議有效地結合了延時、鏈路可靠性和負載平衡因子,降低了平均延時和丟包率;但CA-RPL是在較低的數據流量情況下進行評估的,且隨著數據流量的降低,丟包率較RPL(Routing Protocol for Low-power and lossy network)[8]具有上升的趨勢。文獻[9]中提出了一種基于期望傳輸時間的多徑OLSR(MultiPath Optimized Link State Routing protocol based on Expected Transmission Time,SETT_MPOLSR),節點間的路由選擇基于預期傳輸次數以及帶寬值;但當節點的發包率增加后,網絡的分組投遞率下降較快。文獻[10]中提出了高魯棒性低延遲的路由協議(Robust Delay-aware Routing protocol,RDR),該協議通過路徑探測尋找延時表現最優的路徑和潛在的協助節點,在數據發送階段使用多播動態選取路徑;但是,多播的使用會增加網絡中的數據包而造成數據包的碰撞和擁塞。
針對上述協議存在的數據傳輸延時較高以及丟包嚴重的問題,本文提出了一種數據傳輸延時優化路由協議(Routing Protocol Optimized for Data Transmission Delay,RPODTD)。RPODTD給出一個新的路由選擇函數,綜合考慮節點的有效探測占比與傳輸效率等因素進行路由選擇,提高路由選擇的精確度;同時提出一種延時優化策略,通過更改數據包傳輸的路徑,有效地降低數據包的排隊延時。
本文采用與文獻[11-12]相同的無線通信能耗模型。在該模型中,無線通信模塊發送數據的能耗主要在發送電路和功率放大電路,接收數據的能量消耗主要在接收電路。在保證合理信噪比的條件下,節點發送數據能耗為:

(1)
其中:k表示發送的二進制位數;d表示發送距離;Eelec(nJ/bit)表示射頻能耗系數;Efs(pJ/(bit·m2))和Emp(pJ/(bit·m4))表示不同信道傳播模型下的功率放大電路能耗系數。
節點接收數據能耗為:
ERx(k)=kEelec
(2)
本文假設無線傳感器網絡具有如下性質,與文獻[13-14]類似:
1)節點具有唯一的ID編號且均勻分布在監測區域;
2)所有節點位置固定且能量有限;
3)基站位置固定且具有充足的能量;
4)所有節點具有相同的發送能力;
5)節點可根據接收信號的強度計算彼此之間的距離。
對于數據延時要求較高且網絡流量較大的網絡,數據包需要盡可能以較低的延時和丟包率發送到基站。本文采用的節點鏈路度量指標能夠更精確地度量節點之間的傳輸質量,保證數據的傳輸效率;同時,提出的延時優化策略能夠有效地解決網絡流量大帶來的數據包端到端延時較高的問題。
數據傳輸過程中,節點間通信鏈路的質量直接影響數據包能否成功傳輸。當節點間傳輸數據時,節點成功發送數據包或者丟包之前要經過多次傳輸嘗試,用于探測信道是否空閑。根據IEEE 802.15.4的載波偵聽多路訪問/沖突避免(Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)算法,當節點有數據傳輸時,允許節點進行至多4次的信道探測[15]。根據數據包是否被成功接收,將節點的探測情況分為有效探測與無效探測,以下給出相關定義。
定義1 有效探測。節點在進行c(c≤4)次的探測后,成功地發送了數據包且收到了確認包,則稱節點進行了c次有效探測。
定義2 無效探測。節點在進行c(c≤4)次的探測后,放棄傳輸或者沒有收到確認包,則稱節點進行了c次無效探測。
圖1所示為節點的傳輸示意圖。圖1(a)為節點成功發送數據包的示意圖。當節點A進行c次探測后,信道空閑,則節點A發送數據包,A收到ACK表示數據被成功接收。圖1(b)為節點確認失敗的示意圖。節點A在c次探測后發送數據包,但沒有收到ACK,表明數據包在傳輸過程中丟失。圖1(c)為數據包發送失敗的示意圖。節點A進行4次探測后信道仍然繁忙,因此,放棄此次傳輸。

圖1 傳輸示意圖Fig. 1 Schematic diagram of transmission
2.1.1 節點有效探測占比度量
節點在信道探測后能否成功地發送數據包直接反映了節點間鏈路的質量。在一定時間內,節點有效探測的次數占總的探測次數的比例越大,表示節點間傳輸數據的質量越好。對于任意節點Nx,用Rxk表示節點Nk轉發節點Nx的數據包的有效探測占比,由式(3)給出:
(3)
其中:s表示成功發送數據包的個數;u表示數據包傳輸失敗的次數;ci表示第i次數據傳輸時探測信道的次數。
2.1.2 節點傳輸效率度量
本文將節點的傳輸效率作為評價節點之間通信能力的另一指標。節點的傳輸效率越高,表示節點間通信能力越好。用Exk表示節點Nk轉發節點Nx的數據包的傳輸效率度量,由式(4)給出:
(4)

2.1.3 節點的路由選擇函數
路由選擇函數是數據發送節點進行路由選擇的依據,包括節點的有效探測占比度量以及傳輸效率度量,是兩者的復合計算。為了消除量綱的影響,對其進行標準化處理,處理后的結果由式(5)和式(6)給出:
(5)
其中:maxRx和minRx分別表示節點Nx的候選路由節點的有效探測占比度量的最大值和最小值;rxk表示節點Nk的有效探測占比度量的標準化數值。
(6)
其中:maxEx和minEx分別表示節點Nx的候選路由節點的傳輸效率度量的最大值和最小值;exk表示節點Nk的傳輸效率度量的標準化數值。
對于節點Nx,其路由選擇函數由式(7)給出:
selectx(Nk)=αrxk+βexk
(7)
其中:selectx(Nk)是節點Nk在節點Nx路由表中的路由選擇函數的值;α,β為各度量指標的權重系數,且α+β=1。所有指標的數據值都是越大越好,因此節點選擇select值最大的候選路由節點作為下一跳。設置α=0.6,β=0.4,將在3.2節給出權重系數取值的實驗分析。
網絡初始化階段,Sink節點廣播初始化消息。節點間發送數據探測包,計算路由選擇函數的值,節點選擇靠近基站方向的鄰節點作為候選路由節點,保存到路由表。節點保存多個候選路由節點,使得數據傳輸不易受到節點失效的影響。
候選路由節點按照select值由大到小分配優先級(1,2,…,n)。如果在一段時間內節點Nx的候選路由節點參與數據包傳輸,則根據已傳輸的數據包計算路由選擇函數的值;否則,鄰節點間周期性地發送數據探測包更新路由表。
Sink節點一跳范圍以內的節點直接向Sink發送數據,Sink節點一跳范圍以外的節點采用多跳的方式向Sink發送數據。每次傳輸數據時,數據發送節點在候選路由節點中選擇優先級最高的作為下一跳節點。當節點的剩余能量不足以進行數據傳輸時,則從路由表中刪除該節點。
當監測區域產生突發事件且流量較大時,數據需要盡可能以較低的延時發送到基站。由于網絡中的數據流量較大,網絡的擁塞和碰撞現象會造成數據包的丟失或延遲轉發,使得數據包在節點處產生較大的排隊延時。在本節中,提出一種延時優化策略,可以有效地降低數據包的排隊延時,從而使數據包盡可能以較低的延時傳輸到基站。該策略是通過改變數據包傳輸路徑,以解決排隊延時增加的問題。給定最大和最小兩個排隊延時閾值用于劃分排隊延時區間,數據接收節點根據數據包的排隊延時所屬的區間決定是否通知數據發送節點更改傳輸路徑。以下分為5部分敘述該延時優化策略:閾值的取值分析、排隊延時的計算、路徑更改的判斷、路徑選擇及其實現。
2.3.1 閾值的取值分析
最小排隊延閾值Min和最大排隊延時閾值Max的最佳設置在傳感器節點的高效利用以及較低的平均端到端延時之間進行權衡。同時閾值的最佳設置也取決于節點緩沖區的大小。當閾值取值較小,在網絡流量較大時,數據發送節點會頻繁地更換路徑,降低傳感器節點的利用率;同時也意味著節點對于數據包傳輸過程中存在的突發狀況,例如數據包碰撞、丟包等原因造成的數據包延遲轉發,具有較低的容忍度。當閾值的取值較大時,對于節點之間的鏈路較差的情況,會延長無效鏈路持續的時間,增加數據包的端到端延時。
2.3.2 排隊延時的計算
RPODTD中的排隊延時表示即將進入隊列的數據包從進入隊列到發送成功所需要的等待時間,即為當前緩沖區數據包全部發送完所需的時間。由于數據包傳輸過程中的擁塞和碰撞會導致數據包被延遲轉發,因此數據包實際的傳輸時間會大于理論上的傳輸時間,本文通過數據包的實際延時以及理論延時的差值估算數據包的排隊延時,排隊延時Tque由式(8)給出:
(8)
(9)
t=tsend+2ttrans
(10)

如圖2所示為節點間傳輸數據包的示意圖。由節點A計算數據包p進入隊列到開始發送所需要的排隊時間。

圖2 數據包傳輸示意圖Fig. 2 Schematic diagram of data packet transmission
2.3.3 路徑更改的判斷
由2.3.2節計算得到數據包的排隊延時Tque,節點根據排隊延時所屬的區間判斷是否可以繼續接收數據。根據排隊延時所屬區間的判斷存在以下3種情況。
1)當Tque≤Min時,節點可以繼續接收數據,數據發送節點不需要切換路徑;
2)當Tque≥Max時,節點不能繼續接收數據,數據發送節點需要切換路徑;
3)當Min 針對情況3),本文采用如下兩種信息作為節點Nx判斷是否繼續接收數據的依據: (11) 其中:n表示節點Nx候選路由節點的個數;selectxi表示節點Nx第i個候選路由節點的路由選擇函數的值。 (12) (13) 當Dec值為1時,表明節點Nx不適合繼續接收數據,當Dec值為0時,表明節點適合繼續接收數據。設置一個flag標志位,如果節點不可以繼續接收數據,則將flag置為1;否則,將flag置為0。 2.3.4 路徑選擇 節點在持續接收一段時間數據后,不再滿足接收數據的條件,則通過ACK消息向數據發送節點返回flag=1的消息,通知其更改路徑。節點每次更改路徑時,依次選擇路由表中優先級較高的節點發送數據,判斷是否可以傳輸數據。當節點收到數據包且滿足flag=0時,則僅返回ACK消息;否則,通過ACK消息攜帶flag=1的信息。當數據發送節點收到flag=1的消息或者在最大重傳等待時間后沒有收到ACK消息,則重新選擇節點;否則,選擇當前節點作為下一跳節點繼續傳輸數據。當路由表中節點的flag值均為1時,為了防止更多的數據包在網絡中傳輸,加重網絡負擔,同時保證發送的數據包可以被接收,數據發送節點降低數據的發送速率,選擇優先級較高的節點發送數據且只有在最大重傳等待時間后未收到ACK包時才會重新選擇路由節點。 2.3.5 延時優化策略實現 以下給出延時優化策略執行的步驟。 步驟1 計算排隊延時。數據接收節點根據2.3.2節所描述的方法計算排隊延時。 步驟2 路徑更改判斷。節點根據2.3.3節所描述的方法判斷是否可以繼續接收數據,滿足繼續接收數據的條件,則flag=0;否則,flag=1,并將flag返回給數據發送節點。 步驟3 路徑更改。數據發送節點根據flag的值判斷是否更改路徑,若更改路徑,則執行步驟4;否則,執行步驟5。 步驟4 節點選擇。路徑更改時,節點根據2.3.4節所描述的方法在路由表中選擇合適的節點作為下一跳節點。 步驟5 數據傳輸。數據發送節點向選擇好的下一跳節點發送數據。 為了評價本文提出的路由協議的性能,使用OMNeT++仿真環境對RPODTD的性能進行驗證。整個仿真實驗包括3部分: 1)驗證式(7)中α,β的取值對于數據包平均端到端延時的影響; 2)對排隊延時閾值Min以及Max的取值進行分析; 3)將RPODTD與ComLoB、CA-RPL在網絡時效性、網絡可靠性、網絡能效性等方面進行比較。 使用OMNet++對網絡協議進行仿真。將100個節點隨機分布在100 m×100 m的區域內,節點初始能量為0.5 J,數據包大小為500 B,節點初始通信半徑R0=20 m。 為了驗證式(7)中有效探測占比度量以及傳輸效率度量這兩個指標的權重系數對于端到端延時的影響,在相同的網絡環境下,取9種情況(Q1,Q2,…,Q9)下的權重系數值進行仿真,如表1所示。通過對比不同取值下的平均端到端延時情況判斷最佳的權重系數值。 表1 權重系數取值 Tab. 1 Values of weight coefficients 圖3是權重系數取值與平均端到端延時關系的比較,由圖3可知,當α=0.6,β=0.4(Q6)時,RPODTD可以獲得較好的性能。 圖3 權重系數取值與平均端到端延時關系Fig. 3 Relationship between weight coefficient value and average end-to-end delay 為了驗證Min與Max的取值對數據包端到端延時的影響,在相同網絡環境下,取不同的閾值數值進行仿真。實驗中,首先在一跳鄰節點間發送數據包,計算單跳傳輸延時,經過多次實驗得出單跳傳輸延時的平均值為0.03 s,最小值為0.02 s。閾值的取值范圍根據緩沖區的大小估算,區間為(T,T·buf),其中,T為一個數據包的傳輸延時,值取0.03;buf為緩沖區大小,值取15,因此,在本節實驗中,Min的取值從0.03開始以0.02的步長升序選取,Max的取值從0.45開始以0.02的步長降序選取,本節僅展示9種閾值取值的情況(Q1,Q2,…,Q9),如表2所示。圖4是閾值取值與平均端到端延時比較。由圖4可知,當閾值取值過小或者過大,均會增加數據包的端到端延時。當Min=0.15,Max=0.33(Q7)時,網絡性能較好,因此,本文中相關實驗的閾值取值為:Min=0.15,Max=0.33。 表2 閾值取值 Tab. 2 Values of thresholds 圖4 閾值取值與平均端到端延時關系Fig. 4 Relationship between threshold value and average end-to-end delay 3.4.1 網絡時效性 分析單跳節點間數據包的傳輸延時,通過更換路由節點使得網絡流量分布在不同的鏈路上,有效地減小了每一個節點處數據包隊列的排隊延時。數據包的傳輸延時主要取決于節點處的排隊延時,雖然更換路由節點需要一定的處理時間,但與排隊延時相比可以忽略。 本文采用數據包的平均端到端延時來評估網絡的時效性。數據包的端到端延時是實時性數據重要的評價參數之一,表示為數據包從數據產生節點發送到基站所需要的時間。圖5是不同數據包發送速率下,數據包平均端到端延時的變化情況。由圖5可以看出,隨著節點發送數據包速率的增加,ComLoB和CA-RPL的數據包端到端延時呈快速上升的趨勢,而RPODTD的上升趨勢較緩慢。與ComLoB和CA-RPL相比,RPODTD的平均端到端延時分別降低了78.87%和51.81%。 圖5 3種協議的數據包平均端到端延時對比Fig. 5 Average end-to-end delay comparison of data packets of three protocols 3.4.2 網絡可靠性 數據包之間的碰撞會導致數據包的丟失,當網絡流量升高時,節點的丟包率會隨之上升。通過對節點間鏈路質量的度量,可以有效地保證節點間通信的質量;同時,多路徑的使用可以提高鏈路的可靠性,減少無效鏈路的使用時間,降低數據包因鏈路無效而丟失的概率。 本文采用節點的丟包率評價網絡的可靠性。節點的丟包率表示為數據傳輸過程中丟失的數據包數量與總的發送數據包數量的比值。圖6是不同數據包發送速率下,節點丟包率的變化情況。由圖6可以看出,與ComLoB和CA-RPL相比,RPODTD的丟包率分別降低了40.71%和68.43%,因此RPODTD能夠有效地降低節點的丟包率。 圖6 3種協議的節點丟包率對比Fig. 6 Node packet loss rate comparison of three protocols 3.4.3 網絡能效性 與持續監測節點的隊列流量并在到達臨界值時便發送警戒消息的ComLoB相比,RPODTD只有在節點間有數據傳輸時才會發送flag消息,有效地減少了網絡中控制包的傳輸數量,降低了能量開銷。 本文采用節點的死亡率評價網絡的能效性。圖7是隨著網絡運行時間的遞增,節點的死亡率變化情況。由圖7可以明顯看出,ComLoB和CA-RPL的節點死亡率高于RPODTD。與ComLoB和CA-RPL相比,RPODTD節點的死亡率分別降低了25.42%和44.62%。 圖7 3種協議的節點死亡率對比Fig. 7 Node mortality rate comparison of three protocols 針對無線傳感器網絡中對數據實時性以及可靠性要求較高的應用,本文提出了一種數據傳輸延時優化的路由協議(RPODTD)。該協議給出一個新的路由選擇函數,考慮信道探測次數以及信道探測時間對于節點間數據傳輸質量的反映,引入節點有效探測占比以及傳輸效率對節點進行評估,有效地提高了節點間數據傳輸的質量和效率;同時,本文還提出了延時優化策略,根據數據包的實際延時以及理論延時的差值估算數據包的排隊延時;分析并確定最大和最小排隊延時閾值,根據數據包排隊延時所屬的閾值區間,對是否更換路由節點進行決策。仿真結果表明,RPODTD能夠有效地減少數據包的端到端延時,降低丟包率。 RPODTD能夠很好地應用于高可靠低延時的環境;但是該協議在能耗方面仍存在不足之處,后續研究將進一步考慮節點能耗方面的優化,減少網絡中無關數據包的探測和轉發,以降低網絡的能量開銷。



3 仿真結果與分析
3.1 實驗參數設置
3.2 權重系數的選取


3.3 閾值的取值


3.4 協議性能分析



4 結語