TW498650B - Flexible and highly efficient packet classification method - Google Patents

Flexible and highly efficient packet classification method Download PDF

Info

Publication number
TW498650B
TW498650B TW089105205A TW89105205A TW498650B TW 498650 B TW498650 B TW 498650B TW 089105205 A TW089105205 A TW 089105205A TW 89105205 A TW89105205 A TW 89105205A TW 498650 B TW498650 B TW 498650B
Authority
TW
Taiwan
Prior art keywords
rule
mapping table
sub
search
flexible
Prior art date
Application number
TW089105205A
Other languages
English (en)
Inventor
Kuo-Cheng Leu
Shr-Ming Jau
Guo-Hua Yuan
Original Assignee
Ind Tech Res Inst
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW089105205A priority Critical patent/TW498650B/zh
Priority to US09/695,396 priority patent/US6778984B1/en
Priority to DE10058443A priority patent/DE10058443A1/de
Application granted granted Critical
Publication of TW498650B publication Critical patent/TW498650B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

498650
本發明是有關於一種能搜尋具不理會(d〇n,t care 位之貢料庫的方法’且特別是有關於一種彈性而高效能 封包分類方法’其可彈性的被設定成數個不同資料項 及深度的子表(Sub Table),十分適合目前網路開關;佈ς 器(Internet Switch/Router)的路徑表查詢,以及封包分 類(Packet Classification)的應用,並且更適合做為網刀 路處理器(Network Processor)的泛用搜尋引擎。
為了支援更具彈性的服務需求,佈線器(R〇uter)不再 像過去一樣只需查尋路徑表(Routing Table),然後將封 包送到下一站而已。現今的網路開關/佈線器還需要能對 封包分類,給予不同的服務品質保證(qoS),或者根據私 有虛擬網路(Virtual Private Network)的設定,給予不 同層級之資訊安全處理。另外,保障網路安全的防火牆 (F i rewal 1)也需仰賴封包分類技術,以便決定是否允許封 包進出網路。這一切接鐘而至的新服務所仰賴的核心技 術,說穿了,就是封包分類。 若要做到封包分類,必需要能解析封包的表頭 (Header)。以TCP/IP協定為例,我們若要決定一應用導向 (Application Flow),必需以IP Source Address(32 bits),IP Destination Address(32 bits),Protocol (8 bits),Source Port Number(16 bits) ^Destination Port Number(16 bits)這104個位元的表頭,到規則資料 庫(Ru 1 e Database )搜尋,以決定該如何處理此一封包。 基本上,規則資料庫的内容,多半允許管理者作彈性的設
第4頁 4 498650
五、發明說明(2) 定所謂具有不理會攔位之規則。 舉例來說,附表一所列的就是一些典型的規則(’ X, 表示不理會欄位(don’t care field)):
Source IP Dest. IP Protocol Source Port Dest. Port 服務品質 140.96.115.X X.X.X.X 06(TCP) 80(HTTP) X 高 140.96.114.X 140.96.116.X X X X 中 X.X.X.X X.X.X.X X X X 低 附表一、封包分類表的範例 由於封包分類日漸受到重視,近年來有許多學者在國 際期刊發表相關的搜尋方法。例如:V · S r i n i v a s a η等人 (如下列[1]所述)提出了交叉乘積(Cross-Pro duct)的搜尋 方法·,Τ· V· Lakshman(如下列[2 ]所述)等人使用了 5個記 憶體組(memory bank)去搜尋1024個規則(ruies) ;ν· Mckeown等(如下列[3 ]所述)藉由觀察規則的特性,所提出 之壓縮的方法…等。然而,這些習知方法往往面臨在最壞 情況下,效能低落或者記憶體使用量太大的問題,而且也 不適用於其它種類的搜尋需求(如IP路徑表)。内容可定 址記憶體(Content Addressable Memory,CAM)(如下列 [4 ]所述)也是一種適合用以解決封包分類的技術,然而, 它最大的缺點是價格較為昂貴,並需要特別的電路設計與 佈局技術之配合,因此目前未被廣範採用。
第5頁 498650 五、發明說明(3) [1] V· Srinivasan, G·Varghese, S.Suri, and M.Waldvogel, "Fast and Scalable Layer 4 Swicthing· 丨丨 ACM SIGCOMM,98,Vancouver,British。 [2] T.V·Lakshman and D. Stiliadis, "High-Speed Policy-Based Packet Forward i ng Using Efficient Multi-dimension Range Matching. ’’ ACM SIGCOMM’ 98, Vancouver, British 〇 [3] N· Mckeown "Packet Classification on Multiple Fields·’丨 Inforcomm 2000 〇
[4] T.pei and C· Zukowaki. "Put Routing Table in Silicon·” IEEE Network Magazine, ρρ·42-50, Jan 1 992。 有鐾於此,本發明提出一種彈性而高效能的封包分類 方法,包括將原來的規則資料庫轉換成規則映射表的格式 儲存,以及此規則映射表的產生方式為,將輸入鍵值分割 成數,子鍵值,然後依序把每一子鍵值的各種排列組合^ 一與每一條規則的同一子鍵值攔位比較,再以位元映射的 方式將比對的結果(’1,表示符合,,〇,表示不符合)儲 規則映射表中。
依照本發明,當輪入鍵值寬度為w位元、每一子鍵 為G位元以及規則資料庫有N筆規則時,規則映射表的 小(S)為S = (W/G) X N X 广# -、 _ ^ , N x a (位儿),以及每次搜尋所雲 之最 >、的記憶體讀取量(八)為人=(W/G) χ N (位元) 此外,當使用每一子鍵值寬度為2(G=2)的組態/可得
第6頁 498650 五、發明說明(4) 到最小的規則映射表,其大小為S=(w X N) X 2 (位元), 並可得到在此最小的規則映射表下,每次搜尋所需之最少 的記憶體讀取量(A)為A = (W X N) / 2 (位元)。 本發明查尋規則映射表的方法包括將輸入鍵值的每一 子鍵值抽出,直接當作索引取出在規則映射表中對應的規 則向量,以及將取出來的規則向量作交集運算,此運算所 付結果稱為付合規則向量’若符合規則映射不為零,則取 出其最左邊之位元代號,而此位元代號即代表查尋結果。 再者,將上述查尋結果乘以一相關資料的大小,再加上一 相關資料記憶體起始位址,就可定址到存放相對於此查 結果的資料。 一 本發明 工作,每一 欄位到搜尋 此外, 設定每一子 具有一描述 一記錄子表 放相關資料 料的大小之 依照本 以很簡單的 以使數個不 擎’使整個 使用數 搜尋引 引擎的 本發明 表所存 起始掃 寬度的 記憶體暫存器 發明提 支援多 同長度 設計充 個搜尋 擎處理 分配係 可將規 放之規 描值的 暫存器 起始位 〇 出之彈 個規則 與寬度 滿實用 引擎平行 一部分之 透過交錯 則映射表 則寬度及 暫存器、 。甚且, 址的暫存 性而南效 資料庫或 的規則資 上的進步 心*土况別呎射表 規則向量,同時子鍵 矩陣。 切割成數個子表,並 個數。其中,每一子 一終止掃描值暫存器 母 子表具有一描述 器與一描述存放相關 能的封包分類方法, 子表。而且,本發明 料庫共存於同一搜尋 性(速度快、體積小)
第7頁 498650 五、發明說明(5) 彈性(不同規則資料庫共存)。此外,本發明不僅可在一份 實體的記憶體上動態的設定數個不同規則實 …此搜尋方法增加無比的彈性,使得!;=性: 咼效能的搜尋方法,十分適合使用於網路處理写的讯叶 上,以作為泛用的搜尋引擎,並且也可應用於任何=ς快 速搜尋的場合,或當作CAM的取代技術。 而 為讓本發明之上述和其他目的、特徵、和優點 明 顯易懂,下文特舉較佳實施例,並配合所附圖 說明如下: # 圖式之簡單說明: 第1圖繪示的是一個具有5個8位元規則的封包分 料庫; 、 .第2圖繪示的是本發明提出之封包分類方法的示意 圖;
第3圖繪示的是一個16位元寬,32個表目深的規 表, 、J 及 一立第4·圖繪示的本發明之搜尋引擎進行平行處理的架構 第5圖繪示的是第4圖之4個搜尋引擎的表格内容丨以 第6圖繪示的是本發明之整個查表的流程圖 圖式之標號說明: I 〇 〇 :規則表 II 0、1 5 0 :搜尋結果 498650 五、發明說明(6) 1 2 0 :規則映射表 130 ·· AND 邏輯 1 4 0、2 0 0、2 1 〇 :優先編碼器 實施例 本發明旨在提出一種高速且經濟的搜尋方法,特別是 針對含有不理會位元(don’t care bit)欄位資料的搜尋。 為了方便解說,我們將以一個只有5個規則(ru 1 e )的圖表 為例。第1圖中的規則表100是一具有5個8位元規則(8—bit r u 1 e )的資料庫。每一個規則的每一個位元都可以是,1,、 ’ 0’ 或是’ X’(don’ t care ))。本發明所要提出的搜尋方法 將能把輸入的鍵值(Input Key ),到規則表1 〇〇中找到一個 符合的規則。當有一個以上的符合的規則時,此搜尋方式 會以位在規則表100中較前的規則當作搜尋結果(Lookup Result)。以第1圖之輸入的鍵值“丫 #〇ciim〇〇ii,)為 例,我們可以發現規則表1 〇 〇中之r u 1 e # 1 (,1 11 1 〇 x j!,)、 rule #2( lxxxOOll’)及rule #4(’xxxxxxxx’)均是符合的 rule。此時,此搜尋方法將以rule #1為搜尋結果丨1〇。 接下來我們將介紹本發明提出的封包分類方法。首 先,必需將原來的規則表轉換成規則映射表(1 e Mapping Table),並儲存於記憶體中。第2圖是本發明提 出之封包分類方法的示意圖。規則映射表1 2 0的產生方式 是將輸入鍵值分割成數個子鍵值,然後,依序把每一個子 鍵值的各種排列組合逐一與每一條規則(r u 1 e)的同一子鍵 值欄位比較,再以位元映射(Bit Map)的方式(,1,表示符
第9頁 五、發明說明(7) 二們』,不不符合)儲存於規則映射表1 20中。後文中, 中,告m/見彳則向量Rule Vect〇r(I,J)稱呼規則映射表120 田弟1個子鍵值為J時,所轉換的位元映射。 幻+ 第1圖_的規則表1 〇 〇為例,若將8位元的輸入鍵值分 ^ @1献固2位兀寬的子鍵值,則我們可得到如第2圖所示的 忠二、射表120。以輸入鍵值的子鍵值#〇(bit#l,bit #0) ^ (〇 ’〇}所對應之Rule Vector(〇,〇)=丨1,〇,〇, 。廷表不當輸入鍵值的bit#l與bit #0為{0,0}時, 將付srule #〇’rule #3與rule#4的要求。同理,子鍵值 #0 為{1 ’1}所對應之Rule Vect〇r(〇,3) ={〇,ι,ι,ι, lj,這表示當輸入鍵值的bit#l與!^士 #〇為丨丨,丨丨時,將 符合 rule #1、rule #2、rule #3 與 rule#4 的規範。 建立好規則映射表120後,搜尋工作將大為簡化,只 要把相對於要搜尋的鍵值(Key)的所有的規則向量(Rule Vector)取出,並將其做AND運算13(),如此就可以得到此 鍵值可符合那些規則的要求。在第2圖中,以輸入鍵值 #1( 11110011 )為例’四個規則向量Rule Vector(0, 3),Rule Vector(l,〇),Rule Vector(2,3)與Rule
Vector(3,3)(如陰影部分所示)將會被取出。接著,把這 四個規則位元映射作AND運算1 30,將可得到一符合規則向 量(Conformed Rule Vector) ··{〇,1,l,〇,i} 〇 這顯示 輸入鍵值符合rule #1,rule #2與rule #4的規範。最 後,再以優先編碼器(Priority Encoder)140取出最前面 的Rule #1,這就是搜尋結果(Lookup Result)150 了。
第10頁 498650 五、發明說明(8) 為了進一步分析此方法的效能,我們以 G(granularity)表示每個子鍵值的位元數,以w表示規則 表中每個規則的寬度,以N表示規則表的規則數目。(就上 例而言,G = 2 ϋ,N = 5)。本方法之規則映射表所需的記 憶體容量(S)為: " S = (W/G) X N X 2G (位元)------(1) 而每次搜尋所需讀取的記憶體量(A)為: A = (W/G) X N (位元)------(2) 套以上述範例(G = 2,W = 8,N = 5 ),則所需之規則映射 表120的容量為(8/2) X 5 X 22 = 80位元。而每次搜尋所 _ 要讀出的記憶體量為(8/2)x 5 = 20位元,其與第2圖所示 的一致。觀察公式(1)與公式(2),可發現本方法有一個值 付/主思的現象’就是當G值為1或2時,規則映射表所需的 記憶體容量最小: s = (W/l) χΝχ21 二 WxNx2(位元) ------(3) 但是’ G = 2的組態每次搜尋所需讀取的記憶體量卻只 有G = 1時的一半。這顯示若希望規則映射表所需的記憶體 最小’則G = 2的組態將是最佳解。 在說明完本發明的基本原理之後,我們將把此方法進聲 一步延伸’使其搜尋速度加快,並能讓多個不同長度與寬 度的規則表共存於一個實體的記憶體内,如此的話,就能 、 提高本發明的進步性、彈性與實用性。 接下來,我們將以一個16位元寬,32個表目(entry)
第11頁 498650 五、發明說明(9) "" ' — /木的規則表為例,並採用G = 2來產生規則映射表,又如前 面所說明的’ G = 2能使規則映射表所佔用的實體記憶體量 最少。由前面的說明可知,這樣的一個規則映射表將會有 32個規則向量rule vect〇r(16位元的輸入鍵值相當於8個 子鍵值欄位(Subkey fields),而每個子鍵值攔位會映射 (map)成4個ruie vector,而每個rule ”以”有“位元, 如第3圖所示。圖中的rule vect〇r[1][31:〇]表示當輸入 鍵值的子鍵值攔位Subkey fi led #0為2, b01時,所符合之 規則的位元映射。同理,rule vect〇r[7;][31:〇n表示當 輸入鍵值的子鍵值攔位Subkey filed#l為2,bll時,所符 合之規則的位元映射。 要搜尋此規則映射表,需要循序的讀出8個規則向量 (rule vector),並取出交集的部份。為了加速搜尋速 度,我們使用四個搜尋引擎平行處理。令每個搜尋引擎負 責兩個子鍵值欄位(Subkey field),也就必需由8個rule vector中讀取2個rule vector(共64位元)並執行交集運 算。由於rule vector越左邊的位元的優先權越高,因此 我們會先處理所有ru 1 e vector之最左邊的部分(即後述的 AND cycle #0)。 若找不到符合的規則代號(ru 1 e number),再依序向右邊找(即後述的AND cycle #1)。 為了考慮實體製作的可行性,如:實體記憶體寬度及 優先編碼器的速度,我們假設每個搜尋引擎内的記億體寬 度均為16位元,因此若要讀出2個rule vector共需要4次 的讀取週期(read cycle)。由於這四個搜尋引擎是平行運
第12頁 498650 五、發明說明(ίο) 作的,故整體的搜尋時間與單一個搜尋引擎使用的時間同 為4 個讀取週期的時間。 第4圖即上述平行處理的架構圖。特別要注意的是, 搜尋引擎Search Engine #0負責子鍵值欄位Subkey filed #0 與 Subkey field#4相關的規則向量(Ruie Vector),而 非Subkey filed #0與Subkey field#l。此處我們以交錯 矩陣(Interleave Matrix)來稱呼這樣的分配方式。這樣 分配的好處是,當我們要支援較窄的規則(Rule)時(如8位 元)’每個搜尋引擎一樣能分配到相同數量的子鍵值欄 位,而可以平行處理。 第5圖是上述4個搜尋引擎的表格内容。在這個例子 中’每一個搜尋引擎(Search Engine)的前兩個讀取週期 (稱為AND cycle #0),負責每個規則向量(rule vector) 之前16位元的交集運算。圖中的為每次讀 取週期所讀出的向量,其中的I為搜尋引擎代號,j為AND cycle的代號,κ為讀取週期的代號。 第6圖是整個查表的流程圖。經過AND Cycle#0,將這 4個搜尋引擎所讀出的8個向量做AND之後再透過優先編碼 器2 0 0 ’就可知道輪入鍵值是否符合規則(r u 1 e) 〇到1 5的 任一個。若於AND cycle #0無法搜尋到,則需再進行AND cycle#l ’取出每個規則向量(ruie vector)之後16位元作 交集運算。若有找到的話,優先編碼器21 〇就會輸出符合 的規則代號(〇…1 5 ),再加上1 6之後,就可得到符合的規 則代號。
第13頁 498650 五、發明說明(11) 藉由上述的技術,我們完成了規則表查表,並以平行 處理的技巧使每個搜尋引擎平均的處理一部分的子鍵值欄 位。使用交錯矩陣可使此搜尋方法適用於處理不同寬度的 規則(Ru 1 e )。最後’本發明能很簡單的支援多個規則資料 庫或子表(Sub-Table)。只要在搜尋時,設定欲搜尋之子 表的起始掃描值,終止掃描值及規則寬度,搜尋引擎便會 去搜尋此一子表。如此,我們可使數個不同長度與寬度的 規則資料庫共存於同一搜尋引擎,使整個設計充滿實用上 的進步性(速度快、體積小)與彈性(不同規則資料庫共 存)。 此外’母個子表具有一個存放相關資料(Ass〇ciated Data)的起始位址暫存器及相關資料的大小(gize the associated data)之暫存器。將搜尋到Rule #乘以相關資 料的大小’再加上相關資料記憶體起始位址,就可定址到 存放此Rule的資料。 綜上所述’本發明提出一彈性而快速的封包分類方 法,不僅可在一份實體的記憶體上動態的設定數個不同規 則寬度的子表’而且可使此搜尋方法增加無比的彈性,例 如,我們可以切割一個1 28位元寬的子表,擔負導向分類 (Flow Classification)的工作;再切出一個32位元寬的 子表擔負IP路徑表之查詢工作;最後,再切出一個64位元 寬的子表來容納MAC位址。此外,這樣彈性且高效能的搜 尋方法,也將十分適合使用於網路處理器的設計上,以作 為一泛用的搜尋引擎。
第14頁 498650 五、發明說明(12) 另,本發明可應用於任何需要快速搜尋的場合,或當 作CAM的取代技術,例如:LAN開關佈線器(Switch Router),第四層交換器(Layer 4 Switch),私有虛擬網 路(Virtual Private Network),網路運輸量測(Network Traffic Measurement),網路處理器(Net work
Processor) ’ 導向分類(Flow Classification),防火踏 (F i rewa 1 1 )…等產品〇 雖然本發明已以較佳實 限定本發明,任何熟習此技 和範圍内,當可作各種之更 範圍當視後附之申請專利範 施例揭露如上,然其並非用以 藝者,在不脫離本發明之精神 動與潤飾,因此本發明之保護 圍所界定者為準。
498650 圖式簡單說明 第1圖繪示的是一個具有5個8位元規則的封包分類資 料庫, 第2圖繪示的是本發明提出之封包分類方法的示意 圖; 第3圖繪示的是一個1 6位元寬,3 2個表目深的規則 表; 第4圖繪示的本發明之搜尋引擎進行平行處理的架構 示意圖;
第5圖繪示的是第4圖之4個搜尋引擎的表格内容;以 及 、 第6圖繪示的是本發明之整個查表的流程圖。 圖式之標號說明: I 0 0 :規則表 II 0、1 5 0 :搜尋結果 1 2 0 :規則映射表 130 : AND 邏輯 1 4 0、2 0 0、2 1 0 :優先編碼器
第16頁

Claims (1)

  1. i•-種彈性而高效能的封包分類方法,包括: 存 將原來的-規則資料庫轉換成一規則 以及 #式儲 該規則映射表的產生方式為,將一輸入鍵值 數個子鍵值,然後依序把每一該子鍵值的各種排列組; 一與每一條規則的同一子鍵值攔位比較,再以一位元映= 的方式將比對的結果(’1,表示符合,,〇,表示不符合)儲存 於該規則映射表中。 2·如申請專利範圍第1項所述之彈性而高效能的封包 分類方法,其中當該輸入鍵值寬度為W位元、每一該子鍵 值為G位元以及該規則資料庫有N筆規則時,該規則映射 表的大小(S)為: S = (W/G) X N X 2G (位元);以及 每次搜尋所需之最少的記憶體讀取量(A)為: A = (W/G) X N (位元)。 3 ·如申請專利範圍第2項所述之彈性而高效能的封包 分類方法,其中使用每一該子鍵值寬度為2 (G = 2)的組態, 可得到最小的該規則映射表,其大小為· S==(w X N) X 2 (位元) 並可得到在該最小的該規則映射表下,每次搜尋所需 之最少的記憶體讀取量(A )為: A=(W X N) / 2 (位元)。
    498650 六、申請專利範圍 4·如申請專利範圍第1項所述之彈性而高效能的封包 分類方法,其中查尋該規則映射表的方法包括: 將該輸入鍵值的每一該子鍵值抽出,直接當作索引取 出在該規則映射表中對應的規則向量;以及 將該些取出來的規則向量作交集運算,該運算所得結 杲稱為一符合規則向量,若該符合規則映射不為零,則取 出其最左邊之一位元代號,而該位元代號即代表一查尋結 果。 5 ·如申請專利範圍第4項所述之彈性而高效能的封包 分類方法,其中使用複數個搜尋引擎平行處理該規則映射 表的查尋工作,每一搜尋引擎處理一部分之該規則向量, 同時該子鍵值欄位到該搜尋引擎的分配係透過一交錯矩 陣。 6 ·如申請專利範圍第4項所述之彈性而高效能的封包 分類方法,其中將該查尋結果乘以一相關資料的大小,再 加上一相關資料記憶體起始位址,就可定址到存放相對於 該查尋結果的資料。 7.如申請專利範圍第丨項所述之彈性而高效能的封包 分類方法,其中將該規則映射表切割成複數個子表,並可 設定每一該子表所存放之規則寬度及個數。
    第18頁 498650
    8.如申請專利範圍第7項所述之 分類方法,其中每一該子表具有一插 而高效能的封包 器、一終止掃描值暫存器與一記錄 的暫存 双見度的暫存器。 八;9·如申請專利範圍第7項所述之彈性而高效能的封包 刀類方法’其中每一該子表具有一描述存放相關資料記憶 體起始位址的暫存器與一描述存放相關資料的大小之暫存 器。
TW089105205A 2000-03-22 2000-03-22 Flexible and highly efficient packet classification method TW498650B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW089105205A TW498650B (en) 2000-03-22 2000-03-22 Flexible and highly efficient packet classification method
US09/695,396 US6778984B1 (en) 2000-03-22 2000-10-23 Flexible and high-performance packet classification algorithm
DE10058443A DE10058443A1 (de) 2000-03-22 2000-11-24 Verfahren zum Klassifizieren von Datenpaketen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW089105205A TW498650B (en) 2000-03-22 2000-03-22 Flexible and highly efficient packet classification method

Publications (1)

Publication Number Publication Date
TW498650B true TW498650B (en) 2002-08-11

Family

ID=21659161

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089105205A TW498650B (en) 2000-03-22 2000-03-22 Flexible and highly efficient packet classification method

Country Status (3)

Country Link
US (1) US6778984B1 (zh)
DE (1) DE10058443A1 (zh)
TW (1) TW498650B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227862B2 (en) * 2000-09-20 2007-06-05 Broadcom Corporation Network switch having port blocking capability
US20020089937A1 (en) * 2000-11-16 2002-07-11 Srinivasan Venkatachary Packet matching method and system
US20020143724A1 (en) * 2001-01-16 2002-10-03 International Business Machines Corporation Method, system and computer program product to partition filter rules for efficient enforcement
US7027446B2 (en) * 2001-07-18 2006-04-11 P-Cube Ltd. Method and apparatus for set intersection rule matching
US8577854B1 (en) 2001-11-27 2013-11-05 Marvell Israel (M.I.S.L.) Ltd. Apparatus and method for high speed flow classification
US7734811B2 (en) * 2001-12-07 2010-06-08 Cisco Technology, Inc. Multi-feature classification memory structure for associative matching
US7280541B2 (en) * 2002-03-15 2007-10-09 Broadcom Corporation Packet filtering based on conditional expression table
TW574660B (en) * 2002-05-16 2004-02-01 Ind Tech Res Inst Method targeting at range search and for information search complying with specified rule
US7684400B2 (en) * 2002-08-08 2010-03-23 Intel Corporation Logarithmic time range-based multifield-correlation packet classification
US7818327B2 (en) * 2002-09-06 2010-10-19 Infineon Technologies Ag Method and system for determining conformance of a data key with rules by means of memory lookups
US7426518B2 (en) * 2003-03-28 2008-09-16 Netlogic Microsystems, Inc. System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US20060080272A1 (en) * 2004-10-12 2006-04-13 Ya-Huey Juan Apparatus, system, and method for data comparison
CN100486211C (zh) 2005-01-31 2009-05-06 国际商业机器公司 一种用于因特网的基于规则集合划分的分组分类的方法
EP2074767A2 (en) * 2006-08-02 2009-07-01 University Of Florida Research Foundation, Inc. Succinct representation of static packet classifiers
TW200917750A (en) * 2007-10-05 2009-04-16 Realtek Semiconductor Corp Content scanning circuit and method
US8114117B2 (en) * 2008-09-30 2012-02-14 Tyco Healthcare Group Lp Compression device with wear area
JP5104514B2 (ja) * 2008-04-21 2012-12-19 富士通株式会社 パケット転送制御装置およびパケット転送制御方法
US9514060B2 (en) * 2008-07-29 2016-12-06 Entropic Communications, Llc Device, system and method of accessing data stored in a memory
US7835357B2 (en) * 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US7961734B2 (en) * 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US7738454B1 (en) 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8953603B2 (en) * 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
WO2014077615A1 (en) * 2012-11-19 2014-05-22 Samsung Sds Co., Ltd. Anti-malware system, method of processing packet in the same, and computing device
CN106789727B (zh) * 2016-12-27 2020-01-21 锐捷网络股份有限公司 报文分类方法和装置
US11088951B2 (en) 2017-01-16 2021-08-10 Intel Corporation Flow classification apparatus, methods, and systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449256B1 (en) * 1998-05-07 2002-09-10 Washington University Fast level four switching using crossproducting
US6600744B1 (en) * 1999-03-23 2003-07-29 Alcatel Canada Inc. Method and apparatus for packet classification in a data communication system
US6298340B1 (en) * 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure
US6463067B1 (en) * 1999-12-13 2002-10-08 Ascend Communications, Inc. Submission and response architecture for route lookup and packet classification requests

Also Published As

Publication number Publication date
DE10058443A1 (de) 2001-10-04
US6778984B1 (en) 2004-08-17

Similar Documents

Publication Publication Date Title
TW498650B (en) Flexible and highly efficient packet classification method
Huang et al. A novel IP-routing lookup scheme and hardware architecture for multigigabit switching routers
US7089240B2 (en) Longest prefix match lookup using hash function
JP4452183B2 (ja) プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置)
US8462786B2 (en) Efficient TCAM-based packet classification using multiple lookups and classifier semantics
US6985483B2 (en) Methods and systems for fast packet forwarding
Lim et al. Priority tries for IP address lookup
US8923298B2 (en) Optimized trie-based address lookup
Pao et al. Efficient hardware architecture for fast IP address lookup
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US20180270153A1 (en) Increasing entropy across routing table segments
WO2020038399A1 (zh) 数据包的分类方法、装置及计算机可读存储介质
CN1545254A (zh) 一种快速数据包过滤方法
WO2015043254A1 (zh) 一种包分类规则的查找方法及装置
EP3280104B1 (en) Ip routing lookup
Lim et al. High speed IP address lookup architecture using hashing
Nikitakis et al. A memory-efficient FPGA-based classification engine
Tzeng Longest prefix search using compressed trees
CN106487769B (zh) 一种访问控制列表acl的实现方法及装置
Sun et al. An on-chip IP address lookup algorithm
TWI239476B (en) Address search
Spitznagel Compressed data structures for recursive flow classification
Chang et al. Grid of segment trees for packet classification
Engbersen et al. Prefix-based parallel packet classification
Lee et al. Packet classification using diagonal-based tuple space search

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MK4A Expiration of patent term of an invention patent