王禮霞,邰清清
(合肥經(jīng)濟(jì)學(xué)院,安徽 合肥 230036)
現(xiàn)今社會(huì)電子信息不斷發(fā)展,多種技術(shù)興起。隨著無(wú)線電技術(shù)、集成電路技術(shù)的飛速發(fā)展,無(wú)線傳感器應(yīng)運(yùn)而生,該設(shè)備具有能量消耗低、體積小、價(jià)格低等優(yōu)勢(shì),受到多個(gè)行業(yè)的關(guān)注[1]。隨著微傳感無(wú)線傳感器的應(yīng)用與發(fā)展,該設(shè)備結(jié)合處理器、通訊設(shè)備等共同構(gòu)成了無(wú)線傳感器網(wǎng)絡(luò)。無(wú)線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)是其運(yùn)行中的重要支撐。以節(jié)點(diǎn)合作方式獲取相應(yīng)數(shù)據(jù)信息,并將其傳輸至基站,為傳感器網(wǎng)絡(luò)發(fā)展開(kāi)創(chuàng)新篇章[2]。
與發(fā)達(dá)國(guó)家相比較,國(guó)內(nèi)對(duì)無(wú)線傳感器網(wǎng)絡(luò)的研究起步較晚,但發(fā)展速度較快。無(wú)線傳感器網(wǎng)絡(luò)在運(yùn)行過(guò)程中節(jié)點(diǎn)易受到復(fù)雜網(wǎng)絡(luò)環(huán)境的影響,導(dǎo)致其運(yùn)行不暢。傳感器網(wǎng)絡(luò)節(jié)點(diǎn)比較容易受到攻擊、威脅與侵害,導(dǎo)致節(jié)點(diǎn)異?,F(xiàn)象頻繁發(fā)生[3]。若異常節(jié)點(diǎn)沒(méi)有被發(fā)現(xiàn)或者剔除,會(huì)直接影響網(wǎng)絡(luò)決策的安全性,為網(wǎng)絡(luò)用戶(hù)帶來(lái)不利影響。現(xiàn)有無(wú)線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)檢測(cè)方法中由于其應(yīng)用技術(shù)的自身的局限性,存在誤檢率較高的問(wèn)題,無(wú)法滿(mǎn)足網(wǎng)絡(luò)用戶(hù)的需求。因此,本文提出基于高階馬爾可夫鏈的無(wú)線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)檢測(cè)方法,提升無(wú)線傳感器網(wǎng)絡(luò)運(yùn)行質(zhì)量。
常規(guī)情況下,無(wú)線傳感器網(wǎng)絡(luò)規(guī)模較大,其中包含的傳感器節(jié)點(diǎn)數(shù)量較多。為了精確地檢測(cè)出無(wú)線傳感器網(wǎng)絡(luò)中異常節(jié)點(diǎn),本文分析了節(jié)點(diǎn)的屬性,將其進(jìn)行量化[4]處理。該網(wǎng)絡(luò)局部拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 無(wú)線傳感器網(wǎng)絡(luò)局部拓?fù)浣Y(jié)構(gòu)示意圖
如圖1所示,三角形標(biāo)志指網(wǎng)絡(luò)環(huán)境物理量,包括溫度、濕度數(shù)據(jù)等,由節(jié)點(diǎn)C與節(jié)點(diǎn)D進(jìn)行測(cè)量。A,B,C,D,E,F,G是無(wú)線傳感器網(wǎng)絡(luò)中的部分節(jié)點(diǎn)。其中,節(jié)點(diǎn)G為匯聚節(jié)點(diǎn),承擔(dān)數(shù)據(jù)包采集與融合的任務(wù)。該網(wǎng)絡(luò)的局部拓?fù)浣Y(jié)構(gòu)中路由為:D→C→E→F→G或者C→E→F→G構(gòu)成,最終由節(jié)點(diǎn)G將獲取的數(shù)據(jù)包傳輸?shù)胶笈_(tái)服務(wù)器[5]。
根據(jù)研究需求,對(duì)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的丟包率、轉(zhuǎn)發(fā)率、節(jié)點(diǎn)參與度、節(jié)點(diǎn)位置匹配與數(shù)據(jù)包轉(zhuǎn)發(fā)延時(shí)屬性進(jìn)行抽象量化,并對(duì)其進(jìn)行建模。其中,丟包率計(jì)算公式如式(1)所示。
(1)
式(1)中,Rs表示傳感器節(jié)點(diǎn)的丟包率;Ps表示傳感器節(jié)點(diǎn)成功接收的數(shù)據(jù)包總和;Pa表示相鄰傳感器節(jié)點(diǎn)的數(shù)據(jù)包總和。
轉(zhuǎn)發(fā)率計(jì)算公式如式(2)所示。
(2)
式(2)中,Rf表示傳感器節(jié)點(diǎn)的轉(zhuǎn)發(fā)率;Pf表示傳感器節(jié)點(diǎn)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量;Pt表示傳感器節(jié)點(diǎn)接收的數(shù)據(jù)包總和[6]。
節(jié)點(diǎn)參與度計(jì)算公式如式(3)所示。
(3)
式(3)中,Cn表示傳感器節(jié)點(diǎn)的節(jié)點(diǎn)參與度;n表示相鄰傳感器節(jié)點(diǎn)數(shù)量;nmax表示無(wú)線傳感器網(wǎng)絡(luò)中相鄰節(jié)點(diǎn)數(shù)量最大的節(jié)點(diǎn)。
節(jié)點(diǎn)位置匹配屬性較為復(fù)雜,需要獲取傳感器節(jié)點(diǎn)的鄰居節(jié)點(diǎn)表示為數(shù)組Pn,維數(shù)為n×n,數(shù)組中元素Pn(i,j)滿(mǎn)足式(4)。
(4)
依據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)報(bào)告位置,計(jì)算節(jié)點(diǎn)距離與通信距離,并將兩者進(jìn)行比較,獲得另一個(gè)數(shù)組Pd,數(shù)組中元素Pd(i,j)滿(mǎn)足式(5)。
(5)
式(5)中,dist(i,j)表示以傳感器節(jié)點(diǎn)坐標(biāo)位置信息為基礎(chǔ),計(jì)算得到的相鄰節(jié)點(diǎn)之間距離;R表示網(wǎng)絡(luò)節(jié)點(diǎn)的通信距離。
以上述構(gòu)建的兩個(gè)數(shù)組為依據(jù),利用異或邏輯運(yùn)算方式來(lái)構(gòu)建位置匹配數(shù)組,表達(dá)式如式(6)所示。
Pc=Pn⊕Pd
(6)
式(6)中,⊕表示異或邏輯運(yùn)算符號(hào)。
數(shù)據(jù)包轉(zhuǎn)發(fā)延時(shí)比值計(jì)算公式如式(7)所示。
(7)
式(7)中,Tr表示傳感器節(jié)點(diǎn)的數(shù)據(jù)包轉(zhuǎn)發(fā)延時(shí)比值;Tave表示節(jié)點(diǎn)數(shù)據(jù)包傳輸時(shí)延;表示簇內(nèi)數(shù)據(jù)包平均時(shí)延。
依據(jù)上述構(gòu)建的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)屬性模型,結(jié)合高階馬爾可夫鏈理論,構(gòu)造傳感器節(jié)點(diǎn)高階馬爾可夫鏈,定義網(wǎng)絡(luò)正常節(jié)點(diǎn)模型,為后續(xù)異常節(jié)點(diǎn)檢測(cè)奠定基礎(chǔ)[7]。
高階馬爾可夫鏈?zhǔn)且粋€(gè)隨機(jī)過(guò)程,具備無(wú)后效性,在已知時(shí)刻t狀態(tài)前提下,時(shí)刻t+1狀態(tài)只與時(shí)刻t相關(guān),與其他狀態(tài)均無(wú)關(guān)[8]。
基于馬爾可夫鏈理論,結(jié)合傳感器節(jié)點(diǎn)屬性模型,構(gòu)建傳感器節(jié)點(diǎn)高階馬爾可夫鏈[9]。假設(shè)傳感器節(jié)點(diǎn)狀態(tài)集合為Θ={S1,S2,…,Sn},則時(shí)刻t的傳感器節(jié)點(diǎn)狀態(tài)表達(dá)式如式(8)所示。
(8)
式(8)中,qt與qt+1分別表示時(shí)刻t與t+1的傳感器節(jié)點(diǎn)狀態(tài);aij表示傳感器節(jié)點(diǎn)狀態(tài)從t→t+1的轉(zhuǎn)換矩陣元素。
將傳感器節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換矩陣記為[aij],其需要滿(mǎn)足公式(9)。
(9)
傳感器節(jié)點(diǎn)狀態(tài)實(shí)時(shí)變化,經(jīng)過(guò)多次轉(zhuǎn)換后,節(jié)點(diǎn)狀態(tài)概率計(jì)算公式如式(10)所示。
(10)
如公式(10)所示,多次轉(zhuǎn)移概率矩陣需要經(jīng)過(guò)多次迭代計(jì)算,導(dǎo)致無(wú)線傳感器網(wǎng)絡(luò)消耗能量較多,故采用一步轉(zhuǎn)移法對(duì)其進(jìn)行改進(jìn)[10]。
通過(guò)上述過(guò)程完成傳感器節(jié)點(diǎn)高階馬爾可夫鏈的構(gòu)建,為后續(xù)異常節(jié)點(diǎn)檢測(cè)提供標(biāo)準(zhǔn)與依據(jù)[11]。
在異常節(jié)點(diǎn)檢測(cè)過(guò)程中,簇頭占據(jù)主要位置,故需要制定科學(xué)、合理節(jié)點(diǎn)分簇協(xié)議,確定簇頭節(jié)點(diǎn)并利用其獲取傳感器節(jié)點(diǎn)信息。
無(wú)線傳感器網(wǎng)絡(luò)中,所有節(jié)點(diǎn)需要遵循公平性準(zhǔn)則與隨機(jī)性準(zhǔn)則。而決定節(jié)點(diǎn)是否能夠在當(dāng)前選為簇頭節(jié)點(diǎn),主要由節(jié)點(diǎn)信任度、剩余能量以及當(dāng)選簇頭次數(shù)等決定。在選取簇頭后,將剩余節(jié)點(diǎn)按照RSSI與距離進(jìn)行劃分,直到所有傳感器節(jié)點(diǎn)分簇結(jié)束為止。另外,簇頭節(jié)點(diǎn)需要給自身成員分配時(shí)間間隙。
簇頭節(jié)點(diǎn)選取表達(dá)式如式(11)所示。
(11)
式(11)中,I(n)表示簇頭節(jié)點(diǎn)選取閾值;p表示無(wú)線傳感器網(wǎng)絡(luò)中簇頭概率;r表示當(dāng)前輪數(shù);Ei表示簇頭節(jié)點(diǎn)傳輸能量;Er表示選取簇頭節(jié)點(diǎn)消耗能量;rep(n)表示傳感器節(jié)點(diǎn)n的信任度;G表示r輪中非簇頭節(jié)點(diǎn)集合。
傳感器節(jié)點(diǎn)信任度計(jì)算公式如式(12)所示。
(12)
式(12)中,netihbor(n)表示每輪中參加簇頭選取的節(jié)點(diǎn)總數(shù);Dpt(i)表示節(jié)點(diǎn)n轉(zhuǎn)發(fā)給節(jié)點(diǎn)i的數(shù)據(jù)包數(shù)量;DPr(i)表示每輪中節(jié)點(diǎn)n在節(jié)點(diǎn)i處接收的數(shù)據(jù)包數(shù)量;k表示計(jì)算參數(shù);|Zn-Zk|表示節(jié)點(diǎn)數(shù)據(jù)包差值;dnormal表示設(shè)置的正常節(jié)點(diǎn)閾值。
為了防止節(jié)點(diǎn)被選為簇頭節(jié)點(diǎn),需要實(shí)時(shí)對(duì)傳感器節(jié)點(diǎn)信任度進(jìn)行更新,其更新表達(dá)式如式(13)所示。
repnew(n)=ωrepold(n)+(1-ω)rep(n)
(13)
式(13)中,ω表示時(shí)間衰減因子。
另外,在節(jié)點(diǎn)分簇完成后,簇內(nèi)節(jié)點(diǎn)之間的數(shù)據(jù)傳輸需要消耗一定的能量,其能量計(jì)算公式如式(14)所示。
(14)
式(14)中,CH-counts表示簇頭節(jié)點(diǎn)的總數(shù)量;Eelect表示傳輸或者接收一個(gè)字節(jié)的能量消耗量;εf表示自由空間能量;dist(xi-qij)表示簇內(nèi)成員節(jié)點(diǎn)到達(dá)簇頭節(jié)點(diǎn)的路徑平方和。
為了降低無(wú)線傳感器網(wǎng)絡(luò)的整體消耗,盡可能降低簇內(nèi)節(jié)點(diǎn)之間的傳輸耗能,即選取節(jié)點(diǎn)之間最小的傳輸路徑[12-13]。
根據(jù)得到的簇頭獲取傳感器節(jié)點(diǎn)信息,根據(jù)高階馬爾可夫鏈構(gòu)建無(wú)線傳感器節(jié)點(diǎn),判定待檢測(cè)節(jié)點(diǎn)的類(lèi)別(正常節(jié)點(diǎn)或異常節(jié)點(diǎn)),實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)的檢測(cè)。
網(wǎng)絡(luò)異常節(jié)點(diǎn)檢測(cè)具體步驟如下所示。
步驟一:依據(jù)節(jié)點(diǎn)屬性模型,確定節(jié)點(diǎn)高階馬爾可夫鏈的狀態(tài)空間,即建立傳感器節(jié)點(diǎn)分類(lèi)標(biāo)準(zhǔn),本文將傳感器節(jié)點(diǎn)狀態(tài)劃分為兩種,分別為正常節(jié)點(diǎn)與異常節(jié)點(diǎn),狀態(tài)空間記為E={1,2},其中1指正常節(jié)點(diǎn),2指異常節(jié)點(diǎn)。
步驟二:依據(jù)步驟一確定狀態(tài)空間,確定已知傳感器節(jié)點(diǎn)相對(duì)應(yīng)的狀態(tài)。
步驟三:對(duì)步驟二獲得結(jié)果進(jìn)行統(tǒng)計(jì)整理,獲取步長(zhǎng)為1的馬氏鏈轉(zhuǎn)移概率矩陣,體現(xiàn)傳感器節(jié)點(diǎn)轉(zhuǎn)移過(guò)程中狀態(tài)變化概率。
步驟四:采用“ADMCP法”進(jìn)行“馬氏性”檢驗(yàn),若通過(guò)檢驗(yàn),輸出結(jié)果即為無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)判定結(jié)果;若未通過(guò)檢驗(yàn),表明上述步驟出現(xiàn)偏差或錯(cuò)誤,需要對(duì)上述步驟進(jìn)行檢查與修正,即返回步驟一。
步驟五:對(duì)傳感器節(jié)點(diǎn)高階馬爾可夫鏈進(jìn)行分析,并輸出網(wǎng)絡(luò)節(jié)點(diǎn)判定結(jié)果(正常節(jié)點(diǎn)或異常節(jié)點(diǎn))。
通過(guò)上述步驟,實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)的檢測(cè),為無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用與發(fā)展提供更好地支撐與幫助。
為驗(yàn)證提出方法與現(xiàn)有方法之間的應(yīng)用性能差異,采用MATLAB軟件設(shè)計(jì)實(shí)驗(yàn)。實(shí)驗(yàn)中采用的操作系統(tǒng)為Windows 10,系統(tǒng)運(yùn)行內(nèi)存約為8GB。
實(shí)驗(yàn)中無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)仿真區(qū)域?yàn)?00×100。實(shí)驗(yàn)參數(shù)是保障實(shí)驗(yàn)順利進(jìn)行的關(guān)鍵,因此需要對(duì)其進(jìn)行科學(xué)、合理地設(shè)置,具體如表1所示。
表1 實(shí)驗(yàn)參數(shù)表
為了保障實(shí)驗(yàn)的順利進(jìn)行,對(duì)無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧進(jìn)行設(shè)計(jì),具體如圖2所示。
圖2 無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧示意圖
在實(shí)驗(yàn)仿真過(guò)程中,若出現(xiàn)異常節(jié)點(diǎn),其會(huì)向周?chē)淖冏陨淼酱仡^節(jié)點(diǎn)最小的路徑,以此為基礎(chǔ),吸收相鄰節(jié)點(diǎn)的流量。設(shè)置傳感器節(jié)點(diǎn)總數(shù)量為100,實(shí)驗(yàn)采用隨機(jī)方式來(lái)生成無(wú)線傳感器節(jié)點(diǎn)分布圖。
依據(jù)上述確定的實(shí)驗(yàn)參數(shù),配置的實(shí)驗(yàn)數(shù)據(jù),進(jìn)行無(wú)線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)檢測(cè)實(shí)驗(yàn),分別在時(shí)間與節(jié)點(diǎn)密集度自變量背景下,計(jì)算異常節(jié)點(diǎn)的誤檢率,以此來(lái)顯示方法的應(yīng)用性能,具體實(shí)驗(yàn)結(jié)果如表2 所示。
表2 誤檢率數(shù)據(jù)表
(2)自變量為節(jié)點(diǎn)密集度 %
如表2數(shù)據(jù)顯示,隨著時(shí)間的增加,誤檢率呈現(xiàn)為上升趨勢(shì);隨著節(jié)點(diǎn)密集度的增加,誤檢率呈現(xiàn)為下降趨勢(shì)。其中,在時(shí)間自變量下,現(xiàn)有方法誤檢率范圍為0.99%~3.01%,提出方法誤檢率范圍為0.59%~1.19%;在節(jié)點(diǎn)密集度自變量下,現(xiàn)有方法誤檢率范圍為1.17%~3.59%,提出方法誤檢率范圍為0.31%~2.56%。與現(xiàn)有方法相比較,提出方法異常節(jié)點(diǎn)誤檢率較低,充分證實(shí)提出方法具備更好的應(yīng)用性能。
為提升無(wú)線傳感器網(wǎng)絡(luò)運(yùn)行質(zhì)量,針對(duì)其中存在的異常節(jié)點(diǎn),本文應(yīng)用高階馬爾可夫鏈設(shè)計(jì)了全新的無(wú)線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)檢測(cè)方法。通過(guò)實(shí)驗(yàn)證明了本文方法極大地降低了異常節(jié)點(diǎn)誤檢率,為網(wǎng)絡(luò)安全提供更加有效的支撐,也為異常節(jié)點(diǎn)檢測(cè)研究提供一定的參考。