(57)【要約】【課題】本来のルーティングエントリでルーティングされるようにする。キャッシュエントリの使用量を節約し、キャッシュエントリの使用効率を上げる。【解決手段】ルーティングメモリ格納テーブル２２中の一部のルーティングエントリを宛先アドレスのマスク長情報と共にキャッシュエントリとして記憶するキャッシュ用ルーティングエントリ格納メモリ中１２と、パケットの宛先アドレスに基づいてキャッシュ用ルーティングエントリ格納メモリ中１２を参照して宛先アドレスに対応するキャッシュエントリを検索する高速検索部１と、ルーティングメモリ格納テーブル２２を参照して宛先アドレスに対応するルーティングエントリを検索する通常検索部２と、通常検索部２で検索されたルーティングエントリに基づくキャッシュエントリをキャッシュ用ルーティングエントリ格納メモリ中１２に書き込むキャッシュ書き込み処理部２３とを備える。【選択図】　　図１
2004023450.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパケットの宛先アドレスに基づいてルーティングメモリを参照して前記パケットの転送経路を選択するルータ装置において、
ルーティングメモリ中の一部のルーティングエントリを前記宛先アドレスのマスク長情報と共にキャッシュエントリとして記憶しているキャッシュメモリと、前記パケットの宛先アドレスに基づいて前記キャッシュメモリを参照して当該宛先アドレスに対応するキャッシュエントリを検索する第１検索部と、
前記ルーティングメモリを参照して当該宛先アドレスに対応するルーティングエントリを検索する第２検索部と、
前記第２検索部で検索されたルーティングエントリを前記宛先アドレスのマスク長情報と共にキャッシュエントリとして前記キャッシュメモリに記憶する記憶部と、
前記第１又は第２検索部の検索結果を出力する出力部とを備えることを特徴とするルータ装置。
【請求項２】
前記第１検索部は、前記第２検索部が前記ルーティングメモリを検索するのに先だってキャッシュメモリを検索し、
前記第２検索部は、前記第１検索部の検索の結果、前記宛先アドレスに対応するキャッシュエントリが前記キャッシュメモリにない場合に前記ルーティングエントリを検索することを特徴とする請求項１記載のルータ装置。
【請求項３】
前記第１検索部は、入力されたパケットの宛先アドレスを取り出す取出部と、
前記ルーティングメモリ中のネットワークアドレスマスク長を抽出する抽出部と、
前記取出部で取り出した宛先アドレスを前記抽出部で抽出した最短のネットワークアドレスマスク長でマスクしたアドレスを作成する作成部と、
前記作成部によって作成した前記アドレスを仮想的なネットワークアドレスとみなして前記キャッシュメモリ内のキャッシュエントリを探索する探索部と、
前記探索部の探索の結果、前記キャッシュメモリにキャッシュエントリがあった場合に当該キャッシュエントリが関連するエントリ群からなるリンクエントリであるかを判定する判定部と、
前記判定部の判定の結果、前記キャッシュエントリがリンクエントリの場合に、当該判定部で前記キャッシュエントリがリンクエントリでないと判定されるまで前記抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部とを備えることを特徴とするルータ装置。
【請求項４】
前記第２検索部は、入力されたパケットの宛先アドレスを取り出す取出部と、
ルーティングテーブル中のネットワークアドレスマスク長を抽出する抽出部と、
前記取出部で取り出した宛先アドレスを前記抽出部で抽出したネットワークアドレスマスク長でマスクしたアドレスを作成する第１作成部と、
前記第１作成部で作成されたアドレスを示すルーティングエントリが前記ルーティングテーブルに存在するかどうか探索する第１探索部と、
前記第１作成部で作成されたアドレスが包含するルーティングエントリ群の中で前記抽出部で先に抽出しているネットワークアドレスマスク長よりも長いもののうち最短のネットワークアドレスマスク長を前記ルーティングテーブルから探索する第２探索部と、
前記第１及び第２の探索部の結果、前記ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在したときに前記リンクエントリを作成する第２作成部と、
前記第１及び第２の探索部の結果、前記ルーティングエントリが存在し、前記最短のネットワークアドレスマスク長が存在したとき、及び前記第２作成部でリンク用キャッシュエントリを作成した後に、前記抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部と、
前記第１及び第２の探索部の結果、前記ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在しないときにルーティングに必要な情報を格納した最終キャッシュエントリを作成する第３作成手段とを備えることを特徴とするルータ装置。
【請求項５】
さらに、前記キャッシュメモリ及び前記ルーティングメモリの状態を管理するキャッシュ管理部を備える請求項１から４の何れか１項記載のルータ装置。
【請求項６】
前記キャッシュ管理部は、前記ルーティングメモリにルーティングエントリが追加されたときに当該ルーティングエントリのネットワークアドレスのネットワークアドレスマスク長を取り出す取出部と、
前記ネットワークアドレスを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリを探索する探索部と、
前記探索部の探索の結果、キャッシュエントリが見つかった場合には、当該キャッシュエントリがリンク処理を示しているか判別する第１判別部と、
前記第１判別部の判別の結果、前記キャッシュエントリがリンク処理を示している場合には当該キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長より短いかどうかを判別する第２判別部と、
前記第１判別部の判別の結果、前記キャッシュエントリがリンク処理を示していない場合か、前記第２判別部の判別の結果、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長より長い場合には、当該キャッシュエントリの中のリンク処理で使用する次のネットワークアドレスマスク長に更新する第１更新部と、
前記探索部の探索の結果、キャッシュエントリが見つからなかった場合は、最短のネットワークアドレスマスク長が追加されたルーティングエントリのネットワークアドレスマスク長未満であるかを判別する第３判別部と、
前記第３判別部の判別の結果、最短のネットワークアドレスマスク長が追加されたルーティングエントリのネットワークアドレスマスク長未満である場合には、当該最短のネットワークアドレスマスク長を追加されたルーティングエントリのネットワークアドレスマスク長で更新する第２更新部とを備えることを特徴とする請求項５記載のルータ装置。
【請求項７】
前記キャッシュ管理部は、前記ルーティングメモリからルーティングエントリが削除されたときに当該ルーティングエントリのネットワークアドレスのネットワークアドレスマスク長を取り出す第２取出部と、
前記ネットワークアドレスを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリを探索する第２探索部と、
前記第２探索部の探索の結果、キャッシュエントリが見つかった場合には、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が、削除されたネットワークアドレスマスク長より短いかどうかを判別する第３判別部と、
前記第３判別部の判別の結果、リンク処理で使用する次のネットワークアドレスマスク長が、削除されたネットワークアドレスマスク長より長い場合には、削除されたネットワークアドレスを包含するルーティングエントリの中から、当該削除されたネットワークアドレスマスク長と同じマスク長を有する他のルーティングエントリが存在するか探索する第３探索部と、
前記第３探索部の探索の結果、前記他のルーティングエントリが存在しない場合に前記第２探索部で探索したキャッシュエントリを削除する削除部と、
前記第２探索部の探索の結果、キャッシュエントリが見つからなかった場合には、前記最短のネットワークアドレスマスク長が削除されたルーティングエントリのネットワークアドレスマスク長であるかを判別する第４判別部と、
前記第４判別部の判別の結果、前記最短のネットワークアドレスマスク長が削除されたルーティングエントリのネットワークアドレスマスク長である場合には、削除されたネットワークアドレスを包含するルーティングエントリの中から、削除されたネットワークアドレスマスク長と同じマスク長を有する他のルーティングエントリが存在するか探索する第３探索部と、
前記第３探索部の探索の結果、前記他のルーティングエントリが見つからなかった場合は、前記最短のネットワークアドレスマスク長を、前記ルーティングメモリ内の一番短いマスク長のルーティングエントリのマスク長で更新する第３更新部とを備えることを特徴とする請求項５又は６記載のルータ装置。
【請求項８】
前記キャッシュ管理部は、前記キャッシュメモリを監視し、一定時間以上使用されていないキャッシュエントリを削除することを特徴とする請求項５から７の何れか１項記載のルータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ルータ装置に関する。
【０００２】
【従来の技術】
従来、高速なルータ装置を作成するためには、ルーティング処理を専用ハードウェアで処理することが一つの手法であった。だが、ルータ装置が保持するルーティングテーブルが大きいので、専用ハードウェアの限られた記憶容量にその全てのルーティングテーブルを記憶できるようにすると、専用ハードウェアを大容量に構成する必要があり非常に高価になった。
【０００３】
高速かつ安価なルータ装置を作成するためには、ソフトウェアが全てのルーティングテーブルを保持し、一部の使用頻度の高いルーティングテーブルのルーティングエントリを専用ハードウェアにキャッシングするようにし、専用ハードウェアでの検索の結果、目的の情報が得られなかった場合にソフトウェアのルーティングテーブルを探索するように構成していた。
【０００４】
【発明が解決しようとする課題】
しかし、従来の技術は、以下のような問題がある。すなわち、ルーティングテーブルの探索法は最長一致探索（以下、「ロンゲストマッチ」と称する。）という特徴を有しており、複数の条件が一致するルーティングエントリの中から優先度の高いルーティングエントリ、すなわちネットワークアドレスマスクの長いルーティングエントリを採用する必要がある。
【０００５】
このようなロンゲストマッチができ、三値検索能力を備えたＣＡＭも存在するが、その値段は高価であり、また容量は小さく、装置実装時には大消費電力かつ基板上の実装面積の問題も解決しなければならないため、小型で安価な装置を考えた場合には、安価で汎用的なフルマッチ検索機能を有したハードウェアを使用することになる。
【０００６】
また、そのようなＣＡＭを使用した場合で、ルーティングテーブル内のある一つのルーティングエントリをキャッシュすることを考えると、そのキャッシュするルーティングエントリより優先度の高いルーティングエントリがキャッシュされてないために、誤ってそのキャッシュするルーティングエントリでルーティングすることがある。
【０００７】
これを防止するためには、そのキャッシュするルーティングエントリより優先度の高い関連する全てのルーティングエントリをＣＡＭ上に同時にキャッシュする必要が出てきてしまい、キャッシュエントリ数よりルーティングテーブル数の方が多いネットワークで使用することはできなくなる。
【０００８】
例えば、デフォルトゲートウェイと１００個のルーティングエントリを備えるルータ装置では、デフォルトゲートウェイをキャッシュするには、そのＣＡＭにその他の１００個のルーティングエントリ全てもキャッシュする必要が出てくることになる。
【０００９】
従って、ルーティングテーブルのキャッシュは、処理したパケットの宛先ＩＰアドレスに対して行う方法がポピュラーだが、この場合のキャッシュエントリはマスクしていない。そのため、同じルーティングエントリでルーティングされた複数の宛先ＩＰアドレスへの通信をキャッシュすると、その宛先ＩＰアドレスの数分のキャッシュエントリが作成されるとう事態が生じる。
【００１０】
こうなると、もともと少ない専用ハードウェアの記憶容量を圧迫すると同時に、検索のヒット率が上がらず、書き込み頻度が高くなり、キャッシュの効率が落ち、スループットが低下する。
【００１１】
そこで、本発明は、ルーティングテーブルの一部分をキャッシングしても、本来ルーティングされるべきではないルーティングエントリでルーティングすることなくルーティングできるようにすると共に、キャッシュエントリの使用量を節約し、キャッシュエントリの使用効率を上げるようにすることを課題とする。
【００１２】
【課題を解決するための手段】
上記課題を解決するために、本発明は、入力されたパケットの宛先アドレスに基づいてルーティングメモリを参照して前記パケットの転送経路を選択するルータ装置において、ルーティングメモリ中の一部のルーティングエントリを前記宛先アドレスのマスク長情報と共にキャッシュエントリとして記憶しているキャッシュメモリと、前記パケットの宛先アドレスに基づいて前記キャッシュメモリを参照して当該宛先アドレスに対応するキャッシュエントリを検索する第１検索部と、前記ルーティングメモリを参照して当該宛先アドレスに対応するルーティングエントリを検索する第２検索部と、前記第２検索部で検索されたルーティングエントリを前記宛先アドレスのマスク長情報と共にキャッシュエントリとして前記キャッシュメモリに記憶する記憶部と、前記第１又は第２検索部の検索結果を出力する出力部とを備える。
【００１３】
すなわち、本発明は、例えばＩＰアドレスのロンゲストマッチという特徴を有するルーティングテーブルの中の、参照頻度の高いルーティングエントリを高速メモリであるキャッシュメモリにキャシングしてルーティング処理を高速化する。そして、ＩＰアドレスのマスク長情報と共にＩＰアドレス情報をキャッシュテーブルに登録しておき、より長いマッチングの可能性のあるルーティングエントリが存在する場合には、関係する全てのエントリをキャッシュテーブルに登録し、ロンゲストマッチを実現するために関係する複数エントリの存在を意識したキャッシュエントリの検索を行うものである。
【００１４】
具体的には、マスク長の短いルーティングエントリから順に検索を行い、ロンゲストマッチ処理を行う。また、実際のルーティングテーブルには存在しない仮想ルーティングエントリを作成することにより、部分的なキャッシュを行っているときにロンゲストマッチにおける優先度の問題を解消する。
【００１５】
こうして、キャッシュメモリ内のエントリ数を必要最小限に抑えられるようにして、エントリの検索時間の短縮化、キャッシュメモリの使用効率の向上が実現しようとしている。
【００１６】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【００１７】
［構成の説明］
図１は、本発明の実施形態のルータ装置の模式的な内部構成を示すブロック図である。図１には、キャッシュメモリを使った探索を行う第１検索部である高速検索部１と、キャッシュメモリで探索できなかったルーティングテーブルを探索する第２検索部である通常検索部２と、キャッシュメモリの状態を管理するキャッシュ管理部３とを示している。
【００１８】
高速検索部１は、ルーティングテーブル中の一部のルーティングエントリを記憶しているキャッシュ用ルーティングエントリ格納メモリ（キャッシュメモリ）１２と、入力されたパケットの宛先ＩＰアドレスの検索要求に対してキャッシュ用ルーティングエントリ格納メモリ１２に対して検索処理を実行し、その結果によって検索結果を出力するか、通常検索部２への検索要求を行うキャッシュ検索処理部１１とを備えている。
【００１９】
キャッシュ検索処理部１１は、入力されたパケットの宛先ＩＰアドレスなどの宛先アドレスを取り出す取出部と、キャッシュ用ルーティングエントリ格納メモリ１２中のネットワークアドレスマスク長を抽出する抽出部と、取出部で取り出した宛先アドレスを抽出部で抽出した最短のネットワークアドレスマスク長でマスクしたアドレスを作成する作成部と、作成部によって作成したアドレスを仮想的なネットワークアドレスとみなしてキャッシュ用ルーティングエントリ格納メモリ１２内のキャッシュエントリを探索する探索部と、探索部の探索の結果、キャッシュ用ルーティングエントリ格納メモリ１２にキャッシュエントリがあった場合に当該キャッシュエントリが関連するエントリ群からなるリンクエントリであるかを判定する判定部と、判定部の判定の結果、キャッシュエントリがリンクエントリの場合に、判定部で前記キャッシュエントリがリンクエントリでないと判定されるまで抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部とを備えている。
【００２０】
通常検索部２は、ルーティングテーブルを記憶しているルーティングテーブル格納メモリ２２と、高速検索部１より要求された検索要求に対してルーティングテーブル格納メモリ２２を検索し検索結果を出力するルーティングテーブル検索処理部２１と、ルーティングテーブル検索処理部２１からの検索結果をキャッシュ用ルーティングエントリ格納メモリ１２へ格納するキャッシュ書き込み処理部２３とを備えている。
【００２１】
ルーティングテーブル検索処理部２１は、入力されたパケットの宛先アドレスを取り出す取出部と、ルーティングテーブル格納メモリ２２中のネットワークアドレスマスク長を抽出する抽出部と、取出部で取り出した宛先アドレスを抽出部で抽出したネットワークアドレスマスク長でマスクしたアドレスを作成する第１作成部と、第１作成部で作成されたアドレスを示すルーティングエントリがルーティングテーブル格納メモリ２２に存在するかどうか探索する第１探索部と、第１作成部で作成されたアドレスが包含するルーティングエントリ群の中で抽出部で先に抽出しているネットワークアドレスマスク長よりも長いもののうち最短のネットワークアドレスマスク長をルーティングテーブル格納メモリ２２から探索する第２探索部と、第１及び第２の探索部の結果、ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在したときにリンクエントリを作成する第２作成部と、第１及び第２の探索部の結果、ルーティングエントリが存在し、最短のネットワークアドレスマスク長が存在したとき、及び第２作成部でリンク用キャッシュエントリを作成した後に、抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部と、第１及び第２の探索部の結果、ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在しないときにルーティングに必要な情報を格納した最終キャッシュエントリを作成する第３作成手段とを備えている。
【００２２】
キャッシュ管理部３は、ルーティングプロトコルなどからのルーティングテーブル更新要求を処理し、ルーティングテーブル格納メモリ２２を更新したり、その更新結果を以下のキャッシュ管理処理部３２に通知するルーティングテーブル管理処理部３１と、ルーティングテーブル管理処理部３１からの通知を元にキャッシュ用ルーティングエントリ格納メモリ１２の状態を管理し必要に応じてキャッシュ用ルーティングエントリ格納メモリ１２の内容を更新するキャッシュ管理処理部３２と、キャッシュ用ルーティングエントリ格納メモリ１２の各キャッシュエントリを監視して使用頻度の低いキャッシュエントリの削除を行うためのキャッシュ監視タイマ処理部３３とを備えている。
【００２３】
キャッシュ管理処理部３２は、ルーティングテーブル格納メモリ２２にルーティングエントリが追加されたときに当該ルーティングエントリのネットワークアドレスのネットワークアドレスマスク長を取り出す取出部と、ネットワークアドレスを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリを探索する探索部と、探索部の探索の結果、キャッシュエントリが見つかった場合には、当該キャッシュエントリがリンク処理を示しているか判別する第１判別部と、第１判別部の判別の結果、前記キャッシュエントリがリンク処理を示している場合には当該キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長より短いかどうかを判別する第２判別部と、第１判別部の判別の結果、前記キャッシュエントリがリンク処理を示していない場合か、第２判別部の判別の結果、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長より長い場合には、当該キャッシュエントリの中のリンク処理で使用する次のネットワークアドレスマスク長に更新する第１更新部と、探索部の探索の結果、キャッシュエントリが見つからなかった場合は、最短のネットワークアドレスマスク長が追加されたルーティングエントリのネットワークアドレスマスク長未満であるかを判別する第３判別部と、第３判別部の判別の結果、最短のネットワークアドレスマスク長が追加されたルーティングエントリのネットワークアドレスマスク長未満である場合には、当該最短のネットワークアドレスマスク長を追加されたルーティングエントリのネットワークアドレスマスク長で更新する第２更新部とを備えている。
【００２４】
［動作の説明］
つぎに、図１のルータの動作について説明する。
【００２５】
図２は、図１の高速検索部１の動作を示すフローチャートである。
【００２６】
まず、キャッシュ検索処理部１１は、装置に入力されたパケットの宛先ＩＰアドレスＤを取り出す（ステップＳ１）。
【００２７】
そして、キャッシュ検索処理部１１は、装置に備えるルーティングテーブル中の最短のネットワークアドレスマスク長Ｍｍを取り出し、ネットワークアドレスマスク長Ｍｃとして記憶する（ステップＳ２）。
【００２８】
そして、キャッシュ検索処理部１１は、宛先ＩＰアドレスＤをネットワークアドレスマスク長ＭｃでマスクしたＩＰアドレスＮｃを作成する（ステップＳ３）。
【００２９】
それから、キャッシュ検索処理部１１は、ＩＰアドレスＮｃを仮想的なネットワークアドレスと見て、キャッシュ用ルーティングエントリ格納メモリ１２内のエントリを探索する（ステップＳ４）。
【００３０】
キャッシュ検索処理部１１は、キャッシュ用ルーティングエントリ格納メモリ１２内のキャッシュエントリを探索した結果、キャッシュエントリが見つかったかどうか判定する（ステップＳ５）。
【００３１】
判定の結果、キャッシュエントリが見つからなかった場合は、キャッシュ検索処理を終了し、通常検索部２へ処理を引き継ぐ。
【００３２】
逆に、判定の結果、キャッシュエントリが見つかった場合は、キャッシュ検索処理部１１は、さらにそのキャッシュエントリがリンクエントリであるかを判定する（ステップＳ６）。
【００３３】
判定の結果、リンクエントリでなかった場合は、キャッシュ検索処理部１１は、キャッシュ用ルーティングエントリ格納メモリ１２に目的のキャッシュエントリがあったと判断し、検索処理を終了し、検索結果としてキャッシュエントリの内容を出力する。
【００３４】
逆に、判定の結果、見つかったキャッシュエントリがリンクエントリであった場合は、キャッシュ検索処理部１１は、現在のネットワークアドレスのマスク長Ｍｃより長いマスク長のネットワークがルーティングテーブル上に存在することを意味するので、そのリンクエントリから新しいネットワークアドレスマスク長を取り出してＭｃを更新する（ステップＳ７）。
【００３５】
その後、ステップＳ３に戻る。
【００３６】
図３は、図１の通常検索部２の動作を示すフローチャートである。
【００３７】
まず、ルーティングテーブル検索処理部２１は、キャッシュ検索処理部１１でキャッシュにマッチしなかった宛先ＩＰアドレスＤを受け取り、一般的なルーティングテーブル検索アルゴリズムを用いて、ルーティングテーブル格納メモリ２２のルーティングエントリを検索する。
【００３８】
検索の結果、見つかったルーティングエントリは、宛先ＩＰアドレスＤと共に、キャッシュ書き込み処理部２３に渡される。
【００３９】
キャッシュ書き込み処理部２３は、ルーティングテーブル検索処理部２１から宛先ＩＰアドレスＤを取得する（ステップＷ１）。
【００４０】
そして、ルーティングテーブル検索処理部２１は、ルーティングテーブル格納メモリ２２中の最短のネットワークアドレスマスク長Ｍｃを取り出す（ステップＷ２）。
【００４１】
そして、ルーティングテーブル検索処理部２１は、宛先ＩＰアドレスＤをネットワークアドレスマスク長ＭｃでマスクしたＩＰアドレスＮｃを作成する（ステップＷ３）。
【００４２】
それから、ルーティングテーブル検索処理部２１は、ＩＰアドレスＮｃを仮想的なネットワークアドレスとみなして、ＩＰアドレスＮｃが包含するルーティングエントリ群の中から、最短のネットワークアドレスマスク長Ｍｃより長いマスク長を有する最短のマスク長Ｍｎを、ルーティングテーブル格納メモリ２２内から探索する（ステップＷ４）。
【００４３】
ルーティングテーブル検索処理部２１は、ルーティングテーブル格納メモリ２２を探索した結果、最短のネットワークアドレスマスク長Ｍｃより長いマスク長を有する最短のマスク長Ｍｎが存在したかどうか判定する（ステップＷ５）。
【００４４】
判定の結果、最短のネットワークアドレスマスク長Ｍｃより長いマスク長を有する最短のマスク長Ｍｎが存在した場合は、ＩＰアドレスＮｃを示すキャッシュエントリが存在するかどうか探索する（ステップＷ６）。
【００４５】
そして、ＩＰアドレスＮｃを示すキャッシュエントリが存在するかどうか判別する（ステップＷ７）。
【００４６】
判別の結果、ＩＰアドレスＮｃを示すエントリがない場合は、新規に次に検索するマスク長Ｍｎを格納したＩＰアドレスＮｃを示すリンクエントリを作成する（ステップＷ８）。
【００４７】
一方、判別の結果、ＩＰアドレスＮｃを示すエントリがあった場合は、リンクエントリの作成処理を行わない。そして、最短のネットワークアドレスマスク長Ｍｃを、マスク長Ｍｎで更新する（ステップＷ９）。
【００４８】
その後、ステップＷ３へ戻る。
【００４９】
また、判定の結果、マスク長Ｍｎが存在しなかった場合は、ＩＰアドレスＮｃを示すキャッシュエントリが存在するかどうか探索する（ステップＷ１０）。
【００５０】
そして、ＩＰアドレスＮｃを示すキャッシュエントリが存在するかどうか判別する（ステップＷ１１）。
【００５１】
判定の結果、キャッシュエントリがない場合は、出力インターフェースやネクストホップなどのルーティングに必要な情報を格納した最終キャッシュエントリを作成する（ステップＷ１２）。
【００５２】
その後、処理を終了する。
【００５３】
一方、判別の結果、キャッシュエントリがあった場合は、最終キャッシュエントリの作成処理を行わずに処理を終了する。
【００５４】
図４，図５は、図１のキャッシュ管理部３の動作を示すフローチャートである。
【００５５】
ルーティングテーブル管理処理部３１は、一般的なルーティングプロトコルを使用するか、装置に対する設定の変更により、ルーティングテーブルの変化を検出し、キャッシュ管理処理部３２へ、ルーティングテーブルへのルーティングエントリの追加・削除の情報を出力する。
【００５６】
キャッシュ管理処理部３２は、ルーティングテーブル管理処理部３１から出力された情報に基づき、キャッシュ用ルーティングエントリ格納メモリ１２内のキャッシュエントリを変更・削除する。
【００５７】
ルーティングエントリが追加された場合は、まず、追加されたルーティングエントリのネットワークアドレスＮａのネットワークアドレスマスク長Ｍａを取り出す（図４のステップＡ１）。
【００５８】
そして、追加されたネットワークアドレスＮａを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリＮｐを探索する（ステップＡ２）。そして、キャッシュエントリＮｐが見つかったかどうかを判別する（ステップＡ３）。
【００５９】
ステップＡ３の結果、キャッシュエントリＮｐが見つかった場合には、キャッシュエントリＮｐがリンク処理を示しているか判別する（ステップＡ４）。
【００６０】
ステップＡ４の判定の結果、キャッシュエントリＮｐがリンク処理を示している場合は、キャッシュエントリＮｐの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長Ｍａより短いかどうかを判別する（ステップＡ５）。
【００６１】
ステップＡ４の結果、キャッシュエントリＮｐがリンク処理を示していない場合か、ステップＡ５の結果、キャッシュエントリＮｐの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長Ｍａより長い場合は、そのキャッシュエントリＮｐの中のリンク処理で使用する次のネットワークアドレスマスク長を追加されたネットワークアドレスマスク長Ｍａに更新して、処理を終了する（ステップＡ６）。
【００６２】
ステップＡ５の結果、キャッシュエントリＮｐの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長Ｍａより短いか同じである場合には、図４に示す処理を終了する。
【００６３】
ステップＡ３の結果、キャッシュエントリが見つからなかった場合は、最短のネットワークアドレスマスク長Ｍｍが追加されたルーティングエントリのネットワークアドレスマスク長Ｍａ未満であるかを判別する（ステップＡ７）。
【００６４】
ステップＡ７の結果、最短のネットワークアドレスマスク長Ｍｍが追加されたルーティングエントリのネットワークアドレスマスク長Ｍａ未満である場合には、最短のネットワークアドレスマスク長Ｍｍを追加されたルーティングエントリのネットワークアドレスマスク長Ｍａで更新する（ステップＡ８）。
【００６５】
逆に、最短のネットワークアドレスマスク長Ｍｍが追加されたルーティングエントリのネットワークアドレスマスク長Ｍａ未満である場合には、図４に示す処理を終了する。
【００６６】
ルーティングエントリが削除された場合は、まず、削除されたルーティングエントリのネットワークアドレスＮｄのネットワークアドレスマスク長Ｍｄを取り出す（図５のステップＤ１）。
【００６７】
そして、削除されたネットワークアドレスＮｄを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリＮｐを探索する（ステップＤ２）。そして、キャッシュエントリＮｐが見つかったかどうかを判別する（ステップＤ３）。
【００６８】
ステップＤ３の結果、キャッシュエントリＮｐが見つかった場合は、キャッシュエントリＮｐはリンク処理を示しているので、キャッシュエントリＮｐの示すリンク処理で使用する次のネットワークアドレスマスク長が削除されたネットワークアドレスマスク長Ｍｄより短いかどうかを判別する（ステップＤ４）。
【００６９】
ステップＤ４の結果、リンク処理で使用する次のネットワークアドレスマスク長が削除されたネットワークアドレスマスク長Ｍｄより長いか同じ場合は、削除されたネットワークアドレスＮｄを包含するルーティングエントリの中から、削除されたネットワークアドレスマスク長Ｍｄと同じマスク長を有する他のルーティングエントリが存在するか探索する（ステップＤ５）。
【００７０】
ステップＤ５の結果、他のルーティングエントリが存在しないならば、キャッシュエントリＮｐを削除する（ステップＤ６）。ステップＤ４の結果、リンク処理で使用する次のネットワークアドレスマスク長が削除されたネットワークアドレスマスク長Ｍｄより短い場合か、ステップＤ５の結果、他のルーティングエントリが存在する場合は、図５に示す処理を終了する。
【００７１】
ステップＤ３の結果、キャッシュエントリＮｐが見つからなかった場合は、最短のネットワークアドレスマスク長Ｍｍが削除されたルーティングエントリのネットワークアドレスマスク長Ｍｄであるかを判別する（ステップＤ７）。
【００７２】
ステップＤ７の結果、最短のネットワークアドレスマスク長Ｍｍが削除されたルーティングエントリのネットワークアドレスマスク長Ｍｄである場合には、削除されたネットワークアドレスＮｄを包含するルーティングエントリの中から、削除されたネットワークアドレスマスク長Ｍｄと同じマスク長を有する他のルーティングエントリが存在するか探索する（ステップＤ８）。
【００７３】
ステップＤ８の結果、ルーティングエントリが見つからなかった場合は、最短のネットワークアドレスマスク長Ｍｍを、一番短いマスク長を有するルーティングエントリのマスク長で更新する（ステップＤ９）。
【００７４】
逆に、ステップＤ７の結果、最短のネットワークアドレスマスク長Ｍｍが削除されたルーティングエントリのネットワークアドレスマスク長Ｍｄでない場合か、ステップＤ８の結果、ルーティングエントリ見つかった場合は、図５に示す処理を終了する。
【００７５】
キャッシュ監視タイマ処理部３３は、キャッシュ用ルーティングエントリ格納メモリ１２を監視し、一定時間以上使用されていないキャッシュエントリを削除する。
【００７６】
本発明の実施形態は、高速検索用の専用ハードウェアを用意しても、ソフトウェアで同等のロジックを組んでも良い。
【００７７】
【発明の効果】
以上、説明したように、本発明によると、利用しているルーティングテーブルのルーティングエントリだけをキャッシングするため、記憶しておくキャッシュメモリを減らすことができ、また検索する対象のキャッシュメモリが小さくなることで検索エンジン自体を小型化することができる。
【００７８】
このため、キャッシュメモリを小容量化することが可能になるので、製品コストを抑えることができるようになることができる。また、キャッシュメモリが小容量化しているので、検索処理能力を向上することができる。
【図面の簡単な説明】
【図１】本発明の実施形態のルータ装置の模式的な内部構成を示すブロック図である。
【図２】図１の高速検索部１の動作を示すフローチャートである。
【図３】図１の通常検索部２の動作を示すフローチャートである。
【図４】図１のキャッシュ管理部３の動作を示すフローチャートである。
【図５】図１のキャッシュ管理部３の動作を示すフローチャートである。
【符号の説明】
１　高速検索部
２　通常検索部
３　キャッシュ管理部
１１　キャッシュ検索処理部
１２　キャッシュ用ルーティングエントリ格納メモリ
２１　ルーティングテーブル検索処理部
２２　ルーティングテーブル格納メモリ
２３　キャッシュ書き込み処理部
３１　ルーティングテーブル管理処理部
３２　キャッシュ管理処理部
３３　キャッシュ監視タイマ処理部
【図１】
2004023450.tif 000003
【図２】
2004023450.tif 000004
【図３】
2004023450.tif 000005
【図４】
2004023450.tif 000006
【図５】
2004023450.tif 000007