夏曉峰, 何常勝
(韶關(guān)學(xué)院 韶州師范分院,廣東 韶關(guān) 512009)
?
LSM結(jié)合鄰居干擾抵抗模型的傳感器網(wǎng)絡(luò)節(jié)點(diǎn)故障檢測(cè)*
夏曉峰*,何常勝
(韶關(guān)學(xué)院 韶州師范分院,廣東 韶關(guān) 512009)
針對(duì)大多數(shù)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(wireless sensor network, WSN)故障檢測(cè)算法容錯(cuò)性較差的問(wèn)題,提出一種基于鏈路切換機(jī)制(LSM)和鄰居干擾抵抗模型的WSN節(jié)點(diǎn)故障檢測(cè)算法.仿真實(shí)驗(yàn)從數(shù)據(jù)包分組傳輸率、控制負(fù)載、內(nèi)存負(fù)載和故障恢復(fù)延遲四個(gè)方面評(píng)價(jià)該算法,結(jié)果表明,當(dāng)節(jié)點(diǎn)傳輸功率提高至4 mW時(shí),數(shù)據(jù)包傳輸率提高了5%以上,恢復(fù)延遲平均降低了4 ms左右,適用性非常好.相比現(xiàn)有的WSN故障檢測(cè)算法,該算法取得了更好的性能.
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(WSN);故障檢測(cè);容錯(cuò)性;電池能量;干擾抵抗模型;鏈路切換機(jī)制
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(WSN)已經(jīng)廣泛應(yīng)用于監(jiān)控不同區(qū)域的物理狀況,例如地理區(qū)域、農(nóng)業(yè)土地、辦公樓、工業(yè)廠房和戰(zhàn)場(chǎng)等.WSN受不同環(huán)境影響會(huì)產(chǎn)生不同類(lèi)型故障,例如外部干擾和內(nèi)部故障(電池故障、處理器故障和收發(fā)器故障等).在這些情況下,傳感器發(fā)送的數(shù)據(jù)不能順利傳送給數(shù)據(jù)中心,沒(méi)有實(shí)現(xiàn)部署WSN的目的,同時(shí)由于人工持續(xù)監(jiān)控網(wǎng)絡(luò)比較困難,因此WSN節(jié)點(diǎn)的故障處理能力和數(shù)據(jù)傳輸?shù)倪m當(dāng)次序顯得非常重要[1].已經(jīng)有很多研究者對(duì)WSN故障節(jié)點(diǎn)檢測(cè)作了相關(guān)研究,例如,[2]提出了入侵故障容錯(cuò)路由方法,該方法可以提供更好的可靠性安全多路徑路由,同時(shí)多路徑選擇被用來(lái)提高網(wǎng)絡(luò)的耐受性和節(jié)約能源.不過(guò)網(wǎng)絡(luò)容錯(cuò)較低,確定節(jié)點(diǎn)的活動(dòng)或休眠狀態(tài)較差.[3]提出兩層傳感器網(wǎng)絡(luò)架構(gòu),其中一些中繼節(jié)點(diǎn)作為高功率簇頭,抵御節(jié)點(diǎn)故障.負(fù)載均衡路由提供容錯(cuò)用于傳感器節(jié)點(diǎn)和中繼節(jié)點(diǎn)的增強(qiáng),限制最大能耗的中繼節(jié)點(diǎn).單高功率簇頭帶來(lái)了整體能耗的增加.為了使網(wǎng)絡(luò)能無(wú)故障運(yùn)行且增強(qiáng)網(wǎng)絡(luò)容錯(cuò)能力,提出一種基于鏈路切換機(jī)制(LSM)和鄰居干擾抵抗模型的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)故障檢測(cè)算法.主要貢獻(xiàn)如下:1)根據(jù)節(jié)點(diǎn)電量和干擾等參數(shù)模擬節(jié)點(diǎn)活動(dòng)狀態(tài)來(lái)識(shí)別故障節(jié)點(diǎn);2)設(shè)計(jì)基于節(jié)點(diǎn)電量和干擾模型的容錯(cuò)機(jī)制;3)無(wú)論什么時(shí)候,一個(gè)節(jié)點(diǎn)的電量低于閾值時(shí),對(duì)鄰居節(jié)點(diǎn)執(zhí)行切換機(jī)制.如果鄰居節(jié)點(diǎn)沒(méi)有參與通信,動(dòng)態(tài)調(diào)節(jié)鄰居節(jié)點(diǎn)的功率.
1.1鏈路切換
在活動(dòng)窗口時(shí)間,當(dāng)電池電量低于bth時(shí)節(jié)點(diǎn)間就會(huì)發(fā)生通信故障(該節(jié)點(diǎn)稱(chēng)為故障節(jié)點(diǎn)),如圖1所示.容錯(cuò)性通過(guò)監(jiān)控故障節(jié)點(diǎn)電量且用其他鏈路代替故障鏈路來(lái)保證故障節(jié)點(diǎn)信息能有效傳遞[4].為了提高PDR和WSN的容錯(cuò)性,本文使用切換機(jī)制恢復(fù)故障節(jié)點(diǎn)的數(shù)據(jù)傳輸任務(wù),提高活動(dòng)節(jié)點(diǎn)數(shù)量和網(wǎng)絡(luò)容錯(cuò)能力.故障節(jié)點(diǎn)傳輸?shù)膮?shù)如下:源節(jié)點(diǎn)地址、sink節(jié)點(diǎn)地址、先前跳節(jié)點(diǎn)地址、下一跳節(jié)點(diǎn)地址和時(shí)間戳.有最高電量的鄰居節(jié)點(diǎn)使用這些參數(shù)且對(duì)下一跳鄰居節(jié)點(diǎn)建立路由從而恢復(fù)通信.算法1描述了鏈接切換過(guò)程.術(shù)語(yǔ)[5]:b[k]為第k個(gè)時(shí)間窗口故障節(jié)點(diǎn)的電量,bf為節(jié)點(diǎn)總電量,bth為電池電量閾值常量,n為鄰居節(jié)點(diǎn)數(shù)量,RQ為請(qǐng)求數(shù)據(jù)包,RP為響應(yīng)數(shù)據(jù)包,bph為最高電池電量.
算法:鏈接切換機(jī)制
1:b[k]←bf;
2:bth=a,a為常量;
3:fork=1 tondo
4: if b[k] 5:故障節(jié)點(diǎn)發(fā)送RQ數(shù)據(jù)包給所有n-1個(gè)鄰居節(jié)點(diǎn),除過(guò)下一跳鄰居節(jié)點(diǎn); 6:故障節(jié)點(diǎn)接收來(lái)自n-1個(gè)鄰居節(jié)點(diǎn)響應(yīng)數(shù)據(jù)包; 7:fori=1 ton-1 do 8: if bp[i]>bp[i+1] then 9:bth>bp[i]; 10:故障節(jié)點(diǎn)將鏈接切換參數(shù)發(fā)送給節(jié)點(diǎn)i; 11:節(jié)點(diǎn)i建立上跳節(jié)點(diǎn)到下跳節(jié)點(diǎn)的路由; 12: enf if 13:end for 14: end if 15:end for 1.2動(dòng)態(tài)功率調(diào)整 當(dāng)特定節(jié)點(diǎn)受到其他節(jié)點(diǎn)干擾時(shí),它接收來(lái)自感興趣節(jié)點(diǎn)的信號(hào)自然會(huì)衰減,且感興趣節(jié)點(diǎn)傳輸?shù)男畔⒉荒鼙粶?zhǔn)確接收[6].因?yàn)楣?jié)點(diǎn)傳輸功率與距離成正比,所以分配給每個(gè)節(jié)點(diǎn)的傳輸半徑應(yīng)該能最小化該節(jié)點(diǎn)所能覆蓋的最大節(jié)點(diǎn)數(shù).如圖2所示. 為了減少干擾信號(hào),使用動(dòng)態(tài)功率調(diào)整機(jī)制,在該機(jī)制中,節(jié)點(diǎn)功率根據(jù)節(jié)點(diǎn)處于不同狀態(tài)而自動(dòng)調(diào)整.如果節(jié)點(diǎn)希望傳輸數(shù)據(jù)包,則節(jié)點(diǎn)處于活動(dòng)狀態(tài),如果節(jié)點(diǎn)等待接收數(shù)據(jù)包,則節(jié)點(diǎn)處于睡眠狀態(tài).假設(shè)節(jié)點(diǎn)在活動(dòng)狀態(tài)以最大功率傳輸數(shù)據(jù)包且在睡眠狀態(tài)以最小功率接收數(shù)據(jù)包,最小功率足夠保證正常鏈接.例如,如圖3所示,比較來(lái)自節(jié)點(diǎn)B的干擾信號(hào)與來(lái)自感興趣節(jié)點(diǎn)C的信號(hào),干擾信號(hào)強(qiáng)度大大減弱,同時(shí)節(jié)點(diǎn)B以最小功率運(yùn)行. 假設(shè)所有鄰居節(jié)點(diǎn)以相同功率傳輸信號(hào)且接收感興趣節(jié)點(diǎn)信號(hào)為S,根據(jù)[7]計(jì)算S/I: (1) 式中S為節(jié)點(diǎn)k接收到感興趣鄰居節(jié)點(diǎn)的信號(hào)功率,I為其他鄰居節(jié)點(diǎn)的信號(hào)功率總和.鄰居節(jié)點(diǎn)的動(dòng)態(tài)功率調(diào)整機(jī)制減少了重疊干擾的影響而不需考慮節(jié)點(diǎn)間的距離di.如果節(jié)點(diǎn)僅被允許在一個(gè)時(shí)間段傳輸信號(hào),則可以避免同步傳輸.根據(jù)動(dòng)態(tài)功率調(diào)整機(jī)制,來(lái)自睡眠狀態(tài)節(jié)點(diǎn)的干擾信號(hào)Iid功率總小于沒(méi)有使用功率調(diào)整機(jī)制的干擾信號(hào)I功率.因此使用動(dòng)態(tài)功率調(diào)整機(jī)制的信噪比為 (2) 1.3故障恢復(fù) 在以下情況,WSN中的容錯(cuò)性機(jī)制提高了網(wǎng)絡(luò)的使用壽命.(1)無(wú)論何時(shí)節(jié)點(diǎn)電量低于閾值,節(jié)點(diǎn)激活切換機(jī)制.(2)轉(zhuǎn)換非感興趣節(jié)點(diǎn)到睡眠狀態(tài)降低了干擾.通過(guò)參數(shù)α控制切換機(jī)制,通過(guò)γ控制睡眠狀態(tài).系統(tǒng)管理員控制α和γ.集成模型增加了WSN中活動(dòng)節(jié)點(diǎn)數(shù)量來(lái)抵抗由于節(jié)點(diǎn)低電量導(dǎo)致的通信失敗或由于鄰居節(jié)點(diǎn)干擾導(dǎo)致節(jié)點(diǎn)故障.例如,當(dāng)由于節(jié)點(diǎn)電量低于閾值而出現(xiàn)大量故障節(jié)點(diǎn)時(shí),α保持一個(gè)較高值,當(dāng)節(jié)點(diǎn)遭受高干擾時(shí),γ保持較高值.目的是在節(jié)點(diǎn)電量低和節(jié)點(diǎn)遭受干擾時(shí)保持較高數(shù)量的活動(dòng)節(jié)點(diǎn). 故障恢復(fù)數(shù)據(jù)庫(kù)(Fault Recovery Database, FRD)[8]是存儲(chǔ)與故障恢復(fù)相關(guān)的額外節(jié)點(diǎn)信息,活動(dòng)節(jié)點(diǎn)根據(jù)故障恢復(fù)機(jī)制處理故障.故障恢復(fù)操作涉及的節(jié)點(diǎn)為故障節(jié)點(diǎn)的鄰居節(jié)點(diǎn).FRD包含參與故障節(jié)點(diǎn)恢復(fù)的每個(gè)節(jié)點(diǎn)的功率和鄰居節(jié)點(diǎn)傳輸信號(hào)的時(shí)間戳. 用C語(yǔ)言進(jìn)行仿真實(shí)驗(yàn),在配置為酷睿雙核處理器、1.7 GHz主頻、2 GB內(nèi)存的 PC機(jī)上完成. 2.1仿真過(guò)程 根據(jù)以下輸入完成仿真:l=1 000m,b=1 000m,N=[50-200],bf=4mW,bdrain=[0.01mWperpacket],bth=0.1mW,β=3.0,r=350m,v=[0to24m/s],z=0.1ms,Trpkts=multipleof1 000BWsingle-hop=20Mbps. 評(píng)價(jià)以下4個(gè)性能參數(shù):(1)數(shù)據(jù)包傳輸率(PDR).目的端接收的數(shù)據(jù)包數(shù)量比上發(fā)送端發(fā)送的數(shù)據(jù)包數(shù)量.(2)控制負(fù)載.需要識(shí)別故障節(jié)點(diǎn)的控制數(shù)據(jù)包數(shù)量且利用容錯(cuò)性模型使網(wǎng)絡(luò)中故障節(jié)點(diǎn)無(wú)效,因此提高系統(tǒng)性能.(3)內(nèi)存負(fù)載.參與故障恢復(fù)機(jī)制的所有節(jié)點(diǎn)需要存儲(chǔ)在FRD中的平均比特位數(shù)據(jù).(4)故障恢復(fù)延遲.故障恢復(fù)需要的平均時(shí)間.定義如下: (3) 式中dh為切換機(jī)制的平均延遲,di為動(dòng)態(tài)干擾抑制時(shí)間延遲,k為鄰居節(jié)點(diǎn)數(shù)量. 2.2數(shù)據(jù)包傳輸率(PDR) 根據(jù)活動(dòng)節(jié)點(diǎn)數(shù)量與故障節(jié)點(diǎn)數(shù)量的比值來(lái)評(píng)價(jià)PDR性能(節(jié)點(diǎn)傳輸功率設(shè)為2 mW).本文考慮三種情況:節(jié)點(diǎn)故障之前,節(jié)點(diǎn)故障后(要么電池低電量,要么來(lái)自鄰居節(jié)點(diǎn)的干擾)和使用本文算法AFTBI后.本文算法的PDR高于FDWSN[1]的PDR,因?yàn)楹笳呤褂盟矐B(tài)階段故障檢測(cè)故障節(jié)點(diǎn),它沒(méi)有考慮干擾情況.在AFTBI中,一旦算法確定了活動(dòng)節(jié)點(diǎn),則路由就十分穩(wěn)定,因此提高了PDR. 圖4顯示當(dāng)節(jié)點(diǎn)傳輸功率提高至4 mW時(shí),PDR的曲線(xiàn)圖.從圖中可以看出,PDR得到了改進(jìn),因?yàn)橐来卧黾与姵仉娏块撝礲th和節(jié)點(diǎn)最大電量之間的差距,活動(dòng)節(jié)點(diǎn)的數(shù)量也不斷增加.增加的活動(dòng)節(jié)點(diǎn)數(shù)量提高了PDR.在FDWSN中使用相似閾值,但是PDR低于AFTBI算法中的PDR.因?yàn)镕DWSN涉及比較鄰居節(jié)點(diǎn)參數(shù)的一些迭代,且該算法假設(shè)節(jié)點(diǎn)電池電量充足,因此減少了活動(dòng)節(jié)點(diǎn)數(shù)量,從而降低了PDR. 2.3控制負(fù)載 圖5顯示了隨著節(jié)點(diǎn)數(shù)增加的控制負(fù)載曲線(xiàn)圖.對(duì)給定傳輸功率2 mW,隨著節(jié)點(diǎn)數(shù)量的增加,兩種情況下的控制負(fù)載(控制數(shù)據(jù)包數(shù)量)不斷增加.可以看出AFTBI和FDWSN的控制負(fù)載比沒(méi)有使用容錯(cuò)機(jī)制的控制負(fù)載高.這是因?yàn)锳FTBI算法需要額外控制數(shù)據(jù)包實(shí)現(xiàn)切換機(jī)制和動(dòng)態(tài)功率調(diào)整機(jī)制.然而,控制負(fù)載的增加提高了系統(tǒng)的容錯(cuò)性且提高了PDR.FDWSN算法的控制負(fù)載比AFTBI控制負(fù)載高,因?yàn)镕DWSN在瞬時(shí)故障檢測(cè)過(guò)程中使用一些迭代收集鄰居節(jié)點(diǎn)信息,從而檢測(cè)故障節(jié)點(diǎn),而在AFTBI沒(méi)有該迭代過(guò)程. 2.4內(nèi)存負(fù)載 圖6顯示了網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)在FRD(比特位)中的額外內(nèi)存負(fù)載,該負(fù)載是時(shí)間的函數(shù).圖7分別顯示了傳輸功率為2 mW和4 mW,且節(jié)點(diǎn)數(shù)為60時(shí),AFTBI和FDWSN算法內(nèi)存負(fù)載曲線(xiàn)圖.內(nèi)存負(fù)載描述需要識(shí)別和恢復(fù)故障節(jié)點(diǎn)的平均比特位數(shù)量. 傳感器節(jié)點(diǎn)拓?fù)浞植己凸收瞎?jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)量導(dǎo)致內(nèi)存負(fù)載出現(xiàn)波動(dòng).在AFTBI算法中,較高傳輸功率(4 mW)的平均內(nèi)存負(fù)載較低,因?yàn)榇嬖谳^高的節(jié)點(diǎn)傳輸功率,所以與較低傳輸功率(2 mW)相比,活動(dòng)節(jié)點(diǎn)的數(shù)可能比較多.針對(duì)較低傳輸功率,許多情況可能使得節(jié)點(diǎn)電量迅速降低且發(fā)生故障.AFTBI的內(nèi)存負(fù)載低于FDWSN的內(nèi)存負(fù)載,因?yàn)镕DWSN需要更多內(nèi)存來(lái)存儲(chǔ)變化的參數(shù).因此,AFTBI內(nèi)存負(fù)載較小. 2.5恢復(fù)延遲 圖7顯示了100個(gè)節(jié)點(diǎn)和200個(gè)節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)下AFTBI和FDWSN的恢復(fù)延遲.隨著故障節(jié)點(diǎn)數(shù)的增加,延遲也逐漸增加.因?yàn)殡S著故障節(jié)點(diǎn)數(shù)的增加,恢復(fù)如此故障節(jié)點(diǎn)的時(shí)間也隨之增加,且增加的時(shí)間不合理,因?yàn)榭赡艽嬖诰嚯x超過(guò)3跳的故障節(jié)點(diǎn)導(dǎo)致同步故障恢復(fù),因此降低了故障恢復(fù)延遲.增加延遲的存在與故障節(jié)點(diǎn)數(shù)有關(guān),可能因?yàn)猷従庸?jié)點(diǎn)變成故障節(jié)點(diǎn)且恢復(fù)機(jī)制以順序方式執(zhí)行.FDWSN的故障恢復(fù)延遲高于AFTBI的故障恢復(fù)延遲,因?yàn)镕DWSN需要更多時(shí)間生成和計(jì)算瞬時(shí)故障矩陣,該矩陣需要時(shí)間冗余感知數(shù)據(jù)集. 本文提出使用電池電量模型和干擾模型設(shè)計(jì)一種基于活動(dòng)節(jié)點(diǎn)的容錯(cuò)機(jī)制來(lái)識(shí)別WSN中的故障節(jié)點(diǎn).當(dāng)節(jié)點(diǎn)電量低于一個(gè)閾值時(shí),使用切換機(jī)制.在切換機(jī)制中,故障節(jié)點(diǎn)從鄰居節(jié)點(diǎn)中選擇電量最高的節(jié)點(diǎn)來(lái)代替它完成數(shù)據(jù)傳輸任務(wù).本文使用動(dòng)態(tài)功率調(diào)整機(jī)制抵抗鄰居節(jié)點(diǎn)的干擾.在分配時(shí)間段內(nèi),鄰居節(jié)點(diǎn)動(dòng)態(tài)調(diào)整它們的功率來(lái)降低它們對(duì)故障節(jié)點(diǎn)的影響.本文通過(guò)PDR、控制負(fù)載、內(nèi)存負(fù)載和故障恢復(fù)延遲評(píng)價(jià)算法性能.實(shí)驗(yàn)結(jié)果顯示本文算法性能優(yōu)于FDWSN. [1]劉廣龍. 基于數(shù)據(jù)反饋的無(wú)線(xiàn)傳感器網(wǎng)故障檢測(cè)研究[D]. 西安:西安電子科技大學(xué), 2014. [2]CHALLAL Y, OUADJAOUT A, LASLA N, et al. Secure and efficient disjoint multipath construction for fault tolerant routing in wireless sensor networks[J]. Journal of Network and Computer Applications, 2011, 34(4): 1 380-1 397. [3]MITRA S, DE SARKAR A. Energy aware fault tolerant framework in wireless sensor network[J]. Applications and Innovations in Mobile Computing, 2014, 30(7): 139-145. [4]張士鑒, 韓國(guó)棟, 沈劍良,等. 基于故障鏈路緩存再利用的NoC容錯(cuò)路由算法[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2014, 26(1): 131-137. [5]KASHYAP A, KHULLER S, SHAYMAN M. Relay placement for fault tolerance in wireless networks in higher dimensions[J]. Computational Geometry, 2011, 44(4): 206-215. [6]CHEN X, KIM Y, WANG B, et al. Fault-tolerant monitor placement for out-of-band wireless sensor network monitoring[J]. Ad Hoc Networks, 2012, 10(1):62-74. [7]RAPPAORT TS. Wireless communication principles and practice[M].2nd ed. PHI Publishers,2004. [8]YOON S, MURAWSKI R, EKICI E, et al. Adaptive channel hopping for interference robust wireless sensor networks[C]//IEEE International Conference on Communications. IEEE, 2010, 24(7): 1-5. 責(zé)任編輯:龍順潮 Node Fault Detection for Sensor Network Based on LSM and Neighbor Interference Resistance Model XIAXiao-feng*,HEChang-sheng (Shaozhou Normal College of Shaoguan University, Shaoguan 512009 China) As fault tolerance of general wireless sensor networks (WSN) fault detection is very poor, a fault-tolerant algorithm based on battery power and interference model is proposed. The toggle mechanism is used to enhance fault tolerance in low battery systems.The proposed algorithm is evaluated in four aspects of packet transmission rate, control load, memory load and recovery delayed.Simulation results show that the packet transmission rate is higher than that of FDWSN by around 5% when node transmission power increased to 4 mW, and the average delay recovery of the proposed algorithm is faster by about 4 ms. So the applicability is very good. The performance of the proposed algorithm is superior to traditional WSN fault detection algorithm. wireless sensor network (WSN); fault detection; fault tolerance; battery power; interference model; link switching mechanism (LSM) 2015-06-23 韻關(guān)學(xué)院校級(jí)科研項(xiàng)目(SZSF20120301) 夏曉峰(1967-),男,上海人,講師. E-mail:xiaxiaofenggd@126.com. TP393 A 1000-5900(2016)01-0101-052 仿真實(shí)驗(yàn)與分析