專(zhuān)利名稱(chēng)::協(xié)議識(shí)別方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種協(xié)議識(shí)別方法,尤其涉及一種對(duì)傳輸層以上各層協(xié)議進(jìn)行識(shí)別的方法及裝置。
背景技術(shù):
:應(yīng)用協(xié)議識(shí)別技術(shù)是指對(duì)原本封閉的網(wǎng)絡(luò)中承載的各類(lèi)應(yīng)用協(xié)議進(jìn)行識(shí)別和感知。它是帶寬管理、負(fù)載均衡、質(zhì)量保證(簡(jiǎn)稱(chēng)QoS)、入侵檢測(cè)/防護(hù)(簡(jiǎn)稱(chēng)IDS/IPS)、基于應(yīng)用計(jì)費(fèi)等多種應(yīng)用業(yè)務(wù)的基礎(chǔ),幾乎所有此類(lèi)設(shè)備都需要具備應(yīng)用協(xié)議識(shí)別的功能。其中,應(yīng)用協(xié)議是指在開(kāi)放式系統(tǒng)互聯(lián)(OpenSystemInterconnect,以下簡(jiǎn)稱(chēng)OSI)分層協(xié)議模型中第四層以上的各層中的協(xié)議?,F(xiàn)有的應(yīng)用協(xié)議識(shí)別技術(shù)仍然存在如下缺陷1、完全基于固定的知名端口來(lái)對(duì)應(yīng)用協(xié)議進(jìn)行識(shí)別。其中,知名端口是指固定地用于某種應(yīng)用業(yè)務(wù)的端口。然而,隨著點(diǎn)到點(diǎn)(簡(jiǎn)稱(chēng)P2P)應(yīng)用的普及,越來(lái)越多的應(yīng)用并不總是使用知名端口,而是使用不固定的非知名端口。如校園網(wǎng)中大量的文件傳輸協(xié)議(簡(jiǎn)稱(chēng)FTP)服務(wù)器和Web服務(wù)器大都是使用非知名端口。這就使現(xiàn)有的應(yīng)用協(xié)議識(shí)別技術(shù)的使用受到了限制。2、無(wú)法實(shí)現(xiàn)對(duì)新協(xié)議進(jìn)行動(dòng)態(tài)層次化擴(kuò)展?,F(xiàn)有技術(shù)對(duì)新的應(yīng)用協(xié)議的支持必須通過(guò)更新整個(gè)軟件版本,這種擴(kuò)展方法很難跟上應(yīng)用的快速發(fā)展和用戶(hù)對(duì)快速響應(yīng)、動(dòng)態(tài)升級(jí)的需求。以下通過(guò)介紹兩個(gè)現(xiàn)有的協(xié)議分析工具,說(shuō)明現(xiàn)有技術(shù)的缺陷1、Ethreal工具軟件,是開(kāi)放源代碼工具軟件領(lǐng)域中的一種抓包和協(xié)議分析工具。它主要通過(guò)固定字段的哈希表(簡(jiǎn)稱(chēng)Hash表)和啟發(fā)式搜索鏈兩種方式對(duì)應(yīng)用協(xié)議進(jìn)行識(shí)別。例如,如圖1所示,以識(shí)別TCP上層協(xié)議為例,TCP協(xié)議識(shí)別模塊預(yù)先基于目的端口創(chuàng)建一張哈希表及一條啟發(fā)式搜索鏈。當(dāng)開(kāi)始對(duì)TCP協(xié)議層進(jìn)行識(shí)別時(shí),TCP協(xié)議識(shí)別模塊首先調(diào)用啟發(fā)式搜索鏈中每個(gè)下層模塊的啟發(fā)測(cè)試函數(shù),通過(guò)協(xié)議特性比對(duì)來(lái)識(shí)別目標(biāo)應(yīng)用協(xié)議。若識(shí)別失敗,則通過(guò)目的端口查找哈希表。例如,通過(guò)啟發(fā)式搜索鏈識(shí)別出比特流(BitTorrent,以下簡(jiǎn)稱(chēng)BT)協(xié)議,再通過(guò)哈希表識(shí)別出超文本傳輸(以下簡(jiǎn)稱(chēng)HTTP)協(xié)議。哈希表項(xiàng)被命中后,通過(guò)調(diào)用對(duì)應(yīng)的協(xié)議處理模塊,如BT協(xié)議模塊、HTTP協(xié)議模塊等,用于解析數(shù)據(jù)包的每個(gè)協(xié)議字段,再利用ethreal的圖形接口顯示每個(gè)字段的內(nèi)容。Ethreal工具軟件的缺陷在于a、下層協(xié)議的識(shí)別需要通過(guò)上層協(xié)議模塊才能完成,并且待查找的協(xié)議特征數(shù)據(jù)分散于各個(gè)協(xié)議模塊的代碼中,而沒(méi)有通過(guò)的協(xié)議特征數(shù)據(jù)定義,因此難以通過(guò)特征數(shù)據(jù)查找引擎進(jìn)行加速識(shí)別。b、主要還是基于固定端口識(shí)別,擴(kuò)展新的應(yīng)用協(xié)議需要開(kāi)發(fā)新的插件并重新編譯,因此無(wú)法實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展。c、工作于操作系統(tǒng)控制平面,運(yùn)行性能較低,僅適用于低速網(wǎng)絡(luò)上的抓包和分析。2、L7filter工具軟件,是另一種開(kāi)放源代碼軟件,它工作于Linux操作系統(tǒng)下的iptable架構(gòu)之上,基于iptable規(guī)則的命中條件對(duì)應(yīng)用協(xié)議進(jìn)行識(shí)別,具體是將對(duì)應(yīng)于應(yīng)用協(xié)議的正則表達(dá)式下發(fā)到Linux內(nèi)核中的L7filter模塊中,將需要識(shí)別的數(shù)據(jù)全部進(jìn)行拷貝并拼接成一個(gè)連續(xù)的數(shù)據(jù)段,然后逐段查找正則表達(dá)式,直至識(shí)別出目標(biāo)協(xié)議。L7filter工具軟件缺陷在于a、識(shí)別出的應(yīng)用協(xié)議沒(méi)有層次關(guān)系,無(wú)法識(shí)別出具有層次關(guān)系的多個(gè)應(yīng)用協(xié)議。b、對(duì)協(xié)議特征數(shù)據(jù)的識(shí)別不區(qū)分請(qǐng)求和回應(yīng),協(xié)議特征數(shù)據(jù)單一,降低了識(shí)別的準(zhǔn)確性。c、對(duì)正則表達(dá)式進(jìn)行逐條匹配,識(shí)別效率較低。
發(fā)明內(nèi)容本發(fā)明的目的是能夠通過(guò)特征數(shù)據(jù)查找引擎來(lái)加快協(xié)議識(shí)別速度的、提高識(shí)別準(zhǔn)確性和效果。為實(shí)現(xiàn)上述目的,本發(fā)明的一個(gè)實(shí)施例提供了一種協(xié)議識(shí)別方法,包括將接收到的數(shù)據(jù)包與根據(jù)分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配,該匹配為一次匹配過(guò)程;根據(jù)匹配結(jié)果分層查找對(duì)應(yīng)的協(xié)議。為了實(shí)現(xiàn)上述目的,本發(fā)明的另一個(gè)實(shí)施例還提供了一種協(xié)議識(shí)別裝置,包括匹配條件提取模塊,檢測(cè)引擎模塊和識(shí)別核心模塊,其中匹配條件提取模塊,用于根據(jù)分層協(xié)議樹(shù)生成匹配條件,并將匹配條件發(fā)送給檢測(cè)引擎模塊;檢測(cè)引擎模塊,用于根據(jù)來(lái)自于識(shí)別核心模塊的未經(jīng)檢測(cè)的數(shù)據(jù)包查找相匹配的所有匹配條件,并將查找得出的匹配結(jié)果發(fā)送給識(shí)別核心模塊;識(shí)別核心模塊,用于根據(jù)來(lái)自于檢測(cè)引擎模塊的匹配結(jié)果,結(jié)合其自身保存的各協(xié)議對(duì)應(yīng)的由匹配條件構(gòu)成的檢測(cè)規(guī)則信息,按分層順序進(jìn)行協(xié)議的查找,直到最終識(shí)別出所對(duì)應(yīng)的協(xié)議。通過(guò)本發(fā)明,對(duì)于接收到的數(shù)據(jù)包只通過(guò)一次深度識(shí)別應(yīng)能夠發(fā)現(xiàn)所有的協(xié)議層次,因此檢測(cè)效率高。并且,識(shí)別出的協(xié)議是有層次關(guān)系的,因此識(shí)別效果更好。另外,由于將各層協(xié)議的特征數(shù)據(jù)均集中寫(xiě)入到檢測(cè)規(guī)則信息中作為通過(guò)的特征數(shù)據(jù)進(jìn)行查找,因此可以通過(guò)查找引擎來(lái)加快協(xié)議識(shí)別的過(guò)程,當(dāng)需要擴(kuò)展新的協(xié)議時(shí),只需要修改預(yù)存的協(xié)議特征數(shù)據(jù)狀態(tài)樹(shù),根據(jù)修改后的協(xié)議特征數(shù)據(jù)狀態(tài)樹(shù)提取新的檢測(cè)規(guī)則信息用同樣的方法進(jìn)行協(xié)議識(shí)別即可,無(wú)需增加新的協(xié)議插件也無(wú)需重新編譯,從而能夠?qū)崿F(xiàn)在線動(dòng)態(tài)擴(kuò)展協(xié)議。下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。圖1為現(xiàn)有技術(shù)中Ethreal工具軟件進(jìn)行協(xié)議識(shí)別的工作原理示意圖;圖2為本發(fā)明實(shí)施例1所述協(xié)議識(shí)別方法流程圖;圖3為本發(fā)明實(shí)施例1所述協(xié)議特征數(shù)據(jù)狀態(tài)樹(shù)舉例示意圖;圖4為本發(fā)明實(shí)施例2所述協(xié)議識(shí)別方法流程圖;圖5為本發(fā)明實(shí)施例4協(xié)議識(shí)別裝置的結(jié)構(gòu)示意圖;具體實(shí)施方式首先需要說(shuō)明的是,本發(fā)明所述各實(shí)施例僅適用于對(duì)傳輸層協(xié)議以上的各層應(yīng)用層協(xié)議進(jìn)行識(shí)別,而傳輸層協(xié)議通過(guò)本發(fā)明進(jìn)行協(xié)議識(shí)別之前即可以通過(guò)現(xiàn)有技術(shù)進(jìn)行識(shí)別。實(shí)施例1本實(shí)施例提供了一種對(duì)接收到的數(shù)據(jù)包進(jìn)行快速協(xié)議識(shí)別的方法。如圖2、3所示,步驟101,接收到要進(jìn)行協(xié)議識(shí)別的數(shù)據(jù)包后,與根據(jù)分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配,該匹配為一次匹配過(guò)程。其中,所述的分層協(xié)議樹(shù)是根據(jù)協(xié)議的層次關(guān)系生成的,其層次關(guān)系與現(xiàn)有的分層協(xié)議的層次關(guān)系相對(duì)應(yīng)。包括一個(gè)根節(jié)點(diǎn)及與根節(jié)點(diǎn)具有一定層次關(guān)系的其他節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)代表一個(gè)協(xié)議,從根節(jié)點(diǎn)到所述其他節(jié)點(diǎn)的推導(dǎo)路徑上分別包含一個(gè)或一個(gè)以上的匹配條件,該匹配條件可以為分層協(xié)議樹(shù)各節(jié)點(diǎn)所對(duì)應(yīng)協(xié)議的協(xié)議特征數(shù)據(jù)。例如,如圖3所示,為分層協(xié)議樹(shù)舉例示意圖。其中第一層節(jié)點(diǎn)即根節(jié)點(diǎn)為A,表示a協(xié)議;第二層節(jié)點(diǎn)為B、C和F,分別表示b、c和f協(xié)議;第三層節(jié)點(diǎn)為D和E,表示d和e協(xié)議。其中a-f協(xié)議均為已有的協(xié)議,它們之間的協(xié)議層次結(jié)構(gòu)與已有的協(xié)議層次結(jié)構(gòu)完全對(duì)應(yīng),從根節(jié)點(diǎn)A到其他各個(gè)節(jié)點(diǎn)的推導(dǎo)路徑上包含一個(gè)或一個(gè)以上的匹配條件。具體地,數(shù)據(jù)包的包頭中包含有該數(shù)據(jù)包對(duì)應(yīng)于各應(yīng)用層協(xié)議的特征信息,將該特征信息從包頭中提取出來(lái)與分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配。整個(gè)匹配過(guò)程為一次匹配,即根據(jù)提取出的特征信息與所有的匹配條件進(jìn)行匹配之后再執(zhí)行后續(xù)的協(xié)議識(shí)別過(guò)程,識(shí)別完成后不需要再進(jìn)行匹配。步驟102,根據(jù)匹配結(jié)果分層查找對(duì)應(yīng)的協(xié)議。通過(guò)本實(shí)施例所述方法,對(duì)于接收到的數(shù)據(jù)包只通過(guò)一次深度識(shí)別匹配即能夠識(shí)別出所有的協(xié)議層次,因此檢測(cè)效率更高。另外,當(dāng)需要擴(kuò)展新的協(xié)議時(shí),只需要修改預(yù)存的分層協(xié)議樹(shù),然后用同樣的方法進(jìn)行協(xié)議識(shí)別即可,因此,無(wú)需增加新的協(xié)議插件也無(wú)需重新編譯,從而能夠?qū)崿F(xiàn)在線動(dòng)態(tài)擴(kuò)展協(xié)議。實(shí)施例2本實(shí)施例提供了另一種對(duì)接收到的數(shù)據(jù)包進(jìn)行快速協(xié)議識(shí)別的方法。如圖4所示,步驟201,接收到要進(jìn)行協(xié)議識(shí)別的數(shù)據(jù)包后,與根據(jù)分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配,具體地,可以與由匹配條件組成的檢測(cè)規(guī)則信息進(jìn)行匹配,該匹配為一次匹配過(guò)程。其中,所述的檢測(cè)規(guī)則信息是由推導(dǎo)路徑上的匹配條件組成的,該檢測(cè)規(guī)則信息與除根節(jié)點(diǎn)外的每個(gè)節(jié)點(diǎn)相對(duì)應(yīng)的。具體地,檢測(cè)規(guī)則信息可以通過(guò)正則表達(dá)式表示。另外,根據(jù)節(jié)點(diǎn)間具有的一定的層次關(guān)系,同一推導(dǎo)路徑上的后一層次節(jié)點(diǎn)的檢測(cè)規(guī)則信息還可以包括前一層次的節(jié)點(diǎn)的檢測(cè)規(guī)則信息。步驟202,根據(jù)匹配結(jié)果以分層協(xié)議樹(shù)的根節(jié)點(diǎn)為起點(diǎn)逐層向其他各層節(jié)點(diǎn)進(jìn)行查找。當(dāng)匹配結(jié)果包含滿(mǎn)足識(shí)別出某一節(jié)點(diǎn)的匹配條件時(shí)即將該節(jié)點(diǎn)所對(duì)應(yīng)的協(xié)議識(shí)別出來(lái),并繼續(xù)以該節(jié)點(diǎn)為起點(diǎn)進(jìn)行查找。如果匹配結(jié)果中還包含有滿(mǎn)足所述的某一節(jié)點(diǎn)所對(duì)應(yīng)的下一節(jié)點(diǎn),即子節(jié)點(diǎn)的匹配條件時(shí)就繼續(xù)以該下一節(jié)點(diǎn)為起點(diǎn)進(jìn)行逐層查找,如果匹配結(jié)果中不再包含滿(mǎn)足所述某一節(jié)點(diǎn)對(duì)應(yīng)的所有下一節(jié)點(diǎn)的匹配條件時(shí),那么識(shí)別出的協(xié)議為該某一節(jié)點(diǎn)對(duì)應(yīng)的協(xié)議。通過(guò)本實(shí)施例所述方法,除具有實(shí)施例1所述優(yōu)點(diǎn)之外,由于將各層協(xié)議的特征數(shù)據(jù)均集中寫(xiě)入到檢測(cè)規(guī)則信息中作為通用的特征數(shù)據(jù)進(jìn)行查找,因此可以通過(guò)查找引擎來(lái)加快協(xié)議識(shí)別的過(guò)程。另外,由于每一個(gè)子節(jié)點(diǎn)都通過(guò)相應(yīng)的匹配條件由其父節(jié)點(diǎn)識(shí)別出來(lái),因此,識(shí)別出的協(xié)議具有相應(yīng)的層次關(guān)系,因此識(shí)別效果更好。實(shí)施例3在本實(shí)施例中,還可以為分層協(xié)議樹(shù)的每個(gè)匹配條件設(shè)置標(biāo)識(shí)序號(hào),相應(yīng)的檢測(cè)規(guī)則信息也可以有相應(yīng)的標(biāo)識(shí)序號(hào)。匹配結(jié)果可以為具體的匹配條件或檢測(cè)規(guī)則信息,或者也可以為其相應(yīng)的標(biāo)識(shí)序號(hào)。由于匹配到的匹配條件可能有一個(gè)或多個(gè),因此匹配到的標(biāo)識(shí)序號(hào)也可能為一個(gè)或多個(gè),具體地,可以用數(shù)組的形式表示匹配到的標(biāo)識(shí)序號(hào)。另外,還可以設(shè)置識(shí)別平面表,該識(shí)別平面表是根據(jù)分層協(xié)議樹(shù)和匹配條件生成的。該識(shí)別平面表中包括上層節(jié)點(diǎn),下層節(jié)點(diǎn)及由上層節(jié)點(diǎn)查找到下層節(jié)點(diǎn)的匹配條件。其中,上層節(jié)點(diǎn)和下層節(jié)點(diǎn)也可以稱(chēng)為父節(jié)點(diǎn)和子節(jié)點(diǎn)。具體地,根據(jù)匹配結(jié)果進(jìn)行查找的過(guò)程為在識(shí)別平面表中,從分層協(xié)議樹(shù)的根節(jié)點(diǎn)開(kāi)始查找滿(mǎn)足匹配條件的下層節(jié)點(diǎn),根據(jù)查找到的下層節(jié)點(diǎn)再次查找滿(mǎn)足識(shí)別條件的該下層節(jié)點(diǎn)的下層節(jié)點(diǎn),直到該下層節(jié)點(diǎn)不再具有子節(jié)點(diǎn),或者所有匹配到的匹配條件都已用盡為止。通過(guò)本實(shí)施例所述方法,除具有實(shí)施例2所述優(yōu)點(diǎn)之外,由于通過(guò)識(shí)別平面表對(duì)分層協(xié)議樹(shù)的各層協(xié)議和匹配條件進(jìn)行了索引,因此查找速度更快,實(shí)現(xiàn)更方便。以下舉例說(shuō)明本實(shí)施例所述方法的識(shí)別過(guò)程,如圖3所示,假設(shè)a協(xié)議為T(mén)CP協(xié)議(傳輸層協(xié)議),b協(xié)議為Http協(xié)議(應(yīng)用層協(xié)議),d協(xié)議為BT協(xié)議(應(yīng)用層協(xié)議),c協(xié)議為FTP協(xié)議,f協(xié)議為語(yǔ)音互聯(lián)網(wǎng)(VoiceoverInternetProtocol,以下簡(jiǎn)稱(chēng)VOIP)協(xié)議等。假設(shè)從A節(jié)點(diǎn)到B節(jié)點(diǎn)的匹配條件為S1=“Get”或S2=“Post”,其標(biāo)識(shí)序號(hào)分別為1和2;假設(shè)從B節(jié)點(diǎn)到D節(jié)點(diǎn)的匹配條件為S3=“torrenthttp”,其標(biāo)識(shí)序號(hào)為3。通過(guò)本實(shí)施例所述方法,生成的對(duì)應(yīng)于匹配條件S1、S2和S3的檢測(cè)規(guī)則信息分別為D1=“Get”;D2=“Post”;D3=“torrenthttp”+“Get”/“Post”。其中,檢測(cè)規(guī)則信息的標(biāo)識(shí)序號(hào)分別為1、2和3。識(shí)別平面表如表1所示,表1當(dāng)開(kāi)始協(xié)議識(shí)別時(shí),例如假設(shè)接收到的數(shù)據(jù)包包頭中的特征信息為“…torrenthttp…Get…”,則根據(jù)該特征信息與分層協(xié)議樹(shù)中的所有的匹配條件進(jìn)行匹配后,匹配到的檢測(cè)規(guī)則信息為D1和D3,相應(yīng)的匹配到的標(biāo)識(shí)序號(hào)數(shù)組為[1,3]。在表1中,從根節(jié)點(diǎn)A開(kāi)始根據(jù)標(biāo)識(shí)序號(hào)“1”查找到子節(jié)點(diǎn)B節(jié)點(diǎn);再?gòu)腂節(jié)點(diǎn)開(kāi)始根據(jù)標(biāo)識(shí)序號(hào)“2”查找到子節(jié)點(diǎn)D節(jié)點(diǎn)。至此,查找到節(jié)點(diǎn)A->B->D,即識(shí)別出的協(xié)議為T(mén)CP->Http->BT。實(shí)施例4本實(shí)施例提供了一種能夠?qū)崿F(xiàn)上述協(xié)議識(shí)別方法的協(xié)議識(shí)別裝置。如圖5所示,該協(xié)議識(shí)別裝置包括識(shí)別核心模塊10,檢測(cè)引擎模塊20,協(xié)議處理模塊30及匹配條件提取模塊40。工作過(guò)程如下根據(jù)具有層次關(guān)系的協(xié)議生成具有層次關(guān)系的分層協(xié)議樹(shù),保存在識(shí)別核心模塊10和規(guī)則提取模塊40中。該分層協(xié)議樹(shù)包括多個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)的層次關(guān)系與現(xiàn)有的協(xié)議層次關(guān)系相對(duì)應(yīng),每個(gè)節(jié)點(diǎn)代表一個(gè)協(xié)議,從根節(jié)點(diǎn)到分層協(xié)議樹(shù)的其他節(jié)點(diǎn)的推導(dǎo)路徑上分別包含一個(gè)或一個(gè)以上的匹配條件,具體舉例可參見(jiàn)圖3。匹配條件提取模塊40根據(jù)預(yù)存的分層協(xié)議樹(shù)提取并生成匹配條件,發(fā)送給檢測(cè)引擎模塊20。當(dāng)開(kāi)始進(jìn)行協(xié)議識(shí)別時(shí),識(shí)別核心模塊10接收到要進(jìn)行識(shí)別的數(shù)據(jù)包后,將該數(shù)據(jù)包發(fā)送給檢測(cè)引擎模塊20。檢測(cè)引擎模塊20,根據(jù)該數(shù)據(jù)包中的特征數(shù)據(jù)與所有的匹配條件進(jìn)行匹配,并將匹配結(jié)果發(fā)送給識(shí)別核心模塊10。其中,檢測(cè)引擎模塊20可以通過(guò)現(xiàn)有的深度檢測(cè)芯片構(gòu)建。所述的匹配結(jié)果可以為匹配條件本身,或者為匹配條件的標(biāo)識(shí)序號(hào)。識(shí)別核心模塊10根據(jù)來(lái)自于匹配引擎模塊20的匹配結(jié)果,結(jié)合其自身保存的各協(xié)議對(duì)應(yīng)的由匹配條件構(gòu)成的檢測(cè)規(guī)則信息,按分層順序進(jìn)行協(xié)議的查找,直到最終識(shí)別出所對(duì)應(yīng)的協(xié)議。其中,各協(xié)議對(duì)應(yīng)的檢測(cè)規(guī)則信息是以標(biāo)識(shí)序號(hào)對(duì)應(yīng)不同的協(xié)議的形式來(lái)存儲(chǔ)的,其中各標(biāo)識(shí)序號(hào)代表各匹配條件。具體地,識(shí)別核心模塊10以所述分層協(xié)議樹(shù)的根節(jié)點(diǎn)為起點(diǎn)逐層向其他節(jié)點(diǎn)查找,當(dāng)匹配結(jié)果包含滿(mǎn)足某一節(jié)點(diǎn)的匹配條件時(shí)就識(shí)別該節(jié)點(diǎn)所對(duì)應(yīng)的協(xié)議,并繼續(xù)以該節(jié)點(diǎn)為起點(diǎn)進(jìn)行查找;如果匹配結(jié)果中還包含有滿(mǎn)足所述識(shí)別出的節(jié)點(diǎn)所對(duì)應(yīng)的下一節(jié)點(diǎn),即子節(jié)點(diǎn)的匹配條件時(shí)就繼續(xù)以該下一節(jié)點(diǎn)為起點(diǎn)進(jìn)行逐層查找,如果匹配結(jié)果中不再包含滿(mǎn)足所述某一節(jié)點(diǎn)對(duì)應(yīng)的所有下一節(jié)點(diǎn)的匹配條件時(shí),那么識(shí)別出的協(xié)議為該某一節(jié)點(diǎn)對(duì)應(yīng)的協(xié)議。識(shí)別完成后,將識(shí)別出多層協(xié)議后的數(shù)據(jù)包發(fā)送給協(xié)議處理模塊30。協(xié)議處理模塊30對(duì)來(lái)自于協(xié)議處理模塊30的已識(shí)別出多層協(xié)議的數(shù)據(jù)包進(jìn)行相應(yīng)的處理,然后根據(jù)需要,提供給IPS/IDS系統(tǒng)、UTM系統(tǒng)、基于應(yīng)用的帶寬系統(tǒng)、QoS系統(tǒng)、基于應(yīng)用的負(fù)載均衡系統(tǒng)、基于應(yīng)用的計(jì)費(fèi)系統(tǒng)等,應(yīng)用范圍十分廣泛。通過(guò)本實(shí)施例所述裝置,對(duì)于接收到的數(shù)據(jù)包只通過(guò)一次深度識(shí)別應(yīng)能夠發(fā)現(xiàn)所有的協(xié)議層次,因此檢測(cè)效率高。并且,由于將各層協(xié)議的特征數(shù)據(jù)均集中寫(xiě)入到檢測(cè)規(guī)則信息中作為通過(guò)的特征數(shù)據(jù)進(jìn)行查找,因此可以通過(guò)查找引擎來(lái)加快協(xié)議識(shí)別的過(guò)程。當(dāng)需要擴(kuò)展新的協(xié)議時(shí),只需要修改在識(shí)別核心10中預(yù)存的協(xié)議特征數(shù)據(jù)狀態(tài)樹(shù),并且規(guī)則提取模塊40也根據(jù)修改后的協(xié)議特征數(shù)據(jù)狀態(tài)樹(shù)提取新的檢測(cè)規(guī)則信息,然后用同樣的方法進(jìn)行協(xié)議識(shí)別即可,無(wú)需增加新的協(xié)議插件也無(wú)需重新編譯,從而能夠?qū)崿F(xiàn)在線動(dòng)態(tài)擴(kuò)展協(xié)議。另外,識(shí)別出的協(xié)議是有層次關(guān)系的,因此識(shí)別效果更好。最后所應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。權(quán)利要求1.一種協(xié)議識(shí)別方法,其特征在于包括將接收到的數(shù)據(jù)包與根據(jù)分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配,該匹配為一次匹配過(guò)程;根據(jù)匹配結(jié)果分層查找對(duì)應(yīng)的協(xié)議。2.根據(jù)權(quán)利要求1所述的協(xié)議識(shí)別方法,其特征在于所述將接收到的數(shù)據(jù)包與根據(jù)分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配具體包括對(duì)接收到的數(shù)據(jù)包的包頭信息提取應(yīng)用協(xié)議的特征信息,將所述特征信息與分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配。3.根據(jù)權(quán)利要求1或2所述的協(xié)議識(shí)別方法,其特征在于所述分層協(xié)議樹(shù)根據(jù)協(xié)議的層次關(guān)系生成,包括一個(gè)根節(jié)點(diǎn)及與根節(jié)點(diǎn)具有一定層次關(guān)系的其他節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)代表一個(gè)協(xié)議,從根節(jié)點(diǎn)到所述其他節(jié)點(diǎn)的推導(dǎo)路徑上分別包含一個(gè)或一個(gè)以上的匹配條件,由所述的匹配條件形成了所述每個(gè)其他節(jié)點(diǎn)的檢測(cè)規(guī)則信息。4.根據(jù)權(quán)利要求3所述的協(xié)議識(shí)別方法,其特征在于所述的匹配條件為各協(xié)議節(jié)點(diǎn)具有的協(xié)議特征數(shù)據(jù)。5.根據(jù)權(quán)利要求3所述的協(xié)議識(shí)別方法,其特征在于所述其他節(jié)點(diǎn)之間具有一定的層次關(guān)系,同一推導(dǎo)路徑上的后一層次節(jié)點(diǎn)的檢測(cè)規(guī)則信息包括前一層次的節(jié)點(diǎn)的檢測(cè)規(guī)則信息。6.根據(jù)權(quán)利要求3所述的協(xié)議識(shí)別方法,其特征在于還包括所述每個(gè)匹配條件具有標(biāo)識(shí)序號(hào),所述匹配結(jié)果為一個(gè)或者一個(gè)以上的標(biāo)識(shí)序號(hào)。7.根據(jù)權(quán)利要求3所述的協(xié)議識(shí)別方法,其特征在于根據(jù)匹配結(jié)果分層查找對(duì)應(yīng)的協(xié)議具體包括以根節(jié)點(diǎn)為起點(diǎn)逐層向所述的其他節(jié)點(diǎn)查找,當(dāng)匹配結(jié)果包含滿(mǎn)足某一節(jié)點(diǎn)的匹配條件時(shí)就繼續(xù)以所述的某一節(jié)點(diǎn)為起點(diǎn)進(jìn)行查找,如果匹配結(jié)果中還包含有滿(mǎn)足所述的某一節(jié)點(diǎn)所對(duì)應(yīng)的下一節(jié)點(diǎn)的匹配條件時(shí)就繼續(xù)以該下一節(jié)點(diǎn)為起點(diǎn)進(jìn)行逐層查找,如果匹配結(jié)果中不再包含滿(mǎn)足所述某一節(jié)點(diǎn)對(duì)應(yīng)的所有下一節(jié)點(diǎn)的匹配條件時(shí),那么識(shí)別出的協(xié)議為該某一節(jié)點(diǎn)對(duì)應(yīng)的協(xié)議。8.一種協(xié)議識(shí)別裝置,其特征在于包括匹配條件提取模塊,檢測(cè)引擎模塊和識(shí)別核心模塊,其中匹配條件提取模塊,用于根據(jù)分層協(xié)議樹(shù)生成匹配條件,并將匹配條件發(fā)送給檢測(cè)引擎模塊;檢測(cè)引擎模塊,用于根據(jù)來(lái)自于識(shí)別核心模塊的未經(jīng)檢測(cè)的數(shù)據(jù)包查找相匹配的所有匹配條件,并將查找得出的匹配結(jié)果發(fā)送給識(shí)別核心模塊;識(shí)別核心模塊,用于根據(jù)來(lái)自于檢測(cè)引擎模塊的匹配結(jié)果,結(jié)合其自身保存的各協(xié)議對(duì)應(yīng)的由匹配條件構(gòu)成的檢測(cè)規(guī)則信息,按分層順序進(jìn)行協(xié)議的查找,直到最終識(shí)別出所對(duì)應(yīng)的協(xié)議。9.根據(jù)權(quán)利要求8所述的協(xié)議識(shí)別裝置,其特征在于所述識(shí)別核心模塊保存的各協(xié)議對(duì)應(yīng)的檢測(cè)規(guī)則信息是以標(biāo)識(shí)序號(hào)對(duì)應(yīng)不同的協(xié)議的形式來(lái)存儲(chǔ)的,其中各標(biāo)識(shí)序號(hào)代表各匹配條件。10.根據(jù)權(quán)利要求8所述的協(xié)議識(shí)別裝置,其特征在于所述協(xié)議識(shí)別核心模塊用于根據(jù)來(lái)自于檢測(cè)引擎模塊的匹配結(jié)果,結(jié)合其自身保存的各協(xié)議對(duì)應(yīng)的檢測(cè)規(guī)則信息,以所述分層協(xié)議樹(shù)的根節(jié)點(diǎn)為起點(diǎn)逐層向其他節(jié)點(diǎn)查找,當(dāng)匹配結(jié)果包含滿(mǎn)足某一節(jié)點(diǎn)的匹配條件時(shí)就繼續(xù)以所述的某一節(jié)點(diǎn)為起點(diǎn)進(jìn)行查找,如果匹配結(jié)果中還包含有滿(mǎn)足所述的某一節(jié)點(diǎn)所對(duì)應(yīng)的下一節(jié)點(diǎn)的匹配條件時(shí)就繼續(xù)以該下一節(jié)點(diǎn)為起點(diǎn)進(jìn)行逐層查找,如果匹配結(jié)果中不再包含滿(mǎn)足所述某一節(jié)點(diǎn)對(duì)應(yīng)的所有下一節(jié)點(diǎn)的匹配條件時(shí),那么識(shí)別出的協(xié)議為該某一節(jié)點(diǎn)對(duì)應(yīng)的協(xié)議。全文摘要本發(fā)明涉及協(xié)議識(shí)別方法及裝置,其中方法包括將接收到的數(shù)據(jù)包與根據(jù)分層協(xié)議樹(shù)所確定的匹配條件進(jìn)行匹配,該匹配為一次匹配過(guò)程;根據(jù)匹配結(jié)果分層查找對(duì)應(yīng)的協(xié)議。裝置包括識(shí)別核心模塊,匹配條件提取模塊和檢測(cè)引擎模塊。通過(guò)本發(fā)明,可通過(guò)查找引擎加快識(shí)別過(guò)程,檢測(cè)效率高;能夠?qū)崿F(xiàn)在線動(dòng)態(tài)擴(kuò)展協(xié)議;識(shí)別出的協(xié)議有層次關(guān)系,識(shí)別效果更好。文檔編號(hào)H04L12/56GK101035131SQ20071006402公開(kāi)日2007年9月12日申請(qǐng)日期2007年2月16日優(yōu)先權(quán)日2007年2月16日發(fā)明者胡華強(qiáng)申請(qǐng)人:杭州華為三康技術(shù)有限公司