(57)【要約】【課題】  経路検索時間を短くできる経路制御装置を提供する。【解決手段】  経路制御装置１０は、初期設定時にルーティングテーブル５２内に複数のメンバーツリーＭＴ１，ＭＴ２を有するロジカルツリーＬＴを作成する。メンバーツリーＭＴ１、ＭＴ２のダイレクトテーブルＤＴ１、ＤＴ２は同じＤＴエントリ（ルート）を有する。従来のツリーは同じルートに対して１つのツリーが構成されたのに対し、本発明では同じルートに対して複数のメンバーツリーが構成されるため、リーフＬに到達するまでに通過するノードＮの数が減少する。経路検索時、複数の検索エンジンＳＥ１，ＳＥ２がメンバーツリーＭＴ１，ＭＴ２を検索する。【選択図】        図４
2005033621.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内の複数のホストコンピュータ及び他のネットワークからフレームを受信し、かつ転送する経路制御装置であって、
宛先アドレス情報と前記宛先アドレス情報に対応する経路情報とを含む複数のリーフを木構造で記憶するルーティングテーブルを備え、
前記木構造は共通のルートを有する複数のメンバーツリーを含み、
前記経路制御装置はさらに、
受信した前記フレームに含まれる宛先アドレス情報を検索キーとして前記複数のメンバーツリーを検索する検索手段と、
前記フレームを受信し、前記検索手段が検索したリーフに含まれる経路情報に基づいて前記受信したフレームを転送する受信転送手段とを備えることを特徴とする経路制御装置。
【請求項２】
請求項１に記載の経路制御装置であって、
前記共通のルートは、前記宛先アドレス情報内の上位Ｎ（Ｎは自然数）ビット数分の組合せ情報を記録する複数のダイレクトテーブルを含み、
前記複数のダイレクトテーブルは前記複数のメンバーツリーに対応し、互いに同じ組合せ情報を有することを特徴とする経路制御装置。
【請求項３】
請求項１又は請求項２に記載の経路制御装置であって、
前記検索手段は、前記複数のメンバーツリーに対応して設けられ、受信した前記フレームに含まれる宛先アドレス情報を検索キーとして、各々が対応するメンバーツリーからリーフを検索する複数の検索エンジンを含むことを特徴とする経路制御装置。
【請求項４】
請求項１〜請求項３のいずれか１項に記載の経路制御装置であってさらに、
外部から入力されたメンバーツリー数情報に基づいて、前記ルーティングテーブル内に複数のメンバーツリーを含む木構造を作成する作成手段を備えることを特徴とする経路制御装置。
【請求項５】
請求項４に記載の経路制御装置であってさらに、
前記作成手段は、外部から新たなリーフを受け、前記複数のメンバーツリーのうち登録されたリーフ数が最も少ないメンバーツリーに前記新たなリーフを登録することを特徴とする経路制御装置。
【請求項６】
請求項５に記載の経路制御装置であってさらに、
新たなリーフを登録するメンバーツリーを示す登録先情報を記憶する登録情報ファイルを備え、
前記作成手段は、外部から新たなリーフを受けたとき、前記登録先情報に基づいて前記新たなリーフを登録し、登録後、前記登録先情報を登録されたリーフ数が最も少ないメンバーツリーに変更することを特徴とする経路制御装置。
【請求項７】
請求項６に記載の経路制御装置であって、
前記作成手段は、前記新たなリーフを登録後、ラウンドロビン方式により前記登録先情報を変更することを特徴とする経路制御装置。
【請求項８】
ネットワーク内の複数のホストコンピュータ及び他のネットワークとフレームを受信し、かつ転送する経路制御装置を用いた経路制御方法であって、
前記経路制御装置は、宛先アドレス情報と前記宛先アドレス情報に対応する経路情報とを含む複数のリーフを木構造で記憶するルーティングテーブルと、検索手段とを備え、
前記木構造は共通のルートを有する複数のメンバーツリーを含み、
前記経路制御方法は、
外部からフレームを受信するステップと、
前記フレームから宛先アドレス情報を抽出するステップと、
前記抽出された宛先アドレス情報を検索キーとして、前記検索手段が前記複数のメンバーツリーを検索するステップと、
前記検索するステップで前記検索キーに対応するリーフを検索したとき、前記検索されたリーフの有する経路情報に基づいて前記フレームを転送するステップとを備えることを特徴とする経路制御方法。
【請求項９】
請求項８に記載の経路制御方法であって、
前記共通のルートは、前記宛先アドレス情報内の上位Ｎ（Ｎは自然数）ビット数分の組合せ情報を記録する複数のダイレクトテーブルを含み、
前記複数のダイレクトテーブルは前記複数のメンバーツリーに対応し、互いに同じ組合せ情報を有することを特徴とする経路制御方法。
【請求項１０】
請求項８又は請求項９に記載の経路制御方法であって、
前記検索手段は、複数の検索エンジンを含み、
前記検索するステップは、前記複数の検索エンジンの各々が対応する前記メンバーツリーを検索することを特徴とする経路制御方法。
【請求項１１】
請求項８〜請求項１０のいずれか１項に記載の経路制御方法であってさらに、
外部から新たなリーフを受信するステップと、
前記複数のメンバーツリーのうち、登録されたリーフ数が最も少ないメンバーツリーに新たなリーフを登録するステップとを備えることを特徴とする経路制御方法。
【請求項１２】
請求項１１に記載の経路制御方法であって、
前記経路制御装置はさらに、新たなリーフの登録先メンバーツリーを示す登録先情報を記憶した登録情報ファイルを備え、
前記経路制御方法はさらに、
前記登録するステップで、前記登録先情報に基づいて前記新たなリーフを登録し、登録後に前記登録先情報を登録されたリーフ数が最も少ないメンバーツリーに変更するステップを含むことを特徴とする経路制御方法。
【請求項１３】
請求項１２に記載の経路制御方法であって、
前記変更するステップはラウンドロビン方式により前記登録先情報を変更することを特徴とする経路制御方法。
【請求項１４】
請求項８〜１３のいずれか１項に記載のステップをコンピュータに実行させる経路制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路制御装置に関し、さらに詳しくは、ネットワーク内の複数のホストコンピュータ及び他のネットワークとフレームを受信し、かつ転送する経路制御装置に関する。
【背景技術】
【０００２】
ルータやレイヤ３スイッチ等の経路制御装置が行う経路検索の手法の１つにツリー法がある。ツリー法では、ＭＡＣアドレスやＩＰアドレス等の宛先アドレス情報を木構造（ツリー）に配置する。経路検索時には、経路制御装置は検索キー（アドレス情報）に従って節点（以下、ノードと称する）をたどり、外部節点（以下リーフと称する）に到達したときに、経路情報を取得する。経路制御装置が表１に示す７ビットの宛先アドレス情報に対する経路情報を有する場合のツリー構造の一例を図１０に示す。
【表１】
2005033621.tif 000003
【０００３】
図１０のツリーはパトリシアツリーで構成される。各ノードＮ内の数値はそのノードＮに属しているリーフＬに登録されている宛先アドレス情報同士が持つ共通の上位ビット数を示す。例えば、ノードＮ３に注目すると、ノードＮ３に属しているリーフＬ内の宛先アドレス情報は「１００００１０」、「１００００１１」、「１０００１１１」であり、３つの宛先アドレス情報の上位４ビット分「１０００」が共通している。そのため、ノードＮ３内の数値は「４」となる。
【０００４】
ノードＮ３からエッジ（枝）が２本に分かれているが、これはノードＮ３に属するリーフＬ内の宛先アドレス情報の上位５ビット目の数値が「０」か「１」かにより分かれている。先ほどの３つの宛先アドレス情報のうち、「１００００１０」及び「１００００１１」の上位５ビット目は「０」であるため、これらの宛先アドレス情報を有するリーフＬは「０」のエッジに属する。一方、「１０００１１１」は上位５ビット目が「１」であるため、この宛先アドレス情報を有するリーフＬは「１」のエッジに属する。
【０００５】
従来の経路制御装置が外部から宛先アドレス情報「１００００１０」を有するフレームを受信した場合、経路制御装置は受信したフレームから宛先アドレス情報「１００００１０」を抽出する。経路制御装置は抽出した宛先アドレス情報を検索キーとして図１０に示したパトリシアツリーを用いて経路検索を行う。図１０において経路検索はルートＲから出発する。検索キーは上位１ビット目が「１」であるため、ルートＲから「１」のエッジに進み、ノードＮ１に到達する。ノードＮ１内の数値は「１」であるため（すなわち、ノードＮ１に属するリーフＬの宛先アドレス情報は上位１ビット目が全て「１」である）、ノードＮ１から延びる「０」と「１」のエッジは上位２ビット目の数値により分かれている。検索キー（「１００００１０」）は上位２ビット目が「０」であるため、「０」のエッジを進み、ノードＮ２に到達する。ノードＮ２内の数値は「２」であるため、検索キーの上位３ビット目の数値「０」に基づいて、「０」のエッジを進み、ノードＮ３に到達する。同様の方法によりノードＮ４に到達し、最終的にリーフＬ１を検索する。リーフＬには宛先アドレス情報の他に、その宛先アドレス情報を有するフレームが向かうべき場所を示した経路情報が登録されている。経路制御装置はリーフＬ１内の経路情報を取得し、その経路情報に基づいて受信したフレームを転送する。
【０００６】
このように、従来の経路制御装置の検索方法では、検索時に複数のノードＮ１〜Ｎ４を通過しなければならない。通過するノードＮの数が多いほど、検索時間がかかるため、通過するノードの数は少ないほうが好ましい。
【０００７】
そこで下記の特許文献１では、新たなツリー構造による経路検索が提案されている。特許文献１では、「ダイレクトテーブル」を有するツリー構造を用いて経路検索が行われる。図１１に、表１の宛先アドレス情報を有する複数のリーフＬについての特許文献１に基づくツリー構造を示す。図１１を参照して、ダイレクトテーブルを有するツリー構造では、図１０でのルートＲの代わりにダイレクトテーブルＤＴを設ける。ダイレクトテーブルＤＴには、宛先アドレス情報の上位３ビット分の８通りの組合せ（以下、各組合せをＤＴエントリ０〜７と称する。）が登録されている。同じＤＴエントリに属するリーフＬが複数存在する場合は、従来と同様にノードＮが設けられる。図１１では、ＤＴエントリ４（上位ビット数が「１００」）に属するリーフＬは３つ（宛先アドレス情報＝「１００００１０」、「１００００１１」、「１０００１１１」）あるため、ＤＴエントリ４は図１０と同じくノードＮ３及びノードＮ４を有する。ダイレクトテーブルＤＴを設けることで、経路検索時においてリーフＬにたどり着くまでに通過しなければならないノードＮの数（以下、ノード段数と称する）を減らすことができる。たとえば、経路検索時に宛先アドレス情報「１００００１０」を有するリーフＬ１にたどり着くまで、図１０のツリー構造ではノードＮ１〜Ｎ４まで４つのノードＮを通過する必要があるが、図１１のツリー構造では、ダイレクトテーブルＤＴがあるため、ＤＴエントリ４から出発してノードＮ３、Ｎ４と２つのノードＮを通過すれば目的のリーフＬ１にたどり着くことができる。よってダイレクトテーブルＤＴを有するツリー構造はノード段数を減らすことができ、その結果、検索時間の短縮を可能とする。
【０００８】
しかしながら、ダイレクトテーブルＤＴを有するツリー構造であっても、複数のリーフＬが有する宛先アドレス情報によってノードＮの段数は変動する。ダイレクトテーブルＤＴを有するツリー構造で、１つのＤＴエントリに８つのリーフＬが属している場合のツリー構造を図１２に示す。図１２（Ａ）では、ノードＮ１０、Ｎ１１に属するリーフＬはそれぞれ４つであり、リーフＬが均等に分散している。このとき、図中のリーフＬ２に到達するまでのノード段数は２となる。一方、図１２（Ｂ）は、リーフＬが最も不均等に分散した場合のツリー構造である。図１２（Ｂ）では、リーフＬ２に到達するためのノード段数が７となってしまう。よって、たとえダイレクトテーブルＤＴを有するツリー構造であっても、ツリー構造内のリーフに偏りが発生するとノード段数が増加し、結果として経路検索に時間がかかる。
【０００９】
【特許文献１】特開２００１−３５７０７１号公報
【特許文献２】特開２００１−２２９１６９号公報
【特許文献３】特開２０００−１８８６０８号公報
【特許文献４】特開平１０−２１００５２号公報
【特許文献５】特開平６−１３９２８０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、経路情報をツリー構造にした場合のリーフの偏りを抑制できる経路制御装置を提供することである。
【００１１】
また、本発明の他の目的は、経路検索時間を短くできる経路制御装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明による経路制御装置は、ネットワーク内の複数のホストコンピュータ及び他のネットワークとフレームの受信し、かつ転送する経路制御装置であって、ルーティングテーブルと、検索手段と、受信転送手段とを備える。ルーティングテーブルは宛先アドレス情報と宛先アドレス情報に対応する経路情報とを含む複数のリーフを木構造で記憶する。木構造は共通のルートを有する複数のメンバーツリーを含む。検索手段は受信したフレームに含まれる宛先アドレス情報を検索キーとして複数のメンバーツリーからリーフを検索する。受信転送手段は、フレームを受信し、検索手段が検索したリーフに含まれる経路情報に基づいて受信したフレームを転送する。
【００１３】
本発明による経路制御装置は、ルーティングテーブルの木構造を共通のルートを有する複数のメンバーツリーとする。その結果、ルートに対して１つのツリーを形成する場合と比較して、メンバーツリーに登録されるリーフ数は少なくなる。従来１つのツリーに登録していた複数のリーフを複数のメンバーツリーに分散できるからである。そのため、経路検索時にリーフにたどり着くために通過するノード数も減少し、木構造中でのリーフの偏りを防止できる。
【００１４】
好ましくは、共通のルートは、複数のダイレクトテーブルを含む。複数のダイレクトテーブルは、宛先アドレス情報内の上位Ｎ（Ｎは自然数）ビット数分の組合せ情報を記録する。複数のダイレクトテーブルは前記複数のメンバーツリーに対応し、互いに同じ組合せ情報を有する。
【００１５】
この場合、複数のメンバーツリーはダイレクトテーブルを有するため、ノードの数を減少できる。また、メンバーツリーごとのダイレクトテーブル内の組合せ情報は同じである。よって、従来１つの木構造であったものを複数のメンバーツリーに分けた状態にできる。その結果、ツリーごとに属するリーフの数は従来の木構造より減少する。その結果、リーフの偏りを減少できる。
【００１６】
好ましくは、検索手段は、複数の検索エンジンを含む。複数の検索エンジンは複数のメンバーツリーに対応して設けられ、受信した前記フレームに含まれる宛先アドレス情報を検索キーとして、各々が対応するメンバーツリーからリーフを検索する。
【００１７】
この場合、本発明による経路制御装置は、複数の検索エンジンを使って複数のメンバーツリーを検索する。このとき、各検索エンジンで検索するメンバーツリーは異なる。よって、従来のようにルーティングテーブル内で同じルートに１つの木構造を構成する場合と比較して、検索時間を大幅に短縮できる。
【００１８】
好ましくはさらに、経路制御装置は作成手段を備える。作成手段は外部から入力されたメンバーツリー数情報に基づいて、ルーティングテーブル内に複数のメンバーツリーを含む木構造を作成する。
【００１９】
この場合、ルーティングテーブル内のメンバーツリー数を任意に設定できる。
【００２０】
好ましくはさらに、作成手段は、外部から新たなリーフを受け、複数のメンバーツリーのうち登録されたリーフ数が最も少ないメンバーツリーに新たなリーフを登録する。
【００２１】
この場合、同じ木構造内の複数のメンバーツリー間で登録されるリーフ数が不均等にならない。その結果、各メンバーツリーにおいてリーフにたどり着くまでに通過するノード数を均等にすることができる。
【００２２】
好ましくはさらに、経路制御装置は登録情報ファイルを備える。登録情報ファイルは新たなリーフを登録するメンバーツリーを示す登録先情報を記憶する。作成手段は、外部から新たなリーフを受けたとき、登録先情報にもとづいて新たなリーフを登録し、登録後、登録先情報を登録されたリーフ数が最も少ないメンバーツリーに変更する。
【００２３】
この場合、経路制御装置は予め登録情報ファイルに登録された登録先情報に基づいてリーフを登録すれば、各メンバーツリーに登録されるリーフ数を均等に分散できる。
【００２４】
好ましくは、作成手段は新たなリーフを登録後、ラウンドロビン方式により登録先情報を変更する。
【００２５】
この場合、登録先情報を変更する場合、ラウンドロビン方式に基づいて変更するため、登録されたリーフ数が最も少ないメンバーツリーが登録先情報となる。
【００２６】
本発明による経路制御方法は、ネットワーク内の複数のホストコンピュータ及び他のネットワークとフレームを受信し、かつ転送する経路制御装置を用いた経路制御方法であって、経路制御装置は宛先アドレス情報と宛先アドレス情報に対応する経路情報とを含む複数のリーフを木構造で記憶するルーティングテーブルと、検索手段とを備え、木構造は共通のルートを有する複数のメンバーツリーを含み、経路制御方法は、外部からフレームを受信するステップと、フレームから宛先アドレス情報を抽出するステップと、抽出された宛先アドレス情報を検索キーとして、検索手段により複数のメンバーツリーを検索するステップと、検索するステップで検索キーに対応するリーフを検索したとき、検索されたリーフの有する経路情報に基づいてフレームを転送するステップとを備える。
【００２７】
本発明による経路制御装置は、ルーティングテーブルの木構造を共通のルートを有する複数のメンバーツリーとする。その結果、ルートに対して１つのツリーを形成する場合と比較して、メンバーツリーに登録されるリーフ数は少なくなる。従来１つのツリーに登録していた複数のリーフを複数のメンバーツリーに分散できるからである。そのため、経路検索時にリーフにたどり着くために通過するノード数も減少し、木構造中でのリーフの偏りを防止できる。
【００２８】
好ましくは、共通のルートは、複数のダイレクトテーブルを含む。複数のダイレクトテーブルは、宛先アドレス情報内の上位Ｎ（Ｎは自然数）ビット数分の組合せ情報を記録する。複数のダイレクトテーブルは前記複数のメンバーツリーに対応し、互いに同じ組合せ情報を有する。
【００２９】
この場合、複数のメンバーツリーはダイレクトテーブルを有するため、ノードの数を減少できる。また、メンバーツリーごとのダイレクトテーブル内の組合せ情報は同じである。よって、従来１つの木構造であったものを複数のメンバーツリーに分けた状態にできる。その結果、ツリーごとに属するリーフの数は従来の木構造より減少する。その結果、リーフの偏りを減少できる。
【００３０】
好ましくは、検索手段は複数の検索エンジンを含み、検索するステップは、複数の検索エンジンの各々が対応するメンバーツリーを検索する。
【００３１】
この場合、本発明による経路制御装置は、複数の検索エンジンを使って複数のメンバーツリーを検索する。このとき、各検索エンジンで検索するメンバーツリーは異なる。よって、従来のようにルーティングテーブル内で同じルートに１つの木構造を構成する場合と比較して、検索時間を大幅に短縮できる。
【００３２】
好ましくは経路制御方法はさらに、外部から新たなリーフを受信するステップと、複数のメンバーツリーのうち、登録されたリーフ数が最も少ないメンバーツリーに新たなリーフを登録するステップとを備える。
【００３３】
この場合、同じ木構造内の複数のメンバーツリー間で登録されるリーフ数が不均等にならない。その結果、各メンバーツリーにおいてリーフにたどり着くまでに通過するノード数を均等にすることができる。
【００３４】
好ましくは経路制御装置はさらに、新たなリーフの登録先メンバーツリーを示す登録先情報を記憶した登録情報ファイルを備え、経路制御方法はさらに、登録するステップで、登録先情報に基づいて新たなリーフを登録し、登録後に登録先情報を登録されたリーフ数が最も少ないメンバーツリーに変更するステップを含む。
【００３５】
この場合、経路制御装置は予め登録情報ファイルに登録された登録先情報に基づいてリーフを登録すれば、各メンバーツリーに登録されるリーフ数を均等に分散できる。
【００３６】
好ましくは、変更するステップはラウンドロビン方式により登録先情報を変更する。
【００３７】
この場合、登録先情報を変更する場合、ラウンドロビン方式に基づいて変更するため、登録されたリーフ数が最も少ないメンバーツリーが登録先情報となる。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【００３９】
１．ロジカルツリーについて
本発明の実施の形態で経路検索に用いる木構造は、複数のメンバーツリーで構成されるロジカルツリー構造とする。以下、ロジカルツリー構造について説明する。
【００４０】
図１（Ａ）を参照して、ロジカルツリーＬＴは複数のメンバーツリーＭＴ１、ＭＴ２で構成されるツリー構造である。２つのメンバーツリーＭＴ１，ＭＴ２のダイレクトテーブルＤＴ１，ＤＴ２は共に同じＤＴエントリ０〜ｎ（ｎは自然数）を備える。つまり、従来は１つのルート（図１ではダイレクトテーブルＤＴ）に対して１つのツリーを構成していたのに対して、本実施の形態では同じルートを複数用意して、それぞれのルートのツリー（メンバーツリーＭＴ）を構成する。各メンバーツリーＭＴ１、ＭＴ２はリーフＬの数が同じになるように構成される。なお、図１（Ａ）はメンバーツリーＭＴごとにルート（ダイレクトテーブルＤＴ１、ＤＴ２）を用意したが、図１（Ｂ）に示すように、各メンバーツリーＭＴが１つのルート（ダイレクトテーブルＤＴ）を共用してもよい。メンバーツリーＭＴの作成方法については後述する。
【００４１】
図２（Ａ）はダイレクトテーブルＤＴ０を用いた従来の木構造である。このとき、ダイレクトテーブルＤＴ０内のＤＴエントリ１に属するリーフＬの数を８とし、各リーフＬに到達するまでのノード段数を２とする。図２（Ａ）に示したダイレクトテーブルＤＴ０を持つ木構造を本発明のロジカルツリー構造で表すと図２（Ｂ）となる。図２（Ｂ）ではロジカルツリーＬＴ内に２つのメンバーツリーＭＴ１、ＭＴ２を構成する。メンバーツリーＭＴ１はダイレクトテーブルＤＴ１を、メンバーツリーＭＴ２はダイレクトテーブルＤＴ２をそれぞれ備える。ダイレクトテーブルＤＴ１及びＤＴ２はダイレクトテーブルＤＴ０と同じＤＴエントリ０〜ｎを備える。メンバーツリーＭＴ１のＤＴエントリ１に属するリーフＬの数及びメンバーツリーＭＴ２のＤＴエントリ１に属するリーフＬの数はともに４となり、図２（Ａ）の場合の半分となる。よって、ノード段数も１に減少する。
【００４２】
以上より、ＤＴエントリに属するリーフ数が同じ場合、従来の木構造と比較して、ロジカルツリー構造により複数のメンバーツリーＭＴを構成した方が目的のリーフＬに到達するまでのノード段数が少なくなる。
【００４３】
図２はリーフＬが最も均等に分配された場合のツリー構造である。そこで、リーフＬの偏りが最も大きい場合のツリー構造について図３に示す。図３（Ａ）は従来の木構造であり、ＤＴエントリ１において、リーフＬに到達するまでの最大ノード段数は６となる。一方、図３（Ｂ）は２つのメンバーツリーＭＴ１、ＭＴ２を有するロジカルツリー構造を構成する場合である。図３（Ｂ）では、各メンバーツリーＭＴ１、ＭＴ２におけるＤＴエントリ１に属するリーフ数はともに４であり、リーフＬに到達するまでの最大ノード段数を２に抑えることができる。
【００４４】
以上より、ロジカルツリー構造とすることで、目的のリーフＬに到達するまでのノード段数を減らすことができる。さらに、ロジカルツリーＬＴは複数のメンバーツリーＭＴで構成されるため、経路制御装置に複数の検索エンジンを設けることで、各メンバーツリーＭＴを並列に検索することができる。この場合、検索時間は短縮される。なお、図１〜図３では、ダイレクトテーブルＤＴをルートＲにもつツリー構造で説明したが、本発明は通常のルートＲを有するツリー構造でも適用できる。さらに、パトリシアツリー以外の探索木でも適用可能である。
【００４５】
以下、ルーティングテーブルにロジカルツリーを有する経路制御装置について説明する。
【００４６】
２．経路制御装置の全体構成
図４を参照して、経路制御装置１０は、アプリケーション１と、ロジカルツリー制御ＡＰＩ（Application Program Interface）２と、ロジカルツリーマネージャ３と、検索部４と、登録情報ファイル５１と、ルーティングテーブル５２と、ロジカルツリー検索コントローラ６と、アプリケーションピココード７とを備える。アプリケーション１とロジカルツリー制御ＡＰＩ２とロジカルツリーマネージャ３とでルーティングテーブル５２内に複数のメンバーツリーＭＴを含むロジカルツリーＬＴを作成する。アプリケーションピココード７はネットワーク内の複数のホストコンピュータ及び他のネットワークからフレームを受信し、経路情報に基づいて受信したフレームを転送する。
【００４７】
アプリケーション１はルーティングテーブル５２内に登録されたロジカルツリーＬＴの管理を行う。具体的には、アプリケーション１はルーティングテーブル５２内のロジカルツリーＬＴの作成、削除、リーフＬの追加、削除を指示する。アプリケーション１は経路制御装置１０の初期設定時にロジカルツリーＬＴの作成を指示する。また、何らかの理由で経路制御装置１０がソフトリセットされた場合、アプリケーション１はルーティングテーブル５２内のロジカルツリーＬＴの削除を指示する。また、経路制御装置１０は隣接する経路制御装置と経路情報の授受を行うが、このとき隣接する経路制御装置から新たな経路情報を受ければ、新に追加された経路情報に基づいてリーフＬの追加を指示する。また、隣接する経路制御装置から経路情報を受けた結果、経路制御装置１０が有するリーフＬを削除する必要がある場合は、リーフＬの削除を指示する。
【００４８】
ロジカルツリー制御ＡＰＩ２はアプリケーション１とロジカルツリーマネージャ３との仲介を行う。ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２を介してアプリケーション１から出力される指示及び経路情報に基づいて、ロジカルツリーの作成、削除、リーフＬの追加、削除を行う。ルーティングテーブル５２にはロジカルツリーＬＴが記憶されている。図１で示した通り、ロジカルツリーＬＴは複数のメンバーツリーＭＴ１，ＭＴ２で構成される。図４中ではルーティングテーブル５２内に１つのロジカルツリーＬＴしか示してないが、ロジカルツリーＬＴは複数登録されてもよい。ロジカルツリーＬＴの数は、経路制御装置１０が管理する経路情報の種類により決定される。たとえば、経路制御装置１０がＭＡＣアドレスに関する経路情報とＩＰアドレスに関する経路情報とをルーティングテーブル５２に登録するのであれば、ルーティングテーブル５２内にはＭＡＣアドレス用のロジカルツリーＬＴとＩＰアドレス用のロジカルツリーＬＴとが設定される。また、図４中ではロジカルツリーＬＴ内に２つのメンバーツリーＭＴ１、ＭＴ２が示されているが、メンバーツリーＭＴは３以上あってもよい。メンバーツリーＭＴの数は後述する検索部４内の検索エンジンＳＥの数に基づいて決定される。
【００４９】
アプリケーションピココード７は外部からフレームを受け、フレームが向かうべき場所へ向けてそのフレームを転送する（フォワーディング）。具体的にはアプリケーションピココード７は経路制御装置１０と同じネットワーク内の複数のホストから送信されるフレームまたは他のネットワークの経路制御装置から送信されたフレームを受け、フレームから宛先アドレス情報を抽出し、抽出した宛先アドレス情報に基づいて経路情報を取得し、取得した経路情報に基づいてフレームを送信する。
【００５０】
ロジカルツリー検索コントローラ６はアプリケーションピココード７により抽出されたアドレス情報を検索キーとして、検索部４を用いてロジカルツリーＬＴ内に検索キーに一致するリーフＬがあるか否か検索する。検索部４には２つの検索エンジンＳＥ１及びＳＥ２が設置される。検索部４は、ロジカルツリーマネージャ３又はロジカルツリー検索コントローラ６の指示を受け、ルーティングテーブル５２内のロジカルツリーＬＴを検索する。登録情報ファイル５１はルーティングテーブル５２に登録されているロジカルツリーＬＴのロジカルツリーＩＤや、そのロジカルツリーＬＴに含まれる各メンバーツリーＭＴのＩＤを記憶する。さらに後述するように、新たなリーフＬを登録する登録先メンバーツリーＩＤも記憶する。
【００５１】
３．ロジカルツリー作成及び編集動作
以下、経路制御装置１０を用いたロジカルツリーの設定及び編集動作について説明する。アプリケーション１がロジカルツリーの作成や編集等の指示を出し、ロジカルツリー制御ＡＰＩ２がその指示に基づいてロジカルツリーマネージャ３用のメッセージを作成し、メッセージを受けたロジカルツリーマネージャがロジカルツリーの作成や編集を行う。
【００５２】
３．１．初期設定処理（ロジカルツリー作成処理）
ロジカルツリー作成処理（Ｓ５００）は経路制御装置１０をネットワークに接続させたとき（初期設定時）に行われる。図５を参照して、経路制御装置１０をネットワークに接続し、起動させる（Ｓ１０１）。このとき、アプリケーション１はロジカルツリーの作成を指示する（Ｓ１０２）。具体的には、ロジカルツリー制御ＡＰＩ２に対してロジカルツリー作成用のＡＰＩの呼出（ＡＰＩコール）を行う。なお、このときロジカルツリーＬＴを作成するための種々の条件（パラメータ）をロジカルツリー制御ＡＰＩ２に送信する。パラメータは、作成すべきロジカルツリーＬＴのＩＤ、ロジカルツリーＬＴの種類、ロジカルツリーＬＴ中のメンバーツリーＭＴの数、検索時に利用する利用検索エンジン数等である。ロジカルツリーＬＴの種類は経路検索時の検索方法に基づいて分けられる。たとえば、経路制御装置１０がＭＡＣアドレス用の経路情報を管理する場合、経路検索方法はＦＭ（Full Match）で行うのが好ましい。ＦＭとはフレームの宛先ＭＡＣアドレスとルーティングテーブル５２のリーフＬに登録されている宛先アドレス情報とを比較して、両者が完全に一致（Full Match）した場合に経路を決定する方法である。このときのロジカルツリーＬＴの種類は「ＦＭタイプ」となる。また、経路制御装置１０がＩＰアドレス用の経路情報を管理する場合、経路検索方法はＬＰＭ（Longest Prefix Match：最長一致検索）が好ましい。ＬＰＭとは、フレームの宛先ＩＰアドレスとルーティングテーブル５２のリーフＬに登録されている宛先アドレス情報とを比較して、ＩＰアドレスと宛先アドレス情報との一致している部分が一番長いリーフＬが持つ経路情報を最適な経路情報と判断する方法である。この場合のロジカルツリーＬＴの種類は「ＬＰＭタイプ」となる。パラメータ中の利用検索エンジン数は経路検索時に利用する検索エンジンＳＥの数を示す。経路制御装置１０では、パラメータにより指定したロジカルツリーＩＤの経路検索時に利用する検索エンジン数は最大「２」とすることができる。なお、経路制御装置１０にｎ（ｎは０を除く自然数）個の検索エンジンＳＥがある場合、利用検索エンジン数はｎ以下であればよい。また、パラメータ内のメンバーツリーＭＴの数は経路制御装置１０の管理者等により外部から入力される任意の数である。
【００５３】
たとえば、経路制御装置１０がＭＡＣアドレスに関する経路情報をロジカルツリーＬＴとしてルーティングテーブル５２に登録する場合を考える。このときロジカルツリーＬＴは２つのメンバーツリーＭＴで構成されるように登録すると仮定する。この場合、ステップＳ１０２では、ロジカルツリーＩＤを任意の数（たとえば、ＩＤ＝６５）、ロジカルツリーの種類を「ＦＭタイプ」、メンバーツリー数を「２」、利用検索エンジン数を「２」（経路制御装置１０には２つの検索エンジンＳＥがあるため）とし、これらをパラメータとしてロジカルツリー制御ＡＰＩ２に送信する。
【００５４】
ロジカルツリー制御ＡＰＩ２はアプリケーション１からロジカルツリー作成指示を受け、メッセージ作成処理を実行する（Ｓ２１）。具体的には、ロジカルツリー制御ＡＰＩ２はアプリケーション１からロジカルツリー作成指示を受け（Ｓ２０１）、受けた指示中のパラメータをチェックする（Ｓ２０２）。指示中のパラメータに異常がある場合は、アプリケーション１にエラー通知を送信する（Ｓ２０３）。たとえば、経路制御装置１０には検索エンジンＳＥが２つしかないにもかかわらず、パラメータ中の利用検索エンジン数が「３」となっていた場合は、エラー通知を送信する。アプリケーション１はエラー通知を受け（Ｓ１０３）、何らかの異常が発生したと判断し（Ｓ１０４）、異常が発生した旨を経路制御装置１０のユーザ又は管理者に伝える。たとえば経路制御装置１０は警告音を出したり、図示しないディスプレイに異常が発生した旨を表示する（Ｓ１０５）。
【００５５】
一方、ステップＳ２０２でのパラメータチェックの結果パラメータが正常である場合、ロジカルツリー制御ＡＰＩ２はロジカルツリー作成要求のメッセージを作成し、（Ｓ２０４）。ロジカルツリーマネージャ３にそのメッセージを送信する（Ｓ２０５）。なお、メッセージにはステップＳ２０１で受信したパラメータも含まれる。
【００５６】
ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２からロジカルツリー作成要求メッセージを受ける（Ｓ３０１）。このとき、ロジカルツリーマネージャ３は受けたメッセージに含まれるパラメータ中のロジカルツリーＩＤが既に登録されているか否かを判断する（Ｓ３０２）。既にロジカルツリーＩＤが登録されている場合、作成しようとするロジカルツリーＬＴは既にルーティングテーブル５２に登録されていることになるため、ロジカルツリーマネージャ３は受けたメッセージに何らかのエラーがあると判断する。よって、ロジカルツリーマネージャ３はエラー通知をロジカルツリー制御ＡＰＩ２に送信する（Ｓ３０３）。ロジカルツリー制御ＡＰＩ２はロジカルツリーマネージャ３からエラー通知を受け、通知処理を実行する（Ｓ２２）。具体的には、ロジカルツリー制御ＡＰＩ２はエラー通知を受け（Ｓ２０６）、エラーが発生したと判断し（Ｓ２０７）、エラー通知をアプリケーション１に送信する（Ｓ２０８）。アプリケーション１はエラー通知を受け（Ｓ１０３）、エラーが発生したと判断し（Ｓ１０４）、警告を行う（Ｓ１０５）。
【００５７】
一方、ステップＳ３０２で判断の結果ロジカルツリーＬＴの登録がない場合、ロジカルツリーマネージャ３はロジカルツリーＬＴ及びメンバーツリーＭＴを作成する（Ｓ３０４）。具体的には、ロジカルツリーマネージャ３は受けたメッセージ中のパラメータに基づいてルーティングテーブル５２にロジカルツリーＬＴ及びメンバーツリーＭＴを作成する。パラメータ中のメンバーツリー数が「２」となっているため、ロジカルツリーマネージャ３はロジカルツリーＬＴ内にメンバーツリーＭＴ１及びＭＴ２を作成する。メンバーツリーＭＴ１及びＭＴ２を作成後、ロジカルツリーマネージャ３は作成したロジカルツリーＬＴをルーティングテーブル５２に登録し、また、登録情報ファイル５１に表２に示す経路制御情報を登録する（Ｓ３０５）。
【表２】
2005033621.tif 000004
【００５８】
表２を参照して、経路制御情報は、登録したロジカルツリーＩＤと、そのロジカルツリーＩＤ内に構成されるメンバーツリーＩＤと、経路検索時に利用する検索エンジン数と、リーフＬの登録先を示す登録先メンバーツリーＩＤとを含む。登録先メンバーツリーＩＤについては、次項のリーフ登録処理で説明する。
【００５９】
登録情報ファイル５１に経路制御情報を登録後、ロジカルツリーマネージャ３はロジカルツリーＬＴの作成の正常終了通知をロジカルツリー制御ＡＰＩ２に送信する（Ｓ３０６）。
【００６０】
ロジカルツリー制御ＡＰＩ２はロジカルツリーマネージャ３から正常終了通知を受信後（Ｓ２０６）、ロジカルツリーＬＴの作成が正常に終了したと判断し（Ｓ２０７）、正常終了通知をアプリケーション１に送信する（Ｓ２０９）。
【００６１】
アプリケーション１は、ロジカルツリー制御ＡＰＩ２から正常終了通知を受信後（Ｓ１０３）、ロジカルツリーＬＴの作成が正常に終了したと判断する（Ｓ１０４）。このときアプリケーション１はアプリケーションピココード７を起動する（Ｓ１０６）。続いてアプリケーション１はアプリケーションピココード７が正常に起動したか否かを判断する（Ｓ１０７）。判断の結果正常に起動していない場合、アプリケーション１はステップＳ１０５と同じく警告処理を行う（Ｓ１０８）。判断の結果正常に起動している場合、アプリケーション１はアプリケーションピココード７にフレームの受信を許可する（Ｓ１０９）。アプリケーションピココード７はアプリケーション１から許可を得て初めてフレームを受信し、隣接する経路制御装置から経路情報を受ける。
【００６２】
以上の動作により経路制御装置１０はロジカルツリーＬＴ（及びメンバーツリーＭＴ）の作成を行う。しかしながら、この初期設定時に作成されるロジカルツリーＬＴはリーフＬを１つも持たない、いわば空の状態である。ロジカルツリーＬＴが複数のリーフＬを持ち、経路情報として機能するために、経路制御装置１０は次項に示すリーフＬの登録処理を行う。
【００６３】
３．２．リーフ登録処理
経路制御装置１０がロジカルツリーに登録されていない宛先アドレス情報を有するフレームを受信した場合や、経路制御装置１０が隣接する経路制御装置との間で経路情報の授受を行った場合、経路制御装置１０はロジカルツリーＬＴに新たなリーフＬを登録するリーフ登録処理（Ｓ６００）を実行する。図６を参照して、アプリケーションピココード７がルーティングテーブル５２内のロジカルツリーＬＴによって経路検索できないフレームを受信した場合、アプリケーションピココード７からアプリケーション１にそのフレームが送信される。アプリケーション１は経路検索できなかったフレームを受信し（Ｓ１２１）、そのフレームが送信されるべき経路の決定を試みる（Ｓ１２２）。具体的には、アプリケーション１はそのフレームから宛先アドレス情報を抽出する。アプリケーション１は抽出した宛先アドレス情報を用いて経路制御装置１０が属するルーティングプロトコルに従ってそのフレームが向かうべき経路情報の決定を試みる。ステップＳ１２２を実行後、そのフレームに対する経路情報が決定したか否かを判断する（Ｓ１２３）。判断の結果経路情報が決定できなかった場合、アプリケーション１はそのフレームを破棄する（Ｓ１２４）。一方、判断の結果経路情報が決定できた場合、アプリケーション１はロジカルツリー制御ＡＰＩ２を介してロジカルツリーマネージャ３にリーフＬの登録を指示する（Ｓ１２６）。リーフＬは宛先アドレス情報とその宛先アドレス情報を有するフレームが向かうべき先を示した経路情報とを含む。ここで、アプリケーション１はロジカルツリー制御ＡＰＩ２に対してリーフＬ登録用のＡＰＩコールを実行する。なお、アプリケーション１はステップＳ１２２で抽出した宛先アドレス情報からリーフＬを登録すべきロジカルツリーＬＴのＩＤを選択する。選択されたロジカルツリーＩＤとリーフＬ（宛先アドレス及び経路情報）とはパラメータとしてロジカルツリー制御ＡＰＩ２に送信される。
【００６４】
ロジカルツリー制御ＡＰＩ２はアプリケーション１からリーフ登録用のＡＰＩコールを受け、メッセージ作成処理を実行する（Ｓ２１）。
【００６５】
ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２で作成されたメッセージを受け（Ｓ３２１）、リーフ登録処理を開始する（Ｓ３２２〜３２５）。初めに、ロジカルツリーマネージャ３は受信したメッセージ中のパラメータからロジカルツリーＩＤを読み出し、読み出したロジカルツリーＩＤが登録情報ファイル５１内に登録されているか否かを判断する（Ｓ３２２）。判断の結果登録されていない場合、ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２にエラー通知を送信する（Ｓ３２３）。ロジカルツリー制御ＡＰＩ２はエラー通知を受け、通知処理を実行し（Ｓ２２）、エラー通知をアプリケーション１に送信する。アプリケーション１はエラー通知を受け（Ｓ１２７）、エラーが発生したと判断し（Ｓ１２８）、ステップＳ１２１で受信したフレームを破棄する（Ｓ１２９）。
【００６６】
一方、ステップＳ３２２での判断の結果ロジカルツリーＩＤが登録されている場合、ロジカルツリーマネージャ３は登録先メンバーツリーを特定する（Ｓ３２４）。具体的には、登録情報ファイル５１内の経路制御情報を参照し、該当するロジカルツリーＩＤでの登録先メンバーツリー欄を参照する。登録先メンバーツリー欄には、登録されたリーフＬの数が最も少ないメンバーツリーＩＤが登録されている。登録先メンバーツリー欄の登録方法については後述する。たとえば、ステップＳ３２１で受けたメッセージ中のロジカルツリーＩＤが「６５」の場合、ロジカルツリーＩＤ＝６５の登録先メンバーツリーＭＴは「ＭＴ１」となっているため、リーフＬの登録先のメンバーツリーＭＴを「ＭＴ１」と特定する。続いて、ロジカルツリーマネージャ３は特定したメンバーツリーＭＴ１にリーフＬを登録する（Ｓ３２５）。
【００６７】
リーフＬの登録を終了後、次の新たなリーフＬの登録を行うときの登録先メンバーツリーＭＴを特定する（Ｓ３０）。原則として、次回の新たなリーフＬの登録は、複数のメンバーツリーＭＴの中で登録されたリーフＬの数が最も少ないメンバーツリーＭＴで行われる。このメンバーツリーＭＴの特定はラウンドロビンにより行われる。具体的には、初めにステップＳ３２５でリーフＬを登録したメンバーツリーＭＴがＭＴ１か否かを判断する（Ｓ３２６）。判断の結果リーフＬを登録したメンバーツリーＭＴがＭＴ１の場合、次回のリーフＬの登録先はメンバーツリーＭＴ２とする（Ｓ３２７）。すなわち、登録情報ファイル５１のロジカルツリーＩＤ＝６５における登録先メンバーツリー欄を「ＭＴ１」から「ＭＴ２」に変更する。なお、判断の結果、リーフＬを登録したメンバーツリーＭＴがＭＴ１でない場合、ステップＳ３２５でリーフＬを登録したのはメンバーツリーＭＴ２ということになるため、次回のリーフＬの登録先メンバーツリーＭＴを「ＭＴ１」と変更する（Ｓ３２８）。
【００６８】
なお、本実施の形態ではメンバーツリーＭＴを２つ（ＭＴ１，ＭＴ２）としたが、メンバーツリー数が３以上ある場合は、メンバーツリーＩＤ順にリーフＬの登録を行う（ラウンドロビン方式）。たとえば、ステップＳ３２５でメンバーツリーＭＴ１にリーフＬの登録を行った場合は、次回の登録先メンバーツリーＭＴはＭＴ２となり、さらに、ステップＳ３２５でリーフＬがメンバーツリーＭＴ２に登録された場合は次回の登録先メンバーツリーＭＴはＭＴ３となる。なお、メンバーツリー数がｎ（ｎは０を除く自然数）ある場合であって、ステップＳ３２５でリーフＬがメンバーツリーＭＴｎに登録されたとき、次回の登録先メンバーツリーＭＴはＭＴ１となる。ラウンドロビン方式により登録先メンバーツリーＩＤを選定すれば、選定されたメンバーツリーＭＴは複数のメンバーツリーＭＴ内で最も登録されたリーフ数が少ないメンバーツリーＭＴということになる。
【００６９】
以上の動作により、ロジカルツリーＬＴに複数のメンバーツリーＭＴがある場合、そのうちの１つのメンバーツリーＭＴにリーフＬを集中的に登録するのではなく、リーフＬを登録する度に登録先のメンバーツリーＭＴを順次変更する。これにより、新たなリーフＬが登録されるメンバーツリーＭＴはロジカルツリーＬＴ内の複数のメンバーツリーＭＴの中で最も登録されたリーフ数が少ないメンバーツリーＭＴとなる。よって、リーフＬを各メンバーツリーＭＴに均等に振り分けて登録できる。
【００７０】
リーフＬの登録後、ロジカルツリーマネージャ３は正常終了通知をロジカルツリー制御ＡＰＩ２に送信する（Ｓ３２９）。ロジカルツリー制御ＡＰＩ２は通知を受信後、通知処理を実行し、（Ｓ２２）正常終了通知をアプリケーション１に送信する。
【００７１】
アプリケーション１は正常終了通知を受信後（Ｓ１２７）、リーフＬの登録が正常に終了したと判断する（Ｓ１２８）。このとき、アプリケーション１はステップＳ１２１で受信したフレームをアプリケーションピココード７に送信する（Ｓ１３０）。アプリケーションピココード７はフレームを受信し、後述する経路検索処理を実行する。
【００７２】
３．３．リーフ削除処理
経路制御装置１０が隣接する経路制御装置との間で経路情報の授受を行った結果、３．２．に説明したように新たなリーフＬを登録する場合もあれば、リーフＬを削除する場合もある。リーフＬを削除する場合とは、本来ネットワーク上に存在していた経路が何らかの理由で削除されたときに発生する。以下、リーフＬの削除の動作について説明する。図７を参照して、隣接する経路制御装置から経路情報を受信後、アプリケーション１はルーティングテーブル５２内の特定のリーフＬを削除する必要があると判断する（Ｓ１３１）。このとき、アプリケーション１はロジカルツリー制御ＡＰＩ２を介してロジカルツリーマネージャ３にリーフＬを削除するよう指示する（Ｓ１３２）。このとき、アプリケーション１は削除すべきリーフＬが属するロジカルツリーのロジカルツリーＩＤとそのリーフＬが有する宛先アドレス情報とをパラメータとして送信する。ロジカルツリー制御ＡＰＩ２はリーフＬの削除指示を受け、メッセージ作成処理を実行する（Ｓ２１）。
【００７３】
ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２が作成したメッセージを受信後（Ｓ３３１）、リーフＬ削除の対象となるロジカルツリーＬＴが制御情報に登録されているか否かを判断する（Ｓ３３２）。具体的には、ステップＳ３３１で受信したメッセージに含まれるパラメータからロジカルツリーＩＤを読み出し、登録情報ファイル５１を参照して、読み出したロジカルツリーＩＤが登録されているか否かを判断する。判断の結果対象となるロジカルツリーＩＤが登録されていない場合、ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２にエラー通知を送信する（Ｓ３３３）。ロジカルツリー制御ＡＰＩ２はエラー通知を受け、通知処理を行い（Ｓ２２）、アプリケーション１にエラー通知を送信する。アプリケーション１はエラー通知を受信後（Ｓ１３３）、エラーが発生したと判断し（Ｓ１３４）、警告処理を行う（Ｓ１３５）。
【００７４】
一方、判断の結果対象となるロジカルツリーＩＤが登録されている場合、登録情報ファイル５１を参照して、そのロジカルツリーＩＤに属するメンバーツリーＩＤを取得する（Ｓ３３４）。メンバーツリーＩＤを取得後、ロジカルツリーマネージャ３は検索部４内の検索エンジンＳＥ１及びＳＥ２を用いて削除の対象となっているリーフＬを検索する（Ｓ３３５）。具体的には、ロジカルツリーマネージャ３はメンバーツリーＩＤ（ＭＴ１、ＭＴ２）及びステップＳ３３１で受けたパラメータ内の宛先アドレス情報を検索キーとして検索部４に送信する。検索部４は検索エンジンＳＥ１、ＳＥ２を用いて該当するリーフＬの検索を行う。このとき、検索部４内の各検索エンジンＳＥはそれぞれ異なるメンバーツリーＭＴを検索する。すなわち、検索エンジンＳＥ１がメンバーツリーＭＴ１を検索する場合は、検索エンジンＳＥ２はメンバーツリーＭＴ２を検索する。検索時に利用する検索エンジン数は、３．１．の初期設定時にアプリケーション１から送信されるパラメータで決定されている。本実施の形態では、利用検索エンジン数を「２」としているため、検索エンジンＳＥ１及びＳＥ２がいずれも検索を行う。なお、検索エンジンＳＥ１がメンバーツリーＭＴ１、ＭＴ２のどちらを検索するかは、検索部４で決定してもよいし、３．１．の初期設定時にアプリケーション１から送信されるパラメータで指定してもよい。従来のように１つのツリー構造とするのではなく、複数のメンバーツリーＭＴを含むロジカルツリー構造とすることで、複数の検索エンジンの各々で異なるメンバーツリーＭＴを検索することができるため、検索時間が短縮される。
【００７５】
ロジカルツリーマネージャ３はいずれかのメンバーツリーＭＴの検索が終了したか否か判断する（Ｓ３３６）。判断は、検索部４から送信される検索終了報告に基づいて行われる。検索部４はいずれかのメンバーツリーＭＴの検索を終了後、検索が終了した旨と検索が終了したメンバーツリーＩＤと（以下、検索終了通知を称する）をロジカルツリーマネージャ３に送信する。判断の結果、いずれのメンバーツリーＭＴの検索も終了していない場合、ステップＳ３３６の判断動作を繰り返す。
【００７６】
検索部４から検索終了通知を受けたとき、ロジカルツリーマネージャ３はいずれかのメンバーツリーＭＴの検索が終了したと判断し（Ｓ３３６）、検索が終了したメンバーツリーＭＴで削除すべきリーフＬが見つかったか否かを判断する（Ｓ３３７）。具体的には、検索部４から該当するリーフＬが見つかったか否かの報告を受け、判断する。判断の結果該当するリーフＬが見つからなかった場合、ロジカルツリーマネージャ３は検索部４が全てのメンバーツリーＭＴの検索を終了したか否かを判断する（Ｓ３３８）。全てのメンバーツリーＭＴの検索が終了していると判断した場合、削除すべきリーフＬが存在しなかったということになるため、ロジカルツリーマネージャ３はエラー通知をロジカルツリー制御ＡＰＩ２に送信する（Ｓ３３９）。ステップＳ３３９でのエラー通知後の動作は、ステップＳ３３３でのエラー通知後の動作と同じである。
【００７７】
一方、ステップＳ３３８で全てのメンバーツリーの検索が終了していないと判断した場合、再びステップＳ３３６に戻り、検索処理を継続する。ステップＳ３３７で削除すべきリーフＬが見つかったと判断した場合、ロジカルツリーマネージャ３は該当するリーフＬを削除する（Ｓ３４０）。
【００７８】
リーフＬを削除した後、ロジカルツリーマネージャ３は正常終了通知を送信する（Ｓ３４１）。正常終了通知を受信したロジカルツリー制御ＡＰＩ２は通知処理を実施し（Ｓ２２）、正常終了通知をアプリケーション１に送信する。アプリケーション１は正常終了通知を受信後（Ｓ１３３）、リーフＬの削除が正常に終了したと判断し（Ｓ１３４）、リーフＬ削除処理を終了する。
【００７９】
３．４．ロジカルツリー削除
経路制御装置１０は、上述のように既に登録したリーフＬを削除する場合だけでなく、ロジカルツリーＬＴを削除する場合もある。ロジカルツリーＬＴを削除する例としてソフトリセットがある。ソフトリセットとは経路制御装置１０の電源をオフにすることなく、ルーティングテーブル５２内のロジカルツリーＬＴを削除し、再作成（初期化）することをいう。以下、ソフトリセットの場合のロジカルツリー削除処理について説明する。
【００８０】
図８を参照して、アプリケーション１はソフトリセット要求を受信する（Ｓ１１１）。ソフトリセット要求はたとえば、ユーザの選択によりアプリケーション１の外部から入力される。続いて、アプリケーション１はアプリケーションピココード７にフレームの受信を停止するよう指示する（Ｓ１１２）。ソフトリセット中に経路制御装置１０に接続されたホスト等からフレームを受けないようにするためである。フレーム受信の停止を指示後、アプリケーション１はロジカルツリー制御ＡＰＩ２にロジカルツリーＬＴの削除を指示する（Ｓ１１３）。具体的には、ロジカルツリーＬＴ削除用のＡＰＩをコールする。このとき、削除すべきロジカルツリーＩＤがパラメータとして送信される。
【００８１】
ロジカルツリー削除指示を受けたロジカルツリー制御ＡＰＩ２はメッセージ作成処理を実行する（Ｓ２１）。ロジカルツリーマネージャ３はロジカルツリー制御ＡＰＩ２からメッセージを受信後（Ｓ３１１）、該当するロジカルツリーＬＴが登録されているか否かを判断する（Ｓ３１２）。具体的には、メッセージに含まれるパラメータ中のロジカルツリーＩＤを読み出し、読み出されたロジカルツリーＩＤが登録情報ファイル５１に登録されているか否か判断する。判断の結果、該当するロジカルツリーＩＤがない場合、ロジカルツリーマネージャ３はなんらかのエラーが生じたと判断し、エラー通知をロジカルツリー制御ＡＰＩ２に送信する（Ｓ３１３）。ロジカルツリー制御ＡＰＩ２はエラー通知を受信後、通知処理を実行し（Ｓ２２）、エラー通知をアプリケーション１に送信する。アプリケーション１はエラー通知を受信後（Ｓ１１４）、エラーが発生したと判断し（Ｓ１１５）、警告処理を実行する（Ｓ１１６）。
【００８２】
一方、判断の結果、該当するロジカルツリーＩＤが登録情報ファイル５１に登録されている場合、ロジカルツリーマネージャ３は登録情報ファイル５１を参照して削除すべきロジカルツリーＬＴ内のメンバーツリーＩＤ（ＭＴ１、ＭＴ２）を特定する（Ｓ３１４）。メンバーツリーＩＤを特定後、特定されたメンバーツリーを削除する（Ｓ３１５）。具体的には、ロジカルツリーマネージャ３は検索部４に対して削除すべきメンバーツリーＩＤを送信し、該当するメンバーツリーＭＴを削除するように指示する。指示を受けた検索部４は該当するメンバーツリーＭＴを検索し、削除する。
【００８３】
メンバーツリーＭＴの削除後、ロジカルツリーマネージャ３は登録情報ファイル５１内のロジカルツリーＩＤを削除する（Ｓ３１６）。ロジカルツリーマネージャ３はロジカルツリーを削除後、正常終了通知をロジカルツリー制御ＡＰＩ２に送信する（Ｓ３１７）。ロジカルツリー制御ＡＰＩ２は正常終了通知を受け、通知処理（Ｓ２２）を実行した後、正常終了通知をアプリケーション１に送信する。
【００８４】
アプリケーション１は正常終了通知を受信後（Ｓ１１４）、ロジカルツリーＬＴの削除が正常に終了したと判断する（Ｓ１１５）。このとき、経路制御装置１０は３．１．の初期設定処理（Ｓ５００）を実行する。
【００８５】
以上の動作により、本実施の形態による経路制御装置は一度登録したロジカルツリーを削除できる。
【００８６】
４．経路情報検索動作
経路情報をロジカルツリーＬＴに登録している経路制御装置１０には、経路制御装置１０が接続されたネットワーク内の複数のホストから、または、ネットワーク外の経路制御装置からフレームが送信される。経路制御装置１０は複数のホストから送信された複数のフレームを受信し、経路検索により求めた経路情報に基づいて、各フレームを転送する（フォワーディング）。
【００８７】
図９を参照して、アプリケーションピココード７は経路制御装置１０の外部からフレームを受信する（Ｓ７０１）。フレームを受信後、アプリケーションピココード７はフレーム内の宛先アドレス情報を検索キーとして抽出する（Ｓ７０２）。検索キー抽出後、アプリケーションピココード７はロジカルツリー検索コントローラ６に検索要求を送信する（Ｓ７０３）。検索要求には、検索対象となるロジカルツリーＩＤと検索キーとしての宛先アドレス情報とをパラメータとして送信する。なお、検索対象となるロジカルツリーＩＤは抽出された宛先アドレス情報に基づいてアプリケーションピココード７により決定される。
【００８８】
ロジカルツリー検索コントローラ６はアプリケーションピココード７から検索要求を受信後（Ｓ６０１）、検索対象となるロジカルツリーＬＴが登録されているか否かを判断する（Ｓ６０２）。具体的には、受信した検索要求に含まれるパラメータから検索対象であるロジカルツリーＩＤを読み出し、読み出したロジカルツリーＩＤが登録情報ファイル５１に登録されているか否かを判断する。判断の結果登録情報ファイル５１にロジカルツリーＩＤが登録されていない場合、ロジカルツリーＩＤはエラー通知をアプリケーションピココード７に送信する（Ｓ６０３）。アプリケーションピココード７はエラー通知を受信後（Ｓ７０４）、エラーが発生したと判断する（Ｓ７０５）。このとき、アプリケーションピココード７はステップＳ７０１で受信したフレームをアプリケーション１に送信する（Ｓ７０６）。アプリケーション１はフレームを受信し、３．２．で説明したリーフ登録処理を実行する（Ｓ６００）。
【００８９】
一方、ステップＳ６０２で検索対象のロジカルツリーＩＤが登録されていると判断した場合、ロジカルツリー検索コントローラ６は経路検索を行う（Ｓ６０４〜Ｓ６１０）。具体的には、検索要求のパラメータ中のロジカルツリーＩＤに属するメンバーツリーＩＤを登録情報ファイル５１から取得する（Ｓ６０４）。ロジカルツリー検索コントローラ６は取得したメンバーツリーＩＤ及び検索要求のパラメータ中の宛先アドレス情報を検索部４に送信し、検索を指令する（Ｓ６０５）。検索部４の検索エンジンＳＥ１及びＳＥ２は検索指令を受け、宛先アドレスを検索キーとして、メンバーツリーＭＴ１及びＭＴ２の検索を開始する。なお、検索時、各検索エンジンは互いに異なるメンバーツリーＭＴを検索する。たとえば、検索エンジンＳＥ１はメンバーツリーＭＴ１を検索し、検索エンジンＳＥ２はメンバーツリーＭＴ２を検索する。このように検索エンジンごとに異なるメンバーツリーＭＴを検索させることで、検索時間が短縮される。ステップＳ６０６からステップＳ６０９までのロジカルツリー検索コントローラ６の動作はリーフ削除処理（図７）におけるステップＳ３３６からステップＳ３３９までのロジカルツリーマネージャ３の動作と同じである。経路検索の結果、ステップＳ６０９でエラー通知が送信するということは、ステップＳ７０１で受信したフレームに対するリーフＬがルーティングテーブル５２に登録されていないということである。よって、アプリケーションピココード７はステップＳ７０１で受信したフレームをアプリケーション１に送信する（Ｓ７０６）。アプリケーション１はフレームを受信し、３．２．で説明したリーフ登録処理を実行する（Ｓ６００）。
【００９０】
一方、経路検索の結果、宛先アドレス情報と一致したリーフＬを検索した場合、ロジカルツリー検索コントローラ６は検索したリーフＬをアプリケーションピココード７に送信する（Ｓ６１０）。アプリケーションピココード７はリーフＬを受信後（Ｓ７０４）、リーフＬを受信したことにより経路検索が正常に終了したと判断する（Ｓ７０５）。よって、受信したリーフＬから経路情報を抽出し、ステップＳ７０１で受信したフレームの転送先を決定する（Ｓ７０７）。決定後、その転送先にフレームを転送する（Ｓ７０８）。
【００９１】
以上に示したように、経路制御装置１０は、ルーティングテーブル５２内に複数のメンバーツリーＭＴを有するロジカルツリーを備える。同じルートに対して１つのツリーを形成する場合と比較して、メンバーツリーＭＴに登録されるリーフ数は少なくなるため、経路検索時にリーフＬにたどり着くために通過するノード数を減少できる。また、複数の検索エンジンＳＥを使って複数のメンバーツリーＭＴを検索し、各検索エンジンＳＥで検索するメンバーツリーＭＴを異なるようにすることで、従来と比較して、検索時間を大幅に短縮できる。
【００９２】
なお、本実施の形態では検索エンジンＳＥは２つとしたが、経路制御装置にさらに多くの検索エンジンＳＥがあってもよい。また、本実施の形態では、２つの検索エンジンＳＥに対して２つのメンバーツリーＭＴを作成したが、メンバーツリーＭＴ数は検索エンジンＳＥ数より多くてもよい。たとえば、経路制御装置１０において、４つのメンバーツリーＭＴ１〜ＭＴ４を作成してもよい。この場合、検索エンジンＳＥ１でメンバーツリーＭＴ１及びＭＴ２を、検索エンジンＳＥ２でメンバーツリーＭＴ３及びＭＴ４を検索すればよい。
【００９３】
また、リーフＬが有する宛先アドレス情報がハッシュ関数によりハッシュされていてもよい。この場合、経路検索時（図９）にステップＳ７０２で抽出された検索キー（宛先アドレス情報）は、メンバーツリーＭＴを検索するとき（Ｓ６０５）に検索部４でハッシュされる。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施の形態によるロジカルツリー構造を説明するための概念図である。
【図２】本発明の実施の形態によるロジカルツリー構造を説明するための他の例の概念図である。
【図３】本発明の実施の形態によるロジカルツリー構造を説明するための他の例の概念図である。
【図４】本発明の実施の形態による経路制御装置の全体構成を示すブロック図である。
【図５】図４の経路制御装置のロジカルツリー作成処理の動作を示すフロー図である。
【図６】図４の経路制御装置のリーフ登録処理の動作を示すフロー図である。
【図７】図４の経路制御装置のリーフ削除処理の動作を示すフロー図である。
【図８】図４の経路制御装置のロジカルツリー削除処理の動作を示すフロー図である。
【図９】図４の経路制御装置の経路検索処理の動作を示すフロー図である。
【図１０】従来のツリー法によるツリー構造の一例を示す概念図である。
【図１１】ダイレクトテーブルを用いたツリー構造を示す概念図である。
【図１２】ツリー構造内のリーフの偏りを説明するための概念図である。
【符号の説明】
【００９５】
１  アプリケーション
２  ロジカルツリー制御ＡＰＩ
３  ロジカルツリーマネージャ
４  検索部
６  ロジカルツリー検索コントローラ
７  アプリケーションピココード
５１  登録情報ファイル
５２  ルーティングテーブル
ＬＴ  ロジカルツリー
ＭＴ１，ＭＴ２  メンバーツリー
ＳＥ１，ＳＥ２  検索エンジン
【図１】
2005033621.tif 000005
【図２】
2005033621.tif 000006
【図３】
2005033621.tif 000007
【図４】
2005033621.tif 000008
【図５】
2005033621.tif 000009
【図６】
2005033621.tif 000010
【図７】
2005033621.tif 000011
【図８】
2005033621.tif 000012
【図９】
2005033621.tif 000013
【図１０】
2005033621.tif 000014
【図１１】
2005033621.tif 000015
【図１２】
2005033621.tif 000016