JP3250544B2 - 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体 - Google Patents

転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体

Info

Publication number
JP3250544B2
JP3250544B2 JP11004199A JP11004199A JP3250544B2 JP 3250544 B2 JP3250544 B2 JP 3250544B2 JP 11004199 A JP11004199 A JP 11004199A JP 11004199 A JP11004199 A JP 11004199A JP 3250544 B2 JP3250544 B2 JP 3250544B2
Authority
JP
Japan
Prior art keywords
pointer
entry
search
bit string
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
Application number
JP11004199A
Other languages
English (en)
Other versions
JP2000307641A (ja
Inventor
利也 荒巻
継男 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP11004199A priority Critical patent/JP3250544B2/ja
Priority to CA 2305475 priority patent/CA2305475C/en
Priority to US09/549,707 priority patent/US6618760B1/en
Priority to EP20000107949 priority patent/EP1045556A3/en
Publication of JP2000307641A publication Critical patent/JP2000307641A/ja
Application granted granted Critical
Publication of JP3250544B2 publication Critical patent/JP3250544B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーク上の
ルータに転送されてきたIP(internet protocol)パ
ケット等のビット列のデータ信号の次の転送先を、その
データ信号の有するIPアドレス等の送信先アドレスに
基づいて検索する技術に関する。
【0002】
【従来の技術】通信ネットワークにおけるIPパケット
信号等のデータ信号の送出先を示すルート情報を検索す
る検索装置の一つとして、ルータがある。このルータ
は、データ信号が入力されると、検索テーブルを検索し
てデータ信号の送出ルートの振り分けを行う。
【0003】この検索テーブルには、IPパケット信号
の次の転送先としての「出力インターフェイス」又は
「次の中継先であるルータのIPアドレス」が、IPパ
ケット信号の有する「IPサブネットアドレス」及び
「プレフィックス長」と対応づけられて登録されてい
る。
【0004】そして、ルータは、受信したIPパケット
信号の送信先を示すIPアドレスを検索キーとして検索
テーブルの検索を行い、「出力インターフェイス」等の
転送先を決定する。この検索を行うにあたっては、検索
テーブルに登録されたもの中から、最終的にロンゲスト
マッチ法により、このIPアドレスと最も一致する「I
Pサブネットアドレス」を決定する。
【0005】ここで、ロンゲストマッチ法について説明
する。ロンゲストマッチ法においては、登録されている
IPアドレスのうち、検索キーのIPアドレスと一致す
る有効ビット列が最も長いものを選択する。以下、例を
挙げて説明する。この例では、ビット長が3ビットのI
Pアドレスとして、「0**」及び「00*」の二つが
登録されているとする。
【0006】まず、「0**」は、先頭ビットの「0」
のみが有効ビット値で、2番目以降の「**」は、
「0」又は「1」の任意の値を表す。また、「00*」
は、1ビット目及び2ビット目の「00」が有効ビット
値で、3番目の「*」は、「0」又は「1」の任意の値
を表す。なお、アドレスのうち有効ビット列の長さをビ
ット数で表したものをプレフィックス長(有効ビット列
長)という。
【0007】そして、転送されてきたIPパケットの最
終的な送信先を示す、検索キーとしてのIPアドレス
と、登録されている二つの登録IPアドレスとをそれぞ
れ照合する。検索キーのIPアドレスを「0001…」
とした場合、「00*」の方が「0**」よりも、登録
IPアドレスと一致するプレフィックス長が長い。した
がって、この場合、次の転送先のIPアドレスとして
「00*」が選択される。
【0008】ところで、IPアドレスのビット数が、上
述した例のように3ビット程度と短い場合には、その検
索も容易である。しかし、実際に使用されるIPアドレ
スのビット数は、これよりも遥かに長い。例えば、標準
規格IPv4におけるアドレス長は、32ビットであ
る。さらに、近年標準化されたIPv6においては、ア
ドレス長が128ビットと一層長くなっている。このた
め、ルータにおけるデータ信号中継処理においては、検
索処理の効率化が重要となる。
【0009】そこで、従来から、IPパケット信号の次
の転送先を、そのIPパケット信号の有するIPアドレ
スに基づいて検索する方法が、種々提案されている。こ
こでは、まず、図13を参照して、バイナリ・ツリー
(Binary Tree)検索法について簡単に説明する。
【0010】図13は、バイナリ・ツリー検索法を説明
するための概念図である。図13に示す例では、登録さ
れたP1〜P8の各IPアドレスがツリー構造を構成し
ている。そして、バイナリ・ツリー検索法は、1ビット
単位でビット列のビット値の比較を順次に行う。このた
め、図13に示すように、ツリーを構成する各ノード
は、ビット列の各ビット値にそれぞれ対応する。
【0011】しかし、バイナリ・ツリー検索法では、エ
ントリ数が増えると、ノードの数が急増する。その結
果、検索回数も急増してしまう。そこで、ノードの増加
に伴う検索回数の増加を抑制する検索方法として、ラデ
ィックス・ツリー(Radix Tree)検索法が提案されてい
る。
【0012】次に、図14を参照して、このラディック
ス・ツリー検索法について簡単に説明する。図14は、
ラディックス・ツリー検索法を説明するための概念図で
ある。図14に示す例では、登録されたP1〜P8の各
IPアドレスがツリー構造を構成する。そして、ラディ
ックス・ツリー検索法では、バイナリ・ツリー検索法と
異なり、ツリー構造のノードを1ビット単位で配置する
必要がない。このため、ラディックス・ツリー検索法に
おけるノード数は、エントリ数(登録されたIPアドレ
ス数)の高々二倍に抑えられる。
【0013】しかし、ラディックス・ツリー検索法で
は、ツリー構造の枝の「0」及び「1」が直接ビット列
のビット値を表しているわけではない。このため、各ノ
ードにおいて、ノードのエントリと検索キーとを比較す
る必要がある。また、ラディックス・ツリー検索法で
は、登録されたIPアドレスのビット列の分布によって
検索回数が異なる。そして、検索回数は、最大、ビット
列の長さと同じ回数となってしまうことがある。例え
ば、割当てビット数が32ビットのIPv4において
は、検索回数が最大32回となることがある。
【0014】そこで、ノードの増加に伴う検索回数の増
加を一層抑制する検索方法の一例が、文献1:「エーシ
ーエム・シグメトリーズ‘98、1998年6月、第1
〜10頁(ACM SIGMETRICS'98, pp.1-10, June 199
8)」に、コントロールド・プレフィックス・エクスパ
ンション(Controlled Prefix Expansion)検索法(以
下、「拡張法」と称する。)として提案されている。な
お、この拡張法と同様の検索方法は、文献2:「特開平
10−257066号公報」にも開示されている。
【0015】次に、図15を参照して、従来の拡張法に
ついて説明する。拡張法では、IPアドレスのビット列
を複数の分割ビット列に分割し、階層化された分割ビッ
ト列ごとの検索テーブル(文献2においては「制御テー
ブル」。)を設ける。そして、各検索テーブルにおいて
は、各分割ビット列をそれぞれエントリアドレスとす
る。
【0016】すなわち、図15に示した例では、合計7
ビット分のビット列を、順次に2ビット分、3ビット分
及び2ビット分の三つの分割ビット列に分割している。
そして、一段目及び三段目の検索テーブルでは、「0
0」〜「11」の四つの分割ビット列をそれぞれエント
リアドレスとしている。また、二段目の検索テーブルで
は、「000」〜「111」の八つの分割ビット列をエ
ントリアドレスとしている。
【0017】そして、拡張法では、登録アドレスを更新
する際に、終了/継続フラグ、次の転送先のIPアドレ
スなどを示す次テーブルポインタや送信インターフェイ
スの情報そのものを、その検索テーブルの各エントリの
うち、登録し得る全てのエントリにそれぞれ設定する。
【0018】すなわち、IPアドレスの登録にあたって
は、各検索テーブルにおいて、各分割ビット列のビット
長に満たないエントリのビット列を各分割ビット列の末
端まで拡張する。ビット列を拡張すると、拡張前のビッ
ト列を共有する複数のエントリが、共通の登録IPアド
レスに対応することになる。
【0019】図15に示した例では、P1〜P8の登録
される各IPアドレスをそれぞれ、各分割ビット列の最
下位ビットまで拡張する。例えば、プレフィックス長が
「1」であるP5のIPアドレス「0*」は、1ビット
分だけ拡張されて、2ビットの「00」及び「01」と
なる。そして、一段目の検索テーブルにおいて、エント
リアドレスが「00」及び「01」の両方のエントリ
に、P5がそれぞれ登録される。
【0020】また、例えば、プレフィックス長が「3」
であるP2のIPアドレス「111*」は、2ビット分
だけ拡張されて、5ビットの「11100」、「111
01」、「11110」及び「11111」の四つのエ
ントリとなる。そして、二段目の検索テーブルにおいて
は、3ビット目〜5ビット目の分割ビット列がエントリ
アドレスとなる。したがって、エントリアドレスが、
「100」、「101」、「110」及び「111」の
四つのエントリに、P2がそれぞれ登録される。さら
に、他の登録IPアドレスも同様に拡張して登録され
る。
【0021】このように、ビット列を拡張することによ
り、登録IPアドレスを検索テーブルの特定のエントリ
アドレスと対応づけることができる。その結果、各段の
検索テーブルの検索にあたり、登録IPアドレスの分割
ビット列をそのままオフセットとして使用できる。
【0022】したがって、上述したラディックス・ツリ
ー検索で必要であった各ノードでのエントリとの比較が
不要となる。そして、検索回数は、最大でも、検索テー
ブルの段数で済む。例えば、図15に示した例では、三
段の検索テーブルを設けているので、検索回数は最大で
も三回で済む。これにより、拡張法によれば、検索回数
を大幅に減らすことができる。
【0023】さらに、検索キーのIPアドレスに対応す
るIPアドレスが未登録の場合には、検索テーブルにそ
の検索キーのIPアドレスを登録することもできる。こ
こで、図16及び図17を参照して、32ビットのIP
アドレスを8ビットずつ四つの分割ビット列に分割した
場合の、拡張法によるIPアドレスの登録方法について
説明する。
【0024】図16及び図17は、IPアドレスの登録
方法を説明するためのフローチャートである。図16で
は、登録しようとするIPアドレスのプレフィックス長
が8ビット以下の場合である場合に、IPアドレスを登
録する手順を示している。この場合には、一段目の検索
テーブル(第一制御テーブル)に対してのみ、登録する
こととなる。
【0025】すなわち、登録にあたっては、まず、一段
目の検索テーブルのエントリのうち、そのIPアドレス
を登録し得る範囲を決定する(図16のS1)。例え
ば、登録しようとするIPアドレスが、プレフィックス
長「1」の「8.0.0.0」である場合について説明
する。この場合、エントリアドレスのビット列うち、1
ビット目が「1」である上位8ビットの全ての分割ビッ
ト列が登録し得る範囲となる。すなわち、「128(=
1000 0000).0.0.0」〜「255(=1
111 1111)」の各エントリが登録し得る範囲と
なる。
【0026】また、例えば、登録しようとするIPアド
レスが、プレフィックス長「2」の「8.0.0.0」
である場合について説明する。この場合、エントリアド
レスのビット列のうち、1ビット目及び2ビット目が
「10」である上位8ビットの全ての分割ビット列が登
録し得る範囲となる。すなわち、「128(=1000
0000).0.0.0」〜「191(=1011 1
111).0.0.0」の各エントリが登録し得る範囲
となる。
【0027】次に、登録し得る範囲に対して、更新制御
を行う(図16のS2)。具体的には、図16のS1の
ステップにおいて決定した登録し得る範囲内のエントリ
に、既にIPアドレスが登録済みのものが無い場合に
は、新しいIPアドレスにその範囲内のエントリを更新
し、送信インターフェイスも更新して、登録を終了す
る。
【0028】また、その範囲内に、既に登録済みのIP
アドレスがある場合には、まず、登録済みのIPアドレ
スのプレフィックス長と新たに登録しようとするIPア
ドレスのプレフィックス長とを比較する。そして、登録
済みのIPアドレスのプレフィックス長が新たなプレフ
ィックス長以上である場合には、登録済みのままとし
て、登録を終了する。一方、これに対して、登録済みの
IPアドレスのプレフィックス長が新たなプレフィック
ス長よりも短い場合には、その範囲のエントリの内容
を、新しく登録するIPアドレスの情報に更新し、送信
インターフェイスも更新して、登録を終了する。
【0029】また、図17では、登録しようとするIP
アドレスのプレフィックス長が32ビット中、8ビット
より長く、16ビット以下の場合である場合に、IPア
ドレスを登録する手順を示している。この場合には、一
段目の検索テーブル(第一制御テーブル)及び二段目の
検索テーブル(第二制御テーブル)に対してのみ、登録
することとなる。
【0030】すなわち、登録にあたっては、まず、図1
6のS1のステップと同様に、最上位の8ビットの分割
ビット列値をキーとして、第一制御テーブルを検索する
(図17のS1)。次に、その第一制御テーブル中の該
当ビットでの、登録済みのエントリの有無を判断する
(図17のS2)。
【0031】そして、登録済みのエントリが有る場合に
は、その登録済みエントリが示す第二制御テーブルへア
クセスする(図17のS3)。一方、登録済みのエント
リが無い場合には、新規の第二制御テーブルを、新規の
次テーブルポインタにより選択し、設定する(図17の
S4)。続いて、その新規の第二制御テーブルへアクセ
スする(図17のS5)。
【0032】さらに、第二制御テーブルで、図16のS
1のステップと同様にして、登録し得る範囲を決定する
(図17のS6)。続いて、登録し得る範囲に対して、
図16のS2のステップ同様にして、更新制御を行い
(図17のS7)、登録を終了する。
【0033】このようにして、従来の拡散法において
は、次の転送先に送るための必要な新たな情報が追加さ
れた場合、これら送信インターフェイス等の情報に加え
て、この追加情報そのものも、登録し得る全てのエント
リに設定していた。また、登録するIPアドレスのプレ
フィックス長が16ビットより長く24ビット以下の場
合や、24ビットよりも長く32ビット以下の場合も、
同様にして、エントリの設定を行うことができる。な
お、登録済みのIPアドレスを削除する場合も、追加す
る場合と同様にして、検索テーブルの該当する全てのエ
ントリに登録されていた送信インターフェイスなどの情
報を削除していた。
【0034】
【発明が解決しようとする課題】しかしながら、上述し
た拡張法では、検索テーブルが複数段に分割されている
上、一つの登録アドレスが、ビット列を拡張して複数の
エントリ登録されているため、登録アドレスの変更(追
加、更新及び削除を含む。)が複雑になるという問題点
がある。
【0035】すなわち、拡張法では、一つのIPアドレ
スを登録したり削除したりするのに、通常、複数のエン
トリの内容を変更しなければならない。例えば、図15
に示した例では、登録アドレス「P2」の登録を削除す
るにあたり、二段目の検索テーブルの「100」、「1
01」、「110」及び「111」の四つのエントリに
おいてそれぞれ登録アドレス「P2」を削除しなければ
ならない。
【0036】また、拡張法では、新たに登録しようとす
るIPアドレスに対応する段の検索テーブルがない場合
には、一つのIPアドレスを登録するために、わざわざ
一段分の検索テーブルを追加しなければならない。その
上、その検索テーブルの該当する各エントリに、送信イ
ンターフェイスなどの同一の登録情報をいちいち書込む
必要も生じる。
【0037】さらに、拡張法では、二段目以降の各検索
テーブルは、通常、直前の段の検索テーブルの各登録エ
ントリに個別に対応するように複数個ずつ設けられる。
その結果、多数の検索テーブルが必要となるため、検索
テーブルを構成するためのメモリ容量が大きくなる。そ
の上、拡張法では、送信先アドレスの登録されたエント
リが一つの検索テーブルに一つしかない場合であって
も、一段分の検索テーブルを構成する必要があった。こ
のため、拡張法では、メモリ容量を浪費してしまうとい
う問題点があった。
【0038】なお、メモリ容量を節約するために、検索
テーブルを可変長として、エントリの数に合わせて可変
長とすることも考えられる。しかし、検索テーブルを可
変長とすると、検索テーブルの管理及び制御が困難とな
り、特に、ハードウエアによる実現が困難となる。
【0039】本発明は、上記の問題を解決すべくなされ
たものであり、メモリ容量が節約でき、かつ、登録アド
レスの変更が容易な転送先検索方法、転送先検索装置、
検索テーブルが記録された記録媒体、及び、検索プログ
ラムが記録された記録媒体の提供を目的とする。
【0040】
【課題を解決するための手段】この目的の達成を図るた
め、本発明の請求項1に係る転送先検索方法によれば、
転送されてきたデータ信号の次の転送先を決定するため
に、当該データ信号の送信先アドレスを検索キーとし
て、検索テーブルから、当該データ信号の転送先の登録
アドレスを示すホップポインタを検索する転送先検索方
法において、検索テーブルを、第一テーブル群と第二テ
ーブルとにより構成しておき、第一テーブル群は、送信
先アドレスに割当てられたビット数分のビット列を上位
から一定ビットずつ複数段に分割して得られた各段の分
割ビット列にそれぞれ対応する複数の第一テーブルから
なり、各第一テーブルは、当該第一テーブルの対応する
段の分割ビット列で表される各分割ビット列値を、当該
第一テーブルの各エントリのオフセットアドレスとして
それぞれ有するとともに、オフセットアドレスが、登録
アドレスのビット列値のうち当該段に対応する分割ビッ
ト列値と一致する場合に、当該第一テーブルは、当該オ
フセットアドレスのエントリ内容として、次にアクセス
する第二テーブルのエントリを示す第二テーブルポイン
タを有し、かつ、登録アドレスの有効ビット列の最下位
ビットが分割ビット列の途中までしかない場合に、当該
第一テーブルは、当該有効ビット列のうちの当該分割ビ
ット列に相当する有効ビット列部分を共通して含む各オ
フセットアドレスのエントリ内容として、互いに共通の
第二テーブルポインタを有し、第二テーブルは、エント
リ内容として、検索継続又は終了を指示する継続/終了
フラグ用フィールド、ホップポインタ用フィールド、及
び、次にアクセスする第一テーブルを示す第一テーブル
ポインタ用フィールドを有し、ホップポインタを検索す
るにあたり、送信先アドレスのビット列値を上位から前
記一定ビットずつ複数段に分割して得られる各段の分割
ビット列値のうち最上段の分割ビット列値をキーとし
て、第一テーブル群のうち最上段の第一テーブルを検索
し、当該分割ビット列値と一致するオフセットアドレス
のエントリから第二テーブルポインタを読み出し、第二
テーブルポインタの示すエントリの継続/終了フラグが
検索継続を指示している場合には、第一テーブルポイン
タの示す次段の第一テーブルを、送信先アドレスの当該
段の分割ビット列値をキーとして検索し、当該分割ビッ
ト列値と一致するオフセットアドレスのエントリから第
二テーブルポインタを繰返し読み出し、第二テーブルポ
インタの示すエントリの継続/終了フラグが検索終了を
指示している場合には、当該エントリのホップポインタ
を読み出して検索を終了する方法としてある。
【0041】このように、本発明によれば、階層化され
た第一テーブルの他に、インデックスとしての第二テー
ブルを設ける。そして、第二テーブル、第一テーブルと
第二テーブルとを交互に検索する。そのために、第二テ
ーブルのエントリには、第一テーブルポインタや、ホッ
プポインタなどの転送先に関するデータを格納してお
く。その結果、膨大な数の各第一テーブルの各エントリ
には、原則、第二テーブルポインタのみを格納しておく
だけでよい。すなわち、各第一テーブルに、ホップポイ
ンタなどの転送先に関する多量のデータをいちいち格納
する必要がない。
【0042】これにより、本発明においては、個々の第
一テーブルを構成する個々のメモリ容量を、従来の拡張
法における個々の検索テーブルのメモリ容量よりも少な
くすることができる。その結果、膨大な数の第一テーブ
ルからなる第一テーブル群全体のメモリ量を大幅に節約
することができる。したがって、本発明によれば、従来
の拡張法よりも検索テーブル全体のメモリ容量を節約す
ることができる。
【0043】また、請求項2記載の発明によれば、第二
テーブルの各エントリは、ホップポインタ更新の有無を
指示する更新フラグ用フィールドを有し、ホップポイン
タを検索するにあたり、初期値のホップポインタを設定
して、内部変数として保持し、第二テーブルポインタの
示す第二テーブルのエントリの更新フラグが更新を指示
している場合に、内部変数として保持されてホップポイ
ンタを、当該エントリから読み出したホップポインタに
更新する方法としてある。このように、第二テーブルに
更新フラグを設ければ、検索中に必要に応じて、ホップ
ポインタを更新することができる。
【0044】また、請求項3記載の発明によれば、第一
テーブルのエントリは、ホップポインタを更新する必要
がある場合にのみ、第二テーブルポインタを有し、更新
不要の場合には、第二テーブルポインタの代わりに、登
録アドレスのビット列値に従って次にアクセスする次段
の第一テーブルを示す第一テーブルポインタを有し、ホ
ップポインタを検索するにあたり、第一テーブルのエン
トリに第一テーブルポインタが設定されている場合に
は、第二テーブルを経由せずに、テーブルポインタの示
す第一テーブルへ直接アクセスする方法としてある。
【0045】このように、第二テーブルポインタの代わ
りに次段の第一テーブルを示すテーブルポインタを格納
しておけば、第二テーブルにアクセスせずに、次段の第
一テーブルへアクセスすることができる。その結果、検
索中のアクセス回数を減らすことができるので、検索の
高速化を図ることができるとともに、そのテーブルポイ
ンタの分だけ、第二テーブルのエントリ数を減らすこと
ができるので、第二テーブルのメモリ容量の節約を図る
こともできる。
【0046】また、請求項4記載の発明によれば、第一
テーブルを、0ビット用第一テーブルと1ビット用第一
テーブルと分けて構成しておき、0ビット用第一テーブ
ルは、第一テーブルの対応する分割ビット列の先頭ビッ
トの値が「0」である場合の、当該分割ビット列から当
該先頭ビットを除いた残存分割ビット列に対応し、1ビ
ット用第一テーブルは、第一テーブルの対応する分割ビ
ット列の先頭ビットの値が「1」である場合の、当該分
割ビット列から当該先頭ビットを除いた残存部分ビット
列に対応し、第二テーブルは、各エントリに、0ビット
用第一テーブルを示す0ビット用第一テーブルポインタ
用フィールドと、1ビット用第一テーブルを示す1ビッ
ト用第一テーブルポインタ用フィールドとを有し、ホッ
プポインタを検索するにあたり、分割ビット列の先頭ビ
ット値が「0」であるときに、0ビット用第一テーブル
ポインタの示す0ビット用第一テーブルにアクセスし、
分割ビット列の先頭ビット値が「1」であるときに、1
ビット用第一テーブルポインタの示す0ビット用第一テ
ーブルにアクセスする方法としてある。
【0047】このように、各段の第一テーブルをそれぞ
れ0ビット用及び1ビット用第一テーブルとに分けてお
けば、該当する登録エントリがない場合には、0ビット
用又は1ビット用のいずれか一方の第一テーブルを省略
することができる。その結果、第一テーブルのメモリ容
量を節約することができる。さらに、分割ビット列の先
頭ビットに応じて、0ビット用又は1ビット用のいずれ
か一方の第一テーブルのみを選択してアクセスすること
ができる。その結果、第一テーブルの検索エントリ数を
半分とすることができる。
【0048】また、請求項5記載の発明によれば、第一
テーブルが、登録アドレスに対応するエントリ(登録エ
ントリ)を一つだけ有する場合に、当該第一テーブルを
当該エントリ一つ分だけのメモリ領域の記憶容量を有す
る単独第一テーブルとし、第二テーブルの各エントリ
は、当該エントリの第一テーブルポインタの示す第一テ
ーブルの種類が単独第一テーブルであるか否かを示すテ
ーブル種類フラグ用フィールドを有し、ホップポインタ
を検索するにあたり、第二テーブルポインタの示す第二
テーブルのエントリのテーブル種類フラグが、当該エン
トリの第一テーブルポインタが示す第一テーブルが当該
単独第一テーブルであることを示している場合に、当該
単独第一テーブルに対応する登録アドレスの分割ビット
列値と、送信先アドレスの有効ビット列のうち当該分割
ビット列に相当する有効ビット列部分とを照合し、当該
分割ビット列値と当該有効ビット列部分とが不一致の場
合に、検索を終了し、当該分割ビット列値と当該有効ビ
ット列部分とが一致した場合に、当該エントリの第二テ
ーブルポインタの示す第二テーブルのエントリへアクセ
スする方法としてある。
【0049】一般に、送信先アドレスに割り当てられた
ビット列の長さに対して、登録アドレスの数が少ない場
合には、一つの第一テーブルに登録されるエントリ数が
少なくなる。この場合、一つの第一テーブルあたりの登
録エントリ数が一つだけとなる場合が少なからず発生す
る。このような場合、たった一つの登録エントリのため
に、分割ビット列分の全エントリを有する第一テーブル
のメモリ領域を確保することは、メモリ容量の浪費とな
る。そこで、一エントリ分だけの単独第一テーブルを設
ければ、一つの第一テーブルあたりの登録エントリが一
つだけの場合に、メモリ容量を節約することができる。
【0050】また、請求項6記載の発明によれば、単独
第一テーブルを省略し、第二テーブルにおいて、当該単
独第一テーブルを示す第一テーブルポインタの代わり
に、その単独第一テーブルのエントリに設定されるべき
第二テーブルポインタを設定する方法としてある。
【0051】このようにすれば、単独第一テーブルを省
略することができるので、メモリ容量の一層の節約を図
ることができる。また、省略された第一テーブルへのア
クセス回数分だけアクセス回数を減らすことができるの
で、検索の迅速化を図ることができる。
【0052】また、請求項7記載の発明によれば、第二
テーブルの先頭エントリに、最上段の第一テーブルの先
頭位置アドレスを示す先頭ポインタを格納しておき、ホ
ップポインタの検索を開始するにあたり、第二テーブル
の先頭エントリにアクセスし、当該先頭エントリの第一
ポインタの示す第一テーブルにアクセスする方法として
ある。
【0053】また、請求項8記載の発明によれば、検索
テーブルにおいて登録アドレスを変更するにあたり、第
二テーブルのエントリにおいて、第一テーブルポインタ
及びホップポインタを変更し、第一テーブルのエントリ
において、第二テーブルポインタを変更する方法として
ある。
【0054】このようにすれば、膨大な第一テーブルの
該当エントリにおいては、第二テーブルポインタのみを
変更すれば良く、ホップポインタなどの転送先に関する
情報の変更は、第二テーブルでのみ行えば済む。したが
って、本発明によれば、登録アドレスの変更(追加、更
新及び削除を含む。)を容易に行うことができる。
【0055】また、本発明の請求項9記載の転送先検索
装置によれば、ルータに転送されてきたデータ信号の次
の転送先を決定するために、当該データ信号の送信先ア
ドレスを検索キーとして、検索テーブルから、当該デー
タ信号の転送先の登録アドレスを示すホップポインタを
検索する転送先検索装置において、検索テーブルを構成
する第一テーブル群を格納した第一記憶部と、検索テー
ブルを構成する第二テーブルを格納した第二記憶部と、
第一テーブル群へのアクセスを制御する第一制御部と、
第二テーブルへのアクセスを制御する第二制御部とを備
え、第一テーブル群は、送信先アドレスに割当てられた
ビット数分のビット列を上位から一定ビットずつ複数段
に分割して得られた各段の分割ビット列にそれぞれ対応
する複数の第一テーブルからなり、各第一テーブルは、
当該第一テーブルの対応する段の分割ビット列で表され
る各分割ビット列値を、当該第一テーブルの各エントリ
のオフセットアドレスとしてそれぞれ有するとともに、
オフセットアドレスが、登録アドレスのビット列値のう
ち当該段に対応する分割ビット列値と一致する場合に、
当該第一テーブルは、当該オフセットアドレスのエント
リ内容として、次にアクセスする第二テーブルのエント
リを示す第二テーブルポインタを有し、かつ、登録アド
レスの有効ビット列の最下位ビットが分割ビット列の途
中までしかない場合に、当該第一テーブルは、当該有効
ビット列のうちの当該分割ビット列に相当する有効ビッ
ト列部分を共通して含む各オフセットアドレスのエント
リ内容として、互いに共通の前記第二テーブルポインタ
を有し、第二テーブルは、エントリ内容として、検索継
続又は終了を指示する継続/終了フラグ用フィールド、
前記ホップポインタ用フィールド、及び、次にアクセス
する前記第一テーブルを示す第一テーブルポインタ用フ
ィールドを有し、第一制御部は、送信先アドレスを上位
から一定ビットずつ複数段に分割して得られる各段の分
割ビット列値のうち最上段の分割ビット列値をキーとし
て、第一テーブル群のうち最上段の第一テーブルを検索
し、当該分割ビット列値と一致するオフセットアドレス
のエントリから第二テーブルポインタを読み出し、か
つ、当該第二テーブルポインタを第二制御部へ転送し、
第二制御部は、第二テーブルポインタの示す第二テーブ
ルのエントリの継続/終了フラグが検索継続を指示して
いる場合に、第一テーブルポインタを読み出し、かつ、
当該第一テーブルポインタを第一制御部へ転送し、第一
制御部は、第一テーブルポインタの示す次段の第一テー
ブルを、送信先アドレスの当該段の分割ビット列値をキ
ーとして検索し、当該分割ビット列値と一致するオフセ
ットアドレスのエントリから第二テーブルポインタを繰
返し読み出し、かつ、当該第二テーブルポインタを第二
制御部へ転送し、第二制御部は、第二テーブルポインタ
の示す第二テーブルのエントリの継続/終了フラグが検
索終了を指示している場合には、当該エントリのホップ
ポインタを読み出し、当該ホップポインタを次の転送先
として出力する構成としてある。
【0056】このように、本発明の転送先検索装置によ
れば、階層化された第一テーブルの他に、インデックス
としての第二テーブルを設け、第一テーブルと第二テー
ブルとを交互に検索する。そして、次に転送先を示すホ
ップポインタを第二テーブルにのみ格納し、第一テーブ
ルは、第二テーブルポインタのみをエントリ内容とす
る。
【0057】これにより、個々の第一テーブルを構成す
るメモリ容量を、従来の拡張法の個々の検索テーブルの
メモリ容量よりも少なくして、検索テーブル全体のメモ
リ容量を節約することができる。
【0058】また、本発明では、インデックスとしての
第二テーブルにのみホップポインタを設けているので、
膨大な第一テーブルの該当エントリにおいては、第二テ
ーブルポインタのみを変更すれば良く、ホップポインタ
などの転送先に関する情報の変更は、第二テーブルでの
み行えば済む。したがって、本発明によれば、登録アド
レスの変更(追加及び削除を含む。)を容易に行うこと
ができる。
【0059】また、本発明の請求項10記載の検索テー
ブルの記録された記録媒体によれば、転送されてきたデ
ータ信号の次の転送先を決定するために、当該データ信
号の送信先アドレスを検索キーとして、当該データ信号
の転送先の登録アドレスを示すホップポインタを検索す
るための検索テーブルの記録された、コンピュータ読み
取り可能な記録媒体であって、検索テーブルは、第一テ
ーブル群と第二テーブルとにより構成され、第一テーブ
ル群は、送信先アドレスに割当てられたビット数分のビ
ット列を上位から一定ビットずつ複数段に分割して得ら
れた各段の分割ビット列にそれぞれ対応する複数の第一
テーブルからなり、各第一テーブルは、当該第一テーブ
ルの対応する段の分割ビット列で表される各分割ビット
列値を、当該第一テーブルの各エントリのオフセットア
ドレスとしてそれぞれ有するとともに、オフセットアド
レスが、登録アドレスのビット列値のうち当該段に対応
する分割ビット列値と一致する場合に、当該第一テーブ
ルは、当該オフセットアドレスのエントリ内容として、
次にアクセスする第二テーブルのエントリを示す第二テ
ーブルポインタを有し、かつ、登録アドレスの有効ビッ
ト列の最下位ビットが分割ビット列の途中までしかない
場合に、当該第一テーブルは、当該有効ビット列のうち
の当該分割ビット列に相当する有効ビット列部分を共通
して含むに各オフセットアドレスのエントリ内容とし
て、互いに共通の第二テーブルポインタを有し、第二テ
ーブルは、エントリ内容として、検索継続又は終了を指
示する継続/終了フラグ用フィールド、ホップポインタ
用フィールド、及び、次にアクセスする第一テーブルを
示す第一テーブルポインタ用フィールドを有する検索テ
ーブルが、コンピュータ読み取り可能に記録されてい
る。
【0060】このように、本発明によれば、階層化され
た第一テーブルの他に、インデックスとしての第二テー
ブルを設け、第一テーブルと第二テーブルとを交互に検
索する。そして、次に転送先を示すホップポインタを第
二テーブルにのみ格納し、第一テーブルは、第二テーブ
ルポインタのみをエントリ内容とする。これにより、個
々の第一テーブルを構成するメモリ容量を、従来の拡張
法の個々の検索テーブルのメモリ容量よりも少なくし
て、検索テーブル全体のメモリ容量を節約することがで
きる。
【0061】また、この発明の請求項11に記載された
検索プログラムの記録された記録媒体によれば、転送さ
れてきたデータ信号の次の転送先を決定するために、当
該データ信号の送信先アドレスを検索キーとして、検索
テーブルから、当該データ信号の転送先の登録アドレス
を示すホップポインタを検索する処理をコンピュータに
実行させる検索プログラムが記録された、コンピュータ
読み取り可能な記録媒体であって、ホップポインタを検
索するにあたり、送信先アドレスを上位から一定ビット
ずつ複数段に分割して得られる各段の分割ビット列値の
うち最上段の分割ビット列値をキーとして、第一テーブ
ル群のうち最上段の第一テーブルを検索し、当該分割ビ
ット列値と一致するオフセットアドレスのエントリから
第二テーブルポインタを読み出す処理と、第二テーブル
ポインタの示す第二テーブルのエントリの継続/終了フ
ラグが検索継続を指示している場合には、第一テーブル
ポインタの示す次段の前記第一テーブルを、送信先アド
レスの当該段の分割ビット列値をキーとして検索し、当
該分割ビット列値と一致する前記オフセットアドレスの
エントリから第二テーブルポインタを繰返し読み出す処
理と、第二テーブルポインタの示す第二テーブルのエン
トリの継続/終了フラグが検索終了を指示している場合
には、当該エントリのホップポインタを読み出して検索
を終了する処理とをコンピュータに実行させる検索プロ
グラムが記録された記録媒体。
【0062】本発明の記録媒体に記録されたプログラム
をコンピュータに読み込ませて実行させることにより、
検索テーブルのためのメモリ容量を節約しつつ、登録ア
ドレスの変更が容易な送信先アドレス検索を実現するこ
とが可能となる。
【0063】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照して説明する。なお、以下の実施形態に
おける送信先アドレス検索のための処理は、プログラム
に制御されたコンピュータにより実行される。このプロ
グラムは、例えば、記録媒体により提供される。また、
以下の実施形態における検索テーブルは、コンピュータ
読み取り可能な記録媒体として提供される。これら記録
媒体としては、例えば、磁気ディスク、半導体メモリ、
その他の任意の、コンピュータで読み取り可能なものを
使用することができる。
【0064】[第一実施形態] (構成について)まず、図1を参照して、第一実施形態
の転送先検索装置の構成について説明する。図1は、第
一実施形態の転送先検索装置の構成を説明するための機
能ブロック図である。
【0065】第一実施形態の転送先検索装置は、ルータ
に他のルータ等から転送されてきたデータ信号の次の転
送先を決定する装置である。そのために、この転送先検
索装置は、データ信号に含まれている、当該データ信号
の送信先を示す送信先アドレスを検索キーとして、検索
テーブルから、そのデータ信号の転送先を示すホップポ
インタを検索する。
【0066】そのために、第一実施形態の転送先検索装
置は、検索テーブルを構成する第一テーブル群10が格
納された第一記憶部30と、検索テーブルを構成する第
二テーブル20が格納された第二記憶部40と、第一テ
ーブル群へのアクセスを制御する第一制御部50と、第
二テーブルへのアクセスを制御する第二制御部60とに
より構成されている。
【0067】なお、第一及び第二記憶部30及び40
は、例えば、任意にデータの読み書き可能な記憶ディス
クや半導体メモリその他の、任意好適な記録装置により
構成すると良い。また、第一及び第二記憶部30及び4
0は、一つの記憶装置の記憶領域に個別に設けても良
い。
【0068】(検索テーブルについて)ここで、図2を
参照して、検索テーブルを構成する第一テーブル群10
及び第二テーブル20について説明する。
【0069】(第一テーブルについて)図2は、第一実
施形態の転送先検索方法を説明するための検索テーブル
の概念構成図である。図2に示すように、第一テーブル
群10は、送信先アドレスに割当てられた32ビット数
分のビット列を上位から8ビットずつ4段に分割して得
られた各段の分割ビット列にそれぞれ対応する一段目〜
四段目第一テーブル11〜14からなる。
【0070】すなわち、一段目第一テーブル11は、3
1ビット目から0ビット目までの32ビットのビット列
のうち、最上位の31ビット目から24ビット目まで
(以下、「Bits[31−24]」と表記する。)の
分割ビット列に対応する。続いて、二段目第一テーブル
12は、Bits[23−16]の分割ビット列に対応
する。以下同様に、三段目第一テーブル13は、Bit
s[15−8]の分割ビット列に対応し、四段目第一テ
ーブル14は、Bits[7−0]の分割ビット列に対
応する。
【0071】さらに、第一実施形態では、各段の第一テ
ーブルを、それぞれ0ビット用第一テーブルと1ビット
用第一テーブルとに分けて構成している。なお、図2で
は、0ビット用及び1ビット用第一テーブルのいずれか
一方のみを、各段の第一テーブル11〜14として便宜
的に示す。
【0072】そして、0ビット用第一テーブルは、各段
の第一テーブル11〜14のそれぞれ対応する分割ビッ
ト列の先頭ビットの値が「0」である場合の、当該分割
ビット列から当該先頭ビットを除いた残存分割ビット列
に対応する。例えば、一段目の0ビット用第一テーブル
は、Bits[31−24]の分割ビット列のうち、3
1ビット目の先頭ビット値が「0」である場合のBit
s[30−24]に対応する。また、二段目以降の0ビ
ット用第一テーブルについても同様である。
【0073】また、1ビット用第一テーブルは、各段の
第一テーブル11〜14のそれぞれ対応する分割ビット
列の先頭ビットの値が「1」である場合の、当該分割ビ
ット列から当該先頭ビットを除いた残存部分ビット列に
対応する。例えば、二段目の1ビット用第一テーブル
は、Bits[23−16]の分割ビット列のうち、2
3ビット目の先頭ビット値が「1」である場合のBit
s[22−16]に対応する。また、他段の1ビット用
第一テーブルについても同様である。
【0074】このように、各段の第一テーブルをそれぞ
れ0ビット用及び1ビット用第一テーブルとに分けてお
けば、該当する登録エントリがない場合には、0ビット
用又は1ビット用のいずれか一方の第一テーブルを省略
することができる。その結果、第一テーブルのメモリ容
量を節約することができる。
【0075】そして、各第一テーブル11〜14は、当
該第一テーブルの対応する段の分割ビット列で表される
各分割ビット列値を、当該第一テーブルの各エントリの
オフセットアドレスとしてそれぞれ有する。さらに、各
段の0ビット用又は1ビット用第一テーブル11〜14
は、それぞれ、分割ビット列の先頭ビットを除いた残存
部分ビット列で表される分割ビット列値を、各エントリ
をオフセットアドレスとしてそれぞれ有する。したがっ
て、各段の0ビット用又は1ビット用第一テーブルのエ
ントリ数は、元の第一テーブルのエントリ数の半分とな
る。
【0076】具体的には、一段目の0ビット用又は1ビ
ット用第一テーブル11は、Bits[30−24]の
7ビットの分割ビット列で表される分割ビット列値(0
00000)〜(111 1111)をそれぞれオフセ
ットアドレスとして有する0番目〜127番目のエント
リを有する。また、二段目の0ビット用又は1ビット用
第一テーブル12は、Bits[22−16]の7ビッ
トの分割ビット列で表される分割ビット列値(000
000)〜(111 1111)をそれぞれオフセット
アドレスとして有する0番目〜127番目のエントリを
有する。
【0077】さらに、三段目及び四段目の0ビット用又
は1ビット用第一テーブル13及び14も、同様に、分
割ビット列値(000 000)〜(111 111
1)をそれぞれオフセットアドレスとする0番目〜12
7番目のエントリを有する。なお、図2においては、格
段の第一テーブル11〜14をそれぞれ一つずつ代表し
て示したが、実際には、二段目以降の各段の第一テーブ
ル12〜14は、前段の各登録エントリごとに個別に設
けられている。
【0078】すなわち、本実施形態では、二段目の0ビ
ット用又は1ビット用第一テーブル12の最大数は、一
段目の0ビット用又は1ビット用第一テーブル11の全
エントリ数分(2の7乗=128個)となる。さらに、
三段目の第一テーブル13は、各二段目の第一テーブル
12の登録エントリごとに個別に設けられる。したがっ
て、三段目の第一テーブル13の最大数は、128の2
乗個となる。同様にして、四段目第一テーブル14の最
大数は、128の3乗個となる。ただし、各第一テーブ
ル11〜14では、常に全エントリに送信先アドレスが
登録されているわけではない。
【0079】そして、第一テーブルのオフセットアドレ
スが、登録アドレスのビット列値のうち当該段に対応す
る分割ビット列値と一致する場合に、当該第一テーブル
は、当該オフセットアドレスのエントリ内容として、次
にアクセスする第二テーブルのエントリを示す第二テー
ブルポインタを有する。
【0080】ここで、図3の(A)を参照して、第一テ
ーブルのエントリ内容について説明する。図3は、第一
テーブルのエントリ内容を説明するためのデータ構成図
である。図3に示す第一テーブルは、例えば、Bits
[31−24]のBit31のビット値が「0」である
場合の、一段目の0ビット用第一テーブル11に相当す
る。このため、この第一テーブル11は、最上段の8ビ
ットの分割ビット列のうち、Bit32を除いた残りの
Bits[30−24]に対応する。このため、この0
ビット用第一テーブル11のエントリ数は128個(2
の(8−1)乗個)となる。そして、0番目〜127番
目の各エントリのアドレスは、それぞれ(000 00
00)〜(111 1111)のオフセットアドレスに
対応する。
【0081】また、登録アドレスの有効ビット列の最下
位ビットが分割ビット列の途中までしかない場合に、当
該第一テーブルは、従来の拡張法と同様に、当該有効ビ
ット列のうちの当該分割ビット列に相当する有効ビット
列部分を共通して含む各オフセットアドレスのエントリ
内容として、互いに共通の第二テーブルポインタを有す
る。
【0082】ここで、図3を参照して、登録アドレスの
ビット列を拡張して登録する場合について説明する。図
3は、ビット列を拡張して登録された第一テーブルのエ
ントリを説明するためのデータ構成図である。図3で
は、二つの登録アドレスのビット列を分割ビット列に合
わせて拡張してそれぞれ登録する例について説明する。
【0083】まず、一つ目の登録アドレス「R1」の一
段目に対応する分割ビット列Bits[31−24]
が、(00** ****)である場合について説明す
る。この登録ドレス「R1」の有効ビット列の最下位ビ
ットは、30番目のビットであり、分割ビット列の途中
である。そして、29番目以下の6ビット分のビット値
が不定となっている。したがって、この登録アドレスを
拡張すると、(0000 0000)から(0011
1111)までの64通り(2の6乗通り)の分割ビッ
ト列値が、有効ビット列部分(00)を共通して含むこ
とになる。
【0084】そこで、図3に示すように、一段目の0ビ
ット用第一テーブルの全エントリのうち、(000 0
000)〜(011 1111)をオフセットアドレス
とする0番目〜63番目の各エントリに、R1用の第二
テーブルポインタを設定する。
【0085】次に、二つ目の登録アドレス「R2」の一
段目に対応する分割ビット列Bits[31−24]
が、(01** ****)である場合について説明す
る。この登録アドレス「R2」の有効ビット列の最下位
ビットは、30番目のビットであり、分割ビット列の途
中である。そして、29番目以下の6ビット分のビット
値が不定(*)となっている。したがって、この登録ア
ドレスを拡張すると、(0100 0000)から(0
111 1111)までの64通り(2の6乗通り)の
分割ビット列値が、有効ビット列部分(01)を共通し
て含むことになる。
【0086】そこで、図3に示すように、一段目の0ビ
ット用第一テーブルの全エントリのうち、(100 0
000)〜(111 1111)をオフセットアドレス
とする64番目〜127番目の各エントリに、R2用の
第二テーブルポインタを設定する。なお、登録エントリ
以外のエントリは、空欄(NUL)となる。
【0087】(第二テーブルについて)次に、図4を参
照して、第二テーブルのエントリの内容について説明す
る。図4では、第二テーブル20の一つのエントリ2の
内容を代表して示す。図4に示すように、この第二テー
ブル20の各エントリは、次に示す九つのフィールドを
有する。すなわち、継続/終了フラグ用フィールド2
1、更新フラグ用フィールド22、ホップポインタ用フ
ィールド23、0ビット用テーブル種類フラグ用フィー
ルド24、0ビット用第一テーブルポインタ用フィール
ド25、0ビット用単独第一テーブルの登録アドレス及
びそのプロフィックス長用フィールド26、1ビット用
テーブル種類フラグフィールド27、1ビット用第一テ
ーブルポインタ用フィールド28、及び、1ビット用単
独第一テーブルの登録アドレス及びそのプロフィックス
長用フィールド29を有する。
【0088】この継続/終了フラグ用フィールド21に
は、検索の継続又は終了を指示する継続/終了フラグが
設定される。また、更新フラグ用フィールド22には、
ホップポインタの更新の有無を指示する更新フラグが設
定される。さらに、ホップポインタ用フィールド23に
は、データ信号の次の転送先のアドレスの格納位置を示
すポインタが設定される。
【0089】さらに、この第二テーブル20では、各エ
ントリのフィールドを、分割ビット列の先頭ビット値が
「0」である場合と、「1」である場合とで分けてい
る。すなわち、0ビット用及び1ビット用テーブル種類
フラグ用フィールド24及び27には、当該エントリの
第一テーブルポインタの示す第一テーブルの種類が、後
述の第二実施形態で説明する単独第一テーブルであるか
否かを示すテーブル種類フラグが設定される。
【0090】また、0ビット用及び1ビット用第一テー
ブルポインタ用フィールド25及び28は、それぞれ登
録アドレスのビット列値に従って次にアクセスする0ビ
ット用及び1ビット用第一テーブルを示す第一テーブル
ポインタが設定される。さらに、0ビット用及び1ビッ
ト用単独第一テーブルの登録アドレス及びそのプロフィ
ックス長用フィールド26及び29には、第一テーブル
ポインタが示す第一テーブルが、単独第一テーブルであ
る場合に、単独第一テーブルの単独エントリに登録され
ている登録アドレスの分割ビット列値とそのプロフィッ
クス長とが設定される。
【0091】その上、第一実施形態では、第二テーブル
20の先頭エントリに、最上段の第一テーブル11の先
頭位置アドレスを示す先頭ポインタ格納する先頭ポイン
タ用フィールド2aを設けている。
【0092】(動作例)次に、図2を参照して、第一実
施形態の転送先検索装置の動作例、すなわち、転送先検
索方法の一例について説明する。まず、ルータ(図示せ
ず)へ、IPv4のIPパケット信号、すなわち、32
ビットの送信先アドレスを有するデータ信号が転送され
て来たとする。この送信先アドレスは、まず、ルータ内
の第二制御部60へ入力される。
【0093】続いて、送信先アドレスの転送先を示すホ
ップポインタの検索にあたり、第二制御部60が、第二
記憶部40に格納されている第二テーブル20の先頭エ
ントリにアクセスする(図2の矢印a)。
【0094】そして、送信先アドレスの先頭ビット(B
it(31))のビット値が「0」である場合には、第
二制御部60は、第二テーブル20から当該先頭エント
リの示す0ビット用第一テーブルポインタを読み出す。
この先頭エントリの0ビット用第一テーブルポインタ
は、第一記憶部30における一段目の0ビット用第一テ
ーブルポインタの先頭エントリ位置(ベースアドレス)
を示す。
【0095】また、送信先アドレスの先頭ビット値が
「1」である場合には、第二制御部60は、1ビット用
第一テーブルポインタを読み出す。この先頭エントリの
1ビット用第一テーブルポインタは、第二記憶部40に
おける一段目の1ビット用第一テーブルポインタの先頭
エントリ位置(ベースアドレス)を示す。なお、以下、
説明を簡単にするために、0ビット用と1ビット用とを
特に区別する必要がある場合を除いて、0ビット用及び
1ビット用第一テーブルのいずれも単に第一テーブルと
称する。
【0096】さらに、第二制御部60は、ホップポイン
タの初期値として「NUL」を読み出す。そして、第二
制御部60は、読み出した第一テーブルポインタと、内
部変数としてのホップポインタとを送信先アドレスとと
もに、第一制御部50へ転送する。なお、第二テーブル
20の先頭エントリは、第二テーブル20へのメモリア
クセスを省略するために第二制御部60に予め設けおい
ても良い。
【0097】次に、第一制御部50は、読み出された第
一テーブルポインタの示す一段目第一テーブル11の先
頭エントリにアクセスする(図2の矢印b)。第一制御
部50は、32ビットの送信先アドレスを上位から8ビ
ットずつ4段に分割する。続いて、分割の結果得られる
各段の分割ビット列値のうち、最上段の分割ビット列値
を検索キーとする。そして、この検索キーにより、一段
目第一テーブル11のオフセットアドレスを検索する
(図2に矢印c)。
【0098】検索の結果、第一制御部50は、検索キー
の分割ビット列値と一致するオフセットアドレスを有す
るエントリから第二テーブルポインタを読み出す。さら
に、第一制御部50は、読み出した第二テーブルポイン
タを第二制御部60へ転送する。
【0099】ここで、図5を参照して、第二テーブルポ
インタを受け取った第二制御部60の動作例について説
明する。図5は、第二制御部60の第二テーブル20に
アクセス後の動作例を説明するためのフローチャートで
ある。図5に示すように、第二制御部60は、まず、第
二テーブルポインタの示す第二テーブル20のエントリ
へアクセスする(図2の矢印d)(図5のS1)。
【0100】次に、第二制御部60は、第二テーブル2
0のエントリの更新フラグが、更新を指示しているか否
かを判断する(図5のS2)。そして、更新フラグが更
新を指示している場合に、第二制御部60は、内部変数
として保持しているホップポインタを、そのエントリの
有する新しいホップポインタに更新する(図5のS
3)。
【0101】また、更新フラグが更新を指示していない
場合、または、ホップポインタ更新後、第二制御部60
は、そのエントリの継続/終了フラグが、継続を指示し
ているか否かを判断する(図5のS4)。そして、継続
/終了フラグが、終了を指示している場合、第二制御部
60は、その段階で内部変数として保持しているホップ
ポインタを、次の転送先を示すホップポインタとして出
力する。
【0102】また、そのエントリの継続/終了フラグが
検索継続を指示している場合、第二制御部60は、続い
て、分割ビット列の先頭ビット値が「0」であるか
「1」であるかを判断する。ここでは、二段目の分割ビ
ット列の先頭ビットであるBit(24)の値を判断す
る。(図5のS5)。なお、三段目の場合にはBit
(15)、四段目の場合にはBit(7)の値をそれぞ
れ判断する。そして、Bit(24)の値が「0」であ
る場合、第二制御部60は、そのエントリから、0ビッ
ト用第一テーブルポインタを読み出す(図5のS6)。
またBit(24)の値が「1」である場合、第二制御
部60は、そのエントリから、1ビット用第一テーブル
ポインタを読み出す(図5のS9)。
【0103】次に、第二制御部60は、そのエントリの
テーブル種類フラグにより、読み出した第一テーブルポ
インタが示す第一テーブルが、単独第一テーブルか否か
を判断する(図5のS7又はS10)。そして、単独第
一テーブルでない場合には、第二制御部60は、その第
一テーブルポインタを第一制御部50へ転送する(図5
のS12)
【0104】また、テーブル種類フラグが単独第一テー
ブルである場合には、後述する第二実施形態にしめすよ
うに、第二制御部60は、そのエントリのフィールドか
らプレフィックス長を読み出す。そして、その段の分割
ビット列値の上位からプレフィックス長分のビット列値
部分が、単独第一テーブルに対応する登録アドレスの分
割ビット列値と一致するか否かを判断する(図5のS8
又はS11)。そして、一致した場合、第二制御部60
は、その第一テーブルポインタを第一制御部50へ転送
する(図5のS12)。なお、一致しなかった場合、第
二制御部60は、検索失敗として、検索を終了する。
【0105】第二制御部60から再び第一テーブルポイ
ンタが転送された場合、第一制御部50は、第一テーブ
ルポインタの示す二段目の第一テーブルの先頭エントリ
へアクセスする(図2の矢印e)。そして、一段目の場
合と同様にして、送信先アドレスの二段目に対応する分
割ビット列値をキーとして二段目第一テーブル12を検
索する(図2の矢印f)。そして、その分割ビット列値
と一致するオフセットアドレスのエントリから第二テー
ブルポインタを繰返し読み出し、かつ、当該第二テーブ
ルポインタを第二制御部60へ転送する。
【0106】以下、検索が終了するまで、第二制御部6
0により第二テーブル20へアクセスし(図2の矢印
g)、さらに、第二テーブル20のエントリの第一テー
ブルポインタの示す三段目第一テーブル13へアクセス
し(図2の矢印h)、送信先アドレスの三段目に対応す
る分割ビット列値と一致するオフセットアドレスを検索
し(図2の矢印i)、続いて、そのオフセットアドレス
のエントリの第二テーブルポインタの示す第二テーブル
20のエントリへアクセスする(図2の矢印j)。
【0107】そして、三段目第一テーブル13を検索し
ても検索が終了しない場合には、さらに、第二テーブル
20のエントリにおいて第一テーブルポインタの示す四
段目第一テーブル14へアクセスする(図2の矢印
k)。そして、送信先アドレスの四段目に対応する分割
ビット列値と一致するオフセットアドレスを検索し(図
2の矢印l)、続いて、そのオフセットアドレスのエン
トリの第二テーブルポインタの示す第二テーブル20の
エントリへアクセスする(図2の矢印m)。さらに、最
終的に、第二テーブルポインタの示す第二テーブルのエ
ントリの継続/終了フラグが検索終了を指示している場
合に、第二制御部60は、当該エントリのホップポイン
タを読み出し、当該ホップポインタを次の転送先として
出力する(図2の矢印n)。以上のようにして、次の転
送先を示すホップポインタを検索することができる。
【0108】次に、図6を参照して、更新フラグ用フィ
ールド21の更新フラグの指示による、ホップポインタ
の更新について詳細に説明する。ここでは、従来のバイ
ナリ・ツリー検索法の説明の際に用いた図13に示した
登録されたP1〜P8の各IPアドレスにより構成され
たツリー構造と同一の構成例を用いる。
【0109】そして、図6では、IPアドレスを2ビッ
トずつに分割した例について説明する。すなわち、一段
目第一テーブルは、1及び2ビット目に対応し、二段目
第一テーブルは3及び4ビット目に対応し、三段目第一
テーブルは5及び6ビット目に対応し、さらに、四段目
第一テーブルは、7及び8ビット目に対応するものとす
る。
【0110】そして、ここでは、P8のIPアドレスを
検索する場合の、途中のホップポインタの変遷について
説明する。まず、第二テーブルの先頭エントリに、初期
のホップポインタを設定しておく。また、一段目第一テ
ーブルで検索した第二テーブルポインタの示す第二テー
ブルのエントリに、更新を指示する更新フラグととも
に、新たなホップポインタとして、P6のIPアドレス
を示すホップポインタを設定しておく。また、二段目第
一テーブルで検索した第二テーブルポインタの示す第二
テーブルのエントリに、更新を指示する更新フラグとと
もに、新たなホップポインタとして、P7のIPアドレ
スを示すホップポインタを設定しておく。
【0111】また、三段目第一テーブルで検索した第二
テーブルポインタの示す第二テーブルのエントリに、更
新を指示する更新フラグとともに、新たなホップポイン
タとして、P8のIPアドレスを示すホップポインタを
設定しておく。このように、第二テーブルのエントリに
ホップポインタを設定しておくことにより、ホップポイ
ンタが、初期設定から、P1、P6及びP7を示すホッ
プポインタに順次に更新されながら、最終的にP8のホ
ップポインタが検索される。
【0112】一方、例えば、図6に示すP6のIPアド
レスが登録されていない場合は、その段でホップポイン
タを更新する必要が無い。このため、二段目第一テーブ
ルで検索した第二テーブルポインタの示す第二テーブル
のエントリに、更新不指示の更新フラグを設定してお
き、ホップポインタを空欄(NUL)としておく。この
場合、ホップポインタは、P6を飛ばして、初期設置か
ら、P1、P7及びP8と順次に更新されることにな
る。
【0113】(検索テーブルの変更)本発明において
は、第一テーブルのエントリには、原則、第二テーブル
ポインタだけが設定されている。このため、検索テーブ
ルの登録アドレスを変更するにあたっては、第二テーブ
ルのエントリで第一テーブルポインタ及びホップポイン
タを変更するとともに、第一テーブルのエントリにおい
ては、第二テーブルポインタのみを変更するだけで良
い。したがって、ホップポインタなどの転送先に関する
実際の情報の変更は、第二テーブルでのみ行えば済むの
で、登録アドレスの変更を容易に行うことができる。
【0114】ここで、図7及び図8を参照して、検索テ
ーブルの変更(追加、更新、削除を含む。)動作の一例
として、32ビットのIPアドレスを8ビットずつ四つ
の分割ビット列に分割した場合の本発明によるIPアド
レスの登録方法について説明する。
【0115】図7及び図8は、IPアドレスの追加登録
方法を説明するためのフローチャートである。図7で
は、登録しようとするIPアドレスのプレフィックス長
が8ビット以下の場合である場合に、IPアドレスを登
録する手順を示している。この場合には、第二テーブル
と一段目第一テーブルとに対してのみ、登録することと
なる。すなわち、登録にあたっては、まず、デフォルト
の第二テーブルを検索する(図7のS1)。ここでは、
第二テーブルの先頭エントリへアクセスする。
【0116】次に、第二テーブルにおいて、IPアドレ
スに対応する第一テーブルを示す第一テーブルポインタ
が登録済みか否かを判断する(図7のS21)。ここで
は、この先頭エントリに、登録しようとするIPアドレ
スの先頭ビット値に対応する0ビット又は1ビット用第
一テーブルポインタが設定されているか否かを判断す
る。例えば、登録しようとするIPアドレスが、プレフ
ィックス長「1」の「8.0.0.0」である場合につ
いて説明する。この場合、先頭ビット値は「1」である
ので、1ビット用第一テーブルポインタ用フィールドの
内容を確認する。
【0117】そして、先頭エントリに該当する第一テー
ブルポインタが設定されている場合には、そのポインタ
の示す一段目第一テーブルへアクセスする(図7のS2
2)。例えば、1ビット用第一テーブルポインタ用フィ
ールドに第一テーブルポインタが設定されいる場合に
は、そのポインタの示す1ビット用第一テーブルへアク
セスする。
【0118】一方、先頭エントリに該当する第一テーブ
ルポインタが未設定(NUL)の場合には、第二テーブ
ルに、新規の第一テーブルを示す第一テーブルポインタ
を設定する(図7のS23)。ここでは、第二テーブル
の先頭エントリの1ビット用テーブルポインタ用フィー
ルドに、未だ使われていない新規の1ビット用第一テー
ブルを示す第一テーブルポインタを設定する。そして、
新規の第一テーブルポインタの示す一段目第一テーブル
へアクセスする(図7のS24)。
【0119】次に、第一テーブルで登録し得る範囲を決
定する(図7のS3)。この第一テーブルは、図7のS
22のステップで第二テーブルの先頭エントリの第一テ
ーブルポインタに従ってアクセスした第一テーブル、又
は、図7のS24のステップで、第二テーブルの先頭エ
ントリに新たに設定した第一テーブルポインタに従って
アクセスした新たな第一テーブルである。
【0120】そして、例えば、登録しようとするIPア
ドレスが、プレフィックス長「1」の「8.0.0.
0」である場合について説明する。この場合、成就した
従来の拡散方の場合と同様に、エントリアドレスのビッ
ト列うち、1ビット目が「1」である上位8ビットの全
ての分割ビット列が登録し得る範囲となる。すなわち、
「128(=1000 0000).0.0.0」〜
「255(=1111 1111)」の各エントリが登
録し得る範囲となる。
【0121】次に、登録し得る範囲に対して、更新制御
を行う(図7のS4)。具体的には、図7のS3のステ
ップにおいて決定した登録し得る範囲内のエントリに、
既に登録済みのIPアドレスに対応する第二テーブルポ
インタが無い場合には、新しいIPアドレスに対応する
第二テーブルポインタを、その範囲内の各エントリに設
定する。なお、新たに設定する第二テーブルポインタ
は、第二テーブルの未使用(NUL)であったエントリ
を示すものを選ぶ。そして、その選択されたエントリ
に、その登録IPアドレスのホップポインタを設定し、
登録を終了する。
【0122】また、その範囲内に、既に登録済みのIP
アドレスがある場合には、まず、登録済みのIPアドレ
スのプレフィックス長と新たに登録しようとするIPア
ドレスのプレフィックス長とを比較する。そして、登録
済みのプレフィックス長が新たなプレフィックス長以上
である場合には、登録済みのままとして、登録を終了す
る。
【0123】一方、これに対して、登録済みのプレフィ
ックス長が新たなプレフィックス長よりも短い場合に
は、その範囲のエントリの内容を、新しく登録するIP
アドレスに対応する第二テーブルポインタに更新する。
なお、更新した第二テーブルポインタとしては、第二テ
ーブルの未使用(NUL)であったエントリを示すもの
を選ぶ。そして、その選択されたエントリに、その登録
IPアドレスのホップポインタを設定し、登録を終了す
る。
【0124】また、図8では、登録しようとするIPア
ドレスのプレフィックス長が32ビット中、8ビットよ
り長く、16ビット以下の場合である場合に、IPアド
レスを登録する手順を示している。この場合には、第二
テーブル、一段目及び二段目第一テーブルに対して登録
することとなる。この場合は、図7のS3のステップに
至るまでの処理は、上述した処理と同様である。そし
て、図7のS3のステップにおいて、以下の処理行う。
【0125】まず、登録済みの第二テーブルポインタの
有無を確認する(図8のS1)。そして、登録済みの第
二テーブルポインタがある場合には、そのポインタの示
す第二テーブルのエントリへアクセスする(図8のS
2)。さらに、図7の破線Aで囲んだステップの処理を
行う(図8のS3)。
【0126】一方、登録済の第二テーブルポインタが無
い場合には、新規の第二テーブルポインタを設定する
(図8のS4)。続いて、新規に設定された第二テーブ
ルポインタの示す第二テーブルのエントリの内容を設定
する(図8のS5)。
【0127】次に、図7のS3のステップと同様にし
て、第一テーブルで登録し得る範囲を決定する(図8の
S6)。続いて、登録し得る範囲に対して、図7のS4
のステップと同様にして、更新登録を行い(図8のS
7)、登録を終了する。
【0128】なお、登録するIPアドレスのプレフィッ
クス長が16ビットより長く24ビット以下の場合や、
24ビットよりも長く32ビット以下の場合も、同様に
して、エントリの設定を行うことができる。また、上述
した実施形態では、IPアドレスの変更として追加登録
の例について説明したが、登録アドレスの更新や削除に
ついても同様に、第一テーブルにおいては、原則、第二
テーブルポインタの変更だけで行うことができる。
【0129】このように、各第一テーブルの該当エント
リにおいては、第二テーブルポインタのみを変更すれば
良く、ホップポインタなどの転送先に関する情報の変更
は、第二テーブルでのみ行えば済む。したがって、本発
明によれば、登録アドレスの変更を容易に行うことがで
きる。
【0130】[第二実施形態]一般に、送信先アドレス
に割り当てられたビット列の長さに対して、登録アドレ
スの数が少ない場合には、一つの第一テーブルに登録さ
れるエントリ数が少なくなる。この場合、一つの第一テ
ーブルあたりの登録エントリ数が一つだけとなる場合が
少なからず発生する。このような場合、たった一つの登
録エントリのために、分割ビット列分の全エントリを有
する第一テーブルのメモリ領域を確保することは、メモ
リ容量の浪費となる。
【0131】そこで、本発明の第二実施形態では、メモ
リ容量を節約するために単独第一テーブルを設けた例に
ついて説明する。図9は、第二実施形態の転送先検索方
法を説明するための検索テーブルの概念構成図である。
図9に示すように、第二実施形態では、四段目第一テー
ブル140が、単独第一テーブルとなっている。
【0132】ここで、図10を参照して、通常の第一テ
ーブルと比較して、単独第一テーブルについて説明す
る。図10の(A)は、通常の第一テーブルのデータ構
成図である。また、図10の(B)は、単独第一テーブ
ルのデータ構成図である。
【0133】図10の(A)に示すように、通常に第一
テーブルは、複数のエントリからなり、登録アドレスの
分割ビット列値と一致するアドレスのエントリに、その
登録アドレスに対応する第二テーブルポインタがそれぞ
れ設定されている。図10の(A)に示す例では、エン
トリアドレスが(000 0001)の1番目のエント
リと、エントリアドレスが(111 1110)の12
6番目のエントリとに、それぞれ第二テーブルポインタ
が設定されている。
【0134】これに対して、図10の(B)に示すよう
に、単独第一テーブルには、エントリ一つ分だけのメモ
リ領域の記憶容量を有する。そして、このエントリに、
登録アドレスに対応した第二テーブルポインタを設定し
ている。このように、単独第一テーブル140を設けれ
ば、一つの第一テーブルあたりの登録エントリが一つだ
けの場合に、メモリ容量を節約することができる。な
お、単独第一テーブルの場合には、エントリアドレス
は、登録アドレスの分割ビット列と一致させる必要はな
い。
【0135】また、単独第一テーブル140を設けた場
合には、その単独第一テーブル140を示す第一テーブ
ルポインタが設定されている、第二テーブルのエントリ
(図9の矢印jで指し示されているエントリ)のテーブ
ル種類フラグが、単独第一テーブルである旨を示してい
る。さらに、そのエントリの0ビット用及び1ビット用
単独第一テーブルの登録アドレス及びそのプロフィック
ス長用フィールドには、単独第一テーブル140の単独
エントリに登録されている登録アドレスの分割ビット列
値とそのプロフィックス長とが設定されている。
【0136】そして、第二実施形態におけるホップポイ
ンタ検索処理は、図9の矢印jの処理までは、上述した
第一実施形態における処理と同一である。そして、図9
の矢印jで示す第二テーブルのエントリにおいて、テー
ブル種類フラグが単独第一テーブル140であることを
示しているので、以下の処理行う。
【0137】すなわち、図5のS8又はS11のステッ
プのように、第二制御部60(図1参照。)は、そのエ
ントリのフィールドからプレフィックス長を読み出す。
そして、その段の分割ビット列値の上位からプレフィッ
クス長分のビット列値部分が、単独第一テーブルに対応
する登録アドレスの分割ビット列値と一致するか否かを
判断する(図5のS8又はS11)。
【0138】一致した場合、第二制御部60は、第一テ
ーブルポインタを第一制御部50へ転送する(図5のS
12)。そして、第一制御部50は、第一テーブルポイ
ンタの示す四段目第一テーブル(単独第一テーブル)1
40へアクセスする(図9の矢印k)。さらに、単独第
一テーブル140のエントリの第二テーブルポインタの
示す、第二テーブルのエントリへアクセスする(図9の
矢印m)。続いて、その第二テーブルのエントリのホッ
プポインタを読み出す(図9の矢印n)。なお、一致し
なかった場合、第二制御部60は、検索失敗として、検
索を終了する。
【0139】[第三実施形態]次に、図11を参照し
て、本発明の第三実施形態について説明する。図11
は、第三実施形態の転送先検索方法を説明するための検
索テーブルの概念構成図である。上述した第二実施形態
では、単独第一テーブル140(図9参照。)を設けた
例について説明したが、第三実施形態では、その単独第
一テーブル140を省略する。そして、第二テーブル2
0aにおいて、当該単独第一テーブルを示す第一テーブ
ルポインタの代わりに、その単独第一テーブルのエント
リに設定されるべき第二テーブルポインタを設定する。
【0140】このようにすれば、単独第一テーブルを省
略することができるので、メモリ容量の一層の節約を図
ることができる。また、省略された第一テーブルへのア
クセス回数分だけアクセス回数を減らすことができるの
で、検索の迅速化を図ることができる。
【0141】[第四実施形態]次に、図12を参照し
て、本発明の第四実施形態について説明する。図12
は、第四実施形態の転送先検索方法を説明するための検
索テーブルの概念構成図である。第四実施形態では、第
一テーブルのエントリは、ホップポインタを更新する必
要がある場合にのみ、第二テーブルポインタを有し、更
新不要の場合には、第二テーブルポインタの代わりに、
登録アドレスのビット列値に従って次にアクセスする次
段の第一テーブルを示す第一テーブルポインタを有す
る。
【0142】ここでは、二段目第一テーブ12ルのエン
トリが、第二テーブルポインタの代わりに第一テーブル
ポインタを有し、他段の第一テーブル11、13及び1
4のエントリは、第二テーブルポインタを有している。
そして、ホップポインタを検索するにあたり、二段目第
一テーブル12から三段目第一テーブル13へ、第二テ
ーブルを経由せずに、直接アクセスする(図12の矢印
q)。
【0143】このように、更新フラグが更新不指示の場
合に、第二テーブルポインタの代わりに、次段の第一テ
ーブルを示すテーブルポインタを格納しておけば、第二
テーブルにアクセスせずに、次段の第一テーブルへアク
セスすることができる。その結果、検索中のアクセス回
数を減らすことができるので、検索の高速化を図ること
ができるとともに、そのテーブルポインタの分だけ、第
二テーブルのエントリ数を減らすことができるので、第
二テーブルのメモリ容量の節約を図ることもできる。
【0144】上述した実施の形態においては、本発明を
特定の条件で構成した例について説明したが、本発明
は、種々の変更を行うことができる。例えば、上述した
説明ではIPv4(ビット長:32ビット)を例にして
話しているが、IPv6(ビット長:128ビット)の
場合でも同様な効果が得られる。IPv4及びIPv6
混在の場合でも、IPv4のビット列の前に96ビット
のビット列(但し、IPv6では使用されていないビッ
ト列)を追加して、IPv4をIPv6の一部分するこ
とで対応可能である。なお、IPv6の場合、送信先ア
ドレスの長さが128ビットなので、8ビットの第一テ
ーブルの場合、最大第16段の構成となる。
【0145】さらに、第二テーブルエントリにIPv4
単独、IPv6単独及びIPv4/IPv6共用等のフ
ィールドを追加し、第二テーブルのエントリそのものを
IPv4及びIPv6で共用することもできる。その場
合、第二テーブルのフィールドにIPv4/IPv6の
識別フラグ用フィールドを追加するとよい。そして、識
別フラグの値は、IPv4用、IPv6用、IPv4及
びIPv6両方用の三つの値をのいずれかとすることが
望ましい。
【0146】また、上述した実施形態では、送信先アド
レスのビット列を8ビットずつに分割した例について説
明したが、この発明では、各分割ビット列のビット数
は、8ビットに限定されず、任意好適なビット値とする
ことができる。また、上述した実施形態では、各段の分
割ビット列のビット数を均一としたが、この発明では、
段によって分割ビット数が異なっても良い。
【0147】なお、上述した実施形態において図5に示
すフローチャートでは、第二テーブルのエントリすべて
を読込んでいるが、Bit(X)の値は一段目〜四段目
の各段の検索において、それぞれ対応する送信先アドレ
スのビットより判明するので、第二テーブルのエントリ
を読み出す場合に、必要な部分のみを読み出して実行す
ることも可能である。
【0148】
【発明の効果】以上、詳細に説明したように、本発明に
よれば、階層化された第一テーブルの他に、インデック
スとしての第二テーブルを設け、第一テーブルと第二テ
ーブルとを交互に検索する。そして、次に転送先を示す
ホップポインタを第二テーブルにのみ格納し、第一テー
ブルは、第二テーブルポインタのみをエントリ内容とす
る。
【0149】これにより、個々の第一テーブルを構成す
るメモリ容量を、従来の拡張法における個々の検索テー
ブルのメモリ容量よりも少なくして、検索テーブル全体
のメモリ容量を節約することができる。
【0150】また、本発明では、インデックスとしての
第二テーブルにのみホップポインタを設けている。この
ため、登録アドレスの変更にあたっては、膨大な第一テ
ーブルの該当エントリでは、第二テーブルポインタのみ
を変更すれば良く、ホップポインタなどの転送先に関す
る情報の変更は、第二テーブルでのみ行えば済む。した
がって、本発明によれば、登録アドレスの変更を容易に
行うことができる。
【図面の簡単な説明】
【図1】第一実施形態の転送先検索装置の構成を説明す
るための機能ブロック図である。
【図2】第一実施形態の転送先検索方法を説明するため
の検索テーブルの概念構成図である。
【図3】第一テーブルのエントリ例を示すデータ構成図
である。
【図4】第一実施形態における第二テーブルのエントリ
の構成を示すデータ構成図である。
【図5】第二テーブルにアクセス時の動作例を説明する
ためのフローチャートである。
【図6】ホップポインタの更新の有無を説明するための
概念図である。
【図7】登録送信先アドレスの変更方法を説明するため
のフローチャートである。
【図8】登録送信先アドレスの変更方法を説明するため
のフローチャートである。
【図9】第二実施形態の転送先検索方法を説明するため
の検索テーブルの概念構成図である。
【図10】(A)は、通常の第一テーブルのデータ構成
図であり、(B)は、単独第一テーブルのデータ構成図
である。
【図11】第三実施形態の転送先検索方法を説明するた
めの検索テーブルの概念構成図である。
【図12】第四実施形態の転送先検索方法を説明するた
めの検索テーブルの概念構成図である。
【図13】従来のバイナリ・ツリー検索法を説明するた
めの概念図である。
【図14】従来のラディックス・ツリー検索法を説明す
るための概念図である。
【図15】従来の拡張法を説明するための概念図であ
る。
【図16】従来の拡張法における更新例を説明するため
のフローチャートである。
【図17】従来の拡張法における更新例を説明するため
のフローチャートである。
【符号の説明】
10 第一テーブル群 11、12、13、14、110、140 第一テーブ
ル 20、20a、20b 第二テーブル 30 第一記憶部 40 第二記憶部 50 第一制御部 60 第二制御部
フロントページの続き (56)参考文献 特開 平10−257066(JP,A) 特開 平11−66096(JP,A) 特開 平8−32613(JP,A) 播口陽一,NETWORK TECH NOLOGY(11)最近の経路検索技術 修正2進木/B木による経路検索,U NIX MAGAZINE,株式会社ア スキー,1998年10月 1日,第13巻,第 10号,第64−71頁,001,CSND 199801248006 1998年電子情報通信学会通信ソサイエ ティ大会 B−7−123,1998年 9月 7日 1998年電子情報通信学会通信ソサイエ ティ大会 B−7−124,1998年 9月 7日 V.SRINIVASAN and G.VARGHESE,Fast Ad dress Lookups Usin g Controlled Prefi x Expansion,ACM Tr ansactions on Comp uter Systems,米国,AC M,Vol.17,No.1,Pages 1−40 (58)調査した分野(Int.Cl.7,DB名) H04L 12/56 H04L 12/46 G06F 17/30

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】 転送されてきたデータ信号の次の転送先
    を決定するために、当該データ信号の送信先アドレスを
    検索キーとして、検索テーブルから、当該データ信号の
    転送先の登録アドレスを示すホップポインタを検索する
    転送先検索方法において、 前記検索テーブルを、第一テーブル群と第二テーブルと
    により構成しておき、 前記第一テーブル群は、前記送信先アドレスに割当てら
    れたビット数分のビット列を上位から一定ビットずつ複
    数段に分割して得られた各段の分割ビット列にそれぞれ
    対応する複数の第一テーブルからなり、 各前記第一テーブルは、当該第一テーブルの対応する段
    の分割ビット列で表される各分割ビット列値を、当該第
    一テーブルの各エントリのオフセットアドレスとしてそ
    れぞれ有するとともに、 前記オフセットアドレスが、登録アドレスのビット列値
    のうち当該段に対応する分割ビット列値と一致する場合
    に、当該第一テーブルは、当該オフセットアドレスのエ
    ントリ内容として、次にアクセスする前記第二テーブル
    のエントリを示す第二テーブルポインタを有し、かつ、 前記登録アドレスの有効ビット列の最下位ビットが前記
    分割ビット列の途中までしかない場合に、当該第一テー
    ブルは、当該有効ビット列のうちの当該分割ビット列に
    相当する有効ビット列部分を共通して含む各オフセット
    アドレスのエントリ内容として、互いに共通の前記第二
    テーブルポインタを有し、 前記第二テーブルは、エントリ内容として、検索継続又
    は終了を指示する継続/終了フラグ用フィールド、ホッ
    プポインタ用フィールド、及び、次にアクセスする第一
    テーブルを示す第一テーブルポインタ用フィールドを有
    し、 前記ホップポインタを検索するにあたり、 前記送信先アドレスのビット列値を上位から前記一定ビ
    ットずつ複数段に分割して得られる各段の分割ビット列
    値のうち最上段の分割ビット列値をキーとして、前記第
    一テーブル群のうち最上段の第一テーブルを検索し、当
    該分割ビット列値と一致するオフセットアドレスのエン
    トリから前記第二テーブルポインタを読み出し、 前記第二テーブルポインタの示す前記第二テーブルのエ
    ントリの継続/終了フラグが検索継続を指示している場
    合には、前記第一テーブルポインタの示す次段の第一テ
    ーブルを、前記送信先アドレスの当該段の分割ビット列
    値をキーとして検索し、当該分割ビット列値と一致する
    オフセットアドレスのエントリから前記第二テーブルポ
    インタを繰返し読み出し、 前記第二テーブルポインタの示す第二テーブルのエント
    リの継続/終了フラグが検索終了を指示している場合に
    は、当該エントリのホップポインタを読み出して検索を
    終了することを特徴とする転送先検索方法。
  2. 【請求項2】 前記第二テーブルの各エントリは、ホッ
    プポインタ更新の有無を指示する更新フラグ用フィール
    ドを有し、 前記ホップポインタを検索するにあたり、 初期値の前記ホップポインタを設定して、内部変数とし
    て保持し、 前記第二テーブルポインタの示す前記第二テーブルのエ
    ントリの前記更新フラグが更新を指示している場合に、
    前記内部変数として保持されてホップポインタを、当該
    エントリから読み出したホップポインタに更新すること
    を特徴とする請求項1記載の転送先検索方法。
  3. 【請求項3】 前記第一テーブルのエントリは、前記ホ
    ップポインタを更新する必要がある場合にのみ、前記第
    二テーブルポインタを有し、更新不要の場合には、前記
    第二テーブルポインタの代わりに、前記登録アドレスの
    ビット列値に従って次にアクセスする次段の第一テーブ
    ルを示す第一テーブルポインタを有し、 前記ホップポインタを検索するにあたり、前記第一テー
    ブルのエントリに第一テーブルポインタが設定されてい
    る場合には、前記第二テーブルを経由せずに、前記テー
    ブルポインタの示す第一テーブルへ直接アクセスするこ
    とを特徴とする請求項1又は2記載の転送先検索方法。
  4. 【請求項4】 前記第一テーブルを、0ビット用第一テ
    ーブルと1ビット用第一テーブルとに分けて構成してお
    き、 前記0ビット用第一テーブルは、前記第一テーブルの対
    応する前記分割ビット列の先頭ビットの値が「0」であ
    る場合の、当該分割ビット列から当該先頭ビットを除い
    た残存分割ビット列に対応し、 前記1ビット用第一テーブルは、前記第一テーブルの対
    応する前記分割ビット列の先頭ビットの値が「1」であ
    る場合の、当該分割ビット列から当該先頭ビットを除い
    た残存部分ビット列に対応し、 前記第二テーブルは、各エントリに、前記0ビット用第
    一テーブルを示す0ビット用第一テーブルポインタ用フ
    ィールドと、前記1ビット用第一テーブルを示す1ビッ
    ト用第一テーブルポインタ用フィールドとを有し、 前記ホップポインタを検索するにあたり、 分割ビット列の先頭ビット値が「0」であるときに、前
    記0ビット用第一テーブルポインタの示す前記0ビット
    用第一テーブルにアクセスし、 分割ビット列の先頭ビット値が「1」であるときに、前
    記1ビット用第一テーブルポインタの示す前記0ビット
    用第一テーブルにアクセスすることを特徴とする請求項
    1、2又は3記載の転送先検索方法。
  5. 【請求項5】 前記第一テーブルが、前記登録アドレス
    に対応するエントリを一つだけ有する場合に、当該第一
    テーブルを当該エントリ一つ分だけのメモリ領域の記憶
    容量を有する単独第一テーブルとし、 前記第二テーブルの各前記エントリは、当該エントリの
    前記第一テーブルポインタの示す前記第一テーブルの種
    類が前記単独第一テーブルであるか否かを示すテーブル
    種類フラグ用フィールドを有し、 前記ホップポインタを検索するにあたり、 前記第二テーブルポインタの示す前記第二テーブルのエ
    ントリの前記テーブル種類フラグが、当該エントリの第
    一テーブルポインタが示す第一テーブルが当該単独第一
    テーブルであることを示している場合に、当該単独第一
    テーブルに対応する登録アドレスの分割ビット列値と、
    前記送信先アドレスの有効ビット列のうち当該分割ビッ
    ト列に相当する有効ビット列部分とを照合し、 当該分割ビット列値と当該有効ビット列部分とが不一致
    の場合に、検索を終了し、 当該分割ビット列値と当該有効ビット列部分とが一致し
    た場合に、当該エントリの第二テーブルポインタの示す
    第二テーブルのエントリへアクセスすることを特徴とす
    る請求項1〜4のいずれかに記載の転送先検索方法。
  6. 【請求項6】 前記単独第一テーブルを省略し、 前記第二テーブルにおいて、当該単独第一テーブルを示
    す第一テーブルポインタの代わりに、前記単独第一テー
    ブルのエントリに設定されるべき第二テーブルポインタ
    を設定することを特徴とする請求項5記載の転送先検索
    方法。
  7. 【請求項7】 前記第二テーブルの先頭エントリに、最
    上段の前記第一テーブルの先頭位置アドレスを示す先頭
    ポインタを格納しておき、 前記ホップポインタの検索を開始するにあたり、 前記第二テーブルの先頭エントリにアクセスし、当該先
    頭エントリの第一ポインタの示す第一テーブルにアクセ
    スすることを特徴とする請求項1〜6のいずれかに記載
    の転送先検索方法。
  8. 【請求項8】 前記検索テーブルにおいて前記登録アド
    レスを変更するにあたり、 前記第二テーブルのエントリにおいて、前記第一テーブ
    ルポインタ及び前記ホップポインタを変更し、 前記第一テーブルのエントリにおいて、前記第二テーブ
    ルポインタを変更することを特徴とする請求項1〜7の
    いずれかに記載の転送先検索方法。
  9. 【請求項9】 ルータに転送されてきたデータ信号の次
    の転送先を決定するために、当該データ信号の送信先ア
    ドレスを検索キーとして、検索テーブルから、当該デー
    タ信号の転送先の登録アドレスを示すホップポインタを
    検索する転送先検索装置において、 前記検索テーブルを構成する第一テーブル群を格納した
    第一記憶部と、 前記検索テーブルを構成する第二テーブルを格納した第
    二記憶部と、 前記第一テーブル群へのアクセスを制御する第一制御部
    と、 前記第二テーブルへのアクセスを制御する第二制御部と
    を備え、 前記第一テーブル群は、前記送信先アドレスに割当てら
    れたビット数分のビット列を上位から一定ビットずつ複
    数段に分割して得られた各段の分割ビット列にそれぞれ
    対応する複数の第一テーブルからなり、 各前記第一テーブルは、当該第一テーブルの対応する段
    の分割ビット列で表される各分割ビット列値を、当該第
    一テーブルの各エントリのオフセットアドレスとしてそ
    れぞれ有するとともに、 前記オフセットアドレスが、登録アドレスのビット列値
    のうち当該段に対応する分割ビット列値と一致する場合
    に、当該第一テーブルは、当該オフセットアドレスのエ
    ントリ内容として、次にアクセスする前記第二テーブル
    のエントリを示す第二テーブルポインタを有し、かつ、 前記登録アドレスの有効ビット列の最下位ビットが前記
    分割ビット列の途中までしかない場合に、当該第一テー
    ブルは、当該有効ビット列のうちの当該分割ビット列に
    相当する有効ビット列部分を共通して含む各オフセット
    アドレスのエントリ内容として、互いに共通の前記第二
    テーブルポインタを有し、 前記第二テーブルは、エントリ内容として、検索継続又
    は終了を指示する継続/終了フラグ用フィールド、前記
    ホップポインタ用フィールド、及び、次にアクセスする
    前記第一テーブルを示す第一テーブルポインタ用フィー
    ルドを有し、 前記第一制御部は、前記送信先アドレスを上位から前記
    一定ビットずつ複数段に分割して得られる各段の分割ビ
    ット列値のうち最上段の分割ビット列値をキーとして、
    前記第一テーブル群のうち最上段の前記第一テーブルを
    検索し、当該分割ビット列値と一致する前記オフセット
    アドレスのエントリから前記第二テーブルポインタを読
    み出し、かつ、当該第二テーブルポインタを前記第二制
    御部へ転送し、 前記第二制御部は、前記第二テーブルポインタの示す前
    記第二テーブルのエントリの前記継続/終了フラグが検
    索継続を指示している場合に、前記第一テーブルポイン
    タを読み出し、かつ、当該第一テーブルポインタを前記
    第一制御部へ転送し、 前記第一制御部は、前記第一テーブルポインタの示す次
    段の前記第一テーブルを、前記送信先アドレスの当該段
    の分割ビット列値をキーとして検索し、当該分割ビット
    列値と一致する前記オフセットアドレスのエントリから
    前記第二テーブルポインタを繰返し読み出し、かつ、当
    該第二テーブルポインタを前記第二制御部へ転送し、 前記第二制御部は、前記第二テーブルポインタの示す前
    記第二テーブルのエントリの前記継続/終了フラグが検
    索終了を指示している場合には、当該エントリの前記ホ
    ップポインタを読み出し、当該ホップポインタを次の転
    送先として出力することを特徴とする転送先検索装置。
  10. 【請求項10】 転送されてきたデータ信号の次の転送
    先を決定するために、当該データ信号の送信先アドレス
    を検索キーとして、当該データ信号の転送先の登録アド
    レスを示すホップポインタを検索するための検索テーブ
    ルの記録された、コンピュータ読み取り可能な記録媒体
    であって、 前記検索テーブルは、第一テーブル群と第二テーブルと
    により構成され、 前記第一テーブル群は、前記送信先アドレスに割当てら
    れたビット数分のビット列を上位から一定ビットずつ複
    数段に分割して得られた各段の分割ビット列にそれぞれ
    対応する複数の第一テーブルからなり、 各前記第一テーブルは、当該第一テーブルの対応する段
    の分割ビット列で表される各分割ビット列値を、当該第
    一テーブルの各エントリのオフセットアドレスとしてそ
    れぞれ有するとともに、 前記オフセットアドレスが、登録アドレスのビット列値
    のうち当該段に対応する分割ビット列値と一致する場合
    に、当該第一テーブルは、当該オフセットアドレスのエ
    ントリ内容として、次にアクセスする前記第二テーブル
    のエントリを示す第二テーブルポインタを有し、かつ、 前記登録アドレスの有効ビット列の最下位ビットが前記
    分割ビット列の途中までしかない場合に、当該第一テー
    ブルは、当該有効ビット列のうちの当該分割ビット列に
    相当する有効ビット列部分を共通して含むに各オフセッ
    トアドレスのエントリ内容として、互いに共通の前記第
    二テーブルポインタを有し、 前記第二テーブルは、エントリ内容として、検索継続又
    は終了を指示する継続/終了フラグ用フィールド、前記
    ホップポインタ用フィールド、及び、次にアクセスする
    前記第一テーブルを示す第一テーブルポインタ用フィー
    ルドを有する検索テーブルが記録された記録媒体。
  11. 【請求項11】 転送されてきたデータ信号の次の転送
    先を決定するために、当該データ信号の送信先アドレス
    を検索キーとして、検索テーブルから、当該データ信号
    の転送先の登録アドレスを示すホップポインタを検索す
    る処理をコンピュータに実行させる検索プログラムが記
    録された、コンピュータ読み取り可能な記録媒体であっ
    て、 前記ホップポインタを検索するにあたり、 前記送信先アドレスを上位から前記一定ビットずつ複数
    段に分割して得られる各段の分割ビット列値のうち最上
    段の分割ビット列値をキーとして、前記第一テーブル群
    のうち最上段の前記第一テーブルを検索し、当該分割ビ
    ット列値と一致する前記オフセットアドレスのエントリ
    から前記第二テーブルポインタを読み出す処理と、 前記第二テーブルポインタの示す前記第二テーブルのエ
    ントリの前記継続/終了フラグが検索継続を指示してい
    る場合には、前記第一テーブルポインタの示す次段の前
    記第一テーブルを、前記送信先アドレスの当該段の分割
    ビット列値をキーとして検索し、当該分割ビット列値と
    一致する前記オフセットアドレスのエントリから前記第
    二テーブルポインタを繰返し読み出す処理と、 前記第二テーブルポインタの示す前記第二テーブルのエ
    ントリの前記継続/終了フラグが検索終了を指示してい
    る場合には、当該エントリの前記ホップポインタを読み
    出して検索を終了する処理とをコンピュータに実行させ
    る検索プログラムが記録された記録媒体。
JP11004199A 1999-04-16 1999-04-16 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体 Expired - Fee Related JP3250544B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP11004199A JP3250544B2 (ja) 1999-04-16 1999-04-16 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体
CA 2305475 CA2305475C (en) 1999-04-16 2000-04-14 Forwarding information retrieval technique
US09/549,707 US6618760B1 (en) 1999-04-16 2000-04-14 Forwarding information retrieval technique
EP20000107949 EP1045556A3 (en) 1999-04-16 2000-04-17 Forwarding information retrieval technique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11004199A JP3250544B2 (ja) 1999-04-16 1999-04-16 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体

Publications (2)

Publication Number Publication Date
JP2000307641A JP2000307641A (ja) 2000-11-02
JP3250544B2 true JP3250544B2 (ja) 2002-01-28

Family

ID=14525624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11004199A Expired - Fee Related JP3250544B2 (ja) 1999-04-16 1999-04-16 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体

Country Status (4)

Country Link
US (1) US6618760B1 (ja)
EP (1) EP1045556A3 (ja)
JP (1) JP3250544B2 (ja)
CA (1) CA2305475C (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099325B1 (en) * 2001-05-10 2006-08-29 Advanced Micro Devices, Inc. Alternately accessed parallel lookup tables for locating information in a packet switched network
US8532127B2 (en) 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
US20030099246A1 (en) * 2001-11-28 2003-05-29 Motorola, Inc. Method and apparatus for self-link assessing router
US7953094B1 (en) * 2002-02-06 2011-05-31 Juniper Networks, Inc. Systems and methods for order preserving data
FR2838590B1 (fr) * 2002-04-16 2005-12-30 St Microelectronics Sa Procede de routage pour un reseau de telecommunication et routeur pour la mise en oeuvre dudit procede
US8117333B1 (en) * 2002-05-22 2012-02-14 Juniper Networks, Inc. Systems and methods for distributed data forwarding
US7184437B1 (en) 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
JP4048861B2 (ja) 2002-07-23 2008-02-20 日本電気株式会社 アドレス検索装置
AU2003268754A1 (en) * 2002-10-03 2004-04-23 In4S Inc. Bit string check method and device
US7289508B1 (en) 2003-03-12 2007-10-30 Juniper Networks, Inc. Systems and methods for processing any-to-any transmissions
KR100537508B1 (ko) * 2003-04-10 2005-12-19 삼성전자주식회사 저항성 팁을 구비한 반도체 탐침 제조방법
US7586917B1 (en) 2003-09-30 2009-09-08 Juniper Networks, Inc. Systems and methods for re-ordering data in distributed data forwarding
US7359381B2 (en) * 2004-01-30 2008-04-15 Hewlett-Packard Development Company, L.P. Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association
US20050169169A1 (en) * 2004-01-30 2005-08-04 Srinivas Gadde Determination of an endpoint association from a transport address
US8090805B1 (en) * 2004-02-17 2012-01-03 Cisco Technology, Inc. System and method for performing cascaded lookups to forward packets
CN1954560B (zh) * 2004-03-31 2011-06-15 Ipt株式会社 固定长数据的检索装置及检索管理方法
US7889711B1 (en) 2005-07-29 2011-02-15 Juniper Networks, Inc. Filtering traffic based on associated forwarding equivalence classes
US7512080B1 (en) 2005-11-08 2009-03-31 Juniper Networks, Inc. Forwarding tree having multiple bit and intermediate bit pattern comparisons
JP5287071B2 (ja) * 2008-09-17 2013-09-11 株式会社リコー データベース管理システムおよびプログラム
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
WO2012131820A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 情報処理方法、プログラムが格納された非一時的なコンピュータ可読媒体及び情報処理装置
US8948174B2 (en) * 2011-06-29 2015-02-03 Juniper Networks, Inc. Variable-based forwarding path construction for packet processing within a network device
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US10348626B1 (en) * 2013-06-18 2019-07-09 Marvell Israel (M.I.S.L) Ltd. Efficient processing of linked lists using delta encoding
JP6073761B2 (ja) * 2013-08-27 2017-02-01 日本電信電話株式会社 検索装置および検索方法
US20160373405A1 (en) * 2015-06-16 2016-12-22 Amazon Technologies, Inc. Managing dynamic ip address assignments

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5323389A (en) 1992-08-14 1994-06-21 Fore Systems, Inc. ATM cell interface and method for dispatching an ATM cell
JP3059639B2 (ja) * 1994-07-14 2000-07-04 古河電気工業株式会社 経路選択情報の検索装置
JP3520709B2 (ja) * 1997-03-13 2004-04-19 三菱電機株式会社 ネットワークアドレス検索方式
US6011795A (en) * 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
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
JPH1166096A (ja) * 1997-08-25 1999-03-09 Nippon Telegr & Teleph Corp <Ntt> データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法
US6975631B1 (en) * 1998-06-19 2005-12-13 Juniper Networks, Inc. Network packet forwarding lookup with a reduced number of memory accesses
US6434144B1 (en) * 1998-07-06 2002-08-13 Aleksey Romanov Multi-level table lookup
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
1998年電子情報通信学会通信ソサイエティ大会 B−7−123,1998年 9月7日
1998年電子情報通信学会通信ソサイエティ大会 B−7−124,1998年 9月7日
V.SRINIVASAN and G.VARGHESE,Fast Address Lookups Using Controlled Prefix Expansion,ACM Transactions on Computer Systems,米国,ACM,Vol.17,No.1,Pages 1−40
播口陽一,NETWORK TECHNOLOGY(11)最近の経路検索技術 修正2進木/B木による経路検索,UNIX MAGAZINE,株式会社アスキー,1998年10月 1日,第13巻,第10号,第64−71頁,001,CSND199801248006

Also Published As

Publication number Publication date
EP1045556A2 (en) 2000-10-18
CA2305475C (en) 2004-11-30
US6618760B1 (en) 2003-09-09
JP2000307641A (ja) 2000-11-02
CA2305475A1 (en) 2000-10-16
EP1045556A3 (en) 2001-10-31

Similar Documents

Publication Publication Date Title
JP3250544B2 (ja) 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
EP1486040B1 (en) Vlan table management system for memory efficient lookups and inserts in hardware-based packet switches
US5586292A (en) Data processing method using record division storing scheme and apparatus therefor
US6611832B1 (en) Data structure for longest-matching prefix searching and updating method for search table data structures
US7219184B2 (en) Method and apparatus for longest prefix matching in processing a forwarding information database
US20040133590A1 (en) Tree data structure with range-specifying keys and associated methods and apparatuses
US6839703B2 (en) Information apparatus, table retrieval apparatus, table retrieval method, and recording medium
JP3570323B2 (ja) アドレスに関するプレフィクスの格納方法
US7054994B2 (en) Multiple-RAM CAM device and method therefor
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US6590898B1 (en) Method and apparatus for routing data packets
US20020184221A1 (en) Load balancing in IP address lookup
US7154892B2 (en) Method and apparatus for managing LPM-based CAM look-up table, and recording medium therefor
JP4048861B2 (ja) アドレス検索装置
KR20050066903A (ko) 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법
JP2002290447A (ja) アドレス検索方法、アドレス検索回路、およびアドレス検索プログラム
JP2000358064A (ja) ルーティングテーブル検索装置および検索法
US6490288B1 (en) Address memory structure and method for processing network node addresses in the Ethernet switch
JP2003500901A (ja) 最長一致プレフィックス・ルックアップ
JP3092524B2 (ja) ルーチングシステム
JPH10190744A (ja) 情報記憶装置
JPH07271667A (ja) 情報管理方式
JP2003198596A (ja) アドレステーブル管理方法およびアドレステーブル管理装置
JP2003198598A (ja) アドレステーブル管理方法およびアドレステーブル管理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071116

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees