(中共四川省委黨校 四川行政學(xué)院,四川 成都 610072)
計(jì)算機(jī)網(wǎng)絡(luò)可以實(shí)現(xiàn)高效的信息共享、信息分發(fā)等服務(wù),在人類(lèi)社會(huì)日益依賴(lài)計(jì)算機(jī)網(wǎng)絡(luò)的背景下,如果計(jì)算機(jī)網(wǎng)絡(luò)發(fā)生故障很可能造成嚴(yán)重的損失,而計(jì)算機(jī)網(wǎng)絡(luò)智能診斷方法具有強(qiáng)大的魯棒性和容錯(cuò)能力,能夠在不確定或未知的系統(tǒng)中通過(guò)自主學(xué)習(xí)處理定量和定性信息,同時(shí)可以很好地適應(yīng)計(jì)算機(jī)網(wǎng)絡(luò)的各種動(dòng)態(tài)變化[1]?;谏鲜鰞?yōu)點(diǎn)智能診斷技術(shù)已被廣泛應(yīng)用于診斷計(jì)算機(jī)網(wǎng)絡(luò)故障,并獲得了一定的成果。
計(jì)算機(jī)網(wǎng)絡(luò)智能故障診斷技術(shù)主要涉及模糊推理和遺傳算法、人工神經(jīng)網(wǎng)絡(luò)、專(zhuān)家系統(tǒng)、人工免疫算法等理論和方法。
基于人工神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)故障診斷過(guò)程主要包括以下幾個(gè)步驟:第一步,預(yù)處理采集到的故障數(shù)據(jù),篩選車(chē)真正需要的數(shù)據(jù),然后通過(guò)約簡(jiǎn)方法去掉數(shù)據(jù)中的不必要的冗余信息點(diǎn)。第二步,使用訓(xùn)練樣本集訓(xùn)練神經(jīng)網(wǎng)絡(luò),訓(xùn)練成熟后可以確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)(中間層的傳遞函數(shù)、神經(jīng)元數(shù)目)和參數(shù)(神經(jīng)元之間的連接權(quán)值和閥值)[2],此時(shí)借助測(cè)試樣本集測(cè)試神經(jīng)網(wǎng)絡(luò),如果故障診斷的準(zhǔn)確率在整個(gè)測(cè)試過(guò)程中未達(dá)到預(yù)期,則需要再次進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
模糊推理的過(guò)程是利用模糊邏輯輸入具體信息后最終輸出信息。第一步,建立知識(shí)庫(kù),這一步需要充分利用專(zhuān)家系統(tǒng)大致描述故障和障礙現(xiàn)象以及故障現(xiàn)象與故障現(xiàn)象之間的關(guān)聯(lián)。第二步,通過(guò)數(shù)據(jù)挖掘、專(zhuān)家定制和神經(jīng)網(wǎng)絡(luò)技術(shù)創(chuàng)建模糊規(guī)則。第三步,使用模糊推理機(jī)查找故障位置及其類(lèi)型。
支持向量機(jī)屬于機(jī)器學(xué)習(xí)算法,泛化能力很強(qiáng)。相較于其他智能診斷方法,基于支持向量機(jī)的網(wǎng)絡(luò)故障診斷法面對(duì)小樣本、非線(xiàn)性、高維模式識(shí)別等問(wèn)題具有明顯的優(yōu)勢(shì),適用于圖像處理、模式識(shí)別、數(shù)據(jù)分析[3]。具體診斷步驟如下:第一步,獲取網(wǎng)絡(luò)狀態(tài)并約簡(jiǎn),然后將特征數(shù)據(jù)分為訓(xùn)練樣本集、測(cè)試樣本集。第二步,選擇支持向量機(jī)初始參數(shù),包含內(nèi)核函數(shù)參數(shù)、懲罰參數(shù)。第三步,借助訓(xùn)練樣本集來(lái)訓(xùn)練支持向量機(jī)以獲得最佳分類(lèi)超平面。第四步,使用測(cè)試樣本集檢驗(yàn)網(wǎng)絡(luò)故障診斷有效性。如診斷準(zhǔn)確率不能滿(mǎn)足要求,則需要增加樣本訓(xùn)練集中的樣本,重新訓(xùn)練支持向量機(jī)。第五步,如診斷準(zhǔn)確率符合要求,則進(jìn)入正式的在線(xiàn)故障診斷階段。計(jì)算機(jī)網(wǎng)絡(luò)故障診斷是一個(gè)非常有代表性的小樣本問(wèn)題,而支持向量機(jī)作為現(xiàn)階段解決小樣本問(wèn)題的最理想的算法在診斷網(wǎng)絡(luò)故障時(shí)可以獲得非常理想的效果。
隨著新的網(wǎng)絡(luò)應(yīng)用程序的不斷出現(xiàn)以及配置方法的多樣化,計(jì)算機(jī)網(wǎng)絡(luò)故障診斷難度不斷提升。對(duì)于計(jì)算機(jī)網(wǎng)絡(luò)故障診斷來(lái)說(shuō),異常檢測(cè)技術(shù)非常重要。異常檢測(cè)技術(shù)的基本步驟是:首先,需要從檢測(cè)源中提取一些相關(guān)量。即從大量的網(wǎng)絡(luò)數(shù)據(jù)中提取出相關(guān)量展開(kāi)統(tǒng)計(jì),以構(gòu)建特征數(shù)據(jù)體系。如果網(wǎng)絡(luò)中的行為數(shù)據(jù)與事先建立的特征數(shù)據(jù)之間的偏差超過(guò)某個(gè)數(shù)值,則可以判定計(jì)算機(jī)網(wǎng)絡(luò)發(fā)生了故障,這樣一來(lái),計(jì)算機(jī)網(wǎng)絡(luò)診斷問(wèn)題的關(guān)鍵就是模式識(shí)別問(wèn)題,通過(guò)機(jī)器學(xué)習(xí)方式解決解決網(wǎng)絡(luò)故障問(wèn)題。在樣本足夠多的前提下研究了傳統(tǒng)的機(jī)器學(xué)習(xí)算法可以獲得理想的效果。但是,在計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)又蝎@取的用于機(jī)器學(xué)習(xí)的數(shù)據(jù)和實(shí)際應(yīng)用中的檢測(cè)數(shù)據(jù)相比顯然是一個(gè)很小樣本問(wèn)題,在小樣本情況下運(yùn)用傳統(tǒng)的機(jī)器學(xué)習(xí)算法識(shí)別網(wǎng)絡(luò)故障存在兩個(gè)問(wèn)題:①因?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序不斷出現(xiàn)以及持續(xù)更新,目前無(wú)法找出能表征所有應(yīng)用程序?qū)庸收系暮瘮?shù)[4]。②除了用來(lái)通信數(shù)據(jù)流外,計(jì)算機(jī)網(wǎng)絡(luò)還包含很多用來(lái)糾錯(cuò)、控制的數(shù)據(jù)流以及部分格式錯(cuò)誤的數(shù)據(jù)包。上述噪聲數(shù)據(jù)可能會(huì)導(dǎo)致目標(biāo)函數(shù)無(wú)法正確映射訓(xùn)練數(shù)據(jù)。
基于上述問(wèn)題,雖然人工神經(jīng)網(wǎng)絡(luò)技術(shù)在網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層可以獲得理想的應(yīng)用效果,但在計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)訜o(wú)法充分發(fā)揮作用。例如,網(wǎng)絡(luò)結(jié)構(gòu)如何確定、過(guò)度訓(xùn)練、過(guò)度學(xué)習(xí)、訓(xùn)練不足、局部極小點(diǎn)問(wèn)題。針對(duì)這些問(wèn)題,弗拉基米爾·N·瓦普尼克(Vladimir N Vapnik)提出了統(tǒng)計(jì)學(xué)習(xí)理論(SLT),基于理論構(gòu)建比較完善的用于小樣本的學(xué)統(tǒng)計(jì)體系,并開(kāi)發(fā)出一個(gè)新模型——支持向量機(jī)(SVM)[5],有效地控制機(jī)器學(xué)習(xí)的復(fù)雜程度,顯著提升學(xué)習(xí)機(jī)器的推廣性,解決了“維數(shù)災(zāi)難”問(wèn)題,通過(guò)內(nèi)積核函數(shù)講低維空間轉(zhuǎn)換為高維特征空間在高維特征空間中創(chuàng)建線(xiàn)性判別函數(shù),從而在最初的空間中實(shí)現(xiàn)非線(xiàn)性判別函數(shù)。理論上講,支持向量機(jī)(SVM)方法不僅保證了學(xué)習(xí)機(jī)器的推廣性,而且還解決了維數(shù)問(wèn)題。同時(shí),理論上支持向量機(jī)(SVM)方法無(wú)需考慮局部極小點(diǎn)問(wèn)題,因此,支持向量機(jī)(SVM)方法非常適合用于檢測(cè)計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)庸收稀?/p>
如圖1,基于支持向量機(jī)的計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)拥墓收蠙z測(cè)模型主要包括數(shù)據(jù)捕獲模塊、支持向量庫(kù)、支持向量機(jī)預(yù)測(cè)模塊、數(shù)據(jù)預(yù)處理模塊、支持向量機(jī)訓(xùn)練模塊構(gòu)成的事件分析器;事件數(shù)據(jù)庫(kù);輸出和響應(yīng)模塊[6]。
模型基本處理流程:①數(shù)據(jù)捕獲模塊采集計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用層數(shù)據(jù),對(duì)網(wǎng)絡(luò)應(yīng)用層的記錄進(jìn)行分析,提取特征信息。②數(shù)據(jù)預(yù)處理模塊對(duì)網(wǎng)絡(luò)連接的特征信息進(jìn)行預(yù)處理,得到支持向量機(jī)的輸入向量格式。③如果處于支持向量機(jī)訓(xùn)練狀態(tài),則訓(xùn)練支持向量機(jī)并將訓(xùn)練結(jié)果存儲(chǔ)在支持向量庫(kù)中。當(dāng)處于支持向量機(jī)預(yù)測(cè)狀態(tài)時(shí),支持向量機(jī)預(yù)測(cè)模塊是輸入向量;預(yù)測(cè)結(jié)果存儲(chǔ)在事件數(shù)據(jù)庫(kù)中,并執(zhí)行響應(yīng)操作,如發(fā)出警報(bào),給出處理建議等。④數(shù)據(jù)預(yù)處理模塊對(duì)故障記錄執(zhí)行加權(quán)預(yù)處理用于支持向量機(jī)的輸入向量。借助訓(xùn)練樣本集進(jìn)行支持向量機(jī)訓(xùn)練,獲得的支持向量存儲(chǔ)在支持向量庫(kù)中。⑤基于支持向量庫(kù),由支持向量機(jī)檢測(cè)器處理輸入的測(cè)試樣本,獲得預(yù)測(cè)輸出值Y,數(shù)值為為1或-1,1表示網(wǎng)絡(luò)正常,-1表示網(wǎng)絡(luò)異常。⑥當(dāng)預(yù)測(cè)輸出值為-1時(shí)則判定計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用層出現(xiàn)故障。為了進(jìn)行檢測(cè)可以選擇一次上層網(wǎng)絡(luò)連接作為樣本,通過(guò)六元組(timestamp,srclP,dstlP,srcPort,dstPort,protocolType)表示一次上層網(wǎng)絡(luò)連接。timestamp代表一次上層網(wǎng)絡(luò)連接開(kāi)始的時(shí)間。對(duì)于單個(gè)數(shù)據(jù)包將發(fā)送該數(shù)據(jù)包的時(shí)間作為timestamp。如果是連續(xù)的數(shù)據(jù)包序列,則網(wǎng)絡(luò)連接發(fā)起時(shí)首個(gè)數(shù)據(jù)包發(fā)送的時(shí)間作為timestamp,其數(shù)值可精確到微秒級(jí)別。srcIP、srcPort分別代表源主機(jī)的地址和端口號(hào),而dstlP、dsttPort分別代表目標(biāo)主機(jī)的地址和端口號(hào)。將輸入空間定義為M,其代表所有網(wǎng)絡(luò)連接的集合[7]。假設(shè)每個(gè)網(wǎng)絡(luò)連接有x個(gè)特征信息,則M∈Rn。將N定義為輸出域,一維向量m用于表示網(wǎng)絡(luò)連接m={m1,m1,...mx},其中mi={1,2,....x}代表樣本m的第i個(gè)特征值。
綜上,面對(duì)越來(lái)越負(fù)責(zé)的計(jì)算機(jī)網(wǎng)絡(luò)以及不斷變化的計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序?qū)?,傳統(tǒng)的基于機(jī)器學(xué)習(xí)算法的網(wǎng)絡(luò)故障診斷方法存在不足。因此,為了準(zhǔn)確有效地診斷計(jì)算機(jī)網(wǎng)絡(luò)故障問(wèn)題有必要在了解常用解網(wǎng)絡(luò)故障診斷方法的基礎(chǔ)上探討更加高效的故障檢測(cè)模型。