JP2003244208A - 最長一致検索方法 - Google Patents

最長一致検索方法

Info

Publication number
JP2003244208A
JP2003244208A JP2002044535A JP2002044535A JP2003244208A JP 2003244208 A JP2003244208 A JP 2003244208A JP 2002044535 A JP2002044535 A JP 2002044535A JP 2002044535 A JP2002044535 A JP 2002044535A JP 2003244208 A JP2003244208 A JP 2003244208A
Authority
JP
Japan
Prior art keywords
search
bit
data
address
longest match
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.)
Pending
Application number
JP2002044535A
Other languages
English (en)
Inventor
Hiroshi Yoshizawa
宏 吉澤
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.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
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 Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2002044535A priority Critical patent/JP2003244208A/ja
Publication of JP2003244208A publication Critical patent/JP2003244208A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 連想メモリの検索のスループットが高められ
た最長一致検索方法を提供する。 【解決手段】 有効ビット数が可変なIPアドレスとと
もに、そのIPアドレスの各ビットに対応して各ビット
が有効なビットであるか無効なビットであるかを識別す
るフラグ列を記憶しておき、検索にあたっては、記憶さ
れているIPアドレスの中から最長に一致するIPアド
レスを検索するための検索キーデータと有効ビット領域
を表わす検索マスクキーグローバルマスクのパターンと
を用いて二分検索法により検索を行なう。

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、連想メモリを用い
て最長一致検索を行なう方法に関する。 【0002】 【従来の技術】現在インターネットプロトコルでは、発
信元や受信先を特定するアドレスの枯渇問題の対策か
ら、例えば32ビットのIPアドレスを構成するネット
ワーク部(ネットワークアドレス)とホスト部(ホスト
アドレス)との境目を自由に設定できる手法が採られて
きている。このような手法が採用されたインターネット
プロトコルのIPアドレスは、最長一致検索と呼ばれる
方法でそのアドレスの検索が行なわれる。以下、その最
長一致検索を行なう方法について述べる。 【0003】インターネットプロトコルのIPアドレス
は、クラスレスサーチされる。クラスレスサーチとは、
上述した、IPアドレスの枯渇間題に対処するために採
られた手法であり、このクラスレスサーチでは、IPア
ドレス内のネットワークアドレスとホストアドレスとの
境目が自由に設定される。ここで、IPアドレスのうち
のネットワークアドレスの長さはプレフィックス長と呼
ばれる。ルータ内の経路テーブルは、登録エントリ毎に
マスク長を持っていて、キーデータとの比較は、登録エ
ントリ毎のマスクを含めた検索により行なわれる。 【0004】図9は、最長一致検索の説明図である。 【0005】図9(A)は、ルータが伝達を仲介しよう
としているネットワークパケット中のデスティネーショ
ンIPアドレスからなるキーデータであり、ここでは、
186.241.0.6であるとする。 【0006】ルータ内には、図9(B)に示す2つのエ
ントリ、すなわちエントリ1:186.240.0.0
/12、エントリ2:186.192.0.0/10が
登録されているものとする。ここで、/12,/10は
各エントリのプレフィックス長を示すものであり、例え
ば/12は、上位12ビットがネットワークアドレスで
あることを示している。 【0007】ここで、図9(A)に示すキーデータが検
索対象として入力された(すなわち、図9(A)に示す
デスティネーションIPアドレスを持ったネットワーク
パケットが入力された)とすると、両エントリ共に、各
エントリがもつプレフィックス長までキーデータと一致
するが、この場合、上位ビット側から最も長いビット長
部分が一致しているエントリ1のネットワークに対して
経路が開かれることになる。このように、上位ビット側
から最も長いビット長部分までキーデータと一致してい
るエントリを検索することを最長一致検索と称する。 【0008】上記の最長一致検索を、連想メモリを使用
して実現することを考える。ここで、連想メモリとは、
複数のメモリ領域を備え、それら複数のメモリ領域それ
ぞれに所定のビット長のデータを格納しておき、キーデ
ータが入力され、マスクされたビットを除く残りのビッ
トについて、入力されたキーデータと一致するデータが
格納されたメモリ領域を検索する機能を有する一種のメ
モリである。連想メモリ自体は、既に広く知られた技術
であり、ここでは連想メモリ自体についての詳細説明は
省略する。 【0009】上述した最長一致検索を、3値の連想メモ
リを使用して実現することを考えると以下のようにな
る。3値の連想メモリとは、1ビットごとに、そのビッ
トを検索の対象としないようにマスクすることができる
仕組みを持った連想メモリである。つまり、“0”、
“1”の内部状態以外に、“Don’t care”状
態を定義し、対象となるビットに対して“Don’t
care”状態にマスクすることができるものである。
一方、2値の連想メモリとは、上記“Don’tcar
e”状態を定義することなく、“0”、“1”の定義の
みで検索を行なうものである。2値の連想メモリを用い
た最長一致検索に関しては、特開平11−284658
号公報に提案されている。ここでは、3値の連想メモリ
を用いた最長一致検索に関して、図10を参照して説明
する。 【0010】図10は、3値の連想メモリを用いた最長
一致検索方法の説明図である。 【0011】例えば、1エントリが64ビットである連
想メモリについて最長一致検索を行なう場合、この図1
0に示すように、上位32ビットにIPアドレスを登録
する。ここで、プレフィックス(ネットワークアドレ
ス)に当たる部分に関しては、マスクを行なわないよう
に設定する。残りの、ホストアドレスに当たるフィール
ドには、マスクの設定を行なう。さらに、下位32ビッ
トにマスク長を登録する。このマスク長を設定したフィ
ールドは、すべてマスクしない状態で登録を行ない、す
べてのビットが、検索対象となる。以下に、この連想メ
モリを用いた最長一致検索方法における検索シーケンス
について説明する。 【0012】連想メモリへのアドレス登録に関しては、
この図10に示すように、プレフィックス長の長いもの
が、その連想メモリ内のテーブルの先頭(小さいアドレ
ス側)になるようにソートして登録される。検索に関し
ては、検索キーデータが入力されると、検索結果アドレ
スは、ヒットしたもののうち最小のものが出力されるた
め、例えば、検索キーデータとして、186.240.
0.240が与えられて検索が行なわれると、上記テー
ブル内のデータはすべて一致したことになるが、一致し
たエントリのうちの最小のエントリアドレスをもつエン
トリが最長一致検索結果となる。従って、1回の検索に
よって最長一致検索結果を得ることができる。 【0013】 【発明が解決しようとする課題】しかし、上述した最長
一致検索方法では、プレフィックス長の長いものが、連
想メモリ内のテーブルの先頭になるようにソーティング
を行なって、エントリを登録する必要があるため、エン
トリの登録や削除が行なわれた場合、連想メモリの検索
のスループットがあがらなくなるという問題点がある。 【0014】本発明は、上記事情に鑑み、連想メモリの
検索のスループットが高められた最長一致検索方法を提
供することを目的とする。 【0015】 【課題を解決するための手段】上記目的を達成する本発
明の最長一致検索方法は、複数の被検索データを格納し
ておき、検索データにビット単位でマスクをかけて、そ
の検索データの、マスクをかけた無効ビット領域を除く
有効ビット領域のビットパターンと一致するビットパタ
ーンを、その有効ビット領域と同一のビット領域に有す
る被検索データを検索する連想メモリを用いた最長一致
検索方法において、有効ビット数が可変な被検索データ
とともに、その被検索データの各ビットに対応して各ビ
ットが有効なビットであるか無効なビットであるかを識
別するフラグ列を記憶しておき、検索にあたっては、記
憶されている被検索データの中から最長に一致する被検
索データを検索するための検索データと有効ビット領域
を表わすフラグパターンとを用いて二分検索法により検
索を行なうことを特徴とする。 【0016】本発明の最長一致検索方法は、記憶されて
いる被検索データの中から最長に一致する被検索データ
を検索するにあたり、典型的には、フラグパターンを用
いて被検索データのうちの半分を有効ビット領域として
検索し、複数ヒットした場合はその有効ビット領域をさ
らに半分に狭めて検索し、ミスヒットした場合はその有
効ビット領域をさらに半分広げて検索するものであるた
め、後述する実施形態で説明するように、例えばIPア
ドレスが32ビットの場合、6回の検索で済む。従っ
て、従来の、プレフィックス長の長いエントリが、連想
メモリ内のテーブルの先頭になるようにソーティングを
行なって登録する方法と比較し、エントリの登録や削除
が行なわれた場合であっても連想メモリの検索のスルー
プットを高めることができる。 【0017】 【発明の実施の形態】以下、本発明の実施形態について
説明する。 【0018】図1は、本発明の一実施形態の最長一致検
索方法が適用された連想メモリに設けられたCAMテー
ブルにおけるエントリを示す図である。 【0019】本実施形態の最長一致検索方法は、3値の
連想メモリを用いて最長一致検索を行なうものであり、
この3値の連想メモリには、CAMテーブルが設けられ
ている。このCAMテーブルは、64ビット構成のテー
ブルであり、上位32ビットには、有効ビット数が可変
なIPアドレスが登録され、下位32ビットには、その
IPアドレスの各ビットに対応して各ビットが有効なビ
ットであるか無効なビットであるかを識別するフラグ列
が登録される。ここでは、図1(A)に示すように、エ
ントリ1(186.240.0.0/12)として、上
位32ビットには、12個の有効ビット数をもつIPア
ドレスとともに、下位32ビットには、そのIPアドレ
スのプレフィックス長(12)が登録されている。ま
た、エントリ2(186.192.0.0/10)とし
て、上位32ビットには、10個の有効ビット数をもつ
IPアドレスとともに、下位32ビットには、そのIP
アドレスのプレフィックス長(10)が登録されてい
る。 【0020】検索にあたっては、登録されているIPア
ドレスの中から最長に一致するIPアドレスを検索する
ための検索データと有効ビット領域を表わすフラグパタ
ーンとを用いて二分検索法により、以下のようにして検
索を行なう。 【0021】図2は、1回目の検索を行なうための検索
データのフォーマットを示す図である。 【0022】3値の連想メモリには、図1(A)に示し
た32ビットのIPアドレスが登録されている。ここ
で、1回目の検索を行なうための検索データとして、図
2に示す検索キーデータの上位32ビットの部分に関し
ては、検索対象のIPアドレス(図1(A)参照)が入
力され、下位32ビットには、検索マスクキーデータ
(全て1)が登録されている。検索キーデータにかかる
検索キーデータグローバルマスクは、全て0である(マ
スクされていない)。 【0023】ここで、検索マスクキーデータ部分への検
索のマスク(検索マスクキーグローバルマスク、即ちフ
ラグパターン)は、最初の時点では、ちょうど半分(1
6ビット分)の位置までグローバルマスクがかかった状
態である。このような状態で検索した結果、ヒットした
場合は、2回目の検索では検索マスクキーグローバルマ
スクは広げられ、逆に、ミスヒットした場合は狭められ
る。 【0024】図3は、1回目の検索でヒットした場合
の、2回目の検索を行なうための検索データのフォーマ
ットを示す図である。 【0025】1回目の検索でヒットした場合は、この図
3に示すような検索マスクキーグローバルマスクが作成
され、CAMテーブルヘ検索が行なわれる。即ち、検索
マスクキーグローバルマスクのビット31からビット2
4までの8ビット分が1、ビット23からビット0まで
の24ビット分が0になるように広げられ、これにより
検索するためのデータ範囲が縮小される。 【0026】図4は、1回目の検索でミスヒットした場
合の、2回目の検索を行なうための検索データのフォー
マットを示す図である。 【0027】1回目の検索でミスヒットした場合は、こ
の図4に示すような検索マスクキーグローバルマスクが
作成され、CAMテーブルヘ検索が行なわれる。即ち、
検索マスクキーグローバルマスクのビット31からビッ
ト8までの24ビット分が1、ビット7からビット0ま
での8ビット分が0になるように狭められ、これにより
検索するためのデータ範囲が拡大される。 【0028】図5は、二分検索法のアルゴリズムを示す
フローチャートである。 【0029】先ず、ステップS1において、検索キー用
のグローバルマスクを1/2にする(検索マスクキーグ
ローバルマスクのビット31からビット16までの16
ビット分を1、ビット15からビット0までの16ビッ
ト分を0に設定する)。 【0030】次に、ステップS2において、1回目の検
索を行なう。 【0031】さらに、ステップS3に進み、最終の検索
であるか否かが判定される。最終の検索であると判定さ
れた場合は後述するステップS7に進み、最終の検索で
ないと判定された場合はステップS4に進む。 【0032】ステップS4では、検索した結果、ヒット
したか否かが判定される。ヒットしたと判定された場合
はステップS5に進み、図3を参照して説明したように
してグローバルマスクを1/2だけ広げてステップS2
に戻る。一方、ヒットしていない(ミスヒット)と判定
された場合はステップS6に進み、図4を参照して説明
したようにしてグローバルマスクを1/2だけ狭めてス
テップS2に戻る。 【0033】ステップS7では、最終検索した結果がヒ
ットしたか否かが判定される。ヒットしたと判定された
場合はステップS8に進み、最終結果を出力してこの処
理を終了する。一方、ヒットしていないと判定された場
合はステップS9に進み、上記最終結果よりも1つ前の
結果を出力してこの処理を終了する。 【0034】このように、検索マスクキーグローバルマ
スクを用いてIPアドレスのうちの半分を有効ビット領
域として検索し、複数ヒットした場合はその有効ビット
領域をさらに半分に狭めて検索し、ミスヒットした場合
はその有効ビット領域をさらに半分広げて検索する。I
Pアドレスは32ビットであるため、6回(N+1)
(log2N=32,N=5)の検索が必要であり、
(N+1)回目(最後の検索)の検索結果がヒットであ
る場合は、最後の検索結果を出力し、最後の検索結果が
ミスヒットである場合には、ひとつ前の検索結果を出力
する。このように、32ビットのIPアドレスの場合、
6回の検索で済む。従って、従来の、プレフィックス長
の長いエントリが、連想メモリ内のテーブルの先頭にな
るようにソーティングを行なって登録する方法と比較
し、エントリの登録や削除が行なわれた場合であっても
連想メモリの検索のスループットを高めることができ
る。 【0035】図6は、本実施形態の最長一致検索方法が
適用された最長一致検索装置のブロック図、図7は、図
6に示す最長一致検索装置に登録されるエントリデータ
の構成を示す図、図8は、図6に示す最長一致検索装置
のタイミングチャートである。 【0036】図6に示す最長一致検索装置10にはCA
Mメモリブロック11が備えられており、このCAMメ
モリブロック11には、メンテナンスポートを経由して
入力されるデータに応じて、CAMデータ入出力制御回
路12により各エントリに対応したデータが登録され、
必要に応じて追加、変更される。 【0037】最長一致検索装置10に対しての、検索デ
ータであるIPアドレスデータとしては、入力ポートか
ら対象となるIPアドレスが入力され、同時に検索開始
信号がアクティブにされることによって、最長一致検索
の起動がかかる。CAMメモリブロック11に登録され
るエントリデータについては、図7に示すように、32
ビットのIPアドレスと32ビットのネットマスク長
(マスク情報)がある。 【0038】図6に示す最長一致検索装置10には、最
長一致検索制御回路13が備えられており、この最長一
致検索制御回路13にはクロックが入力され、この最長
一致検索制御回路13は、入力されたクロックに同期し
て、CAMメモリブロック11に登録された各エントリ
の中から所望のエントリを検索するための各部の制御を
行なう。 【0039】また、図6に示す最長一致検索装置10に
は、キーデータ生成回路14およびプレフィックスデー
タ生成回路15が備えられている。キーデータ生成回路
14には、入力ポートを経由して検索用キーデータの基
になる入力データ(ディスティネーションIPアドレ
ス)が入力され、さらに検索の開始を指示する検索開始
信号が入力される(図8参照)。プレフィックスデータ
生成回路15では、全てが1からなるプレフィックスデ
ータが生成されてキーデータ生成回路14に入力され、
キーデータ生成回路14では、IPアドレスとプレフィ
ックスデータからなるキーデータが生成されてCAMメ
モリブロック11に入力される。 【0040】また、図6に示す最長一致検索装置10に
は、マスク生成回路16が備えられている。このマスク
生成回路16は、検索マスクキーグローバルマスクのデ
ータを生成する。 【0041】さらに、最長一致検索装置10には、最長
一致検索結果出力回路17が備えられている。最長一致
検索結果出力回路17では、前述したように、6回の検
索が行なわれる。この6回の検索シーケンスは、最長一
致検索制御回路13で制御される。6回の検索シーケン
スが終了すると、検索結果として、図8に示す検索終了
信号のタイミングで、出力ポートからヒットしたIPア
ドレスのエントリアドレスが出力される。 【0042】 【発明の効果】以上説明したように、本発明の最長一致
検索方法によれば、連想メモリの検索のスループットを
高めることができる。
【図面の簡単な説明】 【図1】本発明の一実施形態の最長一致検索方法が適用
された連想メモリに設けられたCAMテーブルにおける
エントリを示す図である。 【図2】1回目の検索を行なうための検索データのフォ
ーマットを示す図である。 【図3】1回目の検索でヒットした場合の、2回目の検
索を行なうための検索データのフォーマットを示す図で
ある。 【図4】1回目の検索でミスヒットした場合の、2回目
の検索を行なうための検索データのフォーマットを示す
図である。 【図5】二分検索法のアルゴリズムを示すフローチャー
トである。 【図6】本実施形態の最長一致検索方法が適用された最
長一致検索装置のブロック図である。 【図7】図6に示す最長一致検索装置に登録されるエン
トリデータの構成を示す図である。 【図8】図6に示す最長一致検索装置のタイミングチャ
ートである。 【図9】最長一致検索の説明図である。 【図10】3値の連想メモリを用いた最長一致検索方法
の説明図である。 【符号の説明】 10 最長一致検索回路 11 CAMメモリブロック 12 CAMデータ入出力制御回路 13 最長一致検索制御回路 14 キーデータ生成回路 15 プレフィックスデータ生成回路 16 マスク生成回路 17 最長一致検索結果出力回路

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 複数の被検索データを格納しておき、検
    索データにビット単位でマスクをかけて、該検索データ
    の、マスクをかけた無効ビット領域を除く有効ビット領
    域のビットパターンと一致するビットパターンを、該有
    効ビット領域と同一のビット領域に有する被検索データ
    を検索する連想メモリを用いた最長一致検索方法におい
    て、 有効ビット数が可変な被検索データとともに、該被検索
    データの各ビットに対応して各ビットが有効なビットで
    あるか無効なビットであるかを識別するフラグ列を記憶
    しておき、 検索にあたっては、記憶されている被検索データの中か
    ら最長に一致する被検索データを検索するための検索デ
    ータと有効ビット領域を表わすフラグパターンとを用い
    て二分検索法により検索を行なうことを特徴とする最長
    一致検索方法。
JP2002044535A 2002-02-21 2002-02-21 最長一致検索方法 Pending JP2003244208A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002044535A JP2003244208A (ja) 2002-02-21 2002-02-21 最長一致検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002044535A JP2003244208A (ja) 2002-02-21 2002-02-21 最長一致検索方法

Publications (1)

Publication Number Publication Date
JP2003244208A true JP2003244208A (ja) 2003-08-29

Family

ID=27783876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002044535A Pending JP2003244208A (ja) 2002-02-21 2002-02-21 最長一致検索方法

Country Status (1)

Country Link
JP (1) JP2003244208A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114268608A (zh) * 2021-12-20 2022-04-01 卓米私人有限公司 一种地址段检索方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114268608A (zh) * 2021-12-20 2022-04-01 卓米私人有限公司 一种地址段检索方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US6665297B1 (en) Network routing table
US7966421B2 (en) Method and apparatus for logically expanding the length of a search key
JP4614946B2 (ja) 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US5946679A (en) System and method for locating a route in a route table using hashing and compressed radix tree searching
US7529746B2 (en) Search circuit having individually selectable search engines
US7644080B2 (en) Method and apparatus for managing multiple data flows in a content search system
US7539032B2 (en) Regular expression searching of packet contents using dedicated search circuits
US7861291B2 (en) System and method for implementing ACLs using standard LPM engine
US20020143787A1 (en) Fast classless inter-domain routing (CIDR) lookups
WO2004102856A2 (en) Comparison tree data structures and lookup operations
WO2002061625A2 (en) Method and apparatus for routing table management
WO2001005116A2 (en) Routing method and apparatus
KR20050054538A (ko) 고속 패턴 저장 및 매칭 방법
US7136960B2 (en) Hardware hashing of an input of a content addressable memory (CAM) to emulate a wider CAM
JP3845512B2 (ja) 最長一致検索装置
JP2003244208A (ja) 最長一致検索方法
JP4105910B2 (ja) 連想メモリ装置及びそれを用いた中継装置
JP3660311B2 (ja) テーブル検索装置および方法およびプログラムおよび記録媒体
KR100428247B1 (ko) 아이피 주소룩업에서 고속 엘피엠 탐색을 위한 파이프라인씨에이엠의 구성 방법
JP2011002910A (ja) 検索処理装置及び検索処理方法
US8199756B2 (en) Forwarding apparatus, forwarding method, and computer product
KR100378599B1 (ko) 주소 메모리 블록의 간섭 인덱싱에 기반한 라우팅 테이블검색 방법
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ
KR100460188B1 (ko) 인터넷 프로토콜 주소 룩-업 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060912