JP3626056B2 - 2分検索装置及び2分検索方法 - Google Patents
2分検索装置及び2分検索方法 Download PDFInfo
- Publication number
- JP3626056B2 JP3626056B2 JP35360499A JP35360499A JP3626056B2 JP 3626056 B2 JP3626056 B2 JP 3626056B2 JP 35360499 A JP35360499 A JP 35360499A JP 35360499 A JP35360499 A JP 35360499A JP 3626056 B2 JP3626056 B2 JP 3626056B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- search
- line number
- addresses
- subnet
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
この発明は、宛先IPアドレスに対応する検索IPアドレスを特定する2分検索装置及び2分検索方法に関するものである。
【0002】
【従来の技術】
図5は例えば特開平10−126442号公報に示された従来の2分検索装置を示す構成図であり、図において、1は検索範囲の先頭行を示す先頭行番号を格納する先頭行番号レジスタ、2は検索範囲の末尾行を示す末尾行番号を格納する末尾行番号レジスタ、3は先頭行番号レジスタ1に格納された先頭行番号と末尾行番号レジスタ2に格納された末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力する中央行番号演算回路、4は中央行番号演算回路3から出力された中央行番号に対応する検索テーブル5のメモリアドレスを生成する変換回路、5はアドレス値が小さい順に検索IPアドレスを登録するとともに、その検索IPアドレスのサブネットマスクを登録する検索テーブルである。
【0003】
6は中央行番号演算回路3から出力された中央行番号を格納する中央行番号レジスタ、7は中央行番号レジスタ6に格納された前回の中央行番号と中央行番号演算回路3から出力された現在の中央行番号を比較し、両者が一致する場合には、宛先IPアドレスが未登録である旨を示す未登録信号を出力する照合回路である。
【0004】
8は宛先IPアドレスを入力すると、変換回路4により生成されたメモリアドレスに位置する検索IPアドレスのサブネットマスクと宛先IPアドレスのAND演算を実行して、宛先IPアドレスのサブネットアドレスを特定するAND演算回路、9はAND演算回路8により特定された宛先IPアドレスのサブネットアドレスと検索IPアドレスを比較する比較回路である。
【0005】
次に動作について説明する。
まず、2分検索装置の初期状態では、検索テーブル5の先頭行番号が先頭行番号レジスタ1に格納され、検索テーブル5の末尾行番号が末尾行番号レジスタ2に格納される。
【0006】
そして、2分検索装置の中央行番号演算回路3に検索開始トリガが出力されると、中央行番号演算回路3は、先頭行番号レジスタ1に格納された先頭行番号と末尾行番号レジスタ2に格納された末尾行番号の平均加算(小数点以下切り捨てる)を実行し、次回検索に使用する中央行番号を演算する。
【0007】
そして、変換回路4は、中央行番号演算回路3が中央行番号を演算すると、中央行番号に対応する検索テーブル5のメモリアドレスを生成し、検索テーブル5は、そのメモリアドレスに位置する検索IPアドレス(検索IPアドレスは、検索対象のサブネットアドレスである)と、その検索IPアドレスのサブネットマスクを出力する。
【0008】
一方、AND演算回路8は、宛先IPアドレスを入力すると、検索テーブル5から出力された検索IPアドレスのサブネットマスクと、宛先IPアドレスのAND演算を実行して(AND演算はビット単位に実行する)、宛先IPアドレスのサブネットアドレスを特定する。
【0009】
そして、比較回路9は、AND演算回路8が宛先IPアドレスのサブネットアドレスを特定すると、宛先IPアドレスのサブネットアドレスと検索IPアドレスを比較する。
比較回路9は、宛先IPアドレスのサブネットアドレスと検索IPアドレスが一致する場合には、アドレスの一致を示す一致パルスを出力して、アドレスの検索処理を終了するが(その際、検索テーブル5から一致した検索IPアドレスが転送処理情報として出力される)、アドレスが一致しない場合には、検索処理を続行するため、以下に示す処理を実行する。
【0010】
即ち、宛先IPアドレスのサブネットアドレスが検索IPアドレスより小さい場合には、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索IPアドレス(アドレス値が小さい検索IPアドレス)を比較対象にするため、今回検索に使用した中央行番号を末尾行番号レジスタ2に上書きする。
【0011】
これにより、中央行番号演算回路3は、次回検索に使用する中央行番号を演算する際、先頭行番号と今回検索に使用した中央行番号(末尾行番号)を用いて演算するので、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より前の行番号に移動することになる。
例えば、先頭行番号が“0”で、今回検索に使用した中央行番号が“10”であれば、次回検索に使用する中央行番号は“5”になる。
【0012】
一方、宛先IPアドレスのサブネットアドレスが検索IPアドレスより大きい場合には、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索IPアドレス(アドレス値が大きい検索IPアドレス)を比較対象にするため、今回検索に使用した中央行番号を先頭行番号レジスタ1に上書きする。
【0013】
これにより、中央行番号演算回路3は、次回検索に使用する中央行番号を演算する際、今回検索に使用した中央行番号(先頭行番号)と末尾行番号を用いて演算するので、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より後の行番号に移動することになる。
例えば、今回検索に使用した中央行番号が“10”で、末尾行番号が“20”であれば、次回検索に使用する中央行番号は“15”になる。
【0014】
このようにして、中央行番号演算回路3が次回検索に使用する中央行番号を演算すると、その中央行番号に対応する検索テーブル5のメモリアドレスを生成することにより、上記と同様の比較処理を実行する。基本的には、宛先IPアドレスのサブネットアドレスが検索IPアドレスと一致するまで、上記の処理を繰り返すが、中央行番号レジスタ6に格納された前回の中央行番号と中央行番号演算回路3から出力された現在の中央行番号を比較し、両者が一致する場合には、照合回路7から宛先IPアドレスが未登録である旨を示す未登録信号が出力され、検索処理が終了する。
【0015】
【発明が解決しようとする課題】
従来の2分検索装置は以上のように構成されているので、宛先IPアドレスのサブネットアドレスと一致する検索IPアドレスが検索テーブル5に登録されていれば、宛先IPアドレスのサブネットアドレスと一致する検索IPアドレスを提供することができるが、検索テーブル5に検索IPアドレスを登録する際、各検索IPアドレス間の包含関係が考慮されずに登録され、しかも、宛先IPアドレスのサブネットアドレスと検索IPアドレスが一致すると、直ちに検索処理を終了するため、例えば、サブネットアドレスが大まかに設定された検索IPアドレスが先に一致すると(図6のネットワークAを参照)、サブネットアドレスが詳細に設定された検索IPアドレスが登録されていても(図6のネットワークBを参照)、サブネットアドレスが詳細に設定された検索IPアドレスを提供することができないなどの課題があった。
【0016】
この発明は上記のような課題を解決するためになされたもので、包含関係が存在する検索IPアドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索IPアドレスを提供することができる2分検索装置及び2分検索方法を得ることを目的とする。
【0017】
【課題を解決するための手段】
この発明に係る2分検索装置は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するようにしたものである。
【0018】
この発明に係る2分検索装置は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するようにしたものである。
【0019】
この発明に係る2分検索装置は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【0020】
この発明に係る2分検索装置は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【0021】
この発明に係る2分検索装置は、演算手段が前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するようにしたものである。
【0022】
この発明に係る2分検索装置は、比較手段が前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するようにしたものである。
【0023】
この発明に係る2分検索装置は、最後に格納手段に格納された検索アドレスをヒットアドレスとして出力するようにしたものである。
【0024】
この発明に係る2分検索方法は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するようにしたものである。
【0025】
この発明に係る2分検索方法は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するようにしたものである。
【0026】
この発明に係る2分検索方法は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【0027】
この発明に係る2分検索方法は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【0028】
この発明に係る2分検索方法は、前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するようにしたものである。
【0029】
この発明に係る2分検索方法は、予め、検索アドレスのサブネットマスクを検索テーブルに登録し、前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するようにしたものである。
【0030】
この発明に係る2分検索方法は、最後にメモリに格納された検索アドレスをヒットアドレスとして出力するようにしたものである。
【0031】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。実施の形態1. 図1はこの発明の実施の形態1による2分検索装置を示す構成図であり、図において、11は検索範囲の先頭行を示す先頭行番号を格納する先頭行番号レジスタ、12は検索範囲の末尾行を示す末尾行番号を格納する末尾行番号レジスタ、13は先頭行番号レジスタ11に格納された先頭行番号と末尾行番号レジスタ12に格納された末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力する中央行番号演算回路(演算手段)、14は中央行番号演算回路13から出力された中央行番号に対応する検索テーブル15のメモリアドレスを生成する変換回路、15はアドレス値が大きい順に検索IPアドレスを登録する一方、各検索IPアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索IPアドレスを登録する検索テーブル、16は中央行番号演算回路13から出力された中央行番号を保持し、前回の中央行番号と現在の中央行番号が一致すると、検索の終了を示す終了信号を出力する検索終了照合回路である。
【0032】
17は変換回路14により生成されたメモリアドレスに位置する検索IPアドレスと宛先IPアドレスのサブネットアドレスを比較する比較回路(比較手段)、18は変換回路14により生成されたメモリアドレスに位置する検索IPアドレスのサブネットマスクと宛先IPアドレスのAND演算を実行して、宛先IPアドレスのサブネットアドレスを特定するAND演算回路、19はAND演算回路18により特定された宛先IPアドレスのサブネットアドレスと検索IPアドレスを比較する比較器、20は比較回路17の比較結果がアドレスの一致を示す場合、その検索IPアドレスを格納するヒット時アドレス格納レジスタ(格納手段)である。
なお、図2はこの発明の実施の形態1による2分検索方法を示すフローチャートである。
【0033】
次に動作について説明する。
まず、2分検索装置の初期状態では、検索テーブル15の先頭行番号が先頭行番号レジスタ11に格納され、検索テーブル15の末尾行番号が末尾行番号レジスタ12に格納される。
【0034】
そして、2分検索装置の中央行番号演算回路13に検索開始トリガが出力されると、中央行番号演算回路13は、先頭行番号レジスタ11に格納された先頭行番号と末尾行番号レジスタ12に格納された末尾行番号の平均加算(小数点以下切り捨てる)を実行し、次回検索に使用する中央行番号を演算する(ステップST8)。
例えば、図3に示すように、検索IPアドレスが9個登録されている場合には、先頭行番号が“0”で、末尾行番号が“8”になるので、中央行番号は“4”になる。
【0035】
そして、変換回路14は、中央行番号演算回路13が中央行番号を演算すると、中央行番号に対応する検索テーブル15のメモリアドレスを生成し、検索テーブル15は、そのメモリアドレスに位置する検索IPアドレス(検索IPアドレスは、検索対象のサブネットアドレスである)と、その検索IPアドレスのサブネットマスクを出力する。
図3の場合、中央行番号が“4”であるので、検索IPアドレスとして、“123d.456d.789d.1000 0000”が出力され、サブネットマスクとして、“255d.255d.255d.1000 0000”が出力される。
【0036】
一方、比較回路17のAND演算回路18は、宛先IPアドレスを入力すると、検索テーブル15から出力された検索IPアドレスのサブネットマスクと、宛先IPアドレスのAND演算を実行して(AND演算はビット単位に実行する)、宛先IPアドレスのサブネットアドレスを特定する(ステップST1)。
例えば、宛先IPアドレスが“123d.456d.789d.1011 1101”の場合、その宛先IPアドレスとサブネットマスク“255d.255d.255d.1000 0000”をビット単位でAND演算すると、宛先IPアドレスのサブネットアドレスは“123d.456d.789d.1000
0000”となる。
【0037】
そして、比較回路17の比較器19は、AND演算回路18が宛先IPアドレスのサブネットアドレスを特定すると、宛先IPアドレスのサブネットアドレスと検索IPアドレスを比較する(ステップST2)。
比較器19は、宛先IPアドレスのサブネットアドレスと検索IPアドレスが一致する場合には(ステップST3)、その検索IPアドレスをヒット時アドレス格納レジスタ20に上書きする(ステップST4)。
上記のように、宛先IPアドレスが“123d.456d.789d.1011 1101”であって、中央行番号が“4”の場合には、宛先IPアドレスのサブネットアドレスが検索IPアドレスと一致する。
【0038】
また、比較器19は、アドレスの一致の有無に拘わらず、更に検索処理を継続するため、アドレスが一致する場合又は宛先IPアドレスのサブネットアドレスが検索IPアドレスより大きい場合には(ステップST5)、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索IPアドレス(アドレス値が大きい検索IPアドレス)を比較対象にするため、今回検索に使用した中央行番号を末尾行番号レジスタ12に上書きする(ステップST6)。
【0039】
これにより、中央行番号演算回路13は、次回検索に使用する中央行番号を演算する際、先頭行番号と今回検索に使用した中央行番号(末尾行番号)を用いて演算するので(ステップST8)、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より前の行番号に移動することになる。
例えば、先頭行番号が“0”で、今回検索に使用した中央行番号が“4”であれば、次回検索に使用する中央行番号は“2”になる(図3を参照)。
【0040】
一方、宛先IPアドレスのサブネットアドレスが検索IPアドレスより小さい場合には(ステップST5)、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索IPアドレス(アドレス値が小さい検索IPアドレス)を比較対象にするため、今回検索に使用した中央行番号を先頭行番号レジスタ11に上書きする(ステップST7)。
【0041】
これにより、中央行番号演算回路13は、次回検索に使用する中央行番号を演算する際、今回検索に使用した中央行番号(先頭行番号)と末尾行番号を用いて演算するので(ステップST8)、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より後の行番号に移動することになる。
例えば、今回検索に使用した中央行番号が“4”で、末尾行番号が“8”であれば、次回検索に使用する中央行番号は“6”になる。
【0042】
このようにして、中央行番号演算回路13が次回検索に使用する中央行番号を演算すると、その中央行番号に対応する検索テーブル15のメモリアドレスを生成することにより、上記と同様の比較処理を実行する。
なお、検索終了照合回路16が、前回の中央行番号と現在の中央行番号の一致を検出して、終了信号を出力するまで、上記の検索処理を繰り返し実行する(ステップST9)。
【0043】
例えば、図3の場合、4回検索処理を繰り返し、4回アドレスの一致を検出するため、ヒット時アドレス格納レジスタ20には、4回検索IPアドレスが格納されるが、最後に格納された検索IPアドレスがヒットアドレスとして出力される。
なお、行番号が“0”,“1”,“2”,“4”の検索IPアドレスには包含関係が存在するが、行番号が小さい検索IPアドレス程、サブネットアドレスが詳細に設定された検索IPアドレスであるので、2分検索装置からはサブネットアドレスが詳細に設定された検索IPアドレス(行番号が“0”の検索IPアドレス)が出力される。
【0044】
以上で明らかなように、この実施の形態1によれば、アドレス値が大きい順に登録された検索IPアドレスのうち、前回演算された中央行番号に位置する検索IPアドレスと宛先IPアドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索IPアドレスをヒット時アドレス格納レジスタ20に格納する一方、比較回路17の比較結果がアドレスの一致を示す場合又は宛先IPアドレスのサブネットアドレスが検索IPアドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先IPアドレスのサブネットアドレスが検索IPアドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索IPアドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索IPアドレスを提供することができる効果を奏する。
【0045】
実施の形態2.
上記実施の形態1では、アドレス値が大きい順に検索IPアドレスを登録し、各検索IPアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索IPアドレスを登録するものについて示したが、アドレス値が小さい順に検索IPアドレスを登録し、各検索IPアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索IPアドレスを登録するようにしてもよい。
【0046】
ただし、この場合には、比較器19の比較結果がアドレスの一致を示す場合又は宛先IPアドレスのサブネットアドレスが検索IPアドレスより大きい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索IPアドレス(アドレス値が大きい検索IPアドレス)を比較対象にするため、今回検索に使用した中央行番号を末尾行番号レジスタ12に上書きする。
【0047】
一方、比較器19の比較結果が、宛先IPアドレスのサブネットアドレスが検索IPアドレスより小さい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索IPアドレス(アドレス値が小さい検索IPアドレス)を比較対象にするため、今回検索に使用した中央行番号を先頭行番号レジスタ11に上書きする。
【0048】
実施の形態3.
図4はこの発明の実施の形態3による2分検索装置を示す構成図であり、図において、図1と同一符号は同一または相当部分を示すので説明を省略する。
21はセレクタ23が中央行番号を選択して出力すると、その中央行番号と先頭行番号から次回検索に使用する中央行番号を演算する中央行番号演算回路(演算手段)、22はセレクタ23が中央行番号を選択して出力すると、その中央行番号と末尾行番号から次回検索に使用する中央行番号を演算する中央行番号演算回路(演算手段)、23は比較回路17の比較結果がアドレスの一致を示す場合又は宛先IPアドレスのサブネットアドレスが検索IPアドレスより大きい旨を示す場合には、中央行番号演算回路21により演算された中央行番号を選択して出力し、宛先IPアドレスのサブネットアドレスが検索IPアドレスより小さい旨を示す場合には、中央行番号演算回路22により演算された中央行番号を選択して出力するセレクタ(演算手段)である。
【0049】
次に動作について説明する。
上記実施の形態1では、中央行番号演算回路13が比較回路17の比較結果を考慮して中央行番号を演算するものについて示したが、比較回路17が比較結果を出力する前に、予め、上方側に移動する場合の中央行番号と、下方側に移動する場合の中央行番号を演算し、比較回路17が比較結果を出力すると、その比較結果に応じて直ちに中央行番号を出力するようにしてもよい。
【0050】
これにより、比較回路17の比較処理と、中央行番号演算回路21,22の演算処理を並列して実行することができるため、上記実施の形態1よりも、検索処理の高速化を図ることができる効果を奏する。
【0051】
なお、中央行番号演算回路21,22の演算式は下記の通りである。
上方側に移動する場合の中央行番号=[X(n)+Z(n)]/2
下方側に移動する場合の中央行番号=[Z(n)+Y(n)]/2
ただし、
X(n)は前回の演算に使用された先頭行番号
Y(n)は前回の演算に使用された末尾行番号
Z(n)は前回の検索に使用された中央行番号
【0052】
実施の形態4.
上記実施の形態3では、アドレス値が大きい順に検索IPアドレスを登録し、各検索IPアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索IPアドレスを登録するものについて示したが、アドレス値が小さい順に検索IPアドレスを登録し、各検索IPアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索IPアドレスを登録するようにしてもよい。
【0053】
ただし、この場合には、比較回路17の比較結果がアドレスの一致を示す場合又は宛先IPアドレスのサブネットアドレスが検索IPアドレスより大きい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索IPアドレス(アドレス値が大きい検索IPアドレス)を比較対象にするため、中央行番号演算回路22により演算された中央行番号を選択して出力する。
【0054】
一方、比較回路17の比較結果が、宛先IPアドレスのサブネットアドレスが検索IPアドレスより小さい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索IPアドレス(アドレス値が小さい検索IPアドレス)を比較対象にするため、中央行番号演算回路21により演算された中央行番号を選択して出力する。
【0055】
【発明の効果】
以上のように、この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【0056】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【0057】
この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【0058】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【0059】
この発明によれば、演算手段が前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するように構成したので、複雑な構成を用いることなく、簡単に中央行番号を求めることができる効果がある。
【0060】
この発明によれば、比較手段が前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するように構成したので、複雑な構成を用いることなく、簡単に宛先アドレスのサブネットアドレスを特定することができる効果がある。
【0061】
この発明によれば、最後に格納手段に格納された検索アドレスをヒットアドレスとして出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【0062】
この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【0063】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【0064】
この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【0065】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【0066】
この発明によれば、前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するように構成したので、複雑な構成を用いることなく、簡単に中央行番号を求めることができる効果がある。
【0067】
この発明によれば、予め、検索アドレスのサブネットマスクを検索テーブルに登録し、前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するように構成したので、複雑な構成を用いることなく、簡単に宛先アドレスのサブネットアドレスを特定することができる効果がある。
【0068】
この発明によれば、最後にメモリに格納された検索アドレスをヒットアドレスとして出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【図面の簡単な説明】
【図1】この発明の実施の形態1による2分検索装置を示す構成図である。
【図2】この発明の実施の形態1による2分検索方法を示すフローチャートである。
【図3】検索IPアドレス等の登録例を示す説明図である。
【図4】この発明の実施の形態3による2分検索装置を示す構成図である。
【図5】従来の2分検索装置を示す構成図である。
【図6】ネットワークの包含関係を説明する説明図である。
【符号の説明】
13,21,22 中央行番号演算回路(演算手段)、15 検索テーブル、17 比較回路(比較手段)、20 ヒット時アドレス格納レジスタ(格納手段)、23 セレクタ(演算手段)。
Claims (14)
- アドレス値が大きい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、上記比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算する演算手段とを備えた2分検索装置。
- アドレス値が小さい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、上記比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算する演算手段とを備えた2分検索装置。
- アドレス値が大きい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、上記比較手段の比較結果に応じて何れか一方の中央行番号を出力する演算手段とを備えた2分検索装置。
- アドレス値が小さい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、上記比較手段の比較結果に応じて何れか一方の中央行番号を出力する演算手段とを備えた2分検索装置。
- 演算手段は、前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力することを特徴とする請求項1から請求項4のうちのいずれか1項記載の2分検索装置。
- 検索テーブルは検索アドレスのサブネットマスクを登録し、比較手段は前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定することを特徴とする請求項1から請求項5のうちのいずれか1項記載の2分検索装置。
- 最後に格納手段に格納された検索アドレスをヒットアドレスとして出力することを特徴とする請求項1から請求項6のうちのいずれか1項記載の2分検索装置。
- アドレス値が大きい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算する2分検索方法。
- アドレス値が小さい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算する2分検索方法。
- アドレス値が大きい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力する2分検索方法。
- アドレス値が小さい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力する2分検索方法。
- 前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力することを特徴とする請求項8から請求項11のうちのいずれか1項記載の2分検索方法。
- 予め、検索アドレスのサブネットマスクを検索テーブルに登録し、前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定することを特徴とする請求項8から請求項12のうちのいずれか1項記載の2分検索方法。
- 最後にメモリに格納された検索アドレスをヒットアドレスとして出力することを特徴とする請求項8から請求項13のうちのいずれか1項記載の2分検索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35360499A JP3626056B2 (ja) | 1999-12-13 | 1999-12-13 | 2分検索装置及び2分検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35360499A JP3626056B2 (ja) | 1999-12-13 | 1999-12-13 | 2分検索装置及び2分検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001167125A JP2001167125A (ja) | 2001-06-22 |
JP3626056B2 true JP3626056B2 (ja) | 2005-03-02 |
Family
ID=18431973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35360499A Expired - Fee Related JP3626056B2 (ja) | 1999-12-13 | 1999-12-13 | 2分検索装置及び2分検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3626056B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738377B1 (en) | 1999-01-29 | 2004-05-18 | International Business Machines Corporation | System and method for dynamic micro placement of IP connection filters |
US6643776B1 (en) | 1999-01-29 | 2003-11-04 | International Business Machines Corporation | System and method for dynamic macro placement of IP connection filters |
KR101514506B1 (ko) | 2010-01-06 | 2015-04-22 | 닛본 덴끼 가부시끼가이샤 | 통신 제어 시스템 및 통신 제어 방법 |
US8775726B2 (en) | 2012-07-27 | 2014-07-08 | International Business Machine Corporation | TCAM extended search function |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3573319B2 (ja) * | 1996-08-27 | 2004-10-06 | 日本電信電話株式会社 | Ipパケット転送処理装置における高速検索回路およびipパケット転送処理装置 |
JP3448470B2 (ja) * | 1997-09-26 | 2003-09-22 | 日本電信電話株式会社 | Ipアドレス検索テーブル作成方法 |
JPH11143888A (ja) * | 1997-11-05 | 1999-05-28 | Nippon Telegr & Teleph Corp <Ntt> | アドレス検索回路 |
-
1999
- 1999-12-13 JP JP35360499A patent/JP3626056B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001167125A (ja) | 2001-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2484442A1 (en) | Processing packets based on context indications | |
US20030065800A1 (en) | Method of generating of DFA state machine that groups transitions into classes in order to conserve memory | |
WO1996034479A1 (en) | Packet switching engine | |
US7469243B2 (en) | Method and device for searching fixed length data | |
CN106933854A (zh) | 短链接处理方法、装置及服务器 | |
US20030053460A1 (en) | Packet forwarding processing device | |
JP2552010B2 (ja) | 入力信号のマスク可能なバイレベル相関を行う方法及びその装置 | |
JP3626056B2 (ja) | 2分検索装置及び2分検索方法 | |
US20020143787A1 (en) | Fast classless inter-domain routing (CIDR) lookups | |
CN112417404B (zh) | 用户身份识别方法、计算设备及计算机存储介质 | |
US6950899B2 (en) | Associative memory device returning search results of a plurality of memory groups successively upon one search instruction | |
CN110971526A (zh) | 一种混合交换机fdb资源的流表扩展方法及装置 | |
US20020087935A1 (en) | Method and apparatus for finding variable length data patterns within a data stream | |
US6961337B2 (en) | Interleaved processing system for processing frames within a network router | |
CN110188274B (zh) | 搜索纠错方法及装置 | |
JP2000516776A (ja) | トランスフォームを生成する方法および装置 | |
CN111563580A (zh) | 一种卷积神经网络实现装置及方法 | |
CN110032366A (zh) | 一种代码定位方法及装置 | |
JP3589349B2 (ja) | 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体 | |
Wang et al. | Performance enhancement of IP forwarding by reducing routing table construction time | |
CN109088765A (zh) | 一种互连网络路由故障诊断方法及装置 | |
JP3662618B2 (ja) | マルチプロトコルアドレス検索用連想メモリおよびその検索方法 | |
JP2585895B2 (ja) | 通信制御装置と情報処理装置 | |
JP3614714B2 (ja) | Dma制御装置 | |
JP2010211389A (ja) | プロトコル処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041022 |
|
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: 20041102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041201 |
|
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: 20071210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |