JP3591426B2 - プレフィックスを含む複数アドレスによる連想情報探索方法及び装置 - Google Patents
プレフィックスを含む複数アドレスによる連想情報探索方法及び装置 Download PDFInfo
- Publication number
- JP3591426B2 JP3591426B2 JP2000160004A JP2000160004A JP3591426B2 JP 3591426 B2 JP3591426 B2 JP 3591426B2 JP 2000160004 A JP2000160004 A JP 2000160004A JP 2000160004 A JP2000160004 A JP 2000160004A JP 3591426 B2 JP3591426 B2 JP 3591426B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- binary tree
- leaf
- prefix
- searched
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、インターネットのようなパケット交換型ネットワークにおいて、ファイヤーウォールにおけるパケットのフィルタリングやルータにおける差別化サービスのためのパケットのクラス分けやIPsecサービスにおける暗号アルゴリズムや鍵の選択などのように、パケットのソースアドレスとデスティネーションアドレスとからそのパケットに適用するサービスを決定するような場合における、プレフィックスを含む複数アドレスによる連想情報の探索方法及び装置に関する。
【0002】
【従来の技術】
アドレスのプレフィックスの2つの組により指定され、かつ優先度付けがなされた情報の中から、あるアドレスの組にマッチする情報を優先度を考慮して探索する方法として、以下のような方法が挙げられる。
【0003】
第1の方法は、線形リストによる方法である。これは、線形リスト中に優先度順に情報を並べておき、探索の際は先頭からマッチする情報を探索する方法である。
【0004】
第2の方法は、V.Srinivasanらにより提案されたGrid−of−Triesと呼ばれる方法である(“Fast and Scalable Layer For Switching”, ACM Sigcomm ’98, Sept. 1998)。この第2の方法は、2段の2分木を使用し、1段目の2分木をlongest matching(最長一致)により構成し、1段目の各葉にはその葉に該当するすべての設定が探索できる2段目の2分木を作成するものである。探索においては、1段目の2分木をlongest matchingにより探索し、該当する葉にある2段目の2分木を優先度を考慮して探索する。
【0005】
【発明が解決しようとする課題】
しかしながら上述したごとき従来の探索方法によると、アドレスのプレフィックスの2つの組により特定され、かつ優先度付けがなされた大量の情報の中から、高速に探索すること及び追加削除を効率的に行うことを両立させるのは困難であった。
【0006】
即ち、線形リストによる第1の方法は、追加や削除は容易にできるが、大量の情報を探索する際には遅くなるという問題がある。
他方、2分木を用いた方法としてGrid−of−Triesによる第2の方法があるが、この方法は、探索は高速にできるが、情報の追加削除には2分木を作成し直さなくてはならないため、追加削除に関して効率が非常に悪いという問題がある。
【0007】
従って、本発明の目的は上記の問題を解決するため、高速な探索及び追加削除を効率的に行えることが可能なプレフィックスを含む複数アドレスによる連想探索方法及び装置を提供することにある。
【0008】
【課題を解決するための手段】
本発明によれば、1番目のプレフィックスにより1段目の2分木を構成し、1段目の2分木の各葉に1番目のプレフィックスが該当するもののみによる2番目のプレフィックスによる2段目の2分木を構成し、2段目の2分木の各葉には優先度付けされた情報を特定するもの(ポインタなど)を線形リストにより保持することにより情報を管理し、これを用いてアドレスの組から情報の探索が行われる。
【0009】
また、さらに2分木の各葉において、葉に属する情報の優先度の最小又は最大値を保持させることにより、探索範囲を狭めている。
【0010】
【発明の実施の形態】
以下、本発明について実施形態を用いて説明する。
まず、表1のような情報を探索する場合を想定する。この実施形態では、32ビットのアドレスを想定している。
【0011】
【表1】
【0012】
この情報を本発明で用いる2段階の2分木に構成すると、図1に示すようになる。ソースアドレスにより1段目の2分木を構成し、デスティネーションアドレスにより2段目の2分木を構成している。
【0013】
即ち、同図において、
▲1▼葉における“bit:x”はx bitまでマッチしていることを表している。
▲2▼葉における“pri:y”はその葉に属する情報の優先度の最小値はyであることを表している。
▲3▼葉からの分岐は、“bit:”の値+1ビット目が1である場合には右、0である場合には左へ分岐する。
【0014】
(1)探索処理
以下、探索処理について説明する。ここでは、ソースアドレスが10.240.240.1であり、デスティネーションアドレスが192.168.0.1の場合の探索を行う。
【0015】
(1−1)まず始めにソースアドレスから1st−Treeを探索する。この例ではソースアドレスが10.240.240.1なので、(A)から始まり、(B)、(C)の葉を順にたどる。それぞれの葉に関して、2nd−Treeがある場合にはそれを順に記憶しておく。この場合では(B)及び(C)である。
【0016】
(1−2)次に(1−1)で記憶したものの2nd−Treeを探索する。この例ではデスティネーションアドレスは192.168.0.1である。まず、2nd−Tree−1を探索する。各葉を評価する際に葉の線形リストも探索し、優先度の最小値を持ったものを記憶する。この場合では、(a)、(b)、(c)の順にたどることになる。(a)には線形リストがないため通過する。(b)には線形リストがあるため探索を行い線形リストの中から最小の情報(b−1)を保持する。この場合は、優先度2の情報が見つかる。次に(c)の線形リストを探索し、優先度1の情報(c−1)が見つかるので、前の情報と置き換える。これで2nd−Tree−1の探索が終了し、ここでは、優先度1(c−1)の情報が見つかったことになる。
【0017】
(1−3)次に同様にして2nd−Tree−2を探索することになる。しかし、1st−Treeの(C)の葉に属する優先度の最小値は3であることから、(1−2)で見つけた優先度1より高い情報を見つけることができないため、この2nd−Tree−2は探索を行う必要はない。
【0018】
(1−4)以上のようにして、優先度1の情報(c−1)が探索される。
【0019】
(2)追加処理
以下、追加処理について説明する。ここでは、表2の情報を追加する場合について説明する。
【0020】
【表2】
【0021】
(2−0)まず、情報の線形リストinfo−1istに優先度に従って追加する。
【0022】
(2−1)情報を追加する場所を探す。まず、ソースアドレスから1st−Treeを探索する。該当する葉がない場合は作成するが、ここでは(C)があるので作成する必要はない。
【0023】
(2−2)次に該当する2nd−Tree−2に移動し、探索するが、192.168.*/16の葉がないので作成する。そして図2に示すように、2nd−Tree−2に葉を追加する。他の場合の挿入も葉の挿入に関しては通常の2分木と同様の方法で行う。そして、その葉の線形リストに今回追加する情報を追加する。
【0024】
(2−3)最後に葉の優先度の付け直しを行う。この実現方法は、以下の通りである。
『ある葉以下に属する情報の最小値を求めて、その葉のpriにセットする』を1st−Treeの先頭(A)から再帰的に適用する。
【0025】
(3)削除処理
以下、削除処理について説明する。ここでは、表3の情報を削除する場合について説明する。
【0026】
【表3】
【0027】
(3−1)まず、該当する情報を探す。この場合では、1st−Treeを探索し(B)を発見する。次に2nd−Treeを探索し、葉(c)から(c−1)を発見する。
【0028】
(3−2)葉(c)から(c−1)を図3のように削除する。この際に葉が必要ない場合には葉も削除する。この場合には葉(c)は探索に必要なくなるため削除する。同様にして、必要のない葉は削除する。場合によっては2nd−Treeごと削除する場合もある。
【0029】
(3−3)葉の優先度の付け直しを行う。この実現方法は、以下の通りである。
『ある葉以下に属する情報の最小値を求めて、その葉のpriにセットする』を1st−Treeの先頭(A)から再帰的に適用する。
【0030】
(3−4)最後に情報の線形リストinfo−1istから削除する。
【0031】
以下ではアドレスプレフィックスの2つの組とその他にプロトコルによる指定が行われた場合について説明する。
【0032】
この場合には、図4のようにプロトコルによるハッシュテーブルを作成し、その先に上記のような2段階の2分木を作成する。
【0033】
検索処理に関しては、まずプロトコルによりハッシュテーブルを検索し、該当するテーブルの先にある2段階の2分木を上述と同様な方法により検索を行う。
【0034】
追加処理に関しては、まずプロトコルによりハッシュテーブルを検索し、該当するテーブルの先に2段階の2分木があれば、その先に上述と同様な方法により追加を行い、なければ2段階の2分木を作成し、追加を行う。
【0035】
削除処理に関しては、まずプロトコルによりハッシュテーブルを検索し、該当するテーブルの先に2段階の2分木があれば、その先から上述と同様な方法により削除を行う。
【0036】
以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。
【0037】
【発明の効果】
以上詳細に説明したように本発明によれば、2段階の2分木と線形リストを併用し、2分木を再構成することなく追加削除を行えるようにすることにより、高速な探索と容易な追加削除を両立することができる。これは、大量の情報(設定)の中から2つのアドレスをキーとして探索し、かつその情報が変化するような場合に有効である。例えば、IPsecを使用し、かつ一定時間ごとにSA(鍵など)更新が行われる状況で、送出するパケットごとにこのSAの探索を行わなければならない状況などである。
【0038】
また、ファイヤーウォールルータなどにおいて、パケットのフィルタリングをする際にポリシーを一定時間ごとに更新するような場合にも有効である。
【0039】
このように、この発明はセキュリティなどを考慮したサーバやルータなどにおけるパケット処理の際のキーテクノロジとしての利用が見込める。
【図面の簡単な説明】
【図1】探索に用いる情報の管理方法を示した図である。
【図2】情報の追加方法を示した図である。
【図3】情報の削除方法を示した図である。
【図4】ハッシュテーブルを用いて情報管理方法を示した図である。
Claims (6)
- アドレスのプレフィックスの2つの組により指定され、かつ優先度付けがなされた情報の中から、あるアドレスの組にマッチする情報を優先度を考慮して探索する、プレフィックスを含む複数アドレスによる連想情報探索方法であって、
1番目のプレフィックスにより1段目の2分木を構成し、1段目の2分木の各葉に1番目のプレフィックスが該当するもののみによる2番目のプレフィックスによる2段目の2分木を構成し、2段目の2分木の各葉には優先度付けされた情報を特定するものを線形リストにより保持することにより情報を管理し、これを用いてアドレスの組から情報の探索を行うことを特徴とする探索方法。 - 2分木の各葉において、葉に属する情報の優先度の最小値を保持させることにより、探索範囲を狭めることを特徴とすることを特徴とする請求項1に記載の方法。
- アドレスプレフィックスの2つの組とプレフィックスでは表現されないプロトコル又はポート番号とにより指定され、かつ優先度付けがなされた情報の中から、あるアドレスの組にマッチする情報を優先度を考慮して探索する方法であって、
プロトコル又はポート番号によりハッシュテーブルを作成し、その先に前記2段階の2分木を作成することにより情報を管理し、これを用いてアドレスの組及びプロトコル又はポート番号から情報の探索を行うことを特徴とする請求項1に記載の方法。 - アドレスのプレフィックスの2つの組により指定され、かつ優先度付けがなされた情報の中から、あるアドレスの組にマッチする情報を優先度を考慮して探索する、プレフィックスを含む複数アドレスによる連想情報探索装置であって、
1番目のプレフィックスにより1段目の2分木を構成し、1段目の2分木の各葉に1番目のプレフィックスが該当するもののみによる2番目のプレフィックスによる2段目の2分木を構成し、2段目の2分木の各葉には優先度付けされた情報を特定するものを線形リストにより保持することにより情報を管理し、これを用いてアドレスの組から情報の探索を行うことを特徴とする探索装置。 - 2分木の各葉において、葉に属する情報の優先度の最小値を保持させることにより、探索範囲を狭めることを特徴とする請求項4に記載の装置。
- アドレスプレフィックスの2つの組とプレフィックスでは表現されないプロトコル又はポート番号により指定され、かつ優先度付けがなされた情報の中から、あるアドレスの組にマッチする情報を優先度を考慮して探索する装置であって、
プロトコル又はポート番号によりハッシュテーブルを作成し、その先に前記2段階の2分木を作成することにより情報を管理し、これを用いてアドレスの組及びプロトコル又はポート番号から情報の探索を行うことを特徴とする請求項4に記載の装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000160004A JP3591426B2 (ja) | 2000-05-30 | 2000-05-30 | プレフィックスを含む複数アドレスによる連想情報探索方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000160004A JP3591426B2 (ja) | 2000-05-30 | 2000-05-30 | プレフィックスを含む複数アドレスによる連想情報探索方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001339436A JP2001339436A (ja) | 2001-12-07 |
JP3591426B2 true JP3591426B2 (ja) | 2004-11-17 |
Family
ID=18664256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000160004A Expired - Fee Related JP3591426B2 (ja) | 2000-05-30 | 2000-05-30 | プレフィックスを含む複数アドレスによる連想情報探索方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3591426B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050083937A1 (en) | 2003-10-15 | 2005-04-21 | Hyesook Lim | IP address lookup method using pipeline binary tree, hardware architecture, and recording medium |
CN100417150C (zh) * | 2003-11-11 | 2008-09-03 | 中兴通讯股份有限公司 | 访问控制列表和安全策略数据库的方法 |
-
2000
- 2000-05-30 JP JP2000160004A patent/JP3591426B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001339436A (ja) | 2001-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7089240B2 (en) | Longest prefix match lookup using hash function | |
CA2434876C (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
JP4482584B2 (ja) | モストスペシフィックフィルタ整合と移送レベル共有とを用いる二段パケット分類のための装置と方法 | |
Lakshminarayanan et al. | Algorithms for advanced packet classification with ternary CAMs | |
Lim et al. | Priority tries for IP address lookup | |
Warkhede et al. | Multiway range trees: scalable IP lookup with fast updates | |
Priya et al. | Hierarchical packet classification using a Bloom filter and rule-priority tries | |
Srinivasan | A packet classification and filter management system | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
US7474657B2 (en) | Partitioning methods for dynamic router tables | |
US7624226B1 (en) | Network search engine (NSE) and method for performing interval location using prefix matching | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
Li et al. | An improved trie-based name lookup scheme for named data networking | |
Sahni et al. | O (log n) dynamic packet routing | |
Lim et al. | Two-dimensional packet classification algorithm using a quad-tree | |
Sun et al. | An on-chip IP address lookup algorithm | |
US7523218B1 (en) | O(log n) dynamic router tables for prefixes and ranges | |
Chang | Efficient multidimensional packet classification with fast updates | |
Wang | Scalable packet classification with controlled cross-producting | |
Lim et al. | High-speed packet classification using binary search on length | |
JP3591426B2 (ja) | プレフィックスを含む複数アドレスによる連想情報探索方法及び装置 | |
Macián et al. | An evaluation of the key design criteria to achieve high update rates in packet classifiers | |
Ahmadi et al. | Modified collision packet classification using counting bloom filter in tuple space. | |
Wang et al. | Scalable packet classification for enabling internet differentiated services | |
Liu et al. | Longest prefix matching with pruning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040803 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040816 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |