JP3881663B2 - フィールドレベルツリーを用いたパケット分類装置及び方法 - Google Patents

フィールドレベルツリーを用いたパケット分類装置及び方法 Download PDF

Info

Publication number
JP3881663B2
JP3881663B2 JP2004056158A JP2004056158A JP3881663B2 JP 3881663 B2 JP3881663 B2 JP 3881663B2 JP 2004056158 A JP2004056158 A JP 2004056158A JP 2004056158 A JP2004056158 A JP 2004056158A JP 3881663 B2 JP3881663 B2 JP 3881663B2
Authority
JP
Japan
Prior art keywords
classification
field
level tree
field level
fields
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2004056158A
Other languages
English (en)
Other versions
JP2004266837A (ja
Inventor
鎭 宇 鄭
寓 鍾 朴
冠 松 張
チャオ ジョナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004266837A publication Critical patent/JP2004266837A/ja
Application granted granted Critical
Publication of JP3881663B2 publication Critical patent/JP3881663B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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/99943Generating database or data structure, e.g. via user interface

Landscapes

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

Description

本発明は、通信システムにおけるパケット等を処理する分野に係り、ルータでパケットを分類するに際し、フィールドレベルツリーを用いてパケットを分類するパケット分類方法及びその方法を実現させるためのパケット分類装置に係る。
インターネットのような通信システムにおいてパケットを処理するに際し、通常は、宛先アドレスを計算し、パケット経路上の中間ノードのそれぞれからどの出力ノードまたはリンク上にパケットを送信すべきかを決める。各種の通信システムでは、各パケットのヘッダにある宛先アドレス、送信元アドレスまたはその他のデータによって様々な形態のサービスが提供される。サービス形態の差というものとしては、パケットが処理または送信される優先順位やその伝送に対し支払うべき料金または特定の送信元に対してはパケット処理を拒否すること等が挙げられる。
今日のシステムでは、膨大な量のパケット(一般には、データエントリ)を処理しなければならないため、パケットと一緒に受信した内容を読み取り、それに応じてどのような形態の処理を選択すべきかを決定することを非常に短時間内に高速で行われなければならない。
未来のIPネットワーク上でユーザーに対しサービスレベルアグリメント(service level agreements)、VPN、QoS等のより発展したサービスを提供するために、ルータ等で入力されるIPパケットを所望する規則に沿って分類可能でなければならない。これをパケット分類といい、パケット分類は、パケット内の複数のフィールドの値を参照しなければならないマルチフィールド探索(multi−field lookup)である。
言い換えれば、パケット分類は、既存のIP宛先アドレス探索とは異なって、1つのパケット内のソースアドレス、宛先アドレス、プロトコルID、ポート番号等の複数のフィールドを参照してパケットを処理しなければならない。従って、基本的により多くの時間とメモリを必要とすることはもとより、これを解決する方法に対する研究も足りないのが実情である。
図1乃至図3は、従来のパケット分類方法の一例を示す図である。
既存方法を構成するパケット分類ツリーの例を、次の表1に表す。
Figure 0003881663
従来のパケット分類方法としては、図1に示すようなグリッド・オブ・ツリー(gird−of−Trees)に代表される伝統的な方法と、図2のレンジ探索(range lookup)に代表される幾何学的な方法、そして、図3の帰納的フロー分類(recursive flow classification)に代表される経験的な方法等が挙げられる。
このうち、グリッド・オブ・ツリーのデータ構造は、標準階層ツリーとセット・プルーニングツリーの長所を組み合わせたものであり、N分類規則が適用されるWビット長のヘッダフィールドd(すなわちディメンション)の数に基づく0(dW)の照会(query)時間の複雑度と0(NdW)の格納複雑度を有する。この特徴は、スイッチングポインタをデータ構造に導入することにより得られる。しかし、スイッチングポインタは、ビットレベルで組み合わせられるため、0(NdW)の格納複雑度を保証し、照会過程はビットずつ行なう必要がある。実行が求められる実際のアプリケーションにおいてビットずつの照会過程(または分類)は受け入れられない。
パケットを分類するに際し、分類速度、メモリの大きさ、分類規則数、参照フィールド数、規則更新時間、及び最悪の条件時の性能が主な項目として考慮される。
即ち、パケット分類では、使用可能なメモリを使用して最大の性能を確保するために、与えられた容量(storage limitation)で高い性能(High Performance)を達成することに関する問題を解決することが重要である。
そこで、本発明は、前記のような問題点を解決するために、従来から使用されてきたビット単位のツリーではなくフィールド単位のツリーを展開し、TCAMとk−way検索を用いてそれぞれプレフィックス・インプリメンテーションとレンジ・インプリメンテーションを取り扱う、照会性能を改善したフィールドレベルツリー(FLT;Field−Level Tree)を用いたパケット分類装置及び方法を提供することを目的とする。
前記目的を達成するために、本発明のパケット分類装置は、分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、照会と更新業務を行い、IPアドレス探索に代表されるプレフィックス探索を処理する第1の分類部及び第1の分類部の結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第2の分類部を備える分類エンジンとを備える。
ここで、分類エンジンは、分類プロセッサとメモリを備える。
また、主処理部と分類エンジンとは、ブロードキャスティングバスを介して接続されている。
第1の分類部は、プレフィックス形態のフィールドを格納しそれを検索するTCAMを使用することが好ましい。
そして、第2の分類部は、用途及びスペックに応じて適宜のk値を有するk−way検索方法を使用することが好ましい。
そして、k値は、第2の分類部のメモリインターフェイスの大きさによって決められることが好ましい。
また、主処理部は、ブロードキャスティングバスを介して複数の分類エンジンに更新指示を送り、更新指示を受けた分類エンジンは、メモリのコンテンツを変更するように指示する。
フィールドレベルツリーは、第1の群のフィールドが上位レベルに示され、第2の群のフィールドが下位レベルに示される構造にて組織化される。
第1の群のフィールドは、プレフィックス・インプリメンテーションされたフィールドであり、第2の群のフィールドは、レンジ・インプリメンテーションされたフィールドであることが好ましい。
フィールドレベルツリーは、あるレベルで2つのノードが共通の子ノードを有すると、単に1つのノードが生成されそれを共有する。
フィールドレベルツリーは、プレフィックス探索のためのレベルが互いに結合されたプレフィックスの対を有する単に1つのレベルとして存在する。
一方、本発明に係るフィールドレベルツリーを用いたパケット分類装置は、分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、照会と更新業務を行い、IPアドレス探索に代表されるプレフィックス探索を処理する第1の分類部と、プレフィックス探索の処理結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第2の分類部とを含む。
前記目的を達成するために、本発明のパケット分類方法は、ルーティングシステムにおけるパケット分類方法において、与えられたマルチフィールドを有するパケットをフィールド別に展開してフィールドレベルツリーを形成する第1のステップと、フィールドレベルツリーを用いてパケット分類規則に対しプレフィックス探索を行なう第2のステップと、プレフィックス探索が行われた後、レンジ探索を行なう第3のステップとを含む。
本発明によると、フィールド単位のツリーを展開することによって、優れた照会性能が確保された超高速のネットワーキングのためのパケット分類を実現することができる。また、約50万個の分類ツリーのルールを処理することができる。
以下、図面を参照して本発明をより詳細に説明する。
図4は、本発明に係るフィールドレベルツリーを用いたパケット分類装置の構成図である。
同図に示すように、本発明に係るフィールドレベルツリーを用いたパケット分類装置は、主処理部10と複数の個別分類エンジン20を備える。
主処理部10は、FLT(Filed Level Tree)データ構造を構成及び管理し、該情報を加工してそれぞれの分類エンジン20に提供する。それぞれのインターフェイスに属する分類エンジン20は、入力する個別パケットを実際に分類する。
高速/コアルータにおいて、パケット分類は、一般にそれぞれのラインカードで並列に行われる。従って、それぞれのラインカードは、少なくとも1つの内蔵された分類エンジンを有する。伝送リンクの要求帯域幅によって、これらの分類エンジンは照会(query)機能に最適化する。
本発明に係るフィールドレベルツリーを用いたパケット分類方式は、TCAM(Ternary Content Addressable Memory)技術とk−way検索とを組み合わせてプレフィックス・インプリメンテーションとレンジ・インプリメンテーションを取り扱うハイブリッド方式である。
しかし、分類は動的であり、データ構造は、刻々と変更する必要がある。分類エンジンにおいてデータの組織は、ルールの挿入または削除のようなアップデートに適しないことがある。
分類は、それぞれのラインカードで同一であり、中心のラインカードで実行されるアップデート機能を有することがより好ましいが、必ずしも必要ではない。
主処理部10は、通常、強力なプロセッサを備え、ラインカードとは別のボードに位置する。
主処理部10は、分類のために使用された全体のデータ構造を維持し、分類のアップデートが必要とされる時に変更する。図6乃至図8は、本発明に係るデータ構造を示し、図6に示したデータ構造は、主処理部10で維持され、図7、図8(a)及び(b)に示したデータ構造は、分類エンジン20で使用される。
図示したデータ構造において、それぞれのノードにルールを格納する必要はない。図8(a)及び(b)に示したように、プレフィックスの対、k−way検索値及びポインタが分類エンジン20で維持される。
主処理部10は、更新指示をブロードキャスティングバス12を介して全ての分類エンジン20に送る。これらの更新指示は、分類エンジン20がメモリ(及び/またはTCAM)のコンテンツを変更するように指示するのに使用される。
図5は、図4中の分類エンジン20の構成図である。
それぞれの分類エンジン20は、IPソース/宛先アドレス探索に代表されるプレフィックス探索を処理する部分21と、1次の分類の結果に基づき、それに属する2次分類を処理する部分22とからなる。2次分類において、レンジ探索範囲を処理するために当該フィールド別に分類を進めるための下位マイクロエンジンが備えられる。
2次分類を行うために、用途及びスペックに応じて適当な値を有するk−way検索方法を使用する。
分類エンジン20は、分類プロセッサ32と、TCAM41と、一般のメモリ(SDRAM及び/またはSSRAM)42を備える外部メモリと、からなる。
分類プロセッサ32は、その内部にマイクロエンジン31とメモリインターフェイス30の主要構成要素を備えている。マイクロエンジン31は、特定のアプリケーション用または一般用のRISCプロセッサである。データ構造は、外部メモリに格納されている。内部マイクロエンジン31は、照会動作に対し制御機能を行い、メモリインターフェイス30を介してデータに接続する。
取り出された全てのフィールドを有するパケットヘッダは、左側から分類プロセッサ32に入る。第1のマイクロエンジン31は、プレフィックスフォーマットでインプリメンテーションされた1番目のkフィールドを取り、TCAM41に送る。TCAM41では検索を実行し、その結果を第1マイクロエンジン31にフィードバックする。その結果を、複数のマイクロエンジンがレンジでインプリメンテーションした次のフィールドのk−way検索に対して存在する第2の段に送る。例えば、図5において1つのマイクロエンジン31は第2の段でそれぞれのフィールドに用いられる。しかし、実際の動作において、1つのマイクロエンジンは複数のフィールドを収容することができる。マイクロエンジンの数は、それぞれのフィールドで検索のために要する外部メモリの帯域幅、マイクロエンジンの速度及び平均帯域幅によって決められる。
照会機能の他にも、分類エンジンは、主処理部から送信された更新指示に基づいてその外部メモリの内容(コンテンツ)を更新する必要がある。これら2つの作業におけるコンテンションを解決する2つの方法がある。a)分類エンジンは、照会または更新を何時でも実行可能なタスクをインタリーブする。時間消費に対して更新費用が少ない時に実現可能である。b)メモリにおいてデータ構造の2つのコピーを作る。一方は照会のために使用され、他方は更新のために使用される。一つの更新動作が終了すると、更新されたコピーが照会用に転換され、他方のコピーは更新のために使用される。この方法は、インタリーブ方法の照会性能が非常に低くなる程更新費用が高い時に適用される。
次いで、本発明に係るフィールドレベルツリーの分類構造の実施例と、これに係るフィールドレベルツリーの分類方法について、図面を参照して詳細に説明する。
フィールドレベルツリーの分類構造は、マルチフィールドを有する分類ツリーの分類を目標にし、それぞれのフィールドは、個々のプレフィックス・インプリメンテーションまたはレンジ・インプリメンテーションで・インプリメンテーションされる。
4つのフィールドと7つの規則を有する分類ツリーの一例が、次の表2に表わされている。
Figure 0003881663
前記表2において、最初のフィールドF1、F2はプレフィックスでインプリメンテーションされ、残りの2つのフィールドF3、F4はレンジでインプリメンテーションされる。これをFLTで構成したデータ構造図が図6に示されている。
各個別パケットは、各レベルで該当するフィールドに対し定めた規則に沿って分類される。与えられた全てのレベルのフィールドを経ると分類作業が終り、個別のパケットに定められた規則を与えるようになる。
次いで、図6のフィールドレベルツリーのデータ構造図を詳細に説明する。フィールドレベルツリーのデータ構造は、次の属性を有するように定義される。
1.フィールドレベルツリーは、階層的構造にてフィールドずつ組織化される。ツリーの深さは、フィールドの数dと同じである。図6の一例においてF1からF4まで組織化された4つのノードレベルがある。図6において、底のノードは別のレベルを形成しない。照会過程が第4のレベルで終了する時、どのルールがマッチングするかを示す。
2.ツリーにおいてそれぞれのノードは、親ノードのルールセットのサブセットであるルールセットを含む。ツリーのルートノードは、分類ツリーで全てのルールを含むように定義される。
3.i番目のレベルのノードa(ルートノードは第1のレベルにあることと定義される)は、ノードaに含まれた全てのルールのFiフィールドの値に基づいてi+1番目のレベルでその子ノードを生成する。
フィールドFiの特定に基づき、子ノードの生成に対する2つの他の過程がある。
(a)Fiがプレフィックスで特定化されると、aの子ノードの数は、aのルールセットでFiの他の値の数と同一になる。その結果、それぞれの子ノードは、他のプレフィックスと結合される。子ノードbがプレフィックスaと結合されていると仮定すると、bのルールセットに含まれているルールr(rは、aにも含まれている)のFi値が同じであるか、pのプレフィックスになる。
例えば、図6においてルートノードは7つのルールの全てを含み、F1フィールドには、4つの他のプレフィックス*、0*、00*、10*があるため、4つの子ノードが生成される。
プレフィックス0*と結合されているノードXは、4つのルールR4(R7を含む。R4(R6のF1値は0*であり、これはプレフィックスと結合されたものである。R7のF1値は *であり、これは0*のプレフィックスである。
(b)Fiがレンジで特定化されると、レンジをナンバーラインに投げだし、1セットの区間を得る。それぞれの区間I、子ノードbが生成される。ルールrは、bのルールセットに含まれ、rのFiフィールドにより特定化された範囲は1を含む。例えば、ノードyは、区間[10、10]を有し単一ポイントであるノードy(、区間[6、6]を有するノードy( (及び区間[4、5]と[6、7]を有するノードy( (の3つの子ノードを生成する。
i番目のレベルでノードaのルールセットは、同一のレベルにある全てのノードのルールセットの中で特殊になる。
i−1番目のレベルで2つのノードb、cが共通の子ノードaを有すると、単に1つのノード、ノードaが生成され、それを共有する。ノードがマルチポインタにより指摘される時にノード共有が発生することが図6から分かる。ノード共有は、グリッド・オブ・ツリーでスイッチングポインタのメカニズムと類似しているが、グリッド・オブ・ツリーがビットレベルでノード共有を得るのに対し、本発明で提案された方式は、フィールドレベルでノード共有を得る。フィールドレベル共有は、ルールのコピーが回避できないため照会性能は改善するものの、格納要求は増加する。図6に示したように、ルールR7は、第2のレベルで4つのノードに格納される。
次いで、フィールドレベルツリーのノード構造と照会過程について説明する。
それぞれのフィールドは、通常、プレフィックスまたはレンジフォームでインプリメンテーションされ、それぞれのインプリメンテーションは、それ自身の好むデータ構造と検索アルゴリズムを有する。従って、分類ツリーは、2群のフィールドを有する。第1の群は、プレフィックス・インプリメンテーションであり、第2の群は、レンジ・インプリメンテーションである。
前記表2に示した分類ツリーにおいて、F1とF2は第1の群であり、F3とF4は第2の群である。フィールドレベルツリーでは、第1の群のフィールドが上位レベルに示され、第2の群のフィールドが下位レベルに示される構造にて組織化される。
単にプレフィックス形態のフィールドを含む第1の群に対し、TCAMは、プレフィックスを格納しそれらを検索するために使用される。更に、TCAMは、同時にマルチフィールドを収容することができるため、フィールドの第1の群の照会は、一回だけのメモリ接続により実行可能である。
図7は、図6のプレフィックス探索のためのデータ構造(即ち、レベル1、2)を図5の分類エンジン内にTCAM(Ternary Content Addressable Memory)を使用して短縮した構成図である。図7において、F1、F2フィールドに対し1つのレベルだけが存在する。ルートノードは、図6中の第3のレベルにおいて最初にある7つの子ノードを有する。それぞれの第2のレベルノードは、互いに結合されたF1/F2プレフィックスの対を有する。かかるそれぞれのプレフィックスの対は、TCAMにおけるエントリーのコンテンツである。プレフィックスの対は、図6中のツリー構造から誘導される。図7の第2のレベルにおけるノードに対応して、図6の第3のレベルでそれぞれのノードxに対し、ルートノードからノードxまでにおいて最も小さいプレフィックス長の和で経路を発見する。この経路によるプレフィックスは、図7でノードのプレフィックスの対を形成する。全てのプレフィックスの対は、TCAMにおいてプレフィックス長が減少する順に配列される。同一の長さを有するプレフィックスの対に対し、それらの相関順序は任意である。図7に示すツリー構造の一例に対するTCAMのコンテンツを、次の表3に表わしている。第2のレベルにおいて適当なノードは、全体の照会過程を継続すると決められる。
FLTとTCAMの特徴を組み合わせて、工程を縮小し、前記表2のプレフィックス探索部分をTCAM内に実現した例が、次の表3である。
Figure 0003881663
プレフィックスの対をその長さが減少する順にTCAMで配列することによって、TCAMにおける精度が高い検索結果が保証され、第2のレベルの正確なノードが照会工程全体を継続すると決められる。
図8(a)及び図8(b)は、図5の分類エンジン内のレンジ探索用マイクロエンジンで行われるk−way検索を説明するための原理図である。2次分類の最も大きな性能を左右するk−way検索のk値をメモリインターフェイスの大きさによって決める。与えられた環境下においてk値は大きい程よい。
分類すべきパケットヘッダが与えられると、第1の群に属するフィールドが取り出され、検索のためにTCAMに送られる。TCAMからの出力は、次に接続すべき第2のレベルでノードを表示する。TCAMは、全てのプレフィックス形態のフィールドを収容するため、照会プロセスの残りは、レンジ・インプリメンテーションフィールドに頼る。第2または下位レベルに存在するノードに対し、それぞれのノードに対してバイナリ検索ツリー(または、外部メモリの帯域幅によってk−way検索ツリー)を使用する。例えば、ツリーのi(i(1)番目のレベルでノードaがある。aのルールセットでルールのi番目のフィールドをナンバーラインに投射した後、図8aに示すように8つの終点E1(E8を有する7つのインターバルI1(I7が得られる。これらのインターバルを組織化するために3−way検索ツリーを用いると、図8bに示すようなツリー構造が得られる。これは、4つのブロックを有する2レイヤーツリーである。それぞれのブロックは、k−ポインタとk−1終点を含む。内部ブロックにおいてポインタは、k−way検索ツリーで他のブロックを指示するのに対し、リーフブロックにおいてポインタは、フィールドレベルツリーで次段のレベルノードを指示する。k−way検索ツリーにおいて検索過程を例を挙げて説明する。
インターバルI3内にポイントPが存在すると仮定すると、検索過程は、ルートブロックXから始まる。PをXに格納されている2つの終点E3、E6と比較することによって、それらの間の順序がE3(P(E6であることが分かる。インターバルI3に結合された第1のポインタが、フィールドレベルツリーの次段のレベルでのノードの後にこなければならない。
k−way検索は、レンジ探索問題のための効率よいアルゴリズムである。k−way検索ツリーのレイヤーの数は、logkMにより決めることができ、Mは、インターバルの数である。k−way検索ツリーにおいてそれぞれのブロックは、メモリに格納された基本単位であり、1回の読み取り/書き込み動作に対し1回のメモリへの接続を必要とする。その結果、検索過程の間、メモリへの接続の数は、k−way検索ツリーのレイヤーの数と同一である。ここで、kの数は、ブロックの大きさによって制限され、ブロックの大きさは、メモリ帯域幅によって決められる。
フィールドレベルツリーの照会過程は、全てのフィールドに対しプレフィックス・インプリメンテーションを有するTCAMから始まる。レンジ・インプリメンテーションを有するフィールドに達した後、照会過程は、1回に1つのレベルに対して進め、k−way検索は、接続する次の子ノードを探し出すために実行される。照会過程は、リーフノードが到達した時に終了され、整合したルールが結果として復帰する。
本発明は、通信システムにおけるパケット等の項目を処理する分野で利用でき、ルータでパケットを分類するに際し、フィールドレベルツリーを用いてパケットを分類するパケット分類方法及びその方法を実現させるためのパケット分類装置に適用できる。
従来のパケット分類方法におけるグリッド・オブ・ツリーのデータ構造図を示す図である。 従来のパケット分類方法におけるレンジ探索の原理を示す図である。 従来のパケット分類方法における帰納的フロー(recursive flow)分類の原理を示す図である。 本発明に係るフィールドレベルツリーを用いたパケット分類装置を示す構成図である。 図4中の分類エンジンを示す構成図である。 表2の分類ツリーをフィールドレベルツリーで構成したデータ構造を示す図である。 図6中のプレフィックス探索のためのデータ構造を図5の分類エンジン内にTCAM(Ternary Content Addressable Memory)を使用して短縮した構成を示す図である。 (a)は図5中の分類エンジン内のレンジ探索のためにマイクロエンジンで行われるk−way検索を説明するための原理を示す図であり、(b)は図5中の分類エンジン内のレンジ探索のためにマイクロエンジンで行われるk−way検索を説明するための原理を示す図である。
符号の説明
10 主処理部
12 ブロードキャスティングバス
20 分類エンジン
30 メモリインターフェイス
31 マイクロエンジン
32 分類プロセッサ
41 TCAM
42 メモリ

Claims (17)

  1. 分類のためのマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、
    照会と更新業務を行い、前記フィールドレベルツリーが備える第1の群のフィールドをもとに、IPアドレス探索に代表されるプレフィックス探索を処理する第1の分類部及び前記第1の分類部の結果に基づき、それに属するレンジ探索範囲を処理するために、前記フィールドレベルツリーが備える第2の群のフィールドが有する区間をもとに、当該フィールド別に分類を進める第2の分類部を備える分類エンジンと、
    を含むことを特徴とするフィールドレベルツリーを用いたパケット分類装置。
  2. 前記分類エンジンは、分類プロセッサとメモリを含むことを特徴とする請求項1に記載のフィールドレベルツリーを用いたパケット分類装置。
  3. 前記主処理部と前記分類エンジンとは、ブロードキャスティングバスを介して接続されていることを特徴とする請求項2に記載のフィールドレベルツリーを用いたパケット分類装置。
  4. 前記第1の分類部は、プレフィックス形態のフィールドを格納し検索するTCAMを使用することを特徴とする請求項1に記載のフィールドレベルツリーを用いたパケット分類装置。
  5. 前記第2の分類部は、用途及びスペックに応じて適宜のk値を有するk−way検索方法を使用することを特徴とする請求項1に記載のフィールドレベルツリーを用いたパケット分類装置。
  6. 前記k値は、前記第2の分類部のメモリインターフェイスの大きさによって決められることを特徴とする請求項5に記載のフィールドレベルツリーを用いたパケット分類装置。
  7. 前記主処理部は、前記ブロードキャスティングバスを介して前記複数の分類エンジンに更新指示を送り、前記更新指示を受けた分類エンジンは、前記メモリのコンテンツを変更するように指示することを特徴とする請求項3に記載のフィールドレベルツリーを用いたパケット分類装置。
  8. 前記フィールドレベルツリーは、第1の群のフィールドが上位レベルに示され、第2の群のフィールドが下位レベルに示される構造にて組織化されることを特徴とする請求項1に記載のフィールドレベルツリーを用いたパケット分類装置。
  9. 前記第1の群のフィールドは、プレフィックス・インプリメンテーションされたフィールドであることを特徴とする請求項8に記載のフィールドレベルツリーを用いたパケット分類装置。
  10. 前記第2の群のフィールドは、レンジ・インプリメンテーションされたフィールドであることを特徴とする請求項8に記載のフィールドレベルツリーを用いたパケット分類装置。
  11. 前記フィールドレベルツリーは、あるレベルで2つのノードが共通の子ノードを有すると、単に1つのノードが生成されそれを共有することを特徴とする請求項1に記載のフィールドレベルツリーを用いたパケット分類装置。
  12. 前記フィールドレベルツリーは、プレフィックス探索のためのレベルが互いに結合されたプレフィックスの対を有する単に1つのレベルとして存在することを特徴とする請求項1に記載のフィールドレベルツリーを用いたパケット分類装置。
  13. 分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、
    照会と更新業務を行い、前記フィールドレベルツリーが備える第1の群のフィールドをもとに、IPアドレス探索に代表されるプレフィックス探索を処理する第1の分類部と、
    前記プレフィックス探索の処理結果に基づき、それに属するレンジ探索範囲を処理するために、前記フィールドレベルツリーが備える第2の群のフィールドが有する区間をもとに、当該フィールド別に分類を進める第2の分類部と、
    を含むことを特徴とするフィールドレベルツリーを用いたパケット分類装置。
  14. ルーティングシステムにおけるパケット分類方法において、
    マルチフィールドを有するパケットを分類するためにフィールドレベルツリーを形成するステップと、
    前記フィールドレベルツリーを用いて、前記フィールドレベルツリーが備える第1の群のフィールドをもとに、パケット分類規則に対しプレフィックス探索を行なうステップと、
    プレフィックス探索が行われた後、前記フィールドレベルツリーが備える第2の群のフィールドが有する区間をもとに、レンジ探索を行なうステップと、
    を含むフィールドレベルツリーを用いたパケット分類方法。
  15. 前記フィールドレベルツリーは、第1の群のフィールドが上位レベルに示され、第2の群のフィールドが下位レベルに示される構造にて組織化されることを特徴とする請求項14に記載のフィールドレベルツリーを用いたパケット分類方法。
  16. 前記フィールドレベルツリーは、あるレベルで2つのノードが共通の子ノードを有すると、単に1つのノードが生成されそれを共有することを特徴とする請求項14に記載のフィールドレベルツリーを用いたパケット分類方法。
  17. 前記フィールドレベルツリーは、プレフィックス探索のためのレベルが互いに結合されたプレフィックスの対を有する単に1つのレベルとして存在することを特徴とする請求項14に記載のフィールドレベルツリーを用いたパケット分類方法。
JP2004056158A 2003-02-28 2004-03-01 フィールドレベルツリーを用いたパケット分類装置及び方法 Expired - Fee Related JP3881663B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0012902A KR100512949B1 (ko) 2003-02-28 2003-02-28 필드레벨 트리를 이용한 패킷분류장치 및 방법

Publications (2)

Publication Number Publication Date
JP2004266837A JP2004266837A (ja) 2004-09-24
JP3881663B2 true JP3881663B2 (ja) 2007-02-14

Family

ID=32768622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004056158A Expired - Fee Related JP3881663B2 (ja) 2003-02-28 2004-03-01 フィールドレベルツリーを用いたパケット分類装置及び方法

Country Status (5)

Country Link
US (1) US7415020B2 (ja)
EP (1) EP1453253A1 (ja)
JP (1) JP3881663B2 (ja)
KR (1) KR100512949B1 (ja)
CN (1) CN100385880C (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100518813B1 (ko) * 2003-02-15 2005-10-05 삼성전자주식회사 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법
US7515588B2 (en) * 2004-03-18 2009-04-07 Intel Corporation Method and apparatus to support a large internet protocol forwarding information base
US7668160B2 (en) * 2005-03-31 2010-02-23 Intel Corporation Methods for performing packet classification
US20060221956A1 (en) * 2005-03-31 2006-10-05 Narayan Harsha L Methods for performing packet classification via prefix pair bit vectors
US20060221967A1 (en) * 2005-03-31 2006-10-05 Narayan Harsha L Methods for performing packet classification
US7443878B2 (en) 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
KR100705545B1 (ko) 2005-07-02 2007-04-09 충남대학교산학협력단 이중 tcam을 이용한 패킷의 분류방법
KR100770643B1 (ko) * 2006-03-28 2007-10-29 충남대학교산학협력단 Tcam을 이용한 고성능 패킷 분류 방법 및 그 장치
EP2016718B1 (en) * 2006-04-21 2014-02-12 Oracle America, Inc. Method and system for scaling by parallelizing network workload
US8010990B2 (en) * 2006-10-26 2011-08-30 Intel Corporation Acceleration of packet flow classification in a virtualized system
WO2009018578A2 (en) * 2007-08-02 2009-02-05 Tekelec Methods, systems, and computer readable media for collecting data from network traffic traversing high speed internet protocol (ip) communication links
KR100920518B1 (ko) * 2007-11-27 2009-10-09 한국전자통신연구원 패킷 분류 장치 및 방법
CN101340363B (zh) * 2007-12-24 2012-09-19 中国科学技术大学 一种实现多元数据包分类的方法及设备
US7872993B2 (en) 2008-10-30 2011-01-18 Alcatel Lucent Method and system for classifying data packets
CN101888369B (zh) * 2009-05-15 2013-04-03 北京启明星辰信息技术股份有限公司 一种进行网络报文规则匹配的方法和装置
US8179898B2 (en) * 2009-06-11 2012-05-15 Alcatel Lucent Packet processing using braided tries
US9049157B1 (en) * 2009-08-16 2015-06-02 Compass Electro-Optical Systems Ltd Method and device for improving scalability of longest prefix match
US8879550B2 (en) * 2012-05-08 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for packet classification
US9501591B2 (en) * 2013-12-09 2016-11-22 International Business Machines Corporation Dynamically modifiable component model
JP6114705B2 (ja) * 2014-02-26 2017-04-12 日本電信電話株式会社 検索木生成装置及び方法及びプログラム
CN105099918B (zh) * 2014-05-13 2019-01-29 华为技术有限公司 一种数据查找匹配的方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6560610B1 (en) * 1999-08-10 2003-05-06 Washington University Data structure using a tree bitmap and method for rapid classification of data in a database
US6711153B1 (en) 1999-12-13 2004-03-23 Ascend Communications, Inc. Route lookup engine
US6798778B1 (en) * 2000-06-14 2004-09-28 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor
JP2002305539A (ja) 2001-04-03 2002-10-18 Nippon Telegr & Teleph Corp <Ntt> 連想メモリおよび経路表検索方法
US7017021B2 (en) * 2001-04-04 2006-03-21 Cypress Semiconductor Corp. High-speed message forwarding lookups for arbitrary length strings using pipelined memories
US7227842B1 (en) * 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
US6671694B2 (en) * 2001-06-04 2003-12-30 Hewlett-Packard Development Company, L.P. System for and method of cache-efficient digital tree with rich pointers
US6886073B2 (en) * 2002-06-18 2005-04-26 International Business Machines Corporation Method and system for performing range rule testing in a ternary content addressable memory

Also Published As

Publication number Publication date
KR20040077376A (ko) 2004-09-04
CN1543150A (zh) 2004-11-03
US20040170170A1 (en) 2004-09-02
US7415020B2 (en) 2008-08-19
KR100512949B1 (ko) 2005-09-07
EP1453253A1 (en) 2004-09-01
JP2004266837A (ja) 2004-09-24
CN100385880C (zh) 2008-04-30

Similar Documents

Publication Publication Date Title
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US7031320B2 (en) Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables
EP1623347B1 (en) Comparison tree data structures and lookup operations
Huang et al. A novel IP-routing lookup scheme and hardware architecture for multigigabit switching routers
US6594655B2 (en) Wildcards in radix- search tree structures
Huang et al. A fast IP routing lookup scheme for gigabit switching routers
US7315547B2 (en) Packet forwarding device
US6341130B1 (en) Packet classification method and apparatus employing two fields
US6985483B2 (en) Methods and systems for fast packet forwarding
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US20040230583A1 (en) Comparison tree data structures of particular use in performing lookup operations
Yang et al. Fast openflow table lookup with fast update
US9485179B2 (en) Apparatus and method for scalable and flexible table search in a network switch
Le et al. Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning
Sun et al. An on-chip IP address lookup algorithm
Chang Efficient multidimensional packet classification with fast updates
KR100493099B1 (ko) 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ
CN107204926B (zh) 预处理cache的路由快速查找方法
KR20020016732A (ko) 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터
JP3591426B2 (ja) プレフィックスを含む複数アドレスによる連想情報探索方法及び装置
Hsieh et al. A novel dynamic router-tables design for IP lookup and update
Liu et al. Fast IP table lookup and memory reduction
Grégoire et al. You can get there from here: Routing in the internet
Ray et al. A novel approach for prefix minimization using Ternary Trie (PMTT) for packet classification

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061110

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees