情報中継方法および装置
【課題】 経路制御テーブルに木構造データを用いる経路検索の高速化を実現する。
【解決手段】 コンピュータネットワークで情報中継を行うルータ装置を、経路情報を2分木構造の経路管理テーブルTBL0で管理する経路管理部F0と、経路情報を2のp乗分木構造の経路検索テーブルTBL1で持ち、複数のポート50の一つから受信したパケット51内の宛先アドレス情報にて検索し転送先(出力すべき一つのポート50)を決定する経路検索部F1とで構成し、経路管理部F0は、経路情報エントリEの追加等に応じて経路管理テーブルTBL0の2分木構造の各ノードを更新した後、更新結果を経路検索テーブルTBL1の2のp乗分木構造に反映させるメンテナンス処理を行う。
【解決手段】 コンピュータネットワークで情報中継を行うルータ装置を、経路情報を2分木構造の経路管理テーブルTBL0で管理する経路管理部F0と、経路情報を2のp乗分木構造の経路検索テーブルTBL1で持ち、複数のポート50の一つから受信したパケット51内の宛先アドレス情報にて検索し転送先(出力すべき一つのポート50)を決定する経路検索部F1とで構成し、経路管理部F0は、経路情報エントリEの追加等に応じて経路管理テーブルTBL0の2分木構造の各ノードを更新した後、更新結果を経路検索テーブルTBL1の2のp乗分木構造に反映させるメンテナンス処理を行う。
【発明の詳細な説明】
【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)に当てはまる場合、図2828(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を変更する。図12R>2(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を変更する。図13R>3(b)は1つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木L2を変更し、ノードS1を含む2のp乗分木L1は更新しない。図13R>3(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乗分木ノードの追加方法を示す。図14R>4(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を変更する。図17R>7(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を変更する。図18R>8(b)は2つの2のp乗分木ノードを更新する場合である。ノードSD1を含む2のp乗分木L2を変更し、ノードS1を含む2のp乗分木L1は更新しない。図18R>8(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】また、経路情報の追加、削除によって複数の経路情報を保持するノードの更新が発生した場合、図1414に例示したようにノードを更新する順番を考慮することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現することができる。これにより、検索処理中断時間を最小化する効果がある。
【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】
【発明の属する技術分野】本発明は、情報中継技術に関し、特に、コンピュータネットワークシステム内のパケットを中継するルータ装置等において、受信したパケットの宛先アドレスから、当該パケットを次に送信すべき中継先を決定するために使用する経路情報テーブル作成技術等に適用して有効な技術に関する。
【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)に当てはまる場合、図2828(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を変更する。図12R>2(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を変更する。図13R>3(b)は1つの2のp乗分木ノードを更新する場合である。ノードSA1を含む2のp乗分木L2を変更し、ノードS1を含む2のp乗分木L1は更新しない。図13R>3(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乗分木ノードの追加方法を示す。図14R>4(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を変更する。図17R>7(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を変更する。図18R>8(b)は2つの2のp乗分木ノードを更新する場合である。ノードSD1を含む2のp乗分木L2を変更し、ノードS1を含む2のp乗分木L1は更新しない。図18R>8(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】また、経路情報の追加、削除によって複数の経路情報を保持するノードの更新が発生した場合、図1414に例示したようにノードを更新する順番を考慮することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現することができる。これにより、検索処理中断時間を最小化する効果がある。
【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…経路検索テーブル。
【特許請求の範囲】
【請求項1】 コンピュータネットワーク内におけるパケットの中継を行う複数の情報中継装置の各々に、前記パケットを次に送信すべき中継先のアドレスおよび当該中継先に対応した回線情報を含む経路情報を保持する経路制御テーブルを持たせ、個々の前記情報中継装置では、受信した前記パケットの宛先アドレスにて前記経路制御テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する情報中継方法であって、前記経路制御テーブルを、前記経路情報を前記アドレスのマスク長の昇順で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乗分木ノードを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定することを特徴とする情報中継方法。
【請求項2】 請求項1記載の情報中継方法において、前記経路検索テーブルでは、マスク長mビットの初段ノード2のm乗個分をそれぞれ、宛先アドレスの第0ビットから第m−1ビットまでが取りうる値に1対1に対応させるとき、マスク長0ビットから(m−1)ビットまでの前記経路情報について追加を行う場合、当該経路情報のマスク長で前記初段ノードのアドレスをマスクすると、当該経路情報のアドレスと一致する複数個の前記初段ノードが経路情報を持たない時に当該経路情報を設定し、マスク長0ビットから(m−1)ビットまでの前記経路情報について削除を行う場合、当該経路情報を持つ前記初段ノードの経路情報を削除することで前記初段ノードを更新する操作、前記経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行うとき、1つの前記経路情報の追加のため親子関係にあるノード間にノードを追加する場合、追加対象ノードと子ノードとを接続後、親ノードと追加対象ノードを接続し、1つの経路情報の削除のため親と子を持つノードを削除する場合、削除対象ノードの親ノードを削除対象ノードの子ノードと接続後、削除対象ノードを削除することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現する操作、パケット中継に必要な前記経路情報以外の制御経路情報を前記経路情報と等化な形式で経路検索テーブルに追加登録するとともに、前記制御経路情報に対応した特定の付加機能を担う付加機構に前記パケットが転送されるように前記制御経路情報に含まれる前記アドレスおよび回線情報を設定し、受信したパケットの宛先アドレスにて前記経路検索テーブルに登録されている前記経路情報および前記制御経路情報を検索し、前記制御経路情報と一致する場合には前記付加機構にパケットを転送して、前記付加機能を実現する操作、の少なくとも一つの操作を行うことを特徴とする情報中継方法。
【請求項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乗分木ノードを更新する操作を行い、前記経路検索部は、受信した前記パケットの宛先アドレスにて前記経路検索テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する操作を行う、ようにしたことを特徴とする情報中継装置。
【請求項1】 コンピュータネットワーク内におけるパケットの中継を行う複数の情報中継装置の各々に、前記パケットを次に送信すべき中継先のアドレスおよび当該中継先に対応した回線情報を含む経路情報を保持する経路制御テーブルを持たせ、個々の前記情報中継装置では、受信した前記パケットの宛先アドレスにて前記経路制御テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する情報中継方法であって、前記経路制御テーブルを、前記経路情報を前記アドレスのマスク長の昇順で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乗分木ノードを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定することを特徴とする情報中継方法。
【請求項2】 請求項1記載の情報中継方法において、前記経路検索テーブルでは、マスク長mビットの初段ノード2のm乗個分をそれぞれ、宛先アドレスの第0ビットから第m−1ビットまでが取りうる値に1対1に対応させるとき、マスク長0ビットから(m−1)ビットまでの前記経路情報について追加を行う場合、当該経路情報のマスク長で前記初段ノードのアドレスをマスクすると、当該経路情報のアドレスと一致する複数個の前記初段ノードが経路情報を持たない時に当該経路情報を設定し、マスク長0ビットから(m−1)ビットまでの前記経路情報について削除を行う場合、当該経路情報を持つ前記初段ノードの経路情報を削除することで前記初段ノードを更新する操作、前記経路検索テーブルの2のp乗分木ノードを1エントリ毎に追加、削除、変更を行うとき、1つの前記経路情報の追加のため親子関係にあるノード間にノードを追加する場合、追加対象ノードと子ノードとを接続後、親ノードと追加対象ノードを接続し、1つの経路情報の削除のため親と子を持つノードを削除する場合、削除対象ノードの親ノードを削除対象ノードの子ノードと接続後、削除対象ノードを削除することで、経路検索に必要なノードを木構造から分離すること無くノードの追加、削除を実現する操作、パケット中継に必要な前記経路情報以外の制御経路情報を前記経路情報と等化な形式で経路検索テーブルに追加登録するとともに、前記制御経路情報に対応した特定の付加機能を担う付加機構に前記パケットが転送されるように前記制御経路情報に含まれる前記アドレスおよび回線情報を設定し、受信したパケットの宛先アドレスにて前記経路検索テーブルに登録されている前記経路情報および前記制御経路情報を検索し、前記制御経路情報と一致する場合には前記付加機構にパケットを転送して、前記付加機能を実現する操作、の少なくとも一つの操作を行うことを特徴とする情報中継方法。
【請求項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乗分木ノードを更新する操作を行い、前記経路検索部は、受信した前記パケットの宛先アドレスにて前記経路検索テーブルを検索して得られた前記経路情報に基づいて次に前記パケットを送出すべき前記中継先を決定する操作を行う、ようにしたことを特徴とする情報中継装置。
【図1】
【図10】
【図15】
【図24】
【図2】
【図3】
【図5】
【図8】
【図12】
【図13】
【図17】
【図4】
【図6】
【図9】
【図11】
【図18】
【図7】
【図14】
【図16】
【図19】
【図20】
【図21】
【図26】
【図22】
【図23】
【図25】
【図29】
【図27】
【図28】
【図10】
【図15】
【図24】
【図2】
【図3】
【図5】
【図8】
【図12】
【図13】
【図17】
【図4】
【図6】
【図9】
【図11】
【図18】
【図7】
【図14】
【図16】
【図19】
【図20】
【図21】
【図26】
【図22】
【図23】
【図25】
【図29】
【図27】
【図28】
【公開番号】特開2000−188608(P2000−188608A)
【公開日】平成12年7月4日(2000.7.4)
【国際特許分類】
【出願番号】特願平10−362987
【出願日】平成10年12月21日(1998.12.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成12年7月4日(2000.7.4)
【国際特許分類】
【出願日】平成10年12月21日(1998.12.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]