JP3957570B2 - ルータ装置 - Google Patents
ルータ装置 Download PDFInfo
- Publication number
- JP3957570B2 JP3957570B2 JP2002175777A JP2002175777A JP3957570B2 JP 3957570 B2 JP3957570 B2 JP 3957570B2 JP 2002175777 A JP2002175777 A JP 2002175777A JP 2002175777 A JP2002175777 A JP 2002175777A JP 3957570 B2 JP3957570 B2 JP 3957570B2
- Authority
- JP
- Japan
- Prior art keywords
- network address
- entry
- unit
- mask length
- routing
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、ルータ装置に関する。
【0002】
【従来の技術】
従来、高速なルータ装置を作成するためには、ルーティング処理を専用ハードウェアで処理することが一つの手法であった。だが、ルータ装置が保持するルーティングテーブルが大きいので、専用ハードウェアの限られた記憶容量にその全てのルーティングテーブルを記憶できるようにすると、専用ハードウェアを大容量に構成する必要があり非常に高価になった。
【0003】
高速かつ安価なルータ装置を作成するためには、ソフトウェアが全てのルーティングテーブルを保持し、一部の使用頻度の高いルーティングテーブルのルーティングエントリを専用ハードウェアにキャッシングするようにし、専用ハードウェアでの検索の結果、目的の情報が得られなかった場合にソフトウェアのルーティングテーブルを探索するように構成していた。
【0004】
【発明が解決しようとする課題】
しかし、従来の技術は、以下のような問題がある。すなわち、ルーティングテーブルの探索法は最長一致探索(以下、「ロンゲストマッチ」と称する。)という特徴を有しており、複数の条件が一致するルーティングエントリの中から優先度の高いルーティングエントリ、すなわちネットワークアドレスマスクの長いルーティングエントリを採用する必要がある。
【0005】
このようなロンゲストマッチができ、三値検索能力を備えたCAMも存在するが、その値段は高価であり、また容量は小さく、装置実装時には大消費電力かつ基板上の実装面積の問題も解決しなければならないため、小型で安価な装置を考えた場合には、安価で汎用的なフルマッチ検索機能を有したハードウェアを使用することになる。
【0006】
また、そのようなCAMを使用した場合で、ルーティングテーブル内のある一つのルーティングエントリをキャッシュすることを考えると、そのキャッシュするルーティングエントリより優先度の高いルーティングエントリがキャッシュされてないために、誤ってそのキャッシュするルーティングエントリでルーティングすることがある。
【0007】
これを防止するためには、そのキャッシュするルーティングエントリより優先度の高い関連する全てのルーティングエントリをCAM上に同時にキャッシュする必要が出てきてしまい、キャッシュエントリ数よりルーティングテーブル数の方が多いネットワークで使用することはできなくなる。
【0008】
例えば、デフォルトゲートウェイと100個のルーティングエントリを備えるルータ装置では、デフォルトゲートウェイをキャッシュするには、そのCAMにその他の100個のルーティングエントリ全てもキャッシュする必要が出てくることになる。
【0009】
従って、ルーティングテーブルのキャッシュは、処理したパケットの宛先IPアドレスに対して行う方法がポピュラーだが、この場合のキャッシュエントリはマスクしていない。そのため、同じルーティングエントリでルーティングされた複数の宛先IPアドレスへの通信をキャッシュすると、その宛先IPアドレスの数分のキャッシュエントリが作成されるとう事態が生じる。
【0010】
こうなると、もともと少ない専用ハードウェアの記憶容量を圧迫すると同時に、検索のヒット率が上がらず、書き込み頻度が高くなり、キャッシュの効率が落ち、スループットが低下する。
【0011】
そこで、本発明は、ルーティングテーブルの一部分をキャッシングしても、本来ルーティングされるべきではないルーティングエントリでルーティングすることなくルーティングできるようにすると共に、キャッシュエントリの使用量を節約し、キャッシュエントリの使用効率を上げるようにすることを課題とする。
【0012】
【課題を解決するための手段】
上記課題を解決するために、本発明は、入力されたパケットの宛先アドレスに基づいてルーティングメモリを参照して前記パケットの転送経路を選択するルータ装置において、ルーティングメモリ中の一部のルーティングエントリを前記宛先アドレスのマスク長情報と共にキャッシュエントリとして記憶しているキャッシュメモリと、前記パケットの宛先アドレスに基づいて前記キャッシュメモリを参照して当該宛先アドレスに対応するキャッシュエントリを検索する第1検索部と、前記ルーティングメモリを参照して当該宛先アドレスに対応するルーティングエントリを検索する第2検索部と、前記第2検索部で検索されたルーティングエントリを前記宛先アドレスのマスク長情報と共にキャッシュエントリとして前記キャッシュメモリに記憶する記憶部と、前記第1又は第2検索部の検索結果を出力する出力部とを備える。
【0013】
すなわち、本発明は、例えばIPアドレスのロンゲストマッチという特徴を有するルーティングテーブルの中の、参照頻度の高いルーティングエントリを高速メモリであるキャッシュメモリにキャシングしてルーティング処理を高速化する。そして、IPアドレスのマスク長情報と共にIPアドレス情報をキャッシュテーブルに登録しておき、より長いマッチングの可能性のあるルーティングエントリが存在する場合には、関係する全てのエントリをキャッシュテーブルに登録し、ロンゲストマッチを実現するために関係する複数エントリの存在を意識したキャッシュエントリの検索を行うものである。
【0014】
具体的には、マスク長の短いルーティングエントリから順に検索を行い、ロンゲストマッチ処理を行う。また、実際のルーティングテーブルには存在しない仮想ルーティングエントリを作成することにより、部分的なキャッシュを行っているときにロンゲストマッチにおける優先度の問題を解消する。
【0015】
こうして、キャッシュメモリ内のエントリ数を必要最小限に抑えられるようにして、エントリの検索時間の短縮化、キャッシュメモリの使用効率の向上が実現しようとしている。
【0016】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【0017】
[構成の説明]
図1は、本発明の実施形態のルータ装置の模式的な内部構成を示すブロック図である。図1には、キャッシュメモリを使った探索を行う第1検索部である高速検索部1と、キャッシュメモリで探索できなかったルーティングテーブルを探索する第2検索部である通常検索部2と、キャッシュメモリの状態を管理するキャッシュ管理部3とを示している。
【0018】
高速検索部1は、ルーティングテーブル中の一部のルーティングエントリを記憶しているキャッシュ用ルーティングエントリ格納メモリ(キャッシュメモリ)12と、入力されたパケットの宛先IPアドレスの検索要求に対してキャッシュ用ルーティングエントリ格納メモリ12に対して検索処理を実行し、その結果によって検索結果を出力するか、通常検索部2への検索要求を行うキャッシュ検索処理部11とを備えている。
【0019】
キャッシュ検索処理部11は、入力されたパケットの宛先IPアドレスなどの宛先アドレスを取り出す取出部と、キャッシュ用ルーティングエントリ格納メモリ12中のネットワークアドレスマスク長を抽出する抽出部と、取出部で取り出した宛先アドレスを抽出部で抽出した最短のネットワークアドレスマスク長でマスクしたアドレスを作成する作成部と、作成部によって作成したアドレスを仮想的なネットワークアドレスとみなしてキャッシュ用ルーティングエントリ格納メモリ12内のキャッシュエントリを探索する探索部と、探索部の探索の結果、キャッシュ用ルーティングエントリ格納メモリ12にキャッシュエントリがあった場合に当該キャッシュエントリが関連するエントリ群からなるリンクエントリであるかを判定する判定部と、判定部の判定の結果、キャッシュエントリがリンクエントリの場合に、判定部で前記キャッシュエントリがリンクエントリでないと判定されるまで抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部とを備えている。
【0020】
通常検索部2は、ルーティングテーブルを記憶しているルーティングテーブル格納メモリ22と、高速検索部1より要求された検索要求に対してルーティングテーブル格納メモリ22を検索し検索結果を出力するルーティングテーブル検索処理部21と、ルーティングテーブル検索処理部21からの検索結果をキャッシュ用ルーティングエントリ格納メモリ12へ格納するキャッシュ書き込み処理部23とを備えている。
【0021】
ルーティングテーブル検索処理部21は、入力されたパケットの宛先アドレスを取り出す取出部と、ルーティングテーブル格納メモリ22中のネットワークアドレスマスク長を抽出する抽出部と、取出部で取り出した宛先アドレスを抽出部で抽出したネットワークアドレスマスク長でマスクしたアドレスを作成する第1作成部と、第1作成部で作成されたアドレスを示すルーティングエントリがルーティングテーブル格納メモリ22に存在するかどうか探索する第1探索部と、第1作成部で作成されたアドレスが包含するルーティングエントリ群の中で抽出部で先に抽出しているネットワークアドレスマスク長よりも長いもののうち最短のネットワークアドレスマスク長をルーティングテーブル格納メモリ22から探索する第2探索部と、第1及び第2の探索部の結果、ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在したときにリンクエントリを作成する第2作成部と、第1及び第2の探索部の結果、ルーティングエントリが存在し、最短のネットワークアドレスマスク長が存在したとき、及び第2作成部でリンク用キャッシュエントリを作成した後に、抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部と、第1及び第2の探索部の結果、ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在しないときにルーティングに必要な情報を格納した最終キャッシュエントリを作成する第3作成手段とを備えている。
【0022】
キャッシュ管理部3は、ルーティングプロトコルなどからのルーティングテーブル更新要求を処理し、ルーティングテーブル格納メモリ22を更新したり、その更新結果を以下のキャッシュ管理処理部32に通知するルーティングテーブル管理処理部31と、ルーティングテーブル管理処理部31からの通知を元にキャッシュ用ルーティングエントリ格納メモリ12の状態を管理し必要に応じてキャッシュ用ルーティングエントリ格納メモリ12の内容を更新するキャッシュ管理処理部32と、キャッシュ用ルーティングエントリ格納メモリ12の各キャッシュエントリを監視して使用頻度の低いキャッシュエントリの削除を行うためのキャッシュ監視タイマ処理部33とを備えている。
【0023】
キャッシュ管理処理部32は、ルーティングテーブル格納メモリ22にルーティングエントリが追加されたときに当該ルーティングエントリのネットワークアドレスのネットワークアドレスマスク長を取り出す取出部と、ネットワークアドレスを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリを探索する探索部と、探索部の探索の結果、キャッシュエントリが見つかった場合には、当該キャッシュエントリがリンク処理を示しているか判別する第1判別部と、第1判別部の判別の結果、前記キャッシュエントリがリンク処理を示している場合には当該キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長より短いかどうかを判別する第2判別部と、第1判別部の判別の結果、前記キャッシュエントリがリンク処理を示していない場合か、第2判別部の判別の結果、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長より長い場合には、当該キャッシュエントリの中のリンク処理で使用する次のネットワークアドレスマスク長に更新する第1更新部と、探索部の探索の結果、キャッシュエントリが見つからなかった場合は、最短のネットワークアドレスマスク長が追加されたルーティングエントリのネットワークアドレスマスク長未満であるかを判別する第3判別部と、第3判別部の判別の結果、最短のネットワークアドレスマスク長が追加されたルーティングエントリのネットワークアドレスマスク長未満である場合には、当該最短のネットワークアドレスマスク長を追加されたルーティングエントリのネットワークアドレスマスク長で更新する第2更新部とを備えている。
【0024】
[動作の説明]
つぎに、図1のルータの動作について説明する。
【0025】
図2は、図1の高速検索部1の動作を示すフローチャートである。
【0026】
まず、キャッシュ検索処理部11は、装置に入力されたパケットの宛先IPアドレスDを取り出す(ステップS1)。
【0027】
そして、キャッシュ検索処理部11は、装置に備えるルーティングテーブル中の最短のネットワークアドレスマスク長Mmを取り出し、ネットワークアドレスマスク長Mcとして記憶する(ステップS2)。
【0028】
そして、キャッシュ検索処理部11は、宛先IPアドレスDをネットワークアドレスマスク長McでマスクしたIPアドレスNcを作成する(ステップS3)。
【0029】
それから、キャッシュ検索処理部11は、IPアドレスNcを仮想的なネットワークアドレスと見て、キャッシュ用ルーティングエントリ格納メモリ12内のエントリを探索する(ステップS4)。
【0030】
キャッシュ検索処理部11は、キャッシュ用ルーティングエントリ格納メモリ12内のキャッシュエントリを探索した結果、キャッシュエントリが見つかったかどうか判定する(ステップS5)。
【0031】
判定の結果、キャッシュエントリが見つからなかった場合は、キャッシュ検索処理を終了し、通常検索部2へ処理を引き継ぐ。
【0032】
逆に、判定の結果、キャッシュエントリが見つかった場合は、キャッシュ検索処理部11は、さらにそのキャッシュエントリがリンクエントリであるかを判定する(ステップS6)。
【0033】
判定の結果、リンクエントリでなかった場合は、キャッシュ検索処理部11は、キャッシュ用ルーティングエントリ格納メモリ12に目的のキャッシュエントリがあったと判断し、検索処理を終了し、検索結果としてキャッシュエントリの内容を出力する。
【0034】
逆に、判定の結果、見つかったキャッシュエントリがリンクエントリであった場合は、キャッシュ検索処理部11は、現在のネットワークアドレスのマスク長Mcより長いマスク長のネットワークがルーティングテーブル上に存在することを意味するので、そのリンクエントリから新しいネットワークアドレスマスク長を取り出してMcを更新する(ステップS7)。
【0035】
その後、ステップS3に戻る。
【0036】
図3は、図1の通常検索部2の動作を示すフローチャートである。
【0037】
まず、ルーティングテーブル検索処理部21は、キャッシュ検索処理部11でキャッシュにマッチしなかった宛先IPアドレスDを受け取り、一般的なルーティングテーブル検索アルゴリズムを用いて、ルーティングテーブル格納メモリ22のルーティングエントリを検索する。
【0038】
検索の結果、見つかったルーティングエントリは、宛先IPアドレスDと共に、キャッシュ書き込み処理部23に渡される。
【0039】
キャッシュ書き込み処理部23は、ルーティングテーブル検索処理部21から宛先IPアドレスDを取得する(ステップW1)。
【0040】
そして、ルーティングテーブル検索処理部21は、ルーティングテーブル格納メモリ22中の最短のネットワークアドレスマスク長Mcを取り出す(ステップW2)。
【0041】
そして、ルーティングテーブル検索処理部21は、宛先IPアドレスDをネットワークアドレスマスク長McでマスクしたIPアドレスNcを作成する(ステップW3)。
【0042】
それから、ルーティングテーブル検索処理部21は、IPアドレスNcを仮想的なネットワークアドレスとみなして、IPアドレスNcが包含するルーティングエントリ群の中から、最短のネットワークアドレスマスク長Mcより長いマスク長を有する最短のマスク長Mnを、ルーティングテーブル格納メモリ22内から探索する(ステップW4)。
【0043】
ルーティングテーブル検索処理部21は、ルーティングテーブル格納メモリ22を探索した結果、最短のネットワークアドレスマスク長Mcより長いマスク長を有する最短のマスク長Mnが存在したかどうか判定する(ステップW5)。
【0044】
判定の結果、最短のネットワークアドレスマスク長Mcより長いマスク長を有する最短のマスク長Mnが存在した場合は、IPアドレスNcを示すキャッシュエントリが存在するかどうか探索する(ステップW6)。
【0045】
そして、IPアドレスNcを示すキャッシュエントリが存在するかどうか判別する(ステップW7)。
【0046】
判別の結果、IPアドレスNcを示すエントリがない場合は、新規に次に検索するマスク長Mnを格納したIPアドレスNcを示すリンクエントリを作成する(ステップW8)。
【0047】
一方、判別の結果、IPアドレスNcを示すエントリがあった場合は、リンクエントリの作成処理を行わない。そして、最短のネットワークアドレスマスク長Mcを、マスク長Mnで更新する(ステップW9)。
【0048】
その後、ステップW3へ戻る。
【0049】
また、判定の結果、マスク長Mnが存在しなかった場合は、IPアドレスNcを示すキャッシュエントリが存在するかどうか探索する(ステップW10)。
【0050】
そして、IPアドレスNcを示すキャッシュエントリが存在するかどうか判別する(ステップW11)。
【0051】
判定の結果、キャッシュエントリがない場合は、出力インターフェースやネクストホップなどのルーティングに必要な情報を格納した最終キャッシュエントリを作成する(ステップW12)。
【0052】
その後、処理を終了する。
【0053】
一方、判別の結果、キャッシュエントリがあった場合は、最終キャッシュエントリの作成処理を行わずに処理を終了する。
【0054】
図4,図5は、図1のキャッシュ管理部3の動作を示すフローチャートである。
【0055】
ルーティングテーブル管理処理部31は、一般的なルーティングプロトコルを使用するか、装置に対する設定の変更により、ルーティングテーブルの変化を検出し、キャッシュ管理処理部32へ、ルーティングテーブルへのルーティングエントリの追加・削除の情報を出力する。
【0056】
キャッシュ管理処理部32は、ルーティングテーブル管理処理部31から出力された情報に基づき、キャッシュ用ルーティングエントリ格納メモリ12内のキャッシュエントリを変更・削除する。
【0057】
ルーティングエントリが追加された場合は、まず、追加されたルーティングエントリのネットワークアドレスNaのネットワークアドレスマスク長Maを取り出す(図4のステップA1)。
【0058】
そして、追加されたネットワークアドレスNaを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリNpを探索する(ステップA2)。そして、キャッシュエントリNpが見つかったかどうかを判別する(ステップA3)。
【0059】
ステップA3の結果、キャッシュエントリNpが見つかった場合には、キャッシュエントリNpがリンク処理を示しているか判別する(ステップA4)。
【0060】
ステップA4の判定の結果、キャッシュエントリNpがリンク処理を示している場合は、キャッシュエントリNpの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長Maより短いかどうかを判別する(ステップA5)。
【0061】
ステップA4の結果、キャッシュエントリNpがリンク処理を示していない場合か、ステップA5の結果、キャッシュエントリNpの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長Maより長い場合は、そのキャッシュエントリNpの中のリンク処理で使用する次のネットワークアドレスマスク長を追加されたネットワークアドレスマスク長Maに更新して、処理を終了する(ステップA6)。
【0062】
ステップA5の結果、キャッシュエントリNpの示すリンク処理で使用する次のネットワークアドレスマスク長が追加されたネットワークアドレスマスク長Maより短いか同じである場合には、図4に示す処理を終了する。
【0063】
ステップA3の結果、キャッシュエントリが見つからなかった場合は、最短のネットワークアドレスマスク長Mmが追加されたルーティングエントリのネットワークアドレスマスク長Ma未満であるかを判別する(ステップA7)。
【0064】
ステップA7の結果、最短のネットワークアドレスマスク長Mmが追加されたルーティングエントリのネットワークアドレスマスク長Ma未満である場合には、最短のネットワークアドレスマスク長Mmを追加されたルーティングエントリのネットワークアドレスマスク長Maで更新する(ステップA8)。
【0065】
逆に、最短のネットワークアドレスマスク長Mmが追加されたルーティングエントリのネットワークアドレスマスク長Ma未満である場合には、図4に示す処理を終了する。
【0066】
ルーティングエントリが削除された場合は、まず、削除されたルーティングエントリのネットワークアドレスNdのネットワークアドレスマスク長Mdを取り出す(図5のステップD1)。
【0067】
そして、削除されたネットワークアドレスNdを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリNpを探索する(ステップD2)。そして、キャッシュエントリNpが見つかったかどうかを判別する(ステップD3)。
【0068】
ステップD3の結果、キャッシュエントリNpが見つかった場合は、キャッシュエントリNpはリンク処理を示しているので、キャッシュエントリNpの示すリンク処理で使用する次のネットワークアドレスマスク長が削除されたネットワークアドレスマスク長Mdより短いかどうかを判別する(ステップD4)。
【0069】
ステップD4の結果、リンク処理で使用する次のネットワークアドレスマスク長が削除されたネットワークアドレスマスク長Mdより長いか同じ場合は、削除されたネットワークアドレスNdを包含するルーティングエントリの中から、削除されたネットワークアドレスマスク長Mdと同じマスク長を有する他のルーティングエントリが存在するか探索する(ステップD5)。
【0070】
ステップD5の結果、他のルーティングエントリが存在しないならば、キャッシュエントリNpを削除する(ステップD6)。ステップD4の結果、リンク処理で使用する次のネットワークアドレスマスク長が削除されたネットワークアドレスマスク長Mdより短い場合か、ステップD5の結果、他のルーティングエントリが存在する場合は、図5に示す処理を終了する。
【0071】
ステップD3の結果、キャッシュエントリNpが見つからなかった場合は、最短のネットワークアドレスマスク長Mmが削除されたルーティングエントリのネットワークアドレスマスク長Mdであるかを判別する(ステップD7)。
【0072】
ステップD7の結果、最短のネットワークアドレスマスク長Mmが削除されたルーティングエントリのネットワークアドレスマスク長Mdである場合には、削除されたネットワークアドレスNdを包含するルーティングエントリの中から、削除されたネットワークアドレスマスク長Mdと同じマスク長を有する他のルーティングエントリが存在するか探索する(ステップD8)。
【0073】
ステップD8の結果、ルーティングエントリが見つからなかった場合は、最短のネットワークアドレスマスク長Mmを、一番短いマスク長を有するルーティングエントリのマスク長で更新する(ステップD9)。
【0074】
逆に、ステップD7の結果、最短のネットワークアドレスマスク長Mmが削除されたルーティングエントリのネットワークアドレスマスク長Mdでない場合か、ステップD8の結果、ルーティングエントリ見つかった場合は、図5に示す処理を終了する。
【0075】
キャッシュ監視タイマ処理部33は、キャッシュ用ルーティングエントリ格納メモリ12を監視し、一定時間以上使用されていないキャッシュエントリを削除する。
【0076】
本発明の実施形態は、高速検索用の専用ハードウェアを用意しても、ソフトウェアで同等のロジックを組んでも良い。
【0077】
【発明の効果】
以上、説明したように、本発明によると、利用しているルーティングテーブルのルーティングエントリだけをキャッシングするため、記憶しておくキャッシュメモリを減らすことができ、また検索する対象のキャッシュメモリが小さくなることで検索エンジン自体を小型化することができる。
【0078】
このため、キャッシュメモリを小容量化することが可能になるので、製品コストを抑えることができるようになることができる。また、キャッシュメモリが小容量化しているので、検索処理能力を向上することができる。
【図面の簡単な説明】
【図1】本発明の実施形態のルータ装置の模式的な内部構成を示すブロック図である。
【図2】図1の高速検索部1の動作を示すフローチャートである。
【図3】図1の通常検索部2の動作を示すフローチャートである。
【図4】図1のキャッシュ管理部3の動作を示すフローチャートである。
【図5】図1のキャッシュ管理部3の動作を示すフローチャートである。
【符号の説明】
1 高速検索部
2 通常検索部
3 キャッシュ管理部
11 キャッシュ検索処理部
12 キャッシュ用ルーティングエントリ格納メモリ
21 ルーティングテーブル検索処理部
22 ルーティングテーブル格納メモリ
23 キャッシュ書き込み処理部
31 ルーティングテーブル管理処理部
32 キャッシュ管理処理部
33 キャッシュ監視タイマ処理部
Claims (5)
- 複数のIPアドレスおよび各IPアドレスのネットワークアドレスマスク長が記述されたルーティングテーブルに含まれる一部のエントリからなるキャッシュエントリを参照して入力パケットの転送経路を検索する第1の検索部と、前記キャッシュエントリにより当該転送経路が検出されない場合に該転送経路を前記ルーティングテーブルから検索する第2の検索部と、前記ルーティングテーブルにおけるエントリの変化を検出し該検出の結果に応じて前記キャッシュエントリを変更するキャッシュ管理部とを備え、
前記キャッシュ管理部は、前記ルーティングテーブルにルーティングエントリが追加されたときに当該ルーティングエントリのネットワークアドレスのネットワークアドレスマスク長を取り出す取出部と、
前記ネットワークアドレスを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリを探索する探索部と、
前記探索部の探索の結果、当該キャッシュエントリが見つかった場合には、当該キャッシュエントリがリンク処理を示しているか判別する第1判別部と、
前記第1判別部の判別の結果、前記キャッシュエントリがリンク処理を示している場合には、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が、追加されたネットワークアドレスマスク長より短いかどうかを判別する第2判別部と、
前記第1判別部の判別の結果、前記キャッシュエントリがリンク処理を示していない場合、または、前記第2判別部の判別の結果、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が、追加されたネットワークアドレスマスク長より長い場合には、前記キャッシュエントリの中のリンク処理で使用する次のネットワークアドレスマスク長に更新する第1更新部と、
前記探索部の探索の結果、当該キャッシュエントリが見つからなかった場合は、最短のネットワークアドレスマスク長が、追加されたルーティングエントリのネットワークアドレスマスク長未満であるかを判別する第3判別部と、
前記第3判別部の判別の結果、当該最短のネットワークアドレスマスク長が、追加されたルーティングエントリのネットワークアドレスマスク長未満である場合には、前記最短のネットワークアドレスマスク長を、追加されたルーティングエントリのネットワークアドレスマスク長で更新する第2更新部とを備えることを特徴とするルータ装置。 - 前記キャッシュ管理部は、前記ルーティングテーブルからルーティングエントリが削除されたときに当該ルーティングエントリのネットワークアドレスのネットワークアドレスマスク長を取り出す第2取出部と、
前記ネットワークアドレスを包含するキャッシュエントリのうち、マスク長が最大であるキャッシュエントリを探索する第2探索部と、
前記第2探索部の探索の結果、当該キャッシュエントリが見つかった場合には、前記キャッシュエントリの示すリンク処理で使用する次のネットワークアドレスマスク長が、削除されたネットワークアドレスマスク長より短いかどうかを判別する第3判別部と、
前記第3判別部の判別の結果、リンク処理で使用する次のネットワークアドレスマスク長が、削除されたネットワークアドレスマスク長より長い場合には、削除されたネットワークアドレスを包含するルーティングエントリの中から、当該削除されたネットワークアドレスマスク長と同じマスク長を有する他のルーティングエントリが存在するか探索する第3探索部と、
前記第3探索部の探索の結果、前記他のルーティングエントリが存在しない場合に前記第2探索部で探索したキャッシュエントリを削除する削除部と、
前記第2探索部の探索の結果、当該キャッシュエントリが見つからなかった場合には、前記最短のネットワークアドレスマスク長が削除されたルーティングエントリのネットワークアドレスマスク長であるかを判別する第4判別部と、
前記第4判別部の判別の結果、前記最短のネットワークアドレスマスク長が、削除されたルーティングエントリのネットワークアドレスマスク長である場合には、削除されたネットワークアドレスを包含するルーティングエントリの中から、削除されたネットワークアドレスマスク長と同じマスク長を有する他のルーティングエントリが存在するか探索する第3探索部と、
前記第3探索部の探索の結果、前記他のルーティングエントリが見つからなかった場合は、前記最短のネットワークアドレスマスク長を、前記ルーティングメモリ内の一番短いマスク長のルーティングエントリのマスク長で更新する第3更新部とを備えることを特徴とする請求項1記載のルータ装置。 - 前記キャッシュ管理部は、前記キャッシュエントリのうち、一定時間以上使用されていないキャッシュエントリを削除することを特徴とする請求項1又は2記載のルータ装置。
- 前記第1検索部は、入力されたパケットの宛先アドレスを取り出す取出部と、
前記ルーティングテーブルのエントリからネットワークアドレスマスク長を抽出する抽出部と、
前記取出部で取り出した宛先アドレスを前記抽出部で抽出した最短のネットワークアドレスマスク長でマスクしたアドレスを作成する作成部と、
前記作成部によって作成した前記アドレスを仮想的なネットワークアドレスとみなして前記キャッシュエントリを探索する探索部と、
前記探索部の探索の結果、前記キャッシュエントリがあった場合に当該キャッシュエントリが関連するエントリ群からなるリンクエントリであるかを判定する判定部と、
前記判定部の判定の結果、前記キャッシュエントリがリンクエントリの場合に、当該判定部で前記キャッシュエントリがリンクエントリでないと判定されるまで前記抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部とを備えることを特徴とする請求項1乃至3のいずれか1項に記載のルータ装置。 - 前記第2検索部は、入力されたパケットの宛先アドレスを取り出す取出部と、
前記ルーティングテーブル中のネットワークアドレスマスク長を抽出する抽出部と、
前記取出部で取り出した宛先アドレスを前記抽出部で抽出した最短のネットワークアドレスマスク長でマスクしたアドレスを作成する第1作成部と、
前記第1作成部で作成されたアドレスを示すルーティングエントリが前記ルーティングテーブルに存在するかどうか探索する第1探索部と、
前記第1作成部で作成されたアドレスが包含するルーティングエントリ群の中で前記抽出部で先に抽出しているネットワークアドレスマスク長よりも長いもののうち最短のネットワークアドレスマスク長を前記ルーティングテーブルから探索する第2探索部と、
前記第1及び第2の探索部の結果、前記ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在したときに前記リンクエントリを作成する第2作成部と、
前記第1及び第2の探索部の結果、前記ルーティングエントリが存在し、前記最短のネットワークアドレスマスク長が存在したとき、及び前記第2作成部でリンク用キャッシュエントリを作成した後に、前記抽出部に対して先に抽出しているネットワークアドレスマスク長よりも長いネットワークアドレスマスク長の取り出しを促す促進部と、
前記第1及び第2の探索部の結果、前記ルーティングエントリが存在せず、前記最短のネットワークアドレスマスク長が存在しないときにルーティングに必要な情報を格納した最終キャッシュエントリを作成する第3作成手段とを備えることを特徴とする請求項1乃至4のいずれか1項に記載のルータ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002175777A JP3957570B2 (ja) | 2002-06-17 | 2002-06-17 | ルータ装置 |
US10/462,721 US7313138B2 (en) | 2002-06-17 | 2003-06-17 | Router device and routing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002175777A JP3957570B2 (ja) | 2002-06-17 | 2002-06-17 | ルータ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004023450A JP2004023450A (ja) | 2004-01-22 |
JP3957570B2 true JP3957570B2 (ja) | 2007-08-15 |
Family
ID=29728058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002175777A Expired - Fee Related JP3957570B2 (ja) | 2002-06-17 | 2002-06-17 | ルータ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7313138B2 (ja) |
JP (1) | JP3957570B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050066903A (ko) * | 2003-12-27 | 2005-06-30 | 한국전자통신연구원 | 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법 |
US7349982B2 (en) * | 2004-01-12 | 2008-03-25 | Hewlett-Packard Development Company, L.P. | Enablement of route table entries |
JPWO2005122503A1 (ja) * | 2004-06-11 | 2008-04-10 | 松下電器産業株式会社 | ルータ装置、通信装置、ルーティング方法、ルーティングプログラム及びルーティングプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US7706302B2 (en) * | 2004-09-14 | 2010-04-27 | Alcatel Lucent | Optimization of routing forwarding database in a network processor |
JP4950437B2 (ja) * | 2005-05-02 | 2012-06-13 | パナソニック株式会社 | ネットワーク監視システム |
JP4556761B2 (ja) * | 2005-05-06 | 2010-10-06 | 株式会社日立製作所 | パケット転送装置 |
JP4646823B2 (ja) * | 2006-02-17 | 2011-03-09 | エスアイアイ・ネットワーク・システムズ株式会社 | ルータ装置、ルータ装置におけるルート決定方法 |
US8130747B2 (en) | 2007-08-06 | 2012-03-06 | Blue Coat Systems, Inc. | System and method of traffic inspection and stateful connection forwarding among geographically dispersed network appliances organized as clusters |
JP4916029B2 (ja) * | 2008-05-14 | 2012-04-11 | パナソニック株式会社 | 端末装置及びマルチホップ通信システム |
US8117306B1 (en) | 2008-09-29 | 2012-02-14 | Amazon Technologies, Inc. | Optimizing content management |
JP5152861B2 (ja) * | 2008-10-30 | 2013-02-27 | 岩崎通信機株式会社 | ルータ装置及びルーティング検索制御方法 |
US8218553B2 (en) * | 2009-02-25 | 2012-07-10 | Juniper Networks, Inc. | Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering |
US8259585B1 (en) * | 2009-04-17 | 2012-09-04 | Juniper Networks, Inc. | Dynamic link load balancing |
JP4800415B2 (ja) * | 2009-08-17 | 2011-10-26 | 富士通株式会社 | 中継装置、macアドレス検索方法 |
JP5324380B2 (ja) * | 2009-09-30 | 2013-10-23 | エスアイアイ・ネットワーク・システムズ株式会社 | パケット転送装置 |
US8331370B2 (en) * | 2009-12-17 | 2012-12-11 | Amazon Technologies, Inc. | Distributed routing architecture |
US8331371B2 (en) | 2009-12-17 | 2012-12-11 | Amazon Technologies, Inc. | Distributed routing architecture |
JPWO2011148925A1 (ja) * | 2010-05-24 | 2013-07-25 | 日本電気株式会社 | 半導体装置とネットワークルーティング方法とシステム |
CN101883055B (zh) * | 2010-07-19 | 2013-11-20 | 福建星网锐捷网络有限公司 | 路由转发表容量扩展实现方法、装置及交换设备 |
JP5966561B2 (ja) * | 2012-04-20 | 2016-08-10 | 富士通株式会社 | 通信装置および通信方法 |
US9923798B1 (en) | 2012-06-28 | 2018-03-20 | Juniper Networks, Inc. | Dynamic load balancing of network traffic on a multi-path label switched path using resource reservation protocol with traffic engineering |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
CN105939263B (zh) * | 2015-08-12 | 2019-07-09 | 杭州迪普科技股份有限公司 | 一种报文发送方法和装置 |
CN107579916B (zh) | 2016-07-04 | 2021-03-23 | 新华三技术有限公司 | 转发表项访问方法及装置 |
US10230621B2 (en) | 2017-05-09 | 2019-03-12 | Juniper Networks, Inc. | Varying a per-hop-bandwidth constraint in multi-path label switched paths |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0669928A (ja) | 1992-08-17 | 1994-03-11 | Fuji Xerox Co Ltd | ルーティング方式 |
JP3371006B2 (ja) | 1993-03-03 | 2003-01-27 | 株式会社日立製作所 | テーブル検索方法及びルータ装置 |
JPH08223207A (ja) | 1995-02-20 | 1996-08-30 | Hitachi Ltd | マルチプロトコル中継方式 |
US6304912B1 (en) * | 1997-07-24 | 2001-10-16 | Fujitsu Limited | Process and apparatus for speeding-up layer-2 and layer-3 routing, and for determining layer-2 reachability, through a plurality of subnetworks |
JP2000083055A (ja) | 1998-09-04 | 2000-03-21 | Hitachi Ltd | ルータ |
JP2000138687A (ja) | 1998-10-30 | 2000-05-16 | Toshiba Corp | 中継装置 |
JP2000307593A (ja) * | 1999-04-19 | 2000-11-02 | Fujitsu Ltd | Mpoaキャッシュ管理装置及びその方法 |
US7039766B1 (en) * | 2000-10-12 | 2006-05-02 | International Business Machines Corporation | Prescheduling sequential data prefetches in a preexisting LRU cache |
US20050120134A1 (en) * | 2003-11-14 | 2005-06-02 | Walter Hubis | Methods and structures for a caching to router in iSCSI storage systems |
-
2002
- 2002-06-17 JP JP2002175777A patent/JP3957570B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-17 US US10/462,721 patent/US7313138B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030231628A1 (en) | 2003-12-18 |
US7313138B2 (en) | 2007-12-25 |
JP2004023450A (ja) | 2004-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3957570B2 (ja) | ルータ装置 | |
US7099324B2 (en) | System and method for processing packets | |
JP4614946B2 (ja) | 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法 | |
Gupta et al. | Packet classification on multiple fields | |
US6674769B1 (en) | Simultaneous searching of layer 3 policy filter and policy cache in a network switch port | |
US7571156B1 (en) | Network device, storage medium and methods for incrementally updating a forwarding database | |
US8938469B1 (en) | Dynamically adjusting hash table capacity | |
JP3790217B2 (ja) | 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法 | |
US8799507B2 (en) | Longest prefix match searches with variable numbers of prefixes | |
CN111937360B (zh) | 最长前缀匹配 | |
US7861291B2 (en) | System and method for implementing ACLs using standard LPM engine | |
US8059658B1 (en) | Method and system for automatic expansion and contraction of IP host forwarding database | |
JP2002530011A (ja) | 最適ルーティング・テーブル圧縮のためのルータ及び方法 | |
WO2020114239A1 (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
CN112565090B (zh) | 一种高速转发方法及装置 | |
TWI241089B (en) | Method and apparatus to perform network routing using multiple length trie blocks | |
US20050038907A1 (en) | Routing cache management with route fragmentation | |
JP2004056340A (ja) | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 | |
JP2001237881A (ja) | テーブル型データ検索機構及びそれを用いるパケット処理システム並びにそのテーブル型データ検索方法 | |
CN106416150B (zh) | 一种路由查询方法和网络设备 | |
US7843927B1 (en) | Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
EP1657859B1 (en) | Protocol speed increasing device | |
JP3711895B2 (ja) | 検索システム及びそれに用いる検索条件cam登録方法並びにそのプログラム | |
US20030031179A1 (en) | Self-updateable longest prefix matching method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040518 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070330 |
|
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: 20070413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070508 |
|
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: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |