龍 飛
(長(zhǎng)春師范大學(xué)教育學(xué)院,長(zhǎng)春 130032)
無(wú)線傳感網(wǎng)絡(luò)(WSNs)已在工業(yè)、農(nóng)業(yè),包括軍事等領(lǐng)域廣泛使用[1-2]。WSNs是由微型、具有通信及感知能力的節(jié)點(diǎn)組成,這些節(jié)點(diǎn)感知環(huán)境數(shù)據(jù),再將數(shù)據(jù)傳輸至控制中心,進(jìn)而實(shí)現(xiàn)監(jiān)測(cè)環(huán)境的目的。
節(jié)點(diǎn)由干電池供電,當(dāng)節(jié)點(diǎn)的電量耗盡時(shí),節(jié)點(diǎn)就無(wú)法完成數(shù)據(jù)傳輸?shù)热蝿?wù),形成死亡節(jié)點(diǎn)。死亡節(jié)點(diǎn)一旦增多,網(wǎng)絡(luò)性能必然下降[3]。
業(yè)界采用低占空比[4-5]的節(jié)能技術(shù)緩解WSNs的網(wǎng)絡(luò)能耗,進(jìn)而延長(zhǎng)網(wǎng)絡(luò)壽命。在一個(gè)周期內(nèi),占空比越低,節(jié)點(diǎn)工作時(shí)間越短,則休眠時(shí)間越長(zhǎng)。節(jié)點(diǎn)在休眠期間的能耗遠(yuǎn)低于其在工作時(shí)間的能耗。因此,通過(guò)延長(zhǎng)休眠時(shí)間可以降低節(jié)點(diǎn)能耗。當(dāng)需要接收或者傳輸數(shù)據(jù)時(shí),就喚醒節(jié)點(diǎn)。
除了節(jié)點(diǎn)能量消耗之外,數(shù)據(jù)傳輸率也是WSNs應(yīng)用必須考慮的因素。任播是兼顧節(jié)點(diǎn)能耗和數(shù)據(jù)傳輸率的有效路由策略之一。第6版互聯(lián)網(wǎng)協(xié)議(Internet protocol version 6, IPv6)將任播定義為一種新型通信服務(wù)[6],網(wǎng)絡(luò)負(fù)責(zé)盡力將數(shù)據(jù)包傳遞至任播地址中的一個(gè)。
多數(shù)學(xué)者在構(gòu)建任播路由時(shí)引用信息生成樹[7-8]。例如,文獻(xiàn)[9]提出基于信息生成樹的多跳喚醒轉(zhuǎn)發(fā)路由(collection tree protocol-based multi-hop wake-up relay, CTP-WR )。CTP-WR路由利用期望傳輸次數(shù)(expect transmission count, ETX)構(gòu)建路由指標(biāo),再由此路由指標(biāo)生成路由樹,如圖1(a)所示。圖中顯示了以節(jié)點(diǎn)A為根節(jié)點(diǎn)的樹,子節(jié)點(diǎn)E和F將信息傳輸至父節(jié)點(diǎn)C。節(jié)點(diǎn)C再將信息傳輸至根節(jié)點(diǎn)A。將任播技術(shù)應(yīng)用于數(shù)據(jù)收集,樹狀結(jié)構(gòu)就成為目的節(jié)點(diǎn)定向的有向非循環(huán)圖[10], 如圖1(b)所示。
圖1 數(shù)據(jù)收集拓?fù)鋱D
文獻(xiàn)[10]提出基于期望占空比喚醒指標(biāo)的機(jī)會(huì)路由(opportunistic routing based expected duty cycled wakeups, ORW),其引用了期望占空比喚醒(expected duty cycled wakeups, EDC)變量作為任播指標(biāo)。EDC反映了將數(shù)據(jù)包傳輸至信宿所需期望的喚醒次數(shù)。但是EDC的物理意義并不明確,也沒(méi)有重點(diǎn)分析傳感節(jié)點(diǎn)的能耗問(wèn)題。
為此,面向采用低占空比策略的WSNs,提出基于鏈路質(zhì)量的能效任播路由(LQAR)。LQAR路由先利用數(shù)據(jù)包接收率和距離估計(jì)鏈路質(zhì)量,再結(jié)合能耗和鏈路質(zhì)量估算節(jié)點(diǎn)成為候選轉(zhuǎn)播節(jié)點(diǎn)的權(quán)重。仿真結(jié)果表明,提出的LQAR路由有效地緩解節(jié)點(diǎn)能耗,提高了數(shù)據(jù)傳輸效率。
n個(gè)節(jié)點(diǎn)隨機(jī)分布在×的方形區(qū)域內(nèi),匯聚節(jié)點(diǎn)位于區(qū)域中心,所有節(jié)點(diǎn)都采用低占空比工作模式。每個(gè)節(jié)點(diǎn)獨(dú)立完成自己的工作調(diào)度,調(diào)度以周期方式進(jìn)行。假定節(jié)點(diǎn)的周期為L(zhǎng)個(gè)時(shí)隙(時(shí)隙是指將時(shí)間劃分更小的時(shí)間間隔[11]),如圖2所示,圖中L=4, 在每個(gè)周期內(nèi),節(jié)點(diǎn)在第2個(gè)時(shí)隙進(jìn)行工作,其他時(shí)隙休眠。
圖2 節(jié)點(diǎn)的工作調(diào)度示例
節(jié)點(diǎn)有休眠和工作兩種狀態(tài):當(dāng)節(jié)點(diǎn)在休眠時(shí),它只保留1個(gè)用于喚醒自己的定時(shí)器,關(guān)閉其他所有的模塊;當(dāng)節(jié)點(diǎn)在工作狀態(tài)時(shí),就保持工作狀態(tài),如感知環(huán)境數(shù)據(jù)、偵聽信道等。
如圖3所示的能量消耗模型[12]。令Et(m,d)表示節(jié)點(diǎn)傳輸mbit數(shù)據(jù)、且傳輸距離為d(單位:m)時(shí)所消耗的能量, 下標(biāo)“t”表示傳輸;令Er(m)表示接收mbit數(shù)據(jù)所消耗的能量,下標(biāo)“r”表示接收,它們的定義分別如式(1)和式(2)所示:
Et(m,d)=mEel+mεd2
(1)
Er(m)=mEel
(2)
圖3 能量消耗模型
式中:Eel表示發(fā)送電路的能耗;ε表示功放電路的能耗參數(shù)。
在網(wǎng)絡(luò)建立的初始階段,節(jié)點(diǎn)周期的廣播Hello包包含了節(jié)點(diǎn)的編號(hào)(ID)、位置以及剩余能量。通過(guò)Hello包的交互,節(jié)點(diǎn)獲取鄰居節(jié)點(diǎn)的位置以及剩余能量信息。
采用數(shù)據(jù)包接收率和距離兩項(xiàng)信息估算鏈路質(zhì)量。首先,利用式(3)計(jì)算數(shù)據(jù)包接收率:
(3)
式中:Ni表示節(jié)點(diǎn)i的一跳鄰居節(jié)點(diǎn),下標(biāo)“i”表示節(jié)點(diǎn)i;Pi,j表示節(jié)點(diǎn)i從其鄰居節(jié)點(diǎn)j所接收數(shù)據(jù)包成功率,下標(biāo)“i,j”表示節(jié)點(diǎn)i,節(jié)點(diǎn)j;pk,j為布爾變量。若pk,j=1,則表明節(jié)點(diǎn)i第k次成功地從節(jié)點(diǎn)j接收了數(shù)據(jù)包;反之,若pk,j=0,則表明節(jié)點(diǎn)i在第k次未能成功地從節(jié)點(diǎn)j接收數(shù)據(jù)包。
再依據(jù)Pi,j取值,將鏈路質(zhì)量劃分成3個(gè)等級(jí):1) 優(yōu)質(zhì)區(qū):Pi,j>0.9;2) 合格區(qū):0.1≤Pi,j≤0.9;3) 劣質(zhì)區(qū):Pi,j<0.1。
最后,依據(jù)式(4)估計(jì)節(jié)點(diǎn)i與節(jié)點(diǎn)j間所形成的鏈路質(zhì)量Qi,j:
(4)
若源節(jié)點(diǎn)i需要傳輸數(shù)據(jù),首先需構(gòu)建任播節(jié)點(diǎn)集。令Fi表示源節(jié)點(diǎn)i的任播節(jié)點(diǎn)集,其屬于一跳鄰居集的子集,即Fi?Ni。
結(jié)合能耗率和鏈路質(zhì)量,計(jì)算節(jié)點(diǎn)被選入候選任播節(jié)點(diǎn)集的權(quán)重:
(5)
式中:Wi,j表示節(jié)點(diǎn)j∈Ni的權(quán)重因子。從式(5)可知,權(quán)重因子越大,就意味著節(jié)點(diǎn)的能耗小,數(shù)據(jù)包傳遞率高。因此,擇優(yōu)選擇權(quán)重因子大的節(jié)點(diǎn)加入候選任播節(jié)點(diǎn)集。
(6)
(7)
(8)
(9)
從式(9)可知,集Fi內(nèi)節(jié)點(diǎn)數(shù)越多,監(jiān)聽時(shí)間越短。原因在于:節(jié)點(diǎn)數(shù)越多,F(xiàn)i內(nèi)出現(xiàn)喚醒狀態(tài)的節(jié)點(diǎn)概率越高,這就無(wú)需設(shè)置更長(zhǎng)的監(jiān)聽時(shí)間。
收到請(qǐng)求包后,節(jié)點(diǎn)回復(fù)確認(rèn)包。一旦收到確認(rèn)包,節(jié)點(diǎn)開始傳輸數(shù)據(jù)。圖4給出數(shù)據(jù)傳輸示例,其中“Q”表示請(qǐng)求包,“P”表示確認(rèn)包,“D”表示數(shù)據(jù)。節(jié)點(diǎn)i的任播節(jié)點(diǎn)集內(nèi)有兩個(gè)節(jié)點(diǎn),即Fi={j1,j2}。源節(jié)點(diǎn)i先向Fi內(nèi)節(jié)點(diǎn)廣播請(qǐng)求包,然后進(jìn)入監(jiān)聽。假定節(jié)點(diǎn)j1收到請(qǐng)求包,并向節(jié)點(diǎn)i回復(fù)確認(rèn)包。最后,節(jié)點(diǎn)i向節(jié)點(diǎn)j1發(fā)送數(shù)據(jù)。
圖4 數(shù)據(jù)傳輸示例
利用MATLAB R2014b建立仿真平臺(tái)。在100 m×100 m區(qū)域內(nèi)隨機(jī)分布400個(gè)節(jié)點(diǎn)。匯聚節(jié)點(diǎn)位于區(qū)域中心,且匯聚節(jié)點(diǎn)坐標(biāo)為(50 m,50 m)。具體的仿真參數(shù)如表1所示。每個(gè)實(shí)驗(yàn)獨(dú)立重復(fù)20次,取平均值作為最終的實(shí)驗(yàn)數(shù)據(jù)。
表1 仿真參數(shù)
選擇CTP-WR和ORW路由作為參照,并對(duì)比分析它們的能耗、傳輸數(shù)據(jù)的端到端時(shí)延以及數(shù)據(jù)包傳遞率。
3.2.1 節(jié)點(diǎn)數(shù)對(duì)性能的影響
圖5給出了平均能耗隨節(jié)點(diǎn)數(shù)的變化曲線,其中TW=2 s,節(jié)點(diǎn)數(shù)在25至400之間變化。從圖5可知,ORW中平均能耗隨節(jié)點(diǎn)數(shù)的增加而上升。而LQAR路由和CTP-WR路由的平均能耗隨節(jié)點(diǎn)數(shù)的增加而下降。原因在于:對(duì)于單播策略的ORW,節(jié)點(diǎn)數(shù)越多,數(shù)據(jù)包傳輸?shù)呐鲎猜试礁?。而?duì)于采用任播策略路由而言,節(jié)點(diǎn)數(shù)越多,轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)也越多,節(jié)點(diǎn)間的能耗也越平衡。相比于CTP-WR路由,LQAR路由降低了能耗。例如,當(dāng)節(jié)點(diǎn)數(shù)N=400, LQAR路由的能耗比CTP-WR路由降低了25%。
圖5 平均能耗隨節(jié)點(diǎn)數(shù)變化情況
圖6描述了LQAR路由的平均端到端傳輸時(shí)延隨節(jié)點(diǎn)數(shù)的變化情況。從圖6可知,LQAR路由降低端到端傳輸時(shí)延,遠(yuǎn)低于CTP-WR和ORW路由的進(jìn)延。這歸功于:LQAR路由保持穩(wěn)定路由。它通過(guò)能耗和數(shù)據(jù)包接收率構(gòu)建轉(zhuǎn)發(fā)節(jié)點(diǎn)集,降低路由斷裂的概率,提高了路由穩(wěn)定性,進(jìn)而縮短了數(shù)據(jù)傳輸時(shí)延。
圖6 平均端到端時(shí)延隨節(jié)點(diǎn)數(shù)變化情況
圖7描述了數(shù)據(jù)包傳遞率隨節(jié)點(diǎn)數(shù)的變化情況。從圖可知,相比于CTP-WR和ORW路由,LQAR路由具有最高數(shù)據(jù)包傳遞率。在節(jié)點(diǎn)數(shù)變化期間,它的數(shù)據(jù)包傳遞率保持近100%。而CTP-WR和ORW路由的數(shù)據(jù)包傳遞率隨節(jié)點(diǎn)數(shù)增加有下降趨勢(shì)。原因在于:LQAR路由選擇穩(wěn)定的路由傳輸數(shù)據(jù)包,提升了數(shù)據(jù)傳遞成功率。
圖7 數(shù)據(jù)包傳遞率隨節(jié)點(diǎn)數(shù)變化情況
3.2.2 喚醒間隔對(duì)路由性能的影響
本節(jié)分析喚醒間隔TW路由性能的影響。實(shí)驗(yàn)參數(shù):節(jié)點(diǎn)數(shù)100,1/λ=30 s。TW取0.25,0.5,1.0,2.0,4.0,如圖8~圖10所示。
圖8 平均能耗隨喚醒間隔變化情況
圖9 平均端到端時(shí)延隨喚醒間隔變化情況
圖10 數(shù)據(jù)包傳遞率隨喚醒間隔變化情況
從圖8可知,協(xié)議在TW=2 s時(shí)的能耗最低。而相比于ORW路由,LQAR路由的平均能耗降低了約20%。在TW>2 s期間,LQAR路由的能耗隨喚醒間隔的增長(zhǎng)變化速度減緩。此外,回顧圖7,CTP-WR和LQAR路由的數(shù)據(jù)包傳遞率隨節(jié)點(diǎn)數(shù)的變化趨勢(shì)相近,原因在于:CTP-WR和LQAR路由的構(gòu)建機(jī)制相同,只是它們選擇的路由指標(biāo)不同。因此,它們的平均能耗隨喚醒間隔的變化曲線相近,但是LQAR路由的平均能耗仍低于CTP-WR的能耗。
圖9描述了平均端到端時(shí)延隨喚醒間隔的變化曲線。由圖可知,平均端到端時(shí)延隨喚醒間隔的增加而增加。喚醒間隔越大,節(jié)點(diǎn)等待時(shí)間越長(zhǎng),增加了傳輸數(shù)據(jù)包的時(shí)延。相比于CTP-WR路由,LQAR路由的傳輸時(shí)延得到有效控制,原因在于:LQAR路由的數(shù)據(jù)傳輸鏈路穩(wěn)定,避免重傳數(shù)據(jù)包,縮短數(shù)據(jù)包的傳輸時(shí)延。
圖10描述了數(shù)據(jù)包傳遞率隨喚醒間隔的變化曲線。在喚醒間隔變化期間,3個(gè)路由(LQAR,CTP-WR和ORW)的數(shù)據(jù)包傳遞率保持穩(wěn)定。相比于CTP-WR和ORW路由,LQAR路由的數(shù)據(jù)包傳遞率略有上升。
針對(duì)低占空比的WSNs,提出基于鏈路質(zhì)量的能效任播路由。LQAR路由采用任播路由策略,提高數(shù)據(jù)傳輸效率。LQAR路由利用節(jié)點(diǎn)能耗速率和鏈路質(zhì)量構(gòu)建任播節(jié)點(diǎn)集,再?gòu)娜尾ス?jié)點(diǎn)集中選擇最優(yōu)節(jié)點(diǎn)傳輸數(shù)據(jù)包,進(jìn)而降低節(jié)點(diǎn)能耗。仿真數(shù)據(jù)表明,提出的LQAR路由降低了能耗速率,提升了數(shù)據(jù)包傳遞率。
喚醒間隔對(duì)數(shù)據(jù)傳輸時(shí)延和能耗有重要影響,并且數(shù)據(jù)傳輸時(shí)延和能耗隨喚醒間隔的變化走勢(shì)相反。文中采用固定的喚醒間隔,沒(méi)有動(dòng)態(tài)設(shè)置喚醒間隔,后期將研究如何依據(jù)網(wǎng)絡(luò)拓?fù)湫畔ⅲ瑒?dòng)態(tài)地設(shè)置喚醒間隔,進(jìn)一步優(yōu)化LQAR路由。