專利名稱:用于對數(shù)據(jù)分組進行分類的方法和系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及通信領域,并且更具體地,本發(fā)明涉及對通信系統(tǒng)中使用的數(shù)據(jù)分組進行分類。
背景技術(shù):
網(wǎng)絡通信通常要求對在各種網(wǎng)絡設備(例如,路由器、交換機、終端等)之間傳送的諸如分組的信息單元進行分類。例如,可以對分組進行檢查和分類以支持各種應用,例如網(wǎng)絡劃分、群移動性跟蹤、安全控制和實施、服務質(zhì)量支持等。特別是,網(wǎng)絡元件可以使用分類規(guī)則對輸入的分組進行檢查和分類,從而確定應該應用于分組的動作,例如是否應當丟棄分組、傳送至它的目的地、重新路由、修改、隔離等。由于這些規(guī)則的復雜性和可定制性, 典型地將分類處理實現(xiàn)為軟件應用。然而,這種應用的性能通常由于運行應用的中央處理單元(CPU)的有限的處理能力以及由于分類規(guī)則的靈活性所導致應用的復雜度擴大而變慢。為了提高緩慢的性能,通常對規(guī)則復雜度實施限制。例如,可以將規(guī)則限定為能夠容易地組織到二進制搜索樹中的集合。然而,由于精確匹配限制,需要將具有充分復雜度的規(guī)則組織到多個樹中而不是單一樹中。由于對多個樹進行搜索明顯慢于對單個樹進行搜索,因此犧牲了使用二進制搜索樹的優(yōu)化的優(yōu)勢。另一常用的方法是利用哈希(hash)表,其中哈希表包括將分類規(guī)則的查找關鍵字轉(zhuǎn)換為與實際規(guī)則位置相關聯(lián)的有利于統(tǒng)計的哈希索引。雖然哈希表容易實現(xiàn),但是由于精確匹配限制,因此需要多次通過不同的表來實現(xiàn)所期望的分類能力。此外,即使規(guī)則確實存在,也不能確保成功的匹配。
發(fā)明內(nèi)容
通過用于對數(shù)據(jù)分組進行分類和使用多個分類規(guī)則構(gòu)建分類結(jié)構(gòu)的方法和系統(tǒng)的實施方式來處理現(xiàn)有技術(shù)的各種不足。一個實施方式提供了一種用于構(gòu)建分類樹結(jié)構(gòu)的方法。分類樹結(jié)構(gòu)適于能夠根據(jù)多個規(guī)則對所接收的分組進行單程分類(single pass classification) 0每個規(guī)則與多個字段相關聯(lián),其中每個字段具有優(yōu)先級別。用于構(gòu)建分類樹結(jié)構(gòu)的方法包括構(gòu)建頂部優(yōu)先級別。為了構(gòu)建頂部優(yōu)先級別,創(chuàng)建對應于頂部優(yōu)先級別字段的字段值的節(jié)點,其中如果幾個字段值是相同的,僅創(chuàng)建一個節(jié)點。對于每個所創(chuàng)建的節(jié)點,識別匹配節(jié)點值的規(guī)則的各自集合。構(gòu)建頂部優(yōu)先級別的過程進一步包括在所創(chuàng)建的節(jié)點中選擇頭節(jié)點;創(chuàng)建從頭節(jié)點至頂部優(yōu)先級別中的其它節(jié)點的邏輯決策路徑;以及,創(chuàng)建從頂部優(yōu)先級別節(jié)點至下一較低優(yōu)先級別節(jié)點的邏輯決策路徑。用于創(chuàng)建分類樹結(jié)構(gòu)的方法進一步包括逐級構(gòu)建分類樹結(jié)構(gòu)的剩余優(yōu)先級別。按下列方式構(gòu)建每個剩余的優(yōu)先級別。對于從下一較高優(yōu)先級別接收的每個邏輯決策路徑, 創(chuàng)建各自的子樹,其中子樹僅包括這些節(jié)點和需要滿足與各自的下一較高優(yōu)先級別節(jié)點相關聯(lián)的規(guī)則的相關邏輯決策路徑。此外,當剩余優(yōu)先級別不是最低優(yōu)先級別時,創(chuàng)建從當前優(yōu)先級別中的節(jié)點至下一較低優(yōu)先級別的邏輯決策路徑。另一實施方式提供一種用于對輸入的數(shù)據(jù)分組進行分類的方法。該方法包括接收包含多個分組字段的數(shù)據(jù)分組,其中分組字段與不同優(yōu)先級別相關聯(lián)。該方法進一步包括通過單程的分類結(jié)構(gòu)來確定匹配數(shù)據(jù)分組的分類規(guī)則。分類結(jié)構(gòu)包括多個級別,其中每個級別對應于與分組字段相關聯(lián)的優(yōu)先級別中的一個。分類結(jié)構(gòu)中的級別根據(jù)優(yōu)先級別從分類結(jié)構(gòu)的上層至底層下降的順序排列。該方法進一步包括,對于分類結(jié)構(gòu)的每一級別,從頂部級別開始逐級向底部級別進行,將具有相應優(yōu)先級別的分組字段的值與分類結(jié)構(gòu)的級別中用于分組的邏輯決策路徑的節(jié)點進行比較以發(fā)現(xiàn)匹配節(jié)點。匹配節(jié)點是與分組字段具有相同值的節(jié)點。對于每個非最低優(yōu)先級別,如果發(fā)現(xiàn)匹配節(jié)點,這樣的匹配節(jié)點定義了到達分類結(jié)構(gòu)的下一級別的邏輯決策路徑。對于最低優(yōu)先級別,發(fā)現(xiàn)匹配節(jié)點就完成了分類處理,其中最低優(yōu)先級別的匹配節(jié)點識別匹配分組的分類規(guī)則。本發(fā)明的再一個實施方式提供了一種分組處理器。分組處理器包括用于存儲分類結(jié)構(gòu)的存儲器和適于使用存儲在存儲器中的分類結(jié)構(gòu)來確定與輸入數(shù)據(jù)分組匹配的分類規(guī)則。分類結(jié)構(gòu)表示多個分類規(guī)則,其中每個規(guī)則具有多個字段。每個字段與不同的優(yōu)先級別相關聯(lián)。分類結(jié)構(gòu)包括多個級別,其中頂部級別具有最高優(yōu)先級別,并且每個下一級別具有下一較低的優(yōu)先級別。數(shù)據(jù)分組包括多個分組字段,其中字段具有對應于分類結(jié)構(gòu)優(yōu)先級別的優(yōu)先級別。分組處理器適于通過單程的分類結(jié)構(gòu)確定匹配的分類規(guī)則。具體地,對于分類結(jié)構(gòu)的每個級別,分組處理器適于從頂部級別開始并逐級向底部級別移動,以將具有相應優(yōu)先級別的分組字段的值和在用于分類結(jié)構(gòu)的級別內(nèi)的分組的邏輯決策路徑的節(jié)點進行比較,以發(fā)現(xiàn)匹配節(jié)點。匹配節(jié)點是具有與分組字段相同值的節(jié)點。對于每個非最低優(yōu)先級別,如果發(fā)現(xiàn)匹配節(jié)點,這樣的匹配節(jié)點定義到達分類結(jié)構(gòu)的下一級別的邏輯決策路徑。對于最低優(yōu)先級別,發(fā)現(xiàn)匹配節(jié)點就完成了分類處理,其中分組處理器使用最低優(yōu)先級別的匹配節(jié)點來識別匹配分組的分類規(guī)則。
通過考慮下列的詳細說明并結(jié)合附圖,能夠容易地理解各種實施方式的教導,其中圖1描述了根據(jù)本發(fā)明的一個實施方式的用于對數(shù)據(jù)分組進行分類的系統(tǒng)的高層示意圖;圖2描述了根據(jù)本發(fā)明的一個實施方式的包含分類規(guī)則的表;圖3A-圖3C描述了根據(jù)本發(fā)明的一個實施方式的分類結(jié)構(gòu)及其級別;圖4A-圖4G描述了根據(jù)本發(fā)明的一個實施方式的用于構(gòu)建分類結(jié)構(gòu)的方法的流程圖;圖5A-圖5B描述了根據(jù)本發(fā)明的一個實施方式的用于對數(shù)據(jù)分組進行分類的方法。為了便于理解,盡可能地使用相同的附圖標記來指示圖中通用的相同元件。
具體實施例方式通常要求諸如路由器、交換機、防火墻、終端等的網(wǎng)絡元件檢查輸入的數(shù)據(jù)業(yè)務, 從而確定需要對數(shù)據(jù)執(zhí)行的進一步動作。在本發(fā)明的各種實施方式的上下文中,根據(jù)組織到專用分類結(jié)構(gòu)中的預定分類規(guī)則,對諸如國際互聯(lián)網(wǎng)協(xié)議(IP)分組的數(shù)據(jù)分組進行分類。每個規(guī)則定義與所接收分組相比較的標準,并且當規(guī)則可應用(也就是,匹配)于分組時與規(guī)則相關聯(lián)的動作定義一個或多個要采取的動作。當規(guī)則的標準(也就是,規(guī)則的字段的值)和分組的相應值匹配時,規(guī)則可應用于分組。在下面,將參照本發(fā)明的實施方式。然而需要注意的是,本發(fā)明不局限于任何具體描述的實施方式。相反,無論是否與不同的實施方式相關聯(lián),下面特征和元素的任意組合都預期完成和實現(xiàn)本發(fā)明。此外,在各種實施方式中,本發(fā)明提供多種超過現(xiàn)有技術(shù)的優(yōu)勢。 雖然本發(fā)明的實施方式可以實現(xiàn)超過其它可能的方案和/或現(xiàn)有技術(shù)的優(yōu)勢,但是是否由給定實施方式實現(xiàn)特定的優(yōu)勢不是對本發(fā)明的限制。因此,下列的方面、特點、實施方式和優(yōu)勢僅僅是解釋性的,并不被認為是所附權(quán)利要求的元素或者限制,除非在權(quán)利要求中明確說明。同樣,參照“本發(fā)明,,并不應解釋為對這里公開的任何發(fā)明主題的概括,并不應理解為所附權(quán)利要求的元素或限制,除非在權(quán)利要求中明確說明。本發(fā)明的一個實施方式實現(xiàn)為適用于計算機系統(tǒng)的程序產(chǎn)品。程序產(chǎn)品的程序定義實施方式(包括這里描述的方法)的功能,并且可以包含在各種計算機可讀存儲介質(zhì)中。示例性的計算機可讀存儲介質(zhì)包括,但不局限于(i)在其上永久保存信息的不可寫存儲介質(zhì)(例如,計算機中的只讀存儲設備,例如通過⑶-ROM驅(qū)動可讀取的⑶-ROM盤);(ii) 在其上存儲可改變信息的可寫存儲介質(zhì)(例如,在磁盤驅(qū)動器中的軟盤或者硬盤驅(qū)動器)。 當攜帶有控制本發(fā)明功能的計算機可讀指令時,這種計算機可讀存儲介質(zhì)為本發(fā)明的實施方式。其它介質(zhì)包括通過其將信息傳送給計算機的通信介質(zhì),例如通過計算機或者包括無線通信網(wǎng)絡的電話網(wǎng)絡。后一實施方式具體包括在國際互聯(lián)網(wǎng)和其它網(wǎng)絡之間相互發(fā)送信息。當攜帶有控制本發(fā)明功能的計算機可讀指令時,這種通信介質(zhì)為本發(fā)明的實施方式。概括地說,這里可以將計算機可讀存儲介質(zhì)和通信介質(zhì)稱為計算機可讀介質(zhì)。一般來說,執(zhí)行以實現(xiàn)本發(fā)明實施方式的例程可以是操作系統(tǒng)或者專用應用、組件、程序、模塊、對象、或者指令序列的一部分。本發(fā)明的計算機程序典型地由本地計算機將其轉(zhuǎn)換為機器可讀格式并從而成為可執(zhí)行指令的多個指令所構(gòu)成。并且,程序由位于程序本地的或者在存儲器中或者存儲設備上建立的變量和數(shù)據(jù)結(jié)構(gòu)構(gòu)成。此外,可以根據(jù)在本發(fā)明的具體實施方式
中實現(xiàn)的應用來識別這里描述的各種程序。然而,可以理解的是,僅僅是因為方便而使用下面的任何特定的程序術(shù)語,并且因此本發(fā)明不應當局限于獨自用于由這樣的術(shù)語所暗示的和/或所識別的任何特定應用。圖1描述了根據(jù)本發(fā)明的一個實施方式的用于對數(shù)據(jù)分組進行分類的系統(tǒng)100的高層示意圖。具體地,系統(tǒng)100包括多個源設備(例如源IlO1、源IlO2、和源110z,將其統(tǒng)稱為源110)、路由器120、分組處理器130、網(wǎng)絡140、和多個目的地設備(例如目的地150” 目的地1502、和目的地150y,將其統(tǒng)稱為目的地110)。當通過網(wǎng)絡140在源110和目的地 150之間傳送分組時,路由器120可以截取這樣的分組并將它們提供給用于分類和進一步處理的分組處理器130。在一個實施方式中,分組處理器130通過網(wǎng)絡路由器120或者網(wǎng)絡140收集關于重新定向到分組處理器130的分組的統(tǒng)計信息,并且然后將結(jié)果匯總到網(wǎng)
6絡管理系統(tǒng)(在圖中沒有示出)。網(wǎng)絡管理系統(tǒng)可以使用這樣的信息來配置和管理分組分類規(guī)則。如圖所示,分組處理器130包括輸入/輸出設備132 (例如,監(jiān)視器、鍵盤、鼠標、調(diào)制解調(diào)器、打印機等)、中央處理單元(CPU) 134、和存儲器136。將分組分類器138和分類結(jié)構(gòu)139放入存儲器136中。一般來說,諸如三叉搜索樹(ternary search tree)的分類結(jié)構(gòu)139組織由分組分類器138所使用的分組分類規(guī)則,以對輸入分組進行分析以及確定,如果有的話,應當應用哪個動作(例如,丟棄分組、重新路由分組等)以及應當應用到何種數(shù)據(jù)分組(例如,具有特定目的地地址的分組)。每個規(guī)則可以包括對應于多種分組字段并與可用于匹配分組的動作相關聯(lián)(這在下面做更為詳細說明)的多個標準/字段。當規(guī)則的標準/字段匹配分組的相應字段的值時,分組與規(guī)則匹配。如果分組分類器138確定在規(guī)則和輸入分組之間的成功匹配,則將與規(guī)則相關聯(lián)的動作應用于分組(例如,可以將分組隔離)。然而,當分組分類器138確定不存在成功的匹配,將應用默認的動作(例如,丟棄分組)。雖然在圖1中,將分組處理器130、分組分類器138、和分類結(jié)構(gòu)139表示為與路由器120或網(wǎng)絡140相分離,但是在一個實施方式中,可以將分組處理器130、分組分類器 138、和分類結(jié)構(gòu)139的全部或者任意組合實現(xiàn)在路由器120中或者可替換地,實現(xiàn)在網(wǎng)絡 140中。在另一實施方式中,將分組分類器138和/或分類結(jié)構(gòu)139實現(xiàn)在接收和傳送網(wǎng)絡數(shù)據(jù)的網(wǎng)絡元件(例如,交換引擎、路由器等)中,或者與這樣的網(wǎng)絡元件進行通信的設備中。可以將網(wǎng)絡元件放置在特定網(wǎng)絡中的數(shù)據(jù)路徑上或者與各個網(wǎng)絡相連接的數(shù)據(jù)路徑上。此外,不需要配置分組分類器138和分類結(jié)構(gòu)139,并且可以使用多于一個的分類結(jié)構(gòu) 139和/或分組分類器138。圖2描述了根據(jù)本發(fā)明的一個實施方式的包含分類規(guī)則的表200。在一個實施方式中,規(guī)則包括兩個部分用于確定是否應當將規(guī)則應用于特定分組的匹配部分和用于定義在分組上要執(zhí)行的動作的動作部分。匹配部分典型地包含與數(shù)據(jù)分組的相應字段相比較的多個字段(標準),其中在規(guī)則字段和相應分組字段之間的完全匹配表明應當將規(guī)則的動作部分應用于分組。動作部分通常定義可以在分組上執(zhí)行的一個或多個動作,例如丟棄分組、重新路由分組、隔離分組、重新定義或修改分組、將分組傳送至其目的地等等。表200描述了規(guī)則1-4的匹配部分,其中每個這樣的部分包括3個字段,字段1、字段2和字段3。在一個實施方式中,規(guī)則中字段的順序定義了這種字段的優(yōu)先級。例如,對于表200中的每個字段,字段1這一列字段的優(yōu)先級要高于字段2這一列的字段,字段2這一列字段的優(yōu)先級又高于字段3這一列的字段。換句話說,在字段2這一列的字段與數(shù)據(jù)分組的相應字段進行比較之前,由字段1這一列的字段與數(shù)據(jù)分組的相應字段進行比較。然而需要注意的是,表中的組織規(guī)則和按上述方式定義字段的優(yōu)先級僅僅是為了方便。例如, 字段1這一列的字段的優(yōu)先級可以高于字段3這一列的字段,但是低于字段2這一列的字段的優(yōu)先級別。此外,盡管方便,按照表格來組織規(guī)則或者它們的部分不是必需的。例如, 可以將規(guī)則組織為列表。在表200中包括的每個所描述的字符,也就是“A”、“B”、“C”和“*”,代表字段值。
一般來說,規(guī)則中的每個字段代表分組的子部分或者字段,其中每個這樣的字段/子部分包含代表一個網(wǎng)絡協(xié)議層(例如,開放式系統(tǒng)互聯(lián)(OSI)的層、傳輸控制協(xié)議/國際互聯(lián)網(wǎng)協(xié)議(TCP/IP)的層等)的分組數(shù)據(jù)。在一個實施方式中,規(guī)則字段表示一個或多個源和/ 或目的地媒體訪問控制(MAC)地址、源和/或目的地以太網(wǎng)硬件地址(EHA)、源和/或目的地IP地址、源和/或目的地端口、協(xié)議ID、用戶數(shù)據(jù)協(xié)議(UDP)端口、TCP端口、虛擬局域網(wǎng) (VLAN)標簽、載荷類型、和其它類型數(shù)據(jù)。典型地,這樣的數(shù)據(jù)可以在對應于不同網(wǎng)絡協(xié)議層的分組的報頭/頁腳中發(fā)現(xiàn)。規(guī)則字段可以包含諸如特定MAC地址的具體值,或者諸如通配符的特殊值。每個規(guī)則可以包括多個包含各種具體值和/或特殊值的字段。在圖2中,由諸如“A”的字母符號表示具體值,同時由諸如“*”(通配值)的符號來表示特殊值。當規(guī)則包括一個或多個具有通配值的字段時,輸入分組的每個相應字段可以包含任意值,并且如果規(guī)則的全部其它字段和分組匹配,則該規(guī)則將仍與分組匹配。換句話說,當規(guī)則包含一個或多個通配符時, 特定規(guī)則是否可以應用于分組不取決于對應于規(guī)則的通配輔字段的分組字段的值。如圖2所示,分類規(guī)則可能發(fā)生沖突,或者換句話說,一些分組可能匹配多于一個的規(guī)則。例如,在表200中,規(guī)則1、規(guī)則2和規(guī)則4可能發(fā)生沖突。更具體地,如果輸入分組在其相應的字段中具有值[A、B、C],所述分組與規(guī)則1、規(guī)則2和規(guī)則4中的每一個匹配。 然而,在其相應的字段中具有值[A、B、D]的輸入分組僅與規(guī)則2匹配,而具有值[C、B、C]的分組僅與規(guī)則4匹配。相似地,規(guī)則3和規(guī)則4可能發(fā)生沖突(例如,[B、C、C]分組)。另一方面,規(guī)則2和規(guī)則3是相互排斥的,意味著不存在分組能夠同時與這兩個規(guī)則相匹配。如下所述,發(fā)現(xiàn)一個匹配對于完成分類處理通常是充分的。因此,使用上述的實施例,如果將具有值[A、B、C]的分組進行分類以匹配規(guī)則1,則分類處理結(jié)束,即使分組還可以與規(guī)則2和規(guī)則4匹配。在一個實施方式中,將沖突的規(guī)則列入優(yōu)先位置,并且以這種方式組織分類結(jié)構(gòu)139 具有最高優(yōu)先級的匹配規(guī)則是首先發(fā)現(xiàn)的規(guī)則。例如在一個實施方式中,規(guī)則越具體,這樣的規(guī)則所具有的優(yōu)先級就越高。因此,在表200中,沒有通配符值的規(guī)則1具有的優(yōu)先級要高于具有1個通配符值的規(guī)則2。同時,具有1個通配符值的規(guī)則2 具有的優(yōu)先級要高于具有2個通配符值的規(guī)則4。圖3A-圖3C描述了根據(jù)本發(fā)明的一個實施方式的分類結(jié)構(gòu)300及其級別。如圖所示,分類結(jié)構(gòu)300組織包含在圖2的表200中的分類規(guī)則(下面參考圖4A-圖4G更為詳細地描述用于構(gòu)建分類結(jié)構(gòu)的方法)。典型地,分類結(jié)構(gòu)300逐級進行構(gòu)建,其中分類結(jié)構(gòu) 300的級別越高,其表示的字段的優(yōu)先級越高。在一個實施方式中,分組處理器130使用分類結(jié)構(gòu)300來對輸入的分組進行分類。分類處理(在下面參考圖5A和圖5B更為詳細地進行描述)從在每一級別上確定與輸入分組的相應字段匹配或者不匹配的分類結(jié)構(gòu)300的一個級別進行處理。換句話說,分組的分類處理沿著對應于該分組的分類樹中的邏輯決策路徑進行,直到發(fā)現(xiàn)匹配的分類規(guī)則或者確定沒有與分組匹配的分類規(guī)則為止。在圖3A-圖3C描述的實施方式中,分類結(jié)構(gòu)300是具有表示表200列的級別的三叉搜索樹。通常,三叉搜索樹是每個節(jié)點可以具有多至3個分支的搜索樹,也就是右側(cè)分支表示大于當前節(jié)點值的值,中間分支表示等于當前節(jié)點值的值,以及左側(cè)分支表示小于當前節(jié)點值的值。在本發(fā)明的一個實施方式中,分類結(jié)構(gòu)的中間分支表示在樹的當前級別已經(jīng)發(fā)現(xiàn)成功的匹配(也就是,已經(jīng)識別可應用于輸入分組的字段的規(guī)則),并且分類處理可以在樹的下一級別上繼續(xù)進行(也就是,關于下一分組字段)。在一個實施方式中,引入兩個附加類型的節(jié)點。第一類型是未匹配的節(jié)點,也就是表示未成功匹配(在下文中,稱之為“X”節(jié)點)的終端的節(jié)點。在一個實施方式中,如果在分類處理中到達這樣的節(jié)點,則停止分類處理并提供指示輸入分組不能完全匹配于任何可使用的規(guī)則的信息。另一類型是通配符節(jié)點,也就是,在樹的當前級別上通常指示成功匹配的節(jié)點 (在下文中,將其稱為“*”節(jié)點)。換句話說,通配符節(jié)點的值可以等于與其相比的任何值。 通配符節(jié)點值還可以大于或者小于任何其它節(jié)點的值。在一個實施方式中,當在分類處理中到達這樣的節(jié)點時,分類處理在分類樹300的下一級別繼續(xù)進行。如果在分類樹300的最低級別上到達通配節(jié)點,將提供指示在輸入分組和相應規(guī)則之間匹配成功的信息。圖3A描述了分類樹300的最高級別,也就是頂部級別310。頂部級別310表示表 200的字段1這一列。字段1這一列包括在它們各自的分類規(guī)則中具有最高優(yōu)先級字段的字段。如圖2所示,分類規(guī)則的字段1可以包括下列值“A”(規(guī)則1和規(guī)則2)、“B”(規(guī)則 3)、和“ ^ ” (規(guī)則4)。分類樹300的頂部級別310包括一個或者多個用于這些值中每一個的節(jié)點,也就是,具有值的節(jié)點312和節(jié)點318、具有值“A”的節(jié)點314、和具有值“B” 的節(jié)點316。如圖所示,節(jié)點314是分類樹300的根節(jié)點。典型地,分類樹300的根節(jié)點具有分類樹300頂部級別的可使用的值中近似中等(中間)的值。由于大約一半的節(jié)點將具有小于根節(jié)點值的值以及大約一半的節(jié)點將具有大于根節(jié)點值的值,因此選擇用于根節(jié)點值的中等值允許構(gòu)建更平衡的樹。然而,其它選擇也是可行的。例如,在一個實施方式中,可隨機選擇根節(jié)點。在另一實施方式中,根節(jié)點是具有中間值的節(jié)點。如圖所示,節(jié)點314的左側(cè)指針指向具有比節(jié)點314的值(也就是,“A”)小的值 (也就是,“*”)的節(jié)點312。節(jié)點314的右側(cè)指針指向節(jié)點316,其中節(jié)點316的值(也就是,“B”)大于節(jié)點314的值(也就是,“A”)。由于通配符值可以大于或者小于任何值,因此節(jié)點316的右側(cè)指針和左側(cè)指針都指向具有通配符值的節(jié)點318。然而需要注意的是,盡管節(jié)點316的右側(cè)指針和左側(cè)指針指向單一節(jié)點318,但是在一個實施方式中,節(jié)點的右側(cè)指針和左側(cè)指針指向兩個不同的節(jié)點,其中每個節(jié)點具有通配符值。每個節(jié)點還具有一個或多個與節(jié)點相關聯(lián)的規(guī)則(也就是,匹配規(guī)則),其中節(jié)點值與每個相關分類規(guī)則的相應字段值相匹配。從而,節(jié)點314與表200的3個規(guī)則相關聯(lián), 也就是,規(guī)則1、規(guī)則2和規(guī)則4,規(guī)則1和規(guī)則2在它們的字段1中具有值“A”,規(guī)則4在它的字段1中具有通配符值。相似地,節(jié)點312和節(jié)點318與規(guī)則4相關聯(lián),節(jié)點316與規(guī)則3和規(guī)則4相關聯(lián),其中規(guī)則3在其字段1中具有值“B”,規(guī)則4在其字段1中具有通配符值。然而需要注意的是,在圖3A中給出了 2個通配符節(jié)點,也就是節(jié)點312和節(jié)點318, 但是在一個實施方式中,分類結(jié)構(gòu)僅包括一個通配符節(jié)點。在這樣的實施方式中,通配符節(jié)點之前的節(jié)點(例如,節(jié)點314和節(jié)點316)簡單地指向相同的通配節(jié)點。例如,不將節(jié)點 312和節(jié)點318作為兩個獨立的節(jié)點,可以刪除節(jié)點312,并且與節(jié)點316的左側(cè)指針相似, 節(jié)點314可以使其左側(cè)指針指向節(jié)點318。圖;3B描述了分類樹300的頭兩個級別,也就是,頂部級別310和中間級別320。中間級別320表示表200的字段2這一列。字段2這一列包括在其各自的分類規(guī)則中具有第二優(yōu)先級別的字段。如圖2所示,分類規(guī)則的字段2可以包括如下值“B” (規(guī)則1和規(guī)則 2)、“C” (規(guī)則3)、和“ * ” (規(guī)則4)。因此,分類樹300的中間級別320包括一個或多個用
9于這些值中每一個的節(jié)點,也就是,具有值“女”的節(jié)點321、322、3M、325、327和328,具有值“B”的節(jié)點323,和具有值“C”的節(jié)點326。如上所述,分類處理通過中間分支中的一個(由雙箭頭表示)從一個級別進行到另一級別,例如通過節(jié)點312和節(jié)點321之間的分支。節(jié)點的中間分支表示如果節(jié)點值與輸入分組的相應字段匹配時分類處理采用的邏輯決策路徑的一部分。例如,如果輸入分組在其字段1中具有值“A”,分類處理通過節(jié)點314和323之間的分支從頂部級別310移動到中間級別320。通常,至少一部分分類規(guī)則在相同的字段中具有不同的值(例如,規(guī)則1的字段1 具有值“A”,而規(guī)則3的字段1具有值“B”)。從而,在一個級別上可能被認為是與輸入分組相關的一組規(guī)則表示在前述級別上可能被認為與輸入分組相關的規(guī)則的子集。更具體地, 在頂部級別,輸入分組可能與任何所有可使用的分類規(guī)則相匹配。然而,由于在頂部級別上輸入分組的最高優(yōu)先級字段已經(jīng)與頂部級別節(jié)點中的一個的值相匹配,因此在中間級別上輸入分組可以潛在地僅與輸入分組的最高優(yōu)先級字段具有相同值的規(guī)則(也就是與匹配的頂部級別節(jié)點相關聯(lián)的規(guī)則)相匹配。例如,如果輸入分組在字段1中具有值“B”,分類處理通過節(jié)點316和3 之間的中間分支移動到中間級別320。由于分組的字段1具有值 “B”,在其字段1中具有值“A”的規(guī)則1和2不可能與輸入分組相匹配。因此,輸入分組僅和與節(jié)點316相關聯(lián)的規(guī)則(也就是規(guī)則3和4)進行比較。一般來說,可以將中間級別320看做多個子樹或者子樹的頂部級別,其中中間級別節(jié)點形成子樹的頂部級別。如圖3C-A和3C-B所示,根據(jù)一個實施方式,由中間級別和底部級別節(jié)點形成的搜索子樹如下第1子樹包括節(jié)點321、331、345 ;第2子樹包括節(jié)點322、 323、324、332、333、334、335、336、以及 345 ;第 3 子樹包括節(jié)點 325、325、327、337、338、339 和345 ;以及第4子樹包括節(jié)點328,340和345。例如,節(jié)點322,323和324形成第2子樹的頂部級別。與頂部級別310相似,使用與相應父節(jié)點相關聯(lián)的規(guī)則而不是所有的分類規(guī)則(也就是,表200)構(gòu)建每個子樹的頂部級別。例如,為了構(gòu)建第2子樹的頂部級別,使用與節(jié)點314相關聯(lián)的規(guī)則(也就是,規(guī)則1、2和4)。圖3C描述了分類樹300的所有3個級別,也就是,頂部級別310、中間級別320和底部級別330。底部級別330表示表200的字段3這一列。字段3這一列包括在其各自的分類規(guī)則中具有第3優(yōu)先級別的字段。如圖2所示,分類規(guī)則的字段3可以包括下列值 “C” (規(guī)則1、3和4)和“ * ” (規(guī)則2)。因此,分類樹300的底部級別330包括一個或者多個用于這些值中每一個的節(jié)點,也就是節(jié)點具有值“C”的節(jié)點331、332、334、336、337、338、 339和340以及具有值“ * ”的節(jié)點333和335。在一個實施方式中,分類樹300還可以包括“X”節(jié)點345(未匹配節(jié)點),也就是, 表示輸入分組不與任何分類規(guī)則相匹配的節(jié)點。盡管在所描述的分類樹300中,“X”節(jié)點僅出現(xiàn)在底部級別330處,但是根據(jù)分類規(guī)則的初始集合,“X”節(jié)點可以出現(xiàn)在分類樹300的任意級別上。例如,如果表200中沒有分類規(guī)則在其字段1中具有通配符值,分類樹300可在頂部級別310具有“X”節(jié)點。此外,在一個實施方式中,僅實現(xiàn)一個“X”節(jié)點(例如,每個分類結(jié)構(gòu)300有一個“X”節(jié)點)。在這樣的實施方式中,在“X”節(jié)點之前的節(jié)點(例如, 節(jié)點331、336、340等)指向相同的“X”節(jié)點(或與相同的“X”節(jié)點相關聯(lián))??商鎿Q地,分類結(jié)構(gòu)的每一級別可能只是有一個“X”節(jié)點。需要注意的是,因為通配符節(jié)點與任意分組字段值相匹配,所以通配符節(jié)點不可能指向“X”節(jié)點。類似于中間級別320來構(gòu)建底部級別330。更具體地,類似于中間級別320,可以將底部級別330視為子樹的多個頂部級別。由于底部級別330是分類樹300的最后的級別, 每個這樣的子樹僅包括一個頂部級別,其中分類樹300的底部級別節(jié)點形成這樣的頂部級別。如圖3C-B所示,搜索子樹如下第1子樹包括節(jié)點331和345 ;第2子樹包括節(jié)點332 和345 ;第3子樹包括節(jié)點333、334和335 ;第4子樹包括節(jié)點336和345 ;第5子樹包括節(jié)點337和345 ;第6子樹包括節(jié)點338和345 ;第7子樹包括節(jié)點339和345 ;以及第8子樹包括節(jié)點340和345。例如,節(jié)點333,334和335形成第3子樹的頂部級別和子樹自身。 類似于中間級別320,使用與相應父節(jié)點相關聯(lián)的規(guī)則而不是所有的分類規(guī)則(也就是,表 200),類似于頂部級別310來構(gòu)建子樹的每個頂部級別。例如,為了構(gòu)建第3子樹的頂部級別,使用與節(jié)點323相關聯(lián)的規(guī)則(也就是,規(guī)則1、2和4)。在上述方式中,分類樹300結(jié)合表200的所有規(guī)則。例如,規(guī)則1由節(jié)點314、323 和334表示;規(guī)則2由節(jié)點314、323、322和3 表示;等等。如下面參考圖5A和圖5B進行的更為詳細地描述,將這樣的分類樹用于對輸入分組進行分類,其中依次分析分組字段,從分類樹的一個級別移動到另一級別。在一個實施方式中,將在分類樹中通向節(jié)點的完成分組分類處理的路徑認為是邏輯決策路徑,其中路徑中的節(jié)點是邏輯決策點。因此,如所描述的,分類樹300表示多個邏輯決策路徑,其中對于根據(jù)由分類樹300所表示的分類規(guī)則來提供輸入分組的單程分類來說,包括在分類樹300中的每個邏輯決策路徑是必需的。圖4A-圖4G描述了根據(jù)本發(fā)明的一個實施方式的用于構(gòu)建諸如分類樹300的分類結(jié)構(gòu)的方法400的流程圖。一般來說,所描述的方法400使用一組分類規(guī)則來為創(chuàng)建分類樹作準備,其中所創(chuàng)建的分類樹結(jié)合該組的每個分類規(guī)則以將單程分類提供給輸入分組。 為了便于對方法400的解釋,使用在圖2和圖3中所示的表200的分類規(guī)則和相應的分類樹300,并在下文中將其稱為實施例1。該方法從步驟402開始,其中接收到多個分類規(guī)則。如上所述,可以將這樣的規(guī)則組織到表中,例如圖2的表200。典型地,例如,在表內(nèi)逐字段核對分類規(guī)則,其中每個字段具有優(yōu)先級別。在這種情況下,當將分類規(guī)則組織到利用行表示分類規(guī)則的表中時,這樣的表的每一列將包括具有相同優(yōu)先級別的字段。在步驟403,選擇具有最高優(yōu)先級別的所接收的分類規(guī)則的字段并將其與當前級別相關聯(lián)。例如,在表200的分類規(guī)則中,可以在步驟403選擇在字段1這一列中發(fā)現(xiàn)的規(guī)則1-4的字段。一般來說,當前級別表示對應于分類樹的一個級別的分類規(guī)則的字段。例如,當構(gòu)建分類樹的頂部級別時,當前級別與由頂部級別所表示的字段相關聯(lián)。在步驟404, 對于在所選擇字段的值中識別的每個唯一的值,創(chuàng)建分類樹的節(jié)點。換句話說,如果字段具有唯一的值則創(chuàng)建相應的節(jié)點,而當如果幾個字段具有相同的值,僅創(chuàng)建一個相應的節(jié)點。 因此,在實施例1中,在步驟404將分別創(chuàng)建具有值“A”、“B”和的3個節(jié)點。所創(chuàng)建的節(jié)點形成分類樹的頂部級別。然而需要注意的是,在圖3A-3C中將兩個通配符節(jié)點,也就是節(jié)點312和318,描述為包括在頂部級別310中。可替換地并且如圖4A-4G的實施方式所定義的,僅僅創(chuàng)建節(jié)點 312和318中的一個。如圖3C中所看到的,節(jié)點312或318具有同樣的相應子樹312- > 321- > 331- > 345 和 318- > 328- > 340- > 345。因此,實施例 1 中根據(jù)圖 4A-4G 的實施方式所構(gòu)建的分類樹的頂部級別可以視為圖3A中的頂部級別310,其中節(jié)點318除去指向節(jié)點312的節(jié)點316的左側(cè)和右側(cè)指針。在步驟405,在所創(chuàng)建的節(jié)點中確定具有中間值的節(jié)點并將其與頭節(jié)點相關聯(lián)。在一個實施方式中,如果近似一半節(jié)點具有小于節(jié)點值的值以及近似一半節(jié)點具有大于節(jié)點值的值,則節(jié)點具有中間值。從而,在實施例1中這樣的值為“A”?!癆”大于且小于 “B”,從而具有值“A”的節(jié)點314是頭節(jié)點。然而,在另一實施方式中,用這樣的方式定義中間值,即將值“B”而并非是值“A”確定為中間值(“B”大于A且小于“*”)。在再一個實施方式中,在步驟405選擇隨機節(jié)點。在步驟406,識別與頭節(jié)點相關聯(lián)的一個或多個匹配規(guī)則。匹配規(guī)則是在其當前級別字段中具有頭節(jié)點值(也就是中間值)或者通配符值(也就是“*”)的分類規(guī)則。在實施例1中,由于規(guī)則1和2在當前級別字段(字段1)中具有“A”值,以及規(guī)則4在當前級別字段(字段1)中具有“女,,值,因此與頭節(jié)點314相關聯(lián)的匹配規(guī)則是規(guī)則1、2和4。為了創(chuàng)建頭節(jié)點的左右分支,在步驟407創(chuàng)建左側(cè)節(jié)點和右側(cè)節(jié)點集合。左側(cè)節(jié)點集合包括其值小于中間值的節(jié)點(例如,在實施例1中,左側(cè)節(jié)點集合將包括具有小于中間值“A”的“*”值的節(jié)點312)。右側(cè)節(jié)點集合包括具有大于中間值的值的節(jié)點(例如,在實施例1中,右側(cè)節(jié)點集合將包括具有大于中間值“A”的“B”值的節(jié)點316,以及任意其它 “*”節(jié)點、節(jié)點318)。在步驟408,頭節(jié)點與當前節(jié)點相關聯(lián)。一般來說,當前節(jié)點是當前確定左側(cè)和/或右側(cè)分支的節(jié)點。換句話說,當前節(jié)點允許方法400關于分類樹的節(jié)點進行移動以定義節(jié)點之間的關系。步驟409-417基于左側(cè)節(jié)點集合的節(jié)點提供對頭節(jié)點的左側(cè)分支的識別。通常來說,在圖4A-4G所示的實施方式中,左側(cè)節(jié)點集合的節(jié)點從在左側(cè)節(jié)點集合的節(jié)點中由具有最大值的節(jié)點開始按照節(jié)點值下降的順序形成頭節(jié)點的左側(cè)分支。在步驟409,確定與當前節(jié)點相關聯(lián)的節(jié)點是否在左側(cè)節(jié)點集合值中具有最小的值。如果是,則分析左側(cè)節(jié)點集合的所有創(chuàng)建的節(jié)點,并定義左側(cè)分支節(jié)點之間的關系,從而,方法400進入步驟416。在當前節(jié)點值不是左側(cè)節(jié)點集合的節(jié)點中最小的值時(步驟409),則不是左側(cè)分支的節(jié)點之間的所有關系都已經(jīng)被定義。因此,在步驟410,在左側(cè)節(jié)點集合的節(jié)點中選擇相比于當前節(jié)點值具有下一較小值的節(jié)點。例如,如果左側(cè)節(jié)點集合包括節(jié)點[A、B、C],并且當前節(jié)點值為C,那么在步驟410將選擇具有值B的節(jié)點。然而,如果當前節(jié)點值是B,那么所選擇的節(jié)點值為A。如果在步驟411,確定當前節(jié)點不是頭節(jié)點,則在步驟413,當前節(jié)點的左側(cè)指針和右側(cè)指針與所選擇的節(jié)點相關聯(lián)。然而,如果當前節(jié)點是頭節(jié)點,那么在步驟412,僅是當前節(jié)點的左側(cè)指針與所選擇的節(jié)點相關聯(lián)。在步驟414,識別用于所選擇節(jié)點的匹配規(guī)則。 更具體地,識別在當前級別字段中與所選擇的節(jié)點具有相同值或者具有通配符值的分類規(guī)則,并將其與所選擇的節(jié)點相關聯(lián)以作為匹配規(guī)則。在步驟415,將所選擇的節(jié)點與當前節(jié)點相關聯(lián),以及該方法返回步驟409。按這種方式,該方法400沿著左側(cè)分支的節(jié)點以節(jié)點值下降的順序移動,直到左側(cè)分支的所有節(jié)點之間的關系被定義。在步驟416,確定當前節(jié)點值是否為通配符值(也就是,“*”)。如果不是,在當前級別中沒有通配符值,從而可能存在具有不與任何頂部級別節(jié)點值相匹配的當前級別值的輸入分組。因此,在步驟417,將專用的“X”節(jié)點加入到左側(cè)分支,諸如圖3C中的節(jié)點345。更具體地,當前節(jié)點的右側(cè)指針和左側(cè)指針與“X”節(jié)點相關聯(lián)(指向“X”節(jié)點)。如上所述,在一個實施方式中,這樣的“X”節(jié)點表示不會發(fā)現(xiàn)用于輸入分組的匹配規(guī)則以及分類處
理應該停止。然而,在當前節(jié)點值是通配符值時,不將“X”節(jié)點加入到左側(cè)分支中,這是因為任何輸入分組會與當前節(jié)點匹配,并且分類處理會簡單地進入到下一樹級別。典型地,包括通配符節(jié)點的分類樹的級別不具有“X”節(jié)點,并且反之亦然。此外,通配符節(jié)點通常不具有左側(cè)分支或者右側(cè)分支。在步驟418,頭節(jié)點與當前節(jié)點相關聯(lián)以允許構(gòu)建頭節(jié)點的右側(cè)分支。按與步驟 409-417相似的方式,步驟418-4 根據(jù)右側(cè)節(jié)點集合的節(jié)點來提供對頭節(jié)點的右側(cè)分支的識別。通常說來,在圖4A-4G所描述的實施方式中,右側(cè)節(jié)點集合的節(jié)點從在右側(cè)節(jié)點集合的節(jié)點中具有最小值的節(jié)點開始以節(jié)點值增加的順序形成頭節(jié)點的右側(cè)分支。在步驟 419,確定與當前節(jié)點相關聯(lián)的節(jié)點是否具有右側(cè)節(jié)點集合值中的最大值。如果是,則已經(jīng)分析了右側(cè)節(jié)點集合的所有創(chuàng)建的節(jié)點,并且已經(jīng)定義了右側(cè)分支的節(jié)點之間的關系,從而,方法400進入到步驟416。在當前節(jié)點值不是右側(cè)節(jié)點集合的節(jié)點中最大的值時(步驟419),則不是右側(cè)分支的節(jié)點之間的所有關系都已經(jīng)被定義。因此,在步驟420,在右側(cè)節(jié)點集合的節(jié)點之間選擇具有相比于當前節(jié)點值的下一較大值的節(jié)點。例如,如果右側(cè)節(jié)點集合包括節(jié)點[A、B、 C],并且當前節(jié)點值為A,則在步驟420會選擇具有值B的節(jié)點。然而,如果當前節(jié)點值為 B,則所選擇的節(jié)點值為C。如果在步驟421,確定當前節(jié)點不是頭節(jié)點,則在步驟423,當前節(jié)點的左側(cè)指針和右側(cè)指針與所選擇的節(jié)點相關聯(lián)。然而,如果當前節(jié)點是頭節(jié)點,則在步驟422,僅當前節(jié)點的右側(cè)指針與所選擇的節(jié)點相關聯(lián)。在步驟424,識別用于所選擇節(jié)點的匹配規(guī)則。更具體地,識別在當前級別字段中具有通配符值或者與所選擇節(jié)點具有相同值的分類規(guī)則,并將其與所選擇的節(jié)點相關聯(lián)以作為匹配規(guī)則。在步驟425,所選擇的節(jié)點與當前節(jié)點相關聯(lián),以及該方法返回步驟419。按這種方式,方法400以節(jié)點值增加的順序沿著右側(cè)分支的節(jié)點移動,直到右側(cè)分支的所有節(jié)點之間的關系被定義。在步驟426,確定左側(cè)節(jié)點集合是否包括通配符節(jié)點。如果否,則在當前級別中不存在通配符字段,從而可能存在具有不與任何頂部級別節(jié)點值相匹配的當前級別值的輸入分組。因此,在步驟427,當前節(jié)點的右側(cè)指針和左側(cè)指針與“X”節(jié)點相關聯(lián)。然而,當左側(cè)節(jié)點集合包括通配符節(jié)點時,因為任何輸入分組可以與這樣的節(jié)點相匹配,那么不將“X”節(jié)點加入到左側(cè)分支。不管分類處理是沿著左側(cè)分支還是右側(cè)分支來采用邏輯決策路徑,如果至少一個分類規(guī)則在當前級別字段中具有通配符值,則輸入分組的相應字段應當與通配符字段相匹配,除非已經(jīng)發(fā)現(xiàn)具體值的匹配。因此,在步驟428,當前節(jié)點的左側(cè)指針和右側(cè)指針與左側(cè)節(jié)點集合的通配符節(jié)點相關聯(lián)。一般來說,方法400的上述步驟403至4 提供了構(gòu)建分類樹的頂部級別。步驟 4四-462提供了分類樹的剩余級別的構(gòu)建并定義分類樹的級別之間的關系以完成分類樹的構(gòu)建。在步驟429,確定當前級別是否與最低優(yōu)先級別字段相關聯(lián)。換句話說,步驟4 確定是否已經(jīng)建立分類樹的全部級別。如果沒有,在步驟431選擇表示分類樹的下一級別的字段。更具體地,選擇在分類樹中還沒有表示的字段中具有最高優(yōu)先級別的分類規(guī)則的字段,并將其與下一級別相關聯(lián)。在實施例1中可以在表200的字段2這一列中發(fā)現(xiàn)這樣的字段。通常,下一級別表示由分類樹的單一級別(也就是由當前級別節(jié)點的孩子孩子)所表示的分類規(guī)則的字段。一般來說,通過重復步驟432-434,可定義當前級別節(jié)點和下一級別節(jié)點之間的關系。更具體地,在步驟432,選擇還沒有與任何節(jié)點相關聯(lián)的具有下一級別指針(也就是,指示節(jié)點中間分支的指針)的當前級別節(jié)點。在一個實施方式中,這樣的選擇是隨機的;而在另一實施方式中,以當前級別節(jié)點值的順序依次選擇當前級別節(jié)點。在步驟433,創(chuàng)建下一級別節(jié)點的池,其中在分類過程中僅在所選擇的當前級別節(jié)點匹配后才可能到達池中的節(jié)點。一般來說,所創(chuàng)建的池包括通過節(jié)點的中間分支與所選擇的當前級別節(jié)點相關聯(lián)的分類子樹的頂部級別的節(jié)點。更具體地,根據(jù)在所選擇節(jié)點匹配規(guī)則的下一級別字段之間的每個唯一值,創(chuàng)建具有所述值的節(jié)點。換句話說,節(jié)點的所創(chuàng)建的池表示分類規(guī)則的下一級別字段的子集,其中所選擇的當前級別節(jié)點用作限制條件。 在步驟434,確定所創(chuàng)建節(jié)點之間的頭節(jié)點。在所描述的實施方式中,頭節(jié)點是在所創(chuàng)建的節(jié)點值之間具有中間值的節(jié)點。所確定的頭節(jié)點與所選擇的當前級別節(jié)點的下一級別指針相關聯(lián)。步驟435至460與上述的步驟406至似8相似,但有稍微的改動。一般來說,這些步驟用于構(gòu)建分類子樹的頂部級別,其中所確定的頭節(jié)點是每個這樣的子樹的根節(jié)點。因此,在步驟435,識別與所確定的頭節(jié)點相關聯(lián)的一個或多個匹配規(guī)則,其中匹配規(guī)則是在其當前級別字段中具有中間值或通配符值(也就是,“*”)的分類規(guī)則。然而,與從所有可使用的分類規(guī)則中選擇匹配規(guī)則的步驟406不同,在步驟435使用僅包括頭節(jié)點的父節(jié)點 (例如,所選擇的當前級別節(jié)點)的匹配規(guī)則的分類規(guī)則的集合來確定用于下一級別頭節(jié)點的匹配規(guī)則。為了創(chuàng)建下一級別頭節(jié)點的左側(cè)分支和右側(cè)分支,在步驟436創(chuàng)建左側(cè)節(jié)點集合和右側(cè)節(jié)點集合,其中左側(cè)節(jié)點集合包括其值小于中間值的節(jié)點以及右側(cè)節(jié)點集合包括具有大于中間值的值的節(jié)點。在步驟437,下一級別頭節(jié)點與當前節(jié)點相關聯(lián)。與步驟409至417相似,步驟438至444用于根據(jù)左側(cè)節(jié)點集合的節(jié)點識別下一級別頭節(jié)點的左側(cè)分支。在步驟438,確定與當前節(jié)點相關聯(lián)的節(jié)點是否具有左側(cè)節(jié)點集合的值中的最小值。如果是,則已經(jīng)分析了左側(cè)節(jié)點集合的所有所創(chuàng)建的節(jié)點,并且已經(jīng)定義了左側(cè)分支的節(jié)點之間的關系,從而,方法400進入步驟457。在當前節(jié)點值不是左側(cè)節(jié)點集合的節(jié)點之間的最小值(步驟438),則不是左側(cè)分支的節(jié)點之間的所有關系都已經(jīng)被定義。因此,在步驟439,在左側(cè)節(jié)點集合的節(jié)點中選擇具有相比于當前節(jié)點值的下一較小值的節(jié)點。如果在步驟440,確定當前節(jié)點不是頭節(jié)點, 則在步驟442,當前節(jié)點的左側(cè)指針和右側(cè)指針與所選擇的節(jié)點相關聯(lián)。然而,如果當前節(jié)點是頭節(jié)點,則在步驟441,僅當前節(jié)點的左側(cè)指針與所選擇的節(jié)點相關聯(lián)。在步驟443,識別用于所選擇節(jié)點的匹配規(guī)則。更具體地,識別在下一級別字段具有與所選擇節(jié)點的相同值或者具有通配符值的所選擇當前級別節(jié)點的匹配規(guī)則之間的分類規(guī)則,并將其與所選擇的節(jié)點相關聯(lián)以作為匹配規(guī)則。在步驟444,所選擇的節(jié)點與當前節(jié)點相關聯(lián),并且該方法返回步驟439。當?shù)竭_左側(cè)分支的最后節(jié)點時,當前節(jié)點是左側(cè)分支的最后節(jié)點,且其值是左側(cè)節(jié)點集合的最小值。在步驟445,確定當前節(jié)點值是否為通配符值(也就是,“*”)。如果不是,則在用于構(gòu)建分類子樹的分類規(guī)則之間的下一級別上沒有通配符字段,從而可能存在具有不與任何子樹的頂部級別節(jié)點值相匹配的下一級別值的輸入分組。然而需要注意的是,這不妨礙在下一級別字段中具有通配符值的分類規(guī)則的原始集合中存在分類規(guī)則。僅當左側(cè)節(jié)點中的節(jié)點是頭節(jié)點時,當前節(jié)點也可以具有左側(cè)節(jié)點集合的最小值。典型地,作為構(gòu)建的分類樹,用于構(gòu)建分類子樹的分類規(guī)則的數(shù)量在分類樹的每個下一級別上減小。從而,不同字段的值的數(shù)量也在每一級別上減小。因此,最終,左側(cè)節(jié)點集合和/或右側(cè)節(jié)點集合將僅包括一個節(jié)點-頭節(jié)點。因此,在步驟446確定當前節(jié)點是否是頭節(jié)點。如果是,那么頭節(jié)點是左側(cè)集合中僅有的節(jié)點,從而,在步驟448其左側(cè)指針與專用的“X”節(jié)點相關聯(lián)。如果不是,則在步驟447,當前節(jié)點的左側(cè)指針和右側(cè)指針與“X”節(jié)點相關聯(lián)。在步驟449,頭節(jié)點與當前節(jié)點相關聯(lián)以允許創(chuàng)建頭節(jié)點的右側(cè)分支。與步驟418 至4 相似,步驟450至460根據(jù)右側(cè)節(jié)點集合的節(jié)點提供用于識別下一級別頭節(jié)點的右側(cè)分支。更具體地,在步驟450,確定與當前節(jié)點相關聯(lián)的節(jié)點是否在右側(cè)節(jié)點集合值中具有最大值。如果是,則已經(jīng)分析了右側(cè)節(jié)點集合的所有創(chuàng)建的節(jié)點,并且已經(jīng)定義了右側(cè)分支的節(jié)點之間的關系,從而方法40進入步驟457。在當前節(jié)點值不是右側(cè)節(jié)點集合的節(jié)點中最大的值(步驟450)時,則不是右側(cè)分支的節(jié)點之間的所有關系都已經(jīng)被定義。因此,在步驟451,在右側(cè)節(jié)點集合的節(jié)點中選擇相比于當前節(jié)點值具有下一較大值的節(jié)點。如果在步驟452,確定當前節(jié)點不是頭節(jié)點, 那么在步驟454,當前節(jié)點的左側(cè)指針和右側(cè)指針與所選擇的節(jié)點相關聯(lián)。然而,如果當前節(jié)點是頭節(jié)點,那么在步驟453,僅有當前節(jié)點的右側(cè)指針與所選擇的節(jié)點相關聯(lián)。在步驟 455,識別用于所選擇節(jié)點的匹配規(guī)則。更具體地,識別在下一級別字段中與所選擇節(jié)點具有相同值或者具有通配符值的分類規(guī)則,并將其與所選擇的節(jié)點相關聯(lián)以作為匹配規(guī)則。在步驟456,所選擇的節(jié)點與當前節(jié)點相關聯(lián),并且該方法返回步驟450。在這種方式下,方法400沿著右側(cè)分支的節(jié)點以節(jié)點值增加的順序移動,直到右側(cè)分支的所有節(jié)點之間的關系被定義。如果當前節(jié)點值是右側(cè)節(jié)點集合的節(jié)點中的最大值,則方法進入到步驟457。這可能發(fā)生在當右側(cè)節(jié)點分支的最后節(jié)點已經(jīng)到達時或者僅右側(cè)節(jié)點集合中的節(jié)點是頭節(jié)點時。當右側(cè)節(jié)點集合和左側(cè)節(jié)點集合中的唯一節(jié)點是頭節(jié)點并且其值是通配符值時,由于僅有一個值和輸入分組的相應字段相比較并且該值與任何值相匹配,因此不需要將頭節(jié)點的右側(cè)指針和左側(cè)指針與任何節(jié)點相關聯(lián)。因此,在一個實施方式中,在步驟 457,確定當前節(jié)點值是否是通配符值,并且如果是,該方法簡單地通過當前節(jié)點和下一級別節(jié)點之間的定義關系繼續(xù)進行。在當前節(jié)點值不是通配符值時,在步驟457,確定左側(cè)節(jié)點集合是否包括通配符節(jié)點。當左側(cè)節(jié)點集合包括通配符節(jié)點時,不給右側(cè)分支增加“X”節(jié)點,但是,在步驟460,當前節(jié)點的左側(cè)指針和右側(cè)指針與左側(cè)節(jié)點集合的通配符節(jié)點相關聯(lián)。當左側(cè)節(jié)點集合不包括通配符節(jié)點時,如果之前沒有關聯(lián),在步驟459,當前節(jié)點的右側(cè)指針和左側(cè)指針與“X” 節(jié)點相關聯(lián)(例如,當左側(cè)節(jié)點集合僅包括頭節(jié)點時,在左側(cè)分支的處理過程中,非指針的頭可能已經(jīng)與“X”節(jié)點相關聯(lián))。在步驟461,確定是否已經(jīng)定義當前級別的每個節(jié)點和下一級別的節(jié)點之間的關系。在當前級別的至少一個節(jié)點具有不與下一級別節(jié)點相關聯(lián)的下一級別指針時,方法400 返回步驟432。在這種情況下,重復步驟432至461直到當前級別的每個節(jié)點與下一級別節(jié)點相關聯(lián)。從而,在步驟462,下一級別字段與當前級別相關聯(lián),并且方法400返回步驟4 以處理分類樹的下一級別。換句話說,在步驟462下一級別變成當前級別。如果在步驟429,確定當前級別與最低優(yōu)先級別字段相關聯(lián),則分類規(guī)則的所有字段已經(jīng)被分析并已經(jīng)通過相應級別表示在分類樹中。因此,方法400在步驟430結(jié)束。在這種情況下,構(gòu)建了具有多個決策路徑的分類樹。如上所述,在一個實施方式中,所構(gòu)建的分類樹僅包括那些提供輸入分組的單程分類所要求的邏輯決策路徑。然而需要注意的是,對于相同的分類規(guī)則集合,可以有多種如何構(gòu)建分類樹的變化。例如,如上所述,使用節(jié)點的有序集合構(gòu)建頭節(jié)點的左側(cè)分支和右側(cè)分支,從而有效地創(chuàng)建每個節(jié)點的當前級別的分支,左側(cè)指針和右側(cè)指針與相同節(jié)點相關聯(lián)。在另一實施方式中,例如,不是如步驟410和420所述的選擇下一較小/較大節(jié)點,而是在剩下的未分析節(jié)點中選擇具有中間值的節(jié)點。在這種情況下,一些節(jié)點的左側(cè)指針和右側(cè)指針將與不同節(jié)點相關聯(lián)。此外,典型地,分類處理在每一級別上將采用的路徑(邏輯決策路徑)比在上述分類樹中的要短。然而,例如,多個指向通配符節(jié)點和/或“X”節(jié)點的指針可能顯著增加。 進一步需要注意的是,盡管在上述說明中,使用指針定義節(jié)點之間的關系,但是可以使用其它工具,例如將節(jié)點識別為父輩和孩子(例如,左孩子、中間孩子、右孩子)和特定節(jié)點之間的關聯(lián)。根據(jù)本發(fā)明的一個實施方式,圖5A和圖5B描述了用于對分組進行分類的方法 500。所描述的方法500使用分類結(jié)構(gòu),例如根據(jù)上述圖3A-3C描述的分類樹300。方法500 從步驟505開始。在步驟510接收分組。在步驟515,給兩個變量(也就是當前級別和當前節(jié)點)分配初始值。例如,在一個實施方式中,這樣的值分別是分類樹的頂部級別(例如, 圖3A-3C的頂部級別310)和頭節(jié)點(例如,節(jié)點314)。通常,當前級別表示根據(jù)方法500 當前分析的分類樹的級別(例如,頂部級別310、中間級別320、或底部級別330)。當前節(jié)點表示根據(jù)方法500當前分析的分類樹的節(jié)點(例如,節(jié)點312、3沈、336等)。在步驟520,當前字段和與當前級別相關的分組字段相關聯(lián)。如上所述,分類樹 300的級別對應于分類規(guī)則的字段的優(yōu)先級別。當前字段表示具有與當前分析的樹的級別相對應的優(yōu)先級別的分組字段的值。例如,如果分組的字段具有值[B、C、A],其中B是具有最高優(yōu)先級的字段的值,A是具有最低優(yōu)先級的字段的值(實施例2),并且方法500處于分析分類樹的第二級別(例如,中間級別320)的階段,從而當前字段將具有值“B”。在步驟525和555,將當前字段值與當前節(jié)點值進行比較以確定應當采用當前節(jié)點的哪個分支(左、中間、或右),或者換句話說是哪個邏輯決策路徑,來處理分類過程。如果當前字段值不與當前節(jié)點值相等,方法500進入到步驟555。步驟555提供確定當前字段值是否大于或小于當前節(jié)點值。由于本實施方式的分類樹的基本結(jié)構(gòu),如果當前字段值小于當前節(jié)點值,則匹配節(jié)點(如果它存在)位于沿著當前節(jié)點的左側(cè)分支的某個地方。因此,方法500進入到步驟580,其中識別與當前節(jié)點的左側(cè)指針相關聯(lián)的節(jié)點(也就是,左側(cè)孩子)。相反,如果當前字段值大于當前節(jié)點值,則匹配節(jié)點(如果它存在)位于沿著當前節(jié)點的右側(cè)分支的某個地方。因此,方法500進入到步驟560,其中識別與當前節(jié)點的右側(cè)指針相關聯(lián)的節(jié)點(也就是,右側(cè)孩子)。
考慮上述描述的實施例2。為了分析頂部級別310,以及節(jié)點314特別與所接收的分組[B、C、A]相關,節(jié)點314的值(也就是“A”)與當前字段值(也就是“B”)相比。由于 “B”大于“A”,因此分類處理將沿著節(jié)點314的右側(cè)分支移動到節(jié)點316,其中節(jié)點316的值將依次與當前字段值進行比較,這在下面做詳細描述。在一個實施方式中,不是每個輸入分組都有匹配分類規(guī)則。在這樣的實施方式中, 分類樹可以包括特定的“X”節(jié)點,如果在特定分組的分類處理中到達該“X”節(jié)點,則指示輸入分組不與分類樹中表示的任意分類規(guī)則匹配,從而,分類處理可以停止。因此,圖5的方法500包括步驟565,其中確定在步驟560或步驟580識別的節(jié)點是否是“X”節(jié)點。如果是,在步驟570,將未匹配數(shù)據(jù)提供給負責應用規(guī)則的元件,并且方法500在步驟550結(jié)束。在一個實施方式中,未匹配數(shù)據(jù)僅指示輸入分組不與分類樹中表示的任何分類規(guī)則相匹配。在另一實施方式中,提供附加信息。例如,這種信息可以包括一列部分匹配的規(guī)則、一列已經(jīng)匹配的所接收分組的字段、分類樹的級別(在該級別到達“X”節(jié)點)、等等??紤]下面的示例實施例3。假設輸入分組的字段具有值[D、C、A],其中D是具有最高優(yōu)先級的字段的值,以及A是具有最低優(yōu)先級的字段的值。應用方法500,分組的頭兩個字段成功匹配,也就是,“D”與節(jié)點318相匹配、以及“C”與節(jié)點3 相匹配。然而,可能發(fā)現(xiàn)沒有用于分組的最后字段(也就是“A”)的成功匹配。作為在該特定實施例中在底部級別330上可用于分析的唯一節(jié)點的節(jié)點340具有值“C”。當“A”小于“C” (步驟555),在步驟580確定與節(jié)點340的左側(cè)指針相關聯(lián)的節(jié)點,也就是節(jié)點345。節(jié)點345是“X”節(jié)點 (步驟56 ,從而提供未匹配數(shù)據(jù)(步驟570)。這樣的數(shù)據(jù)可以包括頭兩個分組字段的值 “D”和“C”與規(guī)則4 (例如,與最后匹配的節(jié)點(節(jié)點328)相關聯(lián)的規(guī)則)相匹配、在分類樹300的底部級別330已經(jīng)確定的未匹配等等的信息。返回到步驟565,如果在該步驟確定步驟560或580所識別的節(jié)點不是“X”節(jié)點, 在步驟590,所識別的節(jié)點變成當前節(jié)點并且方法500返回步驟525。在這種情況下,方法 500的分類處理從一個節(jié)點進行到另一個節(jié)點,其中節(jié)點是相同級別的節(jié)點(或者換句話說,沿著在分類樹的一個級別中形成的邏輯決策路徑),直到在步驟525中發(fā)現(xiàn)當前級別的匹配節(jié)點或者到達“X”節(jié)點565。因此,在上述實施例1中,在分析頂部級別320和第一分組字段時,最初當前節(jié)點變量與頭節(jié)點314相同。由于第一分組字段的值“B”大于節(jié)點314 的值,因此給當前節(jié)點變量分配一個新值,也就是節(jié)點314的右側(cè)孩子,節(jié)點316。該分配允許在分組第一字段的值和節(jié)點316的值之間進行比較,從而將第一分組字段與節(jié)點316相匹配。如果在步驟525確定當前字段的值等于當前節(jié)點值(也就是,匹配),方法500進入到步驟530。這意味著分組字段中的一個已經(jīng)與分類規(guī)則中的至少一個相匹配。因此,分類處理沿著由當前節(jié)點的中間分支所形成的邏輯決策路徑繼續(xù)進行到分類樹的下一級別。 從而,在上述實施例2中,可以在第一分組字段的值“B”和節(jié)點316之間以及第二分組字段的值“C”和節(jié)點3 之間發(fā)現(xiàn)這樣的匹配。在步驟530,確定當前節(jié)點是否是底部級別(例如,底部級別330)的節(jié)點。如果當前級別是底部級別,則分類樹的每一級別都已經(jīng)被考慮。換句話說,由于底部級別節(jié)點與所接收分組的最低優(yōu)先級字段相匹配,因此已經(jīng)對分組進行分類并且已經(jīng)發(fā)現(xiàn)匹配規(guī)則。匹配規(guī)則是與當前節(jié)點相關聯(lián)的規(guī)則。在步驟M5,將這樣的規(guī)則提供給負責應用規(guī)則的元件,并且該方法500在步驟550結(jié)束。例如,考慮具有字段值為[A、B、C]的分組,其中A是具有最高優(yōu)先級的字段的值, 以及B是具有最低優(yōu)先級的字段的值(實施例幻。進一步考慮方法500當前處于分析底部級別330和節(jié)點334的階段。因此,當前級別表示底部級別330并且當前節(jié)點表示節(jié)點334。 因此,由于分組的第三字段是對應于底部級別的字段,因此當前節(jié)點的值(也就是“C”)等于當前字段的值(也就是“C”)。此外,由于當前級別是底部級別,則分組的所有字段已經(jīng)被匹配,也就是,“A”與節(jié)點314、“B”與節(jié)點323、“C”與節(jié)點334。從而,匹配分類規(guī)則是與底部級別的匹配節(jié)點(也就是,節(jié)點314)相關聯(lián)的規(guī)則,以及是表200的規(guī)則1。因此,本發(fā)明的實施方式提供了一種用于根據(jù)多個分類規(guī)則構(gòu)建單分類結(jié)構(gòu)的方法,按這種方式能夠進行通常提供具體結(jié)果的單程分類。盡管這里已經(jīng)詳細說明和描述了各種實施方式,但是本領域技術(shù)人員仍然能夠容易地設計出許多與所描述的教導結(jié)合的其它變化的實施方式。
權(quán)利要求
1.一種用于構(gòu)建分類樹結(jié)構(gòu)的方法,所述分類樹結(jié)構(gòu)適于能夠根據(jù)多個規(guī)則對接收的分組進行單程分類,每個規(guī)則具有與其相關聯(lián)的多個字段,每個字段具有與其相關聯(lián)的優(yōu)先級別,該方法包括對于頂部優(yōu)先級別,執(zhí)行以下步驟 為頂部優(yōu)先級別字段中的每個唯一值創(chuàng)建節(jié)點;對于頂部優(yōu)先級別中的每個節(jié)點,識別與相應節(jié)點值相匹配的一個或多個規(guī)則的各個集合;從所創(chuàng)建的節(jié)點中選擇頭節(jié)點;創(chuàng)建從頭節(jié)點至頂部優(yōu)先級別中的其它節(jié)點的邏輯決策路徑; 創(chuàng)建從頂部優(yōu)先級別中的節(jié)點至下一較低優(yōu)先級別的邏輯決策路徑;以及對于任何剩余優(yōu)先級別的每一個,執(zhí)行以下步驟對于從下一較高優(yōu)先級別接收的每個邏輯決策路徑,創(chuàng)建僅包括這些節(jié)點和滿足與各個下一較高優(yōu)先級別的節(jié)點相關聯(lián)的規(guī)則所要求的相關邏輯決策路徑的各個子樹;對于每個非最低優(yōu)先級別,創(chuàng)建從當前優(yōu)先級別中的節(jié)點至下一較低優(yōu)先級別的邏輯決策路徑。
2.根據(jù)權(quán)利要求1所述的方法,其中至少一個邏輯決策路徑包括通配符節(jié)點。
3.根據(jù)權(quán)利要求1所述的方法,其中至少一個邏輯決策路徑包括未匹配節(jié)點。
4.根據(jù)權(quán)利要求1所述的方法,其中創(chuàng)建各個子樹的步驟包括 構(gòu)建子樹的頂部級別,構(gòu)建子樹的頂部級別的步驟包括 為多個規(guī)則的子集的頂部級別的字段中的每個唯一值創(chuàng)建節(jié)點;對于頂部級別中的每個節(jié)點,使用多個規(guī)則的子集識別與相應節(jié)點值相匹配的一個或多個規(guī)則的各個集合;從所創(chuàng)建的節(jié)點中選擇頭節(jié)點;創(chuàng)建從頭節(jié)點至頂部級別中的其它節(jié)點的邏輯決策路徑;以及創(chuàng)建從頂部優(yōu)先級別中的節(jié)點至下一較低優(yōu)先級別的邏輯決策路徑; 其中多個規(guī)則的子集包括相對于頂部級別具有下一較高優(yōu)先級別的節(jié)點的匹配規(guī)則并且與子樹相關聯(lián)。
5.根據(jù)權(quán)利要求1所述的方法,其中創(chuàng)建從頭節(jié)點至頂部優(yōu)先級別中的其它節(jié)點的邏輯決策路徑的步驟包括形成包括具有大于頭節(jié)點值的值的頂部優(yōu)先級別的節(jié)點的第一節(jié)點組; 形成包括具有小于頭節(jié)點值的值的頂部優(yōu)先級別的節(jié)點的第二節(jié)點組; 從第一節(jié)點組中選擇頭節(jié)點的第一孩子;以及從第二節(jié)點組中選擇頭節(jié)點的第二孩子。
6.根據(jù)權(quán)利要求5所述的方法,其中第一孩子是相比于頭節(jié)點值具有下一較大值的節(jié)點,以及第二孩子是相比于頭節(jié)點值具有下一較小值的節(jié)點,創(chuàng)建從頭節(jié)點至頂部優(yōu)先級別中的其它節(jié)點的邏輯決策路徑的步驟進一步包括對于第一節(jié)點組的每個節(jié)點,除了具有最大值的節(jié)點之外,選擇孩子節(jié)點,其中在與節(jié)點的值相比時孩子節(jié)點的值是下一較大值;對于第二節(jié)點組的每個節(jié)點,除了具有最小值的節(jié)點之外,選擇孩子節(jié)點,其中在與節(jié)點的值相比時孩子節(jié)點的值是下一較小值。
7.一種用于對輸入數(shù)據(jù)分組進行分類的方法,該方法包括接收包括多個分組字段的數(shù)據(jù)分組,每個字段具有與其相關聯(lián)的不同優(yōu)先級別;以及通過表示多個分類規(guī)則的分類樹結(jié)構(gòu)的單程來確定匹配數(shù)據(jù)分組的分類規(guī)則,分類樹結(jié)構(gòu)包括多個級別,其中分類樹的頂部級別對應于最高優(yōu)先級別,以及分類樹結(jié)構(gòu)的每個下一級別對應于下一較低優(yōu)先級別,其中確定步驟包括選擇分組字段,所選擇的分組字段與最高優(yōu)先級別相關聯(lián);在分類樹結(jié)構(gòu)中沿著對應于數(shù)據(jù)分組的邏輯決策路徑逐級地從頂部級別的根節(jié)點開始并向底部級別移動以進行處理,其中對于分類樹結(jié)構(gòu)的每一級別將所選擇的分組字段的值與在分類結(jié)構(gòu)的當前級別中運行的邏輯決策路徑的節(jié)點進行比較以發(fā)現(xiàn)匹配節(jié)點,匹配節(jié)點與所選擇的分組字段具有相同的值,其中匹配節(jié)點定義了到達分類樹結(jié)構(gòu)的下一較低級別的邏輯決策路徑;以及對于每個非最低級別,在發(fā)現(xiàn)匹配節(jié)點時,選擇具有下一較低優(yōu)先級別的分組字段;以及在發(fā)現(xiàn)底部級別的匹配節(jié)點時,提供與所發(fā)現(xiàn)的匹配節(jié)點相關聯(lián)的分類規(guī)則以作為匹配數(shù)據(jù)分組的分類規(guī)則。
8.根據(jù)權(quán)利要求7所述的方法,進一步包括如果用于數(shù)據(jù)分組的邏輯決策路徑在多個級別的一個中到達未匹配的節(jié)點時,提供數(shù)據(jù)分組沒有匹配的分類規(guī)則的信息。
9.根據(jù)權(quán)利要求7所述的方法,其中在當前級別中確定邏輯決策路徑的步驟包括 將當前級別的頭節(jié)點的值和相應分組字段的值進行比較以確定邏輯決策路徑的下一節(jié)點,其中,在當前級別是頂部級別時,頭節(jié)點是根節(jié)點,以及其中,在當前級別不是頂部級別時,由之前級別的邏輯決策路徑定義頭節(jié)點;在確定頭節(jié)點的值小于分組字段的值時,選擇頭節(jié)點的第一孩子作為下一節(jié)點,第一孩子具有比根節(jié)點值大的值;以及在確定頭節(jié)點的值大于分組字段的值時,選擇頭節(jié)點的第二孩子作為下一節(jié)點,第二孩子具有比根節(jié)點值小的值。
10.根據(jù)權(quán)利要求7所述的方法,其中在當前級別中確定邏輯決策路徑的步驟包括 直到邏輯決策路徑到達當前級別中的匹配節(jié)點或者未匹配節(jié)點時,在當前級別中選擇邏輯決策路徑的下一節(jié)點,其中如果前述節(jié)點的值小于分組字段的值,則下一節(jié)點是前述節(jié)點的第一孩子;以及如果前述節(jié)點的值大于分組字段的值,則下一節(jié)點是前述節(jié)點的第二孩子。
全文摘要
本發(fā)明的實施方式提供了一種根據(jù)多個規(guī)則來構(gòu)建分類樹的方法。每個規(guī)則包括具有不同優(yōu)先級別的多個字段。構(gòu)建分類樹以根據(jù)多個規(guī)則來提供所接收分組的單程分類。逐級構(gòu)建分類樹,其中每一級別表示優(yōu)先級別中的一個。構(gòu)建分類樹的單個級別包括對于每一個從下一較高優(yōu)先級別接收的邏輯決策路徑,創(chuàng)建各自的子樹。子樹僅包括節(jié)點和相關的邏輯決策路徑,所述邏輯決策路徑是滿足與各自的下一較高優(yōu)先級別節(jié)點相關聯(lián)的規(guī)則所要求的邏輯決策。單個級別的構(gòu)建進一步包括對于每個非最低優(yōu)先級別,創(chuàng)建在從當前優(yōu)先級別中的節(jié)點至下一較低優(yōu)先級別的邏輯決策路徑。
文檔編號H04L12/56GK102204180SQ200980143335
公開日2011年9月28日 申請日期2009年10月20日 優(yōu)先權(quán)日2008年10月30日
發(fā)明者C·葉, K·R·貝利, P·R·拉奧, V·馬格雷 申請人:阿爾卡特朗訊公司