專利名稱:網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)及其識別方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全和網(wǎng)絡(luò)行為分析技術(shù)領(lǐng)域,具體地說,本發(fā)明涉 及網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)及其識別方法。
背景技術(shù):
近年來,互聯(lián)網(wǎng)上運(yùn)行業(yè)務(wù)種類不斷增多,尤其是各種基于P2P協(xié)議業(yè) 務(wù)的出現(xiàn)(如各種P2P下載和在線視頻),給網(wǎng)絡(luò)管理帶來了嚴(yán)峻的問題, 其中最突出的就是網(wǎng)絡(luò)帶寬資源被無節(jié)制消耗,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)擁塞,造成各 種實(shí)時性要求較高的業(yè)務(wù)(如VoIP等)無法得到有效的網(wǎng)絡(luò)保障。因此, 根據(jù)業(yè)務(wù)的不同對數(shù)據(jù)流進(jìn)行劃分,制定不同的服務(wù)支持等級進(jìn)行管理和規(guī) 劃,成為解決此問題的關(guān)鍵。為此針對各種不同業(yè)務(wù)(如WEB, P2P和VOIP 等)的識別技術(shù)大量涌現(xiàn),包括基于端口號的識別技術(shù)、基于深包檢測的識 別技術(shù)、基于流統(tǒng)計特征的識別技術(shù)等。
對于基于端口號進(jìn)行識別,傳統(tǒng)應(yīng)用協(xié)議通常采用在IANA才幾構(gòu)注冊的 公認(rèn)端口號作為通信端口,例如www使用80端口, ftp使用20、 21端口。 使用端口號作為業(yè)務(wù)流識別的方法快速而簡單,但是對于為了隱藏自身協(xié)議 身份而動態(tài)隨機(jī)更改端口號或仿冒使用公認(rèn)端口號的協(xié)議,識別結(jié)果不可靠。
基于深包檢測技術(shù)進(jìn)行識別需要深入檢查數(shù)據(jù)包載荷數(shù)據(jù)段的內(nèi)容,進(jìn) 行進(jìn)一步的分析來識別業(yè)務(wù)。對于不同的協(xié)議類型,在載荷數(shù)據(jù)段中會有相 應(yīng)的特征字段,通過判斷數(shù)據(jù)包內(nèi)容相應(yīng)字段與特征字段是否匹配,可以確 定此數(shù)據(jù)包是否屬于該種協(xié)議類型?;跀?shù)據(jù)包載荷內(nèi)容的業(yè)務(wù)流識別方法 可分為三個層次(1)根據(jù)一個和幾個載荷數(shù)據(jù)段特征匹配;(2)從語義角 度深入分析載荷數(shù)據(jù)段,如HTTP必須包含HTTP報頭,這個層次的識別需 要更多的查看數(shù)據(jù)段的內(nèi)容,而不是幾個字節(jié);(3)從語法的角度,分析一 個業(yè)務(wù)流的多個數(shù)據(jù)包,分析協(xié)議行為,如HTTP協(xié)議規(guī)定來自客戶端的GET請求后面一定是服務(wù)器的某種響應(yīng)數(shù)據(jù)包。"深包檢查"技術(shù)非常的準(zhǔn) 確,但是由于需要進(jìn)行對數(shù)據(jù)包進(jìn)行解包分析,需要更多的資源(處理器資 源和內(nèi)存),效率有限,不適于高速網(wǎng)和骨干網(wǎng)的業(yè)務(wù)流識別。同時此方法 無法識別已加密數(shù)據(jù)。
基于流統(tǒng)計特征進(jìn)行識別是業(yè)務(wù)流識別的最新技術(shù),可解決已加密數(shù)據(jù) 流的業(yè)務(wù)識別問題。此方法通過分析不同協(xié)議的數(shù)據(jù)包統(tǒng)計特征值(如業(yè)務(wù) 流持續(xù)時間,平均數(shù)據(jù)包長度,數(shù)據(jù)包間隔時間等)進(jìn)行匹配。但此方法目 前的識別準(zhǔn)確率較低,而且由于需要大量數(shù)據(jù)包的統(tǒng)計值,所以實(shí)時性無法 滿足。而且,目前此方法支持的協(xié)議種類有限,遠(yuǎn)小于實(shí)際網(wǎng)絡(luò)中的繁多的 應(yīng)用協(xié)議。
雖然,現(xiàn)有技術(shù)中存在上述多種業(yè)務(wù)識別技術(shù),但是這些技術(shù)大都僅支 持單一業(yè)務(wù)類型識別功能,即判斷當(dāng)前業(yè)務(wù)流是否是某一特定的業(yè)務(wù)類型。 而對于多類型業(yè)務(wù)的識別,現(xiàn)有技術(shù)中一般采用深包檢測技術(shù),提取當(dāng)前業(yè) 務(wù)流(即當(dāng)前連接)的數(shù)據(jù)包內(nèi)容字段,按照順序逐一匹配各類型業(yè)務(wù)的各 條業(yè)務(wù)識別規(guī)則,直到匹配某一規(guī)則或?qū)λ幸?guī)則遍歷一遍匹配失敗,從而 得出當(dāng)前業(yè)務(wù)流的業(yè)務(wù)類型。這種匹配機(jī)制的缺陷包括1、只能識別特定 的幾種業(yè)務(wù)類型,若需要根據(jù)需求添加新的業(yè)務(wù)類型支持時,則需要做較大 的改動,協(xié)議升級和可擴(kuò)展性差;2、忽略了各條規(guī)則的互斥性和相關(guān)性, 有相當(dāng)多的冗余重復(fù)操作,匹配效率低;3、對于混合業(yè)務(wù)流(比如包含有 多個TCP連接,或者包含TCP連接和持續(xù)UDP流的混合業(yè)務(wù)流)容易出現(xiàn) 識別錯誤(即誤報)。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種能夠識別多種業(yè)務(wù)類型且易于擴(kuò)展的 網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)及識別方法。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供了一種網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),包括
識別插件庫,所述識別插件庫包括多個識別插件;
數(shù)據(jù)接收單元,用于接收待識別連接的數(shù)據(jù)包;
注冊管理單元,用于維護(hù)識別插件列表,增加或刪除所述識別插件列 表中的識別插件項目;以及
插件調(diào)度及綜合識別單元,用于調(diào)用各識別插件對所述數(shù)據(jù)接收單元
5所提供的數(shù)據(jù)包進(jìn)行識別并根據(jù)各識別插件的識別結(jié)果綜合得出當(dāng)前待 識別連接的業(yè)務(wù)類型。
其中,所述網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)還包括識別結(jié)果統(tǒng)計單元,用于記錄 各類型的業(yè)務(wù)在數(shù)據(jù)流中的分布。
其中,每個所述識別插件用于識別一個或多個業(yè)務(wù)類型。
其中,所述網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)還包括插件關(guān)聯(lián)關(guān)系庫,用于記錄混 合業(yè)務(wù)中各識別插件所對應(yīng)業(yè)務(wù)的關(guān)聯(lián)關(guān)系,所述業(yè)務(wù)包括底層業(yè)務(wù)和應(yīng) 用業(yè)務(wù),所述關(guān)聯(lián)關(guān)系是應(yīng)用業(yè)務(wù)對底層業(yè)務(wù)的依附關(guān)系。
其中,所述識別插件是采用基于端口號的識別單元、基于深包檢測的 識別單元或者基于流統(tǒng)計特征的識別單元。
本發(fā)明還提供了 一種基于上述網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)的識別方法,包括
如下步驟
1) 根據(jù)需要注冊所需的識別插件;
2) 接收當(dāng)前待識別連接的數(shù)據(jù)包;
3) 分別調(diào)用各識別插件并根據(jù)各識別插件的識別結(jié)果綜合得出當(dāng)前 待識別連接的業(yè)務(wù)類型。
其中,所述步驟3)中,包括下列子步驟
31) 根據(jù)各類型的業(yè)務(wù)在數(shù)據(jù)流中的分布設(shè)定各識別插件的優(yōu)先級;
32) 然后根據(jù)優(yōu)先級依次調(diào)用各識別插件;
33) 當(dāng)前識別插件根據(jù)識別結(jié)果返回一個返回值,所述返回值包括 OK和NO; OK表示當(dāng)前待識別連接的數(shù)據(jù)包與所述當(dāng)前識別插件匹配, NO表示當(dāng)前待識別連接的數(shù)據(jù)包與所述當(dāng)前識別插件不匹配;當(dāng)當(dāng)前識別 插件的返回值為OK時,對當(dāng)前待識別連接的識別結(jié)束;當(dāng)當(dāng)前識別插件 的返回值為NO時,回到步驟32),依照優(yōu)先級調(diào)用下一個識別插件。
其中,所述步驟31)還包括,根據(jù)實(shí)時統(tǒng)計的業(yè)務(wù)識別結(jié)果,對各類 型的業(yè)務(wù)在數(shù)據(jù)流中的分布進(jìn)行更新,然后根據(jù)更新后的各類型的業(yè)務(wù)在 數(shù)據(jù)流中的分布重置各識別插件的優(yōu)先級。
其中,所述步驟31)還包括,根據(jù)插件關(guān)聯(lián)關(guān)系庫將底層業(yè)務(wù)的識別 插件的優(yōu)先級強(qiáng)制設(shè)定為高于該底層業(yè)務(wù)所對應(yīng)的應(yīng)用業(yè)務(wù)的識別插件 的優(yōu)先級。
其中,所述步驟33)中,所述返回值還包括 和PASS; PENDING表示當(dāng)前待識別連接的數(shù)據(jù)包的部分特征與所述當(dāng)前識別插件匹配,需要所述當(dāng)前帶識別連接的更多數(shù)據(jù)包進(jìn)行進(jìn)一步的確認(rèn);PASS 是插件關(guān)聯(lián)關(guān)系中底層業(yè)務(wù)的識別插件所特有的返回值,該返回值表示當(dāng) 前待識別連接的數(shù)據(jù)包與該底層業(yè)務(wù)的識別插件匹配;當(dāng)當(dāng)前識別插件的 返回值為PENDING時,當(dāng)前識別插件將繼續(xù)對所述當(dāng)前^f寺識別連"t妄的下 一個數(shù)據(jù)包進(jìn)行識別,直至返回值為OK或NO;當(dāng)當(dāng)前識別插件的返回值 為PASS時,在關(guān)聯(lián)關(guān)系庫中查找并調(diào)用該底層業(yè)務(wù)的識別插件所對應(yīng)的 應(yīng)用業(yè)務(wù)的識別插件。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下技術(shù)效果
1、 擴(kuò)展性強(qiáng),易于升級。
2、 網(wǎng)絡(luò)適應(yīng)性好,可根據(jù)部署網(wǎng)絡(luò)的業(yè)務(wù)分布情況靈活控制各業(yè)務(wù) 類型識別的先后順序。
3、 能夠消除重復(fù)識別等冗余操作,使處理效率大大提高。
4、 能夠避免對混合業(yè)務(wù)流的誤判。
以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中
圖1示出了本發(fā)明的總體結(jié)構(gòu)示意圖2示出了本發(fā)明一個實(shí)施例的結(jié)構(gòu)示意圖3示出了本發(fā)明一個實(shí)施例的運(yùn)行流程圖4示出了本發(fā)明 一個實(shí)施例中對業(yè)務(wù)流的識別處理流程圖5示出了本發(fā)明一個實(shí)施例的實(shí)測性能。
具體實(shí)施例方式
下面結(jié)合具體實(shí)施例對本發(fā)明作進(jìn)一步地描述。
本發(fā)明提供了一種網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),其總體結(jié)構(gòu)如圖l所示,包括 管理調(diào)度單元和多個識別插件。
圖2示出了本發(fā)明的一個實(shí)施例,該實(shí)施例中所述管理調(diào)度單元包括數(shù) 據(jù)接收單元、注冊管理單元和插件調(diào)度及綜合識別單元(可參考圖2)。
數(shù)據(jù)接收單元用于接收待識別連接的數(shù)據(jù)包,并將所述的數(shù)據(jù)包提供 給所述插件調(diào)度及綜合識別單元。
注冊管理單元用于維護(hù)識別插件列表,可以在識別插件列表上增加或刪除識別插件項目,以達(dá)到插件管理的目的。所述注冊管理單元還包括多 個識別插件接口單元,用于連接所述識別插件。為了更加方^f更地實(shí)現(xiàn)識別 插件的注冊和注銷,本實(shí)施例中,每對識別插件和識別插件^矣口單元均設(shè)
有三個對應(yīng)的功能接口注冊初始化、注銷和業(yè)務(wù)識別接口。所有識別插件 均保存在一個識別插件庫中,并且每個識別插件具有唯一的ID,可根據(jù)系統(tǒng) 配置的需要,通過識別插件的ID對相應(yīng)識別插件進(jìn)行注冊和調(diào)用。
插件調(diào)度及綜合識別單元用于按照一定調(diào)度策略分別調(diào)用各識別插件 對所述數(shù)據(jù)包進(jìn)行識別,并接收各識別插件所返回的識別結(jié)果,進(jìn)而根據(jù)各 識別插件的識別結(jié)果綜合得出當(dāng)前待識別連接的業(yè)務(wù)類型。
每個識別插件用于識別某個或某幾個特定的業(yè)務(wù)類型,在本實(shí)施例中, 識別插件的返回值有兩種0K和N0。 OK表示數(shù)據(jù)包所岸義載的業(yè)務(wù)正是本識 別插件所代表的業(yè)務(wù),即數(shù)據(jù)包與本識別插件完全匹配,NO表示數(shù)據(jù)包所承 載的業(yè)務(wù)不是本識別插件所代表的業(yè)務(wù),即數(shù)據(jù)包與本識別插件不匹配。插 件調(diào)度及綜合識別單元為每個連接設(shè)置一個關(guān)聯(lián)插件表,用于記錄為識別 該連接所調(diào)用的業(yè)務(wù)識別單元及其返回值。這樣,插件調(diào)度及綜合識別單元 可以根據(jù)各業(yè)務(wù)識別插件所代表的業(yè)務(wù)及相應(yīng)的返回值進(jìn)行綜合匹配,得出 當(dāng)前待識別連接所承載的業(yè)務(wù)類型。
為了提高識別效率,插件調(diào)度及綜合識別單元需要按照一定調(diào)度策略 依序調(diào)用各識別插件。本實(shí)施例中,可以由用戶通過用戶接口單元來設(shè)定各 識別插件的調(diào)用順序。這種做法在軟硬件實(shí)現(xiàn)上較為筒單,但是由于需要人 工輸入,工效較低。因此,在另一實(shí)施例中,所述插件調(diào)度及綜合識別單元 采用基于優(yōu)先級機(jī)制的調(diào)度策略。該實(shí)施例中,還包括一個識別結(jié)果統(tǒng)計 單元,用于統(tǒng)計一段時期或一定數(shù)目的連接的識別結(jié)果,并分別記錄各業(yè) 務(wù)類型所出現(xiàn)的次數(shù)(即數(shù)據(jù)流中各業(yè)務(wù)的分布情況)。這樣可以根據(jù)在實(shí) 際的網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)流中各業(yè)務(wù)的分布情況,使數(shù)據(jù)流占比重大的業(yè)務(wù)類型 所對應(yīng)的識別插件優(yōu)先進(jìn)行識別,以減少數(shù)據(jù)包在各插件的識別次數(shù)以提高 系統(tǒng)的效率。為此,該實(shí)施例4艮據(jù)所識別的業(yè)務(wù)類型為每一個業(yè)務(wù)識別插件 設(shè)置一個優(yōu)先級。在對它們進(jìn)行調(diào)用的時候,按照優(yōu)先級從高到低的順序進(jìn) 行。在調(diào)用過程中, 一旦有業(yè)務(wù)識別插件返回了 0K,則完成本次識別過程, 而返回N0則繼續(xù)調(diào)用下一個業(yè)務(wù)識別插件。而每個連接的最終識別結(jié)果將 存儲在識別結(jié)果統(tǒng)計表中。插件調(diào)度及綜合識別單元#4居當(dāng)前統(tǒng)計的結(jié)果
8動態(tài)的更新插件的優(yōu)先級,以適應(yīng)不同類型網(wǎng)絡(luò)中業(yè)務(wù)流的突發(fā)性和集中 性。
另外,在實(shí)際的網(wǎng)絡(luò)通信中還存在混合業(yè)務(wù)流(比如包含有多個TCP 連接,或者包含TCP連接和持續(xù)UDP流的混合業(yè)務(wù)流),為了避免誤報, 還需要引入基于竟?fàn)帣C(jī)制的調(diào)度策略。
混合業(yè)務(wù)流中, 一般包括底層業(yè)務(wù)和應(yīng)用業(yè)務(wù)。例如大部分的P2P類軟 件,它們的通信過程首先是一段HTTP通信(即底層業(yè)務(wù)),然后才是P2P協(xié) 議(即應(yīng)用業(yè)務(wù)),而前述實(shí)施例的網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)是建立在以連接為 單位的&出上,這就意味著一旦對一個連接進(jìn)行了定性,那么在這個連接超 時之前就不會對其進(jìn)行再次識別。因此如果HTTP插件的優(yōu)先級高于BT,那 么一個BT業(yè)務(wù)就會被誤認(rèn)為是HTTP應(yīng)用,從而導(dǎo)致誤判。
因此,在一個新的實(shí)施例中,增加一個插件關(guān)聯(lián)關(guān)系庫,用于記錄混 合業(yè)務(wù)中各識別插件所對應(yīng)業(yè)務(wù)類型的關(guān)聯(lián)關(guān)系。在插件關(guān)聯(lián)關(guān)系庫中, 所有識別插件可分為兩類, 一類是底層業(yè)務(wù)所對應(yīng)的識別插件, 一類是應(yīng) 用業(yè)務(wù)所對應(yīng)的識別插件。所述關(guān)聯(lián)關(guān)系是指底層業(yè)務(wù)所對應(yīng)的識別插件與 應(yīng)用業(yè)務(wù)所對應(yīng)的識別插件的對應(yīng)關(guān)系(具體地,該對應(yīng)關(guān)系是指應(yīng)用業(yè)務(wù) 對底層業(yè)務(wù)的依附關(guān)系)。同時,為涉及上述關(guān)聯(lián)關(guān)系的插件的識別結(jié)果的 返回值增加了一個新類型PASS,表示雖然本插件識別了數(shù)據(jù)包承載的業(yè)務(wù), 但是還是不退出識別過程,而是繼續(xù)交給下面那些有可能使用本協(xié)議的應(yīng)用 業(yè)務(wù)對應(yīng)的插件進(jìn)行識別。比如HTTP插件首先對一個數(shù)據(jù)包進(jìn)行了確認(rèn), 但此時不會馬上結(jié)束本次識別過程,而是返回PASS,然后插件調(diào)度及綜合 識別單元將數(shù)據(jù)包交給那些基于HTTP協(xié)議的應(yīng)用業(yè)務(wù)(如BT, THUNDER ) 的插件繼續(xù)識別。這樣就避免了對混合業(yè)務(wù)流的誤判。
需要注意的是,本發(fā)明中插件調(diào)度及綜合識別單元即可以單獨(dú)采用基 于優(yōu)先級機(jī)制的調(diào)度策略或基于竟?fàn)帣C(jī)制的調(diào)度策略,也可以同時采用上 述兩種策略。在采用基于竟?fàn)帣C(jī)制的調(diào)度策略時,需要注意,底層業(yè)務(wù)的識 別插件的優(yōu)先級應(yīng)當(dāng)高于應(yīng)用業(yè)務(wù)的識別插件優(yōu)先級。
進(jìn)一步地,在所述基于竟?fàn)帣C(jī)制的調(diào)度策略中,為了避免對不可識別業(yè) 務(wù)進(jìn)行無限處理,網(wǎng)絡(luò)業(yè)務(wù)識別系統(tǒng)對每一個連接的識別次數(shù)設(shè)定一個上 限, 一旦對一個連接的識別超過了這個上限還沒有明確結(jié)果的話,就放棄識 別。同時,考慮到即使在識別次數(shù)沒有超過識別上限時,如果數(shù)據(jù)包每次都經(jīng)過所有的插件,也會產(chǎn)生不必要的冗余處理,因此可以為插件返回值增加了一個新類型PENDING。 PENDING表示現(xiàn)在還不能判定這個連接的業(yè)務(wù)類型 是不是本插件所能識別的,或者這個數(shù)據(jù)包匹配了本插件所代表業(yè)務(wù)的部分 特征,需要更多的數(shù)據(jù)進(jìn)行進(jìn)一步的確認(rèn)。這個返回值會#1網(wǎng)絡(luò)業(yè)務(wù)識別系 統(tǒng)記錄下來,這樣當(dāng)同一連接的新數(shù)據(jù)包到來時,就只發(fā)會^^皮送給那些曾經(jīng) 返回過PENDING的插件進(jìn)行處理,直到這個業(yè)務(wù)被某一個插件所識別(即返 回值為OK ), 或者被所有的插件否定(即返回值為NO ),或者對該連接的識 別的次數(shù)超過所設(shè)定的上限。下面詳細(xì)介紹一個綜合優(yōu)先級及竟?fàn)帣C(jī)制調(diào)度策略的優(yōu)選實(shí)施例的業(yè)務(wù) 識別方法。該實(shí)施例中,識別插件的返回值有四種0K,表示數(shù)據(jù)包所承載的業(yè)務(wù)正是本插件識所代表的業(yè)務(wù),所以此連接識 別類型即為返回0K的插件的業(yè)務(wù)類型,對屬于此連接的數(shù)據(jù)包不再做到各 插件識別的操作;NO,表示數(shù)據(jù)包所承載的業(yè)務(wù)不是本插件識所代表的業(yè)務(wù),此連接進(jìn)行 進(jìn)一步識別業(yè)務(wù)的數(shù)據(jù)包將跳過此插件;PENDING,表示現(xiàn)在還不能判定這個連接的業(yè)務(wù)類型是不是本插件所能識 別的,或者這個數(shù)據(jù)包匹配了本插件所代表業(yè)務(wù)的部分特征,需要更多的數(shù) 據(jù)進(jìn)行進(jìn)一步的確認(rèn)。PASS,表示雖然本插件識別了數(shù)據(jù)包承載的業(yè)務(wù),但是不退出識別過程, 而是繼續(xù)交給那些有可能使用本協(xié)議的業(yè)務(wù)對應(yīng)的插件進(jìn)行識別,所以將標(biāo) 志為PASS的業(yè)務(wù)類型的相關(guān)類型插件標(biāo)志為PENDING。附圖3示出了本優(yōu)選實(shí)施例的網(wǎng)絡(luò)業(yè)務(wù)識別系統(tǒng)中對數(shù)據(jù)流的業(yè)務(wù)識別 流程,該流程包括下列步驟。步驟301網(wǎng)絡(luò)管理員可根據(jù)部署網(wǎng)絡(luò)情況及使用本框架的各網(wǎng)絡(luò)流量管 理系統(tǒng)需求,通過用戶接口制定業(yè)務(wù)識別類型。步驟302系統(tǒng)根據(jù)用戶配置信息,到識別插件庫查詢相應(yīng)插件,通過調(diào) 用插件本身的注冊函數(shù),將各插件注冊到注冊管理單元中。注冊過程包括 初始化插件注冊表,記錄各插件信息,如插件名稱,插件ID,識別業(yè)務(wù)類型, 優(yōu)先級初始值。步驟303根據(jù)插件類型,插件依賴關(guān)系庫設(shè)置各插件優(yōu)先級。步驟304初始化連接狀態(tài)表,識別結(jié)果統(tǒng)計表,關(guān)聯(lián)插件表。其中連接 狀態(tài)表包含連接ID,連接識別狀態(tài),識別類型。連接識別狀態(tài)有三種NOT YET 表示尚未識別出業(yè)務(wù)類型;SUCCESS表示已識別出此連接的類型,所識別出 的業(yè)務(wù)類型在識別類型字段存儲;FAIL表示未識別出該連接的業(yè)務(wù)類型, FAIL所對應(yīng)的識別類型為UNKNO麗。步驟305對于當(dāng)前連接,系統(tǒng)根據(jù)優(yōu)先級依序調(diào)用各插件進(jìn)行業(yè)務(wù)識別, 具體識別過程將結(jié)合附圖4在下文中詳細(xì)說明。 .步驟306根據(jù)各插件的識別結(jié)果更新業(yè)務(wù)識別結(jié)果統(tǒng)計表。步驟307若識別結(jié)果統(tǒng)計表表明該部署網(wǎng)絡(luò)的業(yè)務(wù)分布排序有變化,則 進(jìn)入步驟308,否則回到步驟305,繼續(xù)識別下一個連《|妻。步驟308根據(jù)識別結(jié)果統(tǒng)計表各業(yè)務(wù)的分布排序更新各插件優(yōu)先級,同 時限定此優(yōu)先級設(shè)置與插件依賴關(guān)系庫不矛盾,然后回到步驟305。下面結(jié)合附圖4介紹步驟305中的具體業(yè)務(wù)識別處理流程。步驟401接收一個新數(shù)據(jù)包。步驟402在連接狀態(tài)表中查詢此數(shù)據(jù)包所屬的連接。步驟403若未找到所屬連接,則表明是一個新連接,繼續(xù)步驟404,若查 找相應(yīng)的連接,則繼續(xù)步驟406。步驟404在連接狀態(tài)表創(chuàng)建新連接項,連接狀態(tài)為NOT YET,業(yè)務(wù)類型為 隨N麵。步驟405在關(guān)聯(lián)插件表為該連接創(chuàng)建新條目,初始所有插件的返回類型 為PENDING。這種初始方法可使新連接的第一個數(shù)據(jù)包到所有的業(yè)務(wù)識別插 件進(jìn)行匹配。步驟406判斷此連接的識別狀態(tài),如果是SUCCEED或者FAIL,表明該連 接識別出業(yè)務(wù)類型或者識別不出相應(yīng)業(yè)務(wù)。所以此連接識別工作已經(jīng)結(jié)束, 不對該數(shù)據(jù)包進(jìn)行各插件的匹配工作,然后執(zhí)行步驟418。如果是NOTYET, 則繼續(xù)執(zhí)行步驟407。ii步驟407如果已達(dá)到該連接的識別次數(shù)上限,表明通過此連接的前N個 數(shù)據(jù)包的匹配處理,業(yè)務(wù)識別失敗。則執(zhí)行步驟408,判斷該連接的識別業(yè) 務(wù)類型。否則,用各插件對該數(shù)據(jù)包進(jìn)行業(yè)務(wù)匹配,執(zhí)行步驟411。步驟408遍歷該連接對應(yīng)的關(guān)聯(lián)插件表項,如果存在返回類型是PASS 的插件,執(zhí)行步驟409。不存在返回類型是PASS的插件,則執(zhí)行步驟410。步驟409將返回類型是PASS的插件的業(yè)務(wù)類型作為該連接的最終識別 業(yè)務(wù)類型,設(shè)置該連接的識別狀態(tài)為SUCCESS。然后扭J亍步驟418。步驟410設(shè)置該連接的識別狀態(tài)為FAIL,業(yè)務(wù)類型為UNKNOWN。然后執(zhí)行 步驟418。步驟411搜索該連接對應(yīng)的關(guān)聯(lián)插件表中返回類型為PENDING的應(yīng)用業(yè) 務(wù)插件,依次調(diào)用這些插件的識別功能。步驟412所調(diào)用的應(yīng)用業(yè)務(wù)插件對該數(shù)據(jù)包進(jìn)行識別得出業(yè)務(wù)識別結(jié)果 的返回值。如果返回值是N0,執(zhí)行步驟413,如果返回值是PENDING,執(zhí)行步 驟414,如果返回值是PASS,執(zhí)行步驟415,如果返回值是OK,執(zhí)行步驟416。步驟413將對應(yīng)關(guān)聯(lián)插件表項中的該插件屬性置為NO,繼續(xù)步驟417。步驟414將對應(yīng)關(guān)聯(lián)插件表項中的該插件屬性置為PENDING,繼續(xù)步驟 417。步驟415將對應(yīng)關(guān)聯(lián)插件表項中的該插件屬性置為PASS,并且在插件關(guān) 系依賴表中查找與此插件有依賴關(guān)系的插件,將其屬性置為PENDING,執(zhí)行 步驟417。步驟416則將此連接的識別狀態(tài)置為SUCCESS,業(yè)務(wù)類型即為該插件的業(yè) 務(wù)類型。然后執(zhí)行步驟418。步驟417調(diào)用下一個屬性為PENDING的插件,回到步驟412。步驟418,輸出當(dāng)前流的業(yè)務(wù)類型,結(jié)束識別過程,跳至401繼續(xù)下一連 接(或數(shù)據(jù)包)的識別。另外,需要補(bǔ)充的是,本實(shí)施例中,所述識別插件即可以通過基于端口 號的識別技術(shù)實(shí)現(xiàn),也可以通過基于深包檢測的識別技術(shù)或基于流統(tǒng)計特征 的識別技術(shù)實(shí)現(xiàn)。所述識別插件接口單元是同時兼容上述三種識別技術(shù)的接如圖5所示,在較低的硬件配置(CPU:P4 2.0G,內(nèi)存512MB,網(wǎng)卡Intel EPRO100 * 2)下,通過上述優(yōu)選實(shí)施例提供的識別方法能夠以很高的性 能完成業(yè)務(wù)流識別。具體來說,在10個業(yè)務(wù)插件的情況下,實(shí)時業(yè)務(wù)流 識別性能可以達(dá)到92Mbps,在50個業(yè)務(wù)識別插件的情況下依然能夠達(dá)到 89.2Mbps。實(shí)測結(jié)果表明本發(fā)明具有很高的效率,并且,本發(fā)明的插件機(jī) 制、調(diào)度機(jī)制以及優(yōu)先級機(jī)制很好的優(yōu)化了多業(yè)務(wù)識別的過程,降低了多 業(yè)務(wù)識別過程中的冗余操作,因此即使在需要識別業(yè)務(wù)類型大量增加的情 況下,本發(fā)明依然能夠保持很高的性能。以上所述的具體實(shí)施例對本發(fā)明的目的、技術(shù)方案以及有益效果進(jìn)行了 詳細(xì)的說明。所應(yīng)理解的是,上述內(nèi)容僅為本發(fā)明的具體實(shí)施例而已,并不 用于限制本發(fā)明。凡在本發(fā)明的精神與原則之內(nèi),所做的任何修改、等同替 換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。1權(quán)利要求
1.一種網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),包括識別插件庫,所述識別插件庫包括多個識別插件,每個所述識別插件用于識別一個或多個特定業(yè)務(wù)類型;數(shù)據(jù)接收單元,用于接收待識別連接的數(shù)據(jù)包;注冊管理單元,用于維護(hù)識別插件列表,增加或刪除所述識別插件列表中的識別插件項目;以及插件調(diào)度及綜合識別單元,用于調(diào)用各識別插件對所述數(shù)據(jù)接收單元所提供的數(shù)據(jù)包進(jìn)行識別并根據(jù)各識別插件的識別結(jié)果綜合得出當(dāng)前待識別連接的業(yè)務(wù)類型。
2. 根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),其特征在于,所述網(wǎng) 絡(luò)業(yè)務(wù)流識別系統(tǒng)還包括識別結(jié)果統(tǒng)計單元,用于記錄各類型的業(yè)務(wù)在數(shù) 據(jù)流中的分布;所述插件調(diào)度及綜合識別單元根據(jù)各類型的業(yè)務(wù)在數(shù)據(jù)流 中的分布設(shè)定各識別插件的優(yōu)先級。
3. 根據(jù)權(quán)利要求1或2所述的網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),其特征在于,所 述網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)還包括插件關(guān)聯(lián)關(guān)系庫,用于記錄混合業(yè)務(wù)中各識 別插件所對應(yīng)業(yè)務(wù)的關(guān)聯(lián)關(guān)系,所述業(yè)務(wù)包括底層業(yè)務(wù)和應(yīng)用業(yè)務(wù),所述 關(guān)聯(lián)關(guān)系是應(yīng)用業(yè)務(wù)對底層業(yè)務(wù)的依附關(guān)系。
4. 根據(jù)權(quán)利要求1或2所述的網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),其特征在于,所 述識別插件是采用基于端口號的識別單元、基于深包檢測的識別單元或者 基于流統(tǒng)計特征的識別單元。
5. 根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),其特征在于,所述識 別插件是采用基于端口號的識別單元、基于深包檢測的識別單元或者基于流 統(tǒng)計特征的識別單元。
6. —種利用權(quán)利要求1所述的網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng)的識別方法,包括 下列步驟1) 注冊所需的識別插件;2) 接收當(dāng)前待識別連接的數(shù)據(jù)包;3) 分別調(diào)用各識別插件對步驟2)中所述的數(shù)據(jù)包進(jìn)行識別并根據(jù) 各識別插件的識別結(jié)果綜合得出當(dāng)前待識別連接的業(yè)務(wù)類型。
7. 根據(jù)權(quán)利要求6所述的識別方法,其特征在于,所述步驟3)包括下列子步驟[31 )根據(jù)各類型的業(yè)務(wù)在數(shù)據(jù)流中的分布設(shè)定各識別插件的優(yōu)先級;[32) 然后根據(jù)優(yōu)先級依次調(diào)用各識別插件;[33) 當(dāng)前識別插件才艮據(jù)識別結(jié)果返回一個返回值,所述返回值包括 OK和NO; OK表示當(dāng)前待識別連接的數(shù)據(jù)包與所述當(dāng)前識別插件匹配, NO表示當(dāng)前待識別連接的數(shù)據(jù)包與所述當(dāng)前識別插件不匹配;當(dāng)當(dāng)前識別 插件的返回值為OK時,對當(dāng)前待識別連接的識別結(jié)束;當(dāng)當(dāng)前識別插件 的返回值為NO時,回到步驟[32),依照優(yōu)先級調(diào)用下一個識別插件。
8. 根據(jù)權(quán)利要求7所述的識別方法,其特征在于,所述步驟31)還包 括,根據(jù)實(shí)時統(tǒng)計的業(yè)務(wù)識別結(jié)果,對各類型的業(yè)務(wù)在數(shù)據(jù)流中的分布進(jìn) 行更新,然后根據(jù)更新后的各類型的業(yè)務(wù)在數(shù)據(jù)流中的分布重置各識別插 件的優(yōu)先級。
9. 根據(jù)權(quán)利要求8所述的識別方法,其特征在于,所述網(wǎng)絡(luò)業(yè)務(wù)流識 別系統(tǒng)還包括插件關(guān)聯(lián)關(guān)系庫,用于記錄混合業(yè)務(wù)中各識別插件所對應(yīng)業(yè) 務(wù)的關(guān)聯(lián)關(guān)系,所述業(yè)務(wù)包括底層業(yè)務(wù)和應(yīng)用業(yè)務(wù),所述關(guān)聯(lián)關(guān)系是應(yīng)用 業(yè)務(wù)對底層業(yè)務(wù)的依附關(guān)系;所述步驟31 )還包括,根據(jù)插件關(guān)聯(lián)關(guān)系庫將底層業(yè)務(wù)的識別插件的 優(yōu)先級強(qiáng)制設(shè)定為高于該底層業(yè)務(wù)所對應(yīng)的應(yīng)用業(yè)務(wù)的識別插件的優(yōu)先 級。
10. 根據(jù)權(quán)利要求9所述的識別方法,其特征在于,所述步驟33)中, 所述返回值還包括PENDING和PASS; PENDING表示當(dāng)前待識別連接的 數(shù)據(jù)包的部分特征與所述當(dāng)前識別插件匹配,需要所述當(dāng)前帶識別連接的 更多數(shù)據(jù)包進(jìn)行進(jìn)一步的確認(rèn);PASS是插件關(guān)聯(lián)關(guān)系中底層業(yè)務(wù)的識別 插件所特有的返回值,該返回值表示當(dāng)前待識別連接的數(shù)據(jù)包與該底層業(yè) 務(wù)的識別插件匹配;當(dāng)當(dāng)前識別插件的返回值為PENDING時,當(dāng)前識別 插件將繼續(xù)對所述當(dāng)前待識別連接的下一個數(shù)據(jù)包進(jìn)行識別,直至返回值 為OK或NO;當(dāng)當(dāng)前識別插件的返回值為PASS時,在關(guān)聯(lián)關(guān)系庫中查找 并調(diào)用該底層業(yè)務(wù)的識別插件所對應(yīng)的應(yīng)用業(yè)務(wù)的識別插件。
全文摘要
本發(fā)明提供了一種網(wǎng)絡(luò)業(yè)務(wù)流識別系統(tǒng),包括識別插件庫,所述識別插件庫包括多個識別插件;數(shù)據(jù)接收單元,用于接收待識別連接的數(shù)據(jù)包;注冊管理單元,用于維護(hù)識別插件列表,增加或刪除所述識別插件列表中的識別插件項目;以及插件調(diào)度及綜合識別單元,用于調(diào)用各識別插件對所述數(shù)據(jù)接收單元所提供的數(shù)據(jù)包進(jìn)行識別并根據(jù)各識別插件的識別結(jié)果綜合得出當(dāng)前待識別連接的業(yè)務(wù)類型。本發(fā)明能夠識別多種業(yè)務(wù)類型且易于擴(kuò)展。
文檔編號H04L9/36GK101645778SQ20091009179
公開日2010年2月10日 申請日期2009年8月25日 優(yōu)先權(quán)日2009年8月25日
發(fā)明者云曉春, 吳志剛, 張永錚, 曦 王, 王樹鵬, 浩 羅, 袁春陽, 金書源 申請人:中國科學(xué)院計算技術(shù)研究所