車旭民
(南京曉莊學(xué)院,江蘇 南京 211171)
隨著全球信息化進程的加快,網(wǎng)絡(luò)尤其是Internet作為現(xiàn)代信息社會最重要的基礎(chǔ)設(shè)施之一,已滲透和影響到社會的不同領(lǐng)域,成為社會進步和國家發(fā)展的基本需求,是未來知識經(jīng)濟的基礎(chǔ)載體和支撐環(huán)境。信息社會和正在逐漸形成的全球化知識經(jīng)濟形態(tài)對信息網(wǎng)絡(luò)管理提出了很高的要求,但Internet網(wǎng)絡(luò)在管理方面逐漸暴露出許多缺陷。[1-3]
本文就是在這樣的背景下,研究了網(wǎng)絡(luò)流量分析與預(yù)測原型。由于該模型采用了數(shù)據(jù)挖掘技術(shù),且系統(tǒng)能夠通過自學(xué)習(xí),對網(wǎng)絡(luò)流量數(shù)據(jù)進行分析,然后進行特征提取,擴大樣本知識庫,不斷提高流量采集的能力。它具有自適應(yīng)、分布式和面向網(wǎng)絡(luò)業(yè)務(wù)的特點,可以有效地解決現(xiàn)有的許多流量采集系統(tǒng)中的問題。
網(wǎng)絡(luò)流量數(shù)據(jù)采集方法主要分為基于網(wǎng)絡(luò)探針的網(wǎng)絡(luò)流量采集方法和基于網(wǎng)絡(luò)流(Netflow)的網(wǎng)絡(luò)流量采集方法。在不同的考察層面,兩者具有不同的特性。
當(dāng)前,廣為流行的網(wǎng)絡(luò)體系結(jié)構(gòu) OSI[4-6]結(jié)構(gòu)系統(tǒng),采用了7層的層次結(jié)構(gòu),每層各負責(zé)不同的通信功能,所有協(xié)議的分層結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)層次化結(jié)構(gòu)模型示意圖
按照圖1的參考模型,以及數(shù)據(jù)包的傳輸過程,可以構(gòu)造一個合適的數(shù)據(jù)結(jié)構(gòu),來保存需要的信息。以下根據(jù)圖2對協(xié)議網(wǎng)絡(luò)流量數(shù)據(jù)封裝和分解進行分析。
圖2 協(xié)議網(wǎng)絡(luò)流量數(shù)據(jù)封裝和分解示意圖
針對 k-means聚類算法[7-8]存在的問題,可以考慮采用分層聚合的形式避免這些問題。也即在初始化數(shù)據(jù)時,將數(shù)據(jù)集中的每個樣本設(shè)置為1個類;計算現(xiàn)有的所有類兩兩之間的距離(相似度),找出其中距離最近(相似度最大)的2個類;將最近的2個類合并為1個新類,總類數(shù)減1;若所有樣本數(shù)據(jù)合并為1個類或滿足所設(shè)定的終止條件時,結(jié)束算法;否則,返回計算現(xiàn)有的所有類兩兩之間的距離。
本文研究的k-means聚類改進算法的核心思路如下:
1)以分層聚合的方式,求出最合適的聚類個數(shù)k,并找出每個簇中心,如此便可獲取第2步劃分聚類的初始值。
2)利用k-means聚類算法進行迭代重定位運算來優(yōu)化改進,直到出現(xiàn)較好的聚類結(jié)果。
之所以利用此方法,是因為在分層聚合開始時,將每1個數(shù)據(jù)對象看作是1個簇,因此,對初始聚類中心無特殊要求,如此可以彌補k-means聚類算法對聚類中心的依賴。同時,通過k-means聚類算法的反復(fù)優(yōu)化又對分層聚合所存在的“不可逆轉(zhuǎn)”的缺陷進行了一定補償。
在實際的網(wǎng)絡(luò)流量分析與預(yù)測中,可以利用上述算法,依據(jù)首重宏觀,由面及點的原則,進行逐步深入的分析。所謂的逐步深入的分析,即采用從網(wǎng)絡(luò)到主機逐級細化的分析步驟來對流量數(shù)據(jù)進行剖析,從宏觀入手了解網(wǎng)絡(luò)上流量的變化趨勢開始,逐級細化到掌握主機上流量的狀態(tài)。該分析技術(shù)主要分為以下步驟[9-10]進行:
第1步,面向網(wǎng)絡(luò)的分析,該步驟屬于粗粒度的分析,即了解網(wǎng)絡(luò)上整體的、宏觀的流量分布狀況。首先對時間維上的流量數(shù)據(jù)進行分析,篩選出可能的異常時間點,每1條數(shù)據(jù)的屬性代表該時刻整個網(wǎng)絡(luò)上流量的分布情況,即以P維列向量來描述。本文選取源IP地址、目的IP地址、端口號作為表示流量的特征參數(shù)。通過獲取這些特征參數(shù)的信息熵,即可以用一個特征向量來表示當(dāng)前時刻的網(wǎng)絡(luò)流量狀態(tài)。通過該算法的分析,便可以靈活、準確地區(qū)分出網(wǎng)絡(luò)中存在的不同流量分布狀態(tài),從而對網(wǎng)絡(luò)的流量情況進行總體的、宏觀的把握。
第2步,面向主機的分析,該步驟屬于細粒度的分析,即了解網(wǎng)絡(luò)流量狀態(tài)在各個主機上的分布情況。針對第1步分析中分離出的可能存在于異常時段內(nèi)的數(shù)據(jù)點,進行進一步的分析。此時每1條數(shù)據(jù)代表該時刻該主機的網(wǎng)絡(luò)流量狀態(tài)情況,通過選取傳輸層協(xié)議(TCP、UDP)的分布情況、平均丟包率以及平均包大小等表征主機流量狀態(tài)的參數(shù)進行分析,便可以準確定位到可能存在異常的主機,從而為后續(xù)的策略制訂及所需采取的措施提供依據(jù)。
在進行分析之前,需要對網(wǎng)絡(luò)流量數(shù)據(jù)集Traffic進行標準化,即通過將屬性數(shù)據(jù)按比例縮放,使之落入一個小的特定區(qū)間。對于本文所使用的這種基于距離的算法,規(guī)范化可以幫助防止具有較大初始值域的屬性與具有較小初始值域的屬性相比(如,在一個局域監(jiān)測范圍內(nèi),網(wǎng)絡(luò)端口的數(shù)量要遠遠大于IP地址的數(shù)量),顯得權(quán)重過大。由于本文所選取流量特征熵的取值在[0,log2N]之間,這里的N或為IP地址數(shù),或為網(wǎng)絡(luò)端口數(shù),其最大最小值均為已知數(shù)據(jù),因此,可以采用最小—最大規(guī)范化的方法對原始數(shù)據(jù)進行線性變化。實驗結(jié)果如表1所示。
根據(jù)表1可以看出,改進后的算法能夠得到較高且穩(wěn)定的準確率,針對數(shù)據(jù)集 Iris、Wine、Traffic均可以得到接近最高準確率的聚類結(jié)果。產(chǎn)生這種結(jié)果的原因是改進后的算法首先利用分層聚類的方法來確定初始聚類中心,而分層聚類對于初始聚類中心是沒有要求的,因而產(chǎn)生的初始聚類中心比較符合數(shù)據(jù)實際分布,也就更適用于對實際數(shù)據(jù)的聚類。
令k為改進的k-means聚類算法的輸入?yún)?shù),其含義為該算法分割并計算網(wǎng)絡(luò)流量數(shù)據(jù)集后輸出的聚類的數(shù)量。網(wǎng)絡(luò)流量數(shù)據(jù)集由n個模式(Patterns)組成。在本文算法中,使k=3,在進行初始化時,根據(jù)k隨機地從n個模式{i1,i2,…,in}中找出 k 個原型(Protypes){W1,W2,W3,…,Wk},故:
初始化{W1,W2,W3,…,Wk},其中,Wj=ii,j∈{1,2,…,k},i∈{1,2,…,n}
使每個聚類Ci與原型Wj對應(yīng)
Repeat
For每一個輸入向量 ii,其中 ii屬于{1,2,…,n}do
將ii分配給最近的原型Wj所屬的聚類Cj。即:
For每一個聚類 Cj,其中 j屬于{1,2,…,k}do
將原型更新為當(dāng)前的Cj中所有樣本的質(zhì)心點,并計算錯誤函數(shù)
Until E不再明顯地改變或者聚類的成員不再變化
End
其中Cj是第jth個聚類,其值是輸入模式互不相交的子集。
錯誤函數(shù)確定聚類的質(zhì)量。如何選擇恰當(dāng)?shù)膋值,通常來說是一個比較困難的問題。一般來說,k值的選擇和問題域有關(guān),用戶需選擇不同的k值進行實驗。設(shè)有n個模式,每1個模式的維數(shù)為d,則1個直接k-means改進算法的每1個循環(huán)的計算代價可以分解為以下幾部分:
1)以上算法中的第1個For循環(huán)所需的時間復(fù)雜性。
2)計算質(zhì)心點的時間復(fù)雜性。
3)計算錯誤函數(shù)的時間復(fù)雜性。
循環(huán)的次數(shù)與輸入模式的數(shù)量及輸入數(shù)據(jù)有關(guān),可以從幾次到上千次不等。故,k-means改進算法的時間復(fù)雜性可以精確地計算出來,這對數(shù)據(jù)挖掘應(yīng)用于網(wǎng)絡(luò)流量數(shù)據(jù)大量的模式向量來說尤其重要。
利用k-means改進算法,把采集到的網(wǎng)絡(luò)流量數(shù)據(jù)進行聚類,最終生成如下屬性,如表2所示。
表2 網(wǎng)絡(luò)流量數(shù)據(jù)分流后的屬性表
改進的k-means算法相比經(jīng)典的k-means算法在時間復(fù)雜度和聚類準確率上均具有較大的優(yōu)勢,對于網(wǎng)絡(luò)流量數(shù)據(jù)大量的模式向量,k-means改進算法的時間復(fù)雜性可以精確地計算出來,通過仿真實驗表明,該算法達到實際應(yīng)用需求。
[1]何榮毅.網(wǎng)絡(luò)流量監(jiān)測管理系統(tǒng)的研究與實現(xiàn)[J].硅谷,2008,4(9):12 -14.
[2]周小勇,胡寧,向楊蕊,等.基于數(shù)據(jù)流的實時網(wǎng)絡(luò)流量分析系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應(yīng)用研究,2007,8(10):34 -36.
[3]程斌,魏國強,何光營.基于應(yīng)用層的校園網(wǎng)網(wǎng)絡(luò)流量監(jiān)測與分析[J].上海電力學(xué)院學(xué)報,2010,9(1):89 -91.
[4]劉穎秋,李巍,李云春.網(wǎng)絡(luò)流量分類與應(yīng)用識別的研究[J].計算機應(yīng)用研究,2008,12(5):39 -42.
[5]匡琳.P2P網(wǎng)絡(luò)流量監(jiān)控技術(shù)探討[J].科技廣場,2008,7(12):45-48.
[8]周宏.校園網(wǎng)上netflow流量監(jiān)控分析系統(tǒng)的設(shè)計與實現(xiàn)[J].西南民族大學(xué)學(xué)報:自然科學(xué)版,2005,7(3):22-25.
[9]周向軍.校園網(wǎng)流量識別與控制系統(tǒng)的建設(shè)[J].電腦知識與技術(shù),2009,8(14):70 -72 .
[10]黃茹芬.校園網(wǎng)流量測試與分析[J].福建電腦,2006,32(11):90-92.