JPH11341076A - ネットワ―ク中継装置及びネットワ―ク次転送先検索方法 - Google Patents

ネットワ―ク中継装置及びネットワ―ク次転送先検索方法

Info

Publication number
JPH11341076A
JPH11341076A JP31723598A JP31723598A JPH11341076A JP H11341076 A JPH11341076 A JP H11341076A JP 31723598 A JP31723598 A JP 31723598A JP 31723598 A JP31723598 A JP 31723598A JP H11341076 A JPH11341076 A JP H11341076A
Authority
JP
Japan
Prior art keywords
node
bit
search
route
nodes
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.)
Granted
Application number
JP31723598A
Other languages
English (en)
Other versions
JP3877883B2 (ja
Inventor
Kazuo Sukai
和雄 須貝
Takeshi Aimoto
毅 相本
Nobuhito Matsuyama
信仁 松山
Shinichi Akaha
真一 赤羽
Yoshito Sako
義人 左古
Noboru Tanabe
昇 田那邊
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH11341076A publication Critical patent/JPH11341076A/ja
Application granted granted Critical
Publication of JP3877883B2 publication Critical patent/JP3877883B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/48Routing tree calculation
    • 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/742Route cache; Operation thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】ルータ等のネットワーク中継装置において、パ
ケットを転送するための転送際の経路検索処理を高速に
実行する。 【解決手段】経路情報に基づいてネットワーク中継装置
に入ってきたパケットの宛先アドレスからパケットの転
送先アドレスを検索する際に、経路検索のためのデータ
構造を、受け取ったパケットの宛先アドレスの上位ビッ
トから1ビットずつ検査してゆく2分木検索のp(pは
2以上の整数)段分を一つの2のp乗分木にし、2分木
のp数段の検索を1段で行うにより、高速に経路を検索
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータネッ
トワークシステムにおけるルータ等のネットワーク中継
装置に関し、特にネットワーク中継装置に入ってきたパ
ケットの宛先アドレスからパケットの転送先アドレスを
高速に検索するのに適したネットワーク中継装置及びネ
ットワーク次転送先検索方法に関する。
【0002】
【従来の技術】ネットワークシステムにおいては、複数
のサブネットを接続するためにルータ等のネットワーク
中継装置が用いられる。ルータは接続されているサブネ
ットから受け取ったパケットの宛先アドレスを調べてパ
ケットの転送先を決定し、転送先のルータやホストが接
続されたサブネットに受け取ったパケットを転送する。
図1は複数のサブネットがルータによって接続された一
般的なネットワークシステムの構成を示す。
【0003】図1において、R1及びR2はルータ、S
N1はルータR1のポートP11に接続されたサブネッ
トワーク、SN2はルータR1のポートP12及びルー
タR2のポートP21に接続されたサブネットワーク、
H10及びH11はサブネットSN1に接続されたホス
ト、H20及びH21はサブネットSN2に接続された
ホスト、H30及びH31はサブネットSN3に接続さ
れたホストである。
【0004】ホストH10からホストH21にパケット
を送る場合、ルータR1はパケット内にヘッダ情報とし
て格納されている宛先アドレスDAを調べて、宛先のホ
ストH21がサブネットSN2上にあり、かつサブネッ
トSN2がルータR1に直接接続されていることを認識
する。そして、ルータR1はパケットをサブネットSN
2に接続されているポートP12に出力し、出力すると
きに次に転送するアドレス(次ホップアドレス)を宛先
ホスト自身(H21)とする。
【0005】また、ホストH10からホストH31にパ
ケットを送る場合、ルータR1はパケット内にヘッダ情
報として格納されている宛先アドレスDAを見て、宛先
のホストH31がサブネットSN3上にあり、かつサブ
ネットSN3がルータR1に直接には接続されておら
ず、ルータR2経由で接続されていることを認識する。
ルータR1はパケットをルータR2が接続されているサ
ブネットSN2に接続されているポートP21に出力
し、出力するときに次に転送するアドレス(次ホップア
ドレス)をルータR2とする。この場合、ルータR2は
パケットを受け取ると、ルータR1と同様に、宛先アド
レスDAを見てパケットをホストH31に転送する。
【0006】次に、ルータがパケットを受け取ったとき
に、次に転送するアドレス、及びパケットを出力するポ
ートを検索するときの検索仕様を図2を使用し説明す
る。TBLは経路検索テーブルであり、このテーブルは
人手で入力された構成定義情報、及びルータ間での接続
情報のやりとりにより得られた情報から作成される。
【0007】経路検索テーブルTBLは、サブネットワ
ークアドレスとサブネットワークマスク長の組を検索の
キーとして、出力ポート、次ホップアドレス、及びサブ
ネットワークが直接接続されているか否かの情報(以
後、次ホップ情報と呼ぶ)を検索するものである。
【0008】経路検索仕様においては、最上位ビット側
からサブネットワークマスク長のビット数だけを有効と
するマスクを宛先アドレスに掛けたものをサブネットワ
ークアドレスと比較する。比較の結果、一般的にはマス
ク長の異なる複数のエントリE1、E2、E4が一致
し、一致したエントリの内でマスク長が最長のものE2
の次ホップ情報(次ホップ2)を検索結果とする。
【0009】この検索仕様に従った検索を高速に行う方
法として、Radishアルゴリズムがある。Radi
shアルゴリズムについては例えば、UNIX MAG
AZINE 1997.4 pp.20−25 山口
英「カーネルを読もう(8)IP層における経路制御機
構(2)」に解説されている。
【0010】
【発明が解決しようとする課題】上記Radishアル
ゴリズムは、左右にポインタを持つ複数の頂点(ノー
ド)をポインタでつないだ木から構成される木構造の各
ノードに経路エントリをマップし、この木を辿るときに
は、各ノードの左右のどちらかのポインタを辿り次のノ
ードに移動することにより、目的の経路エントリがマッ
プされたノードにたどり着くアルゴリズムである。
【0011】まず、図3を参照して木の構造を説明す
る。考え方はビット長には依存しないので、図3では理
解し易いようアドレス長を3ビットとして説明する。
【0012】図3に示すように、各ノードを、木の上か
ら順にマスク長0ビット、1ビット、2ビット、3ビッ
トのノードと呼ぶ。
【0013】マスク長0ビットのノードN0000では
宛先アドレスの第0ビットが0か1かに従い左/右のポ
インタを辿ることによりマスク長1ビットのノードN0
001、N1001に移り、マスク長1ビットのノード
では第1ビットが0か1かに従い左/右のポインタを辿
ることによりマスク長2ビットのノードN0002、N
0102、N1002、N1102に移り、マスク長2
ビットのノードでは第2ビットが0か1かに従い左/右
のポインタを辿ることによりマスク長3ビットのノード
N0003、N0013、N0103、N0113、N
1003、N1013、N1103、N1113に移
る。
【0014】検索したい宛先アドレスについて、この木
のマスク長0ビットのノードN0000から順に各ビッ
トが0か1かに従いポインタを辿った場合、マスク長0
ビットのノードは宛先アドレスがどの場合にも通過し、
マスク長1ビットのノードN0001、N1001は左
から順に宛先アドレスの各ビットが0XX、1XXの場
合に通過し、マスク長2ビットのノードN0002、N
0102、N1002、N1102は左から順に宛先ア
ドレスの各ビットが00X、01X、10X、11Xの
場合に通過し、マスク長3ビットのノードN0003、
N0013、N0103、N0113、N1003、N
1013、N1103、N1113は左から順に宛先ア
ドレスの各ビットが000、001、010、011、
100、101、110、111の場合に通過する。こ
こで、Xはそのビット値が0または1のどちらでも良い
ことを示す。
【0015】したがって、マスク長0ビットのノードN
0000は、宛先アドレスがサブネットワークアドレス
000/0に属する場合に通過し、マスク長1ビットの
ノードN0001、N1001は、宛先アドレスがサブ
ネットワークアドレス000/1、100/1に属する
場合に通過し、マスク長2ビットのノードN0002、
N0102、N1002、N1102は、宛先アドレス
がサブネットワークアドレス000/2、010/2、
100/2、110/2に属する場合に通過し、マスク
長3ビットのノードN0003、N0013、N010
3、N0113、N1003、N1013、N110
3、N1113は、宛先アドレスがサブネットワークア
ドレス000/3、001/3、…、111/3に属す
る場合に通過する。ここで、表記法“sss/m”の
“sss”はサブネットワークアドレス、mはマスク長
を表すものとする。
【0016】上記の通り、この木の各ノードは、サブネ
ットワークアドレスとマスク長が異なる全サブネットに
1対1に対応している。
【0017】そこで、図4に示す経路テーブルエントリ
に対応するノードN0000、N0013、N010
2、N1001、及びN1103に“*”を付け、検索
したい宛先アドレスDA011を、この木の上から各ビ
ットが0か1かに従いポインタを辿ったときに通過する
“*”を付けたノードN0000、N0102が、マス
ク付きの検索で一致するエントリに対応することが分か
る。そこで、経路テーブルエントリが複数一致した場合
は最もマスク長が長いサブネットワークを選択する、と
いう規則に対応し、一致した“*”付きノードN000
0、N0102の内、最も末端に近いノードN0102
に割り付けられた経路情報を経路テーブルの検索結果と
する。
【0018】上記検索方法から分かるように、“*”が
付いておらず、かつ“*”付きのノードにたどり着くた
めの途中経路にもなっていないノードN0003、N0
103、N0113、N1003、N1013、N11
13、及びN1002は、木から取り除いても検索結果
には影響しない。むしろ、最下のノードに“*”が付い
ていないときは、最下まで移動せずに検索が終了するた
めに効率的である。そこで、“*”が付いておらず、か
つ“*”付きのノードにたどり着くための途中経路にも
なっていないノードを木から取り除くと図5のようにな
る。
【0019】この方法で、アドレス長が32ビットで、
図6に示す経路テーブルのに対応する2分木を描くと、
図7のようになり、分岐も“*”も無いノードの長い列
NS1ができる。このように、左右の片方のポインタだ
けに次のノードがつながり、かつ経路エントリがマップ
されていないノードを取り除くことによる高速化法につ
いて説明する。
【0020】この高速化法では、分岐も“*”も無いノ
ード列NS1を取り除き、直ぐ上のノードN00000
0000の分岐方向(図7では右側)に、取り除かれた
ノード列NS1の直ぐ下のノードN850400001
5を付ける。その結果、図8に示す形となる。このよう
に途中のノード列を取り除くことを、以後、木の縮退と
呼ぶ。
【0021】次に縮退した木での経路の検索法を説明す
る。
【0022】図8に示す例では、マスク長0ビットのノ
ードN000000000で第0ビットの検索を行った
後、マスク長15ビットのノードN850400001
5に跳ぶので、マスク長15ビットのノードN8504
000015で第15ビットだけを検査したのでは、途
中のビット、即ち第1ビットから第14ビットが検査で
きない。そこで、第1ビットから第15ビットの検索を
一回の処理で行う為に、宛先アドレスの第1から第15
ビットとノードN8504000015のサブネットワ
ークアドレス0x85.04.00.00の第1から第
15ビットの一致比較を行う。比較結果が一致すれば正
しいノードにたどり着いたこと、即ち、縮退しない木で
1ビットずつ比較してもこのノードにたどり着いたこと
を意味し、一致しなければ正しくないノードにたどり着
いたこと、即ち縮退しない木では行き先が無いことを意
味する。
【0023】ここで、図8に示す例では、第0ビットは
既にテストされ、第0ビットが等しくなる方の分岐が選
択されている為、常に一致する。一般に、あるノードに
たどり着く毎に正しいノードにたどり着いたか否かを検
査していれば、第0ビットからそのノードのマスク長ま
でのビットは宛先アドレスとノードのサブネットワーク
アドレスとで等しいことが保証されているので、次のノ
ードにたどり着いたときに、前にどのビットまでテスト
したかに関らず、第0ビットからノードのマスク長まで
のビットが宛先アドレスとノードのサブネットワークア
ドレスとで等しいか否かを調べて良い。
【0024】このように、Radishアルゴリズムで
は、経路を検索するために宛先アドレスを上から1ビッ
トずつ検査しており、経路検索処理に時間が掛かる、と
いう問題があった。
【0025】本発明の目的は、パケットを転送するため
の転送際の経路検索処理を高速に実行するネットワーク
中継装置、特にルータを提供することにある。
【0026】本発明の他の目的は、ルータ等のネットワ
ーク中継装置において、受信したパケットの宛先アドレ
スからパケットの転送先アドレスを高速に検索するネッ
トワーク次転送先検索方法を提供することにある。
【0027】
【課題を解決するための手段】上記目的を達成するた
め、本発明においては、サブネットワークアドレスの上
位ビットに対応する部分の検索について、サブネットワ
ークアドレスの上位数ビット分、ノードをメモリ上の決
まった位置に展開することにより、サブネットワークア
ドレスの上位数ビット分の検索処理時間を無くすように
する。
【0028】また、検索木の、上位数ビット分を検索処
理を行うLSIに内蔵し、LSI内部のメモリと外部の
メモリとの間で検索処理をパイプライン処理することに
より、上位数ビット分の検索処理時間を隠すようにする
また、検索木を構成する各ノードを、従来技術での2分
木ノードから4分木、8分木、あるいはそれ以上と枝別
れの数を2のべき乗で増やし、一つのノードで1ビット
でなく、連続する2ビット、3ビット、あるいはそれ以
上のビット数を同時に検査し、検索終了までに辿るノー
ドの数を減らすようにする。
【0029】また、検索木を表現するデータ構造を記憶
するためのメモリ量を減らすために、4分木、8分木、
あるいは一般に2のp乗分木を構成するときに、一つの
2分木ノードと、その直下につながるp−1段分の合計
2のp乗−1個分の2分木ノードを一つの2のp乗分木
ノードにまとめ、まとめられる最下段の2の(p−1)
乗個の2分木ノードに、それより上段のノードに割り付
けられていた経路データを埋め込むことにより、2のp
乗分木ノードを2分木を2の(p−1)乗個分併せた形
で構成するようにし、さらに、2分木を複数個併せると
きに、一つだけ持てば良い要素を一つだけ持つようにす
る。
【0030】また、この2分木を複数個併せた形で構成
した4分木、8分木、あるいはそれ以上の枝別れ数のノ
ードを、検索のために読むときにノード全てを読むので
はなく、必要な部分のみを読むようにし、ノードが大き
くなることによるデータの読み込み時間の増大を防ぐ。
ノードのデータの内、必要な部分のみを選択するため、
ノードのマスク長をノードのデータを読む前に知る必要
があり、各ノードには、そのノードのすぐ下につながる
ノードのマスク長を格納するようにする。また、各ノー
ドの先頭に、そのノードに経路が割り付けられているか
否かを示すフラグを設け、最初に、このフラグを読み込
み、経路が割り付けられていないノードでは、経路情報
を読み込まないようにすることにより、データの読み込
み時間の短縮を図る。
【0031】また、木構造の検索処理を専用ハードウエ
アで行うことにより、次のノードの読み込む位置のアド
レス計算と、経路情報の候補の更新処理を、並列化する
ことにより高速化する。
【0032】
【発明の実施の形態】本発明をより詳細に説明するた
め、添付の図面を参照して本発明を実施するための最良
の形態を説明する。
【0033】最初に、本発明が適用されるルータ装置の
代表的な構成を図38を参照して説明する。図38にお
いて、100はルータ装置、110はルーティング制御
部、120はルータバス、130はネットワークインタ
フェース部、140はポート、150はサブネットワー
クである。
【0034】ネットワークインタフェース部130は、
ポート140に接続されたサブネットワークからパケッ
トを受け取り、受け取ったパケットをルータバス120
経由でルーティング制御部110に送信する。ルーティ
ング制御部110はルーティング情報を保持するルーテ
ィングテーブルを備え、このルーティング情報を用いて
受け取ったパケットの宛先から転送先のサブネットワー
ク150を決定し、当該サブネットワーク150が接続
されるポート140のネットワークインタフェース部1
30にパケットを送信する。ルーティング制御部110
からパケットを受け取ったネットワークインタフェース
部130はそのパケットを転送先のサブネットワーク1
50に送出する。なお、ルーティング制御部110は、
受け取ったパケットのヘッダ情報に基づいてルーティン
グテーブルに保持するルーティング情報を更新・保守す
るとともに、ルータ装置100全体の管理機能を備えて
いる。
【0035】図39は、ルータ装置の他の構成例を示す
ブロック図である。図39において、200はルータ装
置、210はルーティングプロセッサ(RP)、220
はルータ装置内通信手段、230はネットワークインタ
フェース部、240はポート、250はサブネットワー
ク、260はルータ管理部である。本構成の場合、図3
8に示した構成のルーティング制御部110がルーティ
ング機能を実行するルーティングプロセッサ210及び
ルータ装置200の管理を行うルーティング管理部26
0に分かれるとともに、図38に示した構成に相当する
ネットワークインタフェース部230及びルーティング
プロセッサ210から構成される部分を複数備えてい
る。ルーティング管理部260は、ルータ装置200全
体の管理機能を備えるとともに、各ルーティングプロセ
ッサ210にルーティング情報を配付する。ルータ装置
内通信手段220は、クロスバスイッチあるいはバス等
であり、ルーティングプロセッサ210相互の通信やル
ーティングプロセッサ210とルーティング管理部26
0との間の通信を行う。ルーティングプロセッサ210
は、図38のルーティング制御部110と同様に自分に
接続されたネットワークインタフェース部230の間の
パケット転送を行うとともに、他のルーティングプロセ
ッサ210に接続されたサブネットワーク250にパケ
ットを転送する場合は、ルータ装置内通信手段220を
介して該当するルーティングプロセッサ210にパケッ
トを転送する。
【0036】次に、ルーティング制御部110及びルー
ティングプロセッサ210において実行される次転送先
経路検索処理について説明する。最初に、Radish
アルゴリズムの本発明による高速化法を示す高速化の1
番目の方法を図9を参照して説明する。従来のRadi
shアルゴリズムでは、木が縮退していない場合、マス
ク長0ビットのノードから順に1ビットすつ検索してゆ
くが、本発明では図9に示すように、マスク長mビット
のノードをノードが有る場合も無い場合も、全てメモリ
上の決まった位置に展開するものである。図9はマスク
長2ビットのノードN0002、N0102、N100
2、N1102をメモリの決まった位置に展開した場合
の例である。
【0037】この場合、従来はまずマスク長0ビットの
ノードN0000に跳び、第0ビットの値に従い、マス
ク長1ビットのノードN0001、N1001のどちら
かに跳び、第1ビットの値に従い、マスク長2ビットの
ノードN0002、N0102のどちらか、あるいはN
1002、N1102のどちらかにたどり着いていた。
【0038】本発明においては、第0ビット及び第1ビ
ットの値からマスク長2ビットのノードN0002、N
0102、N1002、N1102を展開してあるアド
レスを求め、直接マスク長2ビットのノードN000
2、N0102、N1002、N1102のいずれかに
跳ぶ。これにより、2回のノード検索の時間分、検索時
間が短縮される。
【0039】一般に、マスク長mビットのノードをメモ
リ上に決まった位置に展開し、1回で跳んだ場合、マス
ク長0ビットからm−1ビットまでのノードの計m回の
ノードを渡る時間分、検索時間が短縮される。一方で、
2のm乗個のマスク長mビットのノードをノードが有る
場合も無い場合もメモリ上に展開する必要があるため、
メモリ効率が悪くなる。したがって、メモリ効率と性能
のトレードオフからmの値を決めるようにする 次に高速化の2番目の方法を図10乃至図12を参照し
て説明する。図10に示すようにマスク長kビットまで
のノードを経路検索を行うLSI L1の内蔵メモリM
L1に展開し、マスク長k+1ビット以降のノードをL
SI L1外部のメモリM1に展開する。このようにす
ることにより、LSI L1内部のメモリML1のアク
セスが高速であること、及びLSI L1内部のメモリ
ML1と外部のメモリM1とが独立したメモリであるこ
とから、パイプライン処理できることを利用し、高速化
を図るものである。一般的に、LSI L1に内蔵でき
るメモリ量は外部に持つことができるメモリ量に比べ少
ないが、マスク長が短い内は、ノードの数が少ないとい
う性質があるので、マスク長が短い方のノードをLSI
L1に内蔵することができる。
【0040】図11にパイプライン処理を行っていない
従来の場合のタイムチャートを、図12に本願発明によ
るLSI L1内部のメモリML1と外部のメモリM1
との間で経路検索処理のパイプライン処理を行っている
ときのタイムチャートを各々示す。従来は図11に示す
ように、あるパケット(パケット1、2、3)の経路検
索を行う場合に、パケット1のマスク長kビットまでの
ノードの検索処理PR10と、マスク長k+1ビット以
降のノードの検索処理PR11、パケット2の同上の処
理PR20、PR21、パケット3の同上の処理PR3
0、PR31を順番に行っていた。これに対して、本発
明では図12に示すように、LSI L1内部のメモリ
ML1を使用してパケット1のマスク長kビットまでの
ノードの検索処理PR10を行った後、LSI L1外
部のメモリM1を使用しパケット1のマスク長k+1ビ
ット以降のノードの検索処理PR11を始めると同時
に、LSI L1内部のメモリML1を使用しパケット
2のマスク長kビットまでのノードの検索処理PR20
を始めるようにする。その後、処理PR20及びPR1
1が終わったら、LSI L1外部のメモリM1を使用
しパケット2のマスク長k+1ビット以降のノードの検
索処理PR21を始めると同時に、LSI L1内部の
メモリML1を使用しパケット3のマスク長kビットま
でのノードの検索処理PR20を始める。以後、同様に
パケットの検索処理をパイプライン処理で行う。
【0041】高速化の3番目の方法は、従来一つのノー
ドに2つの分岐先があり1ビットずつ検索していたもの
を、一つのノードに2のp乗の分岐先を設け、同時にp
ビットずつ検索することにより、従来に比べ検索時間を
1/pに短縮するものである。以後、一つのノードに2
のp乗の分岐先があるノードのことを2のp乗分木ノー
ドと呼ぶ。
【0042】2のp乗分木ノードは、従来の方法である
2分木ノードから構成される木を変形することにより作
成する。木の変形の方法は、一つの第nビット目の2分
木ノードと、この2分木ノードの下の第n+1からn+
p−1ビット目の2分木ノードを、一つの2のp乗分木
ノードに対応させるように行う。例として、2分木から
8分木への変形法を図13乃至図15に示す。
【0043】8分木の場合、一つの8分木に対応させる
2分木ノードのビット位置のとり方として、以下の3通
りがある。
【0044】(a)図13に示すように、マスク長0〜
2、3〜5、6〜8、9〜11、12〜14、15〜1
7、18〜20、21〜23、24〜26、27〜2
9、30〜32ビットのノードを、それぞれ一つの8分
木ノードとする場合。
【0045】(b)図14に示すように、第1〜3、4
〜6、7〜9、10〜12、13〜15、16〜18、
19〜21、22〜24、25〜27、28〜30、3
1〜32ビットのノードを、それぞれ一つの8分木ノー
ドとする場合。
【0046】(c)図15に示すように、第2〜4、5
〜7、8〜10、11〜13、14〜16、17〜1
9、20〜22、23〜25、26〜28、29〜3
1、32ビットのノードを、それぞれ一つの8分木ノー
ドとする場合。
【0047】どの区切り方でも構成可能だが、木全体で
は、経路の追加、削除を容易に行えるように、上記3通
りのビット位置の区切り方の内の一つを使用する。
【0048】上記3通りのビット位置の区切り方の内、
最初の区切り方以外ではマスク長が0ビットから始まっ
ていないので、最初のビットの検索を別に行う必要があ
る。この検索には、図9に示したマスク長mビットのノ
ードをメモリ上に展開する方法を使用する。図14、図
15に示した区切り位置に対応する8分木の最初のビッ
ト分のノードをメモリ上に展開した木の構成を図16、
図17に示す。
【0049】図16に示す構成では、マスク長1〜3ビ
ットのノードN8013、N8113をメモリ上の決ま
った位置に並べ、それぞれを第0ビットが0か1かに従
い選択する。図17に示す構成では、マスク長2〜4ビ
ットのノードN80024、N80124、N8102
4、N81124をメモリ上の決まった位置に並べ、そ
れぞれを第0〜1ビットが00か01か10か11かに
従い選択する。
【0050】あるいは、図9に示したマスク長mビット
のノードをメモリ上に展開する方法と、2のp乗分木ノ
ードにして複数のビット数を同時に検索する方法とを組
み合わせることも可能である。具体的には、図13、図
14、図15に示す各ビットの区切り位置の場合に、そ
れぞれ最初に並べるノード数を1、2、4個ではなく、
これらの8倍である8、16、32個、8の2乗倍であ
る64、128、256個、或いは一般に8のq乗倍個
にし、最初の1回、2回、或いは一般に2のp乗分木ノ
ードのq回の検索時間を無くすことも可能である。p=
3、q=1の場合、即ち8分木ノードの1回のノードの
検索時間を無くす場合で、図13、図14、図15に示
す3通りの各ビットの区切り位置の場合についてのメモ
リ上へのノードの展開法を、図18、図19、図20に
それぞれ示す。このようにp、qの値を大きくすると経
路検索時間を短縮することができるが、多くのメモリを
必要とするので、p、qの値はメモリ効率と性能のトレ
ードオフから決めるようにする。
【0051】次に、4分木ノード、8分木ノード、16
分木ノード、或いは一般に2のべき乗分木のノードの構
成法を図21を使用し説明する。
【0052】図21は4分木で、ある一つの2分木ノー
ドA、B、C、D、Eと、その直下の2個の2分木ノー
ドA0、A1、B0、B1、C0、C1、D0、D1、
E0、E1の、各々合計3個の2分木ノードをまとめて
一つの4分木ノードN401、N4023、N412
3、N4223、N4323にする場合の例であり、合
計3個の2分木ノードをつぶして、下の方の2分木ノー
ドだけの大きさにする。つぶし方は、マスク長が異なる
複数の経路が一致したら、マスク長の長いほうの経路を
採用するという経路検索の仕様に従い、経路検索を行っ
た場合に、2分木の場合と4分木の場合とで、経路検索
結果が同じになる、という条件を満たすように行う。
【0053】4分木の場合の、このノードのつぶし方を
図22〜図30に示す。
【0054】3つのノードが全部ある場合(図22)、
全ノードに経路情報が割り付けられていたら、下のノー
ドの経路情報*A0、*A1を残し、上のノードの経路
情報*Aは削除する。これは、ノードAの経路が一致し
たらノードA0かノードA1のどちらかの経路が必ず一
致するので、マスク長が異なる複数の経路が一致した
ら、マスク長の長いほうの経路を採用するという経路検
索の仕様により、*Aが使われることが無いからであ
る。
【0055】上のノードAに経路情報*Aが割り付けら
れており、下のノードA0、A1の内A1にだけ経路が
割り付けられていない場合(図23)、A1の経路情報
に、Aの経路情報*Aを入れる。下のノードA0、A1
の内A0だけ経路が割り付けられていない場合も同様で
ある。
【0056】下のノードA0、A1の両方に経路が割り
付けられていない場合(図24)には、A0、A1の両
方の経路情報に、Aの経路情報*Aを入れる。
【0057】下のノードA1が無い場合(図25)は当
該ノードを補い、経路情報には上のノードAの経路情報
*Aを入れ、ノードA1の下にはノードが繋がっていな
いので、ノードA1の下のノードへのポインタにはNU
LLを入れる。下のノードA0、A1の内A0だけ経路
が割り付けられていない場合も同様である。
【0058】下のノードA0、A1の両方が無い場合
(図26)、両方を補い、両方の経路情報に、Aの経路
情報*Aを入れ、両方の下のノードへのポインタにはN
ULLを入れる。
【0059】上のノードに経路が割り付けられていない
場合(図27)、上のノードを只つぶす。
【0060】上のノードAに経路情報*Aが割り付けら
れてなく、下のノードA0、A1の内、A1にも経路が
割り付けられていない場合(図28)、4分木にした場
合もA1の経路情報は無い。下のノードA0、A1の
内、A0に経路が割り付けられていない場合も同様であ
る。
【0061】下のノードA0、A1の両方に経路が割り
付けられていない場合(図29)、4分木にした場合も
両方の経路情報は無い。
【0062】下のノードA0だけしかない場合(図3
0)には、下のノードA1を補う。下のノードA1だけ
しかない場合も同様である。
【0063】8分木の場合も同様にして、一つにまとめ
る7個の2分木ノードをつぶして、一番下の4個のノー
ドだけの大きさにする。上の方の3つの2分木ノードの
つぶし方の例を2つ図31に示す。
【0064】図31(a)は一つにまとめる7個の2分
木ノードが全てあるが、その内のいくつかにしか経路情
報が割り付けられていない例である。最下の4つのノー
ドの内、経路情報が割り付けられていないノードA0
1、A10には、そのノードの上方につながっているノ
ードの内、経路情報が割り付けられている最も下、即ち
最もマスク長が長いノード(それぞれ、A、A1)の経
路情報*A、*a1を入れる。
【0065】図31(b)は一つにまとめる7個の2分
木ノードの内のいくつかしかノードが存在しない例であ
り、存在しないノードA01、A10をまず経路が割り
付けられていないノードとして補い、図31(a)と同
じ規則で経路情報を入れる。最下の4つのノードA0
0、A01、A10、A11の内、補ったノードA0
1、A10の下にはノードが繋がっていないので、下の
ノードへのポインタにはNULLを入れる。
【0066】一般に2のp乗分木の場合も同様にして、
一つにまとめる2のp乗−1個の2分木ノードをつぶし
て、一番下の2の(p−1)乗個のノードだけの大きさ
にする。
【0067】この方法で1ノードの大きさを小さくする
ことは、メモリ効率の悪化を防ぐ効果がある。試みに、
以下に示す近似の下で木を2分木で作成した場合と2の
p乗分木で作成した場合のメモリ使用量を計算し、2の
p乗分木にした場合でも、pが小さい場合には、メモリ
効率が悪くならないことを示す。
【0068】近似 1.2分木にした場合、経路は全て末端のノードにのみ
割り当てられている。
【0069】2.木の枝は第32bitまで全てある。
【0070】3.枝の増え方は、全bitで一定とす
る。
【0071】4.経路数は約10k経路とする。
【0072】この近似の下で構成した木の形を図32に
示す。この近似によると、1bit下る毎の木の広がり
方は10kの(1/32)乗、即ち約1.33倍であ
る。
【0073】この構成の木を、2分木ノードで構成した
場合と4分木ノードノードで構成した場合のメモリ量の
比較を、図33(a)を用いて説明する。4分木ノード
を構成する3つの2分木ノードの内、上の一つのノード
N2に着目すると、直下にはノードが約1.33個付
く。即ち、左右各々0.67の確率でノードN20、N
21が付く。したがって、4分木ノードを構成する2分
木ノードN2、N20、N21の合計のメモリ量のノー
ドの存在確率を考慮した平均は、2分木ノード(1+
1.33)個分、即ち2.33個分である。4分木ノー
ドで木を構成すると、この3つの2分木ノードが一つの
4分木ノードN4になり、この一つの4分木ノードのメ
モリ使用量は2分木ノードN20、N21の2個分であ
る 同様にして、この構成の木を、2分木ノードで構成した
場合と8分木ノードノードで構成した場合のメモリ量の
比較を、図33(b)を用いて説明する。8分木ノード
を構成する7つの2分木ノードN2、N20、N21、
N200、N201、N210、N211の内、最上の
一つのノードN2に着目すると、直下にはノードN2
0、N21が約1.33個付き、そのさらに下にはノー
ドN200、N201、N210、N211が約1.3
3の2乗、即ち約1.78個付く。したがって、8分木
ノードを構成する2分木ノードN2、N20、N21、
N200、N201、N210、N211の合計のメモ
リ量のノードの存在確率を考慮した平均は、2分木ノー
ド(1+1.33+1.78)個分、即ち4.11個分
である。
【0074】8分木ノードで木を構成すると、この7個
の2分木ノードが一つの8分木ノードN8になり、この
一つの8分木ノードのメモリ使用量は2分木ノードN2
00、N201、N210、N211の4個分である。
【0075】同様にして2分木の場合と4、8、16、
32、64、128、256分木の場合のメモリ容量の
比較を行った結果を以下に示す。
【0076】 2分木: 4分木= 2.33: 2=0.86倍 2分木: 8分木= 4.11: 4=0.97倍 2分木: 16分木= 6.48: 8=1.23倍 2分木: 32分木= 9.65: 16=1.66倍 2分木: 64分木=13.86: 32=2.31倍 2分木:128分木=19.49: 64=3.28倍 2分木:256分木=26.98:128=4.74倍 経路数が1M経路の場合には、この近似によると、1b
it下る毎の木の広がり方は1Mの(1/32)乗、即
ち約1.54倍になり、2分木の場合と4、8、16、
32、64、128、256分木の場合のメモリ量の比
は、以下の通りとなる。
【0077】 2分木: 4分木= 2.54: 2=0.79倍 2分木: 8分木= 4.91: 4=0.81倍 2分木: 16分木= 8.56: 8=0.93倍 2分木: 32分木=14.19: 16=1.13倍 2分木: 64分木=22.85: 32=1.40倍 2分木:128分木=36.18: 64=1.77倍 2分木:256分木=56.72:128=2.26倍 結論として、上記仮定の下では10k経路時には8分木
まで、1M経路時には16分木までなら、むしろメモリ
使用効率は良くなる。256分木にした場合でも、メモ
リ使用量は10k経路時に3.28倍、1M経路時に
2.26倍までしか増えない。このようにメモリ使用効
率があまり悪くならない理由として、以下の事項が挙げ
られる。
【0078】(1)p段分のノードを纏めることによ
り、纏める前のノードの合計よりも、纏めた後のノード
がコンパクトになる。即ち、 3個の2分木が、2分木のノードの2倍の大きさの4分木になる。
【0079】 7 〃 4 〃 8 〃 15 〃 8 〃 16 〃 31 〃 16 〃 32 〃 63 〃 32 〃 64 〃 127 〃 64 〃 128 〃 255 〃 128 〃 256 〃 (2)1bit下る毎の木の広がりが大きく、1ノード
内のデータ使用効率が良い。(サポート経路数が増える
程、木の広がりが大きくなるので、1ノード内のデータ
使用効率は良くなる。) さらに、4、8、16、…分木ノードでは、2分木ノー
ドを2、4、8、…個まとめて扱うので、一つにまとめ
られる2分木ノード間で一つだけ持てば良い要素は一つ
だけ持てばよく、これにより4、8、16、…分木ノー
ドのメモリ量をさらに小さくできる。一つにまとめられ
る2分木ノード間で一つだけ持てば良い要素には、サブ
ネットワークアドレス及びサブネットワークマスク長が
あるが、サブネットワークマスク長については後述する
ようにこのノード自身のサブネットワークマスク長では
なく、このノードの直下のノードのサブネットワークマ
スク長を持つようにするので、メモリ量を小さくする効
果は無い。
【0080】2分木ノードの構造、及びこの2分木ノー
ドを2つ併せ、2分木間で一つだけ持てば良いサブネッ
トワークアドレスを一つだけ持つようにした場合の4分
木ノードの構造を各々図34、図35に示す。図34は
2分木ノードの構造を示す図であり、次のノードのマス
ク長0、1は、このノード自身のサブネットワークマス
ク長ではなく、このノードの直下のノードのサブネット
ワークマスク長である。このように、自分自身でなく直
下のノードのマスク長を設定する理由は高速化のためで
あり、その説明は図36を参照して後述する。Flag
0及びFlag1は、このノードに対応するサブネット
ワークがこのルータに直接つながるか、他のルータを一
つ以上経由してつながるかを示すビット、及び、図37
を使用し後述するように、このノードが経路が割り付け
られているノードか否か、即ち、図8に示した木の例で
はこのノードが“*”が付いているノードか否かを示す
フラグ、他である。Flag0とFlag1には、同じ
値を入れる。これは、ワードW0とワードW1の一つだ
けを読めば良いようにするためである。このように、ノ
ードの全てを読むのではなく、一部分を読むことによる
高速化については図36を使用し後述する。次のノード
へのポインタ0、1は、宛先アドレスのこのノードのマ
スク長で示されるビット位置の値が、それぞれ0、1の
ときに次に辿るノードへのポインタである。サブネット
ワークアドレスは、このノードに対応するサブネットワ
ークアドレスである。出力ポート番号及び次ホップアド
レスは、このノードに割り付けられた経路情報であり、
入ってきたパケットを出力すべきポート及びそのポート
上のパケットを送るべきルータのアドレスである。
【0081】4分木ノードでは、この2分木ノードを2
つ併せ、併せたときに一つだけ持てば良いデータを一つ
だけ持つようにする。一つだけ持てば良いデータはサブ
ネットワークアドレスだけである。この方法で作成した
4分木ノードの構造を図35に示す。
【0082】図34、図35に示す例では、2分木ノー
ドは、2のべき乗の大きさである16バイトにわずかに
入りきらない大きさになっているが、4分木ノードに
し、1ノード内にサブネットワークアドレスを一つしか
持たないようにすることで、2のべき乗の大きさである
32バイトに丁度収まるようになっている。8分木ノー
ドにし、サブネットワークアドレスを1ノードで一つだ
け持つようにすれば、64バイトの大きさに収まった上
に、4バイトの余裕ができ、この領域は他の情報を入れ
るのに使用できる。さらに一つにまとめる2分木の数を
増やせば、2のべき乗の大きさに対し、一つのノードの
大きさをさらに小さくできる。
【0083】このように、1ノードの大きさを2のべき
乗の大きさに収めることで、h/wの構成を非常に簡単
にできる。h/wの構成を簡単にできる例とその利点を
以下に示す。
【0084】一つ目の例として、4分木ノードが32バ
イトに収まる場合、メモリを複数バンクで構成していた
場合でも1ノードのメモリ領域がバンク境界にまたがる
ことがないこと、メモリにダイナミックRAMを使用し
ていた場合でも1ノードのメモリ領域がRowアドレス
境界にまたがることがないことが利点として挙げられ
る。。
【0085】2つ目の例として、ノード内の各要素のア
ドレスを求めるときに、そのノードへのポインタとその
ポインタからのオフセットの足し算でなく、アドレスの
上位ビットはポインタの値にし、下位ビットをオフセッ
トにすればよいこと、例えば4分木ノードが32バイト
に収まる場合、あるノード内のある要素のアドレスは、
そのノードへのポインタをアドレスの2の5乗ビット以
上に割り付け、ノード内のその要素へのオフセットをア
ドレスの2の0乗ビットから2の4乗ビットに割り付け
ればよいことが利点として挙げられる。
【0086】3つ目の例として、例えば4分木ノードが
32バイトに収まる場合、各ノードに保持する次のノー
ドへのポインタとして、次のノードの先頭のバイトアド
レス/32を保持すればよく、1ノード内で1ポインタ
あたり5ビットずつデータ量を減らせることが利点とし
て挙げられる。
【0087】ここで、4、8、16、…分木ノードにし
た場合に一つのノードが大きくなり、検索処理時に検索
処理LSI内に一つのノードを全て読み込むと、ノード
を大きくするに従い読み込み時間が伸び、性能低下要因
となる、という問題がある。この問題は、ノードを大き
くしたときに一つのノード全てを読み込まずに一部だけ
を読み込む、という方法で回避する。この方法につい
て、図36を参照して説明する。
【0088】図36は4分木の場合の例であり、既に図
34、図35で示したようにマスク長mビットの4分木
ノードは、宛先アドレスのmビット目の値が0の場合に
対応する2分木ノードと、1の場合に対応する2分木ノ
ードを併せた形になっていることから、宛先アドレスの
mビット目の値を見て、対応する方の2分木ノードの部
分だけを読み込むことにより、ノードの大きさが大きく
なっても2分木ノードの場合と同じデータ量を読み込む
ようにする。このとき、図35で示した、一つにまとめ
られる2分木ノード間で一つだけ持つ要素であるサブネ
ットワークアドレスは、宛先アドレスのmビット目の値
に係わらず読み込むようにする。
【0089】さらに、宛先アドレスのm+1ビット目の
値を見て、2分木ノードで2つ存在した次ノードへのポ
インタの内、一方だけを読み込むようにすることによ
り、読み込むデータ量をさらに少なくする。
【0090】この方法は2分木の場合でも使用できる。
例えばmビット目の2分木の場合には、宛先アドレスの
mビット目の値を見て、2つの次ノードへのポインタの
内、一方だけを読み込むようにする。
【0091】上記方法を全て行い、結局、このノードの
マスク長をmとした場合、宛先アドレスの第m、m+1
ビットの値が00か、01か、10か11かに従い、そ
れぞれ(W0→W4→W5→W6)、(W1→W4→W
5→W6)、(W2→W4→W5→W7)、(W3→W
4→W5→W7)の順にデータを読み込むようにする。
【0092】このように、あるノードの一部分だけを読
み込むためにはこのノードのマスク長mを知る必要があ
り、このノードのマスク長mは1ノードのデータ読み込
みの最初に読み込むか、この情報を一つ前のノードに移
して一つ前のノードのデータ読み込み時に読み込む必要
がある。ノードのマスク長mを1ノードのデータ読み込
みの最初に読み込む方法は、宛先の第mビット目の値の
抽出のための検索処理LSI内のゲートディレイ、及
び、次に読み込む部分のアドレスをメモリに出力してか
らメモリからのデータを検索処理LSI内に読み込むま
での時間であるメモリリードレイテンシだけ、マスク長
mを読み込んでから次に読み込む部分を選択して読み込
むまで時間が空いてしまうので、ノードの一部だけを読
むことによる性能向上効果が少なく、ノードのマスク長
mを一つ前のノードに移し、一つ前のノードのデータの
読み込み時に読み込む方が性能向上効果がある。
【0093】さらに、ノードのマスク長mを一つ前のノ
ードに移す場合、1ノードのデータを読み込む順序を、
1番目に次のノードのマスク長m、次のノードへのポイ
ンタ、次にサブネットワークアドレス、出力ポート番
号、及び、次ホップアドレスの順にすることにより、次
のノードの最初に読み込む部分のアドレスが最も早く計
算できるようにする。
【0094】次のノードへのポインタは、次のノードの
メモリ領域の先頭部分を指しており、次のノードの先頭
から最初に読み込む部分までのアドレスのオフセット
は、次のノードのマスク長mを読み込み、宛先アドレス
の該当ビット位置の値を検査することにより、得られ
る。
【0095】次に、1ノード内で、条件によっては、読
み込む必要が無い要素を、条件に従い、読み込まないよ
うにすることで、読み込みの時間を削減することで、高
速化を図る方法について図37を使用し説明する。
【0096】図37は4分木の場合の例である。Rad
ishアルゴリズムでは、全ノードに経路が割り付けら
れているわけではなく、枝の分岐の個所では、経路が割
り付けられていなくてもノードを設ける必要がある。図
37に示すように、ノードデータの最初に読み込むフラ
グ内に、このノードが経路が割り付けられているノード
か否かの情報を入れておき、経路が割り付けられていな
いノードでは、出力ポート、及び、ネクストホップアド
レスを読み込まないようにすることで、読み込み時間の
短縮が図れる。このノードが経路が割り付けられている
ノードか否かの情報は、1ビットで表現できるので、こ
の情報を読み込むことによる読み込み時間の増大は小さ
い。
【0097】この方法では、このノードのマスク長をm
とすると、宛先アドレスの第m、m+1ビットの値が0
0で、W0を読み、Flag00から、4分木を構成す
る0番目の2分木に経路情報が無いと判った場合、W4
だけを読めば良く、経路情報が有ると判った場合にだ
け、図36に示すようにW4→W5→W6の順に読めば
良い。宛先アドレスの第m、m+1ビットの値が01、
10、11の場合も同様である。
【0098】次にここまでで示した方式の経路検索を行
い、経路検索の結果得られた宛先にパケットを転送する
ルーティングプロセッサ(図39の210)の内部構成
例について図40を用いて説明する。
【0099】図40において、ルーティングプロセッサ
210は、パケット転送処理を行う転送処理部211
と、転送処理部211が、ルーティングプロセッサに入
って来たパケットを転送するまでの間、一時的にパケッ
トデータを格納しておくパケットバッファメモリ212
と、パケットのヘッダ情報に基づき経路検索を行う経路
検索処理部213と、経路検索処理部213が検索する
経路テーブルを格納する経路テーブルメモリ214を有
する。
【0100】次に、ルーティングプロセッサ210にお
けるパケットの中継処理の動作を説明する。なお、パケ
ット中継処理を行う前に、ルータ管理部(図39の26
0)が、ルータ装置内通信手段220に接続しているル
ーティングプロセッサ210に、それぞれの経路テーブ
ルを配布しており、各ルーティングプロセッサ210は
経路テーブルメモリ214に経路テーブルを格納してい
る状態とする。
【0101】転送処理部211はパケットバッファメモ
リ212に格納されたパケットデータの内、パケットの
ヘッダ情報を抽出して経路検索処理部213へ渡し、経
路検索処理部213は、受信パケットのヘッダ内の宛先
アドレスを用いて経路テーブルメモリ214内に格納さ
れている経路テーブルの検索を行い、検索結果として、
経路情報を転送処理部211へ渡す。経路情報は、経路
が存在するか否かのFlag、図34乃至図37に示す
Flag、次転送先アドレス、出力ルーティングプロセ
ッサ(図39の210)の番号、及び、出力ポート(図
39の240)の番号である。転送処理部211は、経
路検索処理部213から渡された経路情報に従い、出力
先が自ルーティングプロセッサ210に繋がるポート
(図39の240)の場合、ネットワークインタフェー
ス部(図39の230)にパケットを転送し、他ルーテ
ィングプロセッサ(図39の210)に繋がるポート
(図39の240)の場合、ルータ装置内通信手段(図
39の220)にパケットを転送する。
【0102】以上、2分木検索方式(以下方式1と呼
ぶ)、2のp乗分木検索方式(以下方式2と呼ぶ)、お
よびマスク長mビットのノードを経路テーブルメモリ2
14上に展開する方式(以下方式3と呼ぶ)という各検
索方式について説明した。次に、図40の経路検索処理
回路200が上記の方式を用いて経路検索処理を行う際
のフローチャートについて図41を用いて説明する。図
41のフローチャートでは、方式2と方式3とを組み合
わせた場合の例を示す。この例では、経路アドレスの第
0ビットから第(m−1)ビットの値に従って、経路テー
ブルメモリ214上の決まった位置に展開されたノード
の一つを選択する。以下ではこのように選択し、検索の
最初に読込むノードを初段ノードと呼ぶ。第mビット以
降は経路アドレスをpビットずつ検索し、2のp乗分木
を検索する。図40の経路テーブルメモリ214には、
上記の方式2と方式3の検索方式に従った2のp乗分木
ノードデータ、および、次転送先アドレス、出力ルーテ
ィングプロセッサ210の番号、及び、出力ポート24
0の番号が格納されているとする。
【0103】なお、以下では方式2と方式3とを組合わ
せた例について説明するが、方式1と方式3とを組み合
わせた場合でも同様なフローチャートに従うことで実現
可能である。また、このフローチャートに従うことによ
り、ソフトウェアでもハードウェアでも経路検索処理を
実現することができる。ソフトウェアで実現する場合、
図40の経路検索処理部213にはCPUを用いればよ
い。またハードウェアで実現する場合、図40の経路検
索処理部213を専用LSIで構成すればよい。
【0104】図41の処理810は木構造検索処理であ
り、処理811は経路情報出力処理である。まず、木構
造検索処理810について説明する。
【0105】図40の経路検索処理部213は、受信パ
ケットの宛先IPアドレスと初段ノードのマスク長mの
値から初段ノードへのポインタを生成し、このポインタ
と、宛先IPアドレスの第mビットから第(m+p−1)
ビットの値(以下、検査ビット値と呼ぶ)に従って経路テ
ーブルメモリ214に格納されている初段ノードの読み
込みアドレスを生成し、経路テーブルメモリ214から
該初段ノードの一部を読み込む(図41の800)。
【0106】次に、図40の経路検索処理部213は、
受信パケットの宛先IPアドレスにノードのマスク長だ
け上位ビットから有効とするマスクをかけたものと、ノ
ードの経路アドレスとを比較し(図41の801)、不
一致の場合は木構造検索処理(図41の810)を終了
する(図41の809)。一致する場合は図41の処理8
02に進む。図41の処理802、および803は、最
長一致検索を実現するための経路情報の更新処理であ
る。経路情報は、図34乃至図37に示すFlag、次
転送先アドレス、出力ルーティングプロセッサ(図39
の210)の番号、及び、出力ポート(図39の24
0)の番号である。図40の経路検索処理部213は、
ノードデータの内のFlag中のエントリ有りフラグを
検査し、エントリ有りフラグの値が1の場合(図41の
812)のみ、読み込んだノード内の新たな経路情報を
レジスタに保持する(図41の803)。エントリ有りフ
ラグの値が0の場合は更新処理を行わない(図41の8
13)。
【0107】次に、図40の経路検索処理部213は、
図40の経路テーブルメモリ214が出力するノードデ
ータの内の次ノードへのポインタがNULLかどうかを
判定し、NULLの場合は木構造検索処理810を終了
する。NULLでない場合はそのポインタと、新たな検
査ビットの値に従い経路テーブルメモリ214に格納さ
れている初段ノードの読み込みアドレスを生成し、経路
テーブルメモリ214から該ノードデータを読み込む
(図41の805)。
【0108】上記の処理を繰り返すことにより、2のp
乗分木方式の経路検索を行うことができる。
【0109】次に、図41の経路情報出力処理811に
ついて説明する。木構造検索処理の結果、図40の経路
検索処理部213内に経路情報が保持されている。図4
0の経路検索処理部213は、まず上記のエントリ有り
フラグを調べ(図41の806)、その値が0の場合は経
路検索処理を終了し、転送処理部211へ検索結果無し
という通知をする。エントリ有りフラグの値が1の場合
は、検索の結果、あるエントリに一致したことになるた
め、経路情報を転送処理部211へ出力する。
【0110】次に、本発明の一実施例として、図41で
説明した検索方式をハードウェアで実現する場合の構成
例を図42、図43を用いて説明する。
【0111】図42に経路検索処理部213をハードウ
ェアで構成した場合の構成例を示す。経路検索処理部2
13は、木構造検索回路2130と、読み込みアドレス
生成回路2131と、経路検索処理制御回路2132と
からなる。
【0112】木構造検索回路2130は、経路テーブル
メモリ214に格納された2のp乗分木構造を検索し、
次に読み込むべきノードのポインタの生成、受信パケッ
トの宛先IPアドレスの検査ビット値の抽出、木構造検
索の終了判定、検索結果である経路情報の候補の更新を
行う。また、読み込みアドレス生成回路2131は、木
構造検索回路2130から出力される読み込むべきノー
ドへのポインタ、および検査ビット値に従い、実際に読
み込むノードの一部のワードのメモリアドレスを生成す
る。また、経路検索処理制御回路2132は、経路検索
処理部213全体の制御(各回路の動作タイミングおよ
び動作状態管理など)を行う。
【0113】次に、経路検索処理部213の動作につい
て図42を用いて説明する。また、木構造検索回路21
30の詳細動作については、図43を用いて後述する。
【0114】木構造検索回路2130は、転送処理部2
11から受信パケットの宛先IPアドレスを受け取り、
この宛先IPアドレスとノードのマスク長の値から次ノ
ードへのポインタを生成して、読み込みアドレス生成回
路2131に渡す。また、木構造検索回路2130は、
ノードのマスク長で示される宛先IPアドレスの検査ビ
ット位置の値(検査ビット値)を抽出して、読み込みアド
レス生成回路2131に渡す。
【0115】読み込みアドレス生成回路2131はこの
ノードへのポインタと、検査ビット値と、経路検索処理
制御回路2132からのタイミング信号を用いて、読み
出すべきノードデータが格納されているメモリアドレス
を生成し、メモリ制御回路2132へ送信し、メモリ制
御回路2132は上記メモリアドレスと経路検索処理制
御回路2132からのタイミング信号を用いてメモリ制
御信号を生成し、経路テーブルメモリ214へ転送す
る。上記のメモリ制御信号を受信した経路テーブルメモ
リ214は、対応するノードデータを信号線215を用
いて木構造検索回路へ転送する。
【0116】木構造検索回路2130はこのノードデー
タを用いて、図41の処理801、802、803、8
04、805を行う。これらの処理の詳細は図43で後
述する。図41の処理801および804に対応する判
定処理において木構造検索を終了すると判定した場合
は、木構造検索終了信号を経路検索処理制御回路213
2へ出力し、経路検索処理制御回路2132は、木構造
検索回路2130内に保持された経路情報のうちのエン
トリ有りフラグを調べ、その値が0の場合は経路検索処
理を終了し、転送処理部211へ検索結果無しという通
知をする。エントリ有りフラグの値が1の場合は、経路
情報を出力し検索処理を終了し、次のパケット処理の制
御を行う。
【0117】次に、図42の木構造検索回路2130の
詳細を図43を用いて説明する。
【0118】まず、図41の初段ノードリード処理80
0および次ノードリード処理805に対応する処理につ
いて、図43を用いて説明する。転送処理部211より
信号線216を用いて渡される宛先IPアドレスは、宛
先IPアドレスバッファ213001内に保持され、初
段ノードへのポインタ生成回路213002、検査ビッ
ト抽出回路213006、マスク処理回路213010
に入力される。
【0119】初段ノードへのポインタ生成回路2130
02は、予め図39のルータ管理部260から初段ノー
ドマスク長レジスタ213010に設定された値mに従
い、受信パケットの経路アドレスの第0ビットから第
(m−1)の上位mビットの値を抽出し、このmビットの
値に従って初段ノードへのポインタを生成してアドレス
セレクタ213003に出力する。アドレスセレクタ2
13003は、信号線2134によって図42の経路検
索処理制御回路2132から出力される初段ノード読み
込み/初段ノード以外のノード読み込み選択信号に従
い、初段ノードの読み込み時は、上記の初段ノードへの
ポインタを選択して図42の読み込みアドレス生成回路
2131に出力する。また、アドレスセレクタ2130
03は、初段ノード以外のノードの読み込み時は、次ノ
ードへのポインタバッファ213004に保持されてい
る次ノードへのポインタを選択して読み込みアドレス生
成回路2131に出力する。
【0120】また、上記の処理と並行して、検査ビット
抽出回路213006は、初段ノード読み込み時には、
検査ビット位置セレクタ213005において選択され
て出力される初段ノードマスク長レジスタ213000
の設定値mに従い、経路アドレスの第mビットから第
(m+p−1)ビットまでのpビットの検査ビット値を抽
出して図42の読み込みアドレス生成回路2131へ出
力する。また、初段ノード以外のノードの読み込み時
は、後述する次ノードマスク長バッファ(m1)213
007に保持されている次ノードのマスク長m1が検査
ビット位置セレクタ213005において選択され、こ
の次ノードのマスク長m1が検査ビット抽出回路213
006に入力され、検査ビット抽出回路213006
は、この次ノードのマスク長m1に従い、経路アドレス
の第m1ビットから第(m1+p−1)ビットまでのpビ
ットの検査ビット値を抽出して図42の読み込みアドレ
ス生成回路2131へ出力する。
【0121】図42の読み込みアドレス生成回路213
1およびメモリ制御回路2133は、上記のノードへの
ポインタとpビットの検査ビット値を用いて、図36乃
至図37に示した順にノード内の各ワードのアドレスを
生成し、経路テーブルメモリ214は入力されたメモリ
アドレスに格納されているノードのデータを信号線21
5に出力する。
【0122】信号線215のビット幅が32ビットの場
合、図36で説明した方式を採用するとノードデータの
一回の読み込みワード数は4ワードとなり、これらのデ
ータは図36の表に示した順番で信号線215に出力さ
れ、各バッファ(213004、213007、213
013、213014、213015)に保持される。
各バッファの保持タイミングは経路検索処理制御回路2
132からの制御信号(図示していない)により制御され
る。バッファ213004には次ノードへのポインタが
保持され、バッファ213007には次ノードのマスク
長が保持され、バッファ213013にはノードのサブ
ネットワークアドレスが保持され、バッファ21301
4にはフラグが保持される。
【0123】次に、図41の経路アドレス一致比較処理
801に対応する処理について、図43を用いて説明す
る。初段ノード読み込み時には、マスク長セレクタ21
3009を介して初段ノードマスク長レジスタ2130
00の設定値がマスク処理回路213010に入力され
る。初段ノード以外のノード読み込み時には、マスク長
セレクタ213009を介してマスク長バッファ213
008に保持されているノードのマスク長が入力され
る。このマスク長バッファ213008の値は、一つ前
に読み込んだノードに格納されている次ノードのマスク
長の値であり、次ノードマスク長バッファ213007
に保持されていたものである。次ノードマスク長バッフ
ァ213007の値は、ノードの読み込み毎に更新され
るため、更新される前に、現在読み込んでいるノード
(以下、現ノードと呼ぶ)の経路アドレス一致比較処理に
使用する現ノードのマスク長をマスク長バッファ213
008に保持しておく。
【0124】マスク処理回路213010は、これらの
マスク長だけ上位ビットから有効とするマスクを生成
し、このマスクと、宛先IPアドレスバッファ2130
01から出力される宛先IPアドレスとの論理積をと
り、その結果(以下、マスクした受信パケットの宛先I
Pアドレスと呼ぶ)が一致比較回路213011に入力
される。また、サブネットワークアドレスバッファ21
3013に保持されているノードのサブネットワークア
ドレスも一致比較回路213011に入力される。一致
比較回路213011は、このノードのサブネットワー
クアドレスと、上記で説明した、マスクされた受信パケ
ットの宛先IPアドレスとを比較し、その結果が不一致
となる場合に不一致信号を信号線213019を用いて
木検索終了判定回路213012に出力する。木検索終
了判定回路213012は上記不一致信号を入力し、木
構造検索終了信号を図42の経路検索処理制御回路21
32に出力する。
【0125】また、マスク長バッファ213008の値
は、上記の経路アドレス比較が行われた後、次ノードマ
スク長バッファ213007に保持されている次ノード
のマスク長の値によって更新され、次のノードの読み込
み時のサブネットワークアドレス比較に使用される。
【0126】次に、図41の処理802、および803
に対応する処理について、図43を用いて説明する。
【0127】一致比較回路213011におけるサブネ
ットワークアドレス比較の結果、一致した場合、一致比
較回路213011は信号線213020を用いて一致
信号を更新判定回路213018に出力する。この一致
信号が更新判定回路213018に入力され、かつ、フ
ラグバッファ213014に保持されているフラグの内
のエントリ有りフラグの値が1の場合(図41の812)
のみ、更新判定回路213018は更新信号をフラグ候
補バッファ213016および経路情報候補バッファ2
13017に出力する。更新信号を受信したフラグ候補
バッファ213016は、フラグバッファ213014
に保持されているフラグを新たに保持し、同じく更新信
号を受信した経路情報候補バッファ213017は、経
路情報バッファ213015に保持されている経路情報
を新たに保持する(図41の経路情報更新処理803)。
エントリ有りフラグの値が0の場合は更新判定回路21
3018は更新信号を送信しないので、フラグ候補バッ
ファ213016および経路情報候補バッファ2130
17は更新処理を行わない(図41の813)。
【0128】経路情報として上記のフラグ、及び、経路
情報以外の情報を追加する必要がある場合は、木構造の
ノード内にそれらの情報を追加し、それらの情報を保
持、更新するバッファを新たに追加すればよい。
【0129】次に、図41の次ノードへのポインタがN
ULLかどうかの判定処理804に対応する処理につい
て、図43を用いて説明する。次ノードへのポインタバ
ッファ213004内に保持されている次ノードへのポ
インタは木検索終了判定回路213012に入力され
る。この次ノードへのポインタがNULLの場合、木検
索終了判定回路213012は図42の経路検索処理制
御回路2132に木検索終了信号を出力する。
【0130】以上、図42の木構造検索処理回路213
0の動作を説明したが、ハードウェアで構成するため、
図41の木構造検索処理の中の801、802、80
3、804、805の各処理は逐次処理をする必要はな
く、各処理に必要なデータが各バッファ213004、
213007、213013、213014、2130
15に保持された後に、各処理を開始すればよく、上記
の各処理を並列処理を行うことにより、高速に木構造の
検索を行うことができる。
【0131】
【発明の効果】前述の説明の通り、本発明はルータ等の
ネットワーク中継装置に用いて好適なネットワーク次転
送先検索方法及びそれを用いたネットワーク中継装置で
あり、ネットワーク中継装置が受信したパケットの転送
先アドレスを高速に検索し、ネットワーク中継装置のパ
ケット処理性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明が前提とする一般的なネットワークシス
テムの構成図である。
【図2】ルータにおける経路検索仕様を説明する図であ
る。
【図3】アドレス長3ビットの場合の全てのノードがあ
る2分木を説明する図である。
【図4】アドレス長3ビットの場合の経路テーブル例を
示す図である。
【図5】経路が割り付けられておらず、かつ、経路付き
のノードへの途中経路にもなっていないノードを取り除
いた木を説明する図である。
【図6】アドレス長32ビットの場合の経路テーブル例
を示す図である。
【図7】図6に示した経路テーブルに対応する木を説明
する図である。
【図8】枝別れも経路の割り付けもないノードを取り除
いた木を説明する図である。
【図9】図9はマスク長2ビットのノードをメモリ上に
展開し第0〜第1ビットの検索時間を除いた木を説明す
る図である。
【図10】マスク長kビット目までのノードを経路検索
LSI内に入れた場合のメモリ構成図である。
【図11】従来のパイプライン処理を行わない経路検索
処理のタイムチャートを示す図である。
【図12】マスク長kビット目までのノードを経路検索
LSI内に入れた場合の経路検索のパイプライン処理を
表すタイムチャートを示す図である。
【図13】2分木から8分木への変形時に一つの8分木
ノードにまとめられる2分木ノードを囲んだ木を説明す
る図である。
【図14】2分木から8分木への変形時に一つの8分木
ノードにまとめられる2分木ノードを囲んだ木を説明す
る図である。
【図15】2分木から8分木への変形時に一つの8分木
ノードにまとめられる2分木ノードを囲んだ木を説明す
る図である。
【図16】マスク長が0ビットから始まらないようにビ
ット位置を区切った場合に最初のノードをメモリ上に展
開することにより区切り位置までのビットの検索を行う
木を説明する図である。
【図17】マスク長が0ビットから始まらないようにビ
ット位置を区切った場合に最初のノードをメモリ上に展
開することにより区切り位置までのビットの検索を行う
木を説明する図である。
【図18】図9と組み合わせ、先頭のさらに多くのビッ
ト数の検索時間を除いた木を説明する図である。
【図19】図16と組み合わせ、先頭のさらに多くのビ
ット数の検索時間を除いた木を説明する図である。
【図20】図17と組み合わせ、先頭のさらに多くのビ
ット数の検索時間を除いた木を説明する図である。
【図21】2分木から4分木への変形時に一つの4分木
ノードにまとめられる3つの2分木ノードを2つの2分
木ノード分につぶした木を説明する図である。
【図22】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図23】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図24】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図25】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図26】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
【図27】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図28】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図29】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図30】一つの4分木ノードにまとめられる3つの2
分木ノードの2つの2分木ノードへのつぶし方を説明す
る図である。
【図31】一つの8分木ノードにまとめられる7つの2
分木ノードの4つの2分木ノードへのつぶし方を説明す
る図である。
【図32】木の構成に必要なメモリ量見積もり時の木の
広がりのモデルを説明する図である。
【図33】木を2分木ノードで構成した場合と4、8分
木ノードノードで構成した場合のノードの存在確率を考
慮したメモリ量の比較を示す図である。
【図34】2分木ノードの構造を示す図である。
【図35】4分木ノードの構造を示す図である。
【図36】図36はノードの大きさが大きくなったとき
にノードデータリード時間の増大を防ぐために一つのノ
ード全てを読み込まずに一部だけを読み込む方法を示す
図である。
【図37】条件によっては読み込む必要が無い要素を、
条件に従い読み込まないようにすることで読み込みの時
間を削減することで高速化を図る方法を示す図である。
【図38】ルータ装置の一構成例を示すブロック構成図
である。
【図39】ルータ装置の他の構成例を示すブロック図で
ある。
【図40】本発明の一実施例であるルータ装置内ルーテ
ィングプロセッサのブロック図である。
【図41】本発明の一実施例である経路検索処理部の検
索処理フローチャートである。
【図42】本発明の一実施例である経路検索処理部のブ
ロック図
【図43】本発明の一実施例である、木構造の経路検索
を行う木構造検索処理回路のブロック図である。
【符号の説明】
100、200…ルータ、110…ルーティング制御
部、120…ルータバス、130…ネットワークインタ
フェース部、140…ポート、150…サブネットワー
ク、220…ルータ装置内通信手段、230…ネットワ
ークインタフェース部、240…ポート、250…サブ
ネットワーク、260…ルータ管理部、211…転送処
理部、212…パケットバッファメモリ、213…経路
検索処理部、214…経路テーブルメモリ、215…経
路テーブルメモリリードデータ、216…宛先IPアド
レス、810…木構造検索処理、811…経路情報出力
処理、2130…木構造検索回路、2131…読み込み
アドレス生成回路、2132…経路検索処理制御回路、
2133…メモリ制御回路、2134…タイミング制御
信号、213000…初段ノードマスク長レジスタ、2
13001…宛先IPアドレスバッファ、213002
…初段ノードへのポインタ生成回路、213003…ア
ドレスセレクタ、213004…次ノードへのポインタ
バッファ、213005…検査ビット位置セレクタ、2
13006…検査ビット抽出回路、213007…次ノ
ードマスク長バッファ(m1)、213008…マスク
長バッファ、213009…マスク長セレクタ、213
010…マスク処理回路、213011…一致比較回
路、213012…木検索終了判定回路、213013
…サブネットワークアドレスバッファ、213014…
フラグバッファ、213015…経路情報バッファ、2
13016…フラグ候補バッファ、213017…経路
情報候補バッファ、213018…更新判定回路、21
3019…不一致出力信号、213020…一致出力信
号。
フロントページの続き (72)発明者 赤羽 真一 東京都国分寺市東恋ヶ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 左古 義人 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 田那邊 昇 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】複数のネットワークを接続するネットワー
    ク中継装置であって、前記ネットワークの一つを接続す
    るポートと、前記ポートに接続され、該ポートに接続さ
    れたネットワークとのインタフェースを制御するネット
    ワークインタフェース部と、前記ネットワークインタフ
    ェース部と装置内通信路を介して接続され、前記ネット
    ワークインタフェースから受け取ったパケットのルーテ
    ィング処理を行うルーティング処理部とを有し、 前記ルーティング処理部は、経路情報保持手段と、前記
    経路情報保持手段に保持された経路情報に基づいて前記
    受け取ったパケットの次に転送すべき経路を算出する次
    経路検索手段とを包含し、 前記次経路検索手段は、前記受け取ったパケットの宛先
    アドレスの上位ビットから1ビットずつ検査してゆく2
    分木検索のp(pは2以上の整数)段分を、一つの2の
    p乗分木にし、2分木のp数段の検索を1段で行うこと
    を特徴とするネットワーク中継装置。
  2. 【請求項2】前記次経路検索手段は、一つの2分木ノー
    ドと、その直下につながるp−1段分の合計2のp乗−
    1個分の2分木ノードを一つの前記2のp乗分木ノード
    にまとめ、まとめられる最下段の2の(p−1)乗個の
    2分木ノードに、それより上段のノードに割り付けられ
    ていた経路データを埋め込み、前記2のp乗分木ノード
    を2分木を2の(p−1)乗個分併せた形で構成するこ
    とを特徴とする請求項1記載のネットワーク中継装置。
  3. 【請求項3】前記次経路検索手段は、2分木を複数個併
    せるときに、一つだけ持てば良い要素を一つだけ持つよ
    うにすることを特徴とする請求項2記載のネットワーク
    中継装置。
  4. 【請求項4】前記次経路検索手段は、2のp乗分木ノー
    ドを検索のために読むときにノード全てを読まずに、2
    のp乗分木ノードを作成するときに併せた2の(p−
    1)乗個の2分木ノードの内の、いずれか一つに対応す
    るデータのみを読むことを特徴とする請求項2記載のネ
    ットワーク中継装置。
  5. 【請求項5】前記次経路検索手段は、各ノードにそのノ
    ード自身のマスク長を格納せずにそのノードの直ぐ下に
    繋がるノードのマスク長を格納することにより、ノード
    のマスク長を、そのノードのデータを読む前に知り、宛
    先アドレスの、ノードのマスク長で示されるビット位置
    から、そのビット位置+p−1までの値に従い、ノード
    のデータの内の読み込む部分を選択することを特徴とす
    る請求項2記載のネットワーク中継装置。
  6. 【請求項6】前記次経路検索手段は、各ノードの最初に
    読み込むデータ内に、そのノードに経路が割り付けられ
    ているか否かを示すフラグを設け、最初に、このフラグ
    を読み込み、経路が割り付けられていないノードでは経
    路情報を読み込まないことを特徴とする請求項4記載の
    ネットワーク中継装置。
  7. 【請求項7】前記ネットワーク中継装置はルータである
    ことを特徴とする請求項1記載のネットワーク中継装
    置。
  8. 【請求項8】複数のネットワークを接続するネットワー
    ク中継装置であって、前記ネットワークの一つを接続す
    るポートと、前記ポートに接続され、該ポートに接続さ
    れたネットワークとのインタフェースを制御するネット
    ワークインタフェース部と、前記ネットワークインタフ
    ェース部と装置内通信路を介して接続され、前記ネット
    ワークインタフェースから受け取ったパケットのルーテ
    ィング処理を行うルーティング処理部とを有し、 前記ルーティング処理部は、経路情報保持手段と、前記
    経路情報保持手段に保持された経路情報に基づいて前記
    受け取ったパケットの次に転送すべき経路を算出する次
    経路検索手段とを包含し、 前記次経路検索手段は、次経路の検索を宛先アドレスの
    上位ビットから1ビットずつ検査してゆく2分木検索に
    より行い、検査を行うビット位置を、マスク長に対応さ
    せることによりマスク付きの一致検索を行い、マスク長
    m(mは自然数)ビットのノードを、2のm乗個、記憶
    手段上の決まった位置に展開し、それぞれのマスク長m
    ビットのノードを、それぞれ、宛先アドレスの第0ビッ
    トから第m−1ビットまでが取りうる値に1対1に対応
    させ、宛先アドレスの第0ビットから第m−1ビットの
    値に従い、マスク長mビットのノードの一つを選択する
    ことを特徴とするネットワーク中継装置。
  9. 【請求項9】複数のネットワークを接続するネットワー
    ク中継装置であって、前記ネットワークの一つを接続す
    るポートと、前記ポートに接続され、該ポートに接続さ
    れたネットワークとのインタフェースを制御するネット
    ワークインタフェース部と、前記ネットワークインタフ
    ェース部と装置内通信路を介して接続され、前記ネット
    ワークインタフェースから受け取ったパケットのルーテ
    ィング処理を行うルーティング処理部とを有し、 前記ルーティング処理部は、経路情報保持手段と、前記
    経路情報保持手段に保持された経路情報に基づいて前記
    受け取ったパケットの次に転送すべき経路を算出する次
    経路検索手段とを包含し、 前記次経路検索手段は、次経路の検索を宛先アドレスの
    上位ビットから1ビットずつ検査してゆく2分木検索に
    より行い、マスク長0ビットからkビットまでの2分木
    ノードを、先頭からのビット数が所定数の部分を前記次
    経路検索手段の内蔵記憶手段内に置き、マスク長k+1
    ビット以降の2分木ノードを検索手段の外部記憶手段内
    に置き、第0から第kビットまでの検索処理と、第k+
    1ビット以降の検索処理をパイプライン処理することを
    特徴とするネットワーク中継装置。
  10. 【請求項10】複数のネットワークを接続し、前記ネッ
    トワークの一つから受け取ったパケットを経路情報に基
    づいて次の転送先に送出するネットワーク中継装置にお
    けるネットワーク次転送先検索方法であって、 前記受け取ったパケットの宛先アドレスの上位ビットか
    ら1ビットずつ検査してゆく2分木検索のp(pは2以
    上の整数)段分を、一つの2のp乗分木にし、2分木の
    p数段の検索を1段で行うことを特徴とするネットワー
    ク次転送先検索方法。
  11. 【請求項11】前記ルーティング処理部内次経路検索手
    段で行う次経路検索処理をハードウエアで行うことによ
    り、ノード内のデータを読み出すアドレスの計算処理と
    経路情報の読み込み処理を並列に行うことを特徴とする
    請求項1乃至請求項9のいずれかに記載のネットワーク
    中継装置。
JP31723598A 1998-03-23 1998-11-09 ネットワーク中継装置及びネットワーク次転送先検索方法 Expired - Lifetime JP3877883B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP11-999999 1997-09-22
PCT/JP1998/001232 WO1999049618A1 (fr) 1998-03-23 1998-03-23 Repeteur reseau et procede de recherche de destination de transfert suivante dans le reseau

Publications (2)

Publication Number Publication Date
JPH11341076A true JPH11341076A (ja) 1999-12-10
JP3877883B2 JP3877883B2 (ja) 2007-02-07

Family

ID=14207866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31723598A Expired - Lifetime JP3877883B2 (ja) 1998-03-23 1998-11-09 ネットワーク中継装置及びネットワーク次転送先検索方法

Country Status (3)

Country Link
US (1) US6874033B1 (ja)
JP (1) JP3877883B2 (ja)
WO (1) WO1999049618A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
JP2003143198A (ja) * 2001-10-23 2003-05-16 Internatl Business Mach Corp <Ibm> ルーティング処理装置およびルーティング方法
US6874033B1 (en) 1998-03-23 2005-03-29 Hitachi, Ltd. Network repeater and network next transfer desitination searching method
JP2015162748A (ja) * 2014-02-26 2015-09-07 日本電信電話株式会社 検索木生成装置及び方法及びプログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934283B1 (en) * 1999-11-08 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for source defined packet routing
US7447197B2 (en) * 2001-10-18 2008-11-04 Qlogic, Corporation System and method of providing network node services
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US20040022200A1 (en) * 2002-07-31 2004-02-05 Sun Microsystems, Inc. Method, system, and program for providing information on components within a network
US20080008202A1 (en) * 2002-10-31 2008-01-10 Terrell William C Router with routing processors and methods for virtualization
EP1629657A2 (en) * 2003-06-03 2006-03-01 Sentec Limited System and method for wireless mesh networking
US7765323B2 (en) * 2006-12-29 2010-07-27 Intel Corporation Sink device addressing mechanism
US20100156604A1 (en) * 2008-12-22 2010-06-24 General Electric Company Rfid tag reading apparatus and method
US9749220B2 (en) 2014-09-19 2017-08-29 Telefonaktiebolaget L M Ericsson (Publ) Automated determination of tree attributes and assignment of receiver identifiers by distributed election in multicast architectures relying on packets identifying intended receivers
US10284457B2 (en) * 2016-07-12 2019-05-07 Dell Products, L.P. System and method for virtual link trunking

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0669928A (ja) * 1992-08-17 1994-03-11 Fuji Xerox Co Ltd ルーティング方式
JP3371006B2 (ja) * 1993-03-03 2003-01-27 株式会社日立製作所 テーブル検索方法及びルータ装置
US5506838A (en) * 1994-12-29 1996-04-09 Emc Corporation Packet propagation and dynamic route discovery apparatus and techniques
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US6389031B1 (en) * 1997-11-05 2002-05-14 Polytechnic University Methods and apparatus for fairly scheduling queued packets using a ram-based search engine
US6370144B1 (en) * 1997-11-05 2002-04-09 Polytechnic University Methods and apparatus for shaping queued packets using a two-dimensional RAM-based search engine
US6173384B1 (en) * 1998-02-11 2001-01-09 Nortel Networks Limited Method of searching for a data element in a data structure
WO1999049618A1 (fr) 1998-03-23 1999-09-30 Hitachi, Ltd. Repeteur reseau et procede de recherche de destination de transfert suivante dans le reseau
JP3735471B2 (ja) 1998-10-05 2006-01-18 株式会社日立製作所 パケット中継装置およびlsi

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874033B1 (en) 1998-03-23 2005-03-29 Hitachi, Ltd. Network repeater and network next transfer desitination searching method
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
JP2003143198A (ja) * 2001-10-23 2003-05-16 Internatl Business Mach Corp <Ibm> ルーティング処理装置およびルーティング方法
JP2015162748A (ja) * 2014-02-26 2015-09-07 日本電信電話株式会社 検索木生成装置及び方法及びプログラム

Also Published As

Publication number Publication date
US6874033B1 (en) 2005-03-29
JP3877883B2 (ja) 2007-02-07
WO1999049618A1 (fr) 1999-09-30

Similar Documents

Publication Publication Date Title
JP3735471B2 (ja) パケット中継装置およびlsi
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US6862287B2 (en) Method and apparatus for a four-way hash table
US6633565B1 (en) Apparatus for and method of flow switching in a data communications network
US7219184B2 (en) Method and apparatus for longest prefix matching in processing a forwarding information database
US8724624B2 (en) Systolic array architecture for fast IP lookup
EP1605646B1 (en) Longest prefix matching using tree bitmap data structures
JPH11341076A (ja) ネットワ―ク中継装置及びネットワ―ク次転送先検索方法
US20040254909A1 (en) Programming routes and access control lists in comparison tree data structures and their use such as in performing lookup operations
US6570866B1 (en) High-speed flexible longest match retrieval
JP2000115243A5 (ja)
JPH09307581A (ja) ブリッジ装置
JP2003196295A (ja) ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法
CN110460529B (zh) 一种内容路由器转发信息库存储结构的数据处理方法和芯片
US6658003B1 (en) Network relaying apparatus and network relaying method capable of high-speed flow detection
JP2006262336A (ja) フレーム転送方法及び装置
US20130250954A1 (en) On-chip router and multi-core system using the same
US20040210588A1 (en) Methods and apparatus for address lookup
JP2003224581A (ja) 最長一致検索回路および方法およびプログラムおよび記録媒体
JP3970448B2 (ja) 情報中継方法および装置
JPH10255485A (ja) 連想メモリおよびネットワークフレーム中継器
JPH05191411A (ja) パターン探索方法及び装置
CN111865804A (zh) 一种通过硬件发包机制提升路由下发效率的方法及系统
KR100560420B1 (ko) 트라이를 이용한 인터넷 프로토콜 주소 검색 방법
JP2003500901A (ja) 最長一致プレフィックス・ルックアップ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040323

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040323

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20040323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060331

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061101

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term