(57)【要約】【課題】従来から使用されてきたビット単位のツリーを用いずに、照会性能を改善したフィールドレベルツリー（ＦＬＴ；Ｆｉｅｌｄ−Ｌｅｖｅｌ Ｔｒｅｅｓ）を用いたパケット分類装置を提供する。【解決手段】本発明の分類装置は、フィールド単位のツリーを展開し、ＴＣＡＭとｋ−ｗａｙ検索を用いて、それぞれプレフィックス・インプリメンテーションとレンジ・インプリメンテーションを取り扱うフィールドレベルツリー（ＦＬＴ；Ｆｉｅｌｄ−Ｌｅｖｅｌ Ｔｒｅｅｓ）を用いる。分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、照会と更新業務を行い、ＩＰアドレス探索に代表されるプレフィックス探索を処理する第１の分類部２１及び第１の分類部の結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第２の分類部２２を備える分類エンジン２０とを備える。【選択図】図５
2004266837.tif 000002
【特許請求の範囲】
【請求項１】
分類のためのマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、
照会と更新業務を行い、ＩＰアドレス探索に代表されるプレフィックス探索を処理する第１の分類部及び前記第１の分類部の結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第２の分類部を備える分類エンジンと、
を含むことを特徴とするフィールドレベルツリーを用いたパケット分類装置。
【請求項２】
前記分類エンジンは、分類プロセッサとメモリを含むことを特徴とする請求項１に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項３】
前記主処理部と前記分類エンジンとは、ブロードキャスティングバスを介して接続されていることを特徴とする請求項２に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項４】
前記第１の分類部は、プレフィックス形態のフィールドを格納し検索するＴＣＡＭを使用することを特徴とする請求項１に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項５】
前記第２の分類部は、用途及びスペックに応じて適宜のｋ値を有するｋ−ｗａｙ検索方法を使用することを特徴とする請求項１に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項６】
前記ｋ値は、前記第２の分類部のメモリインターフェイスの大きさによって決められることを特徴とする請求項５に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項７】
前記主処理部は、前記ブロードキャスティングバスを介して前記複数の分類エンジンに更新指示を送り、前記更新指示を受けた分類エンジンは、前記メモリのコンテンツを変更するように指示することを特徴とする請求項３に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項８】
前記フィールドレベルツリーは、第１の群のフィールドが上位レベルに示され、第２の群のフィールドが下位レベルに示される構造にて組織化されることを特徴とする請求項１に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項９】
前記第１の群のフィールドは、プレフィックス・インプリメンテーションされたフィールドであることを特徴とする請求項８に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項１０】
前記第２の群のフィールドは、レンジ・インプリメンテーションされたフィールドであることを特徴とする請求項８に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項１１】
前記フィールドレベルツリーは、あるレベルで２つのノードが共通の子ノードを有すると、単に１つのノードが生成されそれを共有することを特徴とする請求項１に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項１２】
前記フィールドレベルツリーは、プレフィックス探索のためのレベルが互いに結合されたプレフィックスの対を有する単に１つのレベルとして存在することを特徴とする請求項１に記載のフィールドレベルツリーを用いたパケット分類装置。
【請求項１３】
分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、
照会と更新業務を行い、ＩＰアドレス探索に代表されるプレフィックス探索を処理する第１の分類部と、
前記プレフィックス探索の処理結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第２の分類部と、
を含むことを特徴とするフィールドレベルツリーを用いたパケット分類装置。
【請求項１４】
ルーティングシステムにおけるパケット分類方法において、
マルチフィールドを有するパケットを分類するためにフィールドレベルツリーを形成するステップと、
前記フィールドレベルツリーを用いてパケット分類規則に対しプレフィックス探索を行なうステップと、
プレフィックス探索が行われた後、レンジ探索を行なうステップと、
を含むフィールドレベルツリーを用いたパケット分類方法。
【請求項１５】
前記フィールドレベルツリーは、第１の群のフィールドが上位レベルに示され、第２の群のフィールドが下位レベルに示される構造にて組織化されることを特徴とする請求項１４に記載のフィールドレベルツリーを用いたパケット分類方法。
【請求項１６】
前記フィールドレベルツリーは、あるレベルで２つのノードが共通の子ノードを有すると、単に１つのノードが生成されそれを共有することを特徴とする請求項１４に記載のフィールドレベルツリーを用いたパケット分類方法。
【請求項１７】
前記フィールドレベルツリーは、プレフィックス探索のためのレベルが互いに結合されたプレフィックスの対を有する単に１つのレベルとして存在することを特徴とする請求項１４に記載のフィールドレベルツリーを用いたパケット分類方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムにおけるパケット等を処理する分野に係り、ルータでパケットを分類するに際し、フィールドレベルツリーを用いてパケットを分類するパケット分類方法及びその方法を実現させるためのパケット分類装置に係る。
【背景技術】
【０００２】
インターネットのような通信システムにおいてパケットを処理するに際し、通常は、宛先アドレスを計算し、パケット経路上の中間ノードのそれぞれからどの出力ノードまたはリンク上にパケットを送信すべきかを決める。各種の通信システムでは、各パケットのヘッダにある宛先アドレス、送信元アドレスまたはその他のデータによって様々な形態のサービスが提供される。サービス形態の差というものとしては、パケットが処理または送信される優先順位やその伝送に対し支払うべき料金または特定の送信元に対してはパケット処理を拒否すること等が挙げられる。
【０００３】
今日のシステムでは、膨大な量のパケット（一般には、データエントリ）を処理しなければならないため、パケットと一緒に受信した内容を読み取り、それに応じてどのような形態の処理を選択すべきかを決定することを非常に短時間内に高速で行われなければならない。
【０００４】
未来のＩＰネットワーク上でユーザーに対しサービスレベルアグリメント（ｓｅｒｖｉｃｅ ｌｅｖｅｌ ａｇｒｅｅｍｅｎｔｓ）、ＶＰＮ、ＱｏＳ等のより発展したサービスを提供するために、ルータ等で入力されるＩＰパケットを所望する規則に沿って分類可能でなければならない。これをパケット分類といい、パケット分類は、パケット内の複数のフィールドの値を参照しなければならないマルチフィールド探索（ｍｕｌｔｉ−ｆｉｅｌｄ ｌｏｏｋｕｐ）である。
【０００５】
言い換えれば、パケット分類は、既存のＩＰ宛先アドレス探索とは異なって、１つのパケット内のソースアドレス、宛先アドレス、プロトコルＩＤ、ポート番号等の複数のフィールドを参照してパケットを処理しなければならない。従って、基本的により多くの時間とメモリを必要とすることはもとより、これを解決する方法に対する研究も足りないのが実情である。
【０００６】
図１乃至図３は、従来のパケット分類方法の一例を示す図である。
【０００７】
既存方法を構成するパケット分類ツリーの例を、次の表１に表す。
【０００８】
【表１】
2004266837.tif 000003
【０００９】
従来のパケット分類方法としては、図１に示すようなグリッド・オブ・ツリー（ｇｉｒｄ−ｏｆ−Ｔｒｅｅｓ）に代表される伝統的な方法と、図２のレンジ探索（ｒａｎｇｅ ｌｏｏｋｕｐ）に代表される幾何学的な方法、そして、図３の帰納的フロー分類（ｒｅｃｕｒｓｉｖｅ ｆｌｏｗ ｃｌａｓｓｉｆｉｃａｔｉｏｎ）に代表される経験的な方法等が挙げられる。
【００１０】
このうち、グリッド・オブ・ツリーのデータ構造は、標準階層ツリーとセット・プルーニングツリーの長所を組み合わせたものであり、Ｎ分類規則が適用されるＷビット長のヘッダフィールドｄ（すなわちディメンション）の数に基づく０（ｄＷ）の照会（ｑｕｅｒｙ）時間の複雑度と０（ＮｄＷ）の格納複雑度を有する。この特徴は、スイッチングポインタをデータ構造に導入することにより得られる。しかし、スイッチングポインタは、ビットレベルで組み合わせられるため、０（ＮｄＷ）の格納複雑度を保証し、照会過程はビットずつ行なう必要がある。実行が求められる実際のアプリケーションにおいてビットずつの照会過程（または分類）は受け入れられない。
【００１１】
パケットを分類するに際し、分類速度、メモリの大きさ、分類規則数、参照フィールド数、規則更新時間、及び最悪の条件時の性能が主な項目として考慮される。
【００１２】
即ち、パケット分類では、使用可能なメモリを使用して最大の性能を確保するために、与えられた容量（ｓｔｏｒａｇｅ ｌｉｍｉｔａｔｉｏｎ）で高い性能（Ｈｉｇｈ Ｐｅｒｆｏｒｍａｎｃｅ）を達成することに関する問題を解決することが重要である。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
そこで、本発明は、前記のような問題点を解決するために、従来から使用されてきたビット単位のツリーではなくフィールド単位のツリーを展開し、ＴＣＡＭとｋ−ｗａｙ検索を用いてそれぞれプレフィックス・インプリメンテーションとレンジ・インプリメンテーションを取り扱う、照会性能を改善したフィールドレベルツリー（ＦＬＴ；Ｆｉｅｌｄ−Ｌｅｖｅｌ Ｔｒｅｅ）を用いたパケット分類装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
前記目的を達成するために、本発明のパケット分類装置は、分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、照会と更新業務を行い、ＩＰアドレス探索に代表されるプレフィックス探索を処理する第１の分類部及び第１の分類部の結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第２の分類部を備える分類エンジンとを備える。
【００１５】
ここで、分類エンジンは、分類プロセッサとメモリを備える。
【００１６】
また、主処理部と分類エンジンとは、ブロードキャスティングバスを介して接続されている。
【００１７】
第１の分類部は、プレフィックス形態のフィールドを格納しそれを検索するＴＣＡＭを使用することが好ましい。
【００１８】
そして、第２の分類部は、用途及びスペックに応じて適宜のｋ値を有するｋ−ｗａｙ検索方法を使用することが好ましい。
【００１９】
そして、ｋ値は、第２の分類部のメモリインターフェイスの大きさによって決められることが好ましい。
【００２０】
また、主処理部は、ブロードキャスティングバスを介して複数の分類エンジンに更新指示を送り、更新指示を受けた分類エンジンは、メモリのコンテンツを変更するように指示する。
【００２１】
フィールドレベルツリーは、第１の群のフィールドが上位レベルに示され、第２の群のフィールドが下位レベルに示される構造にて組織化される。
【００２２】
第１の群のフィールドは、プレフィックス・インプリメンテーションされたフィールドであり、第２の群のフィールドは、レンジ・インプリメンテーションされたフィールドであることが好ましい。
【００２３】
フィールドレベルツリーは、あるレベルで２つのノードが共通の子ノードを有すると、単に１つのノードが生成されそれを共有する。
【００２４】
フィールドレベルツリーは、プレフィックス探索のためのレベルが互いに結合されたプレフィックスの対を有する単に１つのレベルとして存在する。
【００２５】
一方、本発明に係るフィールドレベルツリーを用いたパケット分類装置は、分類のためにマルチフィールドを有するパケットを階層的構造にてフィールド別に組織化したフィールドレベルツリーを生成し維持する主処理部と、照会と更新業務を行い、ＩＰアドレス探索に代表されるプレフィックス探索を処理する第１の分類部と、プレフィックス探索の処理結果に基づき、それに属するレンジ探索範囲を処理するために当該フィールド別に分類を進める第２の分類部とを含む。
【００２６】
前記目的を達成するために、本発明のパケット分類方法は、ルーティングシステムにおけるパケット分類方法において、与えられたマルチフィールドを有するパケットをフィールド別に展開してフィールドレベルツリーを形成する第１のステップと、フィールドレベルツリーを用いてパケット分類規則に対しプレフィックス探索を行なう第２のステップと、プレフィックス探索が行われた後、レンジ探索を行なう第３のステップとを含む。
【発明の効果】
【００２７】
本発明によると、フィールド単位のツリーを展開することによって、優れた照会性能が確保された超高速のネットワーキングのためのパケット分類を実現することができる。また、約５０万個の分類ツリーのルールを処理することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して本発明をより詳細に説明する。
【００２９】
図４は、本発明に係るフィールドレベルツリーを用いたパケット分類装置の構成図である。
【００３０】
同図に示すように、本発明に係るフィールドレベルツリーを用いたパケット分類装置は、主処理部１０と複数の個別分類エンジン２０を備える。
【００３１】
主処理部１０は、ＦＬＴ（Ｆｉｌｅｄ Ｌｅｖｅｌ Ｔｒｅｅ）データ構造を構成及び管理し、該情報を加工してそれぞれの分類エンジン２０に提供する。それぞれのインターフェイスに属する分類エンジン２０は、入力する個別パケットを実際に分類する。
【００３２】
高速／コアルータにおいて、パケット分類は、一般にそれぞれのラインカードで並列に行われる。従って、それぞれのラインカードは、少なくとも１つの内蔵された分類エンジンを有する。伝送リンクの要求帯域幅によって、これらの分類エンジンは照会（ｑｕｅｒｙ）機能に最適化する。
【００３３】
本発明に係るフィールドレベルツリーを用いたパケット分類方式は、ＴＣＡＭ（Ｔｅｒｎａｒｙ Ｃｏｎｔｅｎｔ Ａｄｄｒｅｓｓａｂｌｅ Ｍｅｍｏｒｙ）技術とｋ−ｗａｙ検索とを組み合わせてプレフィックス・インプリメンテーションとレンジ・インプリメンテーションを取り扱うハイブリッド方式である。
【００３４】
しかし、分類は動的であり、データ構造は、刻々と変更する必要がある。分類エンジンにおいてデータの組織は、ルールの挿入または削除のようなアップデートに適しないことがある。
【００３５】
分類は、それぞれのラインカードで同一であり、中心のラインカードで実行されるアップデート機能を有することがより好ましいが、必ずしも必要ではない。
【００３６】
主処理部１０は、通常、強力なプロセッサを備え、ラインカードとは別のボードに位置する。
【００３７】
主処理部１０は、分類のために使用された全体のデータ構造を維持し、分類のアップデートが必要とされる時に変更する。図６乃至図８は、本発明に係るデータ構造を示し、図６に示したデータ構造は、主処理部１０で維持され、図７、図８（ａ）及び（ｂ）に示したデータ構造は、分類エンジン２０で使用される。
【００３８】
図示したデータ構造において、それぞれのノードにルールを格納する必要はない。図８（ａ）及び（ｂ）に示したように、プレフィックスの対、ｋ−ｗａｙ検索値及びポインタが分類エンジン２０で維持される。
【００３９】
主処理部１０は、更新指示をブロードキャスティングバス１２を介して全ての分類エンジン２０に送る。これらの更新指示は、分類エンジン２０がメモリ（及び／またはＴＣＡＭ）のコンテンツを変更するように指示するのに使用される。
【００４０】
図５は、図４中の分類エンジン２０の構成図である。
それぞれの分類エンジン２０は、ＩＰソース／宛先アドレス探索に代表されるプレフィックス探索を処理する部分２１と、1次の分類の結果に基づき、それに属する２次分類を処理する部分２２とからなる。２次分類において、レンジ探索範囲を処理するために当該フィールド別に分類を進めるための下位マイクロエンジンが備えられる。
【００４１】
２次分類を行うために、用途及びスペックに応じて適当な値を有するｋ−ｗａｙ検索方法を使用する。
【００４２】
分類エンジン２０は、分類プロセッサ３２と、ＴＣＡＭ４１と、一般のメモリ（ＳＤＲＡＭ及び／またはＳＳＲＡＭ）４２を備える外部メモリと、からなる。
【００４３】
分類プロセッサ３２は、その内部にマイクロエンジン３１とメモリインターフェイス３０の主要構成要素を備えている。マイクロエンジン３１は、特定のアプリケーション用または一般用のＲＩＳＣプロセッサである。データ構造は、外部メモリに格納されている。内部マイクロエンジン３１は、照会動作に対し制御機能を行い、メモリインターフェイス３０を介してデータに接続する。
【００４４】
取り出された全てのフィールドを有するパケットヘッダは、左側から分類プロセッサ３２に入る。第１のマイクロエンジン３１は、プレフィックスフォーマットでインプリメンテーションされた１番目のｋフィールドを取り、ＴＣＡＭ４１に送る。ＴＣＡＭ４１では検索を実行し、その結果を第1マイクロエンジン３１にフィードバックする。その結果を、複数のマイクロエンジンがレンジでインプリメンテーションした次のフィールドのｋ−ｗａｙ検索に対して存在する第２の段に送る。例えば、図５において１つのマイクロエンジン３１は第２の段でそれぞれのフィールドに用いられる。しかし、実際の動作において、１つのマイクロエンジンは複数のフィールドを収容することができる。マイクロエンジンの数は、それぞれのフィールドで検索のために要する外部メモリの帯域幅、マイクロエンジンの速度及び平均帯域幅によって決められる。
【００４５】
照会機能の他にも、分類エンジンは、主処理部から送信された更新指示に基づいてその外部メモリの内容（コンテンツ）を更新する必要がある。これら２つの作業におけるコンテンションを解決する２つの方法がある。ａ）分類エンジンは、照会または更新を何時でも実行可能なタスクをインタリーブする。時間消費に対して更新費用が少ない時に実現可能である。ｂ）メモリにおいてデータ構造の２つのコピーを作る。一方は照会のために使用され、他方は更新のために使用される。一つの更新動作が終了すると、更新されたコピーが照会用に転換され、他方のコピーは更新のために使用される。この方法は、インタリーブ方法の照会性能が非常に低くなる程更新費用が高い時に適用される。
【実施例】
【００４６】
次いで、本発明に係るフィールドレベルツリーの分類構造の実施例と、これに係るフィールドレベルツリーの分類方法について、図面を参照して詳細に説明する。
【００４７】
フィールドレベルツリーの分類構造は、マルチフィールドを有する分類ツリーの分類を目標にし、それぞれのフィールドは、個々のプレフィックス・インプリメンテーションまたはレンジ・インプリメンテーションで・インプリメンテーションされる。
【００４８】
４つのフィールドと７つの規則を有する分類ツリーの一例が、次の表２に表わされている。
【００４９】
【表２】
2004266837.tif 000004
【００５０】
前記表２において、最初のフィールドＦ１、Ｆ２はプレフィックスでインプリメンテーションされ、残りの２つのフィールドＦ３、Ｆ４はレンジでインプリメンテーションされる。これをＦＬＴで構成したデータ構造図が図６に示されている。
【００５１】
各個別パケットは、各レベルで該当するフィールドに対し定めた規則に沿って分類される。与えられた全てのレベルのフィールドを経ると分類作業が終り、個別のパケットに定められた規則を与えるようになる。
【００５２】
次いで、図６のフィールドレベルツリーのデータ構造図を詳細に説明する。フィールドレベルツリーのデータ構造は、次の属性を有するように定義される。
【００５３】
１．フィールドレベルツリーは、階層的構造にてフィールドずつ組織化される。ツリーの深さは、フィールドの数ｄと同じである。図６の一例においてＦ１からＦ４まで組織化された４つのノードレベルがある。図６において、底のノードは別のレベルを形成しない。照会過程が第４のレベルで終了する時、どのルールがマッチングするかを示す。
【００５４】
２．ツリーにおいてそれぞれのノードは、親ノードのルールセットのサブセットであるルールセットを含む。ツリーのルートノードは、分類ツリーで全てのルールを含むように定義される。
【００５５】
３．ｉ番目のレベルのノードａ（ルートノードは第１のレベルにあることと定義される）は、ノードａに含まれた全てのルールのＦｉフィールドの値に基づいてｉ＋１番目のレベルでその子ノードを生成する。
【００５６】
フィールドＦｉの特定に基づき、子ノードの生成に対する２つの他の過程がある。
【００５７】
（ａ）Ｆｉがプレフィックスで特定化されると、ａの子ノードの数は、ａのルールセットでＦｉの他の値の数と同一になる。その結果、それぞれの子ノードは、他のプレフィックスと結合される。子ノードｂがプレフィックスａと結合されていると仮定すると、ｂのルールセットに含まれているルールｒ（ｒは、ａにも含まれている）のＦｉ値が同じであるか、ｐのプレフィックスになる。
【００５８】
例えば、図６においてルートノードは７つのルールの全てを含み、Ｆ１フィールドには、４つの他のプレフィックス*、０*、００*、１０*があるため、４つの子ノードが生成される。
【００５９】
プレフィックス０*と結合されているノードＸは、４つのルールＲ４(Ｒ７を含む。Ｒ４(Ｒ６のＦ１値は０*であり、これはプレフィックスと結合されたものである。Ｒ７のＦ１値は *であり、これは０*のプレフィックスである。
【００６０】
（ｂ）Ｆｉがレンジで特定化されると、レンジをナンバーラインに投げだし、１セットの区間を得る。それぞれの区間Ｉ、子ノードｂが生成される。ルールｒは、ｂのルールセットに含まれ、ｒのＦｉフィールドにより特定化された範囲は１を含む。例えば、ノードｙは、区間［１０、１０］を有し単一ポイントであるノードｙ(、区間［６、６］を有するノードｙ( (及び区間［４、５］と［６、７］を有するノードｙ( (の３つの子ノードを生成する。
【００６１】
ｉ番目のレベルでノードａのルールセットは、同一のレベルにある全てのノードのルールセットの中で特殊になる。
【００６２】
ｉ−１番目のレベルで２つのノードｂ、ｃが共通の子ノードａを有すると、単に１つのノード、ノードａが生成され、それを共有する。ノードがマルチポインタにより指摘される時にノード共有が発生することが図６から分かる。ノード共有は、グリッド・オブ・ツリーでスイッチングポインタのメカニズムと類似しているが、グリッド・オブ・ツリーがビットレベルでノード共有を得るのに対し、本発明で提案された方式は、フィールドレベルでノード共有を得る。フィールドレベル共有は、ルールのコピーが回避できないため照会性能は改善するものの、格納要求は増加する。図６に示したように、ルールＲ7は、第２のレベルで４つのノードに格納される。
【００６３】
次いで、フィールドレベルツリーのノード構造と照会過程について説明する。
【００６４】
それぞれのフィールドは、通常、プレフィックスまたはレンジフォームでインプリメンテーションされ、それぞれのインプリメンテーションは、それ自身の好むデータ構造と検索アルゴリズムを有する。従って、分類ツリーは、２群のフィールドを有する。第１の群は、プレフィックス・インプリメンテーションであり、第２の群は、レンジ・インプリメンテーションである。
【００６５】
前記表２に示した分類ツリーにおいて、Ｆ１とＦ２は第１の群であり、Ｆ３とＦ４は第２の群である。フィールドレベルツリーでは、第１の群のフィールドが上位レベルに示され、第２の群のフィールドが下位レベルに示される構造にて組織化される。
【００６６】
単にプレフィックス形態のフィールドを含む第１の群に対し、ＴＣＡＭは、プレフィックスを格納しそれらを検索するために使用される。更に、ＴＣＡＭは、同時にマルチフィールドを収容することができるため、フィールドの第１の群の照会は、一回だけのメモリ接続により実行可能である。
【００６７】
図７は、図６のプレフィックス探索のためのデータ構造（即ち、レベル１、２）を図５の分類エンジン内にＴＣＡＭ（Ｔｅｒｎａｒｙ Ｃｏｎｔｅｎｔ Ａｄｄｒｅｓｓａｂｌｅ Ｍｅｍｏｒｙ）を使用して短縮した構成図である。図７において、Ｆ１、Ｆ２フィールドに対し１つのレベルだけが存在する。ルートノードは、図６中の第３のレベルにおいて最初にある７つの子ノードを有する。それぞれの第２のレベルノードは、互いに結合されたＦ１／Ｆ２プレフィックスの対を有する。かかるそれぞれのプレフィックスの対は、ＴＣＡＭにおけるエントリーのコンテンツである。プレフィックスの対は、図６中のツリー構造から誘導される。図７の第２のレベルにおけるノードに対応して、図６の第３のレベルでそれぞれのノードｘに対し、ルートノードからノードｘまでにおいて最も小さいプレフィックス長の和で経路を発見する。この経路によるプレフィックスは、図７でノードのプレフィックスの対を形成する。全てのプレフィックスの対は、ＴＣＡＭにおいてプレフィックス長が減少する順に配列される。同一の長さを有するプレフィックスの対に対し、それらの相関順序は任意である。図７に示すツリー構造の一例に対するＴＣＡＭのコンテンツを、次の表３に表わしている。第２のレベルにおいて適当なノードは、全体の照会過程を継続すると決められる。
【００６８】
ＦＬＴとＴＣＡＭの特徴を組み合わせて、工程を縮小し、前記表２のプレフィックス探索部分をＴＣＡＭ内に実現した例が、次の表３である。
【００６９】
【表３】
2004266837.tif 000005
【００７０】
プレフィックスの対をその長さが減少する順にＴＣＡＭで配列することによって、ＴＣＡＭにおける精度が高い検索結果が保証され、第２のレベルの正確なノードが照会工程全体を継続すると決められる。
【００７１】
図８（ａ）及び図８（ｂ）は、図５の分類エンジン内のレンジ探索用マイクロエンジンで行われるｋ−ｗａｙ検索を説明するための原理図である。２次分類の最も大きな性能を左右するｋ−ｗａｙ検索のｋ値をメモリインターフェイスの大きさによって決める。与えられた環境下においてｋ値は大きい程よい。
【００７２】
分類すべきパケットヘッダが与えられると、第１の群に属するフィールドが取り出され、検索のためにＴＣＡＭに送られる。ＴＣＡＭからの出力は、次に接続すべき第２のレベルでノードを表示する。ＴＣＡＭは、全てのプレフィックス形態のフィールドを収容するため、照会プロセスの残りは、レンジ・インプリメンテーションフィールドに頼る。第２または下位レベルに存在するノードに対し、それぞれのノードに対してバイナリ検索ツリー（または、外部メモリの帯域幅によってｋ−ｗａｙ検索ツリー）を使用する。例えば、ツリーのｉ（ｉ(１）番目のレベルでノードａがある。ａのルールセットでルールのｉ番目のフィールドをナンバーラインに投射した後、図８ａに示すように８つの終点Ｅ１(Ｅ８を有する７つのインターバルＩ１(Ｉ７が得られる。これらのインターバルを組織化するために３−ｗａｙ検索ツリーを用いると、図８ｂに示すようなツリー構造が得られる。これは、４つのブロックを有する２レイヤーツリーである。それぞれのブロックは、ｋ−ポインタとｋ−１終点を含む。内部ブロックにおいてポインタは、ｋ−ｗａｙ検索ツリーで他のブロックを指示するのに対し、リーフブロックにおいてポインタは、フィールドレベルツリーで次段のレベルノードを指示する。ｋ−ｗａｙ検索ツリーにおいて検索過程を例を挙げて説明する。
【００７３】
インターバルＩ３内にポイントＰが存在すると仮定すると、検索過程は、ルートブロックＸから始まる。ＰをＸに格納されている２つの終点Ｅ３、Ｅ６と比較することによって、それらの間の順序がＥ3(Ｐ(Ｅ6であることが分かる。インターバルＩ３に結合された第１のポインタが、フィールドレベルツリーの次段のレベルでのノードの後にこなければならない。
【００７４】
ｋ−ｗａｙ検索は、レンジ探索問題のための効率よいアルゴリズムである。ｋ−ｗａｙ検索ツリーのレイヤーの数は、ｌｏｇkＭにより決めることができ、Ｍは、インターバルの数である。ｋ−ｗａｙ検索ツリーにおいてそれぞれのブロックは、メモリに格納された基本単位であり、１回の読み取り／書き込み動作に対し１回のメモリへの接続を必要とする。その結果、検索過程の間、メモリへの接続の数は、ｋ−ｗａｙ検索ツリーのレイヤーの数と同一である。ここで、ｋの数は、ブロックの大きさによって制限され、ブロックの大きさは、メモリ帯域幅によって決められる。
【００７５】
フィールドレベルツリーの照会過程は、全てのフィールドに対しプレフィックス・インプリメンテーションを有するＴＣＡＭから始まる。レンジ・インプリメンテーションを有するフィールドに達した後、照会過程は、１回に１つのレベルに対して進め、ｋ−ｗａｙ検索は、接続する次の子ノードを探し出すために実行される。照会過程は、リーフノードが到達した時に終了され、整合したルールが結果として復帰する。
【産業上の利用可能性】
【００７６】
本発明は、通信システムにおけるパケット等の項目を処理する分野で利用でき、ルータでパケットを分類するに際し、フィールドレベルツリーを用いてパケットを分類するパケット分類方法及びその方法を実現させるためのパケット分類装置に適用できる。
【図面の簡単な説明】
【００７７】
【図１】従来のパケット分類方法におけるグリッド・オブ・ツリーのデータ構造図を示す図である。
【図２】従来のパケット分類方法におけるレンジ探索の原理を示す図である。
【図３】従来のパケット分類方法における帰納的フロー（ｒｅｃｕｒｓｉｖｅ ｆｌｏｗ）分類の原理を示す図である。
【図４】本発明に係るフィールドレベルツリーを用いたパケット分類装置を示す構成図である。
【図５】図４中の分類エンジンを示す構成図である。
【図６】表２の分類ツリーをフィールドレベルツリーで構成したデータ構造を示す図である。
【図７】図６中のプレフィックス探索のためのデータ構造を図５の分類エンジン内にＴＣＡＭ（Ｔｅｒｎａｒｙ Ｃｏｎｔｅｎｔ Ａｄｄｒｅｓｓａｂｌｅ Ｍｅｍｏｒｙ）を使用して短縮した構成を示す図である。
【図８】（ａ）は図５中の分類エンジン内のレンジ探索のためにマイクロエンジンで行われるｋ−ｗａｙ検索を説明するための原理を示す図であり、（ｂ）は図５中の分類エンジン内のレンジ探索のためにマイクロエンジンで行われるｋ−ｗａｙ検索を説明するための原理を示す図である。
【符号の説明】
【００７８】
１０    主処理部
１２    ブロードキャスティングバス
２０    分類エンジン
３０    メモリインターフェイス
３１    マイクロエンジン
３２    分類プロセッサ
４１    ＴＣＡＭ
４２    メモリ
【図１】
2004266837.tif 000006
【図２】
2004266837.tif 000007
【図３】
2004266837.tif 000008
【図４】
2004266837.tif 000009
【図５】
2004266837.tif 000010
【図６】
2004266837.tif 000011
【図７】
2004266837.tif 000012
【図８】
2004266837.tif 000013