識別流量數據的應用類型的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種識別流量數據的應用類型的方法及系統(tǒng),所述方法包括:通過粗粒度的分類方法識別流量數據的應用類型;若不能識別出所述流量數據的應用類型,則通過細粒度的分類方法識別所述流量數據的應用類型。通過采用本發(fā)明可以兼顧效率與精確度的識別流量數據的應用類型。
【專利說明】識別流量數據的應用類型的方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及通信領域,更為具體而言,涉及識別流量數據的應用類型的方法及系統(tǒng)。
【背景技術】
[0002]在現有的技術當中,識別網絡流量的類別的方法主要包括:基于端口的分類技術、基于載荷的分類技術、基于行為的分類技術、基于流量統(tǒng)計特征與機器學習的分類技術以及基于流量傳播圖的分類技術。然而,對于基于端口的分類方法雖然效率高,但精度差;基于載荷的分類方法只能識別明文流量,而不能處理加密流量,并且不適合高度網絡;基于機器學習的分類方法雖然具有較高的識別率并能識別加密流量,但是其在線識別時存在低魯棒性的問題;基于行為和流量傳播圖的分類方法目前僅限于離線識別,對于在線識別難度很大。因此,僅僅使用單一的分類方法無法兼顧效率與精確度。
【發(fā)明內容】
[0003]為有效地解決上述技術問題,本發(fā)明提供了一種識別流量數據的應用類型的方法及系統(tǒng)。
[0004]一方面,本發(fā)明的實施方式提供了一種識別流量數據的應用類型的方法,所述方法包括:
[0005]通過粗粒度的分類方法識別流量數據的應用類型;
[0006]若不能識別出所述流量數據的應用類型,則通過細粒度的分類方法識別所述流量數據的應用類型。
[0007]另一方面,本發(fā)明的實施方式提供了一種識別流量數據的應用類型的系統(tǒng),所述系統(tǒng)包括:
[0008]粗粒度識別模塊,用于通過粗粒度的分類方法識別流量數據的應用類型;
[0009]細粒度識別模塊,用于當所述粗粒度識別模塊不能識別出所述流量數據的應用類型時,通過細粒度的分類方法識別所述流量數據的應用類型。
[0010]實施本發(fā)明提供的識別流量數據的應用類型的方法及系統(tǒng)可以兼顧效率與精確度的識別流量數據的應用類型。
【專利附圖】
【附圖說明】
[0011]圖1是根據本發(fā)明實施方式的識別流量數據的應用類型的方法的流程圖;
[0012]圖2示出了圖1所示的步驟S120的一種實施方式;
[0013]圖3是根據本發(fā)明實施方式的識別流量數據的應用類型的方法的另一種實施方式;
[0014]圖4示出了本發(fā)明實施方式的數據流的一種實施方式;
[0015]圖5是根據本發(fā)明實施方式的識別流量數據的應用類型的系統(tǒng)的結構示意圖;
[0016]圖6示出了圖5所示的細粒度識別模塊120的一種實施方式;
[0017]圖7是根據本發(fā)明實施方式的識別流量數據的應用類型的系統(tǒng)的另一種實施方式。
【具體實施方式】
[0018]為使本發(fā)明的實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進一步地詳細描述。
[0019]圖1是根據本發(fā)明實施方式的識別流量數據的應用類型的方法的流程圖。參見圖1,所述方法包括:
[0020]SllO:通過粗粒度的分類方法識別流量數據的應用類型,若不能識別出所述流量數據的應用類型,則執(zhí)行S120;
[0021]其中,在本發(fā)明的實施方式中,該步驟SllO可以包括,但不限于:通過基于端口號的分類方法識別流量數據的應用類型。
[0022]S120:通過細粒度的分類方法識別所述流量數據的應用類型。
[0023]在本發(fā)明的一種優(yōu)選的實施方式中,所述方法還可以包括:若通過所述細粒度的分類方法識別出所述流量數據的應用類型,則根據識別結果提取所述流量數據的端口號以及應用類型的對應關系;并將所述提取出的端口號以及應用類型的對應關系反饋至所述基于端口號的分類方法。從而提高所述基于端口號的分類方法的識別精度。
[0024]如圖2所示,在本發(fā)明的實施方式中,該步驟S120可以包括:
[0025]S121:通過基于載荷的分類方法識別所述流量數據的應用類型,若通過所述基于載荷的分類方法識別出所述流量數據的應用類型,則執(zhí)行S122,若通過所述基于載荷的分類方法不能識別出所述流量數據的應用類型,則執(zhí)行S123 ;
[0026]其中,所述基于載荷的分類方法可以包括,但不限于:基于精確特征的方法以及基于正則表達式的方法。
[0027]S122:判斷所述應用類型是否為加密協(xié)議(例如SSL(Secure Sockets Layer,安全套接層)/SSH(Secure Shell,安全外殼協(xié)議)等),若是,則執(zhí)行S123 ;
[0028]S123:通過機器學習的分類方法識別所述流量數據的應用類型。從而提高了識別應用類型的精確度。
[0029]如圖3所示,在本發(fā)明的一種優(yōu)選的實施方式中,所述方法可以包括:
[0030]S110’:通過基于端口號的分類方法識別流量數據的應用類型,若不能識別出所述流量數據的應用類型,則執(zhí)行S121’ ;
[0031]S121’至S123’:同上述S121至S123,在此不再贅述;
[0032]S130’:通過基于行為和流量傳播圖的方法對所述流量數據進行識別,若通過該基于行為和流量傳播圖的方法識別出所述流量數據的應用類型,則執(zhí)行S140’ ;
[0033]S140’:提取所述流量數據的端口號、載荷、流特征;
[0034]S150’:將所述提取出的端口號、載荷、流特征分別反饋給所述基于端口號的分類方法、基于載荷的分類方法、機器學習的分類方法。從而通過該基于行為和流量傳播圖的方法的反饋,能夠提高所述基于端口號的分類方法、基于載荷的分類方法、機器學習的分類方法的識別精度。
[0035]同時,在本發(fā)明的實施方式中,可以以會話為單位對流量數據進行識別,因此,所述方法在執(zhí)行步驟Si 10’前還可以包括:
[0036]篩選傳輸層協(xié)議為TCP (Transmiss1n Control Protocol,傳輸控制協(xié)議)或UDP(User Datagram Protocol,用戶數據包協(xié)議)的流量數據;
[0037]根據五元組將所述篩選出的流量數據整合為會話,其中所述會話包括含有相同的五元組的流量數據;
[0038]根據所述會話的五元組建立對應的哈希值;
[0039]提取所述會話的端口號、載荷、流特征;
[0040]將所述提取的端口號、載荷、流特征與所述哈希值對應地存儲到流表中。
[0041]以下結合具體的例子對本發(fā)明的實施方式進行說明。
[0042]如圖4所示,本發(fā)明的實施方式涉及鏈路層、網絡層、傳輸層以及應用層。其中從鏈路層到傳輸層的過程為:按照鏈路層協(xié)議號過濾以太網數據包,其他類型的數據包指進行基礎的統(tǒng)計;按照網絡層協(xié)議號過濾IP (Internet Protocol,網絡之間互連的協(xié)議)(v4, v6)數據包,其它類型的數據只進行基礎的統(tǒng)計;按照傳輸層協(xié)議號過濾TCP和UDP數據包,其它類型的數據只進行基礎的統(tǒng)計;針對TCP和UDP數據包,利用五元組(源IP、目的IP、源端口、目的端口、傳輸層協(xié)議)創(chuàng)建哈希值,該哈希值映射相同五元組的對應會話(會話指在一定的持續(xù)時間內包含相同五元組的所有數據包的集合);提取會話的端口號、載荷以及流特征,并與哈希值對應地存儲在流表中。針對每一次會話,采用混合的分類方法識別應用類型,具體地可以通過以下方式實現:
[0043]線上階段:
[0044]1、根據端口號與應用的對應關系表進行粗粒度識別(通過端口號與應用的對應關系能夠快速地識別出大部分流量數據的應用類型),若能夠識別,則進入步驟7,否則進入步驟2 ;
[0045]2、采用基于精確特征的方法進行細識別,若能夠識別,則進入步驟4,否則進入步驟3;
[0046]3、采用基于正則表達式的方法進行細識別,若能夠識別,則進入步驟4,否則進入步驟5 ;
[0047]4、如果識別結果為SSL/SSH,則進入步驟5,否則進入步驟7 ;
[0048]5、采用機器學習的方法識別加密流量,若能夠識別則進入步驟6,否則進行步驟7 ;
[0049]線下階段:
[0050]6、根據識別結果提取端口號與應用的對應關系,反饋給端口與應用的對應關系表進行特征豐富,進入步驟8;
[0051]7、采用基于行為和流量傳播圖的方法對流量進行識別,如果能夠識別則提取相應的端口特征、載荷特征和流特征并反饋給線上分類方法,否則進入步驟8 ;從而通過線下階段基于行為和流量傳播圖的方法的反饋,能夠提高線上階段的各分類方法的識別精度。
[0052]8、針對識別的結果進行統(tǒng)計,統(tǒng)計結果存儲到RRD (Round Robin Data, 一種存儲數據的方式)數據文件中,可供周期性的展示。
[0053]上述充分結合了已有的傳統(tǒng)分類方法的優(yōu)勢,能夠實現在高度鏈路下的快速、精確地識別流量數據的應用類型。
[0054]圖5是根據本發(fā)明實施方式的識別流量數據的應用類型的系統(tǒng)100的結構示意圖,參見圖5,所述系統(tǒng)100包括:
[0055]粗粒度識別模塊110,用于通過粗粒度的分類方法識別流量數據的應用類型;
[0056]其中,在本發(fā)明的實施方式中,該粗粒度識別模塊110可以包括,但不限于:端口號識別單元,用于通過基于端口號的分類方法識別流量數據的應用類型。
[0057]細粒度識別模塊120,用于當所述粗粒度識別模塊110不能識別出所述流量數據的應用類型時,通過細粒度的分類方法識別所述流量數據的應用類型。
[0058]在本發(fā)明的一種優(yōu)選的實施方式中,該系統(tǒng)100還可以包括:
[0059]第一提取模塊,用于當所述細粒度識別模塊識別出所述流量數據的應用類型時,根據所述細粒度識別模塊的識別結果提取所述流量數據的端口號以及應用類型的對應關系;
[0060]第一反饋模塊,用于將所述第一提取模塊所提取出的端口號以及應用類型的對應關系反饋至所述基于端口號的分類方法。
[0061]如圖6所示,在本發(fā)明的實施方式中,該細粒度識別模塊120可以包括:
[0062]載荷識別單元121,用于通過基于載荷的分類方法識別所述流量數據的應用類型,其中,所述基于載荷的分類方法例如可以包括:基于精確特征的方法以及基于正則表達式的方法。
[0063]機器學習識別單元122,用于當所述載荷識別單元121不能識別出所述流量數據的應用類型時,通過機器學習的分類方法識別所述流量數據的應用類型。
[0064]判斷單元123,用于當所述載荷識別單元121識別出所述流量數據的應用類型時,判斷所述應用類型是否為加密協(xié)議。
[0065]圖7是根據本發(fā)明實施方式的識別流量數據的應用類型的系統(tǒng)100’的另一種實施方式。參見圖7,該系統(tǒng)100’包括:
[0066]粗粒度識別模塊110’,同上所述的粗粒度識別模塊110,在此不再贅述,其中該粗粒度識別模塊110’包括:端口號識別單元111’,用于通過基于端口號的分類方法識別流量數據的應用類型。
[0067]細粒度識別模塊120’,同上所述的粗粒度識別模塊120,在此不再贅述,其中該細粒度識別模塊120’包括:載荷識別單元121’、機器學習識別單元122’、判斷單元123’,分別同上所述的載荷識別單元121、機器學習識別單元122、判斷單元123,在此不再贅述;
[0068]行為及流量傳播圖模塊130’,用于通過基于行為和流量傳播圖的方法對所述流量數據進行識別;
[0069]第二提取模塊140’,用于當所述行為及流量傳播圖模塊130’識別出所述流量數據的應用類型時,提取所述流量數據的端口號、載荷、流特征;
[0070]第二反饋模塊150’,用于將所述第二提取模塊140’所提取出的端口號、載荷、流特征分別反饋給所述基于端口號的分類方法、基于載荷的分類方法、機器學習的分類方法。
[0071]同時,在本發(fā)明的實施方式中,可以以會話為單位對流量數據進行識別,因此,所述系統(tǒng)100’還可以包括以下模塊:
[0072]篩選模塊,用于篩選傳輸層協(xié)議為TCP或UDP的流量數據;
[0073]整合模塊,用于根據五元組將所述篩選模塊所篩選出的流量數據整合為會話,其中所述會話包括含有相同的五元組的流量數據;
[0074]哈希值建立模塊,用于根據所述整合模塊所整合出的會話的五元組建立對應的哈希值;
[0075]第三提取模塊,用于提取所述整合模塊所整合出的會話的端口號、載荷、流特征;
[0076]存儲模塊,用于將所述第三提取模塊所提取出的端口號、載荷、流特征與所述哈希值建立模塊所建立的哈希值對應地存儲到流表中。
[0077]實施本發(fā)明提供的識別流量數據的應用類型的方法及系統(tǒng)可以兼顧效率與精確度的識別流量數據的應用類型。
[0078]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件結合硬件平臺的方式來實現,當然也可以全部通過硬件來實施?;谶@樣的理解,本發(fā)明的技術方案對【背景技術】做出貢獻的全部或者部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,智能手機或者網絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0079]本發(fā)明說明書中使用的術語和措辭僅僅為了舉例說明,并不意味構成限定。本領域技術人員應當理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細節(jié)可進行各種變化。因此,本發(fā)明的范圍只由權利要求確定,在權利要求中,除非另有說明,所有的術語應按最寬泛合理的意思進行理解。
【權利要求】
1.一種識別流量數據的應用類型的方法,其特征在于,所述方法包括: 通過粗粒度的分類方法識別流量數據的應用類型; 若不能識別出所述流量數據的應用類型,則通過細粒度的分類方法識別所述流量數據的應用類型。
2.如權利要求1所述的方法,其特征在于,通過粗粒度的分類方法識別流量數據的應用類型包括: 通過基于端口號的分類方法識別流量數據的應用類型。
3.如權利要求2所述方法,其特征在于,所述方法還包括: 若通過所述細粒度的分類方法識別出所述流量數據的應用類型,則根據識別結果提取所述流量數據的端口號以及應用類型的對應關系; 將所述提取出的端口號以及應用類型的對應關系反饋至所述基于端口號的分類方法。
4.如權利要求1?3中任意一項所述的方法,其特征在于,通過細粒度的分類方法識別所述流量數據的應用類型包括: 通過基于載荷的分類方法識別所述流量數據的應用類型。
5.如權利要求4所述的方法,其特征在于,通過細粒度的分類方法識別所述流量數據的應用類型還包括: 若通過所述基于載荷的分類方法不能識別出所述流量數據的應用類型,則通過機器學習的分類方法識別所述流量數據的應用類型。
6.如權利要求5所述的方法,其特征在于,通過細粒度的分類方法識別所述流量數據的應用類型還包括: 若通過所述基于載荷的分類方法識別出所述流量數據的應用類型,則判斷所述應用類型是否為加密協(xié)議; 若是,則執(zhí)行所述通過機器學習的分類方法識別所述流量數據的應用類型。
7.如權利要求4所述的方法,其特征在于, 所述基于載荷的分類方法包括:基于精確特征的方法以及基于正則表達式的方法。
8.如權利要求5?7中任意一項所述的方法,其特征在于,所述方法還包括: 在執(zhí)行所述通過細粒度的分類方法識別所述流量數據的應用類型后,通過基于行為和流量傳播圖的方法對所述流量數據進行識別; 若通過所述基于行為和流量傳播圖的方法識別出所述流量數據的應用類型,則提取所述流量數據的端口號、載荷、流特征; 將所述提取出的端口號、載荷、流特征分別反饋給所述基于端口號的分類方法、基于載荷的分類方法、機器學習的分類方法。
9.如權利要求5?7中任意一項所述的方法,其特征在于,所述方法還包括: 在執(zhí)行所述通過粗粒度的分類方法識別流量數據的應用類型前,篩選傳輸層協(xié)議為TCP或UDP的流量數據; 根據五元組將所述篩選出的流量數據整合為會話,其中所述會話包括含有相同的五元組的流量數據; 根據所述會話的五元組建立對應的哈希值; 提取所述會話的端口號、載荷、流特征; 將所述提取的端口號、載荷、流特征與所述哈希值對應地存儲到流表中。
10.一種識別流量數據的應用類型的系統(tǒng),其特征在于,所述系統(tǒng)包括: 粗粒度識別模塊,用于通過粗粒度的分類方法識別流量數據的應用類型; 細粒度識別模塊,用于當所述粗粒度識別模塊不能識別出所述流量數據的應用類型時,通過細粒度的分類方法識別所述流量數據的應用類型。
11.如權利要求10所述的系統(tǒng),其特征在于,所述粗粒度識別模塊包括: 端口號識別單元,用于通過基于端口號的分類方法識別流量數據的應用類型。
12.如權利要求11所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 第一提取模塊,用于當所述細粒度識別模塊識別出所述流量數據的應用類型時,根據所述細粒度識別模塊的識別結果提取所述流量數據的端口號以及應用類型的對應關系; 第一反饋模塊,用于將所述第一提取模塊所提取出的端口號以及應用類型的對應關系反饋至所述基于端口號的分類方法。
13.如權利要求10?12所述的系統(tǒng),其特征在于,所述細粒度識別模塊包括: 載荷識別單元,用于通過基于載荷的分類方法識別所述流量數據的應用類型。
14.如權利要求13所述的系統(tǒng),其特征在于,所述細粒度識別模塊還包括: 機器學習識別單元,用于當所述載荷識別單元不能識別出所述流量數據的應用類型時,通過機器學習的分類方法識別所述流量數據的應用類型。
15.如權利要求14所述的系統(tǒng),其特征在于,所述細粒度識別模塊還包括: 判斷單元,用于當所述載荷識別單元識別出所述流量數據的應用類型時,判斷所述應用類型是否為加密協(xié)議。
16.如權利要求13所述的系統(tǒng),其特征在于, 所述基于載荷的分類方法包括:基于精確特征的方法以及基于正則表達式的方法。
17.如權利要求14?16中任意一項所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 行為及流量傳播圖模塊,用于通過基于行為和流量傳播圖的方法對所述流量數據進行識別; 第二提取模塊,用于當所述行為及流量傳播圖模塊識別出所述流量數據的應用類型時,提取所述流量數據的端口號、載荷、流特征; 第二反饋模塊,用于將所述第二提取模塊所提取出的端口號、載荷、流特征分別反饋給所述基于端口號的分類方法、基于載荷的分類方法、機器學習的分類方法。
18.如權利要求14?16所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 篩選模塊,用于篩選傳輸層協(xié)議為TCP或UDP的流量數據; 整合模塊,用于根據五元組將所述篩選模塊所篩選出的流量數據整合為會話,其中所述會話包括含有相同的五元組的流量數據; 哈希值建立模塊,用于根據所述整合模塊所整合出的會話的五元組建立對應的哈希值; 第三提取模塊,用于提取所述整合模塊所整合出的會話的端口號、載荷、流特征; 存儲模塊,用于將所述第三提取模塊所提取出的端口號、載荷、流特征與所述哈希值建立模塊所建立的哈希值對應地存儲到流表中。
【文檔編號】H04L12/26GK104468273SQ201410767463
【公開日】2015年3月25日 申請日期:2014年12月12日 優(yōu)先權日:2014年12月12日
【發(fā)明者】董輝, 胡曉赟, 陳云飛, 熊亞軍 申請人:北京百度網訊科技有限公司