一種快速可靠的無(wú)線傳感器網(wǎng)絡(luò)路由
引 言
無(wú)線傳感器網(wǎng)絡(luò)(wireless sensor networks,簡(jiǎn)稱WSNs)是當(dāng)前在國(guó)際上備受關(guān)注的涉及多學(xué)科高度交叉的熱點(diǎn)研究領(lǐng)域。它綜合了傳感器技術(shù)、嵌入式計(jì)算技術(shù)、現(xiàn)代網(wǎng)絡(luò)及無(wú)線通信技術(shù)等,能夠通過(guò)各類集成化的微型傳感器協(xié)同工作,完成指定的任務(wù),并進(jìn)行自組織無(wú)線通信網(wǎng)絡(luò)以多跳中繼方式將所感知信息傳送到用戶終端。
WSNs一般運(yùn)行在人們無(wú)法接近的惡劣甚至危險(xiǎn)的遠(yuǎn)程環(huán)境中,并且傳感器節(jié)點(diǎn)通常攜帶不能補(bǔ)充的有限能量。低能耗、低延遲、自動(dòng)修復(fù)路徑成了WSNs最根本的要求。目前所存在的WSNs路由協(xié)議大都不能同時(shí)滿足這樣的條件,或者需要依靠特殊硬件才能實(shí)現(xiàn)這些功能,本文提出了一種快速可靠的低能耗路由(a fast andreliable protocol,簡(jiǎn)稱為FRP),不僅可以滿足上面的基本要求,還可以工作于任務(wù)查詢方式及事件驅(qū)動(dòng)方式,并具有較強(qiáng)的路徑修復(fù)能力。
FRP主要分為3個(gè)部分。首先是構(gòu)建路由樹結(jié)構(gòu),SINK點(diǎn)以洪泛方式向傳感器網(wǎng)絡(luò)傳播路由樹組建消息,使得網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都擁有自己的級(jí)別值和父節(jié)點(diǎn),然后SINK點(diǎn)將所要查詢的任務(wù)通過(guò)路由樹發(fā)布出去;最后源節(jié)點(diǎn)將選擇最短路徑將數(shù)據(jù)反饋給SINK點(diǎn)。FRP主要能夠?qū)崿F(xiàn)以下幾種功能:任務(wù)查詢、事件驅(qū)動(dòng)以及路徑自我修復(fù)。而這些僅依靠普通的射頻芯片即可實(shí)現(xiàn),以下將做詳細(xì)介紹。
1 FRP路由的建立與運(yùn)行
1.1 路由樹的建立
在無(wú)線傳感器網(wǎng)絡(luò)里,由于受到射頻芯片通信距離的限制,單個(gè)節(jié)點(diǎn)無(wú)法了解網(wǎng)絡(luò)中全部節(jié)點(diǎn),只能知道其鄰節(jié)點(diǎn)的一些信息。因此第一步需要建立路由樹結(jié)構(gòu),讓節(jié)點(diǎn)了解其所處的級(jí)別及父節(jié)點(diǎn)。SINK點(diǎn)首先通過(guò)洪泛方式向網(wǎng)絡(luò)傳播路由樹組建消息。組建消息由組建標(biāo)志位、發(fā)送節(jié)點(diǎn)ID、發(fā)送節(jié)點(diǎn)級(jí)值組成。收到該組建消息的節(jié)點(diǎn)將發(fā)送節(jié)點(diǎn)ID記錄為父節(jié)點(diǎn),然后將級(jí)值加1,并以自身ID和級(jí)值更新消息后繼續(xù)向鄰節(jié)點(diǎn)傳播,直到網(wǎng)絡(luò)中所有節(jié)點(diǎn)都擁有自己父節(jié)點(diǎn)和級(jí)值。由于洪泛傳輸中可能會(huì)導(dǎo)致已經(jīng)發(fā)出消息的節(jié)點(diǎn)再次收到鄰節(jié)點(diǎn)將級(jí)值加1后重新發(fā)送來(lái)的消息,從而導(dǎo)致消息循環(huán)。為了解決該問(wèn)題,文中制定如下規(guī)則:當(dāng)一個(gè)節(jié)點(diǎn)從鄰節(jié)點(diǎn)處收到組建消息時(shí),首先檢查消息中級(jí)值是否低于自身級(jí)值,如果是,則以該級(jí)值更新,并向鄰節(jié)點(diǎn)發(fā)送新的組建消息;否則將不予處理。在組建消息傳播過(guò)程中,節(jié)點(diǎn)選擇最早發(fā)送其消息,級(jí)值更低的節(jié)點(diǎn)作為父節(jié)點(diǎn)。圖1所示為路由樹的初始化過(guò)程。
1.2 任務(wù)查詢機(jī)制
當(dāng)SINK點(diǎn)進(jìn)行任務(wù)查詢時(shí),首先以洪泛方式向整個(gè)網(wǎng)絡(luò)發(fā)布任務(wù)查詢命令,該命令主要由任務(wù)查詢標(biāo)志位、任務(wù)發(fā)送節(jié)點(diǎn)ID、任務(wù)發(fā)送節(jié)點(diǎn)級(jí)別、任務(wù)條件、任務(wù)存活時(shí)間等字段組成。收到該命令的節(jié)點(diǎn),將以記錄的形式將本次任務(wù)存儲(chǔ)在本地存儲(chǔ)器里,每一條記錄代表不同的任務(wù)。當(dāng)節(jié)點(diǎn)收到任務(wù)查詢命令時(shí),首先檢查命令中的發(fā)送節(jié)點(diǎn)級(jí)別,若低于本身節(jié)點(diǎn),則與本地存儲(chǔ)的任務(wù)記錄表相比較,如果不存在該任務(wù),則添加該任務(wù)記錄。然后檢查自身是否滿足該任務(wù)條件,若不滿足,則以本身級(jí)點(diǎn)更新任務(wù)查詢命令中的任務(wù)發(fā)送節(jié)點(diǎn)ID、任務(wù)發(fā)送節(jié)點(diǎn)級(jí)別,然后轉(zhuǎn)發(fā)該命令;否則該節(jié)點(diǎn)即為源節(jié)點(diǎn),并從任務(wù)查詢命令中取出任務(wù)發(fā)送節(jié)點(diǎn)ID,作為目標(biāo)節(jié)點(diǎn),準(zhǔn)備向其發(fā)送任務(wù)確認(rèn)命令。該命令由任務(wù)確認(rèn)標(biāo)志位、源節(jié)點(diǎn)ID、數(shù)據(jù)發(fā)送節(jié)點(diǎn)ID、測(cè)量數(shù)據(jù)等字段組成。收到任務(wù)確認(rèn)命令的節(jié)點(diǎn)從中取出數(shù)據(jù)發(fā)送節(jié)點(diǎn)ID,存儲(chǔ)在任務(wù)記錄中,作為以后相同任務(wù)的子節(jié)點(diǎn),然后以自身ID作為新的數(shù)據(jù)發(fā)送節(jié)點(diǎn)ID更新命令,并從任務(wù)列表中取出該任務(wù)的任務(wù)發(fā)送節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)繼續(xù)傳輸任務(wù)確認(rèn)命令,直到返回至SINK點(diǎn)。同時(shí),其它未收到任務(wù)確認(rèn)命令的節(jié)點(diǎn)將會(huì)在任務(wù)存活時(shí)間到期后,將存儲(chǔ)器中的任務(wù)記錄刪除。在任務(wù)查詢命令廣播過(guò)程中,若接收節(jié)點(diǎn)檢測(cè)到本地任務(wù)記錄表中存在相同任務(wù),則從該記錄中取出子節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn),向其發(fā)送任務(wù)查詢命令,避免洪泛傳播,從而大大節(jié)約了能量。
1.3 事件驅(qū)動(dòng)
當(dāng)某事件被傳感器節(jié)點(diǎn)捕捉時(shí),則該節(jié)點(diǎn)即為源節(jié)點(diǎn),并向其父節(jié)點(diǎn)發(fā)送事件命令。該命令由事件類型、源節(jié)點(diǎn)ID、發(fā)送節(jié)點(diǎn)ID、測(cè)量數(shù)據(jù)組成。收到事件命令的節(jié)點(diǎn),以自身ID作為新的發(fā)送節(jié)點(diǎn)ID更新命令,向其父節(jié)點(diǎn)繼續(xù)傳輸事件驅(qū)動(dòng)命令,直到數(shù)據(jù)傳輸至SINK點(diǎn)。
2 路由修復(fù)機(jī)制
本文中的節(jié)點(diǎn)傳輸路徑是唯一的,這樣可以節(jié)約能量,提高效率。但是由于這種唯一性,如果一個(gè)節(jié)點(diǎn)電池耗盡或者物理?yè)p害而失效,則會(huì)導(dǎo)致其下級(jí)節(jié)點(diǎn)也脫離了網(wǎng)絡(luò)。目前有些無(wú)線傳感器路由協(xié)議針對(duì)這一問(wèn)題,采用通過(guò)由SINK點(diǎn)發(fā)起洪泛協(xié)議進(jìn)行路徑修復(fù)的辦法來(lái)解決,但是這樣明顯浪費(fèi)能量,而且在洪泛期間,失效節(jié)點(diǎn)的鄰節(jié)點(diǎn)若產(chǎn)生事件將無(wú)法傳遞,導(dǎo)致了數(shù)據(jù)丟失。
FRP路徑修復(fù)機(jī)制分為2個(gè)部分:節(jié)點(diǎn)狀態(tài)檢測(cè)和新目標(biāo)節(jié)點(diǎn)的選擇。文中采用應(yīng)答機(jī)制來(lái)進(jìn)行節(jié)點(diǎn)狀態(tài)檢測(cè)。當(dāng)節(jié)點(diǎn)發(fā)送數(shù)據(jù)給目標(biāo)節(jié)點(diǎn)后,若在一定時(shí)間內(nèi),收到目標(biāo)節(jié)點(diǎn)的ACK,則認(rèn)為目標(biāo)節(jié)點(diǎn)仍然正常工作,并已將數(shù)據(jù)向前傳輸;否則目標(biāo)節(jié)點(diǎn)已經(jīng)死亡,需要另行尋找新的目標(biāo)節(jié)點(diǎn)。如果在任務(wù)查詢方式運(yùn)行過(guò)程中,某節(jié)點(diǎn)檢測(cè)到子節(jié)點(diǎn)死亡時(shí),按相反路徑發(fā)送命令通知SINK點(diǎn),進(jìn)行本次任務(wù)的重新路由,建立新的任務(wù)路徑。如果在事件驅(qū)動(dòng)方式下,當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)其父節(jié)點(diǎn)死亡,則發(fā)送SEARCH消息,鄰節(jié)點(diǎn)將返回ACK。節(jié)點(diǎn)從中選取響應(yīng)時(shí)間低的低級(jí)別節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)。若無(wú)低級(jí)別的節(jié)點(diǎn)應(yīng)答,則該節(jié)點(diǎn)將以洪泛方式發(fā)送命令通知SINK點(diǎn)進(jìn)行新的路由樹的建立。其過(guò)程如圖2,圖3所示。
3 軟件仿真
本文采用了Visual C++開發(fā)了無(wú)線傳感器網(wǎng)絡(luò)路由仿真平臺(tái)。分別研究了從100到500個(gè)節(jié)點(diǎn)共5個(gè)不同規(guī)模的傳感器區(qū)域。我們建立參數(shù)如表1所示。
PEQ將根據(jù)上述參數(shù)在相同的仿真環(huán)境下與Directed Diffusion協(xié)議(DD協(xié)議)進(jìn)行測(cè)試并進(jìn)行以下幾個(gè)方面的比較:SINK點(diǎn)-源節(jié)點(diǎn)-SINK點(diǎn)時(shí)間延遲;平均延遲;平均消耗能量,以下將分別作以說(shuō)明。
SINK點(diǎn)-源節(jié)點(diǎn)-SINK點(diǎn)的時(shí)間延遲指的是從SINK點(diǎn)發(fā)出查詢信息,到數(shù)據(jù)返回到SINK點(diǎn)所消耗的時(shí)間。低的延遲時(shí)間可以保證用戶有更充足的時(shí)間來(lái)處理突發(fā)事件。FRP主要通過(guò)SINK點(diǎn)發(fā)布任務(wù)查詢命令建立路徑,源節(jié)點(diǎn)沿著該路徑反方向?qū)?shù)據(jù)傳輸給SINK點(diǎn)。而DD協(xié)議則是通過(guò)SINK點(diǎn)發(fā)布興趣給網(wǎng)絡(luò),當(dāng)源節(jié)點(diǎn)收到后,源節(jié)點(diǎn)通過(guò)多個(gè)路徑傳送數(shù)據(jù)給SINK點(diǎn),SINK點(diǎn)收到后,并從中選擇更快捷的路徑加強(qiáng),進(jìn)行數(shù)據(jù)傳輸。FRP比DD協(xié)議在步驟上更簡(jiǎn)潔,從而獲得更低的延遲效果。其仿真數(shù)據(jù)如圖4所示:
平均延遲指的是仿真中所產(chǎn)生的事件從源節(jié)點(diǎn)傳播到SINK點(diǎn)需要的平均時(shí)間。仿真數(shù)據(jù)如圖5所示,結(jié)果表明,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,PEQ協(xié)議顯示了比DD協(xié)議更好的延遲特性。
平均消耗能量指的是仿真結(jié)束后,節(jié)點(diǎn)平均所消耗的能量。仿真數(shù)據(jù)如圖6所示,結(jié)果表明,F(xiàn)RP比DD更節(jié)約能量。原因在于FRP在數(shù)據(jù)傳輸中僅使用單一路徑,而DD協(xié)議在數(shù)據(jù)傳輸中會(huì)使用多個(gè)傳輸路徑,并對(duì)其中傳輸速度慢的路徑進(jìn)行反向增強(qiáng),產(chǎn)生了能量消耗。
4 結(jié) 論
本文提出了一種新的無(wú)線傳感器路由協(xié)議FRP,經(jīng)過(guò)與DD協(xié)議仿真比較,實(shí)驗(yàn)數(shù)據(jù)顯示,無(wú)論是小規(guī)模網(wǎng)絡(luò)(100個(gè)節(jié)點(diǎn)),還是中大規(guī)模網(wǎng)絡(luò)(300~500個(gè)節(jié)點(diǎn)),F(xiàn)RP都具有更短的時(shí)間延遲和較低的能量消耗。并且該協(xié)議已經(jīng)在基于MSP430F123和NRF2401的硬件節(jié)點(diǎn)上成功應(yīng)用?,F(xiàn)場(chǎng)試驗(yàn)表明,該路由反應(yīng)迅速,自我修復(fù)能力強(qiáng),可以滿足無(wú)線傳感器實(shí)時(shí)監(jiān)測(cè)應(yīng)用的要求。
評(píng)論