欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種網(wǎng)包分類方法和裝置與流程

文檔序號(hào):11959815閱讀:212來源:國知局
一種網(wǎng)包分類方法和裝置與流程
本發(fā)明涉及網(wǎng)絡(luò)技術(shù),特別涉及一種網(wǎng)包分類方法和裝置。
背景技術(shù)
:網(wǎng)包分類大致可理解為根據(jù)配置的分類規(guī)則,對(duì)網(wǎng)包包頭中各個(gè)不同字段的值進(jìn)行處理,得到匹配的分類規(guī)則,并執(zhí)行該規(guī)則配置的操作動(dòng)作。許多網(wǎng)絡(luò)設(shè)備提供的諸如訪問控制、流量控制、負(fù)載均衡、入侵檢測(cè)等功能均需要用到網(wǎng)包分類。相關(guān)技術(shù)中一種常用的網(wǎng)包分類方法是基于決策樹的網(wǎng)包分類,決策樹是根據(jù)預(yù)設(shè)的規(guī)則集(規(guī)則集包括很多分類規(guī)則)生成的描述網(wǎng)包分類過程的一種數(shù)據(jù)結(jié)構(gòu),當(dāng)網(wǎng)絡(luò)設(shè)備接收到網(wǎng)包時(shí),將按照該決策樹限定的分類過程最終找到與網(wǎng)包匹配的分類規(guī)則,并按照分類規(guī)則中的操作動(dòng)作對(duì)網(wǎng)包進(jìn)行處理,比如丟棄網(wǎng)包或者接受網(wǎng)包等。目前的問題是,在生成上述決策樹的過程中可能會(huì)出現(xiàn)規(guī)則復(fù)制現(xiàn)象,即某個(gè)分類規(guī)則由于覆蓋了分割點(diǎn)而被一分為二,從而導(dǎo)致決策樹的節(jié)點(diǎn)太多,決策樹規(guī)模過大;用于存儲(chǔ)決策樹的存儲(chǔ)器無法支持如此大的信息量,限制了決策樹對(duì)應(yīng)的規(guī)則集規(guī)模;而且較大的決策樹也使得決策樹的生成時(shí)間太長,效率太低,決策樹生成慢也使得對(duì)應(yīng)的網(wǎng)包分類的效率降低。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供一種網(wǎng)包分類方法和裝置,以降低用于進(jìn)行網(wǎng)包分類的決策樹的規(guī)模,提高決策樹的生成效率。具體地,本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:第一方面,提供一種網(wǎng)包分類方法,包括:采用循環(huán)分組法對(duì)初始規(guī)則集進(jìn)行分組,生成預(yù)設(shè)數(shù)目的子規(guī)則集,所述循環(huán)分組法包括:由待分組的規(guī)則集集合中選取規(guī)則集交疊率最高的目標(biāo)規(guī)則集,根據(jù)切分點(diǎn)對(duì)所述目標(biāo)規(guī)則集進(jìn)行切分得到兩個(gè)子規(guī)則集,所述兩個(gè)子規(guī)則集中的其中一個(gè)子規(guī)則集的規(guī)則集交疊率小于另一個(gè)子規(guī)則集的規(guī)則集交疊率;將所述兩個(gè)子規(guī)則集放入所述規(guī)則集集合中,并繼續(xù)對(duì)所述規(guī)則集集合中的子規(guī)則集進(jìn)行切分,直至所述規(guī)則集集合中的子規(guī)則集的數(shù)目達(dá)到所述預(yù)設(shè)數(shù)目;分別對(duì)每一個(gè)所述子規(guī)則集進(jìn)行建樹,得到與所述子規(guī)則集對(duì)應(yīng)的決策樹,所述決策樹用于對(duì)網(wǎng)包進(jìn)行分類處理。第二方面,提供一種網(wǎng)包分類裝置,包括:分組模塊,用于采用循環(huán)分組法對(duì)初始規(guī)則集進(jìn)行分組,生成預(yù)設(shè)數(shù)目的子規(guī)則集,所述循環(huán)分組法包括:由待分組的規(guī)則集集合中選取規(guī)則集交疊率最高的目標(biāo)規(guī)則集,根據(jù)切分點(diǎn)對(duì)所述目標(biāo)規(guī)則集進(jìn)行切分得到兩個(gè)子規(guī)則集,所述兩個(gè)子規(guī)則集中的其中一個(gè)子規(guī)則集的規(guī)則集交疊率小于另一個(gè)子規(guī)則集的規(guī)則集交疊率;將所述兩個(gè)子規(guī)則集放入所述規(guī)則集集合中,并繼續(xù)對(duì)所述規(guī)則集集合中的子規(guī)則集進(jìn)行切分,直至所述規(guī)則集集合中的子規(guī)則集的數(shù)目達(dá)到所述預(yù)設(shè)數(shù)目;建樹模塊,用于分別對(duì)每一個(gè)所述子規(guī)則集進(jìn)行建樹,得到與所述子規(guī)則集對(duì)應(yīng)的決策樹,所述決策樹用于對(duì)網(wǎng)包進(jìn)行分類處理。本申請(qǐng)實(shí)施例提供的網(wǎng)包分類方法和裝置,通過將規(guī)則集分組成交疊率不同的兩個(gè)子規(guī)則集,并針對(duì)該子規(guī)則集進(jìn)行建樹,這種方式就可以實(shí)現(xiàn)對(duì)用于進(jìn)行網(wǎng)包分類的決策樹規(guī)模的降低,提高決策樹的生成效率。附圖說明圖1是一個(gè)例子中網(wǎng)包分類的原理圖;圖2是一個(gè)例子中決策樹的結(jié)構(gòu)形式圖;圖3是一個(gè)例子中網(wǎng)包分類方法的流程圖;圖4是一個(gè)例子中網(wǎng)包分類裝置的結(jié)構(gòu)圖;圖5是一個(gè)例子中循環(huán)分組法的示意圖;圖6是一個(gè)例子中的使用循環(huán)分組法的分組流程圖;圖7是一個(gè)例子中網(wǎng)包分類裝置的結(jié)構(gòu)圖;圖8是一個(gè)例子中網(wǎng)包分類裝置的結(jié)構(gòu)圖;圖9是一個(gè)例子中傳統(tǒng)方式的全補(bǔ)洞決策樹示意圖;圖10是一個(gè)例子中部分補(bǔ)洞方式下的決策樹示意圖;圖11是一個(gè)例子中的決策樹結(jié)構(gòu)示意圖;圖12是一個(gè)例子中的節(jié)點(diǎn)合并示意圖;圖13是一個(gè)例子中網(wǎng)包分類裝置的結(jié)構(gòu)圖;圖14是一個(gè)例子中的網(wǎng)包分類方法的實(shí)施效果圖一;圖15是一個(gè)例子中的網(wǎng)包分類方法的實(shí)施效果圖二。具體實(shí)施方式在網(wǎng)絡(luò)設(shè)備提供的諸如訪問控制、流量控制、入侵檢測(cè)等功能中,均可能使用到“網(wǎng)包分類”,網(wǎng)包分類例如是網(wǎng)絡(luò)設(shè)備對(duì)接收到的網(wǎng)包(Packet),根據(jù)決策樹進(jìn)行分類規(guī)則的匹配查找,最終得到與該網(wǎng)包匹配的分類規(guī)則,按照該分類規(guī)則中的操作動(dòng)作對(duì)網(wǎng)包進(jìn)行處理(例如,丟棄網(wǎng)包)。上述的網(wǎng)包分類過程可以參見圖1的示例,圖1簡單示例了網(wǎng)包分類的原理。如圖1所示,網(wǎng)包分類實(shí)際上是從規(guī)則集11中找到與待分類的網(wǎng)包12匹配的分類規(guī)則,規(guī)則集11包括很多分類規(guī)則,該分類規(guī)則例如是下表1的形式:表1分類規(guī)則RuleID源IP目的IP源端口目的端口操作動(dòng)作0010.0.0.0/010.0.8.28/32800~65535丟棄如表1所示,是示例的一種分類規(guī)則的形式;需要說明的是,表1只是示例了分類規(guī)則的其中一部分信息,分類規(guī)則還可以包括其他信息(比如,該規(guī)則的優(yōu)先級(jí))。規(guī)則集11中包括很多這樣的分類規(guī)則,待分類的網(wǎng)包12,如果其中的各個(gè)字段能夠匹配上述表1中的各個(gè)字段,則表明網(wǎng)包與分類規(guī)則匹配;例如,網(wǎng)包12中包括的源IP、目的IP、源端口和目的端口,均與表1中各字段匹配,那么表1的分類規(guī)則就是與網(wǎng)包12匹配的分類規(guī)則,將按照該分類規(guī)則對(duì)應(yīng)的操作動(dòng)作“丟棄”來處理網(wǎng)包12,即將網(wǎng)包12丟棄。而圖1即示意了如何從規(guī)則集11中查找到與網(wǎng)包12匹配的分類規(guī)則的過程,整個(gè)過程可以包括三部分:分組、建樹和查找;如下:分組器(TreeSplitter)執(zhí)行的分組處理:對(duì)一個(gè)規(guī)則集執(zhí)行決策樹的建樹算法時(shí),通常不可避免地會(huì)產(chǎn)生規(guī)則裂變和復(fù)制,同時(shí)隨著規(guī)則之間重疊情況的加劇,進(jìn)而導(dǎo)致決策樹的規(guī)模發(fā)生爆炸;將規(guī)則集劃分為更小的子集可以減少規(guī)則之間的重疊度,再分別針對(duì)每個(gè)子集進(jìn)行建樹將有效減少最終生成決策樹的規(guī)模?;诖?,才要進(jìn)行規(guī)則集的分組,并分別針對(duì)各個(gè)分組進(jìn)行建樹。例如,規(guī)則集11中包括很多的分類規(guī)則,本實(shí)施例將該規(guī)則集中的分類規(guī)則進(jìn)行分組,得到很多的子規(guī)則集;例如,假設(shè)規(guī)則集11中有50條分類規(guī)則,本步驟將規(guī)則集分成了三個(gè)子規(guī)則集,一個(gè)子規(guī)則集包括10條規(guī)則,另一個(gè)子規(guī)則集包括20條規(guī)則,另一個(gè)子規(guī)則集也包括20條規(guī)則。建樹器(TreeBuilder)執(zhí)行的建樹處理:本步驟是對(duì)“分組”步驟中得到的各個(gè)子規(guī)則集,分別使用建樹算法進(jìn)行決策樹的建立,每一個(gè)子規(guī)則集經(jīng)過建樹步驟都能得到對(duì)應(yīng)該子規(guī)則集的決策樹,如圖1中所示的其中一個(gè)決策樹13。決策樹是描述分類過程的一種數(shù)據(jù)結(jié)構(gòu),圖2示例了一種決策樹的結(jié)構(gòu)形式。結(jié)合圖2,決策樹相當(dāng)于描述了一種分類過程,假設(shè)在圖2中所示的決策樹尋找二維空間點(diǎn)P(3,2)為例,該P(yáng)(3,2)表示待分類的網(wǎng)包中具有兩個(gè)維度,一個(gè)維度X是“源IP”,另一個(gè)維度Y是“目的端口號(hào)”(僅是舉例),并且每一個(gè)維度都可以用數(shù)字來表示,源IP的取值代表數(shù)字是3,目的端口號(hào)取值代表數(shù)字是2,那么為P(3,2)尋找匹配的分類規(guī)則,即尋找源IP和目的端口號(hào)能與上述網(wǎng)包對(duì)應(yīng)維度的取值相同的分類規(guī)則。在圖2中,查找流程如下:從決策樹根節(jié)點(diǎn)開始沿樹進(jìn)行查找,在決策樹根節(jié)點(diǎn)位置進(jìn)行匹配,根節(jié)點(diǎn)Cut1以維度Y作為分割維度,以閾值3作為分割點(diǎn),而P點(diǎn)在維度Y上是2,小于3,故查找邏輯轉(zhuǎn)向根節(jié)點(diǎn)的左孩子節(jié)點(diǎn)(leftchildnode)繼續(xù)遞歸地進(jìn)行查找;此時(shí)在節(jié)點(diǎn)Cut2處的分割維度為X,分割點(diǎn)是閾值2,而P點(diǎn)的維度X的取值是3,大于等于2,故查找邏輯轉(zhuǎn)向該節(jié)點(diǎn)的右孩子節(jié)點(diǎn)(rightchildnode)繼續(xù)遞歸地進(jìn)行查找,以此類推,查找邏輯順著虛線箭頭所指的路徑直至葉子節(jié)點(diǎn)得到匹配的分類規(guī)則是R5,即與P(3,2)表示的網(wǎng)包對(duì)應(yīng)的規(guī)則是R5。可見,在決策樹中涉及到兩個(gè)關(guān)鍵因素,即分割維度和分割點(diǎn),按照分割維度和分割點(diǎn)依次將網(wǎng)包進(jìn)行分類。如上所述,在決策樹中可以使用“分割”(cut),分割維度是根據(jù)決策樹進(jìn)行分類規(guī)則查找時(shí)用于指示查找路徑的規(guī)則維度信息,而分割點(diǎn)是在根據(jù)分割維度進(jìn)行規(guī)則查找時(shí)在該維度上的閾值,用于根據(jù)該閾值指示在該維度上的不同查找路徑。如圖1所示,上述的“分組”和“建樹”步驟,可以是均由中央處理器(CentralProcessingUnit,簡稱:CPU)執(zhí)行,由CPU執(zhí)行邏輯指令對(duì)規(guī)則集11進(jìn)行分組和建樹的處理,得到多個(gè)決策樹。并且,CPU可以將上述各個(gè)決策樹下發(fā)到硬件現(xiàn)場(chǎng)可編程門陣列(Field-ProgrammableGateArray,簡稱:FPGA),由FPGA接收待分類的網(wǎng)包12,并根據(jù)CPU下發(fā)的決策樹進(jìn)行分類規(guī)則的查找。查找處理:本步驟是由FPGA執(zhí)行,在上一步驟的“建樹”中,CPU得到的分別對(duì)應(yīng)各個(gè)子規(guī)則集的決策樹,將分別下發(fā)到各個(gè)查找引擎(LookupEngine)14中,查找引擎14可以是負(fù)責(zé)根據(jù)決策樹進(jìn)行匹配規(guī)則查找的應(yīng)將。FPGA在接收到網(wǎng)包12后,各個(gè)查找引擎都將會(huì)根據(jù)各自的決策樹進(jìn)行查找,得到與網(wǎng)包12匹配的規(guī)則。最后各個(gè)查找引擎得到的分類規(guī)則都將送入優(yōu)先級(jí)仲裁器(PriorityArbitrator)15,由優(yōu)先級(jí)仲裁器按照分類規(guī)則的優(yōu)先級(jí)信息進(jìn)行排序,選取優(yōu)先級(jí)最高的分類規(guī)則作為與網(wǎng)包12匹配的分類規(guī)則輸出。例如可以是輸出匹配的分類規(guī)則的規(guī)則號(hào)(RuleID),根據(jù)規(guī)則號(hào)再得到對(duì)應(yīng)的分類規(guī)則。在上述基本原理介紹的基礎(chǔ)上,下面描述本發(fā)明實(shí)施例的網(wǎng)包分類方法。圖3示例了一種網(wǎng)包分類方法的流程,可以包括:301、采用循環(huán)分組法對(duì)初始規(guī)則集進(jìn)行分組,生成預(yù)設(shè)數(shù)目的子規(guī)則集,所述循環(huán)分組法包括:由待分組的規(guī)則集集合中選取規(guī)則集交疊率最高的目標(biāo)規(guī)則集,根據(jù)切分點(diǎn)對(duì)所述目標(biāo)規(guī)則集進(jìn)行切分得到兩個(gè)子規(guī)則集,所述兩個(gè)子規(guī)則集中的其中一個(gè)子規(guī)則集的規(guī)則集交疊率小于另一個(gè)子規(guī)則集的規(guī)則集交疊率;將所述兩個(gè)子規(guī)則集放入所述規(guī)則集集合中,并繼續(xù)對(duì)規(guī)則集集合中的子規(guī)則集進(jìn)行切分,直至所述規(guī)則集集合中的子規(guī)則集的數(shù)目達(dá)到所述預(yù)設(shè)數(shù)目;302、分別對(duì)每一個(gè)子規(guī)則集進(jìn)行建樹,得到與子規(guī)則集對(duì)應(yīng)的決策樹,所述決策樹用于對(duì)網(wǎng)包進(jìn)行分類處理。其中,在圖3所示的流程中,主要是對(duì)上述的“分組”步驟進(jìn)行了改進(jìn),在將規(guī)則集劃分為各個(gè)子規(guī)則集時(shí),遵循如下規(guī)則:將大的規(guī)則集切分成一個(gè)較大的較簡單的子集、以及一個(gè)較小的較復(fù)雜的子集,按照這種規(guī)則集的切分規(guī)則進(jìn)行分組,將有助于降低用于進(jìn)行網(wǎng)包分類的決策樹的規(guī)模,縮短決策樹的生成時(shí)間。可選的,本實(shí)施例也可能會(huì)出現(xiàn)上述切分得到的兩個(gè)子集包括的分類規(guī)則數(shù)目相同的情況。這種分組規(guī)則的改進(jìn)對(duì)應(yīng)于圖1中的“分組器”部分的邏輯指令,這部分邏輯指令可以是存儲(chǔ)在CPU的存儲(chǔ)器中,并由CPU的處理器調(diào)用該指令執(zhí)行對(duì)規(guī)則集進(jìn)行分組的操作。如圖4所示,該分組器的邏輯指令對(duì)應(yīng)于存儲(chǔ)器中的分組模塊41,存儲(chǔ)器中還包括建樹模塊42,其中,分組模塊41用于執(zhí)行步驟301的處理,建樹模塊42用于執(zhí)行步驟302的處理。在步驟301中,可以采用“循環(huán)分組法”對(duì)初始的規(guī)則集進(jìn)行分組,得到預(yù)設(shè)數(shù)目的子規(guī)則集。結(jié)合參見圖5,示例了該循環(huán)分組法的原理,在圖5所示的循環(huán)分組法進(jìn)行規(guī)則集分組的操作中,將涉及到如下幾個(gè)基本概念,這些概念是對(duì)于一個(gè)規(guī)則集而言的,對(duì)于一個(gè)給定的規(guī)則集(RS,ruleset)來說,這些參數(shù)均是固定的。交疊率(overlap_rate,olr):該參數(shù)是針對(duì)某條分類規(guī)則在某個(gè)維度而言的。對(duì)于一個(gè)指定維度D,該分類規(guī)則所在的規(guī)則集中的所有規(guī)則在這個(gè)維度上的分割點(diǎn)可以構(gòu)成一個(gè)分割點(diǎn)集合(例如,在圖2所示的例子中,維度X上的分割點(diǎn)2,維度Y上的分割點(diǎn)3等),每兩個(gè)相鄰的分割點(diǎn)可以構(gòu)成一個(gè)封閉的分割區(qū)段,即分割區(qū)段是兩個(gè)分割點(diǎn)之間的區(qū)域。對(duì)于某條規(guī)則而言,該分類規(guī)則在所述維度上的取值所覆蓋的分割區(qū)段個(gè)數(shù)定義為該條規(guī)則在該維度上的交疊率olr,該交疊率的值為一個(gè)大于1的整數(shù)。平均交疊率(avg_olr):該參數(shù)是針對(duì)某個(gè)維度而言的。對(duì)于一個(gè)指定維度D而言,所有分類規(guī)則在這個(gè)維度上的交疊率求和除以規(guī)則總數(shù),被定義為維度D的平均交疊率。交疊率權(quán)重(p_olr):該參數(shù)依然是針對(duì)某條規(guī)則在某個(gè)維度而言的。對(duì)于一個(gè)指定維度D而言,規(guī)則集中所有規(guī)則的交疊率均可以求出,假設(shè)規(guī)則集中有n_rules條分類規(guī)則,每條規(guī)則都有自己在該維度上的交疊率,則維度D上的交疊率個(gè)數(shù)也是n_rules個(gè),將這些交疊率按照取值從小到大排序,其中規(guī)則r1可能排在的位置i∈(0,n_rules-1),此時(shí)規(guī)則r1的交疊率權(quán)重p_olr定義為:p_olr=((i+1)*100)/(n_rules)%。規(guī)則集的切分點(diǎn)(p_cr):切分點(diǎn)包括兩個(gè)關(guān)鍵參數(shù),即切分維度dim_c和切分點(diǎn)交疊率權(quán)重p_olr_c,并且,p_olr_c是對(duì)應(yīng)于dim_c指定的維度而言。假設(shè)對(duì)于一個(gè)選定的p_olr_c,將規(guī)則集劃分為兩個(gè)子規(guī)則集,分別為sub_l和sub_r,其中,sub_l中的每條分類規(guī)則在維度dim_c上的p_olr均小于等于p_olr_c,而sub_r中的每條分類規(guī)則在維度dim_c上的p_olr均大于p_olr_c。例如,可以將包含N條規(guī)則的規(guī)則集劃分為(N*p_olr_c)條規(guī)則的sub_l、以及(N*(1-p_olr_c))條規(guī)則的sub_r。即要確定切分點(diǎn),則要確定切分維度和切分點(diǎn)交疊率權(quán)重,在該切分維度上,根據(jù)切分點(diǎn)交疊率權(quán)重將規(guī)則集劃分為各個(gè)子規(guī)則集。如上可以看到,在將一個(gè)規(guī)則集切分為兩個(gè)子規(guī)則集時(shí),可以使用“切分”(split),其中的切分維度是用于在該維度上對(duì)規(guī)則集中的各個(gè)分類規(guī)則進(jìn)行分組,而切分點(diǎn)是在上述切分維度上依據(jù)該切分點(diǎn)將規(guī)則集中的各個(gè)分類規(guī)則進(jìn)行分組的臨界位置。規(guī)則集交疊率(rs_olr):該參數(shù)針對(duì)規(guī)則集而言。對(duì)于一個(gè)指定的規(guī)則集而言,其各個(gè)維度的平均交疊率avg_olr是確定的,將所有維度的不為1的avg_olr進(jìn)行平均則是規(guī)則集的rs_olr;例如,如果一個(gè)規(guī)則集的avg_olr為1,那么通常該規(guī)則集中的各個(gè)分類規(guī)則的交疊率都為1,否則,規(guī)則集的vg_olr不為1。這個(gè)參數(shù)可以衡量規(guī)則集整體的復(fù)雜程度。在圖5的循環(huán)分組法進(jìn)行的規(guī)則集分組中,將使用到上述的幾個(gè)概念。結(jié)合圖5以及圖6所示的分組流程進(jìn)行說明,包括:601、將待分組的規(guī)則集輸入規(guī)則集列表中;例如,待分組的規(guī)則集可以是圖1中的規(guī)則集11,圖5中的規(guī)則集列表(rs_list)可以是一個(gè)雙向鏈表,即按照?qǐng)D5所示的箭頭方向,由規(guī)則集列表中移出一個(gè)規(guī)則集后,經(jīng)過切分將其切分成兩個(gè)規(guī)則集,再插入到該列表中;接著再進(jìn)行循環(huán),即繼續(xù)移出一個(gè)規(guī)則集并切分成兩個(gè)規(guī)則集,再插入,直至規(guī)則集列表中的規(guī)則集數(shù)目達(dá)到預(yù)設(shè)數(shù)目。本實(shí)施例可以將規(guī)則集列表中的規(guī)則集稱為子規(guī)則集(Sub_RS),待分組的初始的規(guī)則集可以輸入到該規(guī)則集列表中,然后執(zhí)行上述的循環(huán)分組操作。602、由規(guī)則集列表中選取一個(gè)子規(guī)則集移出;例如,如果規(guī)則集列表中只有一個(gè)初始剛剛輸入的待分組的規(guī)則集,可能此時(shí)只有一個(gè)規(guī)則集,那就將該規(guī)則集取出即可;經(jīng)過分組后,規(guī)則集列表中的規(guī)則集的數(shù)目將至少為兩個(gè),此時(shí)可以稱為子規(guī)則集,從該至少兩個(gè)子規(guī)則集中選擇一個(gè)子規(guī)則集取出。本步驟中,移出的子規(guī)則集可以遵循如下原則:以規(guī)則集交疊率rs_olr為依據(jù),選取一個(gè)規(guī)則集交疊率rs_olr最大的子規(guī)則集,因?yàn)閞s_olr可以衡量該規(guī)則集整體的復(fù)雜程度,而本實(shí)施例更加傾向于將較為復(fù)雜的規(guī)則集切分為更小的子規(guī)則集進(jìn)行建樹。此外,本實(shí)施例也可以將上述的“規(guī)則集列表”稱為“待分組的規(guī)則集集合”,并且將選取移出的子規(guī)則集稱為“目標(biāo)規(guī)則集”,而由圖5中所示的“規(guī)則集選取器”來按照上述原則從待分組的規(guī)則集集合中移出一個(gè)目標(biāo)規(guī)則集,繼續(xù)執(zhí)行603。603、選取切分點(diǎn),并根據(jù)切分點(diǎn)對(duì)目標(biāo)規(guī)則集進(jìn)行切分,得到第一子規(guī)則集和第二子規(guī)則集;例如,可以由圖5中的切分點(diǎn)選取器來選取切分點(diǎn),并根據(jù)切分點(diǎn)來對(duì)規(guī)則集進(jìn)行一分為二的切分。本實(shí)施例中,目標(biāo)規(guī)則集將被切分點(diǎn)拆分成兩個(gè)子規(guī)則集,例如可以稱為第一子規(guī)則集和第二子規(guī)則集,其中,第一子規(guī)則集的規(guī)則集交疊率小于第二子規(guī)則集的規(guī)則集交疊率,并且,一般情況下,第一子規(guī)則集包括的分類規(guī)則數(shù)目會(huì)大于第二子規(guī)則集包括的分類規(guī)則數(shù)目,即根據(jù)切分點(diǎn)拆分得到的兩個(gè)子規(guī)則集,一個(gè)是較大較簡單的規(guī)則集,另一個(gè)是較小較復(fù)雜的規(guī)則集,這種分組方式能夠使得對(duì)于該規(guī)則集建樹的決策樹的規(guī)模得到縮小。在一個(gè)例子中,本實(shí)施例提供一種切分點(diǎn)的選取方式:如上面提到過的,切分點(diǎn)的確定涉及兩個(gè)關(guān)鍵因素,即切分維度dim_c和切分點(diǎn)交疊率權(quán)重p_olr_c。如圖7所示,本實(shí)施例中的分組模塊可以包括:因素選取單元71和規(guī)則切分單元72;其中,因素選取單元71,用于根據(jù)交疊率為1的規(guī)則的占比以及平均交疊率,選取切分維度,并將交疊率為1的位置作為切分點(diǎn)。例如,切分維度的選取中,可以采用兩參數(shù)加權(quán)方式,一個(gè)參數(shù)是該維度上交疊率為1的規(guī)則條數(shù)所占的比重,該參數(shù)表示的特征是簡單規(guī)則的占比,另一個(gè)參數(shù)是該維度上規(guī)則的平均交疊率;如果將上述的占比用“x”表示,將平均交疊率用“y”表示,那么每個(gè)維度都要計(jì)算w=a*x+b*y,這就是兩個(gè)參數(shù)加權(quán),權(quán)重值a和b可以根據(jù)實(shí)際情況設(shè)定,根據(jù)對(duì)各個(gè)維度計(jì)算得到的w進(jìn)行比較,選取w值最大的維度作為切分維度,因?yàn)楸緦?shí)施例傾向于盡量選擇簡單規(guī)則占比最多的維度,并且復(fù)雜度最大的維度,所以才采用兩參數(shù)加權(quán)的方式來計(jì)算。規(guī)則切分單元72,用于在因素選取單元71確定的切分維度上,根據(jù)切分點(diǎn)交疊率為1,將目標(biāo)規(guī)則集中的交疊率等于1的分類規(guī)則劃分入兩個(gè)子規(guī)則集中的其中一個(gè)子規(guī)則集,并將交疊率大于1的分類規(guī)則劃分入兩個(gè)子規(guī)則集中的另一個(gè)子規(guī)則集,例如是將交疊率等于1的分類規(guī)則劃分入第一子規(guī)則集,將交疊率大于1的分類規(guī)則劃分入第二子規(guī)則集。使用以上方式得到的p_cr對(duì)規(guī)則集進(jìn)行分組,則得到的兩個(gè)子規(guī)則集中有一個(gè)將具有特殊的性質(zhì),即在一個(gè)特定的dim上(p_cr指定的dim)上的avg_olr參數(shù)為1。604、將第一子規(guī)則集和第二子規(guī)則集放入規(guī)則集列表中;例如,圖5中將根據(jù)切分點(diǎn)拆分規(guī)則集得到的兩個(gè)子規(guī)則集,又插入到規(guī)則集列表中,這樣規(guī)則集列表中的子規(guī)則集的數(shù)目也增加。605、判斷規(guī)則集列表中的子規(guī)則集的數(shù)目,是否達(dá)到預(yù)設(shè)數(shù)目;例如,本步驟中,如果判斷結(jié)果是已經(jīng)達(dá)到預(yù)設(shè)數(shù)目,則本次規(guī)則集分組的流程結(jié)束,不再進(jìn)行循環(huán)操作;如果判斷結(jié)果是尚未達(dá)到預(yù)設(shè)數(shù)目,則返回執(zhí)行602,繼續(xù)進(jìn)行循環(huán)分組,直至規(guī)則集列表的子規(guī)則集的數(shù)目達(dá)到預(yù)設(shè)數(shù)目。在完成分組操作后,還可以繼續(xù)由建樹模塊分別對(duì)每一個(gè)子規(guī)則集進(jìn)行建樹,得到與子規(guī)則集對(duì)應(yīng)的決策樹,所述決策樹用于對(duì)網(wǎng)包進(jìn)行分類處理。例如,在FPGA中,對(duì)待分類的網(wǎng)包,可以分別根據(jù)每一個(gè)決策樹進(jìn)行匹配,得到至少一個(gè)分類規(guī)則,選取至少一個(gè)分類規(guī)則中的優(yōu)先級(jí)最高的規(guī)則作為目標(biāo)規(guī)則,并根據(jù)該目標(biāo)規(guī)則對(duì)所述網(wǎng)包進(jìn)行處理。在另一個(gè)實(shí)施例中,本實(shí)施例的網(wǎng)包分類方法,還可以對(duì)“建樹”步驟進(jìn)行改進(jìn),設(shè)計(jì)一種快速建樹算法。如上述圖2中提到的,建樹過程涉及到兩個(gè)關(guān)鍵因素,即分割維度和分割點(diǎn),決策樹實(shí)際上是根據(jù)分割維度和分割點(diǎn)生成的描述分類過程的數(shù)據(jù)結(jié)構(gòu)。本實(shí)施例中,對(duì)于分割維度的選擇遵循重疊度最小原則,即盡量地選擇規(guī)則最分散的維度進(jìn)行分割,而直觀上來看重疊度小的一個(gè)直接表現(xiàn)就是分割點(diǎn)數(shù)目多,所以本實(shí)施例選擇分割點(diǎn)數(shù)目最多的維度作為分割維度,比如針對(duì)當(dāng)前規(guī)則集的各個(gè)維度分別統(tǒng)計(jì)該維度的分割點(diǎn)數(shù)目,選取分割點(diǎn)數(shù)目最多的維度作為分割維度。同時(shí)直觀的感受,將分割維度中的所有分割點(diǎn)在分割點(diǎn)數(shù)目上的中間位置作為目標(biāo)分割點(diǎn),從該目標(biāo)分割點(diǎn)進(jìn)行分割會(huì)使得左右兩個(gè)子規(guī)則集的規(guī)則數(shù)目接近相等。例如,在具體實(shí)施中,可以將分割維度上的各個(gè)分割點(diǎn)進(jìn)行排序,比如為每個(gè)分割點(diǎn)進(jìn)行標(biāo)識(shí),并按照標(biāo)識(shí)進(jìn)行排序,大致選取位于排序中部的位置作為目標(biāo)分割點(diǎn)。需要說明的是,這里的目標(biāo)分割點(diǎn)只是一個(gè)大概的位置表述,并不一定有個(gè)分割點(diǎn)使得左右兩個(gè)子規(guī)則集的規(guī)則數(shù)目完全相等,只要接近相等即可。在對(duì)子規(guī)則集進(jìn)行建樹的過程中,可以使用上述的分割維度和分割點(diǎn)的確定原則對(duì)子規(guī)則集進(jìn)行分割。例如,假設(shè)待建樹的子規(guī)則集包括11條分類規(guī)則,對(duì)于該子規(guī)則集,可以根據(jù)上述的原則確定分割維度和分割點(diǎn)進(jìn)行分割,得到兩個(gè)分割子集,例如可以稱為第一子集(例如,包括5條規(guī)則)和第二子集(例如,包括6條規(guī)則)。接著,分別對(duì)于第一子集和第二子集繼續(xù)分割,每個(gè)子集在分割時(shí)都仍然需要確定分割維度和分割點(diǎn),確定原則同上述的原則,比如,在對(duì)其中的第一子集繼續(xù)分割時(shí),同樣是選取分割點(diǎn)最多的維度作為分割維度,從所述分割維度中選擇目標(biāo)分割點(diǎn)進(jìn)行分割,目標(biāo)分割點(diǎn)位于所述分割維度中所有分割點(diǎn)的中間位置。以此類推,直至分割得到的每個(gè)分割子集在任一維度上包括一個(gè)分割區(qū)段,該最終分割得到的子集可以包括至少一個(gè)分類規(guī)則。上述的建樹原理可以應(yīng)用于圖1的建樹器,建樹器對(duì)應(yīng)的是用于實(shí)現(xiàn)針對(duì)子規(guī)則集進(jìn)行建樹的邏輯指令,分別對(duì)每一個(gè)子規(guī)則集進(jìn)行建樹,這些邏輯指令也可以稱為建樹模塊。圖8示例了該建樹模塊的結(jié)構(gòu),可以包括:因素選擇單元81和決策樹建立單元82,其中,因素選擇單元81,用于進(jìn)行快速分割法中的分割維度和目標(biāo)分割點(diǎn)的選取,包括:選取分割點(diǎn)最多的維度作為分割維度,從所述分割維度中選擇用于進(jìn)行分割的目標(biāo)分割點(diǎn),其中,所述目標(biāo)分割點(diǎn)位于所述分割維度中所有分割點(diǎn)的中間位置;決策樹建立單元82,用于采用所述快速分割法對(duì)所述子規(guī)則集進(jìn)行分割,直至分割后形成的每個(gè)分割子集在任一維度上包括一個(gè)分割區(qū)段;其中,在根據(jù)因素選擇單元81選取的分割維度和目標(biāo)分割點(diǎn)分割所述子規(guī)則集時(shí),得到兩個(gè)分割子集。上述的快速建樹方式能夠加快建樹過程的執(zhí)行效率,但是需要說明的是,在使用步驟301中的分組方式進(jìn)行分組后,可以運(yùn)用其他多種建樹算法進(jìn)行建樹均可以達(dá)到減小決策樹規(guī)模的效果,并不僅僅局限于上述的快速建樹方式。此外,建樹模塊在進(jìn)行建樹時(shí),還可以根據(jù)不同的規(guī)則集采用不同的建樹算法,例如,建樹模塊中的因素選擇單元可以判斷待建樹的子規(guī)則集的規(guī)則集交疊率是否小于某個(gè)設(shè)定的閾值,該閾值可以是用于區(qū)分較大較簡單規(guī)則集與較小較復(fù)雜規(guī)則集的數(shù)值;如果該子規(guī)則集的規(guī)則集交疊率小于閾值,表示該子規(guī)則集是較大較簡單規(guī)則集,可以采用上述的快速建樹方式確定分割維度和分割點(diǎn)并進(jìn)行建樹,而如果該子規(guī)則集的規(guī)則集交疊率大于閾值,則表示該子規(guī)則集是較小較復(fù)雜規(guī)則集,則可以使用針對(duì)高復(fù)雜度的建樹算法進(jìn)行建樹(例如hypersplit,或者qualityfirst),這樣做既保證了復(fù)雜規(guī)則集的建樹質(zhì)量,又兼顧了簡單規(guī)則集的建樹速度。在又一個(gè)實(shí)施例中,本實(shí)施例的網(wǎng)包分類方法,為了進(jìn)一步縮小決策樹的規(guī)模,在生成預(yù)設(shè)數(shù)目的子規(guī)則集之后,分別對(duì)每一個(gè)子規(guī)則集進(jìn)行建樹之前,對(duì)于每一個(gè)子規(guī)則集進(jìn)行補(bǔ)洞:在該子規(guī)則集中增加一條黑洞規(guī)則,所述黑洞規(guī)則包括N個(gè)維度,N是自然數(shù),所述N個(gè)維度中包括n個(gè)非敏感維度,n大于等于1且小于N。該補(bǔ)洞的處理可以由CPU上的補(bǔ)洞模塊對(duì)應(yīng)的邏輯執(zhí)行。上述對(duì)于子規(guī)則集的補(bǔ)洞執(zhí)行的是“部分補(bǔ)洞”方式,部分補(bǔ)洞即所述的黑洞規(guī)則在一部分維度上表現(xiàn)為非敏感維度,剩余的維度設(shè)置為全*特性;其中,“非敏感維度”的特點(diǎn)是,在建樹的過程中會(huì)忽略黑洞規(guī)則的非敏感維度,黑洞規(guī)則在非敏感維度上不產(chǎn)生分割點(diǎn),進(jìn)而也不產(chǎn)生分割區(qū)段,但為了保證黑洞規(guī)則在其余敏感維度(即*特性的維度)的正確性,當(dāng)規(guī)則裂變發(fā)生在非敏感維度時(shí),復(fù)制該黑洞規(guī)則至兩個(gè)分支中。由于部分補(bǔ)洞規(guī)則中包括非敏感維度,減少了分割點(diǎn)的產(chǎn)生數(shù)目,將減小決策樹的規(guī)模,加快決策樹的生成效率。圖9示例了一種傳統(tǒng)方式中的全*補(bǔ)洞方式下的決策樹,圖10示例了一種部分補(bǔ)洞方式下的決策樹,其中,分類規(guī)則Rule0中的陰影部分是規(guī)則在相應(yīng)維度Dim上占據(jù)的部分。本實(shí)施例針對(duì)一條相同的規(guī)則R0(其中dim0的取值為[2],dim1的取值為[1],dim2的取值為[1,2],如圖中的陰影部分所示),圖9和圖10分別模擬全*補(bǔ)洞和部分補(bǔ)洞機(jī)制分別對(duì)其進(jìn)行建樹操作,得到的決策樹見圖中所示。可以看到,對(duì)于全*補(bǔ)洞而言,分別要在D2維度分割一次、在D0和D1維度各分割兩次(決策樹中的非葉子節(jié)點(diǎn)標(biāo)識(shí)分割點(diǎn),如圖9中的根節(jié)點(diǎn)D2,2表示的含義是在分割維度dim2上的分割點(diǎn)2的位置進(jìn)行分割,左側(cè)包含[0,1],右側(cè)包含[2,3])。直至各個(gè)子樹達(dá)到終止分割的條件(子樹的分割節(jié)點(diǎn)數(shù)目小于等于2),得到的決策樹共有5個(gè)內(nèi)部節(jié)點(diǎn)和6個(gè)葉子節(jié)點(diǎn)。而對(duì)于部分補(bǔ)洞機(jī)制而言,在D2維度的2位置進(jìn)行一次分割后,左右子樹均已達(dá)到終止分割的條件(左子樹的D0和D1由于是部分補(bǔ)洞,補(bǔ)洞規(guī)則不產(chǎn)生分割點(diǎn)和分割區(qū)段),此時(shí)得到的決策樹共有1個(gè)內(nèi)部節(jié)點(diǎn)和2個(gè)葉子節(jié)點(diǎn)。顯見,在針對(duì)相同的規(guī)則集情況下,部分補(bǔ)洞可以大幅度縮減決策樹本身的規(guī)模。當(dāng)一條黑洞規(guī)則采用部分補(bǔ)洞方式時(shí),可以通過該黑洞規(guī)則的一些特征來識(shí)別到這是部分補(bǔ)洞(而不是全補(bǔ)洞)。比如,對(duì)于黑洞規(guī)則中的非敏感維度,可以使用一個(gè)特殊的范圍表示法例如[1,0),也就是說,規(guī)則中的每個(gè)維度通常都會(huì)有個(gè)取值范圍,一般來說取值范圍表示時(shí)采用類似[0,1)這種由小數(shù)值到大數(shù)值的區(qū)間方式,而上述[1,0)表示顯然不合常規(guī)即很特殊,則可以據(jù)此識(shí)別這是非敏感維度,只要識(shí)別到非敏感維度,那么根據(jù)非敏感維度在規(guī)則所有維度中所占的比例可以確定是否是部分補(bǔ)洞,即如果該黑洞規(guī)則并非所有的維度都是非敏感維度那么該規(guī)則采用的是部分補(bǔ)洞??梢姡诓糠盅a(bǔ)洞規(guī)則的識(shí)別中,只要能識(shí)別到非敏感維度即可,又比如,可以使用位圖方法,假設(shè)黑洞規(guī)則包括八個(gè)維度,每個(gè)維度用一個(gè)比特位表示,“0”表示非敏感維度,“1”表示敏感維度,則據(jù)此可以識(shí)別規(guī)則是否是部分補(bǔ)洞。上述僅示例了兩種方式,具體實(shí)施中也可以采用其他方式。此外,由于上述的非敏感維度使得最終決策樹匹配輸出的規(guī)則在非敏感維度上沒有起作用,所以還需要一次key比較操作才能確定是否匹配上;即在非敏感維度上并沒有實(shí)際比較網(wǎng)包是否與最終輸出規(guī)則對(duì)應(yīng)字段匹配,在最后還要專門比較下這些非敏感維度對(duì)應(yīng)的字段是否與最終規(guī)則匹配。例如,假設(shè)在如下七個(gè)維度表現(xiàn)為非敏感特性即非敏感維度(實(shí)際實(shí)施中可以是任意個(gè)數(shù)的任意維度,不局限于這些維度):SIP、DIP、SPORT、DPORT、PROT、VPNID、TOS,那么實(shí)際上經(jīng)過決策樹的分類查找到的最終輸出的規(guī)則,是否與待分類的網(wǎng)包在這些字段上的取值相同,還要專門比較和確定;由此形成“部分補(bǔ)洞+key比較”的機(jī)制。上述的key比較處理過程可以由FPGA的查找引擎執(zhí)行,在根據(jù)引擎上的決策樹找到匹配的規(guī)則后,再針對(duì)規(guī)則的非敏感維度檢查對(duì)應(yīng)字段是否與待分類的網(wǎng)包字段相匹配,保證查找正確性且減小決策樹的規(guī)模。在又一個(gè)實(shí)施例中,為了提高本實(shí)施例的網(wǎng)包分類方法所能夠支持的決策樹規(guī)模和規(guī)則集數(shù)目,本實(shí)施例將一部分決策樹的節(jié)點(diǎn)信息存儲(chǔ)在靠近FPGA的BRAM之外的空間,如果將BRAM稱為第一存儲(chǔ)器,可以將所述的FPGA之外的空間稱為第二存儲(chǔ)器,該第二存儲(chǔ)器例如是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DynamicRandomAccessMemory,簡稱:DRAM)。圖11示例了一種決策樹的結(jié)構(gòu),在該決策樹中,BRAMNode是存儲(chǔ)在BRAM中的節(jié)點(diǎn),而圖11所示的“7層節(jié)點(diǎn)”是存儲(chǔ)在DRAM中的節(jié)點(diǎn),需要說明的是,圖中的7層節(jié)點(diǎn)只是一個(gè)示例,可以將任意高度小于等于7的子樹節(jié)點(diǎn)存儲(chǔ)在DRAM中,比如當(dāng)硬件性能提升時(shí),該節(jié)點(diǎn)的層數(shù)可能多于7層。再結(jié)合參見圖12,本實(shí)施例還采用了節(jié)點(diǎn)合并技術(shù),將幾層決策樹節(jié)點(diǎn)合并為一個(gè)節(jié)點(diǎn)即MergedNode,該MergedNode可以稱為決策樹中的融合節(jié)點(diǎn),該融合節(jié)點(diǎn)包括的節(jié)點(diǎn)數(shù)量為至少兩個(gè),在本實(shí)施例中可以最多為七個(gè),即上述的7層節(jié)點(diǎn)(決策樹三層共1+2+4=7個(gè)節(jié)點(diǎn))。選取融合節(jié)點(diǎn)包括的節(jié)點(diǎn)數(shù)量,可以依據(jù)在訪問DRAM時(shí)一次最多讀取的節(jié)點(diǎn)數(shù)量;由于DRAM隨機(jī)訪問的總性能小于FPGA內(nèi)部的BRAM,且延時(shí)也高于BRAM,因此要根據(jù)系統(tǒng)訪問性能和延遲要求調(diào)整DRAM的訪問次數(shù),將查找性能和時(shí)延控制在合適的范圍,上述的節(jié)點(diǎn)合并可以使得在訪問DRAM時(shí)一次性可以讀取多個(gè)節(jié)點(diǎn)的信息,提高訪問性能且減少時(shí)延。其中,融合節(jié)點(diǎn)的節(jié)點(diǎn)信息是存儲(chǔ)在第二存儲(chǔ)器DRAM中,例如,每個(gè)融合節(jié)點(diǎn)作為一個(gè)節(jié)點(diǎn),可以使用256bit存儲(chǔ)在DRAM中(該參數(shù)由DRAM控制器決定),其中包含三層決策樹節(jié)點(diǎn)信息,即最多存儲(chǔ)兩層中間節(jié)點(diǎn)(3個(gè)決策樹節(jié)點(diǎn))加一層葉子節(jié)點(diǎn)(4個(gè)決策樹節(jié)點(diǎn)),例如圖12中的MergedNode(L2)節(jié)點(diǎn)即保存了兩層中間節(jié)點(diǎn)和一層葉子節(jié)點(diǎn)的節(jié)點(diǎn)信息,最后一層是四個(gè)決策樹葉子節(jié)點(diǎn)的規(guī)則索引信息;而對(duì)于中間層的節(jié)點(diǎn)例如MergedNode(L0)和MergerNode(L1)而言,只能存儲(chǔ)2層決策樹信息。需要說明的時(shí),在FPGA上的第一存儲(chǔ)器中,節(jié)點(diǎn)信息中還可以包括索引信息,用于在根據(jù)決策樹進(jìn)行分類時(shí)通過所述索引信息指向所述第二存儲(chǔ)器中的節(jié)點(diǎn)信息;比如在決策樹的分類規(guī)則查找過程中,最初在第一存儲(chǔ)器中查找,而后根據(jù)該索引信息轉(zhuǎn)至第二存儲(chǔ)器查找。例如,上述的DRAM中保存的MergedNode結(jié)構(gòu)寬度為256bit,它所承載的信息最多包含3個(gè)中間節(jié)點(diǎn)和4個(gè)葉節(jié)點(diǎn),其中包括存儲(chǔ)4個(gè)葉節(jié)點(diǎn)的規(guī)則索引以及中間節(jié)點(diǎn)的相關(guān)信息。此外,還可以通過上述256bit比特中的其中四個(gè)比特來表示4個(gè)葉子節(jié)點(diǎn)是否有效。如上所述的,通過將融合節(jié)點(diǎn)外推到DRAM中存儲(chǔ),使得決策樹的規(guī)模能夠大幅度提升,進(jìn)而使得能夠支持更大規(guī)格的規(guī)則集,同時(shí)引入的DRAM查找時(shí)延依然在可控制的范圍內(nèi)。并且如上所述的,上述的網(wǎng)包分類裝置可以還包括信息發(fā)送模塊,如圖13所示,通過信息發(fā)送模塊43將所述決策樹的節(jié)點(diǎn)信息發(fā)送至存儲(chǔ)器,所述存儲(chǔ)器包括位于FPGA上的第一存儲(chǔ)器和位于FPGA之外的第二存儲(chǔ)器,所述決策樹中的融合節(jié)點(diǎn)的節(jié)點(diǎn)信息放入所述第二存儲(chǔ)器中;所述融合節(jié)點(diǎn)包括的節(jié)點(diǎn)數(shù)量為至少兩個(gè)。此外,本發(fā)明實(shí)施例的網(wǎng)包分類方法,分別對(duì)網(wǎng)包分類過程中的分組、建樹等步驟進(jìn)行了改進(jìn);實(shí)際實(shí)施中,可以僅采用其中一個(gè)方面的改進(jìn),并不一定所有方面的改進(jìn)全部實(shí)行,比如,可以僅將融合節(jié)點(diǎn)的節(jié)點(diǎn)信息存儲(chǔ)在DRAM中(當(dāng)然要記錄DRAM中的節(jié)點(diǎn)與BRAM中的節(jié)點(diǎn)之間的節(jié)點(diǎn)關(guān)系,使得在決策樹查找時(shí)能夠由BRAM跳轉(zhuǎn)到DRAM中查找),或者,也可以僅對(duì)黑洞規(guī)則進(jìn)行部分補(bǔ)洞,或者,僅實(shí)現(xiàn)快速建樹算法等。下面對(duì)比已有的HyperSplit算法方案和本實(shí)施例的方案對(duì)相同規(guī)則集處理所消耗的時(shí)間、生成決策樹占用的資源情況。如圖14和圖15所示,其中,圖13是對(duì)比算法(HyperSplit)和改進(jìn)算法(本實(shí)施例的方案)在決策樹的生成時(shí)間的對(duì)比,并假設(shè)規(guī)則分組時(shí)最終的子規(guī)則集的預(yù)設(shè)數(shù)目是4,即算法將原始規(guī)則集拆分為4個(gè)子規(guī)則集后進(jìn)行建樹;圖15是對(duì)比算法和改進(jìn)算法在生成的決策樹的節(jié)點(diǎn)個(gè)數(shù)的對(duì)比。可以看到,本實(shí)施例提出的改進(jìn)算法相較于對(duì)比算法而言,在時(shí)間消耗和決策樹節(jié)點(diǎn)數(shù)量都有較為明顯的優(yōu)勢(shì),其中,針對(duì)fw1_32k這個(gè)規(guī)則集的建樹時(shí)間提升接近3個(gè)數(shù)量級(jí),而規(guī)則集節(jié)點(diǎn)數(shù)目則減少了接近4個(gè)數(shù)量級(jí)。其中的fw2_256k、ipc2_256k這四個(gè)規(guī)則集,實(shí)際上對(duì)比算法運(yùn)行了相當(dāng)長的時(shí)間之后由于消耗RAM過大被OS自動(dòng)結(jié)束了,所以無法得知其具體的參數(shù),而使用本實(shí)施例提出的改進(jìn)算法由于縮短了建樹時(shí)間均能建樹成功,運(yùn)行時(shí)間和決策樹規(guī)模均在可控范圍內(nèi)??梢钥闯?,本實(shí)施例的網(wǎng)包分類方法相較于已有的HyperSplit算法,無論是建樹時(shí)間還是生成的決策樹規(guī)模來說都有較大的提升,并且針對(duì)HyperSplit無法處理的規(guī)則集,本實(shí)施例的方法都可以應(yīng)對(duì),由于縮短了建樹時(shí)間所以不會(huì)被OS自動(dòng)結(jié)束掉,而是可以成功生成決策樹并且減小了決策樹的模塊。所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
府谷县| 饶河县| 昌都县| 沂南县| 大同市| 星子县| 十堰市| 浠水县| 河南省| 扎鲁特旗| 博白县| 即墨市| 宁远县| 都安| 清流县| 德江县| 论坛| 昔阳县| 通榆县| 甘孜| 桂林市| 江陵县| 绥棱县| 和静县| 孟津县| 佛学| 霍邱县| 南投县| 鄂州市| 都江堰市| 金坛市| 新平| 利川市| 青岛市| 奉节县| 社旗县| 沁水县| 岳池县| 鱼台县| 商都县| 灵山县|