JP3199051B2 - キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 - Google Patents
キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体Info
- Publication number
- JP3199051B2 JP3199051B2 JP3328799A JP3328799A JP3199051B2 JP 3199051 B2 JP3199051 B2 JP 3199051B2 JP 3328799 A JP3328799 A JP 3328799A JP 3328799 A JP3328799 A JP 3328799A JP 3199051 B2 JP3199051 B2 JP 3199051B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- entry
- registered
- prefix
- address
- 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
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/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
Description
るルータの方位決定技術に関し、特に、キャッシュヒッ
ト確率を高くし、且つキャッシュの容量を少なくするこ
とができるキャッシュを有するルータの方位決定技術に
関する。
ネットワークを接続するルータでは、異なるネットワー
クを越えて行われる通信を接続するため、通信情報の固
まり(パケット)の転送(フォワーディング)を行わな
ければならない。ルータは、接続されたネットワークか
ら入力されるパケットをインタフェースで受信し、パケ
ットに含まれる送信先アドレスを基に、各ルータの持つ
フォワーディングテーブルを検索して、パケットを送信
すべきインタフェースの番号を決定し、パケットのフォ
ワーディングを行う。従来の、キャッシュテーブルを用
いた検索を利用して高速に送信インタフェースを決定す
るルータ(以下キャッシュを有するルータと呼ぶ)の送
信インタフェース決定方法を説明する。
開平6―261078号公報に示されているように、フ
ォワーディングテーブルとその検索を行うフォワーディ
ングテーブル検索部と、完全一致検索のできるキャッシ
ュテーブルを持つ。まず、それぞれのテーブルの構成と
検索方法について説明する。
に、宛先フィールドと送信インタフェース番号フィール
ドの組から構成される。宛先フィールドは、ネットワー
クアドレスを表すビット列の最上位ビットから下位ビッ
トに向かって、ある連続した長さ(これをプレフィクス
長と呼ぶ)のビット列(以下プレフィクス)を指定して
いる。このプレフィクスを表現するため、宛先フィール
ドは、次の2つの情報から構成される。
ビット長さをもつビット列で、最上位ビットから連続し
て指定したいビット列を格納する。指定しないビットに
ついてはどんなビットを格納してもいいが、以下ではビ
ット’0’を格納するものとする。
のうち、最上位ビットからプレフィクスとして指定した
いビットの数。
アドレスの場合に、最上位ビットから10000000 0100000
0(8bitごとにスペースで区切っている) というプレフィ
クスを指定したい場合には、プレフィクスビット列は10
000000 01000000 00000000 0000000 (8bitごとにスペー
スで区切っている) 、プレフィクス長は16となる。以下
では、32bit のビット列を示す場合に、それらを8bitず
つに区切り、それぞれを10進数で表して、ドットで区切
って表示する(ドット付き10進表示)ことがある。ま
た、32bit のネットワークアドレスの場合、宛先フィー
ルド(プレフィクス)を、プレフィクスビット列を表す
ドット付き10進表示と、プレフィクス長を”/”で区切
った組にして表示することがある。例えば、上の32bit
のプレフィクスは129.64.0.0/16 と表記する。さらに、
プレフィクス長をマスクビット列で表現することもあ
る。これは、ネットワークアドレスの最上位ビットから
下位ビットに向かってプレフィクス長の長さのビットの
部分だけ1を立て、残りを0のビットとしたもので、上
の例ではマスクビット列は11111111 11111111 00000000
00000000 (8bit ごとにスペースで区切っている) とな
る。フォワーディングテーブルの送信インタフェース番
号フィールドには、パケットを送信すべきインタフェー
ス番号が書かれている。フォワーディングテーブルの検
索方法については、ロンゲストプレフィクスマッチ検索
(以下LPM 検索)という方法が用いられる。この検索で
は、すべてのエントリについて、パケットの送信先アド
レスを、フォワーディングテーブルの宛先フィールドに
設定されているプレフィクスと比較する。比較判定は、
次の(1),(2) のビット列が一致する否かを判定するもの
である。
ットから連続して下位ビット方向に、エントリのプレフ
ィクス長の長さ分だけビット列を取り出したもの (2) エントリのプレフィクスビット列の最上位ビットか
ら連続して下位ビット方向に、エントリのプレフィクス
長の長さ分だけビット列を取り出したもの(比較対象部
分)
ングテーブルの中に複数存在する可能性があるが、その
中で最も長いプレフィクス長をもつエントリが、LPM 検
索の結果のエントリである。
ィールドと、送信インタフェース番号フィールドからな
る。送信先アドレスフィールドには、ネットワークアド
レスが書かれている。送信インタフェース番号フィール
ドには、対応する送信先アドレスフィールドに書かれた
ネットワークアドレスを送信先アドレスとするパケット
を、フォワードすべきインタフェース番号が書かれてい
る。検索においては、検索キーとして送信先アドレスを
与え、キャッシュテーブルの中で、送信先アドレスフィ
ールドが検索キーと完全一致するエントリを検索する。
信インタフェース番号の決定処理(方路決定処理)を以
下のように実行する。ルータにパケットが到着すると、
パケットの送信先アドレスを取り出し、それを検索キー
として、まず、キャッシュテーブルを完全一致検索す
る。一致するエントリが見つかった場合は、そのエント
リの送信インタフェース番号フィールドから、パケット
を送信すべきインタフェース番号が得られる。一致する
エントリが見つからなかった場合は、フォワーディング
テーブル検索部において、パケットの宛先フィールドを
基に先に述べたLPM 検索を行って送信インタフェース番
号を得る。フォワーディングテーブル検索を行った場合
には、パケットの送信先アドレスと、テーブル検索にお
いて得られた送信インタフェース番号は、組にしてキャ
ッシュに格納される。上記の従来のキャッシュを有する
ルータは、フォワーディングテーブル検索よりも高速な
検索が可能なキャッシュに、一度検索したパケットの送
信先アドレスと検索結果を格納しておき、次に同じ送信
先アドレスのパケットが到着した場合に、キャッシュ検
索のみで送信インタフェース番号を得ることによって、
キャッシュ検索に比較して、時間のかかるフォワーディ
ングテーブル検索を省略することで、送信インタフェー
ス番号の決定処理の高速化を図っている。
最適キャッシュプレフィクス長という2つの用語を定義
しておく。
ドは、ネットワークアドレスのある集合を指定してい
る。例えば、フォワーディングテーブルの10.5.6.0/24
という宛先フィールドは、10.5.6.0, 10.5.6.1, …, 10
5.6.255 という256 個のネットワークアドレスの集合を
示している。この集合をそのエントリのアドレス集合と
呼ぶことにする。また、あるエントリAのアドレス集合
が、エントリBのアドレス集合に含まれる(一致も含め
る)ことを、エントリAはエントリBに包含される、と
以下では呼ぶことにする。AがBに包含されることは、 ・包含条件1:Aのプレフィクス長がBのプレフィクス
長より長い(一致してもいい)。 ・包含条件2:Aのプレフィクスビット列とBのプレフ
ィクスビット列について、最上位ビットからBのプレフ
ィクス長部分について、一致する。という2つの条件が
両方成立する場合である。また、宛先フィールドは、ネ
ットワークアドレスを表すビット列の中で、最上位ビッ
トから下位ビットに向かって連続したビット列を指定し
ていることから、任意の2つのプレフィクスが指定する
集合は、どちらかがどちらかを包含するか、全く共通部
分を持たないかの何れかである。
ーブルのエントリに注目したとき、そのエントリが包含
する他のエントリの中で最大のプレフィクス長を持つエ
ントリのプレフィクス長を最大キャッシュプレフィクス
長と呼ぶ。包含するエントリがない場合には、そのエン
トリ自身のプレフィクス長を最大キャッシュプレフィク
ス長と呼ぶ。例えば、フォワーディングテーブルが、 宛先フィールド 10.0.0.0/8 10.2.0.0/16 10.2.3.0/24 20.0.0.0/8 であった場合、先頭の10.0.0.0/8の最大キャッシュプレ
フィクス長は24であり、4番目の20.0.0.0/8の最大キャ
ッシュプレフィクス長は8である。
ついて、プレフィクスビット列のうち、最上位ビットか
ら下位ビットに向かってプレフィクス長の長さの部分に
着目しこれをプレフィクスと呼ぶことにする。また、あ
るネットワークアドレスビット列と、プレフィクスの組
に対して、この2つを最上位ビットから下位ビットに向
かって比較してゆき、一致しているビット数を、前方一
致ビット数と呼ぶことにする。
ットワークアドレス(これをAとする)が与えられる
と、フォワーディングテーブルをLPM 検索し、さらに、
以下の処理を行って決定される。
ングテーブルの各エントリの宛先フィールドの示すプレ
フィクスについて、それぞれ前方一致ビット数を求め、
最大の前方一致ビット数を求める。また、最大の前方一
致ビット数を持つエントリが複数あるかどうかも求め
る。そして、 (1) 最大の前方一致ビット数が、LPM 検索にヒットした
エントリのプレフィクス長より大きい場合、最大の前方
一致ビット数+1をが最適キャッシュプレフィクス長。 (2) 最大の前方一致ビット数が、LPM 検索にヒットした
エントリのプレフィクス長と同じ場合(短い場合はあり
えない。なぜなら、LPM 検索にヒットしたエントリで
は、前方一致ビット数はそのエントリのプレフィクス長
になっているから)、最大の前方一致ビット数を持つエ
ントリが複数あるかどうかをチェックし、複数あるな
ら、最大の前方一致ビット数+1が最適キャッシュプレ
フィクス長とし、複数ないなら、最大の前方一致ビット
数を最適キャッシュプレフィクス長にする。
で、フォワーディングテーブルのエントリの宛先が、 エントリ1:プレフィクスビット列 11100000 プレフィ
クス長3 エントリ2:プレフィクスビット列 10110000 プレフィ
クス長4 エントリ3:プレフィクスビット列 10111000 プレフィ
クス長5 エントリ4:プレフィクスビット列 10111100 プレフィ
クス長6 エントリ5:プレフィクスビット列 11111100 プレフィ
クス長6 エントリ6:プレフィクスビット列 10010000 プレフィ
クス長4 の時、ネットワークアドレス 10110001 が与えられる
と、LPM 検索の結果ヒットするエントリはエントリ2で
ある。
のエントリである。この場合最大の前方一致ビット数は
4で、これはヒットしたエントリ2のプレフィクス長4
と一致するので、(2) の場合に当たる。そして、最大の
前方一致するエントリが複数あるから4+1=5が最適
キャッシュプレフィクス長である。
ワークアドレス11111111が与えられたとすると、LPM 検
索の結果ヒットするエントリは1で、前方一致ビット数
は エントリ1:3 エントリ2:1 エントリ3:1 エントリ4:1 エントリ5:6 エントリ6:1 となり、最大の前方一致ビット数は6である。これはヒ
ットしたエントリ1のプレフィクス長より大きいので、
(1) の場合にあたり、最適キャッシュプレフィクス長は
6+1の7である。
ワークアドレス10011111が与えられたとすると、LPM 検
索の結果ヒットするエントリは6で、前方一致ビット数
は エントリ1:1 エントリ2:2 エントリ3:2 エントリ4:2 エントリ5:1 エントリ6:4 となり、最大の前方一致ビット数は4である。これはヒ
ットしたエントリ6のプレフィクス長と同じで、(2) の
場合にあたり、最大の前方一致ビット数を持つエントリ
は1つだけであるので、最適キャッシュプレフィクス長
は最大の前方一致ビット数の4である。
のキャッシュを有するルータのキャッシュエントリで
は、パケットの送信先アドレスをキャッシュに格納し、
キャッシュでは完全一致検索を行うため、1つのキャッ
シュエントリにヒットする送信先アドレスは唯1つであ
る。このため、キャッシュのヒット確率が低く、ヒット
しなかった場合にはフォワーディングテーブルを検索す
る必要があるため、送信インタフェース決定までの時間
がかって、ルータのパケット転送性能が低下するという
問題があった。また、あるルータを経由して、n個の送
信先アドレスに対する通信が行われた場合にこれらのパ
ケットに対してキャッシュをヒットさせるには、n個の
キャッシュのエントリを消費するため、送信先の数と同
じ数のキャッシュエントリが必要であった。このため、
通信が行われる端末の数が多いと、それに比例した、大
容量のキャッシュを搭載する必要があり、ルータの回路
基盤面積が大きくなりコストが大きくなるという問題が
あった。
キャッシュを有するルータの方路決定装置において、キ
ャッシュのヒット確率を上げ、キャッシュ検索より時間
のかかるフォワーディングテーブル検索を行う確率を下
げ、ルータのパケット処理時間を減らし、ルータのパケ
ット処理能力を向上させることにある。
確率を下げることなく、キャッシュの容量を減らすこと
で、回路基盤面積を減らしたルータを実現することにあ
る。
するルータの方路決定装置1は、上記目的を達成するた
め、エントリ毎に異なるマスクを付けた一致検索ができ
るキャッシュを有し、キャッシュを登録するキャッシュ
アドレスを決定する手段を有し、フォワーディングテー
ブルとその検索手段を有し、受信パケットの送信先アド
レスをキャッシュに登録する際のキャッシュエントリの
マスクを掛けない部分の長さとして最長キャッシュプレ
フィクス長を求める手段を有する。
決定装置2は、上記目的を達成するため、ロンゲストプ
レフィクスマッチ検索ができるキャッシュを有し、キャ
ッシュを登録するキャッシュアドレスを決定する手段を
有し、フォワーディングテーブルとその検索手段を有
し、フォワーディングテーブルの検索にヒットしたエン
トリを基にキャッシュに登録すべきフォワーディングテ
ーブルのエントリを決定する手段を有し、キャッシュエ
ントリがを削除する際に同時に削除すべきキャッシュエ
ントリを決定する手段を有する。
決定装置3は、上記目的を達成するため、上記したキャ
ッシュを有するルータの方路決定装置1において、受信
パケットの送信先アドレスをキャッシュに登録する際の
キャッシュエントリのマスクを掛けない部分の長さとし
て最適キャッシュプレフィクス長を求める手段を有す
る。
決定装置4は、上記目的を達成するため、ロンゲストプ
レフィクスマッチ検索ができるキャッシュを有し、キャ
ッシュを登録するキャッシュアドレスを決定する手段を
有し、フォワーディングテーブルとその検索手段を有
し、受信パケットの送信先アドレスをキャッシュに登録
する際のプレフィクス長として、最長キャッシュプレフ
ィクス長を求める手段を有する。
決定装置5は、上記目的を達成するため、上記したキャ
ッシュを有するルータの方路決定装置4において、受信
パケットの送信先アドレスをキャッシュに登録する際の
プレフィクス長さとして最適キャッシュプレフィクス長
を求める手段を有する。
決定装置6は、本発明のキャッシュを有するルータの方
路決定装置1,2,3,4または5の、キャッシュを登
録するキャッシュアドレスを決定する手段において、キ
ャッシの全アドレス領域を常駐領域と更新領域に分け、
更新領域からキャッシュを登録するキャッシュアドレス
を決定する手段を有する。
いて送信インタフェース番号を決定するルータにおい
て、フォワーディングテーブル検索よりも高速に検索が
できるキャッシュテーブルとして、(1) エントリ毎に異
なるマスクを付けた一致検索を行うキャッシュあるい
は、(2) ロンゲストプレフィクスマッチ検索を行うキャ
ッシュを用いることで、1つのキャッシュエントリで多
くの送信先アドレスにヒットするキャッシュエントリを
登録することができる。
ィングテーブルを検索し、その検索結果をキャッシュに
登録するのであるが、キャッシュを検索した際に正しい
送信先アドレスが得られるように、(1) の場合には、キ
ャッシュエントリのマスクを掛けない部分の長さとし
て、最長キャッシュプレフィクス長を求める手段、ある
いは、最適キャッシュプレフィクス長を求める手段を用
いて、マスクを付けたキャッシュエントリを登録する。
(2) の場合には、フォワーディングテーブルの検索にヒ
ットしたエントリを基にキャッシュに登録すべきフォワ
ーディングテーブルのエントリを決定する手段を用い
て、キャッシュエントリを登録する。
のどのアドレスに登録するかについては、キャッシュを
登録するキャッシュアドレスを決定する手段を用いる。
このようにして、1 つのキャッシュエントリで多くの送
信先アドレスにヒットするキャッシュエントリを登録す
ることができるため、本発明によって、キャッシュのヒ
ット確率を上げることができる。また、あるルータを経
由して、異なる複数の送信先アドレスに対する通信が行
われた場合、これらの送信先アドレスに対してキャッシ
ュをヒットさせるには、従来のキャッシュを有するルー
タでは、異なる送信先アドレスと同じ数のキャッシュの
エントリを消費していたが、本発明によれば、1 つのキ
ャッシュエントリで多くの送信先アドレスにヒットする
キャッシュエントリを登録できることから、従来より少
ないエントリ数で、これらの送信先パケットに対してキ
ャッシュをヒットさせることができる。このため、キャ
ッシュのヒット確率を下げることなく、キャッシュの容
量を減らすことができるため、ルータの回路基盤面積を
小さくすることができる。
ドレスを決定する手段として、キャッシの全アドレス領
域を常駐領域と更新領域に分け、更新領域からキャッシ
ュを登録するキャッシュアドレスを決定する手段をもち
いれば、ルータの管理者が、フォワーディングテーブル
の中でよく使用されるエントリを予めキャッシュの常駐
領域に格納しておくことができ、また、それらのエント
リは他のキャッシュエントリを登録する際に消去される
ことがないため、さらにキャッシュのヒット率を上げる
ことができる。
図面を参照して詳細に説明する。
施例の全体構成図である。まず、図1の構成要素の概要
を説明する。
タのフォワーディングテーブルとその検索機構を持つ。
フォワーディングテーブルは、従来のルータのフォワー
ディングテーブルと同じ、宛先フィールド,送信インタ
フェース番号フィールドを持ち、さらに、マスク付きキ
ャッシュにエントリを登録する際に使用する登録プレフ
ィクス長フィールドと、キャッシュに常駐するエントリ
を示す常駐フラグフィールドとを持つ。登録プレフィク
ス長フィールドの値は、フォワーディングテーブルを格
納する時に、登録プレフィクス長決定機構102 によって
最大キャッシュプレフィクス長が計算されて格納され
る。制御信号線L106が有効化されると、パケットの送信
先アドレス線L101から入力されるパケットの送信先アド
レスを基に、フォワーディングテーブルの宛先フィール
ドを検索する。検索の結果、得られた送信インタフェー
ス番号,登録プレフィクス長をそれぞれ送信インタフェ
ース番号線L102, 登録プレフィクス長線L103にそれぞれ
出力する。常駐フラグフィールドが0ならば、登録線L1
19を有効化し、常駐フラグフィールドが1ならば登録線
L119を有効化しない。
とし、フォワーディングテーブル検索機構100 ,キャッ
シュ登録機構140 およびマスク付きキャッシュテーブル
検索機構130 を制御して、パケットをフォワードすべき
送信インタフェース番号を決定し、それをL118に出力す
る。
130 マスク付きキャッシュテーブルとそれを検索する機能を
持つ。マスク付きキャッシュテーブルは、宛先フィール
ドと送信インタフェース番号フィールドとを有する。宛
先フィールドにはネットワークアドレスを示すプレフィ
クスビット列と、マスクビット列の組が格納される。ま
た、このマスク付きキャッシュテーブル検索機構130
は、マスク付きキャッシュテーブルを検索する機能を持
つ。これは、例えば、特開平1-220923号公報に記載され
たマスク機能付き連想メモリとRAM(Random Access Memo
ry) で構成される。検索においては、制御信号線L107が
有効化されると、パケットの送信先アドレスを表すビッ
ト列をL104から取り込んで、各エントリについて、マス
ク付きの一致検索が行われる。すなわち、宛先フィール
ドのプレフィクスビット列のうち、マスクビット列の1
がたっているビット部分(比較対象部分)に関して、プ
レフィクスビット列と送信先アドレスを表すビット列を
比較し、一致するエントリがあった場合(ヒットした場
合)には、キャッシュヒット線L110をヒット値にセット
し、一致したエントリの送信インタフェース番号をL105
に出力する。
機構。L101から入力されるパケットの送信先アドレス
と、L103から入力される登録プレフィクス長を基に、マ
スク付きキャッシュテーブル検索機構130 にキャッシュ
エントリを登録するために必要な情報である、プレフィ
クスビット列,マスクビット列,キャッシュ登録アドレ
スをそれぞれ、L114,L115,L112に出力する。また、キ
ャッシュテーブルの使用中のアドレスと、未使用のアド
レスを管理している。
構100 の詳細な構成を示す。ルータのフォワーディング
テーブルを格納するフォワーディングテーブル用メモリ
103と、それを検索するテーブル検索機構101 と、登録
プレフィクス長決定機構102とから構成される。
は、フォワーディングテーブルを格納している。このフ
ォワーディングテーブルは、従来のルータのフォワーデ
ィングテーブルと同様に、宛先フィールド,送信インタ
フェース番号フィールドを持ち、さらに、登録プレフィ
クス長フィールド,常駐フラグフィールドも有する。宛
先フィールドには、プレフィクスを示すプレフィクスビ
ット列と、プレフィクスビット列のプレフィクス長を示
すプレフィクス長フィールドが含まれる。
が有効化されると、送信先アドレス線L101から入力され
るパケットの送信先アドレスを基にフォワーディングテ
ーブル用メモリ103 に格納されたフォワーディングテー
ブルの宛先フィールドをLPM検索し、エントリが見つか
った場合、検索ヒット線L109をヒット値(エントリが見
つかったことを示す値)にセットする。エントリの送信
インタフェース番号を送信インタフェース番号線L102へ
出力し、登録プレフィクス長を登録プレフィクス長線L1
03に出力する。LPM 検索にヒットしなかった場合、検索
ヒット線L109が非ヒット値(ヒットしなかったことを示
す値)にセットされる。また、検索の結果得られたエン
トリの常駐フラグフィールドが0ならば、登録線L119を
有効化し、そうでなければ、有効化しない。テーブル検
索機構101 において、パケットの送信先アドレスを基
に、宛先フィールドをLPM 検索する機構に関しては従来
のルータと同様のLPM 検索機構を用いて実現できる。
ワーディングテーブル用メモリ103に格納されている宛
先フィールドを基に、従来のルータのフォワーディング
テーブルにはない、登録プレフィクス長フィールドの値
を求めて、それを格納する。この動作をここで説明して
おく。まず、ルータのフォワーディングテーブルの全エ
ントリについて、宛先,送信インタフェース番号が、フ
ォワーディングテーブル用メモリ103 の宛先フィール
ド,送信インタフェース番号フィールドにそれぞれすで
に格納されているとする。登録プレフィクス長決定機構
102 は、このテーブルを使用して、テーブルの先頭のエ
ントリから順に、先に定義した最大キャッシュプレフィ
クス長を求め、それを登録プレフィクス長の値として、
登録プレフィクス長フィールドに格納してゆく。登録プ
レフィクス長の値(すなわち、最大キャッシュプレフィ
クス長の値)を決定する手順は以下のように行われる。
(以下Eと呼ぶ)の宛先フィールドのプレフィクスビッ
ト列とプレフィクス長を取り出し、登録プレフィクス長
の値(以下PLと呼ぶ)を、初期値としてEのプレフィク
ス長に設定しておく。次に、フォワーディングテーブル
の、Eを除いた各エントリに対して、テーブルの先頭か
ら順に以下のZ1〜Z3の判定処理とZ4のPLの値の更新処理
を実行してゆく。尚、以下では、処理を行っているエン
トリをCEと呼んでいる。
ィックス長の値より小さい(一致する場合をのぞく)
プレフィクスビット列について、最上位ビットからEの
プレフィクス長の部分が一致する(Eのプレフィクス長
が0の時は常に一致する)
きい(等しい場合を除く)
レフィクス長に更新する。そうでなければなにもしな
い。
の、PLの値が、Eの登録プレフィクス長の値である。こ
の処理によって最長キャッシュプレフィクス長が得られ
ている。この機構は、カウンタ,大小比較判定器,ビッ
ト列の一致判定器およびレジスタを用いて簡単に実現で
きる。以下、上で述べた、各エントリの登録プレフィク
ス長フィールドを決定する処理のことを「登録プレフィ
クス長決定処理」と呼ぶ。この処理をフローチャート図
6に示しておく。
索機構130 の詳細図である。マスク機能付き連想メモリ
131 とRAM(Random Access Memory)132から構成される。
マスク機能付き連想メモリ131 は、プレフィクスビット
列とマスクビット列を組にしたエントリを、アドレス毎
に登録しておくと、検索キーのビット列が与えられたと
きに、各エントリにおいて、プレフィクスビット列をマ
スクビット列でマスクしたビット列と、検索キーのビッ
ト列をマスクビット列でマスクしたビット列とを比較
し、一致するエントリのアドレスを出力するメモリであ
る。例えば、5bit幅のマスク付き連想メモリに、図27
に示す3つのエントリが登録されていた場合、検索キー
として、11011 が与えられると、アドレス1では、デー
タビット列をマスクビット列でマスクしたビット列は、
10100 で、検索キーをマスクビット列でマスクしたビッ
ト列は、11000 となって、これら2つを比較すると一致
しない。同様に、アドレス2では、11010 と11011 を比
較して一致しない。アドレス3では11000 と11000 を比
較して一致するので、検索結果として、一致したエント
リのアドレスである3が出力される。複数一致するエン
トリがあった場合には、それらのうちのどれかのアドレ
スが出力される。
ィールドと送信インタフェース番号フィールドからな
り、宛先フィールドはネットワークアドレスを示すプレ
フィクスビット列と、マスクビット列の組から構成され
る。マスク付きキャッシュテーブルの各エントリは、そ
のプレフィクスビット列をマスク付き連想メモリのデー
タビット列として、マスクビット列を、マスク付き連想
メモリのデータビット列として格納する。送信インタフ
ェース番号は、RAM132中の、連想メモリに宛先フィール
ド(プレフィクスビット列とマスクビット列) を格納し
たのと同一のアドレスに格納される。図3では、ネット
ワークアドレスを32ビット幅とし、ドット付き10進数で
プレフィクスビット列,マスクビット列を表現してい
る。例えば、プレフィクスビット列: 2.1.0.0 は、 00000010 00000001 00000000 00000000 (8bit ごとにス
ペースを入れいている) というビット列を表し、マスクビット列: 255.255.0.0
は、11111111 11111111 00000000 00000000(8bitごとに
スペースを入れいている) というビット列を表す。
付きキャッシュテーブルにエントリが登録される。これ
は以下の手順で行われる。マスク機能付き連想メモリ13
1 では、キャッシュ登録アドレス線L112が示すアドレス
に、プレフィクスビット列線L114から入力されるプレフ
ィクスビット列と、マスクビット列線L115から入力され
るマスクビット列を格納する。同時に、RAM132では、キ
ャッシュ登録アドレス線L112の示すアドレス(マスク付
き連想メモリ131 に格納したのと同じアドレス)に送信
インタフェース番号線L102から入力される送信インタフ
ェース番号を格納する。
行われる。マスク機能付き連想メモリ131 に送信先アド
レス線L104から送信先アドレスが検索キーとして入力さ
れ、マスク機能付き連想メモリ131 の機能によって、各
エントリについて、宛先フィールドのプレフィクスビッ
ト列のうち、マスクビット列の1がたっているビット部
分に関して、プレフィクスビット列と送信先アドレスを
表すビット列を比較し、一致するエントリがあった場合
(ヒットした場合)には、ヒットアドレス線L111にヒッ
トしたエントリを登録しているマスク付き連想メモリの
アドレスが出力される。また、同時に、キャッシュヒッ
ト線L110がヒット値にセットされる。そして、RAM132で
は、ヒットアドレス線L111の示すアドレスに書かれてい
る送信インタフェース番号が読み出され、送信インタフ
ェース番号線L105にその値が出力される。ヒットしなか
った場合には、キャッシュヒット線L110が非ヒット値に
セットされる。
ある。ビットマスク生成回路143 では、登録プレフィク
ス長線L103の値に基づいて、ネットワークアドレスのビ
ット幅と同じ幅のマスクビット列を生成する。これは、
L103の値の長さだけ、最上位ビットから下位ビット方向
に向かって連続して1をたて、残りのビットは0である
ようなビット列を生成する回路である。たとえば、ネッ
トワークアドレスのビット幅が、32の時、L103の値が6
であったなら、32bit のうち最上位ビットから6ビット
だけ1をたて、残りのビットを0とした 11111100 00000000 0000000 0000000 (8bit 毎にスペー
スを入れている) というビット列を生成し、マスクビット列線L115に出力
する回路である。
(ネットワークアドレスのビット幅と同じビット幅をも
つ)から入力されるビット列と、ビットマスク生成回路
143 で生成されたビット列のビット毎のAND をとったビ
ット列を生成する回路である。例えば、ネットワークア
ドレスが32ビット幅の時、L101から 11001111 11111100 11111111 00000000 (8bit 毎にスペ
ースを入れている) というビット列が入力され、L115が 11111100 00000000 00000000 00000000(8bit毎にスペー
スを入れている) であった場合、 11001100 00000000 00000000 00000000(8bit毎にスペー
スを入れている) というビット列を生成し、プレフィクスビット列線L114
に出力する。
1 では、制御信号線L108が有効化されると、制御信号線
L113を有効化し、キャッシュを登録すべきマスク付きキ
ャッシュテーブルのアドレスをキャッシュ登録アドレス
線L112に出力する。このアドレスの決定は次のように行
われる。まず、キャッシュのアドレスを、常にエントリ
が登録がされていて、消去されることのないエントリ
(常駐エントリ)の為の部分と、LRU 等のアルゴリズム
を使って、キャッシュの更新が行われるエントリ(更新
エントリ)の為の部分に分けておく。キャッシュ登録ア
ドレス管理機構141 は、キャッシュの中で常駐エントリ
に使うための部分以外のキャッシュアドレスについて、
エントリが登録されていない、未使用のアドレスをリス
トなどで記憶しておいて、それをキャッシュの登録アド
レスとして使用したり、未使用アドレスがない場合に
は、すでにキャッシュを登録した、使用中のアドレスを
リストなどで記憶しておき、キャッシュヒット線L110が
ヒット値にセットされた時のヒットアドレス線L111の値
で、いつ、どのアドレスがヒットしたかを知ることがで
きることから、最近ヒットしていないエントリのアドレ
スを適切に見つけ出して、キャッシュを登録すべきアド
レスを決定することができる。常駐エントリの為の部分
をなくして、すべてを更新エントリ用のアドレスとし
て、アドレスを管理することも勿論可能である。
ットが到着すると、パケットの送信先アドレスがL117か
ら入力され、動作を開始する。送信先アドレスレジスタ
121は、制御機構120 に入力されるパケットの送信先ア
ドレスを格納し、その値を送信先アドレス線L101と、送
信先アドレス線L104に出力する。制御回路123 は内部に
シーケンサをもち、以下のように動作する。
に入力されると、動作を開始し、まず制御信号線L107を
有効化する。次にキャッシュヒット線L110がヒット値に
セットされれば、送信インタフェース番号線L105の値を
送信インタフェース番号レジスタ122 に取り込み、送信
インタフェース番号をL118に出力する。キャッシュヒッ
ト線L110が非ヒット値に設定されれば、制御信号線L106
を有効化する。そして、その後、検索ヒット線L109がヒ
ット値にセットされなければ、エラー処理を行なう。検
索ヒット線L109がヒット値にセットされれば、送信先イ
ンタフェース番号線L102の値を送信インタフェース番号
レジスタ122 に取り込み、送信インタフェース番号をL1
18に出力する。L109がヒット値にセットされていて、か
つ、登録線L119が有効化されれば、制御信号線L108を有
効化する。そして、すべての制御信号線L107,L106,L108
を無効化して停止する。L118に出力されている値が、こ
の実施例での方路決定処理の結果である。
の実施例の動作を説明する。まず、フォワーディングテ
ーブル用メモリ103 に、従来のルータのフォワーディン
グテーブルと同様に、宛先フィールド,送信インタフェ
ース番号フィールドが格納される(FC100) 。このとき、
フォワーディングテーブル検索機構100 の構成の説明中
に既に説明したように、登録プレフィクス長決定処理が
行われ、各エントリの登録プレフィクス長フィールドも
決定される(FC101) 。また、フォワーディングテーブル
の中で、常駐させたいエントリが存在するなら、そのエ
ントリを、キャッシュの常駐エントリ用の領域に格納
し、対応するフォワーディングテーブルのエントリの常
駐フラグを1にセットする(FC101-1) 。
パケットの送信先アドレスがL117を介して制御機構120
に入力される。この送信先アドレスが制御機構120 の中
の送信先アドレスレジスタ121 に格納され、送信先アド
レス線L101,L104へ出力される。次に、制御機構120 の
中の制御回路123 が制御信号線L107を有効化し、マスク
付きキャッシュテーブル検索機構130 において、送信先
アドレス線L104の値を用いて、マスク付きキャッシュテ
ーブルが検索される(FC105) 。
ャッシュヒット線L110がヒット値にセットされ、マスク
付きキャッシュテーブルのヒットしたエントリのアドレ
スが、ヒットアドレス線L111に出力され、さらに、送信
インタフェース番号線L105に、ヒットしたエントリの送
信インタフェース番号が出力される。このとき、キャッ
シュ登録アドレス管理機構141 では、キャッシュヒット
線L110がヒット値にセットされたことを受けて、ヒット
アドレス線L111の値を取り込み、LRU アルゴリズムなど
を用いて、次にマスク付きキャッシュのどのアドレスに
登録すべきかを決定し、そのアドレスをキャッシュ登録
アドレス線L112に出力する(FC115) 。制御機構120 にお
いても、キャッシュヒット線L110がヒット値( ヒットを
示す値)にセットされたことを受けて、送信インタフェ
ース番号線L105の値を送信インタフェース番号レジスタ
122 に格納し、送信インタフェース番号L118を出力する
(FC116) 。
ットしなかった場合(キャッシュヒット線L110が非ヒッ
ト値にセットされ、FC108 へ分岐を行った場合)、制御
機構120 の中の制御回路123 が、制御信号線L106を有効
化する。フォワーディングテーブル検索機構100 では、
制御信号線L106が有効化されたことを受けて、送信先ア
ドレス線L101に出力されているパケットの送信先アドレ
スの値を取り込み、テーブル検索機構101 によって、フ
ォワーディングテーブルをLPM 検索する(FC109) 。検索
の結果エントリが見つかると(FC111) 、検索ヒット線L1
09がヒット値に設定され、見つかったエントリの送信イ
ンタフェース番号、登録プレフィクス長が、それぞれ、
送信インタフェース番号線L102、登録プレフィクス長線
L103に出力される。また、見つかったエントリの常駐フ
ラグが0ならば、登録線L119も有効化される。
効化されたことを受けて、送信インタフェース番号線L1
02の値を取り込み、送信インタフェース番号をL118へ出
力する(FC112) 。さらに、登録線L119が有効化されてい
れば(FC120) 、制御信号線L108を有効化する。
レス線L101の示すビット列と、登録プレフィクス長線L1
03の値を基に、マスク付きキャッシュの宛先フィールド
に登録する、プレフィクスビット列と、マスクビット列
を生成し(FC113) 、それぞれを、プレフィクスビット列
線L114、マスクビット列線L115に出力する。また、制御
信号線L108が有効化されたことを受けて、キャッシュ登
録アドレス管理機構141 は、制御信号線L113を有効化す
る。
0 では、制御信号線L113が有効化されたことを受けて、
プレフィクスビット列線L114,マスクビット列線L115,
送信インタフェース番号線L102,キャッシュ登録アドレ
ス線L112の値を取り込み、キャッシュ登録アドレス線L1
12の示すマスク付きキャッシュテーブルのアドレスに、
プレフィクスビット列線L114、マスクビット列線L115、
送信インタフェース番号線L102の値を格納する(FC114)
。フローチャートのFC110 において、検索結果が見つ
からない場合には(FC117) 、制御機構120 においてエラ
ー処理(FC118) が行われる。また、FC119 において、登
録線L119が有効化されていなければ(FC121) 、制御機構
120 は制御信号線L108を有効化せず、FC113 ,FC114 の
処理は行われない。
ルの中で、マスク付きキャッシュテーブルに常駐させる
ことができるエントリには制約がある。これについて
は、本実施例の最後で述べる。
し、エントリが見つかった場合に(FC111) 、登録線L119
を有効化しているが、キャッシュに登録すべきかどうか
を識別するフラグをフォワーディングテーブル中に用意
しておいて、それに応じて、登録線L119を有効化するよ
うにすることも可能である。
作を説明する。ここでは、ネットワークアドレスが32ビ
ットとする。マスク付きキャッシュテーブルの更新領域
には初期状態としてなにも登録されていないとする。ま
ず、ルータのフォワーディングテーブルが、図28に示
すものであったとする。また、この中で、アドレス4の
エントリが常駐エントリに選ばれているとする。そし
て、キャッシュのエントリ数は4(アドレス1〜4)
で、キャッシュのアドレス4 が常駐エントリの為のアド
レスとして決められているとする。
が、登録プレフィクス長決定処理を行って、フォワーデ
ィングテーブルの各エントリの登録プレフィクス長を決
定する。
長は、登録プレフィクス長決定機構102 の構成の説明の
中で述べた登録プレフィクス長決定処理においてE=
1,PL=8と設定して、アドレス2〜6のエントリに対
して、順に登録プレフィクス長決定処理のZ1〜Z4を実行
すればよい。アドレス2のエントリを処理すると、PL=
16に更新され、アドレス3のエントリを処理すると、PL
=24と更新される。以降、アドレス4〜6の、どのエン
トリに対してもPLは更新されず、登録プレフィクス長は
24に決定される。
長は、登録プレフィクス長決定処理においてE=2,PL
=16 として、アドレス1 ,3〜6のエントリに対して、
順に登録プレフィクス決定処理のZ1〜Z4を実行すればよ
い。アドレス1に対しては、登録プレフィクス決定処理
のZ1〜Z3が成立せず、Z4で、PL=16のままである。アド
レス3に対しては、登録プレフィクス決定処理のZ1〜Z3
が成立し、Z4でPL=24となる。アドレス4〜6について
は、Z4ではなにも更新が行われず、結局、アドレス2に
対しては、登録プレフィクス長は、24と決定される。
レス3〜6にも行ってフォワーディングテーブルは、図
29に示すものとなる。また、マスク付きキャッシュテ
ーブルは、図30に示すものになっている。
2.3.5, 1.1.1.1, 10.2.3.4, 20.1.2.3 のパケットがこ
の順に到着したとする。
が到着した場合、マスク付きキャッシュテーブル検索機
構130 において、マスク付きキャッシュテーブルが10.
5.1.1をキーとして検索される。マスク付きキャッシュ
テーブルには該当するエントリがないのでヒットせず、
次に、フォワーディングテーブルが10.5.1.1をキーとし
て検索される。この結果、アドレス1にヒットし、送信
インタフェース番号線L102に値1が、登録プレフィクス
長線L103には24が出力される。制御機構120 では、送信
インタフェース番号を1と決定してこれをL118へ出力す
る。同時に、キャッシュ登録機構140 では、マスクビッ
ト列線L115に、登録プレフィクス長線L103の示す最上位
ビットから24ビットに1がたち、残りには0がセットさ
れたビット列255.255.255.0 がビットマスク生成回路14
3 によって生成される。また、プレフィクスビット列線
L114には、送信先アドレス線L101の値10.5.1.1とマスク
ビット列線L115のAND をとった 10.5.1.0 が出力され
る。キャッシュ登録アドレス管理機構141 は、マスク付
きキャッシュのアドレスの未使用エントリがある場合、
未使用のエントリの先頭のアドレスからエントリを登録
するものとすれば、この場合、マスク付きキャッシュテ
ーブルのアドレス1 にマスク付きキャッシュエントリが
登録されることになり、マスク付きキャッシュテーブル
は、図31に示すものとなる。
が到着した場合は、マスク付きキャッシュにはヒットせ
ず、フォワーディングテーブルのアドレス3にヒット
し、送信インタフェース番号は3と決定される、また、
アドレス3の登録プレフィクス長フィールドが24である
から、キャッシュ登録機構140 で、マスク付きキャッシ
ュテーブルに登録するプレフィクスビット列は、10.2.
3.0、マスクビット列は255.255.255.0 と決定され、マ
スク付きキャッシュテーブルは、図32に示すものとな
る。
が到着した場合は、マスク付きキャッシュにはヒットせ
ず、フォワーディングテーブルのアドレス5にヒット
し、送信インタフェース番号は5と決定され、マスク付
きキャッシュテーブルは、図33に示すものとなる。
トが到着した場合には、マスク付きキャッシュのアドレ
ス2にヒットし、送信インタフェース番号は3と決定さ
れる。マスク付きキャッシュテーブルは、変更されな
い。
トが到着した時も、マスク付きキャッシュのアドレス4
にヒットし、送信インタフェース番号は4と決定され
る。マスク付きキャッシュテーブルは、変更されない。
ケットの送信インタフェース番号が決定され、パケット
が送信される。
シュテーブルへのキャッシュ登録方法に従ってキャッシ
ュを登録した場合に、キャッシュにヒットした場合に
も、正しい送信インタフェース番号が決定できることを
示す。
レスを基にフォワーディングテーブルを検索してヒット
したエントリの、登録プレフィクス長を求めて、パケッ
トの送信先アドレスを表すビット列の最上位ビットか
ら、登録プレフィクス長部分をマスク付きキャッシュに
登録しているが、この登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信インタフェース番号が決定できるためには、キャ
ッシュに登録するエントリが、フォワーディングテーブ
ル検索でヒットしたエントリが包含する他のフォワーデ
ィグテーブルのエントリがあった場合にそのどれをも包
含することはないことを示せばよい。
レフィクス長フィールドは、最大キャッシュプレフィク
ス長、すなわち、そのエントリのアドレス集合に包含さ
れる、他のフォワーディングテーブルのエントリの中で
最大のプレフィクス長を示している。これは、登録プレ
フィクス決定処理の中で、Z1とZ2によって、エントリCE
がエントリEに包含されるかどうかを調べ(Z1かつZ2が
成立すれば、包含されている)、Z3において、CEのプレ
フィクスが、PLより長いことを調べることによって、最
大のプレフィクス長が選び出されるからである。このこ
とから、最大キャッシュプレフィクス長の定義の中で述
べている、アドレス集合の包含条件1が決して成立しな
いので、登録するエントリが、フォワーディングテーブ
ル検索でヒットしたエントリが包含する他のフォワーデ
ィグテーブルのエントリがあった場合にそのどれをも包
含することはない。
付きキャッシュテーブルに常駐させることができるエン
トリには制約がある。これは、第1の実施例のキャッシ
ュ登録方法で、正しい送信インタフェース番号を決定で
きるという上の説明の中で述べたように、登録するエン
トリが、フォワーディングテーブル検索でヒットしたエ
ントリが包含する他のフォワーディグテーブルのエント
リがあった場合にそのどれをも包含することはないとい
う制約である。
ーブルでは、アドレス3,4,6のエントリはこの制約
を満たしており、常駐させることが可能であるが、アド
レス1,2,5のエントリは常駐させることができな
い。
施例の構成図である。まず、図8の構成要素の概要を説
明する。
タのフォワーディングテーブルを格納したフォワーディ
ングテーブル用メモリ203 とその検索機構であるテーブ
ル検索機構201 を持つ。フォワーディングテーブルは、
従来のルータのフォワーディングテーブルと同じ、宛先
フィールド、送信インタフェース番号(以下送信IF番
号)フィールドを持ち、さらに、後述する、フォワーデ
ィングテーブルに対応して生成されるツリー構造のリス
トの、ツリーノードへのポインタを保持する、ツリー管
理リストノードへのポインタフィールドを持つ。制御信
号線L206が有効化されると、パケットの送信先アドレス
線L201から入力されるパケットの送信先アドレスを基
に、フォワーディングテーブルの宛先フィールドをLPM
検索する。検索の結果得られた送信IF番号と、ツリーノ
ードへのポインタを送信IF番号線L202, ツリーノードへ
のポインタ線L203にそれぞれ出力する。また、フォワー
ディングテーブルは、後述するツリー初期化機構242 か
らも読み書きされる。
とし、フォワーディングテーブル検索機構200 ,LPM キ
ャッシュ登録機構240 およびLPM キャッシュテーブル検
索機構230 を制御して、パケットをフォワードすべき送
信IF番号を決定し、それをL218に出力する。
LPM キャッシュテーブルは、宛先フィールドと送信IF番
号フィールドとツリーノードへのポインタフィールドと
からなる。宛先フィールドは、ネットワークアドレスを
示すプレフィクスビット列と、マスクビット列の組が格
納される。また、このLPM キャッシュテーブル検索機構
230 は、LPM キャッシュテーブルを検索する機能を持
つ。これは、たとえば、特願平9-234250号公報に記載さ
れているLPM 検索機能付きメモリとRAM(Random Access
Memory) で構成される。検索においては、パケットの送
信先アドレスがL204から与えられると、各エントリにつ
いて、宛先フィールドをLPM検索し、該当するエントリ
があった場合には、キャッシュヒット線L210をヒット値
にセットし、そのエントリの送信IF番号,ツリーノード
へのポインタフィールドの値をそれぞれL205,L215に出
力する。ヒットしなかった場合には、キャッシュヒット
線L210を非ヒット値にセットする。
内部に、キャッシュ登録アドレス管理機構241 と、ツリ
ー初期化機構242 と、管理用メモリ243 とを持つ。キャ
ッシュ登録アドレス管理機構241 は、キャッシュのアド
レスを常に登録が行われて消去されることのないエント
リ(常駐エントリ)の為の部分と、LRU等のアルゴリズ
ムを使って、キャッシュの更新が行われるエントリ(更
新エントリ)の為の部分(更新エントリ用キャッシュア
ドレス領域)に分けて管理している。また、更新エント
リ用キャッシュアドレス領域に関してLPM キャッシュテ
ーブルの使用/未使用エントリのアドレスを管理し、キ
ャッシュの有効活用のために、使用されているエントリ
について、キャッシュにヒットしたエントリを例えばLR
U などで管理している。また、フォワーディングテーブ
ルをツリー型のリスト構造で管理しており、LPM キャッ
シュ登録/削除の際に、フォワーディングテーブルの中
のどのエントリを登録/削除すべきかを決定する。ツリ
ー初期化機構242 は、このツリー型リストの初期化を行
う。常駐エントリを作らないことも勿論可能である。
構200 の詳細な構成を示す。ルータのフォワーディング
テーブルを格納するフォワーディングテーブル用メモリ
203とそれを検索するテーブル検索機構201 から構成さ
れる。フォワーディングテーブル用メモリ203 は、フォ
ワーディングテーブルを格納している。このフォワーデ
ィングテーブルは、従来のルータのフォワーディングテ
ーブルと同様に、宛先フィールド、送信先IFフィールド
を持ち、さらに、ツリーノードへのポインタフィールド
も持つ。宛先フィールドには、プレフィクスを示すプレ
フィクスビット列と、プレフィクスビット列のプレフィ
クス長を示すプレフィクス長フィールドが含まれる。テ
ーブル検索機構201 は、制御信号線L206が有効化される
と、送信先アドレス線L201から入力されるパケットの送
信先アドレスを基にフォワーディングテーブル用メモリ
203 に格納されたフォワーディングテーブルの宛先フィ
ールドをLPM 検索し、検索にヒットした場合、検索ヒッ
ト線L209をヒット値にセットし、検索にヒットしたエン
トリの送信IF番号を送信IF番号線L202へ出力し、ツリー
ノードへのポインタをツリーノードへのポインタ線L203
に出力する。検索にヒットしなかった場合、検索ヒット
線L209が非ヒット値にセットされる。テーブル検索機構
201 において、パケットの送信先アドレスを基に、宛先
フィールドをLPM 検索する機構に関しては従来のルータ
と同様のLPM 検索機構を用いて実現できる。
構230 の詳細図である。LPM 検索機能付きメモリ231 と
RAM(Random Access Memory)232とから構成される。LPM
検索機能付きメモリ231 は、プレフィクスを表すプレフ
ィクスビット列と、プレフィクス長を表すマスクビット
列を組にしたエントリを、アドレス毎に登録しておく
と、検索キーのビット列が与えられたときに、LPM 検索
を行い、該当するエントリのアドレスを出力するメモリ
である。マスクビット列は、最上位ビットから下位ビッ
トに向かってプレフィクス長の長さのビットについて1
とし、残りのビットについては0としたものである。例
えば、8bit幅のLPM 検索機能付きメモリ231 に図35に
示す4つのエントリが登録されていたとする。
ア(0でも1でもよい)を表している。
と、アドレス2と4のエントリのプレフィクスが一致す
るが、この中で最長のプレフィクスを持つアドレス4が
LPM 検索結果としてL220に出力される。アドレス1で
は、データビット列をマスクビット列でマスクしたビッ
ト列は、10100000で、検索キーをマスクビット列でマス
クしたビット列は、11000000となって、これら2つを比
較すると一致しない。同様に、アドレス3では、110000
00と11010000とを比較して一致しない。アドレス2では
11010000と11010000とを比較して一致し、アドレス4で
は11011000と11011000とを比較して一致するが、アドレ
ス4の方がプレフィクス長が長いので、検索結果とし
て、アドレス4が出力される。
ド,送信IF番号フィールドおよびツリーノードへのポイ
ンタフィールドからなる。宛先フィールドはネットワー
クアドレスを示すプレフィクスビット列と、マスクビッ
ト列の組から構成される。プレフィクスビット列はLPM
検索機能付きメモリ231 のデータビット列として、マス
クビット列はLPM 検索機能付きメモリ231 のマスクビッ
ト列として格納される。送信IF番号フィールド,ツリー
ノードへのポインタフィールドは、RAM232中の、LPM 検
索機能付きメモリ231 に宛先フィールド(プレフィクス
ビット列とマスクビット列)を格納したのと同一のアド
レスに格納される。図10では、ネットワークアドレス
を32ビット幅とし、ドット付き10進数でプレフィクスビ
ット列、マスクビット列を表現している。例えば、プレ
フィクスビット列: 2.1.0.0 は、 00000010 00000001 00000000 00000000 (8bit ごとにス
ペースを入れいている) というビット列を表し、マスクビット列: 255.255.0.0
は、11111111 11111111 00000000 00000000(8bitごとに
スペースを入れいている)というビット列を表す。
トされると、LPM キャッシュテーブルにエントリが登録
される。これは以下の手順で行われる。 LPM検索機能付
きメモリ231 では、キャッシュ登録アドレス線L212が示
すアドレスに、登録内容線L214から入力されるプレフィ
クスビット列、マスクビット列が格納される。同時に、
RAM232では、キャッシュ登録アドレス線L212の示すアド
レス(LPM検索機能付きメモリ231 に格納したのと同じア
ドレス) に登録内容線L214から入力される送信IF番号、
ツリーノードへのポインタを格納する。エントリの削除
については、制御信号線L213が削除を表す値にセットさ
れ、このときのキャッシュ登録アドレス線L212の値が示
すアドレスのキャッシュエントリが削除される。
行われる。LPM 検索機能付きメモリ231 に、送信先アド
レス線L204から送信先アドレスを表すビット列が検索キ
ーとして入力され、LPM 検索機能付きメモリ231 の機能
によって、LPM 検索を行い、一致するエントリがあった
場合には、キャッシュヒット線L210がヒット値にセット
され、ヒットアドレス線L220にヒットしたエントリを登
録しているLPM 検索機能付きメモリ231 のアドレスが出
力される。また、同時に、キャッシュヒット線L210がヒ
ット値にセットされる。そして、RAM232では、ヒットア
ドレス線L220の示すアドレスに書かれている送信IF番
号,ツリーノードへのポインタが読み出され、送信IF番
号線L205,ツリーノードへのポインタ線L215にその値が
出力される。ヒットしなかった場合には、キャッシュヒ
ット線L210が非ヒット値にセットされる。
細図である。
ーディングテーブルの各エントリに対応するノードをツ
リー状のリストで管理している。ツリーノードは管理用
メモリ243 に置かれ、ツリー初期化機能242 は、ツリー
構造の初期化を行う。ツリーの各ノードは図12に示す
ように、プレフィクスビット列とマスクビット列のペア
からなる宛先フィールドと、送信IF番号フィールドと、
2bitの登録済みフラグと、親ノードへのポインタと、子
ノードリストへの先頭ポインタとを有する。さらに、該
当エントリがキャッシュに登録された場合の、キャッシ
ュのアドレスを示すキャッシュアドレスフィールド、そ
して、キャッシュ登録されている場合にそのアドレスを
LRU 管理するために使用する次ポインタフィールド、前
ポインタフィールド持つ。子ノードリストへの先頭ポイ
ンタは、該当ノードの子ノードへのポインタをリストで
管理した子ノードリストを指している。
について説明する。
ワークアドレスの集合を考える。フォワーディングテー
ブルに対応付けられているすべてのノードには、それぞ
れのアドレス集合がある。これらの集合全体をUとす
る。あるノードAの親ノードとは、Uの中で、Aの宛先
フィールドが表すネットワークアドレスを包含する集合
のうち、最も少ない構成要素を持つ、すなわち、最もプ
レフィクス長の長い宛先を持つノードである。これは次
の親ノード検索手順で見つけることができる。
そして、親ノードをPNとし(初期値ではNullを入れてお
く)、親ノードのプレフィクス長をL(初期値でL=−
1)とする。N1を除くすべてのノードについて順に着目
し、次のX1,X2 の判定とX3を実行する。
のプレフィクス長より短い(等しい場合を除く)
たノードのプレフィクスビット列を、最上位ビットから
下位ビットに向かって、着目したプレフィクス長の長さ
のビットに関して比較して、一致する。
ドのプレフィクス長が、Lより大きい(等しい場合を除
く)ならば、PNを着目したノードに置き換える。
の親ノードがセットされている。PN=Null であれば、そ
のエントリには親ノードがなく、Null値(無効値)を親
ノードへのポインタとする。
初期化機構242 は、以下のツリー初期化手順を実行す
る。
数と同じ数のノードを管理用メモリ243 上に用意し、フ
ォワーディングテーブルの、ツリーノードへのポインタ
フィールドを、用意した各ノードを指すようにセット
し、ノードの宛先フィールド,送信IF番号フィールドに
は、フォワーディングテーブルと同じ宛先,送信IF番号
フィールドを書く。ただし、宛先フィールドのマスクビ
ット列としては、ネットワークアドレスと同じビット幅
のビット列に、最上位ビットから下位ビットに向かっ
て、プレフィクス長と同じ数のビットに1をたて、残り
のビットは0としたビット列とする。また、2bitの登録
済みフラグは”00”、キャッシュアドレス,前ポイン
タ,次ポインタはNULL(無効値)とする。フォワーディ
ングテーブルのエントリの中で、常にキャッシュとして
登録しておきたいエントリ(常駐エントリ)がある場合
は、登録済みフラグを”10”にセットし、常駐エントリ
用のキャッシュアドレス領域に、そのエントリを登録す
る。
着目し、着目したノードの親ノードを見つけるために、
先に述べた親ノード検索手順を踏む。親ノードが見つか
れば、親ノードポインタに、その親ノードのアドレスを
登録する。また、その親ノードに対して、子ノードとし
て着目しているノード自身を登録する。これは、子ノー
ドリストに、着目しているエントリのアドレスを格納し
たリストを追加すればよい。
未使用エントリ数レジスタ244 ,未使用エントリリスト
への先頭ポインタ245 ,未使用エントリリストへの末尾
ポインタ246 ,使用中ツリーノードリストへの先頭ポイ
ンタ247 および使用中ツリーノードリストへの末尾ポイ
ンタ248 を持つ。キャッシュのアドレスは、常に登録が
行われて、消去されることのないエントリ(常駐エント
リ)の為の部分と(ツリー初期化手順の1の中で、常駐
エントリ用のキャッシュアドレス領域と呼んだ部分)
と、LRU 等のアルゴリズムを使って、キャッシュの更新
が行われるエントリ(更新エントリ)の為の部分(更新
エントリ用キャッシュアドレス領域)とに分けておく。
未使用エントリリストは更新エントリ用キャッシュアド
レス領域に関して、図13に示すように、リストの各ノ
ードが、更新エントリとして使われる部分のアドレスの
中で、未使用のキャッシュエントリのアドレスと次ノー
ドへのポインタを持ち、キャッシュの中で未使用のアド
レスをリストで管理しており、未使用エントリリストへ
の先頭ポインタ245 がそのリストの先頭ノードを、未使
用エントリリストへの末尾ポインタ246 が末尾ノードを
指している。ツリー初期化機構242 で作成したツリーノ
ードのうち、LPM キャッシュテーブルに、その宛先、送
信IF番号が登録されているツリーノードは、双方向リス
トで接続されており、使用中ツリーノードリストへの先
頭ポインタ247 ,末尾ポインタ248 が、その先頭ノー
ド,末尾ノードを記憶している(図13参照)。
下のように初期化される。未使用エントリリストは、キ
ャッシュの全アドレスをリストでつないで初期化し、そ
の先頭リストのアドレスを未使用エントリリストの先頭
ポインタ245 に登録する。また、未使用エントリ数レジ
スタ244 には未使用エントリリストのノード数が設定さ
れる。使用中ツリーノードリストの先頭ポインタ247 ,
末尾ポインタ248 はNull(無効値)で初期化する。
1 が実行する、エントリ登録手順と、エントリ削除手順
を述べる。
へは、任意個(例えばM個)のツリーノードへのポイン
タ(ツリーのアドレス)が入力される。
トを取り外す。また、未使用エントリ数レジスタ244 は
Mを減算した値に更新する。
用中ツリーノードリストの先頭に付け加える(M個の中
での順序は問わない)。このとき、M個のツリーノード
は、それらの前ポインタ,次ポインタで双方向リストと
してつながれ、使用中ツリーノードリストへの先頭ポイ
ンタ247 ,末尾ポインタ248 も正しくセットされる。
IF番号を読み出し、2.で取り外したリストから読み出
したM個のキャッシュアドレスに、M個の (宛先,送信
先IF番号,ツリーノードへのポインタ)の組を格納す
る。格納には、制御信号線L213がM回書き込みを示す値
にセットされて、L212にはキャッシュアドレスが、L214
には、(宛先,送信先IF番号,ツリーノードへのポイン
タ)の組がそれぞれM個出力され、LPM キャッシュテー
ブル検索機構230 によって、それらが指定したM個のア
ドレスに格納される。
ードの(宛先、送信IF番号、ツリーノードへのポイン
タ)を格納した、キャッシュのアドレスを、キャッシュ
アドレスフィールドに格納する。また、2bitの登録済み
フラグも”01”にセットする。
インタ248 の指す、ツリーノードを読み出す。
き、登録済みフラグが”01”にセットされているノード
ついて(常駐エントリではなく、登録されているノード
について)、 2-1.登録済みフラグを”00”にセット 2-2.ツリーノードのアドレス(ポインタ)、キャッシュ
アドレスの取得を行う。
について、使用中ツリーノードリストからそのノードを
取り外す処理を行い、それらのノードに書かれているキ
ャッシュアドレスフィールドの値を使って、(キャッシ
ュアドレスフィールド、次ポインタ)を組とする未使用
エントリリストのノードを作成し、未使用エントリリス
トの任意の場所(たとえば先頭)に付け加える。また、
未使用エントリ数レジスタ244 の値に、未使用エントリ
リストに付け加えたノード数を加算して更新する。
ドレスのキャッシュを削除する。これには、制御信号線
L213、キャッシュアドレス線L212を用いて、LPM キャッ
シュテーブル検索機構230 に、それぞれ、削除の指示、
削除したいアドレスが出力される。
241 が実行する、LRU 管理手順を述べる。キャッシュヒ
ット線L210が、ヒット値にセットされると、以下のLRU
管理手順を実行する。
を読み込み、検索にヒットしたキャッシュエントリに対
応する、ツリーノードのアドレスを得る。
使用中ツリーノードリストの先頭にくるように、キャッ
シュ登録アドレス管理機構241 が、使用中ツリーノード
リストの双方向リストをつなぎかえる。
1 は、以下に述べるキャッシュ登録手順も実行する。制
御信号線L208が有効化されると、ツリーノードへのポイ
ンタ線L203からポインタを読み込み、ポインタレジスタ
249 に格納する。そして、次に示す、キャッシュ登録手
順を実行する
のノードから、一般的なツリー探索アルゴリズムを使っ
て(たとえば、幅優先探索など)、管理メモリ243上
のツリーノードに対して、ツリーにおける下(子ノード
方向)のすべてのノードを探索して、登録フラグの立っ
ていないノードについて、ノードのアドレスを取得す
る。またこれらのノードの個数も数え、これをNとす
る。
の、未使用エントリ数レジスタ244の値とNを比較し、
Nと等しいあるいか小さければ4.へ進む。
にて、前出のエントリ削除手順1〜5を実行し、1.へ
戻る。
として、キャッシュ登録アドレス管理機構241 にて、前
出のエントリ登録手順1〜6を実行する。
信先アドレスレジスタ221 は、制御機構220 に入力され
るパケットの送信先アドレス(L217を介して入力され
る)を格納し、その値を送信先アドレス線L201と、送信
先アドレス線L204に出力する。制御回路223 は内部にシ
ーケンサを持ち、以下のように動作する。
に入力されると、動作を開始し、まず制御信号線L207を
有効化する。次にキャッシュヒット線L210がヒット値に
セットされれば、送信IF番号線L205の値を送信IF番号レ
ジスタ222 に取り込み、送信IF番号をL218に出力する。
キャッシュヒット線L210が非ヒット値に設定されれば、
制御信号線L206を有効化する。また、検索ヒット線L209
がヒット値にセットされれば、制御信号線L208を有効化
し、さらに、送信IF番号線L202の値を送信IF番号レジス
タ222 に取り込み、送信IF番号をL218出力する。ヒット
値にセットされなければ、エラー処理を行う。そして、
すべての制御信号線L207,L206,L208を無効化して停止す
る。
2の実施例の動作を説明する。まず、フォワーディング
テーブル用メモリ203 にフォワーディングテーブルが登
録される(FC200) 。次に、LPM キャッシュ登録機構240
の中で、ツリー初期化機構242 が先に述べたツリー初期
化手順を行い(常駐エントリの登録が、もしあればそれ
も行う)、キャッシュ登録アドレス管理機構241 が未使
用エントリリストの初期化を行う(FC201) 。
パケットの送信先アドレスL217が制御機構220 に入力さ
れる。この送信先アドレスが制御機構220 の中の送信先
アドレスレジスタ221 に格納され、送信先アドレス線L2
01,L204へ出力される。次に、制御機構220 の中の制御
回路223 が制御信号線L207を有効化し、LPM キャッシュ
テーブル検索機構230 において、送信先アドレス線L204
の値を用いて、LPM キャッシュテーブルが検索される(F
C205) 。
ャッシュヒット線L210がヒット値にセットされ、LPM キ
ャッシュテーブルのヒットしたエントリのツリーノード
へのポインタが、ツリーノードへのポインタ線L215に出
力され、さらに、送信IF番号線L205に、ヒットしたエン
トリ中の送信IF番号が出力される。このとき、キャッシ
ュ登録アドレス管理機構241 では、キャッシュヒット線
L210がヒット値にセットされたことを受けて、ツリーノ
ードへのポインタ線L215の値を取り込み、先に述べたLR
U 管理手順を用いて、使用中ツリーノードリストの双方
向リンクリストを付け替える(FC215) 。制御機構220 に
おいても、キャッシュヒット線L210がヒット値にセット
されたことを受けて、送信IF番号線L205の値を送信IF番
号レジスタ222 に格納し、パケットの送信IF番号L218を
出力する(FC216) 。
5のFC208 の分岐へ進んだ場合)、キャッシュヒット線
L210が非ヒット値にセットされ、制御機構220 の中の制
御回路223 が、制御信号線L206を有効化する。フォワー
ディングテーブル検索機構200 では、制御信号線L206が
有効化されたことを受けて、送信先アドレス線L201に出
力されているパケットの送信先アドレス線の値を取り込
み、テーブル検索機構201 によって、フォワーディング
テーブルをLPM 検索する(FC209) 。検索の結果エントリ
が見つかると(FC211) 、検索ヒット線L209がヒット値に
設定され、見つかったエントリの送信IF番号,ツリーノ
ードへのポインタが、それぞれ、送信IF番号線L202,ツ
リーノードへのポインタ線L203に出力される(FC212) 。
制御機構220 では、検索ヒット線L209が有効化されたこ
とを受けて、制御信号線L208を有効化する。LPM キャッ
シュ登録機構240 では、制御信号線L208が有効化された
ことを受けて、先に述べたキャッシュ登録手順を実行し
(FC213) 、登録すべきツリーノードの、宛先、送信IF番
号、ツリーノードへのポインタをLPM キャッシュテーブ
ル検索機構230 のLPM キャッシュテーブルに登録する。
フォワーディングテーブルのLPM 検索の結果、エントリ
が見つからなかった場合(FC217) 、検索ヒット線L209が
非ヒット値にセットされる。制御機構220 では、検索ヒ
ット線L209の非ヒット値にセットされたことを受けて、
エラー処理を行う(FC218) 。
べきかどうかを識別するフラグを用意しておいて、キャ
ッシュ登録手順の1.のはじめにおいて、そのフラグに
応じて登録処理を実行するかどうかを変えることも可能
である。
作を説明する。ここでは、ネットワークアドレスが32ビ
ットとする。LPM キャッシュエントリには初期状態とし
てなにも登録されていないとし、キャッシュの容量は5
で、アドレス1 〜4 が更新エントリの為の領域で、アド
レス5が常駐エントリの領域とする。
が、図36に示すものであったとし、アドレス7のエン
トリは常駐エントリとしてキャッシュに常に登録される
とする。
で、LPM キャッシュ登録機構240 のツリー初期化機構24
2 によって、ツリー初期化が行われ、図16のようにツ
リーが初期化される。図16では、ツリーノードの親ノ
ードへのポインタ,子ノードリストへの先頭ポインタ,
子ノードリストは省略して、親ノードへのポインタを点
線矢印、子ノードへのポインタを実線矢印で表記してい
る。また、未使用エントリリストについても図16のよ
うに初期化される。キャッシュの更新エントリの容量が
4であるので、未使用エントリ数レジスタ244 には4が
格納される。LPMキャッシュ登録機構240 の管理用メモ
リ243 にツリーノード1〜7を格納したアドレスが、ア
ドレス1〜7であるとすると、フォワーディングテーブ
ルは、図37に示すものとなる。
に示すものとなる。
1.2.3, 20.1.2.3のパケットがこの順に到着したとす
る。まず、送信先アドレス10.5.1.1のパケットが到着す
ると、LPM キャッシュテーブル検索機構230 において、
LPM キャッシュテーブルが10.5.1.1をキーとしてLPM 検
索される。LPM キャッシュテーブルには該当するエント
リがないのでヒットせず、次に、フォワーディングテー
ブルが10.5.1.1をキーとしてLPM 検索される。この結
果、アドレス1にヒットし、送信IF番号線L202に値10
が、ツリーノードへのポインタ線L203には、1 が出力さ
れる。制御機構220 では、送信IF番号をL202の値から10
と決定してこれをL218へ出力する。同時に、LPMキャッ
シュ登録機構240 では、ポインタレジスタ249 にL203の
値である1が格納され、キャッシュ登録手順の1.が実
行され、ポインタレジスタ249 の値から図16のツリー
ノード1及びその配下(子ノード方向)のすべてのツリ
ーノードすなわち、ツリノード1,2,3,6の4個の
ツリーノードが選ばれる。キャッシュ登録手順の2で、
この個数4と未使用エントリ数レジスタ244 の値4とを
比較し、比較の結果キャッシュ登録手順の4.へ進む。
キャッシュ登録手順4.では、キャッシュ登録アドレス
管理機構241 でエントリ登録手順1.〜6.が実行さ
れ、ツリーリスト及び、未使用エントリリスト、使用中
ツリーリストは図17のように変化する。未使用エント
リ数レジスタ244 は、未使用エントリリストのノード数
が0になるので、0とセットされる。LPM キャッシュテ
ーブルは、図39に示すものとなる。
が到着すると、まずLPM キャッシュテーブルが10.1.2.3
をキーにしてLPM 検索され、アドレス2にヒットし、キ
ャッシュヒット線L210が有効化され、送信IF番号線L205
にはヒットしたエントリの送信IF番号である60が出力さ
れ、ツリーノードへのポインタ線L215には、ヒットした
エントリのツリーノードへのポインタフィールドの値で
ある6が出力される。制御機構220 では、パケットの送
信IF番号をL205の値から60と決定しこれをL218に出力す
る。キャッシュ登録アドレス管理機構241 では、キャッ
シュヒット線L210が有効化されたことをうけて、先に述
べたLRU 管理手順1〜3を実行し、ツリーノード6を使
用中ツリーノードリストの先頭にもってきて、図18の
ように変化する。
が到着すると、まずLPM キャッシュテーブル検索機構23
0 において、LPM キャッシュテーブルが20.1.2.3をキー
としてLPM 検索される。LPM キャッシュテーブルには該
当するエントリがないのでヒットせず、次に、フォワー
ディングテーブルが20.1.2.3をキーとして検索される。
この結果、アドレス4にヒットし、送信IF番号線L202に
値40が、ツリーノードへのポインタ線L203には、4が出
力される。制御機構220 では、送信IF番号をL202の値か
ら40と決定してこれをL218へ出力する。同時に、LPM キ
ャッシュ登録機構240 では、L203の値4をポインタレジ
スタ249 に格納し、キャッシュ登録手順の1.が実行さ
れ、ポインタレジスタ249 の値から図16のツリーノー
ド4及びその配下(子ノード方向)のすべてのツリーノ
ードすなわち、ツリノード4の1個のツリーノードが選
ばれる。キャッシュ登録手順の2.で、この個数1と未
使用エントリ数レジスタ244 の値0とを比較し、比較の
結果キャッシュ登録手順の3.へ進む。キャッシュ登録
手順3.では、キャッシュ登録アドレス管理機構241 が
先に述べたエントリ削除手順を実行する。
ノードリストの末尾ポインタ248 を読み(LRUアルゴリズ
ムで消されるべきエントリを指している)、ツリーノー
ド3が選ばれる。エントリ削除手順2.では、ツリーを
親方向にたどり、登録済みフラグが”01”にセットされ
ているノード、すなわちツリーノード3,2,1につい
て、登録済みフラグを”00”にし、ツリーノードに書か
れているキャッシュアドレスを取得する。これらは、ツ
リーノード3,2,1についてそれぞれ、4,3,1と
なる。さらにエントリ削除手順3.及び4.を実行する
と、結果としてツリーリスト及び、未使用エントリリス
ト、使用中ツリーリストは図19のように変化する。ま
た、LPM キャッシュテーブルも、アドレス4,3,1 が削除
されて図40に示すものとなる。
ュ登録手順3.の続きを実行すると、キャッシュ登録手
順1.へ戻り、キャッシュ登録手順1.が実行される。
キャッシュ登録手順の1.が実行されると、ポインタレ
ジスタ249 の値が4であったことから、図16のツリー
ノード4及びその配下(子ノード方向)のすべてのツリ
ーノードすなわち、ツリノード4の1個のツリーノード
が選ばれる。キャッシュ登録手順2.では、未使用エン
トリ数レジスタ244 の値が、3に変化しているので、こ
の3と選んだツリーノードの数1を比較した結果、今度
は、キャッシュ登録手順4.に進む。キャッシュ登録手
順4.ではツリーノード4をキャッシュに格納するた
め、エントリ登録手順1.〜6.を実行し、結果として
ツリーリスト及び、未使用エントリリスト、使用中ツリ
ーリストは図20のように変化する。また、LPM キャッ
シュテーブルも、図41に示すように変化する。
る。
ーブルへのキャッシュ登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信IF番号が決定できることを示す。第2の実施例で
は、ツリーノードの親子関係は、ツリーノードの宛先が
示すネットワークアドレスの集合について、親ノードが
子ノードを包含しているという関係が成立する。このた
め、第2の実施例のキャッシュ登録方法に従えば、フォ
ワーディングテーブルで検索にヒットしたエントリの宛
先が示すネットワークアドレスの集合に包含されるよう
な宛先を持つエントリはすべて登録される。このため、
登録したキャッシュのエントリは、フォワーディングテ
ーブルの一部ではあるが、正しい宛先と送信IF番号の組
を与えている。またキャッシュエントリを削除する際に
も、キャッシュ登録アドレス管理機構241 のエントリ削
除手順では、任意の2つのツリーノードについて、ツリ
ーの上位のノードだけがキャッシュに登録され、下位の
ノードが登録されていないという状態が発生しないよう
に削除を行っているため問題ない。
成の中で、キャッシュテーブルのエントリの中で、LRU
アルゴリズムの対象から除外し、常に使用されているエ
ントリがあるような構成でがとれることを示した。この
常駐させるエントリには制約がある。それをここで述べ
ておく。その制約とは、常にキャッシュに登録されてい
るフォワーディングテーブルのエントリについては、対
応するツリノードの配下(子ノード方向)の、すべての
ノードに対応するフォワーディングテーブルエントリも
一緒に常に登録しておく必要があるという制約である。
たとえば、先の動作例のフォワーディングテーブルにお
いては、常に登録しておくエントリの例としては、 ・ツリーノード4 に対応するエントリを1つだけ常に登
録しておく。 ・ツリーノード1,6,2,3 に対応するエントリ4つを常に
登録しておく。 等である。いずれの例でも、登録した任意のエントリに
対応するツリーノードの配下のノードに対応するエント
リはすべて登録されている。
図21に示す。第3の実施例は、第1の実施例のフォワ
ーディングテーブル検索機構100 をフォワーディングテ
ーブル検索機構300 に置き換えたもので、制御機構120,
キャッシュ登録機構140,マスク付きキャッシュテーブル
検索機構130 は、第1の実施例と全く同一のものでよ
く、各機構の接続関係L101〜L119も全く同一である。以
下では、第1の実施例とは異なるフォワーディングテー
ブル検索機構300 を説明する。フォワーディングテーブ
ル検索機構300 の詳細図を図22に示す。フォワーディ
ングテーブル用メモリ303 は、ルータのフォワーディン
グテーブルを格納しており、第1の実施例のフォワーデ
ィングテーブル用メモリ103 とは、登録プレフィクス長
フィールドを持たないという点以外は同じである。テー
ブル検索機構301 はフォワーディングテーブル用メモリ
303 をLPM 検索する機構で、第1の実施例のテーブル検
索機構とは、登録プレフィクス長を出力しないこと以外
は同一である。
ワーディングテーブル検索にヒットしたエントリのプレ
フィクスビット列、プレフィクス長をテーブル検索機構
301から受け取り、最適キャッシュプレフィクス長を以
下に述べる登録プレフィクス長決定手順で決定し、得ら
れた登録プレフィクス長を登録プレフィクス線L103へ出
力する。
トしたエントリのプレフィクスビット列をP、プレフィ
クス長をLとする。
る。またカウンタCをC=0に設定する。
トリ数を越えていなければ4を実行、そうでなければ7
へ。
スビット列,プレフィクス長及び、P,Lをつかって、
前方一致ビット数を求める。
り大きければPEをそれに置き換え、C=1とする。等し
い場合、C=C+1とする。
る。
クス長=PE+1。PE=LかつC=2以上の場合、登録プ
レフィクス長=PE +1。PE=Lかつ、C=1の場合、登
録プレフィクス長=PEとする。
1の実施例と同一なので、ここでは説明しない。
7のフローチャートにおいて、登録プレフィクス長決定
処理(FC101) を取り除いて、FC112 とFC113 の間に、上
で述べた登録プレフィクス長決定手順を実行する処理を
加えること以外はすべて同じである。
シュテーブルへのキャッシュ登録方法に従ってキャッシ
ュを登録した場合に、キャッシュにヒットした場合に
も、正しい送信IF番号が決定できることを示す。これに
は、登録するエントリの宛先フィールドが示すネットワ
ークアドレス集合が、(1) 検索にヒットしたエントリが
表すアドレス集合と同じあるいは、包含されていて、か
つ、(2) フォワーディングテーブルの、他のエントリの
表すアドレス集合をどれも包含していないということを
示せばよい。
録プレフィクス長は、ヒットしたフォワーディングテー
ブルのエントリのプレフィクス長より等しいか長い。こ
れは、登録プレフィクス長さ決定処理の1でのPEの初期
設定値と、登録プレフィクス長さ決定処理の7から成立
する。また、キャッシュに登録するエントリのプレフィ
クスビット列は、少なくとも、最上位ビットから、下位
ビットに向かって、検索にヒットしたフォワーディング
テーブルのプレフィクス長に関しては、検索にヒットし
たエントリのプレフィクスビット列と一致する。よっ
て、この2つから、(1) の条件を満たしていることがわ
かる。(2) については、登録プレフィクス長が、前方一
致ビット数の最大値+1を使用している場合は明らかに
成立する。登録プレフィクス長が、前方一致ビット数の
最大値を用いている場合は、登録するキャッシュエント
リの宛先が、ヒットした宛先と同一の場合に相当し、こ
の場合にも、(2) は成立している。よって、第3の実施
例のキャッシュ登録方法を用い、キャッシュにヒットし
た場合でも、正しい送信IF番号を得ることができる。
テーブルの中で、マスク付きキャッシュテーブルに常駐
させることができるエントリには制約についても第1の
実施例の場合と同様で、登録するエントリが、フォワー
ディングテーブル検索でヒットしたエントリが包含する
他のフォワーディグテーブルのエントリがあった場合に
そのどれをも包含することはないという制約である。
構成図を図23に示す。各構成要素を説明する。
と全く同じ機構。
第1の実施例のキャッシュ登録機構140 と全く同じ機
構。
LPM キャッシュテーブルは、宛先フィールドと送信IF番
号フィールドからなる。宛先フィールドはネットワーク
アドレスを示すプレフィクスビット列と、マスクビット
列の組が格納される。また、このLPM キャッシュテーブ
ル検索機構430 は、LPM キャッシュテーブルを検索する
機能を持つ。これは、たとえば、特願平9-234250号公報
に記載されたLPM 検索機能付きメモリとRAM(Random Acc
ess Memory) で構成される。図24に詳細な構成を示
す。
ャッシュテーブルにエントリが登録される。これは以下
の手順で行われる。 LPM検索機能付きメモリ431 では、
キャッシュ登録アドレス線L112が示すアドレスに、プレ
フィクスビット列線L114から入力されるプレフィクスビ
ット列と、マスクビット列線L115から入力されるマスク
ビット列とが格納される。同時に、RAM432では、キャッ
シュ登録アドレス線L112の示すアドレス(LPM検索機能付
きメモリ431 に格納したのと同じアドレス) に送信IF番
号線L102から入力される送信IF番号を格納する。エント
リの削除については、制御信号線L113が削除を表す値に
セットされ、このときのキャッシュ登録アドレス線L112
の値示すアドレスのキャッシュエントリが削除される。
行われる。LPM 検索機能付きメモリ431 に、送信先アド
レス線L104から送信先アドレスを表すビット列が検索キ
ーとして入力され、LPM 検索機能付きメモリ431 の機能
によって、LPM 検索を行い、一致するエントリがあった
場合には、キャッシュヒット線L110がヒット値にセット
され、ヒットアドレス線L111にヒットしたエントリを登
録しているLPM 検索機能付きメモリ431 のアドレスが出
力される。そして、RAM432では、ヒットアドレス線L111
の示すアドレスに書かれている送信IF番号が読み出さ
れ、送信IF番号線L105にその値が出力される。ヒットし
なかった場合には、キャッシュヒット線L110が非ヒット
値にセットされる。
ッシュテーブル検索機構430 以外の動作は、第1の実施
例と全く同じである。
ーブルへのキャッシュ登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信IF番号が決定できることを示す。
テーブル検索機構430 には、(プレフィクスビット列、
マスクビット列、送信先IF番号)の組としては、第1の
実施例と同一のキャッシュエントリが格納され、検索方
法が、マスク付きの一致検索を行うか、LPM 検索を行う
かの違いがあるだけである。マスク付き一致検索と、LP
M 検索の違いは、マスク付き一致検索では複数一致した
エントリがあった場合、その中のいずれかのエントリ
(どのエントリになるかは問わない)が検索結果として
得られるのに対して、LPM 検索では、マスクビット列の
中の最上位ビットから下位ビットに向かって、連続して
1の立っているビット数が最大のものが検索結果として
得られるという違いである。しかし、第1の実施例のマ
スク付きキャッシュテーブルへのエントリ登録方法で
は、マスク付き一致検索を行った場合に複数一致がおこ
るような登録を行っていないため、結局、第4の実施例
でLPMキャッシュテーブル検索機構430 によって求まる
送信IF番号は、第1の実施例でマスク付きキャッシュ検
索機構130 で求まる送信IF番号と一致する。このことか
ら、第1の実施例と同じ理由によって、第4の実施例の
LPM キャッシュテーブルへのキャッシュ登録方法に従っ
てキャッシュを登録した場合に、キャッシュにヒットし
た場合にも、正しい送信IF番号が決定できる。
ントリについては、キャッシュの検索方法の違いによっ
て、制約が第1の実施例とは異なるので、それをここで
述べておく。第1の実施例での制約条件は、登録するエ
ントリが、フォワーディングテーブル検索でヒットした
エントリが包含する他のフォワーディグテーブルのエン
トリがあった場合にそのどれをも包含することはないと
いう制約であったが、第4の実施例ではLPM 検索ができ
るキャッシュを用いているため、制約条件は、第2の実
施例と同様になり、常にキャッシュに登録させるフォワ
ーディングテーブルのエントリについては、対応するツ
リノードの配下(子ノード方向)の、すべてのノードに
対応するフォワーディングテーブルエントリも一緒に常
に登録しておく必要があるという制約である。
42に示すものであったとする。
るには、アドレス3のエントリも常駐させる必要がある
(アドレス2の宛先フィールドが表すネットワークアド
レスの集合がアドレス3の宛先フィールドが表すネット
ワークアドレスの集合を包含するため)。常駐させるこ
とができるエントリのアドレス組の例としては、(アド
レス2,アドレス3), (アドレス1,アドレス2,ア
ドレス3,アドレス6),(アドレス4)などである。
図25に示す。各構成要素の説明をする。
と全く同じ機構。
第1の実施例のキャッシュ登録機構140 全く同じ機構。
全く同じ機構。
ーブル検索機構430 以外の動作については、第3の実施
例と全く同じである。
ーブルへのキャッシュ登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信IF番号が決定できることを示す。
テーブル検索機構430 には、(プレフィクスビット列、
マスクビット列、送信先IF番号)の組としては、第3の
実施例と同一のキャッシュエントリが格納され、検索方
法が、マスク付きの一致検索を行うか、LPM 検索を行う
かの違いがあるだけである。マスク付き一致検索と、LP
M 検索の違いは、マスク付き一致検索では複数一致した
エントリがあった場合、その中のいずれかのエントリ
(どのエントリになるかは問わない)が検索結果として
得られるのに対して、LPM 検索では、マスクビット列の
中の最上位ビットから下位ビットに向かって、連続して
1の立っているビット数が最大のものが検索結果として
得られるという違いである。しかし、第3の実施例のマ
スク付きキャッシュテーブルへのエントリ登録方法で
は、マスク付き一致検索を行った場合に複数一致がおこ
るような登録を行っていないため、結局、第4の実施例
でLPMキャッシュテーブル検索機構430 によって求まる
送信IF番号は、第3の実施例でマスク付きキャッシュ検
索機構130 で求まる送信IF番号と一致する。このことか
ら、第3の実施例と同じ理由によって、第4の実施例の
LPM キャッシュテーブルへのキャッシュ登録方法に従っ
てキャッシュを登録した場合に、キャッシュにヒットし
た場合にも、正しい送信IF番号が決定できる。
トリについては、キャッシュの検索方法の違いによっ
て、制約が第3の実施例とは異なるので、それをここで
述べておく。第3の実施例での制約条件は、第1の実施
例と同じく、登録するエントリが、フォワーディングテ
ーブル検索でヒットしたエントリが包含する他のフォワ
ーディグテーブルのエントリがあった場合にそのどれを
も包含することはないという制約であったが、第4の実
施例ではLPM 検索ができるキャッシュを用いているた
め、制約条件は、第2の実施例と同様になり、常にキャ
ッシュに登録させるフォワーディングテーブルのエント
リについては、対応するツリノードの配下(子ノード方
向)の、すべてのノードに対応するフォワーディングテ
ーブルエントリも一緒に常に登録しておく必要があると
いう制約である。
43に示すものであったとする。
るには、アドレス3のエントリも常駐させる必要がある
(アドレス2の宛先フィールドが表すネットワークアド
レスの集合がアドレス3の宛先フィールドが表すネット
ワークアドレスの集合を包含するため)。常駐させるこ
とができるエントリのアドレス組の例としては、(アド
レス2,アドレス3), (アドレス1,アドレス2,ア
ドレス3,アドレス6),(アドレス4)などである。
ハードウェア構成例を示した図であり、コンピュータC
と、記録媒体Kとから構成される。記録媒体Kは、ディ
スク,半導体メモリ,その他の記録媒体であり、コンピ
ュータCをキャッシュを有するルータの方路決定装置を
して機能させるためのプログラムが記録されている。
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングテーブル
検索機構100 ,制御機構120,マスク付きキャッシュテ
ーブル検索機構130 ,キャッシュ登録機構140 を実現す
る。
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構200 ,制御機構220,LPM キャッシュテーブル
検索機構230 ,LPM キャッシュ登録機構240 を実現す
る。
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構300 ,制御機構120,マスク付きキャッシュテ
ーブル検索機構130 ,キャッシュ登録機構140 を実現す
る。
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構100 ,制御機構120,LPM キャッシュテーブル
検索機構430 ,キャッシュ登録機構140 を実現する。
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構300 ,制御機構120,LPM キャッシュテーブル
検索機構430 ,キャッシュ登録機構140 を実現する。
タにおいて、キャッシュのヒット確率を上げることがで
きることである。その理由は、エントリ毎に異なるマス
クを付けた一致検索ができるキャッシュあるいは、ロン
ゲストプレフィクスマッチ検索のできるキャッシュを用
いることで、1つのキャッシュエントリで多くの送信先
アドレスにヒットするキャッシュエントリを登録するこ
とができるためである。例えば、8bitのネットワークア
ドレスである場合に、フォワーディングテーブルが、 宛先(プレフィクスビット列/プレフィクス長):送信
インタフェース番号 10110000 / 4 : 1 00000000 / 0 : 3 であった場合に、最初に送信先アドレスが 10110001 と
いう宛先のパケットが到着し、その後10110000〜110111
11までの宛先のパケットが1つづつ16個到着して、合計
17個のパケットがルータに到着した場合を考える。最初
のパケットが到着したとき、本発明によれば、エントリ
毎に異なるマスクを付けた一致検索ができるキャッシ
ュ、ロンゲストプレフィクスマッチ検索のできるキャッ
シュいずれを用いても、 宛先(プレフィクスビット列/マスクビット列): 送
信インタフェース番号 10110000 / 11110000 : 1 というキャッシュエントリが登録される。これに対し
て、従来のキャッシュを有するルータにおいては、 宛先 : 送信インタフェース番号 10110001 : 1 というキャッシュエントリが登録される。
110000〜11011111までの宛先のパケット16個に対してす
べてキャッシュがヒットし、キャッシュヒット確率は17
パケットに対して16/17になる。これに対して従来技術
では、2パケット目以降の、10110000〜11011111までの
宛先のパケット16個に対しては、10110001の宛先を持つ
パケットのみにヒットするのでキャッシュヒット確率は
17パケットに対して1/17となり、本発明によって、16倍
のキャッシュヒット率を実現できる。
において、キャッシュのヒット確率を下げることなく、
キャッシュの容量を減らすことで、回路基盤面積を減ら
したルータを実現できることである。その理由は、エン
トリ毎に異なるマスクを付けた一致検索ができるキャッ
シュあるいは、ロンゲストプレフィクスマッチ検索ので
きるキャッシュを用いることで、1つのキャッシュエン
トリで多くの送信先アドレスにヒットするキャッシュエ
ントリを登録することができるためである。例えば、第
一の効果の例と同じ例において、17個のパケットが通過
したときのキャッシュエントリ数は、本発明によれば、
宛先( プレフィクスビット列/マスクビット列) : 送
信インタフェース番号 10110000/ 11110000 : 1 の1エントリであるが、従来技術によれば、宛先が1011
0000〜10111111の16個のエントリを消費しており、本発
明は従来技術の1/16のキャッシュエントリ消費量になっ
ている。
な構成図である。
詳細な構成図である。
る。
プレフィクス長決定処理を示すフローチャートである。
である。
な構成図である。
な構成図である。
である。
リーノードを示す図である。
使用エントリリストと使用中ツリーリストを示す図であ
る。
トである。
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
細な構成図である。
な構成図である。
である。
である。
である。
す図である。
す図である。
す図である。
す図である。
である。
る。
である。
である。
ある。
ある。
ある。
ある。
である。
である。
例を示すブロック図である。
Claims (26)
- 【請求項1】 受信パケットの送信先アドレスを基にパ
ケットの方路を決定する、キャッシュを有するルータの
方路決定装置において、 エントリ毎に異なるマスクを付けた一致検索ができるキ
ャッシュを有し、 キャッシュを登録するキャッシュアドレスを決定する手
段を有し、 フォワーディングテーブルとその検索手段を有し、 受信パケットの送信先アドレスをキャッシュに登録する
際のキャッシュエントリのマスクを掛けない部分の長さ
として最長キャッシュプレフィクス長を求める手段を有
することを特徴とするキャッシュを有するルータの方路
決定装置。 - 【請求項2】 受信パケットの送信先アドレスに基づい
て前記受信パケットの方路を決定する、キャッシュを有
するルータの方路決定装置において、 プレフィクスビット列とプレフィクス長とからなるネッ
トワークアドレスの集合を示す情報と、該ネットワーク
アドレスの集合に対するパケットの方路を示す情報との
組が登録されたエントリを複数有するフォワーディング
テーブルと、 該フォワーディングテーブルの各エントリに登録されて
いるプレフィクスビット列,プレフィクス長に基づい
て、前記フォワーディングテーブルの各エントリに対す
る最長キャッシュプレフィクス長を求める登録プレフィ
クス長決定手段と、 受信パケットの送信先アドレスの内の、該送信先アドレ
スをキーにして前記フォワーディングテーブルを検索し
たときにヒットするエントリの最長キャッシュプレフィ
クス長によって示される比較対象部分が少なくとも登録
されると共に、前記送信先アドレスをキーにして前記フ
ォワーディングテーブルを検索したときにヒットするエ
ントリ中の方路を示す情報が登録されるエントリを複数
有するキャッシュテーブルと、 ルータがパケットを受信した時、該受信したパケットの
送信先アドレスをキーにして前記キャッシュテーブルを
検索し、登録されている比較対象部分のビットパターン
が前記送信先アドレスの比較対象部分に対応する部分の
ビットパターンと一致するエントリを探し出し、該探し
出したエントリに登録されている方路を示す情報を出力
するマスク付きキャッシュテーブル検索手段と、 該マスク付きキャッシュテーブル検索手段が該当するエ
ントリを探し出せなかったとき、前記受信したパケット
の送信先アドレスをキーにして前記フォワーディングテ
ーブルを検索し、ヒットしたエントリに登録されている
方路を示す情報を出力するテーブル検索手段と、 該テーブル検索手段から出力された方路を示す情報と、
前記受信したパケットの送信先アドレスの内の少なくと
も比較対象部分とを前記キャッシュテーブルの何れかの
エントリに登録するキャッシュ登録手段とを備えたこと
を特徴とするキャッシュを有するルータの方路決定装
置。 - 【請求項3】 前記テーブル検索手段は、前記フォワー
ディングテーブルに対してロンゲストプレフィクスマッ
チ検索を行う構成を備えたことを特徴とする請求項2記
載のキャッシュを有するルータの方路決定装置。 - 【請求項4】 受信パケットの送信先アドレスを基にパ
ケットの方路を決定する、キャッシュを有するルータの
方路決定装置において、 ロンゲストプレフィクスマッチ検索ができるキャッシュ
を有し、 キャッシュを登録するキャッシュアドレスを決定する手
段を有し、 フォワーディングテーブルとその検索手段を有し、 フォワーディングテーブルの検索にヒットしたエントリ
を基にキャッシュに登録すべきフォワーディングテーブ
ルのエントリを決定する手段を有し、 キャッシュエントリを削除する際に同時に削除すべきキ
ャッシュエントリを決定する手段を有することを特徴と
するキャッシュを有するルータの方路決定装置。 - 【請求項5】 受信パケットの送信先アドレスに基づい
て前記受信パケットの方路を決定する、キャッシュを有
するルータの方路決定装置において、 プレフィクスビット列とプレフィクス長とからなるネッ
トワークアドレスの集合を示す情報と、該ネットワーク
アドレスの集合に対するパケットの方路を示す情報との
組が登録されたエントリを複数有するフォワーディング
テーブルと、 該フォワーディングテーブルの各エントリに登録されて
いる情報の内の、一部のエントリに登録されている情報
の写しが、それぞれ異なるエントリに登録されるLPM キ
ャッシュテーブルと、ルータがパケットを受信した時、
該受信したパケットの送信先アドレスをキーにして前記
LPM キャッシュテーブルをロンゲストプレフィクスマッ
チ検索し、ヒットしたエントリに登録されているパケッ
トの方路を示す情報を出力するLPM キャッシュテーブル
検索手段と、該LPM キャッシュテーブル検索手段がヒッ
トするエントリを探し出せなかったとき、前記受信した
パケットの送信先アドレスをキーにして前記フォワーデ
ィングテーブルを検索し、ヒットしたエントリに登録さ
れている方路を示す情報を出力するテーブル検索手段
と、該テーブル検索手段から方路を示す情報が出力され
たとき、前記テーブル検索手段においてヒットしたエン
トリに登録されている情報と、前記フォワーディングテ
ーブルのエントリの内の、そのエントリに登録されてい
るプレフィクスビット列とプレフィクス長とによって示
されるネットワークアドレスの集合が前記テーブル検索
手段においてヒットしたエントリ中のプレフィクスビッ
ト列とプレフィクス長とによって示されるネットワーク
アドレスの集合に包含されるエントリに登録されている
情報とを、前記LPM キャッシュテーブルのそれぞれ異な
る未使用のエントリに登録し、前記LPM キャッシュテー
ブル中に未使用のエントリを生成することが必要になっ
たとき、所定のアルゴリズムに基づいて使用中のエント
リの内の1つを未使用にし、更に、前記使用中のエント
リの内の、そのエントリに登録されているプレフィクス
ビット列とプレフィクス長とによって示されるネットワ
ークアドレスの集合が前記未使用にされたエントリに登
録されているプレフィクスビット列,プレフィクス長に
よって示されるネットワークアドレスを包含しているエ
ントリを未使用にするLPM キャッシュ登録手段とを備え
たことを特徴とするキャッシュを有するルータの方路決
定装置。 - 【請求項6】 前記所定のアルゴリズムは、LRU である
ことを特徴とする請求項5記載のキャッシュを有するル
ータの方路決定装置。 - 【請求項7】 前記テーブル検索手段は、前記フォワー
ディングテーブルに対してLPM 検索を行う構成を有する
ことを特徴とする請求項6記載のキャッシュを有するル
ータの方路決定装置。 - 【請求項8】 受信パケットの送信先アドレスをキャッ
シュに登録する際のキャッシュエントリのマスクを掛け
ない部分の長さとして最適キャッシュプレフィクス長を
求める手段を有すことを特徴とする請求項1記載のキャ
ッシュを有するルータの方路決定装置。 - 【請求項9】 前記登録プレフィクス長決定手段の代わ
りに、前記フォワーディングテーブルの各エントリに登
録されているプレフィクスビット列,プレフィクス長お
よび受信パケットの送信先アドレスに基づいて、前記各
エントリに対する最適キャッシュプレフィクス長を求め
る登録プレフィクス長決定手段を備え、且つ、 前記キャッシュテーブルの代わりに、受信パケットの送
信先アドレスの内の、該送信先アドレスをキーにして前
記フォワーディングテーブルを検索したときに前記登録
プレフィクス長決定手段によって得られる最適キャッシ
ュプレフィクス長によって示される比較対象部分が少な
くとも登録されると共に、前記送信先アドレスをキーに
して前記フォワーディングテーブルを検索したときにヒ
ットするエントリ中の方路を示す情報が登録されるエン
トリを複数有するキャッシュテーブルを備えたことを特
徴とする請求項2記載のキャッシュを有するルータの方
路決定装置。 - 【請求項10】 前記テーブル検索手段は、前記フォワ
ーディングテーブルに対してロンゲストプレフィクスマ
ッチ検索を行う構成を備えたことを特徴とする請求項9
記載のキャッシュを有するルータの方路決定装置。 - 【請求項11】 受信パケットの送信先アドレスを基に
パケットの方路を決定する、キャッシュを有するルータ
の方路決定装置において、 ロンゲストプレフィクスマッチ検索ができるキャッシュ
を有し、 キャッシュを登録するキャッシュアドレスを決定する手
段を有し、 フォワーディングテーブルとその検索手段を有し、 受信パケットの送信先アドレスをキャッシュに登録する
際のプレフィクス長として、最長キャッシュプレフィク
ス長を求める手段を有することを特徴とするキャッシュ
を有するルータの方路決定装置。 - 【請求項12】 受信パケットの送信先アドレスに基づ
いて前記受信パケットの方路を決定する、キャッシュを
有するルータの方路決定装置において、 プレフィクスビット列とプレフィクス長とからなるネッ
トワークアドレスの集合を示す情報と、該ネットワーク
アドレスの集合に対するパケットの方路を示す情報との
組が登録されたエントリを複数有するフォワーディング
テーブルと、 該フォワーディングテーブルの各エントリに登録されて
いるプレフィクスビット列,プレフィクス長に基づい
て、前記フォワーディングテーブルの各エントリに対す
る最長キャッシュプレフィクス長を求める登録プレフィ
クス長決定手段と、 受信パケットの送信先アドレスの内の、該送信先アドレ
スをキーにして前記フォワーディングテーブルを検索し
たときにヒットするエントリの最長キャッシュプレフィ
クス長によって示される比較対象部分が少なくとも登録
されると共に、前記送信先アドレスをキーにして前記フ
ォワーディングテーブルを検索したときにヒットするエ
ントリ中の方路を示す情報が登録されるエントリを複数
有するLPM キャッシュテーブルと、 ルータがパケットを受信した時、該受信したパケットの
送信先アドレスをキーにして前記LPM キャッシュテーブ
ルをロンゲストプレフィクスマッチ検索し、ヒットする
エントリが存在する場合は、そのエントリに登録されて
いる方路を示す情報を出力するLPM キャッシュテーブル
検索手段と、該LPM キャッシュテーブル検索手段がヒッ
トするエントリを探し出せなかったとき、前記受信した
パケットの送信先アドレスをキーにして前記フォワーデ
ィングテーブルを検索し、ヒットしたエントリに登録さ
れている方路を示す情報を出力するテーブル検索手段
と、 該テーブル検索手段から出力された方路を示す情報と、
前記受信したパケットの送信先アドレスの内の少なくと
も比較対象部分を前記LPM キャッシュテーブルの何れか
のエントリに登録するキャッシュ登録手段とを備えたこ
とを特徴とするキャッシュを有するルータの方路決定装
置。 - 【請求項13】 受信パケットの送信先アドレスをキャ
ッシュに登録する際のプレフィクス長として最適キャッ
シュプレフィクス長を求める手段を有することを特徴と
する請求項11記載のキャッシュを有するルータの方路
決定装置。 - 【請求項14】 前記登録プレフィクス長決定手段の代
わりに、前記フォワーディングテーブルの各エントリに
登録されているプレフィクスビット列,プレフィクス長
および受信先パケットの送信先アドレスに基づいて、前
記フォワーディングテーブルの各エントリに対する最適
キャッシュプレフィクス長を求める登録プレフィクス長
決定手段を備え、且つ、 前記LPM キャッシュテーブルの代わりに、受信パケット
の送信先アドレスの内の、該送信先アドレスをキーにし
て前記フォワーディングテーブルを検索したときに前記
登録プレフィクス長決定手段によって得られる最適キャ
ッシュプレフィクス長によって示される比較対象部分が
少なくとも登録されると共に、前記送信先アドレスをキ
ーにして前記フォワーディングテーブルを検索したとき
にヒットするエントリ中の方路を示す情報が登録される
エントリを複数有するLPM キャッシュテーブルを備えた
ことを特徴とする請求項12記載のキャッシュを有する
ルータの方路決定装置。 - 【請求項15】 前記キャッシュを登録するキャッシュ
アドレスを決定する手段において、キャッシの全アドレ
ス領域を常駐領域と更新領域に分け、更新領域からキャ
ッシュを登録するキャッシュアドレスを決定する手段を
有することを特徴とする請求項1,4,8,11または
13記載のキャッシュを有するルータの方路決定装置。 - 【請求項16】 前記キャッシュ登録手段は、前記キャ
ッシュテーブルの全アドレス領域を常駐領域と更新領域
とに分け、更新領域の中から情報を登録するアドレスを
決定する構成を有することを特徴とする請求項2,3,
9または10記載のキャッシュを有するルータの方路決
定装置。 - 【請求項17】 前記LPM キャッシュ登録手段は、前記
LPM キャッシュテーブルの全アドレス領域を常駐領域と
更新領域とに分け、更新領域の中から情報を登録するア
ドレスを決定する構成を有することを特徴とする請求項
5,6または7記載のキャッシュを有するルータの方路
決定装置。 - 【請求項18】 前記キャッシュ登録手段は、前記LPM
キャッシュテーブルの全アドレス領域を常駐領域と更新
領域とに分け、更新領域の中から情報を登録するアドレ
スを決定する構成を有することを特徴とする請求項12
または14記載のキャッシュを有するルータの方路決定
装置。 - 【請求項19】 プレフィクスビット列とプレフィクス
長とからなるネットワークアドレスの集合を示す情報お
よび該ネットワークアドレスの集合に対するパケットの
方路を示す情報との組が登録されたエントリを複数有す
るフォワーディングテーブルと、受信パケットの送信先
アドレスの内の、該送信先アドレスをキーにして前記フ
ォワーディングテーブルを検索したときにヒットするエ
ントリの最長キャッシュプレフィクス長によって示され
る比較対象部分が少なくとも登録されると共に、前記送
信先アドレスをキーにして前記フォワーディングテーブ
ルを検索したときにヒットするエントリ中の方路を示す
情報が登録されるエントリを複数有するキャッシュテー
ブルとを備えたコンピュータを、 前記フォワーディングテーブルの各エントリに登録され
ているプレフィクスビット列,プレフィクス長に基づい
て、前記フォワーディングテーブルの各エントリに対す
る最長キャッシュプレフィクス長を求める登録プレフィ
クス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
送信先アドレスをキーにして前記キャッシュテーブルを
検索し、登録されている比較対象部分のビットパターン
が前記送信先アドレスの比較対象部分に対応する部分の
ビットパターンと一致するエントリを探し出し、該探し
出したエントリに登録されている方路を示す情報を出力
するマスク付きキャッシュテーブル検索手段、 該マスク付きキャッシュテーブル検索手段が該当するエ
ントリを探し出せなかったとき、前記受信したパケット
の送信先アドレスをキーにして前記フォワーディングテ
ーブルを検索し、ヒットしたエントリに登録されている
方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
前記受信したパケットの送信先アドレスの内の少なくと
も比較対象部分とを前記キャッシュテーブルの何れかの
エントリに登録するキャッシュ登録手段として機能させ
るためのプログラムを記録した機械読み取り可能な記録
媒体。 - 【請求項20】 プレフィクスビット列とプレフィクス
長とからなるネットワークアドレスの集合を示す情報お
よび該ネットワークアドレスの集合に対するパケットの
方路を示す情報との組が登録されたエントリを複数有す
るフォワーディングテーブルと、該フォワーディングテ
ーブルの各エントリに登録されている情報の内の、一部
のエントリに登録されている情報の写しが、それぞれ異
なるエントリに登録されるLPM キャッシュテーブルとを
備えたコンピュータを、ルータがパケットを受信した
時、該受信したパケットの送信先アドレスをキーにして
前記LPM キャッシュテーブルをロンゲストプレフィクス
マッチ検索し、ヒットしたエントリに登録されているパ
ケットの方路を示す情報を出力するLPM キャッシュテー
ブル検索手段、該LPM キャッシュテーブル検索手段がヒ
ットするエントリを探し出せなかったとき、前記受信し
たパケットの送信先アドレスをキーにして前記フォワー
ディングテーブルを検索し、ヒットしたエントリに登録
されている方路を示す情報を出力するテーブル検索手
段、該テーブル検索手段から方路を示す情報が出力され
たとき、前記テーブル検索手段においてヒットしたエン
トリに登録されている情報と、前記フォワーディングテ
ーブルのエントリの内の、そのエントリに登録されてい
るプレフィクスビット列とプレフィクス長とによって示
されるネットワークアドレスの集合が前記テーブル検索
手段においてヒットしたエントリ中のプレフィクスビッ
ト列とプレフィクス長とによって示されるネットワーク
アドレスの集合に包含されるエントリに登録されている
情報とを、前記LPM キャッシュテーブルのそれぞれ異な
る未使用のエントリに登録し、前記LPM キャッシュテー
ブル中に未使用のエントリを生成することが必要になっ
たとき、所定のアルゴリズムに基づいて使用中のエント
リの内の1つを未使用にし、更に、前記使用中のエント
リの内の、そのエントリに登録されているプレフィクス
ビット列とプレフィクス長とによって示されるネットワ
ークアドレスの集合が前記未使用にされたエントリに登
録されているプレフィクスビット列,プレフィクス長に
よって示されるネットワークアドレスを包含しているエ
ントリを未使用にするLPM キャッシュ登録手段として機
能させるためのプログラムを記録した機械読み取り可能
な記録媒体。 - 【請求項21】 プレフィクスビット列とプレフィクス
長とからなるネットワークアドレスの集合を示す情報お
よび該ネットワークアドレスの集合に対するパケットの
方路を示す情報との組が登録されたエントリを複数有す
るフォワーディングテーブルと、受信パケットの送信先
アドレスの内の、該送信先アドレスをキーにして前記フ
ォワーディングテーブルを検索したときに登録プレフィ
クス長決定手段によって得られる最適キャッシュプレフ
ィクス長によって示される比較対象部分が少なくとも登
録されると共に、前記送信先アドレスをキーにして前記
フォワーディングテーブルを検索したときにヒットする
エントリ中の方路を示す情報が登録されるエントリを複
数有するキャッシュテーブルとを備えたコンピュータ
を、 前記フォワーディングテーブルの各エントリに登録され
ているプレフィクスビット列,プレフィクス長および受
信パケットの送信先アドレスに基づいて最適キャッシュ
プレフィクス長を求める登録プレフィクス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
送信先アドレスをキーにして前記キャッシュテーブルを
検索し、登録されている比較対象部分のビットパターン
が前記送信先アドレスの比較対象部分に対応する部分の
ビットパターンと一致するエントリを探し出し、該探し
出したエントリに登録されている方路を示す情報を出力
するマスク付きキャッシュテーブル検索手段、 該マスク付きキャッシュテーブル検索手段が該当するエ
ントリを探し出せなかったとき、前記受信したパケット
の送信先アドレスをキーにして前記フォワーディングテ
ーブルを検索し、ヒットしたエントリに登録されている
方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
前記受信したパケットの送信先アドレスの内の少なくと
も比較対象部分を前記キャッシュテーブルの何れかのエ
ントリに登録するキャッシュ登録手段として機能させる
ためのプログラムを記録した機械読み取り可能な記録媒
体。 - 【請求項22】 プレフィクスビット列とプレフィクス
長とからなるネットワークアドレスの集合を示す情報お
よび該ネットワークアドレスの集合に対するパケットの
方路を示す情報との組が登録されたエントリを複数有す
るフォワーディングテーブルと、受信パケットの送信先
アドレスの内の、該送信先アドレスをキーにして前記フ
ォワーディングテーブルを検索したときにヒットするエ
ントリの最長キャッシュプレフィクス長によって示され
る比較対象部分が少なくとも登録されると共に、前記送
信先アドレスをキーにして前記フォワーディングテーブ
ルを検索したときにヒットするエントリ中の方路を示す
情報が登録されるエントリを複数有するLPM キャッシュ
テーブルとを備えたコンピュータを、 前記フォワーディングテーブルの各エントリに登録され
ているプレフィクスビット列,プレフィクス長に基づい
て、前記フォワーディングテーブルの各エントリに対す
る最長キャッシュプレフィクス長を求める登録プレフィ
クス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
送信先アドレスをキーにして前記LPM キャッシュテーブ
ルをロンゲストプレフィクスマッチ検索し、ヒットする
エントリが存在する場合は、そのエントリに登録されて
いる方路を示す情報を出力するLPM キャッシュテーブル
検索手段、該LPM キャッシュテーブル検索手段がヒット
するエントリを探し出せなかったとき、前記受信したパ
ケットの送信先アドレスをキーにして前記フォワーディ
ングテーブルを検索し、ヒットしたエントリに登録され
ている方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
前記受信したパケットの送信先アドレスの内の少なくと
も比較対象部分を前記LPM キャッシュテーブルの何れか
のエントリに登録するキャッシュ登録手段として機能さ
せるためのプログラムを記録した機械読み取り可能な記
録媒体。 - 【請求項23】 プレフィクスビット列とプレフィクス
長とからなるネットワークアドレスの集合を示す情報お
よび該ネットワークアドレスの集合に対するパケットの
方路を示す情報との組が登録されたエントリを複数有す
るフォワーディングテーブルと、受信パケットの送信先
アドレスの内の、該送信先アドレスをキーにして前記フ
ォワーディングテーブルを検索したときに登録プレフィ
クス長決定手段によって得られる最適キャッシュプレフ
ィクス長によって示される比較対象部分が少なくとも登
録されると共に、前記送信先アドレスをキーにして前記
フォワーディングテーブルを検索したときにヒットする
エントリ中の方路を示す情報が登録されるエントリを複
数有するLPM キャッシュテーブルとを備えたコンピュー
タを、 前記フォワーディングテーブルの各エントリに登録され
ているプレフィクスビット列,プレフィクス長および受
信パケットの送信先アドレスに基づいて、前記フォワー
ディングテーブルの各エントリに対する最適キャッシュ
プレフィクス長を求める登録プレフィクス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
送信先アドレスをキーにして前記LPM キャッシュテーブ
ルをロンゲストプレフィクスマッチ検索し、ヒットする
エントリが存在する場合は、そのエントリに登録されて
いる方路を示す情報を出力するLPM キャッシュテーブル
検索手段、該LPM キャッシュテーブル検索手段がヒット
するエントリを探し出せなかったとき、前記受信したパ
ケットの送信先アドレスをキーにして前記フォワーディ
ングテーブルを検索し、ヒットしたエントリに登録され
ている方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
前記受信したパケットの送信先アドレスの内の少なくと
も比較対象部分を前記キャッシュテーブルの何れかのエ
ントリに登録するキャッシュ登録手段として機能させる
ためのプログラムを記録した機械読み取り可能な記録媒
体。 - 【請求項24】 前記キャッシュ登録手段は、前記キャ
ッシュテーブルの全アドレス領域を常駐領域と更新領域
とに分け、更新領域の中から情報を登録するアドレスを
決定する構成を有することを特徴とする請求項19また
は21記載のプログラムを記録した機械読み取り可能な
記録媒体。 - 【請求項25】 前記LPM キャッシュ登録手段は、前記
LPM キャッシュテーブルの全アドレス領域を常駐領域と
更新領域とに分け、更新領域の中から情報を登録するア
ドレスを決定する構成を有することを特徴とする請求項
20記載のプログラムを記録した機械読み取り可能な記
録媒体。 - 【請求項26】 前記キャッシュ登録手段は、前記LPM
キャッシュテーブルの全アドレス領域を常駐領域と更新
領域とに分け、更新領域の中から情報を登録するアドレ
スを決定する構成を有することを特徴とする請求項22
または23記載のプログラムを記録した機械読み取り可
能な記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3328799A JP3199051B2 (ja) | 1999-02-10 | 1999-02-10 | キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 |
CA002298191A CA2298191C (en) | 1999-02-10 | 2000-02-09 | Router with a cache having a high hit probability |
US09/501,279 US6768739B1 (en) | 1999-02-10 | 2000-02-09 | Router with a cache having a high hit probability |
EP00102179A EP1035687A3 (en) | 1999-02-10 | 2000-02-09 | Router and a packet forwarding direction determinating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3328799A JP3199051B2 (ja) | 1999-02-10 | 1999-02-10 | キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000232479A JP2000232479A (ja) | 2000-08-22 |
JP3199051B2 true JP3199051B2 (ja) | 2001-08-13 |
Family
ID=12382331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3328799A Expired - Fee Related JP3199051B2 (ja) | 1999-02-10 | 1999-02-10 | キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6768739B1 (ja) |
EP (1) | EP1035687A3 (ja) |
JP (1) | JP3199051B2 (ja) |
CA (1) | CA2298191C (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3591420B2 (ja) * | 2000-04-07 | 2004-11-17 | 日本電気株式会社 | ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体 |
US7047317B1 (en) * | 2000-06-14 | 2006-05-16 | Altera Corporation | High performance network address processor system |
US7185196B1 (en) * | 2000-09-15 | 2007-02-27 | Atheros Communications, Inc. | Key caching system |
KR20020055287A (ko) * | 2000-12-28 | 2002-07-08 | 구자홍 | 라우터 장치의 패킷 라우팅 방법 |
DE60202136T2 (de) * | 2001-03-19 | 2005-12-01 | International Business Machines Corp. | Cache-eintrag-auswahlverfahren und -vorrichtung |
US7027446B2 (en) * | 2001-07-18 | 2006-04-11 | P-Cube Ltd. | Method and apparatus for set intersection rule matching |
IL145040A0 (en) * | 2001-08-21 | 2002-06-30 | Infocyclone Inc | Tree search unit |
US7032072B1 (en) * | 2001-12-31 | 2006-04-18 | Packeteer, Inc. | Method and apparatus for fast lookup of related classification entities in a tree-ordered classification hierarchy |
US7277399B1 (en) * | 2002-04-08 | 2007-10-02 | Cisco Technology, Inc. | Hardware-based route cache using prefix length |
US7257643B2 (en) * | 2002-05-16 | 2007-08-14 | Intel Corporation | Method and apparatus to improve network routing |
US7362744B2 (en) * | 2002-08-15 | 2008-04-22 | International Business Machines Corporation | Database management system and method of using it to transmit packets |
US7493412B2 (en) * | 2002-09-12 | 2009-02-17 | International Business Machines Corporation | Method for processing a data packet |
US7382731B1 (en) * | 2003-03-05 | 2008-06-03 | Cisco Technology, Inc. | Method and apparatus for updating probabilistic network routing information |
US7418519B1 (en) * | 2003-05-29 | 2008-08-26 | Nortel Networks Limited | Technique for prefix limit exchange for route advertisement |
US8018953B1 (en) | 2003-08-20 | 2011-09-13 | Cisco Technology, Inc. | Adaptive, deterministic ant routing approach for updating network routing information |
JP2005117206A (ja) * | 2003-10-06 | 2005-04-28 | Hitachi Ltd | ネットワークプロセッサアクセラレータ |
US20050135135A1 (en) * | 2003-10-24 | 2005-06-23 | Stmicroelectronics Pvt. Ltd. | Content addressable memory for CIDR address searches |
JP4493321B2 (ja) * | 2003-11-19 | 2010-06-30 | 株式会社日立製作所 | ディスクアレイ装置及びデータ退避方法 |
US7536467B2 (en) * | 2004-04-20 | 2009-05-19 | Microsoft Corporation | Peer-to-peer (P2P) mobility system, and method |
US7725450B1 (en) | 2004-07-23 | 2010-05-25 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations |
US7603346B1 (en) | 2004-07-23 | 2009-10-13 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein |
US7653619B1 (en) | 2004-07-23 | 2010-01-26 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height |
US7747599B1 (en) | 2004-07-23 | 2010-06-29 | Netlogic Microsystems, Inc. | Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations |
US8886677B1 (en) | 2004-07-23 | 2014-11-11 | Netlogic Microsystems, Inc. | Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length |
US7580356B1 (en) | 2005-06-24 | 2009-08-25 | Packeteer, Inc. | Method and system for dynamically capturing flow traffic data |
US7639613B1 (en) | 2005-06-24 | 2009-12-29 | Packeteer, Inc. | Adaptive, flow-based network traffic measurement and monitoring system |
US20070171833A1 (en) * | 2005-11-21 | 2007-07-26 | Sukhbinder Singh | Socket for use in a networked based computing system having primary and secondary routing layers |
JP4646823B2 (ja) * | 2006-02-17 | 2011-03-09 | エスアイアイ・ネットワーク・システムズ株式会社 | ルータ装置、ルータ装置におけるルート決定方法 |
US7697518B1 (en) | 2006-09-15 | 2010-04-13 | Netlogic Microsystems, Inc. | Integrated search engine devices and methods of updating same using node splitting and merging operations |
US7929524B2 (en) * | 2006-09-29 | 2011-04-19 | Cisco Technology, Inc. | Apparatus and method to hide transit only multi-access networks in OSPF |
US7987205B1 (en) | 2006-11-27 | 2011-07-26 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations |
US8086641B1 (en) | 2006-11-27 | 2011-12-27 | Netlogic Microsystems, Inc. | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same |
US7953721B1 (en) | 2006-11-27 | 2011-05-31 | Netlogic Microsystems, Inc. | Integrated search engine devices that support database key dumping and methods of operating same |
US7831626B1 (en) | 2006-11-27 | 2010-11-09 | Netlogic Microsystems, Inc. | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node |
US8289851B2 (en) * | 2007-04-30 | 2012-10-16 | Alcatel Lucent | Lightweight bandwidth-management scheme for elastic traffic |
US7822927B1 (en) * | 2007-05-14 | 2010-10-26 | Emc Corporation | Dynamically configurable reverse DNLC lookup |
US7886176B1 (en) | 2007-09-24 | 2011-02-08 | Integrated Device Technology, Inc. | DDR memory system for measuring a clock signal by identifying a delay value corresponding to a changed logic state during clock signal transitions |
US7716204B1 (en) | 2007-12-21 | 2010-05-11 | Netlogic Microsystems, Inc. | Handle allocation managers and methods for integated circuit search engine devices |
US7801877B1 (en) | 2008-04-14 | 2010-09-21 | Netlogic Microsystems, Inc. | Handle memory access managers and methods for integrated circuit search engine devices |
US8908696B2 (en) | 2008-09-09 | 2014-12-09 | At&T Intellectual Property I, L.P. | Systems and methods for optimized route caching |
US8630294B1 (en) * | 2011-05-11 | 2014-01-14 | Juniper Networks, Inc. | Dynamic bypass mechanism to alleviate bloom filter bank contention |
US8886827B2 (en) | 2012-02-13 | 2014-11-11 | Juniper Networks, Inc. | Flow cache mechanism for performing packet flow lookups in a network device |
US8799507B2 (en) | 2012-03-13 | 2014-08-05 | Juniper Networks, Inc. | Longest prefix match searches with variable numbers of prefixes |
JP5966561B2 (ja) * | 2012-04-20 | 2016-08-10 | 富士通株式会社 | 通信装置および通信方法 |
US8937955B2 (en) * | 2012-12-05 | 2015-01-20 | Cisco Technology, Inc. | System and method for scaling IPv6 addresses in a network environment |
JP6139908B2 (ja) * | 2013-02-26 | 2017-05-31 | 京セラ株式会社 | 電力管理装置、通信制御装置、電力管理システム及び電力管理方法 |
CN110753133B (zh) * | 2018-07-23 | 2022-03-29 | 华为技术有限公司 | 处理地址的方法和网络设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3371006B2 (ja) | 1993-03-03 | 2003-01-27 | 株式会社日立製作所 | テーブル検索方法及びルータ装置 |
FR2707775B1 (fr) | 1993-07-12 | 1996-04-12 | Duret Chrsitian | Procédé et dispositif d'analyse d'informations contenues dans des structures de données. |
US6266706B1 (en) * | 1997-09-15 | 2001-07-24 | Effnet Group Ab | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams |
US6223172B1 (en) * | 1997-10-31 | 2001-04-24 | Nortel Networks Limited | Address routing using address-sensitive mask decimation scheme |
US6052683A (en) * | 1998-02-24 | 2000-04-18 | Nortel Networks Corporation | Address lookup in packet data communication networks |
US6141738A (en) * | 1998-07-08 | 2000-10-31 | Nortel Networks Corporation | Address translation method and system having a forwarding table data structure |
US6212184B1 (en) * | 1998-07-15 | 2001-04-03 | Washington University | Fast scaleable methods and devices for layer four switching |
-
1999
- 1999-02-10 JP JP3328799A patent/JP3199051B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-09 US US09/501,279 patent/US6768739B1/en not_active Expired - Fee Related
- 2000-02-09 EP EP00102179A patent/EP1035687A3/en not_active Withdrawn
- 2000-02-09 CA CA002298191A patent/CA2298191C/en not_active Expired - Fee Related
Non-Patent Citations (7)
Title |
---|
1999信学総合大会 B−6−45 |
1999信学総合大会 B−6−46 |
2000信学総合大会 B−6−39 |
NEC技報 Vol.52 No.3 p128−130 |
信学技報 IN98−119 |
信学技報 SSE2000−20 |
信学技報 SSE99−180 |
Also Published As
Publication number | Publication date |
---|---|
EP1035687A3 (en) | 2003-01-29 |
US6768739B1 (en) | 2004-07-27 |
EP1035687A2 (en) | 2000-09-13 |
CA2298191C (en) | 2005-07-26 |
JP2000232479A (ja) | 2000-08-22 |
CA2298191A1 (en) | 2000-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3199051B2 (ja) | キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 | |
US6665297B1 (en) | Network routing table | |
US6993031B2 (en) | Cache table management device for router and program recording medium thereof | |
US20080192754A1 (en) | Routing system and method for managing rule entries of ternary content addressable memory in the same | |
US5909440A (en) | High speed variable length best match look-up in a switching device | |
US7630373B2 (en) | Packet transfer apparatus | |
US6842791B2 (en) | Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches | |
CA2274962C (en) | High speed variable length best match look-up in a switching device | |
CA2434876C (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
US7281085B1 (en) | Method and device for virtualization of multiple data sets on same associative memory | |
US20070171911A1 (en) | Routing system and method for managing rule entry thereof | |
US7630367B2 (en) | Approach for fast IP address lookups | |
US20050243827A1 (en) | Lookup engine | |
US20070115968A1 (en) | Default route coding | |
WO2001005116A2 (en) | Routing method and apparatus | |
US6925503B2 (en) | Method and system for performing a longest prefix match search | |
US20190294549A1 (en) | Hash Table-Based Mask Length Computation for Longest Prefix Match Caching | |
US7330469B2 (en) | Internet protocol address lookup system and method using three-layer table architecture | |
JP2001237881A (ja) | テーブル型データ検索機構及びそれを用いるパケット処理システム並びにそのテーブル型データ検索方法 | |
CN115086221B (zh) | 一种报文处理方法、装置、转发设备和存储介质 | |
CN111865804B (zh) | 一种通过硬件发包机制提升路由下发效率的方法及系统 | |
JP2007221514A (ja) | ルータ装置、ルータ装置におけるルート決定方法 | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
JP3660311B2 (ja) | テーブル検索装置および方法およびプログラムおよび記録媒体 | |
CN114640641B (zh) | 一种流量感知的OpenFlow流表弹性节能查找方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080615 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090615 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130615 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |