JP3485262B2 - データ・パケットを分類する方法および手段 - Google Patents

データ・パケットを分類する方法および手段

Info

Publication number
JP3485262B2
JP3485262B2 JP2001015820A JP2001015820A JP3485262B2 JP 3485262 B2 JP3485262 B2 JP 3485262B2 JP 2001015820 A JP2001015820 A JP 2001015820A JP 2001015820 A JP2001015820 A JP 2001015820A JP 3485262 B2 JP3485262 B2 JP 3485262B2
Authority
JP
Japan
Prior art keywords
range
rule
primitive
prefix
tokens
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
JP2001015820A
Other languages
English (en)
Other versions
JP2001274837A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001274837A publication Critical patent/JP2001274837A/ja
Application granted granted Critical
Publication of JP3485262B2 publication Critical patent/JP3485262B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信システムのパ
ケットなどの項目の処理であって、異なる判断基準につ
いて各パケットに含まれるそれぞれの判断基準値を検出
し、その判断基準値を使用してパケットを分類し、パケ
ットのさらなる処理または転送のために適用可能な規則
を判定するためにその内容を調査することによってその
ような項目を処理する分野に関する。
【0002】
【従来の技術】たとえばインターネットなどの通信シス
テムでのパケットの処理のために、通常は、宛先アドレ
スを評価して、パケットの経路上の中間ノードのそれぞ
れで、どの出力またはリンクにそのパケットを転送しな
ければならないのかを判定する。さまざまな種類の通信
システムでは、異なるタイプのサービスが、宛先アドレ
ス、起点アドレス、または各パケットのヘッダで提供さ
れる他のデータに応じて提供される。サービスのタイプ
の相違は、パケットが処理または転送される際の優先順
位、伝送に対して支払わなければならない価格、特定の
発信元に関するパケットの処理の完全な拒否などであ
る。現在のシステムで処理されるパケット(または、一
般的にはデータ項目)の量の膨大さに起因して、パケッ
トと共に受信される判断基準の認識の速度およびその結
果の、どのタイプの処理を選択しなければならないかの
判断を、極端に短い時間で行わなければならない。
【0003】既知の手法/従来の解決策通信システムで
パケットを分類するための複数の方法が、刊行物から既
知である。T.V.ラクシュマン(Lakshman)および
D.スチリアディス(Stiliadis)による論文、「High-
Speed Policy-based Forwarding Using Efficient Mult
i-dimensional Range Matching」、Proc.ACM SIGCOMM '
98、Comp.Commun.Rev.Vol.28、No.4、1998年10月、
203ないし214ページに、規則の所与の組の中か
ら、受信したパケットの処理に適用可能な規則を見つけ
る方法が記載されている。n次元のそれぞれ(たとえ
ば、宛先アドレス、起点アドレスなど)について、めい
めいの次元を、それぞれがめいめいの次元からの値の範
囲を含む、オーバーラップしない区間に分割する。区間
は、どの区間内でも、適用可能な規則の変化が発生しな
いように選択される。そのような区間または範囲のそれ
ぞれについて、システムに存在する規則ごとに1ビット
を含むビットマップを生成する。規則が範囲内で適用さ
れる時にはこのビットが1になり、そうでない場合には
0になる。ビットマップ内のビットは、ビットが対応す
る規則の優先順位に従って順序付けられる。これによっ
て、複数の規則が適用可能である場合に、最高の優先順
位を有する規則を選択できるようになる。パケットを分
類しなければならない時には、次元ごとに、パケットが
どの区間または範囲に属するかが最初に検出され、その
後、ビット単位のAND組合せを行うことによって、め
いめいの区間のビットマップの交差が作られる。その結
果が、どの規則が適用可能であるかを示し、優先順位方
式に従って、1つの規則が最終的に選択される。これに
よって、規則の数が少ない場合の高速の分類が可能にな
る。
【0004】しかし、検討しなければならない規則が数
百または数千存在する時には、ビットマップが大きくな
り、大量の記憶域を必要とする。これらの大きいビット
マップへのアクセスおよび複数のこれらのビットマップ
の交差の実行は、長い時間を必要とし、したがって、所
与の分類速度でサポートできる規則の数が制限される。
さらに、対応する規則の優先順位に基づくビットマップ
内でのビットの順序付けは、合理的な時間でのデータ構
造の増分更新の実行を不可能にし、新しい規則の挿入
が、すべての次元での区間のすべてに対応するすべての
ビットマップの変更を必要とする。
【0005】P.グプタ(Gupta)およびN.マッケオ
ウン(McKeown)による、ACM SIGCOMM '9
9、Comp.Commun.Rev.Vol.29、
No.4、1999年10月、147ないし160ペー
ジに記載の論文、「Packet Classification on Multipl
e Fields」に、分類を複数の順次ステップで行う方法が
記載されている。第1ステップでは、パケット・ヘッダ
が、複数のメモリを同時にインデクシングするのに使用
される複数のチャンクに分割される。後続のステップ
で、前のステップのルックアップ結果を組み合わせて、
異なるメモリに同時にアクセスするための新しいチャン
クを形成する。前処理ステップでは、いわゆるチャンク
等価セット(chunk equivalence set)が、チャンク上
の分類規則に含まれるさまざまな範囲の射影から(最初
のステップのチャンクの場合)、または、前のステップ
のチャンク等価セットの可能な交差から(後続ステップ
のチャンクの場合)、チャンクごとに導出される。各要
素に、いわゆる等価クラスID(equivalence class I
D)が割り当てられ、この等価クラスIDは、0から始
まるセット要素の2進番号付けによって得られる。チャ
ンク値を使用するメモリのインデクシングによって達成
されるルックアップ結果のそれぞれは、その値が関係す
るチャンク等価セットの要素に対応する等価クラスID
である。等価IDのサイズは、通常はメモリのインデク
シングに使用されるチャンクのサイズより小さいので、
これを縮小とみなすことができる。最後のステップのメ
モリ・ルックアップが、最高の優先順位を有する適用可
能な規則のIDをもたらす。このようにして、すべての
関係パケット・ヘッダ部分のサイズから規則識別インデ
ックスのサイズへの総合的な縮小が達成される。
【0006】この方法の短所は、その大きい記憶域要件
と、非効率的な記憶域使用である。規則の特性によって
は、多数のメモリに、同一の値が何度も含まれる可能性
がある。これに直接に関連して、規則の挿入または除去
によるデータ構造の更新が、多数のメモリ位置に影響
し、高速の増分更新を行えなくなる可能性がある。規則
が多数の場合、前処理にかなりの時間を要する。
【0007】文献で示される既知の方法のすべてが、複
数の状況で高速の分類を可能にするにもかかわらず、近
い将来のインターネットについて予想されるように、規
則の数(および適用可能な規則を判定する判断基準の
数)が非常に多数である時に、必要な処理速度が与えら
れない。
【0008】
【発明が解決しようとする課題】本発明の目的は、各パ
ケットに含まれる複数の判断基準の値に応答して、適用
可能な規則に関して処理されるパケットまたは他のデー
タ項目を分類する方法および手段を考案することであ
る。判断基準値の区間に関する規則の所与の不規則な分
布および相互関係を、分類および検索機構の構造に最適
にマッピングし、その結果、効率的なルックアップ手順
を使用できるようにするために、この規則の分布および
相互関係を利用することができなければならない。本発
明のもう1つの目的は、たとえば新しい規則の追加な
ど、入力値の範囲に関する規則の分布の変更に対して検
索構造および分類構造のすばやく簡単な適応を可能にす
る分類の方法および手段を考案することである。もう1
つの目的は、記憶域の必要なサイズを減らし、パケット
内で受信される判断基準入力値に応答して、各パケット
を分類し、適用可能な規則を判定するのに必要な時間を
最小にすることである。
【0009】これらの目的を達成するための発明を、請
求項で定義する。その長所には、具体的には、下記が含
まれる。本発明は、たとえば各パケット(または分類さ
れるデータ項目)に関する必要な処理規則など、適用可
能なクラスを、パケットの伝送速度との互換性のある時
間で判定でき、その結果、遅延に遭遇しなくなるように
することができる。さらに、周知の最長一致プレフィッ
クス(longest-matching-prefix)検索方法を、少なく
とも最終選択ステップに使用することができる。さら
に、新しい規則が追加されるか、範囲と規則の間の割り
当てが変化する時のマッピング・データベース(ルック
アップ・テーブル)の更新は、多数の格納されたデータ
を変更する必要なしに、テーブル内に少数の項目を追加
することによって簡単に行うことができ、完全な更新
は、前の即時適応を遅延させずに、最適化のために定期
的な間隔で行うことができる。
【0010】本発明の実施形態を、発明的手順を示す図
面を参照して以下で説明する。
【0011】
【課題を解決するための手段】図1を参照して、本発明
の手短な全般的説明を行う。分類処理の第1ステップと
して、関係する判断基準の入力値を、受信した入力項目
から得る。この全般的な説明では、分類される項目が、
通信パケットであることと、判断基準が、宛先アドレス
および起点アドレスであることを仮定する。2つの特定
のアドレス値I 1およびI2が、格納されたテーブルでの
ルックアップ手順の入力値としてとられる。次のステッ
プでは、判断基準ごとに別々に、事前に選択された基本
範囲のどの範囲(値の区間)に、それぞれの入力値が含
まれるかを判定する。これは、2つの入力値に関する2
つの基本範囲XiおよびYjの識別をもたらす。ここまで
は、これらのステップは、すでに既知の他の分類手順と
同一である。
【0012】ここで、格納されたテーブル内のもう1つ
のルックアップ動作で、前に判定した基本範囲のそれぞ
れについて範囲トークンを見つけ、したがって、範囲ト
ークンRT(Xi)およびRT(Yj)を得る。これらの
範囲トークンの少なくとも1つが、非均一(可変)長の
範囲トークンの組から得られる。たとえば、範囲トーク
ンRT(Yj)の組に、1ビットとnビットの間の長さ
を有するトークンを含めることができる。範囲トークン
は、入力値の値の範囲に対する規則の分布に適合したプ
レフィックス指向の組を形成するように選択され、基本
範囲にマッピングされ(割り当てられ)る。実際の入力
値から得られた2つの範囲トークンは、所定の組合せ
で、格納されたデータ構造内の最長一致プレフィックス
・ルックアップ動作または検索動作に使用され、この格
納されたデータ構造は、2進検索木とすることができ、
発生する範囲トークンの組合せを検索キーとして最適に
使用して、最終的に、受信した入力値I1およびI2の特
定の組合せに使用される規則のIDを出力として得るた
めに、規則プレフィックスを基礎として設計される。
【0013】説明する発明の第1の実施形態では、範囲
トークンの一方だけが、可変長であり、他方は固定長を
有する。この場合、2つの範囲トークを連結して、可変
長の単一の検索キーが得られ、この検索キーが、最長一
致プレフィックス検索動作の入力として使用される。
【0014】第2の実施形態(後で説明する)では、両
方の範囲トークンが、可変長である。これらは、その
後、2つの別々の部分検索キーとして、特殊な最長一致
プレフィックス・ルックアップ動作または検索動作への
入力として一緒に使用されて、必要な規則IDが判定さ
れる。
【0015】この全般的な説明および2つの説明される
実施形態では、たとえば受信したパケットをそれに従っ
てさらに処理するための規則を見つけるためなど、受信
したデータ項目を分類するために、2つの判断基準だけ
を評価する。しかし、本発明は、項目の分類のために3
つ以上の判断基準を評価するシステムにも適用可能であ
る。その場合には、使用される変数(基本範囲ID X
i、...および範囲トークンRT(Xi)、...)
をn次元システムで提供することだけが必要である。こ
れは、連結によって、1つのトークンだけが可変長であ
り、(n−1)個の他のトークンが固定長である場合
に、LMP(最長一致プレフィックス)ルックアップ動
作に関する単一の検索キーをもたらすか、第2の実施形
態に関して主に説明するように、n個のすべてのトーク
ンが可変長である場合に、n個の別々の部分検索キーが
入力としてLMP検索動作に提示されるかのいずれかを
もたらす。
【0016】以下では、本発明の2つの実施形態を例と
して説明する。さらに、本発明に従って生成されるパケ
ット分類用のデータベースの更新のための方法を手短に
説明する。この説明で使用する特定の用語を、最後に手
短にリストし、定義する。
【0017】例1 この例では、X次元およびY次元と表される2次元の次
の範囲(規則範囲と呼ぶ)をカバーする4つの規則を使
用する。
【0018】
【表1】
【0019】図2の規則図(規則/範囲図)に、2次元
長方形として規則を示す。オーバーラップしない区間X
0ないしX8およびY0ないしY7は、すべての規則の
範囲境界をX軸およびY軸に射影することによって得ら
れる。これらの区間を、基本範囲と呼ぶ。基本範囲は、
次の範囲である。
【0020】
【表2】
【0021】図2の図では、基本範囲が、10単位また
は20単位のいずれかの幅である(たとえば、X2=2
0〜29、X3=30〜49)ことに留意されたい。も
ちろん、基本範囲の他の(10進数以外の)幅が可能で
あり、各基本範囲が、それ自体の個々の幅を有すること
ができる。
【0022】図2では、2つの規則がオーバーラップす
る時に、より高い優先順位を有する規則が、低い優先順
位を有する規則の「上」に描かれる。たとえば、規則3
は、[X2、Y4]で規則1とオーバーラップし、規則
3が規則1より高い優先順位を有するので、規則3が
「上」に描かれている。
【0023】可変長範囲トークン 「範囲トークン」が、基本範囲のそれぞれに割り当てら
れ(規則によってカバーされない範囲を除く。このよう
な範囲は、本明細書で説明しない特別な範囲トークンを
受け取ることができる)、1つの特定の範囲交差を表す
範囲トークンの組(受信したパケットからの現在の入力
値に対応する)が、組み合わせて使用されて、適用可能
な規則が判定される。本発明の概念では、少なくとも1
つの次元での基本範囲への可変長範囲トークンの割り当
てが用いられる。この例では、可変長範囲トークンは、
基本範囲のY次元だけに割り当てられる。
【0024】プリミティブ範囲階層 階層内で順序付けられるプリミティブ範囲が、規則の特
定の既存の分布および相互関係に応答する範囲トークン
の効率的で最適な生成を可能にするために導入される。
【0025】規則の所与の組について範囲トークンを導
出する方法の1つを、図3に示す。Y規則範囲は、Y軸
の左に示されたいわゆるプリミティブ範囲を含む層の階
層を作るのに使用される。階層化(L1、L2、L3)
が、例示のために左から右へ水平に示されている。この
階層の「最下位」は、左端に示されたプリミティブ範囲
(層L1)によって形成される。図4では、プリミティ
ブ範囲階層が、通常の垂直の形で示されている。
【0026】プリミティブ範囲階層の構成は、規則の、
ある順序付けに基づく。規則の順序は、たとえば規則の
優先順位、範囲のサイズ、規則の予測される寿命、また
は組合せなどに基づいて、異なる形で選択することがで
きる。規則の順序付けを適当に選択することによって、
階層内のプリミティブ範囲の個数を最小にすることがで
き、したがって、範囲トークンの必要な個数および長さ
を減らすことができ、これによって、必要な記憶域の削
減がもたらされる。ここでは、規則2、規則3、規則
1、規則4という順序を使用する。プリミティブ範囲階
層は、次の特性を有する。最下位層(図3では左端の
「垂直層」L1)にあるプリミティブ範囲は、分離され
(オーバーラップしない)なければならず、上位層(L
2およびL3)にあるプリミティブ範囲は、下位層のプ
リミティブ範囲のサブセットでなければならない。
【0027】図3では、規則2のY規則範囲全体が、層
1のプリミティブ範囲2として配置されている(規則2
が、規則順序で最上位なので)。次に、上で述べた規則
順序に従って、規則3のY規則範囲が採用され、プリミ
ティブ範囲2の上の層2のプリミティブ範囲3として配
置される。プリミティブ範囲3は、プリミティブ範囲2
のサブセットである。
【0028】次に、規則1のY規則範囲をとりあげる。
規則1のY規則範囲は、プリミティブ範囲2および3の
両方とオーバーラップする。上位層のプリミティブ範囲
が、下位層のプリミティブ範囲のサブセットでなければ
ならないという特性を保つために、規則1のY規則範囲
を、1a、1b、および1cと記された3つのプリミテ
ィブ範囲に分割する。プリミティブ範囲1cは、プリミ
ティブ範囲3のサブ範囲であり、したがって、層3でプ
リミティブ範囲3の上に置くことができる。プリミティ
ブ範囲1bは、プリミティブ範囲2のサブ範囲であり、
プリミティブ範囲3と分離されており、したがって、層
2で、プリミティブ範囲2の上に置かれる。規則1のY
範囲の残りの部分、プリミティブ範囲1aは、プリミテ
ィブ範囲2と分離され、したがって、層1に置かれる。
【0029】最後に、規則4のY規則範囲をとりあげ
る。この範囲は、プリミティブ範囲1aおよび1bの両
方とオーバーラップする。規則1のY規則範囲について
行ったものに類似の形で、規則4のY規則範囲を2つの
プリミティブ範囲4aおよび4bに分割する。プリミテ
ィブ範囲4aは、プリミティブ範囲1aのサブセットで
あり、したがって、層2でプリミティブ範囲1aの上に
置かれる。プリミティブ範囲4bは、プリミティブ範囲
1aと等しい。これは、単純に「合併」される、すなわ
ち、元のプリミティブ範囲1bが、プリミティブ範囲
「1b、4b」と呼ばれるようになる。
【0030】図4に、このプリミティブ範囲階層を、垂
直の形で示す。
【0031】プリミティブ範囲ID 階層内のプリミティブ範囲のそれぞれには、次の形で識
別が割り当てられる(層ごとに別々に、各層内では下位
レベルでプリミティブ範囲の1つに関連するプリミティ
ブ範囲の組ごとに別々に)。
【0032】kが、最下位層である層1のプリミティブ
範囲の数であるならば、これらのプリミティブ範囲のそ
れぞれに、多くともlog(k)ビットを有する一意の
2進数を割り当てる。図4では、プリミティブ範囲2に
ID'0'が割り当てられ、プリミティブ範囲1aにI
D'1'が割り当てられている。
【0033】同一の処理を、所与の層で、前の層の1つ
のプリミティブ範囲のサブ範囲であるプリミティブ範囲
の組ごとに繰り返す。たとえば、プリミティブ範囲3お
よびプリミティブ範囲1b、4bは、層1のプリミティ
ブ範囲2の層2での2つのサブ範囲である。プリミティ
ブ範囲3にはID'0'、プリミティブ範囲1b、4bに
はID'1'が割り当てられる。図4に、この形で階層内
のプリミティブ範囲に割り当てられたIDのすべてを示
す。
【0034】規則順序の適当な選択によって、プリミテ
ィブ範囲の数および必要な階層層の数を最小にすること
ができる。
【0035】範囲トークン 階層内のプリミティブ範囲IDに基づいて、すべての基
本範囲の範囲トークンが、次の形で導出される。基本範
囲のそれぞれについて、範囲トークンは、連結の順序が
階層内のプリミティブ範囲の階層化に従う(最下位層か
ら最上位層へ)場合に、所与の基本範囲がそのサブセッ
トであるプリミティブ範囲のすべてのIDの連結からな
る。
【0036】たとえば、基本範囲Y4の範囲トークン
「000」は、次の形で導出される。基本範囲Y4は、
図3からわかるように、プリミティブ範囲2、3、およ
び1cのサブセットである。これらのプリミティブ範囲
のIDは、図4によれば「0」、「0」、および「0」
であり、これらは、連結された時に「000」をもたら
す。図3に、この形で導出される基本範囲(Y
1、...、Y6)の範囲トークンのすべてを、Y次元
の右側に示す。
【0037】この例では、Y次元の基本範囲だけに、可
変長範囲トークンが割り当てられる。X次元の基本範囲
は、図3からわかるように(規則/範囲図の最上部)、
少なくとも1つの規則範囲のサブセットである基本範囲
に、単純に3ビットの2進数(7つの基本範囲の場合)
を用いて番号を付けることによって、固定長範囲トーク
ンを割り当てられる。
【0038】規則プレフィックス この例の構造による分類動作では、所与の入力Xおよび
Yに対して、基本範囲が並列に判定される。所与の入力
は、受信したパケットから抽出された関係する判断基準
値の組、たとえば、1つの特定の宛先アドレスおよび1
つの特定の起点アドレスである。入力値のそれぞれにつ
いて、それが含まれる基本範囲および関連する範囲トー
クンを、たとえばルックアップ動作で見つける。すべて
の入力値に関するルックアップ動作が、時間を節約する
ために並列に行われる。これらのルックアップ動作は、
標準的であり、したがって、本明細書でこれ以上の説明
は不要である。見つかったX基本範囲の結果の固定サイ
ズ範囲トークンを、見つかったY基本範囲の結果の可変
サイズ範囲トークンと連結する。連結の結果を、最長一
致プレフィクス検索動作の検索キーとして使用して、分
類動作の所与の入力に適用される最高の優先順位の規則
を判定する。
【0039】重要な要素が、「規則プレフィックス」で
あり、これによって、連結された範囲トークンに応答し
て規則IDを見つけるのに最終的に使用されるルックア
ップ木または検索木の編成が決定される。各規則プレフ
ィックスは、1つの規則IDへの木経路を表す。これら
の規則プレフィックスを適当に選択することによって、
最適の時間および記憶域の要件を有する最長一致プレフ
ィックス・ルックアップ動作が可能になる。
【0040】規則プレフィックスは、それに対して連結
された並列検索結果(すなわち検索キー)がテストされ
るが、次の形で導出される。
【0041】X次元の基本範囲のそれぞれについて、ま
ず、所与の基本範囲がX規則範囲のサブセットである規
則を判定する。次に、これらの規則のそれぞれおよび所
与の基本X範囲について、めいめいのY規則範囲のどの
部分が最高の優先順位の規則によってカバーされないか
を判定する。Y規則範囲のこの部分について、Y規則範
囲がそのサブセットであるプリミティブ範囲の最小の組
を判定する。見つかった組のプリミティブ範囲のそれぞ
れについて、X次元の所与の基本範囲の範囲トークン
に、所与のプリミティブ範囲自体(Y次元の)のIDお
よび、階層内の階層化の順序で所与のプリミティブ範囲
の下位のすべてのプリミティブ範囲のIDを連結するこ
とによって、別々の規則プレフィックスを作成する。こ
れによって、所与の規則に関する規則プレフィックスが
もたらされる。
【0042】たとえば、基本範囲X5は、規則1、2、
および4のX規則範囲の一部である。規則1について、
Y範囲Y1だけが、最高優先順位の規則2および4によ
ってカバーされない。Y1がサブセットである最小のプ
リミティブ範囲は、プリミティブ範囲1aである。ここ
で、X5の固定サイズ範囲トークン(「101」)に、
プリミティブ範囲1aの可変サイズID(「1」)を連
結することによって規則プレフィックスが得られ、規則
プレフィックス1011⇒規則1になる。
【0043】規則2の場合、Y範囲Y4ないしY6が、
最高優先順位の規則4によってカバーされない。Y4な
いしY6がサブセットである最小のプリミティブ範囲
は、プリミティブ範囲2である。X5の範囲トークン
(「101」)にプリミティブ範囲2の可変サイズID
(「0」)を連結することによって、規則プレフィック
スが得られ、規則プレフィックス1010⇒規則2にな
る。
【0044】規則4は、基本範囲X5について、より高
い優先順位の規則によってカバーされない。Y範囲Y2
およびY3がサブセットであるプリミティブ範囲の最小
の組は、プリミティブ範囲4aおよび「1b、4b」で
ある。これらのプリミティブ範囲のそれぞれについて、
規則プレフィックスを決定する。プリミティブ範囲4a
の場合、規則プレフィックスは、X5の範囲トークン
(「101」)にプリミティブ範囲1aのID
(「1」)とプリミティブ範囲4aのID(「0」)を
連結することによって得られ、規則プレフィックス10
110⇒規則4になる。
【0045】プリミティブ範囲4bの場合、「規則4」
を指す規則プレフィックスは、X5の範囲トークン
(「101」)にプリミティブ範囲2のID(「0」)
とプリミティブ範囲「1b、4b」のID(「1」)を
連結することによって得られ、規則プレフィックス10
101⇒規則4になる。X次元のすべての基本範囲に対
して同一の手順を実行することによって、規則プレフィ
ックスの次の表が得られる。
【0046】
【表3】
【0047】規則プレフィックス12が、規則プレフィ
ックス13のプレフィックスであることに留意された
い。これは、図3から理解することができる。分類動作
への所与の入力について、規則プレフィックス12が一
致するプレフィックスである場合には、それは、この入
力が、長方形[X5、Y3−Y6]の中の座標に関する
ことを意味し、これは、規則2が適用されることを意味
する。規則プレフィックス13が、より長い一致するプ
レフィックスであることがわかる場合には、これは、そ
の入力が、長方形[X5、Y3]の中の座標に関するこ
とを意味し、これは、規則4も適用されることを意味
し、規則4の方が優先順位が高いので、規則4が、分類
動作の出力になる。また、規則プレフィックス15は、
規則プレフィックス16のプレフィックスである。
【0048】文献では、高速の最長一致プレフィックス
検索動作を実行するための複数の方法が報告されてき
た。これらの方法のどれであっても、この例に適用する
ことができる。図5に、上で示した規則プレフィックス
・リストの最長一致プレフィックス検索木構造を示す。
これは、説明を簡単にするために2進木として設計され
ている。この動作の短い説明を、後に行う。
【0049】例2 この第2の例では、第1の例で使用され、図2に示され
たものと同一の4つの規則を仮定する。
【0050】可変長範囲トークン この例では、可変長範囲トークンを、X次元とY次元の
両方で基本範囲に割り当てる。これは、可変長範囲トー
クンがY次元の基本範囲だけに割り当てられる第1の例
と対照的である。可変長範囲トークンが2つ(以上の)
次元で使用される時には、分類手順のさらによい最適化
が、少なくとも規則と範囲の間のいくつかの関係につい
て可能である。これは、この例の説明の最後の規則プレ
フィックスの結果のリストおよび図9の結果の探索木か
らわかる。
【0051】可変長範囲トークンを両方の次元で基本範
囲に割り当てる方法の1つでは、図6に示された2ステ
ップを含んでいる。
【0052】最初のステップは、既存の規則をいわゆる
サブ規則に分割し、これらのサブ規則に関する2次元長
方形が分離される(オーバーラップしない)か、互いに
含まれる(すなわち、ある規則(たとえば3b)のサブ
規則が、別の規則または別の規則のサブ規則(たとえば
1a)に含まれる)ようにすることである。規則をサブ
規則に分割する方法は、たとえば規則の優先順位、規則
範囲のサイズ、または組合せなど、異なる判断基準に基
づくものとすることができる。たとえば、図6では、規
則4が、2つのサブ規則4aおよび4bに分割される。
その結果、サブ規則4bは、規則2に含まれ、サブ規則
4aは、規則2と分離される。
【0053】規則がサブ規則に分割される場合、より高
い優先順位の規則によって完全にカバーされるサブ規則
を無視することができる。たとえば、図6では、規則1
が、サブ規則1a、1b、1c、および1dに分割され
る。規則1の残りの部分は、より高い優先順位の規則2
(の左下部分)およびより高い優先順位のサブ規則4a
(の左部分)によってカバーされ、したがって、破棄さ
れる。
【0054】すべての規則およびサブ規則が、互いに含
まれるか分離されるという特性が保持された後に、第2
ステップとして、プリミティブ範囲階層を各次元で作成
する。これは、第1の例で説明したものに類似する形で
行われる。次元ごとに、プリミティブ範囲階層の作成に
使用される規則およびサブ規則の順序は、所与の次元で
より大きい(サブ)規則範囲からより小さい(サブ)規
則範囲の順である。X次元およびY次元に関する結果の
プリミティブ範囲階層を、それぞれ図6のX軸の下およ
びY軸の左に示す。
【0055】たとえば、X次元では、規則2のX規則範
囲が、層1でプリミティブ範囲2として採用される。プ
リミティブ範囲2の上には、サブ規則1cとサブ規則4
aおよび4bに対応するプリミティブ範囲1cおよび4
a、bが、層2に配置される。プリミティブ範囲4a、
bの上には、サブ規則1dに対応するプリミティブ範囲
1dが、層3に配置される。X次元でのこれらのプリミ
ティブ範囲の階層化は、そのサイズに従って行われる。
同様の形で、Y次元のプリミティブ範囲を生成する。
【0056】プリミティブ範囲IDは、第1の例に関し
て説明したものと同一の形で決定され、これを図7およ
び図8に示す。また、プリミティブ範囲階層およびプリ
ミティブ範囲IDからの可変長範囲トークンの導出が、
この場合は2次元について、第1の例について説明した
ものと同一の形で行われる。その結果を、図6の、規則
/範囲図の上および右側に示す。
【0057】規則プレフィックス 少なくとも2つの次元で、可変長範囲トークンが基本範
囲に割り当てられる場合には、分類入力の各次元で基本
範囲を判定するための並列検索動作の結果である範囲ト
ークンは、中間テスト結果(すなわち単一の検索キー)
を構成するために連結されるのではなく、分類動作の所
与の入力値に適用される最高優先順位の規則を判定する
ために、最長一致プレフィックス検索の変更版への入力
として、別々のビット・ベクトル(2つの「部分検索キ
ー」)として提供される。この変更された最長一致プレ
フィックス検索動作と通常の最長一致プレフィックス検
索動作の間の差は、後者のタイプの動作において、正確
に1つのビットベクトル(すなわち単一の検索キー)
が、左から右へ処理される入力として使用されることで
ある。その一方で、第1のタイプの動作では、複数の異
なるサイズのビットベクトル(2つの「部分検索キ
ー」)を、それぞれが左から右へ処理される入力として
使用することができるが、これらのさまざまなビットベ
クトルの諸部分が検索動作のある点で使用される順序
は、既に処理されたビットベクトル部分の値に依存す
る。これを、これから説明する。
【0058】分割されない規則のそれぞれについて、ま
た、前に説明した分割動作および破棄動作の後に残され
るサブ規則のそれぞれについて、規則プレフィックス
が、次の形で導出される。各次元で、所与の規則または
サブ規則のその次元での規則範囲に等しいプリミティブ
範囲を判定する。次に、各次元で、判定されたプリミテ
ィブ範囲がそのサブセットであり、判定されたプリミテ
ィブ範囲自体を含むすべてのプリミティブ範囲の組を判
定する。最後に、これらのプリミティブ範囲のすべての
プリミティブ範囲IDに、X次元の層1のプリミティブ
範囲のプリミティブ範囲IDから始めて、Y次元の層1
のプリミティブ範囲のプリミティブ範囲ID、X次元の
層2のプリミティブ範囲のプリミティブ範囲IDなど
を、これらのプリミティブ範囲のすべてがカバーされる
まで連結することによって、規則プレフィックスを作成
する。所与の規則またはサブ規則について、X次元およ
びY次元のプリミティブ範囲の組に、異なる数の要素が
含まれる場合には、プリミティブ範囲IDの交番連結
は、ある組のすべてのプリミティブ範囲IDが使用され
た後に停止し、その後、残りの組のプリミティブ範囲I
Dだけを使用して、規則プリフィックスの残りを作成す
る。満たさなければならない、X次元およびY次元に関
するプリミティブ範囲IDが連結される順序を決定する
重要な条件は、規則またはサブ規則が(低優先順位の)
規則またはサブ規則に含まれる場合に、含む側の規則ま
たはサブ規則に関するプリミティブ範囲IDが、規則プ
レフィックス内で、含まれる規則またはサブ規則と同一
の順序で現れなければならないということである。これ
の理由は、最終的に適用可能な規則IDを得るための、
最長一致プレフィックス・ルックアップ手順でのバック
トラッキングを避けるためである。
【0059】たとえば(図6、図7、および図8を比較
されたい)、サブ規則1aの規則プレフィックスは、次
の形で構成することができる。X次元で、プリミティブ
範囲1a、bが、サブ規則1aの規則範囲に等しく、Y
次元で、プリミティブ範囲1aが、サブ規則1aの規則
範囲に等しい。このプリミティブ範囲の組は、プリミテ
ィブ範囲1aがX次元でサブセットであるプリミティブ
範囲ID(この場合にはなし)と共に、プリミティブ範
囲1a、bを含み、下位層から上位層へ順序付けられる
が、{1a、b:11}である。
【0060】このプリミティブ範囲の組は、プリミティ
ブ範囲1aがY次元でサブセットであるプリミティブ範
囲IDと共に、プリミティブ範囲1aを含み、下位層か
ら上位層へ順序付けられるが、{2:0、1a:1}で
ある。
【0061】サブ規則1aは、図6の他の規則またはサ
ブ規則に含まれないので、対応する規則プレフィックス
は、単にX次元から始めてこれらの組のプリミティブ範
囲IDを交番することによって、これらの組から直接に
導出することができる。すなわち、規則プレフィックス
X(11)Y(0)Y(1)⇒規則1である。
【0062】サブ規則3b(サブ規則1aに含まれる)
の規則プレフィックスは、次の形で構成することができ
る。X次元では、プリミティブ範囲3b、dが、サブ規
則3bの規則範囲に等しく、Y次元では、プリミティブ
範囲3a、bが、サブ規則3bの規則範囲に等しい。こ
のプリミティブ範囲の組は、プリミティブ範囲3b、d
がX次元でのサブセットであるそのプリミティブ範囲I
Dと共に、プリミティブ範囲3b、dを含み、下位層か
ら上位層へ順序付けられ、{1a、b:11、3b、
d:0}になる。
【0063】このプリミティブ範囲の組は、プリミティ
ブ範囲3a、bがY次元でのサブセットであるそのプリ
ミティブ範囲IDと共に、プリミティブ範囲3a、bを
含み、下位層から上位層へ順序付けられ、{2:0、1
a:1、3a、b:0}になる。
【0064】サブ規則3bは、サブ規則1aに含まれる
ので、両方の組の最初の要素は、サブ規則1aに関する
規則プレフィックスに現れるのと同じ順序で連結されな
ければならない。規則プレフィックスの残りの部分は、
両方の組の残りの要素のプリミティブ範囲IDを交互に
連結することによって得られ、規則プレフィックスX
(11)Y(0)Y(1)X(0)Y(0)⇒規則3に
なる。
【0065】これによって、サブ規則1aに関する規則
プレフィックスが(ある意味で)サブ規則3bに関する
規則プレフィックスのプレフィックスであることが示さ
れる。
【0066】他の規則およびサブ規則の規則プレフィッ
クスは、次の形で得られる。
【0067】
【表4】
【0068】規則2に関する規則プレフィックスが、
(ある意味で)サブ規則4bに関する規則プレフィック
スのプレフィックスであることに留意されたい。
【0069】最高優先順位の適用可能な規則を判定する
ための、並列基本範囲検索から得られた範囲トークンに
対する「変更された」最長一致プレフィックス検索(ル
ックアップ)を実行するための例のデータ構造(検索
木)を、図9に示す。各ノード内で、次のノードが、X
次元またはY次元のいずれかの、基本範囲検索から得ら
れた範囲トークンからとられる1ビットに基づいて選択
される。他の既知のLMP検索木(たとえば図5の検索
木)と比較した時のこの最長一致プレフィックス検索木
の相違点は、(a)単一の検索キーの代わりに、別々の
(部分)検索キーの対が入力として使用される、(b)
検索木構造の各項目に、出力表示(次に使用される項
目;規則ID)のほかに、2つの(部分)入力検索キー
のどちらから次の制御ビットをとるかの表示も含まれる
ことである。この動作のさらなる短い説明を、下で示
す。
【0070】たとえば、分類動作への入力が、図6の範
囲[X6、Y3]内に「配置」される場合、次の2つの
範囲トークンが、並列基本範囲検索の結果になるはずで
ある。 X次元:00 (X6) Y次元:011(Y3)
【0071】図9では、規則4へのデータ構造を介する
経路に沿って、規則2も見つかる。しかし、規則4はよ
り長い規則プレフィックスに対応するので、規則4が選
択され、これは、規則4が規則2より高い優先順位を有
するので正しい。
【0072】増分更新 2つの例で、それぞれ規則の追加または規則の除去につ
いて、どのように分類データ構造を増分更新することが
できるかを示す。増分更新によって、規則の追加または
除去の後の新しい状況を即座に反映するために、分類デ
ータ構造をすばやく更新することができる。しかし、通
常は、データ構造全体をゼロから作成する時に、より効
率的な構造が得られる。実用的なシステムでは、これ
は、固定された数の更新の後またはある期間の後に限っ
て構造全体を再生成し、これらの完全な再作成の間はデ
ータ構造を増分更新することによって適用することがで
きる。
【0073】規則の増分追加 基本範囲 図10に、図2に示された元の規則の組に規則5を追加
した例を示す。この新しい規則を実施するために、基本
範囲X3およびY1が、規則境界に合わせてX3'およ
びX3"とY1'およびY1"に分割される。
【0074】プリミティブ範囲階層 次のステップは、図3および図4に示されたプリミティ
ブ範囲階層の更新である。これを、図11および図12
に示す。規則5のY規則範囲(Y1"およびY2)は、
2つのプリミティブ範囲5aおよび5bに分割される
(すでに存在するプリミティブ範囲4aに部分的にオー
バーラップするので)。プリミティブ範囲5bは、プリ
ミティブ範囲4aと合併され、プリミティブ範囲「4
a、5b」として示されるようになり、プリミティブ範
囲5aは、層2に追加される。図12に、プリミティブ
範囲IDを示す。層1のプリミティブ範囲1aは、元々
は、層2の1つのサブ範囲、すなわちプリミティブ範囲
4aだけを有した。プリミティブ範囲4aには、'0'に
等しい1ビットのプリミティブ範囲IDが割り当てられ
た。現在、層2の第2のプリミティブ範囲すなわちプリ
ミティブ範囲5aが、プリミティブ範囲1aのサブ範囲
として追加されている。プリミティブ範囲5aには、プ
リミティブ範囲ID'1'を直接に割り当てることができ
る。というのは、すべての可能な1ビット・プリミティ
ブ範囲IDが、プリミティブ範囲1aの層2のすべての
サブ範囲に割り当てられてはいないからである。これが
あてはまらない場合には、サブ範囲のすべてのプリミテ
ィブ範囲IDを、1ビットだけ拡張し、再割り当てしな
ければならない。その場合には、このプリミティブ範囲
IDの変更によって影響を受ける基本範囲IDおよび規
則プレフィックスのすべてを、もう一度計算しなおし、
データ構造内で更新しなければならない。
【0075】したがって、増分更新を実行できるために
は、新しいプリミティブ範囲の追加に関して行わなけれ
ばならない変更の数を制限するために、プリミティブ範
囲階層全体を通じて「予備の」プリミティブ範囲IDを
保つことが重要である。ここで、新しい基本範囲Y1"
用の可変長範囲トークンを、最初の例で説明したのと同
一の形で導出することができる。基本範囲Y1'は、元
の基本範囲Y1の範囲トークンを引き継ぐ。
【0076】図3では、8つの可能な3ビット固定サイ
ズ範囲トークンのうちの7つだけが、X次元で基本範囲
に割り当てられており、範囲トークン'000'だけが未
割り当てであることがわかる。この「予備の」範囲トー
クンが、基本範囲X3'に割り当てられ、基本範囲X3"
には、元の基本範囲X3の範囲トークン'011'が割り
当てられる。
【0077】図11に、X次元およびY次元で基本範囲
に割り当てられた範囲トークンを示す(規則/範囲図の
上と右側)。
【0078】規則プレフィックス 規則5の追加と新しい基本範囲および範囲トークンに基
づいて、規則プレフィックスの組を、次の形で更新しな
ければならない。規則5は、X次元で基本範囲X1、X
2、およびX3'をカバーし、規則1より高い優先順位
を有する。したがって、下記の規則プレフィックスが追
加される。 00110⇒規則5 00111⇒規則5 01010⇒規則5 01011⇒規則5 00010⇒規則5 00011⇒規則5
【0079】基本範囲X3'およびX3"は、元の基本範
囲X3に関する規則プレフィックスを継承する。基本範
囲X3"は、元の基本範囲X3と同一の範囲トークン'0
11'を有するので、元の基本範囲X3に関する下記の
規則プレフィックスだけが、基本範囲X3'に関する追
加の必要を有する。 000000⇒規則1 0001⇒規則1
【0080】規則プレフィックス全体のリストは、次の
ようになる(太字は新しい規則プレフィックスである)
【0081】
【表5】
【0082】図13に、図5の検索木構造の対応する更
新された版を示す。実際には、図13には、検索木構造
の上側部分だけが示されている。というのは、下側部分
には、更新が必要なく、図5の木構造の下側部分と同一
になるからである。
【0083】規則の増分削除 既存の構造からの規則の削除は、比較的簡単である。そ
のような削除には、最長一致プレフィックス検索木構造
からその規則への参照のすべてを除去することだけが含
まれる。たとえば、規則2の削除は、図5(例1)に示
された木について、この規則への4つの参照を除去する
ことを必要とし、図9(例2)に示された木からこの規
則の1つの参照を除去することだけを必要とする。
【0084】検索木の動作 図5、図9、および図13に概略的に示した検索木の動
作の短い説明を、これから行う。これらの検索木内の円
のそれぞれは、たとえばメモリ内の項目のグループなど
とすることのできるノードである。各ノードには、下記
の項目のグループを含めることができる。 a)XまたはY(評価される入力キー) b)ビット番号(評価されるキー・ビット) c)次のノードへの第1ポインタ(ビットが0の場合) d)次のノードへの第2ポインタ(ビットが1の場合) e)規則ID
【0085】XまたはYの選択(フィールドa)は、並
列部分検索キーが使用される場合(図9)に限って必要
になる。これは、単一入力検索キーを使用する場合(図
3および図13)には不要である。ビット番号(フィー
ルドb)は、評価されるビットがプロセッサによってカ
ウントされる場合には不要である。規則IDは、実際に
必要なノードだけに格納される(図3および図9を比較
されたい)。
【0086】この探索木での最長一致プレフィックス・
ルックアップ処理には、次のステップを含めることがで
きる。 1)複数の部分検索キー(または単一の検索キー)を格
納する。 2)ビット・カウンタに0をセットする(ビット・カウ
ンタが提供される場合)。 3)検索木の入口ノードに進む。 4)項目(a)で示される入力キーからまたは単一の検
索キーから、項目(b)のビット番号(またはビット・
カウンタの内容)によって示されるビットを得る。 5)このビットの2進値を検出し、この値に応じて、項
目(c)または(d)から第1ポインタまたは第2ポイ
ンタのいずれかを抽出する。 6)項目(e)から規則IDを抽出し(存在する場
合)、バッファリングする。 7)現在の入力キーの最終ビットが評価されたかどうか
を検出する; そうである場合:バッファリングされた規則IDを出力
として供給するか、(規則IDがバッファリングされな
かった場合に)NIL出力を供給する。 そうでない場合:(使用可能な場合にはめいめいのビッ
ト・カウントを1つ増分し)ステップ(5)で見つかっ
たポインタを使用して検索木の次のノードに進み、ステ
ップ(4)ないし(7)を繰り返す。
【0087】(a)木の葉ノード(末端ノード)に達し
た場合には、検索処理が終了し、最後にバッファリング
された規則IDが、出力として供給され、(b)次のス
テップの場合、すでに使い果たした入力検索キーから1
ビットを評価しなければならない。
【0088】用語一覧 規則=パケット(または他の項目)に含まれる特定の判
断基準の値に応答する分類に依存してパケットを処理す
るための複数の異なる命令の1つ(規則は、通常は互い
の中での優先順位を割り当てられる) 規則図=規則のそれぞれが有効である判断基準値の範囲
を示す2(またはn)次元の図 基本範囲=規則図の範囲のそれぞれ(=Xn/Yn)
(すべての規則長方形境界を規則図の軸に射影すること
によって生成される) 規則範囲=ある規則が有効である複数の基本範囲(ある
規則長方形の境界を規則図の軸に射影することによって
生成される) 規則順序=優先順位またはサイズなどによる規則のシー
ケンス 規則ID=分類動作の結果(最終最長一致プレフィック
ス・ルックアップ動作の出力) 範囲トークン=基本範囲を表すビット・ベクトル 判断基準=分類のために評価される、パケット(項目)
内のフィールド(たとえばソース・アドレスまたは宛先
アドレス) 判断基準値=評価されるパケット(項目)に含まれる判
断基準の実際の値。または、入力値または入力パラメー
タ(分類用) 検索キー=規則図の1特定の点すなわち入力値の1特定
の組に関する範囲トークンの組合せ(関連する規則ID
を見つけるために最長一致プレフィックス・ルックアッ
プの入力として使用される) 規則プレフィックス=最長一致プレフィックス検索木で
実施され、出力への経路すなわち規則IDへの経路を表
すプレフィックス プリミティブ範囲=範囲トークンを生成するのに使用さ
れる複数の範囲の1つ(1つまたは複数の基本範囲を含
むことができる)(プリミティブ範囲は、階層層に編成
される) プリミティブ範囲識別=1層内でプリミティブ範囲を識
別するための単一のビットまたはビット・グループ
【0089】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0090】(1)処理するデータ項目内に存在する少
なくとも2つの異なる判断基準の値の組合せに応答し
て、適用可能な処理規則を検出する方法であって、前記
判断基準値のそれぞれについて、範囲トークンが、それ
ぞれがめいめいの判断基準の値の1つの区間を表す範囲
トークンの組から選択され、少なくとも1つの判断基準
の範囲トークンの前記組が、非均一長を有することを特
徴とし、1つのデータ項目に関する前記選択された範囲
トークンの組合せが、最長一致プレフィックス検索動作
によって1つの規則IDを見つけるために、規則IDを
含む検索構造内のルックアップ動作の入力として使用さ
れることを特徴とする、方法。 (2)範囲トークンの組合せによって表現される判断基
準値区間の特定の交差について複数の規則が有効である
時に、めいめいのルックアップ動作が、所与の順序で最
高のランクまたは優先順位を有する単一の規則の識別の
出力をもたらすように設計された検索木を、検索構造と
して使用する、上記(1)に記載の方法。 (3)非均一長の範囲トークンが、1つだけの前記判断
基準の範囲トークンの組で供給され、前記最長一致プレ
フィックス検索動作の入力として使用される範囲トーク
ンの前記組合せが、所与のデータ項目の前記判断基準値
について判定された前記範囲トークンの連結である、上
記(1)に記載の方法。 (4)非均一長の範囲トークンが、少なくとも2つの前
記判断基準の範囲トークンの前記組で供給され、1特定
のデータ項目の前記判断基準値の前記判定された範囲ト
ークンが、前記検索構造への並列入力として使用され、
前記検索構造内の項目が、前記最長一致プレフィックス
検索動作のために次の桁をどの入力範囲トークンからと
るかの表示を含む、上記(1)に記載の方法。 (5)前記検索構造が、規則プレフィックスに基づく検
索木であり、各規則プレフィックスが、1つの規則ID
を含む前記検索木内のノードへの経路を表し、それぞれ
が判断基準の1つまたは複数の基本値範囲に等しいオー
バーラップしないプリミティブ範囲の階層が、最長一致
プレフィックス検索動作を使用して適当な規則IDを見
つけることができるようにするために、範囲トークンお
よび前記規則プレフィックスの生成に使用される、上記
(1)に記載の方法。 (6)上記(1)に記載の方法を実行する手段であっ
て、範囲トークンの組合せによって表現される判断基準
値区間の特定の交差について複数の規則が有効である時
に、めいめいのルックアップ動作が、所与の順序で最高
のランクまたは優先順位を有する単一の規則の識別の出
力をもたらすように設計された検索木を、検索構造とし
て含む手段。 (7)上記(1)に記載の方法を実行する手段であっ
て、ノードを含む検索木を含み、前記木の構造が、規則
プレフィックスに基づき、各規則プレフィックスが、規
則IDを含む前記検索木内のノードへの経路を表し、各
規則プレフィックスが、規則IDを見つけるための前記
最長一致プレフィックス検索動作への入力として発生す
る可能性がある、選択された範囲トークンの少なくとも
1つの組合せに対応するか、そのプレフィックスである
かのいずれかである、手段。 (8)上記(1)に記載の方法を実行する検索構造であ
って、複数のノードを含む木構造を含み、前記ノードの
選択された1つが規則IDを含み、前記木構造を介する
選択されたノードへの各経路が、規則プレフィックスを
表し、その結果、1つの規則IDを、最長一致プレフィ
ックス・ルックアップ動作のための範囲トークンの特定
の入力組合せを使用して判定することができる、検索構
造。 (9)前記検索構造内の前記経路を判定するための前記
規則プレフィックスが、共通のプレフィックスを有し同
一の規則に関連する範囲トークンの異なる組合せに応答
して、格納された規則IDへの同一の経路をたどること
ができるように選択される、上記(8)に記載の検索構
造。 (10)複数並列部分検索キーとして、前記入力判断基
準値を表す複数の範囲トークンを入力として使用するた
めのものであり、前記ノードが前記ルックアップ手順で
の現行ステップを制御するためにめいめいのノード内の
前記複数の検索キーの1つを選択するための情報を含
む、上記(8)に記載の検索構造。 (11)複数の所与の規則の組からの1つの選択された
規則に従って処理されるデータ項目から得られた複数の
判断基準の入力値の組合せに応答して適用可能な規則を
判定する検索構造であって、前記検索構造が、ノードを
含み、所定のノード内に、それぞれが前記複数の所与の
規則の1つに関する格納された規則IDを含み、前記検
索構造が、前記所定のノードへの複数の選択可能な経路
を提供し、前記経路のそれぞれが、複数の所定の規則プ
レフィックスの1つを表し、各規則プレフィックスが、
範囲トークンの少なくとも1つの可能な組合せに対応す
るかそのプレフィックスであり、前記範囲トークンのそ
れぞれが、前記判断基準の1つの特定の値の範囲を表
し、その結果、前記検索構造に入力として供給される、
判断基準入力値の1つの組合せを表す範囲トークンの組
合せのそれぞれについて、1特定の規則IDが、最長一
致プレフィックス・ルックアップ動作で前記検索構造内
で選択されるようになる検索構造。 (12)前記検索構造内の前記経路を判定する前記規則
プレフィックスが、共通のプレフィックスを有し同一の
規則に関連する範囲トークンの異なる組合せに応答し
て、格納された規則IDへの同一の経路をたどることが
できるように選択される、上記(11)に記載の検索構
造。 (13)部分検索入力キーとして、両方が非均一長であ
る2つの並列範囲トークンの組合せを使用するためのも
のであり、ノードが、各めいめいのノード内で、前記最
長一致プレフィックス・ルックアップ手順の現行経路選
択ステップを制御するために前記2つの部分検索入力キ
ーの1つを選択するための情報を含む、上記(11)に
記載の検索構造。 (14)複数の規則のどれがデータ・パケットに適用可
能であるかを判定するためにデータ・パケットを分類す
る方法であって、前記規則のそれぞれが、n次元のn個
の変数の値の基本範囲([Xi];[Yj])の交差
([Xi]、[Yj])の異なる組について有効であり、
各パケットが、前記n個の変数のそれぞれの値を含み、 ・前記基本範囲([Xi];[Yj])に範囲トークンと
してビット・ベクトルを割り当てるステップであって、
少なくとも1つの次元の前記範囲トークンが、非均一長
を有し、前記範囲トークンが、基本範囲の交差
([Xi]、[Yj])のグループに対する規則の分布を
反映して、前記範囲トークンのいくつかが共通のプレフ
ィックスを有するように選択されるステップと、 ・範囲トークンの前記プレフィックス指向分布を反映し
て編成される検索構造内に規則IDを格納するステップ
と、 ・分類されるパケットのそれぞれについて、それが含む
変数の値を表す範囲トークンの組合せを形成するステッ
プと、 ・入力として前記形成された範囲トークンの組合せを使
用して、前記検索構造内での最長一致プレフィックス検
索動作によって前記適用可能な規則の前記IDを見つけ
るステップとを含む方法。 (15)データ・パケットのそれぞれに含まれる異なる
判断基準の判断基準値に応答して、前記データ・パケッ
トを規則を表すカテゴリに分類し、各判断基準の1つの
値を含む判断基準値の各特定の組合せが、少なくとも1
つの前記カテゴリに関連するシステムにおいて、まず、
判断基準のそれぞれについてめいめいの判断基準値が突
きとめられる値範囲を表す可変長ルックアップ検索キー
組合せを判定することと、その後、最長一致プレフィッ
クス選択動作でこのルックアップ検索キー組合せを使用
して、所定のノード内にカテゴリ情報を含む検索木デー
タ構造内で適用可能なカテゴリを検出することとによっ
て、データ・パケットの適用可能なカテゴリを検出する
方法。 (16)上記(15)の方法を実行する検索木データ構
造であって、それぞれがカテゴリIDを含む選択された
ノードにつながる複数の経路の1つに沿って検索処理を
指示するための情報を含む複数のノードであって、各前
記経路が、規則プレフィックスを表す、複数のノード
と、最長一致プレフィックス検索を可能にするための、
すべての可能なルックアップ検索キー組合せの組に適合
された規則プレフィックスの組とを含む、検索木データ
構造。 (17)データ項目のそれぞれで表される複数の判断基
準の値に応答して、情報処理システム内で前記データ項
目をカテゴリに分類する方法であって、各カテゴリが、
前記判断基準の値または値の範囲の少なくとも1つの特
定の組合せに関連し、 ・各判断基準について、分類されるデータ項目内で表さ
れる値を検出し、検出した値を含む所定の基本値区間の
1つを判定するステップと、 ・判定された基本値区間のそれぞれについて、その基本
値区間を表す関連範囲トークンであって、少なくとも1
つの判断基準の範囲トークンが、非均一長を有する、関
連範囲トークンを得るステップと、 ・1特定のカテゴリIDが選択されるように、カテゴリ
IDを含むデータ構造内の最長一致プレフィックス・ル
ックアップ動作の入力として、所与のデータ項目につい
て得られたすべての範囲トークンの組合せを使用するス
テップとを含む方法。 (18)プリミティブ範囲の階層システムが、非均一長
の前記範囲トークンの生成に使用され、各プリミティブ
範囲が、最長一致プレフィックス・ルックアップ手順に
適した範囲トークンのプレフィックス指向の組が得られ
るように、前記カテゴリのそれぞれの前記基本値区間と
の関連の分布に応じて、1つまたは複数の基本値区間と
等しい、上記(17)に記載の方法。
【図面の簡単な説明】
【図1】パケットを分類する本発明の手順の全般的な概
略図である。
【図2】パケット分類の規則と、それらが有効である判
断基準値(入力値)の範囲との間の関係を示す図であ
る。
【図3】本発明の第1の実施形態の、範囲トークンを生
成するためのプリミティブ範囲および基本範囲に割り当
てられる範囲トークンと共に示される規則/範囲図であ
る。
【図4】図3のプリミティブ範囲の詳細を示す図であ
る。
【図5】所与の入力に関する適用可能な規則を判定する
ための、最長一致プレフィックス・ルックアップ動作の
ための第1の実施形態の結果の検索木を示す図である。
【図6】本発明の第2の実施形態の、範囲トークンを生
成するためのプリミティブ範囲および基本範囲に割り当
てられる範囲トークンと共に示される規則/範囲図であ
る。
【図7】図6のプリミティブ範囲の詳細を示す図であ
る。
【図8】図6のプリミティブ範囲の詳細を示す図であ
る。
【図9】所与の入力に関する適用可能な規則を判定する
ための、最長一致プレフィックス・ルックアップ動作の
ための第2の実施形態の結果の検索木を示す図である。
【図10】パケット分類のための検索データベースの更
新を説明するために、追加の規則が挿入された、図2の
規則/範囲図に類似した変更された規則/範囲図であ
る。
【図11】更新動作を説明するための、図10の変更さ
れた規則分布に関する、範囲トークンを生成するための
プリミティブ範囲と共に示される規則/範囲図である。
【図12】図11のプリミティブ範囲の詳細を示す図で
ある。
【図13】図10および図11の変更された規則分布に
関する、第1の実施形態の図5の検索木に基づく、結果
の更新された検索木(上側部分のみ)を示す図である。
フロントページの続き (72)発明者 ヤン・ファン・ルンテレン スイス アドリスヴィル シー・エイチ −8134 ビュルグリシュトラーセ 12 (56)参考文献 V.Srinivasan et a l,Fast and Scalabl e Layer Four Switc hing,Proceedings o f ACM SIGCOMM’98,1998 年 9月 4日 Milind M.Buddhiko t et al,SPACE DECO MPOSITION TECHNIQU ES FOR FAST SAYER− 4 SWITCHING,IFIP s ixth International Workshop on Proto cols for High Spee d Networks(pfHSN’ 99),1999年 8月 T.V.Lakshman et a l,High−Speed Polic y−based Packet For warding Using Effi cient Multi−dimens ional Range Matchi ng,Proceedings of ACM SIGCOMM’98,1998年 9月 4日 (58)調査した分野(Int.Cl.7,DB名) H04L 12/56 G06F 17/30

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】受信されたデータ・パケットに、複数の規
    則のどれが適用されるかを判定する方法であって、 (1)データ・パケットに含まれる宛先アドレス(X)
    および起点アドレス(Y)が、事前に選択された基本範
    囲のどこに含まれるかを判定するステップ、ここで該基
    本範囲は、所与の規則が適用される前記宛先アドレスお
    よび起点アドレスの範囲(規則範囲)を2次元(X、Y)
    長方形として表し、より高い優先順位を有する規則の規
    則範囲を低い優先順位を有する規則範囲の上に描き、次
    いで、総ての規則範囲の境界をX軸及びY軸に夫々射影す
    ることによって得られる、 (2)判定されたX基本範囲及びY基本範囲に事前に割り
    当てられた範囲トークンを見つけるステップ、 (3)見つけられたX範囲トークンとY範囲トークンの所
    定の組合わせである検索キーを入力して、事前に設計さ
    れた検索構造において最長一致検索を行い、受信された
    データ・パケットに適用される規則のIDを検索するステ
    ップ、及び (4)検索された規則IDを出力するステップ、 を含む方法。
  2. 【請求項2】前記範囲トークンが、固定ビット数で表さ
    れる2進数を用いて番号付けられた、固定長トークンで
    ある、ことを特徴とする請求項1記載の方法。
  3. 【請求項3】X範囲及びY範囲のいずれか一方の範囲トー
    クンが固定長トークンであり、他の範囲トークンが事前
    に構成されたプリミティブ範囲階層に基いて構成された
    可変長トークンであることを特徴とする請求項1記載の
    方法、 ここでプリミティブ範囲階層は、前記規則範囲又は前記
    規則範囲を分割して得られる1つ又は複数の基本範囲か
    らなる範囲であるところのプリミティブ範囲を階層構造
    に構成したものであり、最下位層にあるプリミティブ範
    囲は互いに異なる規則範囲に含まれ、及び、上位層のプ
    リミティブ範囲は下位層のプリミティブ範囲のサブセッ
    トである、という特性を有し、 各プリミティブ範囲には、各層ごと別々に及び各層内で
    は下位レベルでプリミティブ範囲の1つに関連するプリ
    ミティブ範囲の組ごとに別々に、単一のビットまたはビ
    ット・グループで表されるところの、互いに異なる識別
    が割り当てられ、 各割り当てられた識別を、最下位層から最上位層の順で
    連結して範囲トークンが構成される
  4. 【請求項4】X範囲及びY範囲の双方の範囲トークンが
    前に構成されたプリミティブ範囲階層に基いて構成され
    可変長トークンであることを特徴とする請求項1記載
    の方法、 ここでプリミティブ範囲階層は、前記規則範囲又は前記
    規則範囲を分割して得られる1つ又は複数の基本範囲か
    らなる範囲であるところのプリミティブ範囲を階層構造
    に構成したものであり、最下位層にあるプリミティブ範
    囲は互いに異なる規則範囲に含まれ、及び、上位層のプ
    リミティブ範囲は下位層のプリミティブ範囲のサブセッ
    トである、という特性を有し、 各プリミティブ範囲には、各層ごと別々に及び各層内で
    は下位レベルでプリミティブ範囲の1つに関連するプリ
    ミティブ範囲の組ごとに別々に、単一のビットまたはビ
    ット・グループで表されるところの、互いに異なる識別
    が割り当てられ、 各割り当てられた識別を、最下位層から最上位層の順で
    連結して範囲トークンが構成される
  5. 【請求項5】前記検索キーが、X基本範囲の範囲トーク
    ンとY基本範囲の範囲トークンが連結されたものである
    ことを特徴とする請求項1または記載の方法。
  6. 【請求項6】前記検索キーが、X範囲の範囲トークンとY
    範囲の範囲トークンが交番連結されたものであることを
    特徴とする請求項1または記載の方法。
  7. 【請求項7】前記検索構造が、ノードを含み、所定のノ
    ード内に、それぞれが前記複数の所与の規則の1つに関
    する格納された規則IDを含み、 前記検索構造が、前記所定のノードへの複数の選択可能
    な経路を提供し、前記経路のそれぞれが、複数の所定の
    規則プレフィックスの1つを表し、 各規則プレフィックスが、範囲トークンの少なくとも1
    つの可能な組合せに対応するか、そのプレフィックスで
    あり、 その結果、前記検索構造に入力として供給される、判断
    基準入力値の1つの組合せを表す範囲トークンの組合せ
    のそれぞれについて、1の特定の規則IDが、最長一致
    プレフィックス・ルックアップ動作で前記検索構造内で
    選択されるようになる、検索構造であることを特徴とす
    請求項1〜3及び5のいずれか1項記載の方法
  8. 【請求項8】前記検索構造内の前記経路を判定する前記
    規則プレフィックスが、共通のプレフィックスを有し同
    一の規則に関連する範囲トークンの異なる組合せに応答
    して、格納された規則IDへの同一の経路をたどること
    ができるように選択される、請求項7に記載の方法。
  9. 【請求項9】前記検索構造が、ノードを含み、所定のノ
    ード内に、それぞれが前記複数の所与の規則の1つに関
    する格納された規則IDを含み、 前記検索構造が、前記所定のノードへの複数の選択可能
    な経路を提供し、前記経路のそれぞれが、複数の所定の
    規則プレフィックスの1つを表し、 各規則プレフィックスが、範囲トークンの少なくとも1
    つの可能な組合せに対応するか、そのプレフィックスで
    あり、 その結果、前記検索構造に入力として供給される、判断
    基準入力値の1つの組合せを表す範囲トークンの組合せ
    のそれぞれについて、1の特定の規則IDが、最長一致
    プレフィックス・ルックアップ動作で前記検索構造内で
    選択されるようになる、検索構造であることを特徴とす
    る請求項4または6記載の方法
  10. 【請求項10】前記検索構造内の前記経路を判定する前
    記規則プレフィックスが、共通のプレフィックスを有し
    同一の規則に関連する範囲トークンの異なる組合せに応
    答して、格納された規則IDへの同一の経路をたどるこ
    とができるように選択される、請求項9に記載の方法。
  11. 【請求項11】前記検索キーが、X範囲の範囲トークン
    及びY範囲の範囲トークンが交番連結されたものであ
    り、各ノードが、X範囲の範囲トークンまたはY範囲の範
    囲トークンのいずれかを選択するための情報を含む、請
    求項9または10に記載の方法。
JP2001015820A 2000-01-27 2001-01-24 データ・パケットを分類する方法および手段 Expired - Fee Related JP3485262B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00810073 2000-01-27
EP00810073.7 2000-01-27

Publications (2)

Publication Number Publication Date
JP2001274837A JP2001274837A (ja) 2001-10-05
JP3485262B2 true JP3485262B2 (ja) 2004-01-13

Family

ID=8174535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001015820A Expired - Fee Related JP3485262B2 (ja) 2000-01-27 2001-01-24 データ・パケットを分類する方法および手段

Country Status (6)

Country Link
US (1) US20020009076A1 (ja)
JP (1) JP3485262B2 (ja)
KR (1) KR100441317B1 (ja)
AT (1) ATE319249T1 (ja)
CA (1) CA2330222A1 (ja)
DE (1) DE60026229T2 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
GB2377519B (en) * 2001-02-14 2005-06-15 Clearspeed Technology Ltd Lookup engine
US6691124B2 (en) * 2001-04-04 2004-02-10 Cypress Semiconductor Corp. Compact data structures for pipelined message forwarding lookups
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US6735179B2 (en) * 2002-02-14 2004-05-11 Bivio Networks, Inc. Systems and methods for packet filtering
KR100467746B1 (ko) * 2002-03-26 2005-01-24 한정보통신 주식회사 주소 분할에 의한 다중필드 분류시스템
US7474657B2 (en) 2002-04-30 2009-01-06 University Of Florida Research Foundation, Inc. Partitioning methods for dynamic router tables
JP2003324464A (ja) * 2002-04-30 2003-11-14 Fujitsu Ltd データ検索装置及びデータ検索方法
US7523218B1 (en) 2002-04-30 2009-04-21 University Of Florida Research Foundation, Inc. O(log n) dynamic router tables for prefixes and ranges
US7336660B2 (en) * 2002-05-31 2008-02-26 Cisco Technology, Inc. Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics
US20040018237A1 (en) * 2002-05-31 2004-01-29 Perricone Nicholas V. Topical drug delivery using phosphatidylcholine
US7203963B1 (en) * 2002-06-13 2007-04-10 Mcafee, Inc. Method and apparatus for adaptively classifying network traffic
US7444318B2 (en) * 2002-07-03 2008-10-28 University Of Florida Research Foundation, Inc. Prefix partitioning methods for dynamic router tables
US7508825B2 (en) * 2002-08-05 2009-03-24 Intel Corporation Data packet classification
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
GB2395395B (en) * 2002-11-15 2004-11-10 3Com Corp Classification search scheme and rules engine for network unit
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
US7434043B2 (en) 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US7191341B2 (en) * 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US7568110B2 (en) * 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US7546234B1 (en) 2003-01-08 2009-06-09 Xambala, Inc. Semantic processing engine
US7466687B2 (en) * 2003-04-28 2008-12-16 International Business Machines Corporation Packet classification using modified range labels
US7415012B1 (en) * 2003-05-28 2008-08-19 Verizon Corporate Services Group Inc. Systems and methods for high speed packet classification
US7251651B2 (en) * 2003-05-28 2007-07-31 International Business Machines Corporation Packet classification
US7382777B2 (en) * 2003-06-17 2008-06-03 International Business Machines Corporation Method for implementing actions based on packet classification and lookup results
US7840696B2 (en) 2003-07-25 2010-11-23 Broadcom Corporation Apparatus and method for classifier identification
US7441022B1 (en) * 2004-03-12 2008-10-21 Sun Microsystems, Inc. Resolving conflicts between network service rule sets for network data traffic in a system where rule patterns with longer prefixes match before rule patterns with shorter prefixes
US7478426B2 (en) * 2004-07-20 2009-01-13 International Busines Machines Corporation Multi-field classification dynamic rule updates
US7340570B2 (en) * 2004-08-18 2008-03-04 Intel Corporation Engine for comparing a key with rules having high and low values defining a range
DE602004012291T2 (de) * 2004-11-30 2009-03-19 Alcatel Lucent Ethernet Digital Subscriber Line Access Multiplexer DSLAM mit Durchflusskontrolle
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
US7710988B1 (en) 2005-03-11 2010-05-04 Xambala Corporation Method and system for non-deterministic finite automaton filtering
US8665868B2 (en) * 2005-08-19 2014-03-04 Cpacket Networks, Inc. Apparatus and method for enhancing forwarding and classification of network traffic with prioritized matching and categorization
US20070121632A1 (en) * 2005-11-28 2007-05-31 Arabella Software, Ltd. Method and system for routing an IP packet
WO2007150034A1 (en) * 2006-06-22 2007-12-27 Wisconsin Alumni Research Foundation Method of developing improved packet classification system
JP4815284B2 (ja) * 2006-07-06 2011-11-16 アラクサラネットワークス株式会社 パケット転送装置
US9356818B2 (en) * 2013-10-30 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Method and computing device for packet classification
US11308114B1 (en) * 2013-12-23 2022-04-19 Cazena, Inc. Platform for provisioning a data analytics environment
US9620213B2 (en) 2013-12-27 2017-04-11 Cavium, Inc. Method and system for reconfigurable parallel lookups using multiple shared memories
US9548945B2 (en) 2013-12-27 2017-01-17 Cavium, Inc. Matrix of on-chip routers interconnecting a plurality of processing engines and a method of routing using thereof
US9880844B2 (en) 2013-12-30 2018-01-30 Cavium, Inc. Method and apparatus for parallel and conditional data manipulation in a software-defined network processing engine
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9379963B2 (en) 2013-12-30 2016-06-28 Cavium, Inc. Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US9635146B2 (en) 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US9961167B2 (en) 2014-06-19 2018-05-01 Cavium, Inc. Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof
US10050833B2 (en) 2014-06-19 2018-08-14 Cavium, Inc. Method of reducing latency in a flexible parser and an apparatus thereof
US9516145B2 (en) * 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
US9628385B2 (en) * 2014-06-19 2017-04-18 Cavium, Inc. Method of identifying internal destinations of networks packets and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US9742694B2 (en) 2014-06-19 2017-08-22 Cavium, Inc. Method of dynamically renumbering ports and an apparatus thereof
WO2016125501A1 (ja) * 2015-02-06 2016-08-11 日本電気株式会社 データ処理装置、情報エントリ管理方法及び情報エントリ管理プログラムが記録された記録媒体
US10003676B2 (en) * 2015-02-20 2018-06-19 Cavium, Inc. Method and apparatus for generating parallel lookup requests utilizing a super key
CN111752960B (zh) * 2020-06-28 2023-07-28 北京百度网讯科技有限公司 数据处理方法和装置
US12052287B2 (en) * 2022-03-01 2024-07-30 Fortinet, Inc. Systems and methods for security policy organization using a dual bitmap

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5652879A (en) * 1993-05-12 1997-07-29 Apple Computer, Inc. Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Milind M.Buddhikot et al,SPACE DECOMPOSITION TECHNIQUES FOR FAST SAYER−4 SWITCHING,IFIP sixth International Workshop on Protocols for High Speed Networks(pfHSN’99),1999年 8月
T.V.Lakshman et al,High−Speed Policy−based Packet Forwarding Using Efficient Multi−dimensional Range Matching,Proceedings of ACM SIGCOMM’98,1998年 9月 4日
V.Srinivasan et al,Fast and Scalable Layer Four Switching,Proceedings of ACM SIGCOMM’98,1998年 9月 4日

Also Published As

Publication number Publication date
JP2001274837A (ja) 2001-10-05
CA2330222A1 (en) 2001-07-27
ATE319249T1 (de) 2006-03-15
KR20010077983A (ko) 2001-08-20
KR100441317B1 (ko) 2004-07-23
US20020009076A1 (en) 2002-01-24
DE60026229D1 (de) 2006-04-27
DE60026229T2 (de) 2006-12-14

Similar Documents

Publication Publication Date Title
JP3485262B2 (ja) データ・パケットを分類する方法および手段
JP3771271B2 (ja) コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法
JP4452183B2 (ja) プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置)
US7350020B2 (en) Generating and merging lookup results to apply multiple features
US6341130B1 (en) Packet classification method and apparatus employing two fields
US7978709B1 (en) Packet matching method and system
US6434144B1 (en) Multi-level table lookup
EP1623347B1 (en) Comparison tree data structures and lookup operations
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US7689485B2 (en) Generating accounting data based on access control list entries
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
US20020191605A1 (en) Packet classification
US20040230583A1 (en) Comparison tree data structures of particular use in performing lookup operations
US7082492B2 (en) Associative memory entries with force no-hit and priority indications of particular use in implementing policy maps in communication devices
EP1808987A1 (en) Longest prefix matching using tree bitmap data structures
CN110858823B (zh) 一种数据包的分类方法、装置及计算机可读存储介质
CN107967219A (zh) 一种基于tcam的大规模字符串高速查找方法
CN107800631A (zh) 使用ram中的散列表的tcam规则的有效匹配
US20050083937A1 (en) IP address lookup method using pipeline binary tree, hardware architecture, and recording medium
Meiners et al. Hardware based packet classification for high speed internet routers
CN112131356B (zh) 一种基于tcam的报文关键字匹配方法和装置
WO2003027854A1 (en) Technique for updating a content addressable memory
US9900409B2 (en) Classification engine for data packet classification
EP1128608B1 (en) Method and means for classifying data packets
US20040177150A1 (en) Method for filter selection and array matching

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees