JP3970448B2 - Information relay method and apparatus - Google Patents

Information relay method and apparatus Download PDF

Info

Publication number
JP3970448B2
JP3970448B2 JP36298798A JP36298798A JP3970448B2 JP 3970448 B2 JP3970448 B2 JP 3970448B2 JP 36298798 A JP36298798 A JP 36298798A JP 36298798 A JP36298798 A JP 36298798A JP 3970448 B2 JP3970448 B2 JP 3970448B2
Authority
JP
Japan
Prior art keywords
node
information
route
binary tree
tree
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
JP36298798A
Other languages
Japanese (ja)
Other versions
JP2000188608A (en
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.)
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
Priority to JP36298798A priority Critical patent/JP3970448B2/en
Publication of JP2000188608A publication Critical patent/JP2000188608A/en
Application granted granted Critical
Publication of JP3970448B2 publication Critical patent/JP3970448B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、情報中継技術に関し、特に、コンピュータネットワークシステム内のパケットを中継するルータ装置等において、受信したパケットの宛先アドレスから、当該パケットを次に送信すべき中継先を決定するために使用する経路情報テーブル作成技術等に適用して有効な技術に関する。
【0002】
【従来の技術】
コンピュータ技術および情報ネットワーク技術の進歩に呼応して、いわゆるインターネット等に代表されるように、複数のコンピュータを情報ネットワークを介して接続したコンピュータネットワークが広く普及してきている。さらにこのコンピュータネットワーク内で授受されるデータとして、映像や音声等のいわゆるマルチメディアデータのように、大容量でかつ実時間性が重要なデータが増えつつあり、コンピュータネットワーク内におけるデータの中継を行うルータ装置等の情報中継装置においても、通信媒体そのものの通信速度並の中継動作の高速化が要求されている。
【0003】
本発明の参考技術である情報中継技術を以下、図22に従い説明する。参考技術のルータ装置は経路検索部F100、制御経路検索部F200、付加機構部F300を保持する。
【0004】
経路検索部F100は次に送信すべき装置のアドレス及びその装置が接続されている回線情報を持つ経路情報エントリEを登録する経路検索テーブルTBL100を保持する。経路情報エントリEはサブネットワークアドレスとマスク長、及び回線情報、次ホップアドレス、サブネットワークが直接接続されているか否かの情報(以後次ホップ情報と称す)より構成される。経路検索部F100はユーザが設定したり、ルーティングプロトコルなどでルータ装置間の接続情報のやりとりによって得られた経路情報エントリEを経路検索テーブルTBL100に追加、削除を行う。また経路検索部F100はパケットを受信した場合に経路検索テーブルTBL100の経路情報エントリEのサブネットワークアドレスとマスク長の組を検索キーとして、パケットの宛先アドレスと比較し、一致する経路情報エントリEが存在するか検索する。
【0005】
制御経路検索部F200はパケット中継に必要な経路情報以外の制御経路情報エントリCEを登録する制御経路テーブルTBL200を保持する。制御経路情報エントリCEは付加機構部に転送すべき、制御経路アドレスより構成される。制御経路検索部F200は経路検索部F100で受信したパケットの検索処理を行った後に、制御経路検索テーブルTBL200の制御経路情報エントリCEの制御経路アドレスとパケットの宛先アドレスを比較し、一致する制御経路情報エントリCEが存在するか検索する。一致する制御経路情報エントリCEが存在すれば、パケットを付加機構部F300に転送する。一致する制御経路情報エントリCEが存在しなければ、経路検索部F100の検索結果に従い、パケットを送信する。
【0006】
上記の検索仕様に従った経路検索方法として2分木構成によるRadishアルゴリズムがある。Radishアルゴリズムは、左右にポインタを持つ複数の頂点(ノード)をポインタでつないだ木から構成される木構造の各ノードに経路エントリをマップし、この木を辿るときには、各ノードの左右のどちらかのポインタを辿り次のノードに移動することにより、目的の経路エントリがマップされたノードにたどり着くアルゴリズムである。
【0007】
まず、図23を用い、木の構造を説明する。考え方はビット長には依存しないので、図23では、理解し易いようアドレス長を3ビットとして説明する。
【0008】
図23に示すように、各ノードを、木の上から順に、マスク長0ビット、1ビット、2ビット、3ビットのノードと呼ぶ。
【0009】
マスク長0ビットのノードN0000では宛先アドレスの第0ビットが0か1かに従い左/右のポインタを辿ることによりマスク長1ビットのノードN0001,N1001に移り、マスク長1ビットのノードでは第1ビットが0か1かに従い左/右のポインタを辿ることによりマスク長2ビットのノードN0002,N0102,N1002,N1102に移り、マスク長2ビットのノードでは第2ビットが0か1かに従い左/右のポインタを辿ることによりマスク長3ビットのノードN0003,N0013,N0103,N0113,N1003,N1013,N1103,N1113に移る。
【0010】
検索したい宛先アドレスについて、この木のマスク長0ビットのノードN0000から順に、各ビットが0か1かに従いポインタを辿った場合、マスク長0ビットのノードは宛先アドレスがどの場合にも通過し、マスク長1ビットのノードN0001,N1001は左から順に宛先アドレスの各ビットが0XX,1XXの場合に通過し、マスク長2ビットのノードN0002,N0102,N1002,N1102は左から順に宛先アドレスの各ビットが00X,01X,10X,11Xの場合に通過し、マスク長3ビットのノードN0003,N0013,N0103,N0113,N1003,N1013,N1103,N1113は左から順に宛先アドレスの各ビットが000,001,010,011,100,101,110,111の場合に通過する。ここで、Xは、そのビット値が0または1のどちらでも良いことを示す。
【0011】
従って、マスク長0ビットのノードN0000は、宛先アドレスがサブネットワークアドレス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,N0103,N0113,N1003,N1013,N1103,N1113は、宛先アドレスがサブネットワークアドレス000/3,001/3,...,111/3に属する場合に通過する。ここで、表記法″sss/m″の″sss″はサブネットワークアドレス,mはマスク長を表すものとする。
【0012】
上記の通り、この木の各ノードは、サブネットワークアドレスとマスク長が異なる全サブネットに1対1に対応している。
【0013】
そこで、図24に示す経路情報エントリに対応するノードN0000,N0013,N0102,N1001,N1103に″*″を付け、検索したい宛先アドレスDA011を、この木の上から各ビットが0か1かに従いポインタを辿ったときに通過する″*″を付けたノードN0000,N0102が、マスク付きの検索で一致するエントリに対応することが分かる。そこで、経路情報エントリが複数一致した場合は最もマスク長が長いサブネットワークを選択する、という規則に対応し、一致した″*″付きノードN0000,N0102の内、最も末端に近いノードN0102に割り付けられた経路情報を、経路テーブルの検索結果とする。
【0014】
上記検索方法から分かるように、″*″が付いておらず、かつ″*″付きのノードにたどり着くための途中経路にもなっていないノードN0003,N0103,N0113,N1003,N1013,N1113,N1002は木から取り除いても、検索結果には影響しない。むしろ、最下のノードに″*″が付いていないときは最下まで移動せずに検索が終了するために効率的である。そこで、″*″が付いておらず、かつ″*″付きのノードにたどり着くための途中経路にもなっていないノードを木から取り除くと図25のようになる。
【0015】
更に左右の片方のポインタだけに次のノードがつながり、かつ経路情報がマップされていないノードN0002,N1102を木から取り除き、N0001,N1001の直ぐ下にそれぞれノードN0013,N1103を付ける。その結果、図26に示す形になる。このように途中のノード列を取り除くことを、以後、木の縮退と呼ぶ。
【0016】
2分木構造をとる経路管理テーブルへ経路情報エントリの追加、削除する方法について説明する。
【0017】
図27は2分木への経路情報追加例である。図27(a)はエントリ追加前の経路管理テーブル、図27(b)はエントリ追加後の経路管理テーブルである。図27を用いて、2分木構造をとる経路管理テーブルに経路情報エントリ及び制御経路情報エントリを追加する方法について説明する。エントリを追加することで発生するノードの追加位置を決定するために初段ノードから下段方向に検索していき、検索の対象となっているノード(以下現在ノードと称す)と追加するエントリのサブネットワークアドレスとマスク長を比較し、4つの判定条件に当てはまる現在ノードを検出する。以下に4つの判定条件を示す。
【0018】
(A−1)現在ノードのサブネットワークアドレスとマスク長が一致した時。
【0019】
(A−2)現在ノードとサブネットワークアドレスが不一致になった時。
【0020】
(A−3)マスク長が現在ノードのマスク長より大きく、現在ノードのサブネットワークアドレスと一致しており、次に検索すべき子ノード方向のポインタがNULLである時。
【0021】
(A−4)マスク長が現在ノードのマスク長よりも小さく、サブネットワークアドレスが一致した時。
【0022】
ただし、ネットワークアドレスの比較は、現在ノードと追加ノードのどちらか小さい方のマスク長により比較される。4つの判定条件にそれぞれ当てはまる例を以下に示す。
【0023】
追加するエントリのサブネットワークアドレス、マスク長が133.5.16.0/21の場合、判定条件(A−1)に当てはまる。図27(a)において現在ノードをノードS1→S2→S4→S5と移動していき、ノードS5で判定条件(A−1)に当てはまる。判定条件(A−1)に当てはまる場合、図27(b)に示すように追加する経路情報ノードは分岐ノードであるため、分岐ノードS5のエントリに経路情報を書き込み、経路情報ノードS5に変更する。
【0024】
追加するエントリのサブネットワークアドレス、マスク長が133.5.19.0/24の場合、判定条件(A−2)に当てはまる。図27(a)において現在ノードをノードS1→S2→S4→S5→S6と移動していき、ノードS6で判定条件(A−2)に当てはまる。判定条件(A−2)に当てはまる場合、図27(b)に示すように経路情報ノードSA1を追加し、現在ノードS6と経路情報ノードSA1を分岐する親ノードが存在しないので分岐ノードSA2を追加し、分岐ノードSA2の親ノードになったノードS5の左の子ノード方向のポインタをノードS6からノードSA2に変更する。
【0025】
追加するエントリのサブネットワークアドレス、マスク長が133.4.1.0/24の場合、判定条件(A−3)に当てはまる。図27(a)において現在ノードをノードS1→S2→S3と移動していき、ノードS3で判定条件(A−3)に当てはまる。判定条件(A−3)に当てはまる場合、図27(b)に示すように経路情報ノードSA3を追加し、経路情報ノードSA3の親ノードにあたるS3の左の子ノード方向のポインタをNULLから経路情報ノードSA3に変更する。
【0026】
追加するエントリのサブネットワークアドレス、マスク長が133.5.22.0/23の場合、判定条件(A−4)に当てはまる。図27(a)において現在ノードをノードS1→S2→S4→S5→S7と移動していき、ノードS7で判定条件(A−4)に当てはまる。判定条件(A−4)に当てはまる場合、図27(b)に示すように経路情報ノードSA4を追加し、経路情報ノードSA4の親ノードにあたるノードS5の左の子ノード方向のポインタをノードS7から経路情報ノードSA4に変更する。
【0027】
図28は2分木への経路情報削除例である。図28(a)はエントリ削除前の経路管理テーブル、図28(b)はエントリ削除後の経路管理テーブルである。図28を用いて、2分木構造をとる経路管理テーブルから経路情報エントリ及び制御経路情報エントリを削除する方法について説明する。エントリを削除することで発生するノードの削除位置を決定するために初段ノードから下段方向に検索していき、削除するエントリのサブネットワークアドレスとマスク長が一致する現在ノード(以下削除対象ノードと称す)を検出する。現在ノードが以下に示す4つの判定条件のうち、1つに当てはまる。
【0028】
(D−1)削除対象ノードが2つの子ノードを持つ時。
【0029】
(D−2)削除対象ノードが子ノードを持たず、親ノードが経路情報を持たない(但し初段ノードは除く)時。
【0030】
(D−3)削除対象ノードが子ノードを持たず、親ノードが経路情報を持っている時。
【0031】
(D−4)削除対象ノードが1つの子ノードを持つ時。
【0032】
4つの判定条件にそれぞれ当てはまる例を以下に示す。
【0033】
削除するエントリのサブネットワークアドレス、マスク長が133.5.16.0/21の場合、判定条件(D−1)に当てはまる。図28(a)において現在ノードをノードS1→S2→S4→S5と移動していき、ノードS5で判定条件(D−1)に当てはまる。判定条件(D−1)に当てはまる場合、図28(b)に示すように削除する経路情報ノードS5は分岐ノードでもあるため、ノードS5のエントリの経路情報を削除し、分岐ノードS5に変更する。
【0034】
削除するエントリのサブネットワークアドレス、マスク長が133.5.19.0/24の場合、判定条件(D−2)に当てはまる。図28(a)において現在ノードをノードS1→S2→S4→S5→SD2→SD1と移動していき、ノードSD1で判定条件(D−2)に当てはまる。判定条件(D−2)に当てはまる場合、図28(b)に示すように削除対象ノードSD1とノードS6の親ノードにあたる分岐ノードSD2の親ノードにあたるノードS5の左の子ノード方向のポインタをノードSD2からノードS6に変更する。続いて分岐ノードSD2を削除し、削除対象ノードSD1を削除する。
【0035】
削除するエントリのサブネットワークアドレス、マスク長が133.4.1.0/24の場合、判定条件(D−3)に当てはまる。図28(a)において現在ノードをノードS1→S2→S3→SD3と移動していき、ノードSD3で判定条件(D−3)に当てはまる。判定条件(D−3)に当てはまる場合、図28(b)に示すように削除対象ノードSD3は末端ノードのため、削除対象ノードSD3の親ノードにあたるノードS3の左の子ノード方向のポインタを削除対象ノードSD3からNULLに変更し、削除対象ノードSD3を削除する。
【0036】
削除するエントリのサブネットワークアドレス、マスク長が133.5.22.0/23の場合、判定条件(D−4)に当てはまる。図28(a)において現在ノードをノードS1→S2→S4→S5→SD4と移動していき、ノードSD4で判定条件(D−4)に当てはまる。判定条件(D−4)に当てはまる場合、図28(b)に示すように削除対象ノードSD4の親ノードにあたるノードS5の左の子ノード方向のポインタを削除対象ノードSD4から削除対象ノードの子ノードS7に更新し、削除対象ノードSD4を削除する。
【0037】
2分木構成によるRadishアルゴリズムを更に高速化する方法として以下に述べる「ネットワークの次転送先高速検索技術」がある。図29に示すように「ネットワークの次転送先高速検索技術」の経路検索テーブルはマスク長mビットの初段ノードを2のm乗個保持する2のp乗分木構造をとる。参考技術の2分木構成によるRadishアルゴリズムは検索を宛先アドレスの上位ビットから1ビットずつ検索していくのに対し、図29の「ネットワークの次転送先高速検索技術」は2分木のp段分を一つの2のp乗分木にし、2分木のp段を1回の検索で行うことにより、検索処理時間を1/pに短縮し、検索処理の高速化を図っている。また、「ネットワークの次転送先高速検索技術」はマスク長mビットの初段ノードを2のm乗個、記憶手段上の決まった位置に展開し、それぞれのマスク長mビットのノードを、それぞれ、宛先アドレスの第0ビットから第(m−1)ビットまでが取りうる値に対応させ、受信パケットの宛先アドレスの第0ビットから第(m−1)ビットの値に従い、マスク長mビットの経路情報エントリの一つを選択することにより、最初のmビット分の検索時間を無くして検索処理の高速化を図っている。
【0038】
【発明が解決しようとする課題】
上述の参考技術のように経路検索テーブルとして、マスク長mビットの初段ノードを2のm乗個保持する2のp乗分木構造を採用した場合には、検索処理の高速化が可能であるが、コンピュータネットワークの構成の変化に応じて動的に経路検索テーブルを更新する場合には、更新処理と検索処理を同一の2のp乗分木構造に対して実行する必要があるため、更新処理の間は経路検索が停止され、検索速度が低下するという懸念がある。
【0039】
経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行う場合には、追加、削除、変更の対象となっているノードが木構造から分離されている間に検索を行うと誤検索が懸念され、やはり、経路検索を停止する必要がある。
【0040】
さらに、参考技術では、ブロードキャスト等の特別なパケットについては、通常のパケットとは別の検索テーブルに登録して処理していたため、コンピュータネットワークの機能拡張の作業や検索処理が煩雑になる、という技術的課題もある。
【0041】
本発明の目的は、2分木構造によるRadish Treeを2のp乗分木構造に動的に変換して高速化を図ることが可能な情報中継技術を提供することにある。
【0042】
本発明の目的は、経路制御情報の更新に伴う経路検索停止時間を短縮して、中継制御の高速化を実現することが可能な情報中継技術を提供することにある。
【0043】
本発明の他の目的は、2分木構造によるRadish Treeを2のp乗分木構造に変換して高速化を図る場合において、2のp乗分木構造の動的な更新を、より短い経路検索停止時間で的確に行うことが可能な情報中継技術を提供することにある。
【0044】
本発明の他の目的は、経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行う場合において、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を行うことで、検索中断時間を最小化することが可能な情報中継技術を提供することにある。
【0045】
本発明の他の目的は、コンピュータネットワークの特別な機能に割り当てられた制御経路情報を経路検索テーブルに付加することにより、コンピュータネットワークの機能の拡張を容易にすることが可能な情報中継技術を提供することにある。
【0046】
【課題を解決するための手段】
本発明では、ルータ装置等の情報中継装置において、経路検索部を、受信したパケットの転送先を検索する経路検索部と経路情報エントリの追加、削除を行う経路管理部に分離する。経路管理部は経路検索部が保持する2のp乗分木構成による経路検索テーブルを生成するための2分木構成による経路管理テーブルを保持する。経路検索テーブルの各々の2のp乗分木ノードは経路検索に必要な子ノードの情報のみを保持し、経路管理テーブルの2分木ノードは親ノード、子ノードの情報を保持する。この親ノード、子ノード情報を基に経路管理部は経路情報の追加、削除処理が発生した場合に、経路管理テーブルの2分木ノード間の親子関係から追加、削除、変更をする2分木ノードの位置を決定して2分木構造を更新する。次に該2分木ノードのサブネットワークアドレスとマスク長から該2分木ノードを含む2のp乗分木ノードの位置を決定する。次に該2のp乗分木ノード内に存在する2分木ノードの保持する親ノードと子ノード情報により、親ノード方向のノードの経路情報よりも、子ノード方向のノードの経路情報を優先させ、子ノード方向のノードが経路情報を持たない時に、親ノード方向のノードが経路情報を持つ時はその経路情報を受け継ぐことで2のp乗分木ノードの経路情報を設定する。次に2のp乗分木ノード内に存在する2分木ノード数より、2のp乗分木の追加、削除、変更を決定する。0個から1個になる時は新規に2のp乗分木ノードを追加、1個から0個になる時は2のp乗分木ノードを削除、それ以外の個数の変化時は2のp乗分木ノードを変更する。
【0047】
2のm乗個のマスク長mビットを持つ初段ノードをそれぞれ、アドレスの第0ビットから第m−1ビットまでが取りうる値に1対1に対応させた制御機構において、マスク長0ビットから(m−1)ビットまでの経路情報の追加を行う場合、該経路情報のマスク長で初段ノードのアドレスをマスクした値と、経路情報のアドレスが一致する複数個の初段ノードを検索し、一致したノードが経路情報を持たない時に追加する経路情報を設定する。マスク長0ビットから(m−1)ビットまでの経路情報の削除を行う場合、該経路情報を持つ初段ノードの経路情報を削除することにより初段ノードの更新を行う。
【0048】
また、経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行う制御機構において、1つの経路情報の追加のため親子関係にあるノード間にノードを追加する場合、該追加対象ノードと子ノードを接続後、親ノードと該追加対象ノードを接続する。1つの経路情報の削除のため親と子を持つノードを削除する場合、該削除対象ノードの親ノードを該削除対象ノードの子ノードと接続後、該削除対象ノードを削除する。このノードの追加、削除方式により経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現する。
【0049】
経路管理機能と経路探索機能に更に機能を追加する場合、付加機構を新たに追加し、パケット中継に必要な経路情報以外の制御経路情報を経路検索テーブルに追加登録し、受信したパケットの宛先アドレスが制御経路情報と一致すると経路検索機能から付加機構にパケットを転送し、付加機能を実現する。
【0050】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
【0051】
図1は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置の構成の一例を示す機能ブロック図である。
【0052】
本実施の形態のルータ装置の構成について説明する。本実施の形態のルータ装置は経路管理部F0、経路検索部F1、付加機構部F3を備えている。経路管理部F0は次に送信すべき他のルータ装置のアドレス及びそのルータ装置が接続されている回線情報を持つ経路情報エントリEと、パケット中継に必要な経路情報以外の制御経路情報エントリCEを登録する経路管理テーブルTBL0を保持する。経路管理テーブルTBL0は経路情報を2分木構造に格納し、経路情報を持つノードと分岐が発生するノードを残して縮退した構成をとり、ノードは経路情報及び親ノードと子ノードの情報を保持する。
【0053】
経路検索部F1は経路管理テーブルTBL0の経路情報及び制御経路情報を反映する経路検索テーブルTBL1を保持する。経路検索テーブルTBL1は経路情報を2分木ノードのp段分を1つにまとめた2のp乗分木構造に格納し、経路情報を持つノードと分岐が発生するノードを残して縮退した構造をとり、ノードは経路情報及び子ノード情報を保持する。
【0054】
図2に、経路管理テーブルTBL0の2分木ノードの構成の一例を示す。本実施の形態の場合、経路管理テーブルTBL0における個々の2分木ノード100は、上位の親ノードへのポインタ101、下位の二つの子ノードをそれぞれ指す子ノードへのポインタ102、子ノードへのポインタ103、当該子ノードが経路情報を持つか否か、等を示すフラグ104、フラグ105、および当該子ノードのマスク長106、マスク長107、さらには当該ノードに設定されたサブネットワークアドレス108、経路情報としての次ホップアドレス109、複数のポート50の一つを特定する出力ポート番号110、等の情報を持つ。
【0055】
図3に、経路検索テーブルTBL1の2のp乗分木ノードの構成の一例を示す。本実施の形態の場合、経路検索テーブルTBL1における個々の2のp乗分木ノード200は、2のp乗個の子ノードへのポインタ201、各々の子ノードにおける経路情報の設定の有無を示す2のp乗個のフラグ202、当該子ノードのマスク長203、さらには当該ノードに設定されたサブネットワークアドレス204、経路情報としての次ホップアドレス205、複数のポート50の一つを特定する出力ポート番号206、等の情報を持つ。
【0056】
次に本実施の形態のルータ装置の有する機能の一例について説明する。経路管理部F0は経路情報エントリEと制御経路情報エントリCEを、経路管理テーブルTBL0および経路検索テーブルTBL1からなる経路情報テーブルに対して追加、削除を行う。経路管理部F0はエントリを経路管理テーブルTBL0における2分木構造に格納するために追加、削除、変更を行うノードの位置をノードの親ノード、子ノード情報より割り出し、2分木を更新する。経路管理部F0は更新した経路管理テーブルTBL0を基に経路検索テーブルTBL1を更新する。エントリの追加の場合は追加または変更した2分木ノードを含む2のp乗分木ノードの位置を割り出し、経路検索テーブルTBL1に割り出した2のp乗分木ノードを追加または変更する。エントリの削除の場合は削除または変更した2分木ノードを含む2のp乗分木ノードの位置を割り出し、経路検索テーブルTBL1に割り出した2のp乗分木ノードを削除または変更する。
【0057】
経路検索部F1は、複数のポート50の一つからパケット51を受信した場合に経路検索テーブルTBL1に登録している経路情報エントリEや制御経路情報エントリCEのサブネットワークアドレスを、受信したパケット51の宛先アドレスと比較し、一致するエントリが存在するかを経路検索テーブルTBL1の初段2のp乗分木ノードからノードの持っている子ノード情報を基に下段方向に検索していく。一致するエントリの中で一番マスク長が長いエントリを検索結果とする。検索結果が経路情報エントリEの場合はエントリの出力ポート番号、次ホップアドレス情報に従って、複数のポート50の中で出力ポート番号に対応した一つのポート50からパケット51を送信する。検索結果が制御経路情報エントリCEの場合はパケット51を付加機構部F3に転送する。付加機構部F3はパケット51を受け取るとパケット51の内容に従って処理する。
【0058】
図4のフローチャートに従って、経路情報の追加、削減を契機にした経路管理部の動作を以下で説明する。
【0059】
経路情報の追加、削除が発生すると、上述の図22以降の参考技術で説明したように、経路情報テーブルの2分木ノードの更新(図4のステップFC0)を行う。
【0060】
次に追加、削除する経路情報のマスク長がm以上か否かを判別し(図4のステップFC1)、m以上である場合(図4のステップFC9)、更新した2分木ノードを含む2のp乗分木ノードの経路情報を更新(図4のステップFC2)する方法について説明する。図5に4段分の2分木を16分木へ変換する例を示す。図5(a)は4段分の2分木ノードである。2分木には経路情報があるノードと経路情報がないノードが存在する。図5(b)は4段分の2分木を一つにまとめた16分木ノードである。16分木ノードは2分木ノードの第4段目だけの大きさにする。2分木ノードの経路情報を16分木ノードで設定するためには、マスク長が異なる複数の経路情報エントリが一致した場合はマスク長の長い経路情報エントリを採用するという経路検索の仕様に従い行う。この仕様を踏まえた16分木ノード内に存在する2分木ノードの保持する親ノードと子ノード情報を使った経路情報を設定する規則は2つある。1つ目は親ノード方向のノードの経路情報よりも、子ノード方向のノードの経路情報を優先させることであり、2つ目は子ノード方向のノードが経路情報を持たない時に、親ノード方向のノードが経路情報を持つ時はその経路情報を受け継ぐ(具体的には自分の次ホップアドレス205および出力ポート番号206のエントリを受け継ぐ先の情報で上書きする)ことである。この規則に従い、図5(a)の2分木を16分木に変換すると図5(b)になる。
【0061】
次に経路情報の追加が発生した場合の経路情報の設定方法を図6を用いて説明する。図6は図5の状態から経路情報を追加した例である。経路情報の追加の場合は子ノード方向のノードに経路情報が存在するか確認するため、子ノードの情報を必要とする。そのため、経路管理テーブルTBL0の2分木ノード100は子ノード情報(図2の子ノードへのポインタ102、103)を保持する。経路情報を追加するノードA00の子ノードA001が経路情報を持つ場合は図6(b)の16分木ノードのA001は*A001の経路情報を優先する。経路情報を追加するノードA11の子ノードA110が経路情報を持たない場合は図6(b)の16分木ノードのA110に*A11の経路情報を設定する。
【0062】
次に経路情報の削除が発生した場合の経路情報の設定方法を図7を用いて説明する。図7は図5の状態から経路情報を削除した例である。経路情報の削除の場合は親ノード方向のノードに経路情報が存在するか確認するため、親ノードの情報を必要とする。そのため、経路管理テーブルの2分木ノード100は親ノード情報(図2の親ノードへのポインタ101)を保持する。経路情報を削除するノードA1の子ノード方向のノードA100が経路情報を持つ場合は図7(b)の16分木ノードのA100は*A100の経路情報をそのまま優先する。経路情報を削除するノードA010の親ノードA01が経路情報を持っている場合は図7(b)の16分木ノードのA010に*A01の経路情報を設定する。
【0063】
次に2のp乗分木ノード200に存在する2分木ノードの数の変化(図4のステップFC4)によって、該2のp乗分木ノードの追加、削除、変更の内、1つを選択する方法について説明する。
【0064】
2のp乗分木ノードの追加と削除について説明する。経路管理部F0は経路情報エントリの追加、削除によって、経路検索テーブルTBL1の初段を除いた2のp乗分木ノード200に対して追加、削除、もしくは変更を行う。2のp乗分木ノードの追加、削除、変更は更新した後の2のp乗分木ノード内に含まれている2分木ノードの数によって決定する。経路情報エントリの追加、削除によって発生する4つのパターンを図8を用いて説明する。
【0065】
図8(a)は追加した2分木ノードSA1を含む2のp乗分木ノードLA1内に2分木ノードSA1以外にノードが存在しない場合(図4のステップFC11)である。この場合、新規に2のp乗分木ノードLA1を作成し、経路検索テーブルTBL1に追加する(図4のステップFC5)。
【0066】
図8(b)は追加した2分木ノードSA1を含む2のp乗分木ノードL1内に2分木ノードSA1以外にノードS1が存在する場合(図4のステップFC13)である。この場合、既に2のp乗分木ノードL1は存在しているので、2のp乗分木ノードL1に経路情報を割り当てて、経路検索テーブルTBL1の2のp乗分木ノードL1を変更する(図4のステップFC7)。
【0067】
図8(c)は削除した2分木ノードSD1を含む2のp乗分木ノードLD1内に2分木ノードが存在しなくなった場合(図4のステップFC12)である。この場合、2のp乗分木ノードLD1は2分木ノードを持たなくなったので、経路検索テーブルTBL1の2のp乗分木ノードLD1を削除する(図4のステップFC6)。
【0068】
図8(d)は削除した2分木ノードSD1を含む2のp乗分木ノードL1内に2分木ノードが存在する場合(図4のステップFC13)である。この場合、2のp乗分木ノードL1は2分木ノードを持っているので、経路検索テーブルTBL1の2のp乗分木ノードL1を変更する(図4のステップFC7)。
【0069】
次に経路検索テーブルTBL1の2のp乗分木の更新(図4のステップFC8)方法について説明する。
【0070】
まず、2のp乗分木構造をとる経路検索テーブルTBL1に経路情報エントリEを追加する方法について説明する。上述の参考技術の説明で2分木構造にエントリを追加すると4つの追加パターンで2分木ノードの更新が発生することを説明したが、2のp乗分木にその更新を反映させるためには1つまたは複数の2のp乗分木ノードを更新する必要がある。そのため、経路検索テーブルTBL1に対して2のp乗分木ノードを1つずつ追加、削除、変更を行う本実施の形態のルータ装置は、経路情報の追加の時は更新を必要とするノードの中で、親ノードから子ノード方向へ順番に更新することで、ノードの更新と更新の間に経路検索処理を可能にする。
【0071】
図9を用いて、経路検索テーブルTBL1における2のp乗分木ノードの追加方法を示す。図9(a)のノードL1,L2はノードL1が親ノードでノードL2が子ノードの関係である。図9(b)はノードL2を子ノードにした追加ノードLA1を経路検索テーブルTBL1上に書き込んだ状態である。この状態で経路検索処理を実行したとしても、ノードL1→L2の順に検索するので、通常と同様に検索処理を実行できる。図9(c)はノードL1の子ノードのポインタをノードL2からノードLA1に変更し、ノードの追加処理を完了する。
【0072】
以下にこのノードの追加順番規則に従って、4つの追加パターンの各々毎に更新する2のp乗分木ノードと順番について例を示す。
【0073】
図10は(A−1)における2のp乗分木の更新方法について示す。更新したノードはノードS1の1つである。図10は1つの2のp乗分木ノードを更新する場合である。ノードS1を含む2のp乗分木ノードL1を変更する。
【0074】
図11は(A−2)における2のp乗分木の更新方法について示す。更新した2分木ノードはノードS1,SA1,SA2の3つである。図11(a)は1つの2のp乗分木ノードを更新する場合である。ノードS1,SA1,SA2を含む2のp乗分木ノードL1を変更する。図11(b)は2つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木ノードLA1を追加し、ノードS1,SA2を含む2のp乗分木ノードL1の子ノードポインタにノードLA1を繋げるように変更する。図11(c)は2つの2のp乗分木ノードを更新する場合である。ノードSA1,SA2を含む2のp乗分木ノードLA1を追加し、ノードS1を含む2のp乗分木ノードL1の子ノードポインタにノードLA1を繋げるように変更する。図11(d)は3つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木ノードLA1を追加し、ノードSA2を含む2のp乗分木ノードLA2を追加し、ノードS1を含む2のp乗分木ノードL1の子ノードポインタにノードLA2を繋げるように変更する。
【0075】
図12は(A−3)における2のp乗分木の更新方法について示す。更新した2分木ノードはノードS1,SA1の2つである。図12(a)は1つの2のp乗分木ノードを更新する場合である。ノードS1,SA1を含む2のp乗分木ノードL1を変更する。図12(b)は2つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木ノードLA1を追加し、ノードS1を含む2のp乗分木ノードL1の子ノードポインタにノードLA1を繋げるように変更する。
【0076】
図13は(A−4)における2のp乗分木の更新方法について示す。更新した2分木ノードはノードS1,SA1の2つである。図13(a)は1つの2のp乗分木ノードを更新する場合である。ノードS1,SA1を含む2のp乗分木ノードL1を変更する。図13(b)は1つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木L2を変更し、ノードS1を含む2のp乗分木L1は更新しない。図13(c)は2つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木ノードLA1を追加し、ノードS1を含む2のp乗分木ノードL1の子ノードポインタにノードLA1を繋げるように変更する。
【0077】
次に2のp乗分木構造をとる経路検索テーブルTBL1から経路情報エントリを削除する方法について説明する。上述の参考技術の説明で2分木構造にエントリを削除すると4つの削除パターンで2分木ノードの更新が発生する説明したが、エントリ追加時と同様に、2のp乗分木にその更新を反映させるためには1つまたは複数の2のp乗分木ノードを更新する必要がある。更新するノードの順番は更新するノードの中で子ノードから親ノードの方向へ更新することで、ノードの更新と更新の間に経路検索処理を可能にする。
【0078】
図14を用いて、経路検索テーブルTBL1における2のp乗分木ノードの追加方法を示す。図14(a)のノードL1,LD1,L2はノードL1の子ノードがノードLD1、ノードLD1の子ノードがノードL2の関係である。図14(b)はノードL1の子ノードのポインタをノードLD1からノードL2に変更した状態である。この状態で経路検索処理を実行したとしても、ノードL1→L2の順に検索するので、通常と同様に検索処理を実行できる。図14(c)はノードLD1を削除し、ノードの削除処理を完了した状態を示す。
【0079】
以下にこのノードの削除順番規則に従って、4つの削除パターンの各々毎に更新する2のp乗分木ノードと順番について例を示す。
【0080】
図15は(D−1)における2のp乗分木の更新方法について示す。更新したノードはノードS1の1つである。図15は1つの2のp乗分木ノードを更新する場合である。ノードS1を含む2のp乗分木ノードL1を変更する。
【0081】
図16は(D−2)における2のp乗分木の更新方法について示す。更新した2分木ノードはノードS1,SD1,SD2の3つである。図16(a)は1つの2のp乗分木ノードを更新する場合である。ノードS1,SD1,SD2を含む2のp乗分木ノードL1を変更する。図16(b)は2つの2のp乗分木ノードを更新する場合である。ノードS1,SD2を含む2のp乗分木ノードL1の子ノードポインタをノードLD1からノードL2に変更し、ノードSD1を含む2のp乗分木ノードLD1を削除する。図16(c)は2つの2のp乗分木ノードを更新する場合である。ノードS1を含む2のp乗分木ノードL1の子ノードポインタをノードLD1からノードL2に変更し、ノードSD1,SD2を含む2のp乗分木ノードLD1を削除する。図16(d)は3つの2のp乗分木ノードを更新する場合である。ノードS1を含む2のp乗分木ノードL1の子ノードポインタをノードLD2からノードL2に変更し、ノードSD2を含む2のp乗分木ノードLD2を削除し、ノードSD1を含む2のp乗分木ノードLD1を削除する。
【0082】
図17は(D−3)における2のp乗分木の更新方法について示す。更新した2分木ノードはノードS1,SD1の2つである。図17(a)は1つの2のp乗分木ノードを更新する場合である。ノードS1,SD1を含む2のp乗分木ノードL1を変更する。図17(b)は2つの2のp乗分木ノードを更新する場合である。ノードS1を含む2のp乗分木ノードL1の子ノードポインタをノードLD1からNULLに変更し、ノードSD1を含む2のp乗分木ノードLD1を削除する。
【0083】
図18は(D−4)における2のp乗分木の更新方法について示す。更新した2分木ノードはノードS1,SD1の2つである。図18(a)は1つの2のp乗分木ノードを更新する場合である。ノードS1,SD1を含む2のp乗分木ノードL1を変更する。図18(b)は2つの2のp乗分木ノードを更新する場合である。ノードSD1を含む2のp乗分木L2を変更し、ノードS1を含む2のp乗分木L1は更新しない。図18(c)は2つの2のp乗分木ノードを更新する場合である。ノードS1を含む2のp乗分木ノードL1の子ノードポインタをノードLD1からノードL2に変更し、ノードSD1を含む2のp乗分木ノードLD1を削除する。
【0084】
次にマスク長0ビットから(m−1)ビットの経路情報を追加、削除する場合(図4のステップFC10)、更新した2分木ノードの配下に存在する2のp乗分木ノードの経路情報を更新(図4のステップFC3)する方法について説明する。経路情報の設定方法は以前に説明したp段分の2分木を2のp乗分木へ変換する方法で説明した方法と同様に親ノード方向のノードの経路情報よりも、子ノード方向のノードの経路情報を優先させ、子ノード方向のノードが経路情報を持たない時に、親ノード方向のノードが経路情報を持つ時はその経路情報を受け継ぐようにする。
【0085】
図19を用いて、マスク長0ビットから(m−1)ビットの経路情報を追加する方法について説明する。図19(a)は2分木における初段ノードから第12段ノードを16分木における2の13乗個の初段ノードとしている。図19(a)の状態からノードS1に経路情報を追加すると図19(b)に示すようにL1,L2内で経路情報を設定していなかったノードA000,A101,A110,A111,B000,B001に経路情報*S1を設定する。
【0086】
図20を用いて、マスク長0ビットから(m−1)ビットの経路情報を削除する方法について説明する。図20(a)は2分木における初段ノードから第12段ノードを16分木における2の13乗個の初段ノードにまとめている。図20(a)の状態からノードS1の経路情報を削除すると図20(b)に示すようにL1,L2内の経路情報に*S1を持つノードA000,A101,A110,A111,B000,B001の経路情報は無くなる。
【0087】
次に受信したパケット51の宛先アドレスと制御経路情報を比較する処理方法について説明する。従来の経路検索テーブルはパケット中継に必要な経路情報のみを保持しているため、ルータが受信したパケット51の宛先アドレスに対して、経路検索処理を行った後に、更にパケット中継に必要な経路情報以外の制御経路情報であるか確認する処理を行っていたが、本実施の形態のルータ装置では経路検索テーブルTBL1に制御経路情報も追加登録し、経路検索処理と制御経路情報であるかの確認を一度にできるようにした。
【0088】
図21に付加機構部にパケットを転送する例を示す。ブロードキャストアドレスを宛先アドレスとするパケット51に対して付加機構部F3で処理を実行したい場合、経路検索テーブルTBL1に制御経路情報としてブロードキャストアドレスを登録することで受信したパケット51の宛先アドレスがブロードキャストアドレスである場合、そのパケット51を経路検索部F1の経路検索処理でブロードキャストパケットであることを識別し、経路検索部F1はパケット51を付加機構部F3に転送する。
【0089】
以上、詳細に説明したように本実施の形態のルータ装置によれば、初段を2のm乗個保持する2のp乗分木構造で経路情報を格納する経路検索テーブルTBL1を保持する経路検索部F1の前段に、経路情報を2分木構造で格納する経路管理テーブルTBL0を保持し、経路情報の追加、削除が発生した場合に、経路管理テーブルTBL0の2分木を、経路検索テーブルTBL1の2のp乗分木に変換する機能を有する経路管理部F0を設けることで、経路検索テーブルTBL1のメンテナンスを実現することができる。これにより、参考技術の経路検索方法では、アドレスの上位ビットから1ビットずつ検索していく2分木検索のテーブルで検索していたのに対して、2分木ノードp段分を1つの2のp乗分木ノードに集約した経路検索テーブルTBL1を用いて、p段の検索を1回で行うことが可能になり、経路検索の高速化を図るのに効果がある。
【0090】
また、経路情報の追加、削除によって複数の経路情報を保持するノードの更新が発生した場合、図14に例示したようにノードを更新する順番を考慮することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現することができる。これにより、検索処理中断時間を最小化する効果がある。
【0091】
また、パケット中継に必要な経路情報以外の制御経路情報を経路検索テーブルTBL1に追加登録することで、付加機構部F3に転送すべきパケット51を受信した場合に、受信した経路検索部F1から付加機構部F3にパケット51を転送し、付加機能を実現することができる。この実現により、制御経路情報の検索を経路情報の検索とは別に行わせる場合等に比較して、制御経路情報と経路情報の検索を同時に実行可能になり、検索処理の簡略化を図る効果がある。
【0092】
上記した特許請求の範囲に記載された以外の本発明の特徴を列挙すれば以下の通りである。
【0093】
すなわち、
<1> コンピュータネットワークシステム内のパケットを中継するルータ装置において、
次に送信すべき装置のアドレス及びその装置が接続されている回線情報(以下経路情報と称す)を保持する経路検索テーブルを持ち、受信したパケットの宛先アドレスから、次に送信すべきルータ装置のアドレス及びそのルータ装置が接続されている回線情報または宛先アドレスが示すホストが接続されている回線情報を経路検索テーブルより検索する経路検索機能と、
経路管理テーブルを持ち、経路検索テーブルの経路情報の更新を行う経路管理機能と、を有し、
経路管理テーブルは、経路情報をアドレスのマスク長の昇順で2分木構造に格納し、経路情報を持つノードと分岐が発生するノードを残して縮退した構成をとり、
経路検索テーブルは、1つの2分木ノードと、その直下につながる(p−1)段分の合計(2のp乗―1)個分の2分木ノードを一つの2のp乗分木ノードに集約し、集約した最下段の2の(p−1)乗個の2分木ノードに、そのノードより上段のノードに割り付けた経路情報を埋め込み、2のp乗分木ノードを、2分木を2の(p−1)乗個分併せた形で構成する2のp乗分木構造に、アドレスのマスク長の昇順で格納し、経路情報を持つノードと分岐が発生するノードを残して縮退した構造をとり、
経路管理部は、経路情報の追加、削除処理が発生した場合に、経路管理テーブルの2分木構造における2分木ノード間の親子関係から追加、削除、変更をする2分木ノードの位置を決定して2分木構造を更新し、2分木構造の更新結果より経路検索テーブルの2のp乗分木構造に対して追加、削除、変更の必要な2のp乗分木ノードを更新することを特徴とする経路検索テーブル作成方式。
【0094】
<2> 項目<1>に記載の経路検索テーブル作成方式において、マスク長mビットの初段ノード2のm乗個分をそれぞれ、宛先アドレスの第0ビットから第m−1ビットまでが取りうる値に1対1に対応させるとき、マスク長0ビットから(m−1)ビットまでの経路情報について追加、削除を行う場合、該経路情報のマスク長で初段ノードのアドレスをマスクすると、経路情報のアドレスと一致する複数個の初段ノードが経路情報を持たない時に該経路情報を設定し、マスク長0ビットから(m−1)ビットまでの経路情報について削除を行う場合、該経路情報を持つ初段ノードの経路情報を削除することで初段ノードを更新することを特徴とする経路検索テーブル作成方式。
【0095】
<3> 項目<1>に記載の経路検索テーブル作成方式において、経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行う場合において、1つの経路情報の追加のため親子関係にあるノード間にノードを追加する場合、追加対象ノードと子ノードとを接続後、親ノードと追加対象ノードを接続し、1つの経路情報の削除のため親と子を持つノードを削除する場合、削除対象ノードの親ノードを削除対象ノードの子ノードと接続後、削除対象ノードを削除することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現することを特徴とする経路検索テーブル作成方式。
【0096】
<4> 項目<1>または<2>に記載の経路検索テーブル作成方式において、経路管理機能と経路探索機能に更に機能を追加する場合、付加機構を新たに追加し、パケット中継に必要な経路情報以外の制御経路情報を経路検索テーブルに追加登録し、受信したパケットの宛先アドレスが制御経路情報と一致すると経路検索機能から付加機構にパケットを転送することで付加機能を実現することを特徴とする経路検索テーブル作成方式。
【0097】
以上本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0098】
【発明の効果】
本発明の情報中継方法によれば、2分木構造によるRadish Treeを2のp乗分木構造に動的に変換して高速化を図ることができる、という効果が得られる。
【0099】
本発明の情報中継方法によれば、経路制御情報の更新に伴う経路検索停止時間を短縮して、中継制御の高速化を実現することができる、という効果が得られる。
【0100】
本発明の情報中継方法によれば、2分木構造によるRadish Treeを2のp乗分木構造に変換して高速化を図る場合において、2のp乗分木構造の動的な更新を、より短い経路検索停止時間で的確に行うことができる、という効果が得られる。
【0101】
本発明の情報中継方法によれば、経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行う場合において、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を行うことで、検索中断時間を最小化することができる、という効果が得られる。
【0102】
本発明の情報中継方法によれば、コンピュータネットワークの特別な機能に割り当てられた制御経路情報を経路検索テーブルに付加することにより、コンピュータネットワークの機能の拡張を容易にすることができる、という効果が得られる。
【0103】
また、本発明の情報中継装置によれば、2分木構造によるRadish Treeを2のp乗分木構造に動的に変換して高速化を図ることができる、という効果が得られる。
【0104】
本発明の情報中継装置によれば、経路制御情報の更新に伴う経路検索停止時間を短縮して、中継制御の高速化を実現することができる、という効果が得られる。
【0105】
本発明の情報中継装置によれば、2分木構造によるRadish Treeを2のp乗分木構造に変換して高速化を図る場合において、2のp乗分木構造の動的な更新を、より短い経路検索停止時間で的確に行うことができる、という効果が得られる。
【0106】
本発明の情報中継装置によれば、経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行う場合において、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を行うことで、検索中断時間を最小化することができる、という効果が得られる。
【0107】
本発明の情報中継装置によれば、コンピュータネットワークの特別な機能に割り当てられた制御経路情報を経路検索テーブルに付加することにより、コンピュータネットワークの機能の拡張を容易にすることができる、という効果が得られる。
【図面の簡単な説明】
【図1】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置の構成の一例を示す機能ブロック図である。
【図2】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路管理テーブルの2分木ノードのデータ構造の一例を示す概念図である。
【図3】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルの2のp乗分木ノードのデータ構造の一例を示す概念図である。
【図4】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路情報の追加、削減を契機にした動作の一例を示すフローチャートである。
【図5】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路情報の2分木から16分木への変換例を示す概念図である。
【図6】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の追加が発生した場合の処理の一例を示す概念図である。
【図7】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の削除が発生した場合の処理の一例を示す概念図である。
【図8】(a)〜(d)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の追加、削除によって発生する2のp乗分木の追加、削除、変更例を示す概念図である。
【図9】(a)〜(c)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルでの2のp乗分木ノードの追加方法の一例を示す概念図である。
【図10】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の追加によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図11】(a)〜(d)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の追加によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図12】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の追加によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図13】(a)〜(c)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置において、経路情報の追加によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図14】(a)〜(c)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルでの2のp乗分木ノードの削除方法の一例を示す概念図である。
【図15】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルでの経路情報の削除によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図16】(a)〜(d)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルでの経路情報の削除によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図17】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルでの経路情報の削除によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図18】(a)〜(c)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路検索テーブルでの経路情報の削除によって発生する2のp乗分木ノードの更新処理の一例を示す概念図である。
【図19】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路情報の追加処理の一例を示す概念図である。
【図20】(a)および(b)は、本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における経路情報の削除処理の一例を示す概念図である。
【図21】本発明の情報中継方法を実施する情報中継装置の一実施の形態であるルータ装置における受信パケットの付加機構部への転送手順の一例を示す概念図である。
【図22】本発明の参考技術であるルータ装置の構成および作用の一例を示す概念図である。
【図23】本発明の参考技術であるルータ装置における経路制御テーブルで用いられるデータ構造を説明する概念図である。
【図24】本発明の参考技術であるルータ装置における経路情報テーブルの構成を説明する概念図である。
【図25】本発明の参考技術であるルータ装置の作用を説明する概念図である。
【図26】本発明の参考技術であるルータ装置の作用を説明する概念図である。
【図27】(a)および(b)は、本発明の参考技術であるルータ装置の作用を説明する概念図である。
【図28】(a)および(b)は、本発明の参考技術であるルータ装置の作用を説明する概念図である。
【図29】本発明の参考技術であるルータ装置の作用を説明する概念図である。
【符号の説明】
50…ポート、51…パケット、100…2分木ノード、101…親ノードへのポインタ、102…子ノードへのポインタ、103…子ノードへのポインタ、104…フラグ、105…フラグ、106…子のノードのマスク長、107…子のノードのマスク長、108…サブネットワークアドレス、109…次ホップアドレス、110…出力ポート番号、200…2のp乗分木ノード、201…子ノードへのポインタ、202…フラグ、203…子のノードのマスク長、204…サブネットワークアドレス、205…次ホップアドレス、206…出力ポート番号、CE…制御経路情報エントリ、E…経路情報エントリ、F0…経路管理部、F1…経路検索部、F3…付加機構部、TBL0…経路管理テーブル、TBL1…経路検索テーブル。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to information relay technology, and in particular, is used in a router device or the like that relays a packet in a computer network system to determine a relay destination to which the packet is to be transmitted next from the destination address of the received packet. The present invention relates to a technology effective when applied to a route information table creation technology and the like.
[0002]
[Prior art]
In response to advances in computer technology and information network technology, computer networks in which a plurality of computers are connected via an information network, as represented by the so-called Internet, have become widespread. In addition, as data sent and received within this computer network, there is an increasing amount of data that is important for real-time performance, such as so-called multimedia data such as video and audio, and relays data within the computer network. Information relay apparatuses such as router apparatuses are also required to increase the speed of the relay operation at the same communication speed as the communication medium itself.
[0003]
The information relay technology that is the reference technology of the present invention will be described below with reference to FIG. The router device of the reference technology holds a route search unit F100, a control route search unit F200, and an additional mechanism unit F300.
[0004]
The route search unit F100 holds a route search table TBL100 for registering a route information entry E having an address of a device to be transmitted next and line information to which the device is connected. The route information entry E includes a subnetwork address and a mask length, line information, a next hop address, and information on whether or not the subnetwork is directly connected (hereinafter referred to as next hop information). The route search unit F100 adds or deletes a route information entry E set by a user or obtained by exchanging connection information between router devices by a routing protocol or the like to the route search table TBL100. Further, when a packet is received, the route search unit F100 compares the pair of the subnetwork address and the mask length of the route information entry E in the route search table TBL100 with the search key and compares it with the destination address of the packet. Search for existence.
[0005]
The control route search unit F200 holds a control route table TBL200 that registers control route information entries CE other than the route information necessary for packet relay. The control path information entry CE is composed of a control path address to be transferred to the additional mechanism unit. The control route search unit F200 performs search processing of the packet received by the route search unit F100, and then compares the control route address of the control route information entry CE of the control route search table TBL200 with the destination address of the packet, and matches the control route A search is made to see if an information entry CE exists. If there is a matching control path information entry CE, the packet is transferred to the additional mechanism unit F300. If there is no matching control route information entry CE, the packet is transmitted according to the search result of the route search unit F100.
[0006]
There is a Radish algorithm with a binary tree structure as a route search method according to the above search specifications. The Radish algorithm maps a path entry to each node of a tree structure composed of a tree in which a plurality of vertices (nodes) having pointers on the left and right are connected by pointers. The target route entry arrives at the node to which the target route entry is mapped by following the pointer and moving to the next node.
[0007]
First, the structure of the tree will be described with reference to FIG. Since the concept does not depend on the bit length, in FIG. 23, the address length is assumed to be 3 bits for easy understanding.
[0008]
As shown in FIG. 23, each node is called a node having a mask length of 0 bit, 1 bit, 2 bits, and 3 bits in order from the top of the tree.
[0009]
The node N0000 having a mask length of 0 bit moves to the nodes N0001 and N1001 having a mask length of 1 bit by following the left / right pointer according to whether the 0th bit of the destination address is 0 or 1, and the node having the mask length of 1 bit has the first address. By following the left / right pointer according to whether the bit is 0 or 1, the node moves to the nodes N0002, N0102, N1002, and N1102 having the mask length of 2 bits. In the node having the mask length of 2 bits, the left / right is determined according to whether the second bit is 0 or 1. By following the pointer on the right, the process moves to nodes N0003, N0013, N0103, N0113, N1003, N1013, N1103, and N1113 having a mask length of 3 bits.
[0010]
When the pointer is traced according to whether each bit is 0 or 1 in order from the node N0000 having a mask length of 0 bits for the destination address to be searched, the node having the mask length of 0 bit passes through any destination address. Nodes N0001 and N1001 having a mask length of 1 bit pass when the bits of the destination address are 0XX and 1XX in order from the left, and nodes N0002, N0102, N1002, and N1102 having a mask length of 2 bits are the bits of the destination address in order from the left. Is passed through when the address is 00X, 01X, 10X, 11X, and the nodes N0003, N0013, N0103, N0113, N1003, N1013, N1103, and N1113 having mask lengths of 3 bits are 000,001,010 each bit of the destination address in order from the left. , 011,100,101,110,1 Passing in the case of 1. Here, X indicates that the bit value may be either 0 or 1.
[0011]
Therefore, the node N0000 having a mask length of 0 bit passes when the destination address belongs to the subnetwork address 000/0, and the nodes N0001 and N1001 having the mask length of 1 bit pass through the subnetwork address 000 / 1,100 / The node N0002, N0102, N1002, and N1102 having a mask length of 2 bits pass when the destination address belongs to the subnetwork address 000/2, 010/2, 100/2, and 110/2. , Nodes N0003, N0013, N0103, N0113, N1003, N1013, N1103, and N1113 having a mask length of 3 bits have sub-network addresses 000/3, 001/3,. . . , 111/3. Here, in the notation “sss / m”, “sss” represents a subnetwork address, and m represents a mask length.
[0012]
As described above, each node of this tree has a one-to-one correspondence with all subnets having different subnetwork addresses and mask lengths.
[0013]
Therefore, “*” is added to the nodes N0000, N0013, N0102, N1001, and N1103 corresponding to the path information entry shown in FIG. 24, and the destination address DA011 to be searched is a pointer according to whether each bit is 0 or 1 from the top of this tree. It can be seen that the nodes N0000 and N0102 to which “*” that passes when the path is traced correspond to the matching entries in the search with a mask. Therefore, this corresponds to the rule that when a plurality of path information entries match, the sub-network with the longest mask length is selected, and among the matching nodes N0000 and N0102 with “*”, it is assigned to the node N0102 closest to the end. The route information obtained is used as a route table search result.
[0014]
As can be seen from the above search method, the nodes N0003, N0103, N0113, N1003, N1013, N1113, and N1002 that do not have “*” and are not on the way to reach the node with “*” Removing it from the tree does not affect the search results. Rather, when the “*” is not attached to the lowest node, the search is completed without moving to the lowest node, which is efficient. Therefore, when a node that is not marked with “*” and is not a halfway route to reach a node marked with “*” is removed from the tree as shown in FIG.
[0015]
Further, the nodes N0002 and N1102 to which the next node is connected to only one of the left and right pointers and the route information is not mapped are removed from the tree, and nodes N0013 and N1103 are added immediately below N0001 and N1001, respectively. As a result, the shape shown in FIG. 26 is obtained. This removal of the intermediate node sequence is hereinafter referred to as tree degeneration.
[0016]
A method for adding / deleting a route information entry to / from the route management table having a binary tree structure will be described.
[0017]
FIG. 27 shows an example of adding route information to a binary tree. FIG. 27A shows a route management table before entry addition, and FIG. 27B shows a route management table after entry addition. A method for adding a route information entry and a control route information entry to a route management table having a binary tree structure will be described with reference to FIG. In order to determine the addition position of the node generated by adding an entry, the search is performed from the first node downward to the lower node, and the sub-network of the node to be searched (hereinafter referred to as the current node) and the entry to be added The address and mask length are compared, and a current node that meets the four determination conditions is detected. Four determination conditions are shown below.
[0018]
(A-1) When the sub-network address of the current node matches the mask length.
[0019]
(A-2) When the current node does not match the subnetwork address.
[0020]
(A-3) When the mask length is larger than the mask length of the current node, matches the subnetwork address of the current node, and the pointer in the child node direction to be searched next is NULL.
[0021]
(A-4) When the mask length is smaller than the mask length of the current node and the subnetwork addresses match.
[0022]
However, the comparison of the network address is performed by the mask length of the smaller one of the current node and the additional node. Examples that apply to each of the four determination conditions are shown below.
[0023]
When the subnetwork address and mask length of the entry to be added are 133.5.16.0/21, the determination condition (A-1) is satisfied. In FIG. 27A, the current node is moved in the order of the nodes S1, S2, S4, and S5, and the determination condition (A-1) is satisfied in the node S5. When the determination condition (A-1) is satisfied, the route information node to be added is a branch node as shown in FIG. 27B, so the route information is written in the entry of the branch node S5 and changed to the route information node S5. .
[0024]
When the subnetwork address and mask length of the entry to be added are 133.5.19.0/24, the determination condition (A-2) is satisfied. In FIG. 27A, the current node is moved in the order of the nodes S1, S2, S4, S5, and S6, and the determination condition (A-2) is satisfied in the node S6. When the determination condition (A-2) is satisfied, a route information node SA1 is added as shown in FIG. 27B, and a branch node SA2 is added because there is no parent node that branches the current node S6 and the route information node SA1. Then, the pointer in the direction of the left child node of the node S5 that has become the parent node of the branch node SA2 is changed from the node S6 to the node SA2.
[0025]
When the subnetwork address and mask length of the entry to be added are 133.4.1.0/24, the determination condition (A-3) is satisfied. In FIG. 27A, the current node is moved from the node S1 → S2 → S3, and the determination condition (A-3) is satisfied at the node S3. When the determination condition (A-3) is satisfied, a route information node SA3 is added as shown in FIG. 27B, and the pointer in the left child node direction of S3 corresponding to the parent node of the route information node SA3 is route information from NULL. Change to node SA3.
[0026]
When the subnetwork address and mask length of the entry to be added are 133.5.22.0/23, the determination condition (A-4) is satisfied. In FIG. 27A, the current node is moved in the order of the nodes S1, S2, S4, S5, and S7, and the determination condition (A-4) is satisfied in the node S7. When the determination condition (A-4) is satisfied, a route information node SA4 is added as shown in FIG. 27B, and a pointer in the direction of the left child node of the node S5 corresponding to the parent node of the route information node SA4 is set from the node S7. Change to the route information node SA4.
[0027]
FIG. 28 shows an example of route information deletion to the binary tree. FIG. 28A shows a path management table before entry deletion, and FIG. 28B shows a path management table after entry deletion. A method of deleting the route information entry and the control route information entry from the route management table having a binary tree structure will be described with reference to FIG. In order to determine the deletion position of the node generated by deleting the entry, the search is performed from the first node downward to the current node (hereinafter referred to as the deletion target node) where the subnetwork address of the entry to be deleted matches the mask length. ) Is detected. The current node applies to one of the following four determination conditions.
[0028]
(D-1) When the node to be deleted has two child nodes.
[0029]
(D-2) When the node to be deleted does not have a child node and the parent node does not have route information (except for the first node).
[0030]
(D-3) When the deletion target node does not have a child node and the parent node has path information.
[0031]
(D-4) When the deletion target node has one child node.
[0032]
Examples that apply to each of the four determination conditions are shown below.
[0033]
When the subnetwork address and the mask length of the entry to be deleted are 133.55.16.0/21, the determination condition (D-1) is satisfied. In FIG. 28A, the current node is moved in the order of the nodes S1, S2, S4, and S5, and the determination condition (D-1) is satisfied in the node S5. When the determination condition (D-1) is satisfied, the route information node S5 to be deleted is also a branch node as shown in FIG. 28B, so the route information of the entry of the node S5 is deleted and changed to the branch node S5. .
[0034]
When the subnetwork address and the mask length of the entry to be deleted are 133.5.19.0/24, the determination condition (D-2) is satisfied. In FIG. 28A, the current node is moved in the order of the nodes S1, S2, S4, S5, SD2, and SD1, and the determination condition (D-2) is satisfied at the node SD1. When the determination condition (D-2) is satisfied, as shown in FIG. 28 (b), the pointer in the direction of the left child node of the node S5 corresponding to the parent node of the branch node SD2 corresponding to the parent node of the deletion target node SD1 and the node S6 is set as the node. Change from SD2 to node S6. Subsequently, the branch node SD2 is deleted, and the deletion target node SD1 is deleted.
[0035]
When the subnetwork address and the mask length of the entry to be deleted are 133.4.1.0/24, the determination condition (D-3) is satisfied. In FIG. 28A, the current node is moved in the order of the nodes S1, S2, S3, and SD3, and the determination condition (D-3) is satisfied at the node SD3. When the determination condition (D-3) is satisfied, the deletion target node SD3 is a terminal node as shown in FIG. 28B, and therefore the pointer in the left child node direction of the node S3 corresponding to the parent node of the deletion target node SD3 is deleted. The target node SD3 is changed to NULL, and the deletion target node SD3 is deleted.
[0036]
When the subnetwork address and mask length of the entry to be deleted are 133.5.22.0/23, the determination condition (D-4) is satisfied. In FIG. 28A, the current node is moved in the order of the nodes S1, S2, S4, S5, and SD4, and the determination condition (D-4) is satisfied at the node SD4. When the determination condition (D-4) is satisfied, as shown in FIG. 28B, the pointer in the left child node direction of the node S5 corresponding to the parent node of the deletion target node SD4 is changed from the deletion target node SD4 to the child node of the deletion target node. Update to S7 and delete the deletion target node SD4.
[0037]
As a method for further speeding up the Radish algorithm based on the binary tree structure, there is a “network next transfer destination high-speed search technology” described below. As shown in FIG. 29, the route search table of the “network next transfer destination high-speed search technology” has a 2 p-th power tree structure that holds 2 m powers of the first-stage nodes having a mask length of m bits. The Radish algorithm based on the binary tree structure of the reference technique searches the search bit by bit from the upper bits of the destination address, whereas the “next transfer destination high-speed search technique of the network” in FIG. By making the minutes one p-th power tree and performing the p-stage of the binary tree in one search, the search processing time is shortened to 1 / p and the search processing speed is increased. In addition, the “next transfer destination high-speed search technology of the network” expands the first-stage node having a mask length of m bits to 2 m to a predetermined position on the storage unit, and each of the nodes having a mask length of m bits is A path having a mask length of m bits, corresponding to values that can be taken from the 0th bit to the (m−1) th bit of the destination address, and according to the value of the 0th bit to the (m−1) th bit of the destination address of the received packet By selecting one of the information entries, the search time for the first m bits is eliminated to speed up the search process.
[0038]
[Problems to be solved by the invention]
As in the above-described reference technique, when a 2 p-th power tree structure that holds 2 m first-stage nodes having a mask length of m bits is employed as the route search table, the search process can be speeded up. However, when the route search table is dynamically updated in accordance with a change in the configuration of the computer network, the update process and the search process need to be executed on the same two p-th tree structure. There is a concern that the route search is stopped during the processing, and the search speed decreases.
[0039]
When adding, deleting, or changing 2 p-th power tree nodes in the route search table for each entry, search is performed while the node to be added, deleted, or changed is separated from the tree structure. Doing so raises concerns about erroneous searches, and it is also necessary to stop route searches.
[0040]
Furthermore, in the reference technology, special packets such as broadcasts are registered and processed in a search table different from normal packets, so that the work of expanding the function of a computer network and search processing become complicated. There are also some challenges.
[0041]
An object of the present invention is to provide an information relay technology that can dynamically convert a Radish Tree having a binary tree structure into a p-th tree structure of 2 and increase the speed.
[0042]
An object of the present invention is to provide an information relay technique capable of shortening a route search stop time associated with the update of route control information and realizing a high speed relay control.
[0043]
Another object of the present invention is to shorten the dynamic update of the 2 p-th power tree structure in a shorter time when converting a Radish Tree having a binary tree structure to a p-th power tree structure of 2 to increase the speed. It is an object of the present invention to provide an information relay technology that can be accurately performed within a route search stop time.
[0044]
It is another object of the present invention to add, delete, and change 2 p-th power tree nodes of a route search table for each entry, without separating the nodes necessary for route search from the tree structure. An object of the present invention is to provide an information relay technique capable of minimizing the search interruption time by performing addition and deletion.
[0045]
Another object of the present invention is to provide an information relay technique capable of easily expanding the function of a computer network by adding control route information assigned to a special function of the computer network to a route search table. There is to do.
[0046]
[Means for Solving the Problems]
In the present invention, in an information relay device such as a router device, the route search unit is separated into a route search unit that searches for a transfer destination of a received packet and a route management unit that adds and deletes route information entries. The route management unit holds a route management table having a binary tree configuration for generating a route search table having a 2 p-th tree configuration held by the route search unit. Each 2 p-th power tree node in the route search table holds only information on child nodes necessary for route search, and the binary tree node in the route management table holds information on parent nodes and child nodes. Based on the parent node and child node information, the path management unit adds, deletes, and changes a binary tree from the parent-child relationship between the binary tree nodes of the path management table when the path information is added or deleted. The position of the node is determined and the binary tree structure is updated. Next, the position of the 2 pth power tree node including the binary tree node is determined from the subnetwork address of the binary tree node and the mask length. Next, the path information of the node in the child node direction is given priority over the path information of the node in the parent node direction by the parent node and child node information held by the binary tree node existing in the 2 p power tree node. When the node in the child node direction does not have the route information and the node in the parent node direction has the route information, the route information of the 2 p-th tree node is set by inheriting the route information. Next, addition, deletion, and change of the 2 p-th power tree are determined from the number of binary tree nodes existing in the 2 p power tree node. When the number is changed from 0 to 1, a new p-th power tree node is added. When the number is changed from 0 to 1, the p-th power tree node is deleted. Change the p-th power tree node.
[0047]
In the control mechanism in which the first stage nodes having 2 m mask lengths of m bits have a one-to-one correspondence with the values that can be taken from the 0th bit to the (m-1) th bit of the address, When adding route information up to (m-1) bits, a search is made for a plurality of first-stage nodes whose path information addresses match the value obtained by masking the address of the first-stage node with the mask length of the route information. Set the route information to be added when the selected node has no route information. When deleting the route information from the mask length 0 bit to (m−1) bits, the first node is updated by deleting the route information of the first node having the route information.
[0048]
In addition, when a node is added between nodes in a parent-child relationship for adding one path information in a control mechanism that adds, deletes, and changes 2 p-th power tree nodes of the path search table for each entry, After the addition target node and the child node are connected, the parent node and the addition target node are connected. When deleting a node having a parent and a child for deleting one path information, the deletion target node is deleted after connecting the parent node of the deletion target node with the child node of the deletion target node. This node addition / deletion method realizes node addition / deletion without separating nodes necessary for route search from the tree structure.
[0049]
When additional functions are added to the route management function and route search function, an additional mechanism is newly added, control route information other than route information necessary for packet relay is additionally registered in the route search table, and the destination address of the received packet When is matched with the control route information, the packet is transferred from the route search function to the additional mechanism to realize the additional function.
[0050]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0051]
FIG. 1 is a functional block diagram showing an example of the configuration of a router device that is an embodiment of an information relay device that implements the information relay method of the present invention.
[0052]
The configuration of the router device according to the present embodiment will be described. The router device of the present embodiment includes a route management unit F0, a route search unit F1, and an additional mechanism unit F3. The route management unit F0 obtains a route information entry E having an address of another router device to be transmitted next and line information to which the router device is connected, and a control route information entry CE other than the route information necessary for packet relay. The route management table TBL0 to be registered is held. The route management table TBL0 stores route information in a binary tree structure, and has a degenerated configuration leaving a node having the route information and a node where the branch occurs, and the node holds the route information and the parent node and child node information. To do.
[0053]
The route search unit F1 holds a route search table TBL1 that reflects the route information and control route information of the route management table TBL0. The route search table TBL1 stores route information in a 2-p power tree structure in which p-stages of binary tree nodes are combined into one, and is a degenerated structure that leaves a node having route information and a node where a branch occurs. The node holds path information and child node information.
[0054]
FIG. 2 shows an example of the configuration of the binary tree node of the path management table TBL0. In the case of the present embodiment, each binary tree node 100 in the path management table TBL0 includes a pointer 101 to an upper parent node, a pointer 102 to a child node indicating two lower child nodes, and a child node. A pointer 103, a flag 104 indicating whether or not the child node has path information, a flag 105, a mask length 106 and a mask length 107 of the child node, and a subnetwork address 108 set in the node, It has information such as a next hop address 109 as route information, an output port number 110 that identifies one of the plurality of ports 50, and the like.
[0055]
FIG. 3 shows an example of the configuration of 2 p-th tree nodes in the route search table TBL1. In the case of the present embodiment, each 2 p-th power tree node 200 in the route search table TBL1 indicates a pointer 201 to 2 p power child nodes, and whether or not route information is set in each child node. 2 p-th power flag 202, mask length 203 of the child node, subnetwork address 204 set for the node, next hop address 205 as route information, and output for specifying one of the plurality of ports 50 It has information such as port number 206.
[0056]
Next, an example of the function of the router device according to the present embodiment will be described. The route management unit F0 adds and deletes the route information entry E and the control route information entry CE to the route information table including the route management table TBL0 and the route search table TBL1. In order to store the entry in the binary tree structure in the path management table TBL0, the path management unit F0 determines the position of the node to be added, deleted, or changed from the parent node and child node information of the node and updates the binary tree. The route management unit F0 updates the route search table TBL1 based on the updated route management table TBL0. In the case of adding an entry, the position of the 2 p power tree node including the added or changed binary tree node is determined, and the 2 p power tree node calculated in the route search table TBL1 is added or changed. In the case of entry deletion, the position of the 2 p power tree node including the deleted or changed binary tree node is determined, and the 2 p power tree node calculated in the route search table TBL1 is deleted or changed.
[0057]
When the packet search unit F1 receives the packet 51 from one of the plurality of ports 50, the route search unit F1 receives the sub-network address of the route information entry E and the control route information entry CE registered in the route search table TBL1. And the destination address is searched from the p-th tree node of the first stage 2 of the path search table TBL1 in the downward direction based on the child node information possessed by the node. Among the matching entries, the entry with the longest mask length is taken as the search result. When the search result is the route information entry E, the packet 51 is transmitted from one port 50 corresponding to the output port number among the plurality of ports 50 according to the output port number and next hop address information of the entry. When the search result is the control route information entry CE, the packet 51 is transferred to the additional mechanism unit F3. When receiving the packet 51, the adding mechanism unit F3 processes the packet 51 in accordance with the contents of the packet 51.
[0058]
The operation of the route management unit triggered by the addition or reduction of route information will be described below with reference to the flowchart of FIG.
[0059]
When the addition or deletion of the route information occurs, as described in the reference technique after FIG. 22 above, the binary tree node of the route information table is updated (step FC0 in FIG. 4).
[0060]
Next, it is determined whether or not the mask length of the path information to be added or deleted is greater than or equal to m (step FC1 in FIG. 4). If it is greater than or equal to m (step FC9 in FIG. 4), 2 including the updated binary tree node 2 A method for updating the path information of the p-th power tree node (step FC2 in FIG. 4) will be described. FIG. 5 shows an example of converting a binary tree for four stages into a sixteen tree. FIG. 5A shows binary tree nodes for four stages. In the binary tree, there are nodes with route information and nodes without route information. FIG. 5B shows a 16-tree node in which 4 levels of binary trees are combined into one. The 16-tree node is sized only at the fourth level of the binary tree node. In order to set the path information of a binary tree node by a 16-tree node, it is performed in accordance with a path search specification in which a path information entry having a long mask length is adopted when a plurality of path information entries having different mask lengths match. . Based on this specification, there are two rules for setting path information using parent node and child node information held by a binary tree node existing in a 16-tree node. The first is to prioritize the route information of the node in the child node direction over the route information of the node in the parent node direction. The second is the direction of the parent node when the node in the child node direction has no route information. When the node has route information, it inherits the route information (specifically, it is overwritten with the information of the destination to which the next hop address 205 and the output port number 206 are inherited). When the binary tree in FIG. 5A is converted into a 16-tree tree according to this rule, FIG. 5B is obtained.
[0061]
Next, a method of setting route information when route information is added will be described with reference to FIG. FIG. 6 shows an example in which route information is added from the state of FIG. In the case of adding route information, the child node information is required to check whether the route information exists in the node in the child node direction. Therefore, the binary tree node 100 of the path management table TBL0 holds child node information (pointers 102 and 103 to the child nodes in FIG. 2). When the child node A001 of the node A00 to which the route information is added has route information, A001 of the 16-tree node in FIG. 6B gives priority to the route information of * A001. When the child node A110 of the node A11 to which the route information is added does not have the route information, the route information of * A11 is set in A110 of the 16-tree node in FIG. 6B.
[0062]
Next, a method of setting route information when route information is deleted will be described with reference to FIG. FIG. 7 shows an example in which the route information is deleted from the state of FIG. In the case of deletion of route information, information on the parent node is required to check whether the route information exists in the node in the parent node direction. Therefore, the binary tree node 100 of the path management table holds parent node information (a pointer 101 to the parent node in FIG. 2). When the node A100 in the child node direction of the node A1 from which the route information is deleted has route information, the A100 of the 16-tree node in FIG. 7B gives priority to the route information of * A100 as it is. When the parent node A01 of the node A010 from which the route information is deleted has the route information, the route information of * A01 is set in A010 of the 16-tree node in FIG. 7B.
[0063]
Next, by changing the number of binary tree nodes existing in the 2 p-th power tree node 200 (step FC4 in FIG. 4), one of the addition, deletion and change of the 2 p-th power tree nodes is changed. A method of selecting will be described.
[0064]
The addition and deletion of 2 p-th power tree nodes will be described. The route management unit F0 adds, deletes, or changes the 2 p-th tree node 200 excluding the first stage of the route search table TBL1 by adding or deleting route information entries. The addition, deletion, and change of 2 p-th power tree nodes are determined by the number of binary tree nodes included in the updated 2 p power tree nodes. Four patterns generated by adding and deleting route information entries will be described with reference to FIG.
[0065]
FIG. 8A shows a case where there is no node other than the binary tree node SA1 in the 2 p-th power tree node LA1 including the added binary tree node SA1 (step FC11 in FIG. 4). In this case, a new p-th power tree node LA1 is created and added to the route search table TBL1 (step FC5 in FIG. 4).
[0066]
FIG. 8B shows a case where there is a node S1 other than the binary tree node SA1 in the 2 p-th power tree node L1 including the added binary tree node SA1 (step FC13 in FIG. 4). In this case, since the 2 p-th power tree node L1 already exists, route information is assigned to the 2 p-th power tree node L1, and the 2 p-th power tree node L1 of the route search table TBL1 is changed. (Step FC7 in FIG. 4).
[0067]
FIG. 8C shows a case where there is no binary tree node in the 2 p-th power tree node LD1 including the deleted binary tree node SD1 (step FC12 in FIG. 4). In this case, since the 2 p-th power tree node LD1 no longer has a binary tree node, the 2 p-th power tree node LD1 in the path search table TBL1 is deleted (step FC6 in FIG. 4).
[0068]
FIG. 8D shows a case where a binary tree node exists in the 2 p-th power tree node L1 including the deleted binary tree node SD1 (step FC13 in FIG. 4). In this case, since the 2 p power tree node L1 has a binary tree node, the 2 p power tree node L1 of the path search table TBL1 is changed (step FC7 in FIG. 4).
[0069]
Next, a method of updating the 2 p-th tree of the route search table TBL1 (step FC8 in FIG. 4) will be described.
[0070]
First, a method for adding the route information entry E to the route search table TBL1 having a 2 p power tree structure will be described. In the above description of the reference technique, it has been explained that when an entry is added to the binary tree structure, the binary tree node is updated with four additional patterns. In order to reflect the update on the p-th power tree of 2 Needs to update one or more 2 p-th tree nodes. Therefore, the router device according to the present embodiment, which adds, deletes, and changes 2 p-th power tree nodes one by one with respect to the route search table TBL1, does not need to be updated when adding route information. Among them, by updating in order from the parent node to the child node, it is possible to perform a route search process between node updates.
[0071]
Using FIG. 9, a method of adding 2 p-th tree nodes in the route search table TBL1 will be described. The nodes L1 and L2 in FIG. 9A have a relationship in which the node L1 is a parent node and the node L2 is a child node. FIG. 9B shows a state where an additional node LA1 having the node L2 as a child node is written on the route search table TBL1. Even if the route search processing is executed in this state, the search processing can be executed as usual because the search is performed in the order of the nodes L1 → L2. In FIG. 9C, the pointer of the child node of the node L1 is changed from the node L2 to the node LA1, and the node addition processing is completed.
[0072]
In the following, according to this node addition order rule, an example of 2 p-th power tree nodes and the order to be updated for each of the four additional patterns will be shown.
[0073]
FIG. 10 shows a method for updating a p-th power tree of 2 in (A-1). The updated node is one of the nodes S1. FIG. 10 shows a case where one 2 p-th tree node is updated. The 2 p-th power tree node L1 including the node S1 is changed.
[0074]
FIG. 11 shows a method for updating a p-th power tree of 2 in (A-2). The updated binary tree nodes are three nodes S1, SA1, and SA2. FIG. 11A shows a case where one 2 p-th power tree node is updated. The 2 p-th power tree node L1 including the nodes S1, SA1, and SA2 is changed. FIG. 11B shows a case where two 2 p-th power tree nodes are updated. A 2 pth power tree node LA1 including the node SA1 is added, and the node LA1 is changed to be connected to the child node pointer of the 2 p power tree node L1 including the nodes S1 and SA2. FIG. 11C shows a case where two 2 p-th power tree nodes are updated. A 2 pth power tree node LA1 including nodes SA1 and SA2 is added, and the node LA1 is changed to be connected to the child node pointer of the 2 p power tree node L1 including the node S1. FIG. 11D shows a case where three 2 p-th tree nodes are updated. A 2 p-th power tree node LA1 including the node SA1, a 2 p-th power tree node LA2 including the node SA2, and a node to the child node pointer of the 2 p-th power tree node L1 including the node S1 Change to connect LA2.
[0075]
FIG. 12 shows a method for updating the p-th power tree of 2 in (A-3). The updated binary tree nodes are two nodes S1 and SA1. FIG. 12A shows a case where one 2 p-th power tree node is updated. The 2 p-th power tree node L1 including the nodes S1 and SA1 is changed. FIG. 12B shows a case where two 2 p-th power tree nodes are updated. A 2 pth power tree node LA1 including the node SA1 is added, and the node LA1 is changed to be connected to the child node pointer of the 2 p power tree node L1 including the node S1.
[0076]
FIG. 13 shows a method of updating the 2 p-th power tree in (A-4). The updated binary tree nodes are two nodes S1 and SA1. FIG. 13A shows a case where one 2 p-th power tree node is updated. The 2 p-th power tree node L1 including the nodes S1 and SA1 is changed. FIG. 13B shows a case where one 2 p-th power tree node is updated. The 2-p power tree L2 including the node SA1 is changed, and the 2-p power tree L1 including the node S1 is not updated. FIG. 13C shows a case where two 2 p-th power tree nodes are updated. A 2 pth power tree node LA1 including the node SA1 is added, and the node LA1 is changed to be connected to the child node pointer of the 2 p power tree node L1 including the node S1.
[0077]
Next, a method for deleting a route information entry from the route search table TBL1 having a p-th tree structure of 2 will be described. In the description of the reference technique described above, when an entry is deleted from the binary tree structure, the binary tree node is updated with four deletion patterns. To reflect one or more 2 p-th tree nodes. The order of the nodes to be updated is updated from the child node to the parent node among the nodes to be updated, thereby enabling a route search process between the nodes.
[0078]
A method for adding a 2 p-th tree node in the route search table TBL1 will be described with reference to FIG. In FIG. 14A, the nodes L1, LD1, and L2 have a relationship in which the child node of the node L1 is the node LD1, and the child node of the node LD1 is the node L2. FIG. 14B shows a state where the pointer of the child node of the node L1 is changed from the node LD1 to the node L2. Even if the route search processing is executed in this state, the search processing can be executed as usual because the search is performed in the order of the nodes L1 → L2. FIG. 14C shows a state in which the node LD1 is deleted and the node deletion processing is completed.
[0079]
In the following, according to this node deletion order rule, an example of 2 p-th power tree nodes and the order to be updated for each of the four deletion patterns will be shown.
[0080]
FIG. 15 shows a method for updating the p-th power tree of 2 in (D-1). The updated node is one of the nodes S1. FIG. 15 shows a case where one 2 p-th tree node is updated. The 2 p-th power tree node L1 including the node S1 is changed.
[0081]
FIG. 16 shows a method for updating the p-th power tree of 2 in (D-2). There are three updated binary tree nodes, nodes S1, SD1, and SD2. FIG. 16A shows a case where one 2 p-th power tree node is updated. The 2 p-th tree node L1 including the nodes S1, SD1, and SD2 is changed. FIG. 16B shows a case where two 2 p-th power tree nodes are updated. The child node pointer of the 2 p power tree node L1 including the nodes S1 and SD2 is changed from the node LD1 to the node L2, and the 2 p power tree node LD1 including the node SD1 is deleted. FIG. 16C shows a case where two 2 p-th power tree nodes are updated. The child node pointer of the 2 p power tree node L1 including the node S1 is changed from the node LD1 to the node L2, and the 2 p power tree node LD1 including the nodes SD1 and SD2 is deleted. FIG. 16D shows a case where three 2 p-th tree nodes are updated. The child node pointer of the 2 p power tree node L1 including the node S1 is changed from the node LD2 to the node L2, the 2 p power tree node LD2 including the node SD2 is deleted, and the 2 p power including the node SD1 is deleted. Delete the branch tree node LD1.
[0082]
FIG. 17 shows a method for updating a p-th power tree of 2 in (D-3). The updated binary tree nodes are two nodes S1 and SD1. FIG. 17A shows a case where one 2 p-th power tree node is updated. The 2 p-th power tree node L1 including the nodes S1 and SD1 is changed. FIG. 17B shows a case where two 2 p-th tree nodes are updated. The child node pointer of the 2 p power tree node L1 including the node S1 is changed from the node LD1 to NULL, and the 2 p power tree node LD1 including the node SD1 is deleted.
[0083]
FIG. 18 shows a method of updating the p-th power tree of 2 in (D-4). The updated binary tree nodes are two nodes S1 and SD1. FIG. 18A shows a case where one 2 p-th power tree node is updated. The 2 p-th power tree node L1 including the nodes S1 and SD1 is changed. FIG. 18B shows a case where two 2 p-th power tree nodes are updated. The 2-p power tree L2 including the node SD1 is changed, and the 2-p power tree L1 including the node S1 is not updated. FIG. 18C shows a case where two 2 p-th tree nodes are updated. The child node pointer of the 2 p power tree node L1 including the node S1 is changed from the node LD1 to the node L2, and the 2 p power tree node LD1 including the node SD1 is deleted.
[0084]
Next, when adding or deleting (m−1) bits of route information from mask length 0 bit (step FC10 in FIG. 4), the route of the 2 p-th power tree node existing under the updated binary tree node A method for updating information (step FC3 in FIG. 4) will be described. The route information setting method is similar to the method described in the previous method for converting the p-stage binary tree to the p-th power tree of 2 and the path information of the node in the parent node direction is greater than the path information of the node in the parent node direction. The route information of the node is prioritized, and when the node in the child node direction does not have the route information, when the node in the parent node direction has the route information, the route information is inherited.
[0085]
A method of adding route information having a mask length of 0 to (m−1) bits will be described with reference to FIG. In FIG. 19A, the twelfth node from the first node in the binary tree is set to 2 13 first-stage nodes in the sixteen tree. When route information is added to the node S1 from the state of FIG. 19A, nodes A000, A101, A110, A111, B000, B001, for which route information has not been set in L1 and L2, as shown in FIG. 19B. Is set with the route information * S1.
[0086]
A method of deleting route information of (m−1) bits from mask length 0 bits will be described with reference to FIG. FIG. 20A summarizes the twelfth node from the first node in the binary tree into 2 13 power nodes in the sixteen tree. When the route information of the node S1 is deleted from the state of FIG. 20A, the nodes A000, A101, A110, A111, B000, and B001 having * S1 in the route information in L1 and L2, as shown in FIG. Route information is lost.
[0087]
Next, a processing method for comparing the destination address of the received packet 51 with the control route information will be described. Since the conventional route search table holds only route information necessary for packet relay, after performing route search processing on the destination address of the packet 51 received by the router, further route information required for packet relay. In the router device of this embodiment, the control route information is additionally registered in the route search table TBL1, and the route search processing and the confirmation of the control route information are performed. Can be done at once.
[0088]
FIG. 21 shows an example of transferring a packet to the additional mechanism unit. When it is desired to execute processing by the additional mechanism unit F3 on the packet 51 having the broadcast address as the destination address, the destination address of the received packet 51 is the broadcast address by registering the broadcast address as control route information in the route search table TBL1. If there is, the route search unit F1 identifies the packet 51 as a broadcast packet by the route search unit F1, and the route search unit F1 transfers the packet 51 to the additional mechanism unit F3.
[0089]
As described above in detail, according to the router device of the present embodiment, a route search that holds a route search table TBL1 that stores route information in a 2 p-th-ary tree structure that holds 2 m powers of the first stage. The path management table TBL0 that stores the path information in a binary tree structure is held in the preceding stage of the part F1, and when the path information is added or deleted, the binary tree of the path management table TBL0 is stored in the path search table TBL1. By providing the path management unit F0 having a function of converting to a 2 p-th power tree, maintenance of the path search table TBL1 can be realized. As a result, in the route search method of the reference technique, the binary tree search table in which the high-order bits of the address are searched one bit at a time is searched, whereas the binary tree node p-stage is stored in one 2 By using the route search table TBL1 aggregated to the p-th power tree nodes, it is possible to perform p-stage search at a time, which is effective in speeding up the route search.
[0090]
In addition, when the update of a node that holds a plurality of route information occurs due to the addition or deletion of route information, the node necessary for the route search is determined by considering the order of updating the nodes as illustrated in FIG. Nodes can be added or deleted without being separated from the structure. This has the effect of minimizing the search processing interruption time.
[0091]
In addition, by registering control route information other than the route information necessary for packet relay in the route search table TBL1, when the packet 51 to be transferred to the addition mechanism unit F3 is received, it is added from the received route search unit F1. The additional function can be realized by transferring the packet 51 to the mechanism unit F3. As a result of this implementation, the search of the control route information and the route information can be performed simultaneously, compared with the case where the search of the control route information is performed separately from the search of the route information, and the search processing is simplified. is there.
[0092]
The features of the present invention other than those described in the claims are listed as follows.
[0093]
That is,
<1> In a router device that relays packets in a computer network system,
It has a route search table that holds the address of the device to be transmitted next and the line information (hereinafter referred to as route information) to which the device is connected. From the destination address of the received packet, the router device to be transmitted next A route search function that searches the route search table for the address and line information to which the router device is connected or the line information to which the host indicated by the destination address is connected;
A route management function that has a route management table and updates route information in the route search table;
The route management table stores the route information in the binary tree structure in ascending order of the mask length of the address, and has a degenerated configuration that leaves the node having the route information and the node where the branch occurs,
The route search table is composed of one binary tree node and a total of (2 p-1) binary tree nodes connected immediately below the binary tree node. Aggregate the nodes, embed the route information assigned to the nodes above the node into the 2 (p−1) th power binary tree nodes at the lowermost level, and set the 2 pth power tree nodes to 2 In a 2 p-th power tree structure composed of 2 (p-1) power trees, the tree is stored in ascending order of the mask length of the address, and the node having the path information and the node where the branch occurs are stored. Take the degenerate structure to leave,
The route management unit determines the position of the binary tree node to be added, deleted, or changed from the parent-child relationship between the binary tree nodes in the binary tree structure of the route management table when route information addition / deletion processing occurs. Decide and update the binary tree structure, and update the 2 p-th tree nodes that need to be added, deleted, or changed to the 2 p-th tree structure in the path search table from the update result of the binary tree structure A route search table creation method characterized by:
[0094]
<2> In the route search table creation method described in item <1>, values that can be taken from the 0th bit to the (m−1) th bit of the destination address for the mth power of the first stage node 2 having a mask length of m bits. When the route information from the mask length 0 bit to (m−1) bits is added or deleted when the one-to-one correspondence is made, the first node address is masked with the mask length of the route information. When a plurality of first-stage nodes matching the address do not have route information, the route information is set, and when the route information from mask length 0 bit to (m−1) bits is deleted, the first row node having the route information is set. A route search table creation method characterized by updating the first node by deleting the route information of the node.
[0095]
<3> In the route search table creation method according to item <1>, when adding, deleting, or changing 2 p-th power tree nodes of the route search table for each entry, adding one route information Therefore, when adding a node between nodes in a parent-child relationship, after connecting the addition target node and the child node, connect the parent node and the addition target node, and select a node that has a parent and a child to delete one route information. When deleting, after connecting the parent node of the node to be deleted with the child node of the node to be deleted, deleting the node to be deleted allows the node to be added or deleted without separating the nodes necessary for route search from the tree structure. A route search table creation method characterized by being realized.
[0096]
<4> In the route search table creation method according to item <1> or <2>, when additional functions are added to the route management function and the route search function, an additional mechanism is newly added, and the route necessary for packet relay Control route information other than information is additionally registered in the route search table, and when the destination address of the received packet matches the control route information, the additional function is realized by transferring the packet from the route search function to the additional mechanism. Route search table creation method.
[0097]
Although the invention made by the present inventor has been specifically described based on the embodiments, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention. Needless to say.
[0098]
【The invention's effect】
According to the information relay method of the present invention, it is possible to increase the speed by dynamically converting a Radish Tree having a binary tree structure into a p-th power tree structure of 2.
[0099]
According to the information relay method of the present invention, it is possible to shorten the route search stop time associated with the update of the route control information and to realize the speedup of the relay control.
[0100]
According to the information relay method of the present invention, when a Radish Tree having a binary tree structure is converted to a p-th power tree structure of 2 to increase the speed, the dynamic update of the p-th power tree structure of 2 is performed. There is an effect that it can be performed accurately in a shorter route search stop time.
[0101]
According to the information relay method of the present invention, when adding, deleting, and changing 2 p-th power tree nodes of a route search table for each entry, nodes necessary for route search are not separated from the tree structure. By adding and deleting nodes, it is possible to minimize the search interruption time.
[0102]
According to the information relay method of the present invention, it is possible to easily expand the function of the computer network by adding the control route information assigned to the special function of the computer network to the route search table. can get.
[0103]
In addition, according to the information relay apparatus of the present invention, an effect is obtained in which a Radish Tree having a binary tree structure can be dynamically converted into a p-th tree structure of 2 to increase the speed.
[0104]
According to the information relay device of the present invention, it is possible to shorten the route search stop time associated with the update of the route control information and to realize the speedup of the relay control.
[0105]
According to the information relay apparatus of the present invention, when a Radish Tree having a binary tree structure is converted to a p-th power tree structure of 2 to increase the speed, the dynamic update of the 2 p-th power tree structure is performed. There is an effect that it can be performed accurately in a shorter route search stop time.
[0106]
According to the information relay apparatus of the present invention, when adding, deleting, and changing 2 p-th power tree nodes of a route search table for each entry, nodes necessary for route search are not separated from the tree structure. By adding and deleting nodes, it is possible to minimize the search interruption time.
[0107]
According to the information relay apparatus of the present invention, by adding the control route information assigned to the special function of the computer network to the route search table, the function of the computer network can be easily expanded. can get.
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing an example of a configuration of a router device that is an embodiment of an information relay device that implements an information relay method of the present invention.
FIG. 2 is a conceptual diagram showing an example of a data structure of a binary tree node of a route management table in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention.
FIG. 3 is a conceptual diagram showing an example of a data structure of a 2 p-th tree node in a route search table in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention.
FIG. 4 is a flowchart showing an example of an operation triggered by the addition or reduction of route information in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention.
FIGS. 5A and 5B are examples of conversion of path information from a binary tree to a 16-tree in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention. FIG.
FIGS. 6A and 6B show an example of processing when addition of route information occurs in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention. It is a conceptual diagram.
FIGS. 7A and 7B show an example of processing when deletion of route information occurs in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention. It is a conceptual diagram.
FIGS. 8A to 8D are 2 p powers generated by addition / deletion of route information in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows the example of addition, deletion, and a change of a tree.
FIGS. 9A to 9C are diagrams illustrating a method of adding 2 p-th tree nodes in a route search table in a router device as an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example.
FIG. 10 is a conceptual diagram showing an example of update processing of a 2 p-th power tree node generated by addition of path information in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention. It is.
FIGS. 11A to 11D are two p-th power tree nodes generated by adding route information in a router device as an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example of the update process of.
FIGS. 12A and 12B are two p-th power tree nodes generated by adding route information in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example of the update process of.
FIGS. 13A to 13C are two p-th power tree nodes generated by adding route information in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example of the update process of.
FIGS. 14A to 14C are diagrams illustrating a method of deleting a 2 p-th power tree node in a route search table in a router device according to an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example.
FIG. 15 shows an example of update processing of a 2 p-th power tree node generated by deletion of route information in a route search table in a router device which is an embodiment of an information relay device implementing an information relay method of the present invention. FIG.
FIGS. 16A to 16D are diagrams of 2 p generated by deletion of route information in a route search table in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example of the update process of a multiplication tree node.
FIGS. 17A and 17B show 2 p generated by deletion of route information in the route search table in the router device which is an embodiment of the information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example of the update process of a multiplication tree node.
FIGS. 18A to 18C are 2 p generated by deletion of route information in a route search table in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention; It is a conceptual diagram which shows an example of the update process of a multiplication tree node.
FIGS. 19A and 19B are conceptual diagrams illustrating an example of route information addition processing in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention. FIGS.
FIGS. 20A and 20B are conceptual diagrams showing an example of a route information deletion process in a router device that is an embodiment of an information relay device that implements the information relay method of the present invention.
FIG. 21 is a conceptual diagram illustrating an example of a transfer procedure of a received packet to an addition mechanism unit in a router device which is an embodiment of an information relay device that implements the information relay method of the present invention.
FIG. 22 is a conceptual diagram showing an example of the configuration and operation of a router device which is a reference technique of the present invention.
FIG. 23 is a conceptual diagram illustrating a data structure used in a route control table in a router device which is a reference technique of the present invention.
FIG. 24 is a conceptual diagram illustrating the configuration of a route information table in a router device which is a reference technique of the present invention.
FIG. 25 is a conceptual diagram illustrating the operation of a router device which is a reference technique of the present invention.
FIG. 26 is a conceptual diagram illustrating the operation of a router device that is a reference technique of the present invention.
FIGS. 27A and 27B are conceptual diagrams illustrating the operation of a router device that is a reference technique of the present invention.
FIGS. 28A and 28B are conceptual diagrams illustrating the operation of a router device that is a reference technique of the present invention. FIGS.
FIG. 29 is a conceptual diagram illustrating the operation of a router device that is a reference technique of the present invention.
[Explanation of symbols]
50 ... port, 51 ... packet, 100 ... binary tree node, 101 ... pointer to parent node, 102 ... pointer to child node, 103 ... pointer to child node, 104 ... flag, 105 ... flag, 106 ... child Mask length of 107 node, 107 ... mask length of child node, 108 ... subnetwork address, 109 ... next hop address, 110 ... output port number, 200 ... p-th tree node of 2 ..., 201 ... pointer to child node , 202 ... Flag, 203 ... Mask length of child node, 204 ... Subnetwork address, 205 ... Next hop address, 206 ... Output port number, CE ... Control route information entry, E ... Route information entry, F0 ... Route management unit F1... Route search unit, F3... Additional mechanism unit, TBL0... Route management table, TBL1.

Claims (3)

コンピュータネットワーク内におけるパケットの中継を行う複数の情報中継装置の各々に、前記パケットを次に送信すべき中継先のアドレスおよび当該中継先に対応した回線情報を含む経路情報を保持する経路制御テーブルを持たせ、個々の前記情報中継装置では、受信した前記パケットの宛先アドレスにて前記経路制御テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する情報中継方法であって、
前記経路制御テーブルを、
前記経路情報を前記アドレスのマスク長の昇順で2分木構造の各2分木ノードに格納し、前記経路情報を持つ2分木ノードと分岐が発生する2分木ノードを残して縮退した構成をとる経路管理テーブルと、
1つの2分木ノードと、その直下につながる(p−1)段分の合計(2のp乗―1)個分の2分木ノードを1つの2のp乗分木ノードに集約し、集約した最下段の2の(p−1)乗個の2分木ノードに、その2分木ノードより上段の2分木ノードに割り付けた前記経路情報を埋め込み、2のp乗分木ノードを、2分木を2の(p−1)乗個分併せた形で構成する2のp乗分木構造に前記アドレスのマスク長の昇順で格納し、前記経路情報を持つ2のp乗分木ノードと分岐が発生する2のp乗分木ノードを残して縮退した構造をとる経路検索テーブルと、
で構成し、
前記経路情報の追加、削除、変更が発生した場合に、前記経路管理テーブルの前記2分木構造における2分木ノード間の親子関係から追加、削除、変更を行うべき2分木ノードの位置を決定して前記2分木構造を更新し、前記2分木構造の更新結果に基づいて、前記経路検索テーブルの前記2のp乗分木構造に対して追加、削除、変更の必要な前記2のp乗分木ノードを更新し、
受信した前記パケットの宛先アドレスにて前記経路検索テーブルの前記2のp乗分木ノードを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定することを特徴とする情報中継方法。
A routing control table that holds routing information including the address of a relay destination to which the packet is to be transmitted next and line information corresponding to the relay destination in each of a plurality of information relay devices that relay the packet in the computer network In each of the information relay apparatuses, the relay destination to which the packet is to be sent next is determined based on the route information obtained by searching the route control table with the destination address of the received packet. Information relay method,
The routing table is
The path information is stored in each binary tree node of the binary tree structure in ascending order of the mask length of the address, and the binary tree node having the path information and the binary tree node where the branch occurs are left and degenerated. A route management table that takes
Aggregating one binary tree node and a total of (p-1) stages of binary tree nodes (2 to the power of p-1) directly below it into one 2 p power tree node, The route information allocated to the binary tree node at the upper stage of the binary tree node is embedded in the aggregated 2 (p-1) binary tree nodes at the lowermost stage. 2 p-th powers having the path information are stored in a 2 p-th power tree structure composed of 2 (p-1) powers of the binary tree in ascending order of the mask length of the address. A path search table having a degenerated structure leaving a tree node and 2 p-th tree nodes where branching occurs;
Consisting of
When the route information is added, deleted, or changed, the position of the binary tree node to be added, deleted, or changed is determined from the parent-child relationship between the binary tree nodes in the binary tree structure of the route management table. The binary tree structure is determined and updated, and the 2nd p-tree structure of the path search table that needs to be added, deleted, or changed based on the update result of the binary tree structure. Update the p-th power tree node of
Determining the relay destination to which the packet is to be transmitted next based on the path information obtained by searching the second p-th tree node of the path search table with the destination address of the received packet; An information relay method characterized by the above.
請求項1記載の情報中継方法において、
前記経路検索テーブルでは、マスク長mビットの初段ノード2のm乗個分をそれぞれ、宛先アドレスの第0ビットから第m−1ビットまでが取りうる値に1対1に対応させるとき、マスク長0ビットから(m−1)ビットまでの前記経路情報について追加を行う場合、当該経路情報のマスク長で前記初段ノードのアドレスをマスクすると、当該経路情報のアドレスと一致する複数個の前記初段ノードが経路情報を持たない時に当該経路情報を設定し、マスク長0ビットから(m−1)ビットまでの前記経路情報について削除を行う場合、当該経路情報を持つ前記初段ノードの経路情報を削除することで前記初段ノードを更新する操作、
前記経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行うとき、1つの前記経路情報の追加のため親子関係にあるノード間にノードを追加する場合、追加対象ノードと子ノードとを接続後、親ノードと追加対象ノードを接続し、1つの経路情報の削除のため親と子を持つノードを削除する場合、削除対象ノードの親ノードを削除対象ノードの子ノードと接続後、削除対象ノードを削除することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現する操作、
パケット中継に必要な前記経路情報以外の制御経路情報を前記経路情報と等化な形式で経路検索テーブルに追加登録するとともに、前記制御経路情報に対応した特定の付加機能を担う付加機構に前記パケットが転送されるように前記制御経路情報に含まれる前記アドレスおよび回線情報を設定し、受信したパケットの宛先アドレスにて前記経路検索テーブルに登録されている前記経路情報および前記制御経路情報を検索し、前記制御経路情報と一致する場合には前記付加機構にパケットを転送して、前記付加機能を実現する操作、
の少なくとも一つの操作を行うことを特徴とする情報中継方法。
The information relay method according to claim 1,
In the path search table, when the mth power of the first-stage node 2 having a mask length of m bits is associated with values that can be taken from the 0th bit to the (m-1) th bit of the destination address on a one-to-one basis, When adding the route information from 0 bit to (m−1) bits, if the address of the first node is masked with the mask length of the route information, a plurality of the first node matching the address of the route information When the path information is set when the path information does not have the path information and the path information from the mask length 0 bit to (m−1) bits is deleted, the path information of the first node having the path information is deleted. The operation of updating the first node by,
When adding, deleting, or changing a 2 p-th power tree node of the route search table for each entry, when adding a node between nodes in a parent-child relationship to add one route information, an addition target After connecting a node and a child node, connect the parent node and the node to be added, and delete a node that has a parent and a child to delete one route information, the parent node of the node to be deleted is a child of the node to be deleted Operation that realizes node addition / deletion without separating the node required for route search from the tree structure by deleting the node to be deleted after connecting to the node,
Control route information other than the route information necessary for packet relay is additionally registered in the route search table in a format equivalent to the route information, and the packet is added to an additional mechanism having a specific additional function corresponding to the control route information. The address and line information included in the control route information is set so that the route information is transferred, and the route information and the control route information registered in the route search table are searched with the destination address of the received packet. An operation for realizing the additional function by transferring a packet to the additional mechanism when the control route information matches the control path information;
An information relay method comprising performing at least one of the following operations.
コンピュータネットワーク内のパケットを中継する情報中継装置であって、
前記パケットを次に送信すべき中継先のアドレスおよび当該中継先に対応した回線情報を含む経路情報を保持する経路制御テーブルと、前記経路制御テーブルの内容を更新する経路管理部と、受信した前記パケットの宛先アドレスにて前記経路制御テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する経路検索部と、を備え、
前記経路管理部では、前記経路制御テーブルとして、前記経路情報を前記アドレスのマスク長の昇順で2分木構造の各2分木ノードに格納し、前記経路情報を持つ2分木ノードと分岐が発生する2分木ノードを残して縮退した構成をとる経路管理テーブルを持ち、
前記経路検索部では、前記経路制御テーブルとして、1つの2分木ノードと、その直下につながる(p−1)段分の合計(2のp乗―1)個分の2分木ノードを1つの2のp乗分木ノードに集約し、集約した最下段の2の(p−1)乗個の2分木ノードに、その2分木ノードより上段の2分木ノードに割り付けた前記経路情報を埋め込み、2のp乗分木ノードを、2分木を2の(p−1)乗個分併せた形で構成する2のp乗分木構造に前記アドレスのマスク長の昇順で格納し、前記経路情報を持つ2のp乗分木ノードと分岐が発生する2のp乗分木ノードを残して縮退した構造をとる経路検索テーブルを持ち、
前記経路管理部は、前記経路情報の追加、削除、変更が発生した場合に、前記経路管理テーブルの前記2分木構造における2分木ノード間の親子関係から追加、削除、変更を行うべき2分木ノードの位置を決定して前記2分木構造を更新し、前記2分木構造の更新結果に基づいて、前記経路検索テーブルの前記2のp乗分木構造に対して追加、削除、変更の必要な前記2のp乗分木ノードを更新する操作を行い、
前記経路検索部は、受信した前記パケットの宛先アドレスにて前記経路検索テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する操作を行う、ようにしたことを特徴とする情報中継装置。
An information relay device that relays packets in a computer network,
A routing control table that holds routing information including the address of the relay destination to which the packet is to be transmitted next and line information corresponding to the relay destination, a route management unit that updates the contents of the routing control table, and the received A route search unit that determines the relay destination to which the packet is to be sent next based on the route information obtained by searching the route control table at a packet destination address; and
The route management unit stores the route information as the route control table in each binary tree node of the binary tree structure in ascending order of the mask length of the address. Has a path management table that takes a degenerated configuration leaving the generated binary tree nodes,
In the route search unit, as the route control table, one binary tree node and a total of (p−1) stages of binary tree nodes (2 to the power of p−1) connected immediately below the binary tree node are 1 The above-mentioned route that is aggregated into two 2 p power tree nodes and allocated to the 2 (p−1) power binary tree nodes in the lowermost stage, which are allocated to the binary tree nodes that are higher than the binary tree node. Embedding information, store 2 p-th power tree nodes in 2 p-th power tree structure consisting of 2 (p-1) powers of binary tree combined in ascending order of mask length of the address. And a path search table having a degenerate structure leaving 2 p-th tree nodes having the path information and 2 p-th tree nodes where branching occurs.
When the route information is added, deleted, or changed, the route management unit should add, delete, or change from the parent-child relationship between the binary tree nodes in the binary tree structure of the route management table 2 Updating the binary tree structure by determining the position of the branch tree node, and adding, deleting, and deleting from the second p-th tree structure of the path search table based on the update result of the binary tree structure; Update the 2 p-th tree node that needs to be changed,
The route search unit performs an operation of determining the relay destination to which the packet is to be sent next based on the route information obtained by searching the route search table with the destination address of the received packet. An information relay device characterized in that it is configured as described above.
JP36298798A 1998-12-21 1998-12-21 Information relay method and apparatus Expired - Fee Related JP3970448B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36298798A JP3970448B2 (en) 1998-12-21 1998-12-21 Information relay method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36298798A JP3970448B2 (en) 1998-12-21 1998-12-21 Information relay method and apparatus

Publications (2)

Publication Number Publication Date
JP2000188608A JP2000188608A (en) 2000-07-04
JP3970448B2 true JP3970448B2 (en) 2007-09-05

Family

ID=18478239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36298798A Expired - Fee Related JP3970448B2 (en) 1998-12-21 1998-12-21 Information relay method and apparatus

Country Status (1)

Country Link
JP (1) JP3970448B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4048861B2 (en) 2002-07-23 2008-02-20 日本電気株式会社 Address search device
US7313101B2 (en) * 2002-12-20 2007-12-25 Hewlett-Packard Development Company, L.P. Need-based filtering for rapid selection of devices in a tree topology network
US7840696B2 (en) * 2003-07-25 2010-11-23 Broadcom Corporation Apparatus and method for classifier identification
KR100586461B1 (en) 2003-10-15 2006-06-08 임혜숙 Method, Hardware Architecture and Recording Medium for Searching IP Address by Using Pipeline Binary Tree
JP3918859B2 (en) * 2003-12-17 2007-05-23 日本電気株式会社 Network, router device, route update inhibiting method used therefor, and program thereof
JP5062131B2 (en) 2008-10-06 2012-10-31 富士通株式会社 Information processing program, information processing apparatus, and information processing method
US9049157B1 (en) * 2009-08-16 2015-06-02 Compass Electro-Optical Systems Ltd Method and device for improving scalability of longest prefix match
JP5440691B2 (en) * 2010-03-24 2014-03-12 日本電気株式会社 Packet transfer system, control device, transfer device, processing rule creation method and program
DE102021206267A1 (en) * 2021-06-18 2022-12-22 Robert Bosch Gesellschaft mit beschränkter Haftung Device and method for processing data units

Also Published As

Publication number Publication date
JP2000188608A (en) 2000-07-04

Similar Documents

Publication Publication Date Title
JP3735471B2 (en) Packet relay device and LSI
JP4156112B2 (en) High-speed search method and high-speed search device
US6633565B1 (en) Apparatus for and method of flow switching in a data communications network
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US20150131666A1 (en) Apparatus and method for transmitting packet
JP3371006B2 (en) Table search method and router device
US20040254909A1 (en) Programming routes and access control lists in comparison tree data structures and their use such as in performing lookup operations
US20060083247A1 (en) Prefix lookup using address-directed hash tables
US6922410B1 (en) Organization of databases in network switches for packet-based data communications networks
JP2002530011A (en) Router and method for optimal routing table compression
CN103534993A (en) Label switched routing to connect low power network domains
CN110460529B (en) A data processing method and chip of a content router forwarding information base storage structure
JP3970448B2 (en) Information relay method and apparatus
US10897422B2 (en) Hybrid routing table for routing network traffic
CN101510855A (en) Method and apparatus for processing QinQ message
CN117640510B (en) Efficient forwarding method and device for space terahertz network packet
CN100397816C (en) Method for classifying received data packets in network equipment
KR100472275B1 (en) Route retrieving system, method therefor and a router device to be used in the same
CN114079634B (en) Message forwarding method and device and computer readable storage medium
CN113381934B (en) Differential service code point DSCP (distributed service control point) drainage method and device
CN119697102A (en) Data forwarding method, device, electronic device and storage medium
CN116667910A (en) Satellite network addressing method, device, electronic equipment and storage medium
CN111865804B (en) Method and system for improving route issuing efficiency through hardware packet issuing mechanism
US7376657B1 (en) Fast IPv6 address lookup using skip level processing on multi-bit tries

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070404

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: 20070529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees
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