摘要: 首先介紹了網絡流量分析的不同層次及機器學習領域的相關知識,分析了采用端口號映射及有效負載分析的方法進行流量分類與應用識別存在的問題;然后從網絡流量的統計特征出發,重點介紹了機器學習中聚類和分類的方法在流量分類的應用和問題;最后基于聚類和分類在流量分類中的效用,指出了未來的研究趨勢。
關鍵詞:流量分類;應用識別;機器學習;無監督聚類;有監督分類
中圖分類號:TP393.07文獻標志碼:A
文章編號:1001-3695(2008)05-1492-04
目前,基于TCP/IP技術的Internet正向縱深方向發展。一方面,新一代的基礎設施已經或正在部署,新的技術不斷發展,新的應用模式和應用需求不斷涌現;另一方面,Internet也在其飛速發展的過程中,向人們提出了一系列挑戰,其中的關鍵問題在于:如何更好地提供服務質量保證,如何來避免異常流量對網絡的影響。
與Internet的飛速發展相比,對網絡行為的研究比較少。與一般的自然系統相比,Internet不僅具有多變、異質、動態等特點,還具有很強的社會性。廣大用戶的行為對于Internet具有重要影響。如何認識這樣一個系統的統計特性和動力學性質,認識Internet使用者的行為特征,正日益引起人們的興趣。另一方面,對Internet及其用戶行為的研究,也是網絡的規劃、設計和管理的重要依據。網絡一直處在持續的發展變化過程中,Internet 中存在大量的應用,每個應用都有自己的流量行為特征并且新的應用還在不斷涌現。如何對這些流量進行分類并識別新的應用是一個值得研究的問題。另外, Internet的飛速發展以及社會對其依賴的加深,對網絡管理也提出了更高的要求。政府、工業部門和私人用戶使用網絡的各種應用,每天都會產生成千上萬的網絡應用流,具有惡意的攻擊很容易在海量的網絡流量中隱藏自己,從而達到攻擊的目的。因此,如何給廣大Internet使用者提供一個安全、可靠和高效的使用環境,如何發現并避免網絡的異常流量,是網絡管理需要解決的問題。
為解決上述問題,網絡流量分析應運而生[1]。幾乎所有與網絡相關的活動都是與網絡流量聯系在一起的。網絡流量是記錄和反映網絡及其用戶活動的重要載體。網絡流量的行為是網絡行為的重要組成部分,通過對網絡流量的統計分析,人們可以間接掌握網絡的統計行為。
隨著網絡中各種應用的不斷出現,除了傳統的HTTP、E-mail、Web、FTP等應用外,目前P2P的應用占有統治地位。因此對網絡流量進行分類并識別應用將是一項很有意義的工作,它有助于趨勢分析、動態訪問控制。并且識別不同應用類型的流量也是網絡安全和流量工程的重要依據。不同應用類型的網絡流量的統計,反映了用戶使用網絡的行為,從而幫助網絡管理員在必要的時候控制用戶的流量。并且對流量進行分類也是發現入侵或惡意攻擊的重要方法,同時可以識別影響網絡資源分布的新應用的出現。
1流量分析的層次及相關算法
1.1不同層面的流量分析
目前對網絡流量分析的研究,主要在以下幾個不同的粒度或者說層面上展開[1,2]:
a)Bit-level 的流量分析
主要關注網絡流量的數量特征,如網絡線路的傳輸速率以及吞吐率的變化等。
b)Packet-level的流量分析
主要關注IP包(packet)的到達過程、延遲和丟包率等。C. Fraleigh等人[3]采用被動的監控系統捕獲packet-level的流量,研究骨干網在流量負載、TCP流的雙向傳送時間、包的無序比率和包的延遲等方面的變化。
c)Flow-level 的流量分析
Flow是一個相對較為寬松的定義,其劃分的主要依據是地址和應用協議。例如,C. Barakat等人[4]給出的定義是一個由源 IP 地址和端口、目標 IP 地址和端口以及應用協議組成的五元組(源 IP 地址、源端口、目標 IP 地址、目標端口、應用協議)。這方面的研究主要關注 Flow的到達過程、達到間隔以及其局部特性。
d)Stream-level 的流量分析
文獻[2]給出 stream 的定義是一個由源、目標 IP 地址以及應用協議組成的三元組(源 IP 地址、目標 IP 地址、應用協議)。其目的主要是在一個更粗的粒度上研究主干網的長期流量統計特性。
上述四個層面的研究,流量的粒度由小到大遞增,所關注的時間尺度也逐漸增大。在不同時間尺度上,網絡流量往往表現出不同的行為規律。例如,有研究指出:毫秒級的細時間粒度的網絡流量行為主要受網絡協議的影響;小時以上的粗時間粒度的網絡流量行為主要受外界因素的影響;而介于上述兩者之間的秒時間粒度上的網絡流量則表現出自相似性。通常,網絡設備(三層交換機、路由器等)本身提供了基于IP包頭的分析功能,負責網絡流數據的分析和整理,按照一定的條件和定義良好的數據格式向流采集器(flow collector)輸出數據,然后再用相關的軟件將采集到的網絡流數據進行整理、分析和客戶端展現。因此Flow-level的流量分析將成為趨勢。
1.2流量分類的相關算法
機器學習[5]是現代人工智能技術中的一個重要研究內容和方向,其主要研究是從觀測數據(樣本)出發尋找規律,并利用這些規律對未來數據或無法觀測的數據進行預測。機器學習的發展經歷了四個階段:學習機器的產生;學習理論基礎的創立;神經網絡的創立;統計學習理論。采用機器學習的方法進行流量分類是在入侵檢測的背景下提出的,其不斷獲取新的知識或技能,重新組織已有的知識結構,使之不斷改善自身性能的特性,使其成為網絡流量分類中廣泛采用的方法。
目前,用于流量分類的方法主要有機器學習中的聚類[6]和分類[7]。
1)聚類方法
聚類是根據數據之間的相似程度將數據劃分成不同的數據集合,使得這些數據集合內部對象之間相似度大,而數據集合之間的差別大。聚類分析是人類的一個重要行為,人類就是通過不斷改進意識中的聚類模式來識別各類事物的。聚類問題是無監督學習,它只根據數據內部的相似程度產生有意義的劃分。聚類分析既可以作為其他算法的預處理過程(這些算法對聚類處理后的數據進行分析),它又能夠作為一個獨立的工具獲取數據分布的情況,觀察各個簇的特點,然后集中對特定的某些簇作進一步分析。根據算法思想、發展階段及歷史影響,聚類方法通常可分為四大類,即劃分法、層次法、基于密度的方法和基于網格的方法。
劃分法根據給定的一個包含n個數據對象的數據庫,以及要生成的簇的數目k,將數據對象組織為k個劃分(k≤n),其中每個劃分代表一個簇。其代表算法有CLARANS[8]、K-means。層次法根據其分裂自底向上還是自頂向下形成,可以分為凝聚的和分裂的層次聚類。凝聚的層次聚類首先視每個對象為一個簇,然后根據某種原則合并原子簇,直到所有的對象都在一個簇中,或者某個終結條件被滿足。其代表算法有CURE[9]、ROCK[10]。分裂的層次聚類與凝聚的層次聚類思想正好相反,其代表算法有BIRCH[11]。基于密度的方法將數據分布的密度性質納入到聚類考慮之中,通過ε-鄰域和MinPts參數來區分核心點與邊緣點。其代表算法有DBSCAN[12]。基于網格的方法將空間量化為有限數目的單元,這些單元形成了網格結構,所有的聚類操作都在網格上進行。其代表方法有WaveCluster[13]和CLIQUE[14]。圖1表示了聚類算法的分類。
2)分類方法
分類是一種有監督的學習,其目的是根據數據集的特點構造一個分類函數或分類模型(也常稱做分類器)。該模型能將未知類別的樣本映射到給定類別中的某一個。它與聚類問題最大的不同就是:在聚類中,需要在訓練實例中找到其分類屬性;而在分類問題中,事先知道訓練樣例的分類屬性。數據分類是一個兩步的過程:
a)建立一個模型,描述預定的數據類或概念集。通過分析由屬性描述的數據庫元組來構造模型。
b)使用模型進行分類。首先評估模型(分類算法)的預測準確率。如果認為模型的準確率可以接受,就可用該模型對其他數據元組進行分類。
目前,分類模型的構造方法有決策樹、貝葉斯、關聯規則學習、神經網絡等。
決策樹是一種從無序、無規則的訓練樣本集中推出決策樹表示形式的分類規則的方法,其每個分支代表一個測試輸出,而每個葉節點代表類別。其代表方法有ID3[15]、C4.5[16]等。貝葉斯分類是一種利用概率統計知識進行分類的方法,可以預測一個未知類別的樣本所屬各類別的概率,并選擇其中可能性最大的一個類別作為該樣本的最終類別。其代表方法主要有Nave Bayes[17]。關聯規則分類的思想是先利用標準關聯規則挖掘算法挖掘有關的關聯規則,再基于該規則構造一個分類器。其代表方法有CBA(classification association rules)[18]。神經網絡就是一組相互連接的輸入/輸出單元。這些單元之間的每個連接都關聯一個權重。在學習階段,網絡通過調整權重來實現輸入樣本與其相應類別的對應。其代表算法有MIND[19]、GAC-RDB[20]。圖2為分類算法的分類。
2流量分類與應用識別的方法和技術
對網絡流量進行分類并識別應用是網絡管理任務的一項重要目標,如流量的優先權、流量策略、帶有診斷的監控等。目前,網絡應用的主要類型有HTTP、P2P、SMTP、POP3、Telnet、DNS、FTP等。當前所采用的流量分類的方法主要有:端口號映射、有效負載分析、機器學習。
2.1端口號映射法
傳統的流量分類方法依賴于將應用與其眾所周知的端口號(由IANA[21]指定)進行映射以識別不同的應用,如HTTP流量使用端口號80,FTP使用端口號21,并取得了相當大的成功。但是隨著P2P應用的出現,它采用動態的端口號,并時常采用HTTP和FTP協議的端口來偽裝自己,避免了被該方法檢測到其應用;另外,只有事先已知端口號的應用才能被識別出來,從而使這種基于端口號的流量分類的方法受到了阻礙。
2.2有效負載分析法
為了處理上述基于端口號的分類方法的弊端,又提出了基于有效負載分析的技術[22,23]。在這種方法中,通過分析包的有效負載來確定其是否包含已知應用的特殊簽名。研究表明,這些方法能夠準確地識別不同應用的流量甚至是P2P的流量。然而,有些P2P的應用如BitTorrent使用純文本密碼、可變長度的包和加密等令人困惑的方法來躲避這種技術的識別。另外,由于存在著如下問題:a)這種技術只能識別那些可以獲得簽名的流量,卻無法分類其他未知的流量;b)這種技術需要較高的處理和存儲能力;c)有效負載的分析會侵犯私密和安全性的考慮。因此,其發展也受到了一定的阻力。
2.3基于機器學習的方法
目前,采用機器學習的方法進行流量的分類受到了越來越多的關注。機器學習的過程通常由兩部分組成,即分類模型的建立和分類。首先采用訓練數據(樣本)建立分類模型;然后基于該模型產生一個分類器并對未知數據集進行分類。網絡流量分類中所采用的機器學習方法是在Flow-level的層次上展開研究的,它認為不同的應用具有不同的傳輸數據的模式,因此根據這些模式可以對流量進行分類。通常采用Flow的統計信息如IP包的平均大小、流的長度、IP包的總個數等描述流量的傳輸模式。
Moore[24]采用有監督的Nave Bayes分類方法進行流量分類與應用識別。筆者已經將網絡流量數據手動分類,確定了流量的具體應用類型,并將流量數據分成訓練集和測試集。為了評估NB方法的性能,每個數據集依次作為訓練集輸入到Nave Bayes分類器中,其他的數據集作為測試集進行評估,獲得的平均分類準確性超過了83%。Roughan采用最近鄰和線性判別分析的方法[25],連接持續時間和平均包的大小作為流量分類的特征向量,仍然采用Bayes的方法進行分類。然而只采用兩個屬性的統計信息并不能區分所有的應用類別,因此獲得的準確度很低。這些方法的關鍵點只在于針對給定類別的流量數據,如何提高分類器的準確度,而無法發現新的應用模式, 所以這類方法的應用有很大的局限性。
S. Zander等人[26]采用了autoclass的方法,并通過特征選取技術SFS來選取較優的流量屬性集,并評定不同的特征集對結果的影響。為了驗證其方法的有效性,使用了從不同的網絡位置收集的流量來進行評估,獲得的平均準確率為86.5%。然而該方法在選取數據時,排除了所有傳輸包的個數少于3的流,這在某種程度上也會提高其分類的準確性,并降低泛化能力。
J. Erman等人[27]采用無監督的方法Expectation Maximization(EM)來識別不同應用的網絡流量,并采用Total Number of Packets、Mean Packet Size(in each direction and combined)、Mean Data Packet Size、Flow Duration和Mean Inter-Arrival Time of Packets 這五個流量統計特征來標志每個連接。通過與Bayes的分類方法進行比較,獲得了更為準確的分類結果。然而該方法的缺點是訓練時間較長,在其后續的工作[13]采用了K-means和DBSCAN的聚類方法來對流量進行分類并識別應用。這兩種方法可以在較短的時間內構造出所需的模型,但是所獲得的模型在分類的準確度上有所下降,并且這兩種方法都要提前指定某些參數的值,當選取不當時,算法的性能會大幅度地下降。
L. Bernaille等人[28]并不根據上述的五元組的屬性來對網絡流量進行分類并識別應用,提出了采用每個TCP流的前五個數據包的大小來標志不同的應用,并盡可能早地識別出流量的應用類型,而不是等到傳輸結束后再確定其應用類型。文獻[28]將流量分類機制分為兩個階段,即離線學習和在線分類。離線學習階段采用K-Means方法對原始的流量進行劃分,并給出每個簇的描述和其所屬的應用類型;在線分類階段根據學習的知識確定新的流量所屬的應用類型。通過實驗評估,最高的準確率可達96.92%。但是該方法的局限性在于,如果數據包沒有按序傳輸,或者兩個應用的前五個數據包有著相同的大小時,其準確度會有大幅度的下降。這也是筆者提到的其方法面臨的挑戰。
基于以上分析,有監督的學習方法是在已知類別的網絡流量中進行訓練,根據已有的準確的類別來判斷其分類的準確性。這種方法無法發現新的應用模式,而只能在訓練數據集已有的應用類型的基礎上,對未知的流量進行分類。而無監督的方法就克服了有監督方法的劣勢,它只根據網絡流量的相似程度劃分成不同的簇,從而新的應用被劃分到不同的簇中而被識別出來,但是必須對該劃分結果形成分類器,才能對未知流量判斷其應用類型。目前的研究表明,采用兩階段的分析方法,即用聚類的方法進行離線學習和用分類的方法進行在線分類,將成為網絡流量分類與應用識別的重要發展方向。
3結束語
網絡流量作為網絡應用的一個重要特征,一直為研究者所關注。本文從網絡流量的微觀角度出發,根據不同的應用分析其流的特性,目的在于間接掌握網絡的統計行為,為網絡管理提供一個新思路。
本文概述了流量分析及機器學習的相關知識,簡要分析采用端口號映射、有效負載分析方法進行流量分類存在的問題,重點對機器學習的相關方法在流量分類中的應用進行了比較。
目前,機器學習的方法在網絡流量分類中的應用還處在發展階段,聚類分析無須事先知道流量的應用類別就能發現新的應用特性,引起了較為廣泛的關注。鑒于網絡流量本身具有的復雜性與動態性,對網絡流量進行分類與應用識別應更多地從以下幾方面考慮:
a)從原始流量中提取有意義的特征屬性。因為準確的特征選取是模型構建的基礎,只有選取的特征有效,才能對網絡流量進行有意義的劃分,它們決定了流量分類模型的有效性。
b)流量分類模型的構建與有效性。融合各種聚類、分類技術的思想,綜合利用不同算法的優點,采用兩階段的分析方法:用聚類的方法進行離線學習,用分類的方法進行在線分類,使得構建的流量分類與應用識別模型能夠在動態變化的網絡中進行主動學習,降低訓練時間,提高其泛化能力。
c)將人的指導信息引入模型構建過程。人的指導信息有助于分析不同應用的流量特征、選擇合適的流量分類算法,從而進一步提高流量分類模型的有效性。
參考文獻:
[1]何飛.基于網絡流量工程的CERNET主干網性能管理系統[D].北京:清華大學計算機科學與技術系,2001.
[2]HE Tao,ZHANG Hui,LI Zhi-chun.A methodology for analyzing backbone network traffic at stream-level[C]//Proc of Communication Technology Proceedings.2003:98-102.
[3]FRALEIGH C,MOON S,LYLES B,et al.Packet-level traffic measurements from the sprint IP backbone [J].IEEE Trans on Networks,2003,17(6): 6-16.
[4]BARAKAT C,THIRAN P,IANNACCONE G,et al.Modeling Internet backbone traffic at the flow level[J].IEEE Trans on Signal Processing Special Issue on Networking,2003,51(8):2111-2124.
[5]MITCHELL T. Machine learning[M].[S.1.]:McGraw Hill,1997.
[6]ANDRITSOS P.Data clustering techniques,Technical Report CSRG-443[R].2002.
[7]HAN J, KAMBER M.Data mining:concepts and techniques[M].San Francisco:Academic Press,2001.
[8]NG R T,HAN J,BOCCA J,et al.Efficient and effective clustering method for spatial data mining[C]//Proc of Int Conf Very Large Data Bases.San Francisco:Morgan Kaufmann,1994:144-155.
[9]GUHA S,RASTOGI R,SHIM K.CURE:an efficient clustering algorithm for large databases[C]//Proc of ACM SIGMOD Conference.New York:ACM Press,1998:73-84.
[10]GUHA S,RASTOGI R,SHIM K.ROCK:a robust clustering algorithm for categorical attributes[C]//Proc of the 15th ICDE.[S.1.]:IEEE Computer Society,1999:512-521.
[11]ZHANG T,RAMAKRISHNAN R,LIVNY M.Birch:an efficient data clustering method for very large databases[C]//Proc of ACM SIGMOD International Conference on Management of Data.New York:ACM Press,1996:103-114.
[12]ESTER M,KRIEGEL H P,SANDER J,et al.A density-based algorithm for discovering clusters in large spatial databases with noise[C]//Proc of the 2nd ACM SIGKDD.1996:226-231.
[13]SHEIKHOLESLAMI G,CHATTERJEE S,ZHANG A.WaveCluster:a multiresolution clustering approach for very large spatial databases[C]//Proc of the 24th International Conference on Very Large Data Bases.San Francisco: Morgan Kaufmann,1998:428-439.
[14]AGRAWAL R,GEHRKE J,GUNOPULOS D,et al.Automatic subspace clustering of high dimensional data for data mining applications[C]//Proc ofSIGMOD’98.New York:ACM Press,1998:94-105.
[15]QUINLAN J R.Induction of decision trees[J].Machine Learning,1986,1(1):81-106.
[16]QUINLAN J R.C4.5:programs for machine learning [M]. California: Morgan Kaufmann, 1993.
[17]FRIEDMAN N,GEIGER D,GOLDSZMIDT M.Bayesian network classifier[J].Machine Learning,1997,29(1):131-163.
[18]LIU Bing,HSU W,MA Yi-ming. Integrating classification and association rule mining[C]//Proc of the 4th International Conference on Knowledge Discovery and Data Mining.New York:AAAI Press,1998:80-86.
[19]WANG Min, IYER B,VITTER J S.Scalable mining for classification rules in relational databases[C]//Proc ofIDEAS’98.UK:IEEE Computer Society,1998:58-67.
[20]LU Hong-jun, LIU Hong-yan.Decision tables:scalable calssification exploring RDBMS capabilities[C]//Proc fo the 26th International Conference on Very Large Databases.2000:373-384.
[21]IANA.Internet assigned numbers authority[EB/OL].http://www.iana.org/assignments/port-numbers.
[22]DEWS C,WICHMANN A,FELDMANN A.An analysis of Internet chat systems[C]//Proc ofIMC’03.New York:ACM Press,2003:51-64.
[23]HAFFNER P,SEN S,SPATSCHECK O,et al.ACAS:automated construction of application signatures[C]//Proc of SIGCOMM’05 MineNet Workshop.New York:ACM Press,2005:197-202.
[24]MOORE A,ZUEV D.Internet traffic classification using Bayesian analysis techniques[C]//Proc of SIGMETRICS’05.New York:ACM Press,2005:50-60.
[25]ROUGHAN M,SEN S,SPATSCHECK O,et al.Class of service mapping for QoS:a statistical signature-based approach to IP traffic classification[C]//Proc of IMC’04.Italy:Taormina,2004:5-27.
[26]ZANDER S,NGUYEN H,ARMITAGE G.Automated traffic classification and application identification using machine learning[C]//Proc of the 30th IEEE Conference on Local Computer Networks Anniversary.Washington DC:IEEE Computer Society,2005:250-257.
[27]ERMAN J,ARLITT M,ANIRBAN M.Traffic classification using clustering algorithms[C]//Proc of SIGCOMM Workshop on Mining Network Data.New York:ACM Press,2006:11-15.
[28]BERNAILLE L,TEIXEIRA R,AKODJENOU I.Traffic classification on the fly[C]//Proc of ACM SIGCOMM Computer Communication Review.New York:ACM Press,2006:23-26.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”