(57)【特許請求の範囲】
【請求項１】
マルチエリアネットワークに設けられるノードにおいて、
始点ノードから終点ノードに至る経路を算出する経路算出部と、
前記経路算出部の算出する経路が通過する前記マルチエリアネットワークのエリアを示す通過エリアリストを記憶する記憶部と、
を備え、
前記記憶部は、前記経路算出部で算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、
前記経路算出部は、前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出候補から除外し、
前記経路算出部は、
経路が未確定のノード群の中からリンクコストの最も小さいノードを抽出し、
抽出した前記ノードを経路が確定したノードとして登録し、
抽出した前記ノードの通過エリアリストの最後以外に、抽出した前記ノードの隣接ノードのエリアが含まれているか否かに基づいて前記隣接ノードを経路算出対象から除外し、
前記隣接ノードを経路算出対象から除外しなかった場合、抽出した前記ノードの通過エリアリストの最後と前記隣接ノードのエリアとを比較し、
抽出した前記ノードの通過エリアリストの最後と、前記隣接ノードのエリアとが異なる場合は、抽出した前記ノードの通過エリアリストに前記隣接ノードのエリアを追加して前記隣接ノードの通過エリアリストとし、
抽出した前記ノードの通過エリアリストの最後と、前記隣接ノードのエリアとが同じ場合は、抽出した前記ノードの通過エリアリストを前記隣接ノードの通過エリアリストとする、
ことを特徴とするノード。
【請求項２】
マルチエリアネットワークに設けられるノードにおいて、
始点ノードから終点ノードに至る経路を算出する経路算出部と、
前記経路算出部の算出する経路が通過する前記マルチエリアネットワークのエリアを示す通過エリアリストを記憶する記憶部と、
を備え、
前記記憶部は、前記経路算出部で算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、
前記経路算出部は、前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出候補から除外し、
前記経路算出部は、
経路計算の候補となる計算候補リストの中からリンクコストの最も小さいリンクを抽出し、
抽出した前記リンクの終端点ノードに隣接する隣接ノードに至る新規リンクを抽出し、
抽出した前記リンクの通過エリアリストの最後以外に、前記新規リンクの終端点ノードのエリアが含まれているか否かに基づいて前記新規リンクを経路算出対象から除外し、
前記新規リンクを経路算出対象から除外しなかった場合、前記新規リンクまでのリンクコストをリンクコスト記憶部に記憶するとともに前記新規リンクを前記計算候補リストに含め、抽出した前記リンクの始端点ノードと終端点ノードとを比較し、
抽出した前記リンクの始端点ノードと終端点ノードでエリアが異なる場合は、抽出した前記リンクの通過エリアリストに前記新規リンクの始端点ノードのエリアを追加して前記新規リンクの通過エリアリストとし、
抽出した前記リンクの始端点ノードと終端点ノードでエリアが同じ場合は、抽出した前記リンクの通過エリアリストを前記新規リンクの通過エリアリストとする、
ことを特徴とするノード。
【請求項３】
マルチエリアネットワークに設けられるノードにおいて、
始点ノードから終点ノードに至る経路を算出する経路算出部と、
前記経路算出部の算出する経路が通過する前記マルチエリアネットワークのエリアを示す通過エリアリストを記憶する記憶部と、
を備え、
前記記憶部は、前記経路算出部で算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、
前記経路算出部は、前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出候補から除外し、
前記経路算出部は、
経路が未確定のノード群の中からリンクコストの最も小さいノードを抽出し、
抽出した前記ノードを経路が確定したノードとして登録し、
抽出した前記ノードの通過エリアリストに、抽出した前記ノードの隣接ノードのエリアが含まれているか否かに基づいて前記隣接ノードを経路算出対象から除外し、
前記隣接ノードを経路算出対象から除外しなかった場合、抽出した前記ノードのエリアと前記隣接ノードのエリアとを比較し、
抽出した前記ノードのエリアと前記隣接ノードのエリアとが異なる場合は、抽出した前記ノードのエリアを前記隣接ノードの通過エリアリストとし、
抽出した前記ノードのエリアと前記隣接ノードのエリアとが同じ場合は、抽出した前記ノードの通過エリアリストを前記隣接ノードの通過エリアリストとする、
ことを特徴とするノード。
【請求項４】
マルチエリアネットワークに設けられるノードにおいて、
始点ノードから終点ノードに至る経路を算出する経路算出部と、
前記経路算出部の算出する経路が通過する前記マルチエリアネットワークのエリアを示す通過エリアリストを記憶する記憶部と、
を備え、
前記記憶部は、前記経路算出部で算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、
前記経路算出部は、前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出候補から除外し、
前記経路算出部は、
経路計算の候補となる計算候補リストの中からリンクコストの最も小さいリンクを抽出し、
抽出した前記リンクの終端点ノードに隣接する隣接ノードに至る新規リンクを抽出し、
前記新規リンクまでのリンクコストをリンクコスト記憶部に記憶するとともに前記新規リンクを前記計算候補リストに含め、抽出した前記リンクの始端点ノードと終端点ノードのエリアとを比較し、
抽出した前記リンクの始端点ノードと終端点ノードのエリアが異なる場合は、抽出した前記リンクの通過エリアリストに前記新規リンクの始端点ノードのエリアを追加して前記新規リンクの通過エリアリストとし、
抽出した前記リンクの始端点ノードと終端点ノードのエリアが同じ場合は、抽出した前記リンクの通過エリアリストを前記新規リンクの通過エリアリストとする、
ことを特徴とするノード。
【請求項５】
マルチエリアネットワークに設けられるノードにおいて、
始点ノードから終点ノードに至る経路を算出する経路算出部と、
前記経路算出部の算出する経路が通過する前記マルチエリアネットワークのエリアを示す通過エリアリストを記憶する記憶部と、
を備え、
前記経路算出部は、前記始点ノードから前記終点ノードに至る経路を算出した後、前記記憶部の通過エリアリストを参照して同じエリアを許容回数以下で通過する経路を抽出し、抽出した経路の中からリンクコストの最も小さい経路を選択する、
ことを特徴とするノード。
【請求項６】
マルチエリアネットワークに設けられるノードの経路計算方法において、
始点ノードから終点ノードに至る経路を算出する工程と、
前記経路を算出する工程において算出される経路が通過する前記マルチエリアネットワークのエリアを示した通過エリアリストを記憶部に記憶する工程と、
を有し、
前記記憶部に記憶する工程は、算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、
前記経路を算出する工程において前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出対象から除外し、
さらに前記経路を算出する工程において、経路が未確定のノード群の中からリンクコストの最も小さいノードを抽出し、
抽出した前記ノードを経路が確定したノードとして登録し、
抽出した前記ノードの通過エリアリストの最後以外に、抽出した前記ノードの隣接ノードのエリアが含まれているか否かに基づいて前記隣接ノードを経路算出対象から除外し、
前記隣接ノードを経路算出対象から除外しなかった場合、抽出した前記ノードの通過エリアリストの最後と前記隣接ノードのエリアとを比較し、
抽出した前記ノードの通過エリアリストの最後と、前記隣接ノードのエリアとが異なる場合は、抽出した前記ノードの通過エリアリストに前記隣接ノードのエリアを追加して前記隣接ノードの通過エリアリストとし、
抽出した前記ノードの通過エリアリストの最後と、前記隣接ノードのエリアとが同じ場合は、抽出した前記ノードの通過エリアリストを前記隣接ノードの通過エリアリストとする、
ことを特徴とする経路計算方法。
【請求項７】
マルチエリアネットワークに設けられるノードの経路計算方法において、
始点ノードから終点ノードに至る経路を算出する工程と、
前記経路を算出する工程において算出される経路が通過する前記マルチエリアネットワークのエリアを示した通過エリアリストを記憶部に記憶する工程と、
を有し、
前記記憶部に記憶する工程は、算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、
前記経路を算出する工程において前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出対象から除外し、
さらに前記経路を算出する工程において、経路が未確定のノード群の中からリンクコストの最も小さいノードを抽出し、
抽出した前記ノードを経路が確定したノードとして登録し、
抽出した前記ノードの通過エリアリストに、抽出した前記ノードの隣接ノードのエリアが含まれているか否かに基づいて前記隣接ノードを経路算出対象から除外し、
前記隣接ノードを経路算出対象から除外しなかった場合、抽出した前記ノードのエリアと前記隣接ノードのエリアとを比較し、
抽出した前記ノードのエリアと前記隣接ノードのエリアとが異なる場合は、抽出した前記ノードのエリアを前記隣接ノードの通過エリアリストとし、
抽出した前記ノードのエリアと前記隣接ノードのエリアとが同じ場合は、抽出した前記ノードの通過エリアリストを前記隣接ノードの通過エリアリストとする、
ことを特徴とする経路計算方法。
【請求項８】
マルチエリアネットワークに設けられるノードの経路計算方法において、
始点ノードから終点ノードに至る経路を算出する工程と、
前記経路を算出する工程において算出される経路が通過する前記マルチエリアネットワークのエリアを示した通過エリアリストを記憶部に記憶する工程と、
を有し、
前記経路を算出する工程において前記始点ノードから前記終点ノードに至る経路を算出した後、前記記憶部の通過エリアリストを参照して同じエリアを許容回数以下で通過する経路を抽出し、抽出した経路の中からリンクコストの最も小さい経路を選択する、
ことを特徴とする経路計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、マルチエリアネットワークに設けられるノードおよび経路計算方法に関する。
【背景技術】
【０００２】
複数のエリアに分割されたネットワークでは、エリア間ルーティングプロトコルが用いられる。例えば、エリア間ルーティングプロトコルに参加するノードは、エリア内で交換されているエリア内ルーティングプロトコルの情報を、エリア間ルーティングプロトコルのルーティングドメインに通知する。これにより、各エリアのノードは、他のエリアのネットワーク状態を把握することが可能になり、複数のエリアを跨る経路の算出が可能になる。
【０００３】
図２０は、エリア内ルーティングを説明する図である。図２０には、マルチエリアネットワークが示してある。マルチエリアネットワークは、エリアＡ〜エリアＤを有している。エリアＡはノードＮ３１〜Ｎ３６を有し、エリアＢはノードＮ１０，Ｎ１１を有し、エリアＣはノードＮ２１を有し、エリアＤはノードＮ４０，Ｎ４１を有している。各ノード間に示す数字は、リンクコストを示している。
【０００４】
マルチエリアネットワークでは、エリア毎にエリア内ルーティングプロトコルが動作する。エリア内ルーティングプロトコルが動作する全てのノードは、各ノードのリンク情報をエリア内全てのノードへ通知する。これによって、エリア内の全てのノードは、エリア内のトポロジーを把握することができる。
【０００５】
図２１は、エリア間ルーティングを説明する図である。図２１において、図２０と同じものには同じ符号を付し、その説明を省略する。
図２１の例では、エリア境界ノードのノードＮ１１，Ｎ２１，Ｎ３１〜Ｎ３３，Ｎ４１がエリア間ルーティングに参加しているものとする。また、図２０に示したように、各リンクのリンクコストを１とする。
【０００６】
エリア間ルーティングに参加するノードでは、エリア間ルーティングプロトコルが動作する。エリア間ルーティングに参加するノードは、例えば、エリア内のトポロジー情報を要約した仮想リンクの情報をエリア間ルーティングに参加する全てのノードに通知する。また、エリア間ルーティングに参加するノードは、エリア間リンクの情報をエリア間ルーティングに参加する全てのノードに通知する。
【０００７】
例えば、ノードＮ３１は、エリアＡ内のトポロジー情報を基に、エリア境界ノードのノードＮ３２，Ｎ３３までの到達経路を、リンクコスト５およびリンクコスト４の仮想リンク情報として、エリア間ルーティングに参加する全ノードに通知する。また、ノードＮ３１は、ノードＮ３１−Ｎ１１，Ｎ３１−Ｎ２１のエリア間リンク情報をエリア間ルーティングに参加する全ノードに通知する。他のエリア間ルーティングに参加するノードも同様に、仮想リンク情報およびエリア間リンク情報を通知する。これによって、図２１に示すエリア間のトポロジーの情報がエリア間ルーティングに参加するノードで交換され、エリア間ルーティングに参加するノードはエリア間トポロジー情報を保持することができる。
【０００８】
図２２は、各ノードに保持されるエリア間トポロジー情報を示した図である。エリア間ルーティングに参加するノードは上述したように、例えば、図２１に示すエリア間トポロジーの情報をエリア間ルーティングプロトコルで交換し、図２２に示すようなエリア間トポロジー情報を保持する。例えば、エリア間ルーティングに参加した各エリア境界ノードは、エリア境界ノード間のリンク情報と、そのエリア境界ノード間のリンクコストを保持している。
【０００９】
ネットワーク制御アプリケーション等が複数エリアに跨る経路を計算する場合、各ノードが保持するエリア間トポロジー情報を基に経路を計算する。例えば、図２１において、ノードＮ２１からノードＮ４１までの経路を計算するとする。ノードＮ２１からノードＮ４１に至る経路は複数あるが、一般的にダイクストラアルゴリズムによって、リンクコストが最も小さくなる最短経路が選択される。例えば、ノードＮ２１，Ｎ３２，Ｎ３３，Ｎ４１が選択される。
【００１０】
なお、１つのネットワークを複数のエリアに分割して経路制御プロトコルを運用しているネットワーク内において、パスの起点となる発側ノードから終点となる着側ノードの間に異なる経路を通る複数のパスを設定し、設定された複数のパスを、トラヒック負荷分散やパスプロテクションに利用可能な経路計算方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−２５２３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、従来の経路計算では、リンクコストを基準に経路が選択されるため、１度通過したエリアを再び通過する場合があり、このような経路はマルチエリアネットワークの管理が困難になるという問題点があった。
【００１３】
例えば、図２１において、ノードＮ１１からノードＮ４１までの経路を計算するとする。従来の経路計算では、例えば、ダイクストラ法に基づき最短経路（リンクコストの最も小さい経路）が選択されるため、ノードＮ１１，Ｎ３１，Ｎ２１，Ｎ３２，Ｎ３３，Ｎ４１の経路が算出される。この経路計算では、総コストが最も小さいという利点があるものの、より多くのエリアを通過するため、管理の手間がかかる。例えば、図２１の例の場合、エリアＡを通過した経路がエリアＣを経由して再びエリアＡを通過しており、エリアＡの管理者は、例えば、他の管理者の元にあるエリアＣの状況等を把握しなければならない。
【００１４】
本件はこのような点に鑑みてなされたものであり、マルチエリアネットワークの管理を容易にすることができるノードおよび経路計算方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、マルチエリアネットワークに設けられるノードが提供される。このノードは、始点ノードから終点ノードに至る経路を算出する経路算出部と、前記経路算出部の算出する経路が通過する前記マルチエリアネットワークのエリアを示す通過エリアリストを記憶する記憶部と、を備え、前記記憶部は、前記経路算出部で算出される経路が通過するエリアを通過順に通過エリアリストに記憶し、前記経路算出部は、前記始点ノードから前記終点ノードに至る経路を算出する際、前記記憶部の通過エリアリストを参照し、通過エリアリストに記憶された最後以外のエリアに対して、次経路のエリアが含まれるか否かを判断し、含まれる場合は該次経路のエリアを経路算出対象から外して、同じエリアを複数回通過する経路を経路算出対象から除外し、前記経路算出部は、経路が未確定のノード群の中からリンクコストの最も小さいノードを抽出し、抽出した前記ノードを経路が確定したノードとして登録し、抽出した前記ノードの通過エリアリストの最後以外に、抽出した前記ノードの隣接ノードのエリアが含まれているか否かに基づいて前記隣接ノードを経路算出対象から除外し、前記隣接ノードを経路算出対象から除外しなかった場合、抽出した前記ノードの通過エリアリストの最後と前記隣接ノードのエリアとを比較し、抽出した前記ノードの通過エリアリストの最後と、前記隣接ノードのエリアとが異なる場合は、抽出した前記ノードの通過エリアリストに前記隣接ノードのエリアを追加して前記隣接ノードの通過エリアリストとし、抽出した前記ノードの通過エリアリストの最後と、前記隣接ノードのエリアとが同じ場合は、抽出した前記ノードの通過エリアリストを前記隣接ノードの通過エリアリストとする。
【発明の効果】
【００１７】
開示のノードおよび経路計算方法によれば、マルチエリアネットワークの管理が容易になる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態に係るノードを示した図である。
【図２】第２の実施の形態に係るエリア内ルーティングを説明する図である。
【図３】エリア間ルーティングを説明する図である。
【図４】各ノードに保持されるエリア間トポロジー情報を示した図である。
【図５】各ノードに保持されるエリア情報を示した図である。
【図６】ノードのブロック図である。
【図７】エリア間経路計算処理部のブロック図である。
【図８】マルチエリアネットワークの経路計算を説明する図である。
【図９】経路算出部のフローチャートである。
【図１０】到達距離の小さい経路を算出することができない場合のマルチエリアネットワークの例を示した図である。
【図１１】第３の実施の形態に係るマルチエリアネットワークの経路計算を説明する図である。
【図１２】経路算出部のフローチャートである。
【図１３】第４の実施の形態に係る経路計算で経路を求めることができないマルチエリアネットワークの例を示した図である。
【図１４】経路算出部のフローチャートである。
【図１５】第５の実施の形態に係るマルチエリアネットワークを説明する図である。
【図１６】エリア間ルーティングで交換されるトポロジー情報を説明する図である。
【図１７】第６の実施の形態に係るマルチエリアネットワークの経路計算を説明する図である。
【図１８】経路算出部のフローチャートである。
【図１９】経路算出部のフローチャートである。
【図２０】エリア内ルーティングを説明する図である。
【図２１】エリア間ルーティングを説明する図である。
【図２２】各ノードに保持されるエリア間トポロジー情報を示した図である。
【発明を実施するための形態】
【００１９】
以下、第１の実施の形態を、図面を参照して詳細に説明する。
図１は、第１の実施の形態に係るノードを示した図である。図１には、マルチエリアネットワークが示してある。マルチエリアネットワークは、エリアＡ〜エリアＤを有している。エリアＡはノード１を有し、エリアＢはノード２を有し、エリアＣはノード３，４を有し、エリアＤはノード５を有している。
【００２０】
ノード１は、経路算出部１ａおよび記憶部１ｂを有している。経路算出部１ａは、始点ノードから終点ノードに至る経路を算出する。例えば、経路算出部１ａは、ダイクストラ法などに基づいて自分（ノード１）からノード５までの経路を算出する。
【００２１】
記憶部１ｂは、経路算出部１ａの算出する経路が通過するエリアＡ〜Ｄを示す通過エリアリストを記憶する。
経路算出部１ａは、始点ノードから終点ノードに至る経路を算出する際、記憶部１ｂの通過エリアリストを参照し、同じエリアを複数回通過する経路を経路算出対象から除外する。
【００２２】
例えば、経路算出部１ａは、ノード１，３，２までの経路を算出し、記憶部１ｂには、経路算出部１ａの算出した経路が通過するエリアＡ，Ｃ，Ｂを示す通過エリアリスト‘Ａ，Ｃ，Ｂ’が記憶されているとする。
【００２３】
経路算出部１ａは、次の経路候補としてノード４を抽出したとする。ノード４は、エリアＣに属しており、経路算出部１ａは、記憶部１ｂの通過エリアリスト‘Ａ，Ｃ，Ｂ’に基づき、ノード４の経路はエリアＣを２回通過することになると認識する。そこで、経路算出部１ａは、ノード４の経路を経路算出対象から除外する。これにより、経路算出部１ａは、例えば、同一エリアを複数回通過しないノード１，３，４，５の経路を算出することが可能となる。
【００２４】
このように、ノード１は、経路を算出する際、経路が通過するエリアを示した通過エリアリストを記憶する。そして、ノードは、通過エリアリストに基づいて１度通過したエリアを再び通過することになる経路を経路算出対象から除外する。これにより、マルチエリアネットワークの管理を容易にすることができる。
【００２５】
次に、第２の実施の形態を、図面を参照して詳細に説明する。
図２は、第２の実施の形態に係るエリア内ルーティングを説明する図である。図２には、マルチエリアネットワークが示してある。マルチエリアネットワークは、エリアＡ〜エリアＤを有している。エリアＡはノードＮ３１〜Ｎ３６を有し、エリアＢはノードＮ１０，Ｎ１１を有し、エリアＣはノードＮ２１を有し、エリアＤはノードＮ４０，Ｎ４１を有している。各ノード間に示す数字は、リンクコストを示している。ノードは、例えば、ルータやスイッチなどの通信装置である。
【００２６】
マルチエリアネットワークでは、エリア毎にエリア内ルーティングプロトコルが動作する。エリア内ルーティングプロトコルが動作する全てのノードは、各ノードのリンク情報をエリア内全てのノードへ通知する。これによって、エリア内の全てのノードは、エリア内のトポロジーを把握することができる。
【００２７】
図３は、エリア間ルーティングを説明する図である。図３において、図２と同じものには同じ符号を付し、その説明を省略する。
図３の例では、エリア境界ノードのノードＮ１１，Ｎ２１，Ｎ３１〜Ｎ３３，Ｎ４１がエリア間ルーティングに参加しているものとする。また、図２に示したように、各リンクのリンクコストを１とする。
【００２８】
エリア間ルーティングに参加するノードでは、エリア間ルーティングプロトコルが動作する。エリア間ルーティングに参加するノードは、例えば、エリア内のトポロジー情報を要約した仮想リンクの情報をエリア間ルーティングに参加する全てのノードに通知する。また、エリア間ルーティングに参加するノードは、エリア間リンクの情報をエリア間ルーティングに参加する全てのノードに通知する。また、エリア間ルーティングプロトコルに参加するノードは、自分の属しているエリアのエリアＩＤをエリア情報としてエリア間ルーティングに参加する全てのノードに通知する。
【００２９】
例えば、ノードＮ３１は、エリアＢ内のトポロジー情報を基に、エリア境界ノードのノードＮ３２，Ｎ３３までの到達経路を、リンクコスト５およびリンクコスト４の仮想リンク情報として、エリア間ルーティングに参加する全ノードに通知する。また、ノードＮ３１は、ノードＮ３１−Ｎ１１，Ｎ３１−Ｎ２１のエリア間リンク情報をエリア間ルーティングに参加する全ノードに通知する。また、ノードＮ３１は、自分の属するエリアＩＤ‘Ａ’のエリア情報をエリア間ルーティングに参加する全ノードに通知する。他のエリア間ルーティングに参加するノードも同様に、仮想リンク情報、エリア間リンク情報、およびエリア情報を通知する。これにより、図３に示すエリア間のトポロジーの情報がエリア間ルーティングに参加するノードの間で交換され、エリア間ルーティングに参加するノードはエリア間トポロジー情報とエリア情報とを保持することができる。
【００３０】
図４は、各ノードに保持されるエリア間トポロジー情報を示した図である。エリア間ルーティングに参加するノードは上述したように、例えば、図３に示すエリア間トポロジーの情報をエリア間ルーティングプロトコルで交換し、図４に示すようなエリア間トポロジー情報を保持する。例えば、エリア間ルーティングに参加するノードは、エリア間ルーティングに参加するノードのリンク情報と、そのリンク情報のリンク間のリンクコストとを保持している。
【００３１】
図５は、各ノードに保持されるエリア情報を示した図である。エリア間ルーティングに参加するノードは上述したように、例えば、図３に示すエリア間トポロジーの情報をエリア間ルーティングプロトコルで交換し、図５に示すようなエリア情報を保持する。例えば、エリア間ルーティングに参加するノードは、ノード情報と、そのノード情報のノードの属するエリアのエリアＩＤとを保持している。
【００３２】
なお、エリア境界ノード以外のノードがエリア間ルーティングに参加してもよい。例えば、図２に示すノードＮ１０，Ｎ４０もエリア間ルーティングに参加できる。この場合、ノードＮ１０，Ｎ４０のトポロジー情報も図４に示したエリア間トポロジー情報に含まれる。また、ノードＮ１０，Ｎ４０のエリア情報も図５に示したエリア情報に含まれる。
【００３３】
図６は、ノードのブロック図である。図６に示すようにノードは、データ受信部１１、データ種別判定部１２、データ送信部１３、エリア内ＲＴ（ＲＴ：RouTing）処理部２０、およびエリア間ＲＴ処理部３０を有している。エリア内ＲＴ処理部２０は、エリア内ＲＴ制御パケット受信部２１、エリア内ＲＴ制御パケット処理部２２、エリア内ＲＴ情報生成部２３、エリア内ＲＴ制御パケット送信部２４、およびエリア内情報ＤＢ（ＤＢ：Data Base）２５を有している。エリア間ＲＴ処理部３０は、エリア間ＲＴ制御パケット受信部３１、エリア間ＲＴ制御パケット処理部３２、エリア間ＲＴ情報生成部３３、エリア間ＲＴ制御パケット送信部３４、エリア間経路計算処理部３５、およびエリア間情報ＤＢ３６を有している。
【００３４】
データ受信部１１は、ネットワークからデータを受信する。
データ種別判定部１２は、データ受信部１１によって受信されたデータを解析し、エリア内ルーティングプロトコルの制御パケットであるか、エリア間ルーティングプロトコルの制御パケットであるか、またはユーザデータのパケットであるかを判定する。データ種別判定部１２は、エリア内ルーティングプロトコルの制御パケットが受信された場合、エリア内ＲＴ制御パケット受信部２１へ出力する。データ種別判定部１２は、エリア間ルーティングプロトコルの制御パケットが受信された場合、エリア間ＲＴ制御パケット受信部３１へ出力する。データ種別判定部１２は、ユーザデータのパケットが受信された場合、図示していないユーザＲＴ処理部へ出力する。
【００３５】
エリア内ＲＴ処理部２０のエリア内ＲＴ制御パケット受信部２１は、受信された制御パケットのヘッダを解析し、正常な制御パケットである場合には、エリア内ＲＴ制御パケット処理部２２へ出力する。
【００３６】
エリア内ＲＴ制御パケット処理部２２は、受信した制御パケットに含まれているエリア内のトポロジー情報およびエリア内ＲＴ情報生成部２３で生成されたトポロジー情報をエリア内情報ＤＢ２５に記憶する。エリア内ＲＴ制御パケット処理部２２は、生成されたトポロジー情報をエリア内情報ＤＢ２５に記憶した後、受信ポート以外の全てのポートへ転送するため、エリア内ＲＴ制御パケット送信部２４へ制御パケットを出力する。
【００３７】
エリア内ＲＴ情報生成部２３は、隣接しているノードの情報やそのノードを接続しているリンクのリンクコストを有するトポロジー情報を生成し、エリア内ＲＴ制御パケット処理部２２へ出力する。
【００３８】
エリア内ＲＴ制御パケット送信部２４は、エリア内ＲＴ制御パケット処理部２２から出力される制御パケットの適切なヘッダを生成し、データ送信部１３に出力する。
エリア内情報ＤＢ２５には、エリア内のトポロジー情報が格納される。
【００３９】
エリア間ＲＴ処理部３０のエリア間ＲＴ制御パケット受信部３１は、受信された制御パケットのヘッダを解析し、正常な制御パケットである場合には、エリア間ＲＴ制御パケット処理部３２へ出力する。
【００４０】
エリア間ＲＴ制御パケット処理部３２は、受信した制御パケットに含まれているエリア間のトポロジー情報およびエリア間ＲＴ情報生成部３３で生成されたトポロジー情報とエリア情報とをエリア間情報ＤＢ３６に記憶する。また、エリア間ＲＴ制御パケット処理部３２は、受信した制御パケットに含まれている、制御パケットを送信したノードの属しているエリア情報をエリア間情報ＤＢ３６に記憶する。エリア間ＲＴ制御パケット処理部３２は、生成されたトポロジー情報とエリア情報とをエリア間情報ＤＢ３６に記憶した後、受信ポート以外の全てのポートへ転送するため、エリア間ＲＴ制御パケット送信部３４へ制御パケットを出力する。
【００４１】
エリア間ＲＴ情報生成部３３は、隣接しているノードの情報やそのノードを接続しているリンクのリンクコストを有するトポロジー情報を生成し、エリア間ＲＴ制御パケット処理部３２へ出力する。エリア間ＲＴ情報生成部３３は、エリア内情報ＤＢ２５のエリア内トポロジー情報を基に、仮想リンク等のエリア間トポロジー情報を生成し、エリア間ＲＴ制御パケット処理部３２へ出力する。また、エリア間ＲＴ情報生成部３３は、自ノードが属するエリアのエリア情報を生成し、エリア間ＲＴ制御パケット処理部３２へ出力する。
【００４２】
エリア間ＲＴ制御パケット送信部３４は、エリア間ＲＴ制御パケット処理部３２から出力される制御パケットの適切なヘッダを生成し、データ送信部１３に出力する。
エリア間経路計算処理部３５は、エリア間情報ＤＢ３６に記憶されているエリア間のトポロジー情報とエリア情報に基づいて、指定された始点のノードから終点（宛先）のノードまでの経路を算出する。エリア間経路計算処理部３５は、一度通過したエリアを再度通過することがなく、例えば、ダイクストラ法等を用いてリンクコストが小さくなる経路を算出する。
【００４３】
エリア間情報ＤＢ３６には、エリア間のトポロジー情報とエリア情報が格納される。例えば、図４に示したエリア間トポロジー情報と図５に示したエリア情報とが格納される。
図７は、エリア間経路計算処理部のブロック図である。図７に示すようにエリア間経路計算処理部３５は、経路算出部４１および記憶部４２を有している。
【００４４】
経路算出部４１は、経路計算処理中に得られた経路候補群の中から次に計算すべき経路を抽出する。また、経路算出部４１は、抽出した経路が同一エリアを複数回通過しているか否かを、記憶部４２に記憶されている、経路が通過したエリアを示す通過エリアリストを基に判定する。また、経路算出部４１は、抽出した経路とすでに得られている他の経路とのリンクコストを比較する。また、経路算出部４１は、記憶部４２の通過エリアリストに経路が通過したエリアを記憶する。また、経路算出部４１は、経路が通過するリンクのリンクコストを記憶部４２に記憶する。
【００４５】
記憶部４２は、経路算出部４１によって算出される経路の通過するエリアを示す通過エリアリストや、経路の通過するリンクのリンクコストの情報を記憶する。
図８は、マルチエリアネットワークの経路計算を説明する図である。図８には、経路算出部４１が経路計算するマルチエリアネットワークの例が示してある。図８のマルチエリアネットワークは、エリアＸ，Ａ，Ｂ，Ｙを有している。エリアＸはノードＮ１１を有し、エリアＡはノードＮ１３，Ｎ１４を有し、エリアＢはノードＮ１２，Ｎ１６，Ｎ１７を有し、エリアＹはノードＮ１５を有している。各ノード間に示す数字は、リンクコストを示している。ノードＮ１１〜Ｎ１７は、エリア境界ノードであり、エリア間ルーティングに参加しているものとする。
【００４６】
ノードＮ１１の経路算出部４１は、自分（ノードＮ１１）からノードＮ１５までの経路を算出するとする。ノードＮ１１の経路算出部４１は、例えば、ネットワーク管理者からのコマンドに基づいて、目的のノードＮ１５までの経路を算出する。または、エリアＸに属する他のノードがネットワーク管理者からのコマンドに基づいて、ノードＮ１１からノードＮ１５までの経路を算出してもよい。この場合、経路を算出したノードは、ノードＮ１１に算出結果を通知する。
【００４７】
なお、経路算出部４１は、エリア間情報ＤＢ３６に記憶されているトポロジー情報に基づき、図８に示すマルチエリアネットワークのトポロジーを認識することができる。
経路算出部４１は、ダイクストラ法に基づき目標とする経路を算出していく。このとき、経路算出部４１は、算出した経路（ノード）までの到達距離（リンクコストの合計）と、算出した経路が通過したエリアのエリアＩＤを記憶部４２の通過エリアリストに記憶していく。
【００４８】
例えば、経路算出部４１は、ノードＮ１１，Ｎ１２，Ｎ１３までの経路を確定した場合、図８のノードＮ１１の下部に示すように、リンクコスト‘０’、通過エリアリスト‘Ｘ’を記憶部４２に記憶している。また、図８のノードＮ１２の下部に示すように、ノードＮ１１からノードＮ１２までのリンクコスト‘１’と、ノードＮ１１からノードＮ１２までの経路が通過したエリアの通過エリアリスト‘Ｘ，Ｂ’を記憶部４２に記憶している。また、図８のノードＮ１３の上部に示すように、ノードＮ１１からノードＮ１３までのリンクコスト‘２’と、ノードＮ１１からノードＮ１３までの経路が通過したエリアの通過エリアリスト‘Ｘ，Ｂ，Ａ’を記憶部４２に記憶している。また、図８のノードＮ１７の下部に示すように、ノードＮ１１からノードＮ１７までのリンクコスト‘６’と、ノードＮ１１からノードＮ１７までの経路が通過したエリアの通過エリアリスト‘Ｘ，Ｂ’を記憶部４２に記憶している。また、図８のノードＮ１４の上部に示すように、ノードＮ１１からノードＮ１４までのリンクコスト‘３’と、ノードＮ１１からノードＮ１４までの経路が通過したエリアの通過エリアリスト‘Ｘ，Ｂ，Ａ’を記憶部４２に記憶している。
【００４９】
なお、経路算出部４１は、エリア間情報ＤＢ３６に記憶されているエリア情報に基づいて通過エリアリストを生成し、記憶部４２に記憶することができる。
経路算出部４１は、ダイクストラ法により、最短経路が未確定であるノード群から、リンクコストの最も小さいノードを抽出する。例えば、経路算出部４１は、ノードＮ１３を最後に確定ノードとした場合、次にノードＮ１４を抽出することになる。
【００５０】
経路算出部４１は、抽出したノードＮ１４の有するリンクの端点となる隣接ノード（図８の場合、ノードＮ１５，Ｎ１６）を選択する。ここでは、ノードＮ１６を選択したとする。経路算出部４１は、抽出したノードＮ１４の通過エリアリストの最後以外に、選択したノードＮ１６のエリアＩＤが含まれているか判断する。経路算出部４１は、抽出したノードＮ１４の通過エリアリストの最後以外に、選択したノードＮ１６のエリアＩＤが含まれている場合、選択したノードＮ１６の経路を経路算出候補から除く。
【００５１】
ここで、抽出したノードＮ１４の通過エリアリストは‘Ｘ，Ｂ，Ａ’である。この通過エリアリストの最後‘Ａ’以外には、選択したノードＮ１６のエリアＩＤ‘Ｂ’が含まれている。従って、経路算出部４１は、抽出したノードＮ１４の通過エリアリストの最後以外に、選択したノードＮ１６のエリアＩＤが含まれているので、選択したノードＮ１６の経路を経路算出候補から除く。
【００５２】
すなわち、経路算出部４１は、ノードＮ１２で一旦エリアＢに入り、その後エリアＡを経由して再びエリアＢに入る経路を経路算出候補から除外する。そして、経路算出部４１は、ノードＮ１４からノードＮ１６の経路を除外して、別の経路をダイクストラ法により算出する。
【００５３】
つまり、経路算出部４１は、ダイクストラ法によって経路算出を行うとともに算出した経路の通過エリアリストを記憶する。そして、経路算出部４１は、通過エリアリストに基づいて、一度通過したエリアを再び通過することになるか否かを判断し、一度通過したエリアを再び通過することになると判断した場合、その経路を除外してダイクストラ法の処理を進めていく。
【００５４】
なお、図８の例の場合、ノードＮ１１，Ｎ１２，Ｎ１７，Ｎ１６，Ｎ１５の経路が算出される。
図９は、経路算出部のフローチャートである。
【００５５】
［ステップＳ１］経路算出部４１は、全ノードにおける、始点ノードからの到達距離を無限大に設定し、始点ノードの到達距離を０に設定する。さらに、経路算出部４１は、全ノードを最短経路未確定ノードとしてマークする（記憶部４２に記憶する）。
【００５６】
［ステップＳ２］経路算出部４１は、最短経路が未確定であるとマークされたノード群の中から、始点ノードからの到達距離が最短となるノードを抽出する。
［ステップＳ３］経路算出部４１は、ノードを抽出できなかった場合、終点ノードへの到達距離が存在しないことになるので処理を終了する。経路算出部４１は、ノードを抽出できた場合、ステップＳ４へ進む。
【００５７】
［ステップＳ４］経路算出部４１は、抽出されたノードが終点ノードであるか否かを判断する。経路算出部４１は、抽出したノードが終点ノードであった場合、最短経路が算出されたことになるので処理を終了する。経路算出部４１は、抽出したノードが終点ノードでなかった場合、ステップＳ５へ進む。
【００５８】
［ステップＳ５］経路算出部４１は、抽出ノードを最短経路確定ノードとしてマークする。
［ステップＳ６］経路算出部４１は、抽出ノードの有するリンク数分、ステップＳ１３までの処理を繰り返す。なお、ステップＳ６からステップＳ１３までの処理の対象となっているリンクを対象リンクと呼ぶ。
【００５９】
［ステップＳ７］経路算出部４１は、抽出ノードの有する通過エリアリストのエリアＩＤのうち、最後のエリアＩＤ以外で、対象リンクの端点となる隣接ノードのエリアＩＤと同一のものが含まれているか判断する。
【００６０】
［ステップＳ８］経路算出部４１は、同一のエリアＩＤが含まれていない場合には、ステップＳ９の処理へ進む。経路算出部４１は、同一のエリアＩＤが含まれている場合には、次のリンク処理へ移るためステップＳ６へ進む。すなわち、経路算出部４１は、一度通過したことのあるエリアに再び戻る経路を経路計算から除外する。
【００６１】
［ステップＳ９］経路算出部４１は、対象リンクの隣接ノードにおける新しい到達距離を算出する。隣接ノードにおける始点ノードからの到達距離は、抽出ノードまでの到達距離と対象リンクのリンクコストの和として求められる。
【００６２】
［ステップＳ１０］経路算出部４１は、算出した隣接ノードの新しい到達距離と、すでに得られている隣接ノードの到達距離とを比較する。経路算出部４１は、新しい到達距離がすでに得られている到達距離に対し小さい場合は、ステップＳ１１へ進む。経路算出部４１は、新しい到達距離がすでに得られている到達距離に対し小さくない場合は、次のリンク処理へ移るためステップＳ６へ進む。
【００６３】
［ステップＳ１１］経路算出部４１は、隣接ノードの到達距離をステップＳ９で算出された新しい値に更新する。
［ステップＳ１２］経路算出部４１は、抽出ノードの通過エリアリストに記載されている最後のエリアＩＤと、隣接ノードのエリアＩＤとを比較する。経路算出部４１は、通過エリアリストに記載されている最後のエリアＩＤと、隣接ノードのエリアＩＤとが異なる場合には、抽出ノードの通過エリアリストの最後に隣接ノードのエリアＩＤを追加して隣接ノードの通過エリアリストとして記憶する。経路算出部４１は、通過エリアリストに記載されている最後のエリアＩＤと、隣接ノードのエリアＩＤとが同じである場合には、抽出ノードの通過エリアリストをそのまま隣接ノードの通過エリアリストとして記憶する。
【００６４】
［ステップＳ１３］経路算出部４１は、対象リンクが残っている場合には、ステップＳ６へ進む。経路算出部４１は、対象リンクが残っていない場合には、ステップＳ２へ進む。
【００６５】
このように、経路算出部４１は、ダイクストラ法により経路を算出するとともに、算出した経路の通過エリアを記憶する。これにより、経路算出部４１は、到達距離が小さく、かつ、同一エリアを通過しないように経路を算出することができ、マルチエリアネットワークの管理を容易にすることができる。
【００６６】
次に、第３の実施の形態を、図面を参照して詳細に説明する。第２の実施の形態では、各ノードへ到達する経路を１経路だけ保持しながら計算を進める。そのため、第２の実施の形態では、到達距離の小さい経路を算出するようにしているが、マルチエリアネットワークのトポロジーによっては、より到達距離の小さい経路を算出できない場合が存在する。第３の実施の形態では、各ノードへ到達する複数の経路と、それらの経路が通過する通過エリアリストを保持することによって、適切な経路を算出することができるようにする。
【００６７】
図１０は、到達距離の小さい経路を算出することができない場合のマルチエリアネットワークの例を示した図である。図１０のマルチエリアネットワークは、エリアＡ〜Ｅを有している。エリアＡはノードＮ１０を有し、エリアＢはノードＮ２１，Ｎ２２を有し、エリアＣはノードＮ３１を有し、エリアＤはノードＮ４１を有し、エリアＥはノードＮ５１を有している。各ノード間に示す数字はリンクコストを示している。ノードＮ１０を始点ノード、ノードＮ２２を終点ノードとする。
【００６８】
ノードＮ１０からノードＮ２２までの経路は、例えば、ノードＮ１０，Ｎ３１，Ｎ４１，Ｎ５１，Ｎ２２の経路Ｒ１と、ノードＮ１０，Ｎ２１，Ｎ４１，Ｎ５１，Ｎ２２の経路Ｒ２と、ノードＮ１０，Ｎ２１，Ｎ２２の経路Ｒ３とが考えられる。それぞれの経路Ｒ１〜Ｒ３のリンクコストは、８、４、１１となる。
【００６９】
ここで、経路Ｒ２は、リンクコストが最も小さいがエリアＢを一度通過しており望ましい経路でない。また、経路Ｒ３は、経路Ｒ１よりリンクコストが大きいため望ましい経路でない。従って、経路Ｒ１が望ましい経路となる。
【００７０】
第２の実施の形態では、ダイクストラ法により、最短の到達距離を有するノードを選択し、最短経路確定ノードの領域を広げていく。そのため、図１０の例では、ノードＮ３１を経由した経路が算出されない。すなわち、経路Ｒ１を算出したいが、第２の実施の形態では経路Ｒ３が算出される。
【００７１】
なお、第３の実施の形態においてもノードは、図６、図７と同様のブロックを有する。ただし、経路算出部４１の機能が異なる。
図１１は、第３の実施の形態に係るマルチエリアネットワークの経路計算を説明する図である。図１１のマルチエリアネットワークは、エリアＡ〜Ｃを有している。エリアＡはノードＮ１１を有し、エリアＢはノードＮ１２〜Ｎ１５を有し、エリアＣはノードＮ１６，Ｎ１７を有している。
【００７２】
各ノードは、図１１に示すように、リンクＬ１〜Ｌ８によって接続されている。各ノード間に示す数字はリンクコストを示している。ノードＮ１１を始点ノード、ノードＮ１５を終点ノードとする。
【００７３】
ノードＮ１１の経路算出部４１は、始点である自分（ノードＮ１１）に接続されている全てのリンクＬ１，Ｌ４を記憶部４２の計算候補リストに登録する。経路算出部４１は、リンクＬ１，Ｌ４の到達距離を記憶部４２に記憶し、始点のノードＮ１１のエリアＩＤ‘Ａ’をリンクＬ１，Ｌ４の通過エリアリストとして記憶部４２に記憶する。これにより、例えば、図１１のノードＮ１２の上部に示すように‘１’，‘Ａ’の情報と、ノードＮ１６の下部に示すように‘５’，‘Ａ’の情報が記憶部４２に記憶される。
【００７４】
経路算出部４１は、計算候補リストのうち、最短の到達距離を有するリンクを抽出する。上記例の場合、リンクＬ１を抽出する。経路算出部４１は、抽出したリンクＬ１を計算候補リストから削除する。
【００７５】
経路算出部４１は、抽出したリンクＬ１の終端点のノードＮ１２の有するリンクＬ２，Ｌ８を抽出する。以下、抽出したリンクＬ１と、その終端点のノードＮ１２から伸びるリンクＬ２，Ｌ８を区別するため、リンクＬ２，Ｌ８を新規リンクと呼ぶ。
【００７６】
経路算出部４１は、抽出したリンクＬ１の通過エリアリスト‘Ａ’の最後以外のエリアＩＤと、新規リンクＬ２，Ｌ８の終端点のノードＮ１４，Ｎ１３のエリアＩＤとが同じか判断する。
【００７７】
経路算出部４１は、エリアＩＤが同じであれば、新規リンクによる経路の算出を除外する。すなわち、経路算出部４１は、一度通過したエリアを再び通過することになる経路を経路計算から除外する。
【００７８】
一方、経路算出部４１は、エリアＩＤが異なれば、新規リンクを計算候補リストに登録する。また、経路算出部４１は、新規リンクまでの到達距離を記憶部４２に記憶する。そして、経路算出部４１は、抽出したリンクの始端点ノードと終端点ノードのエリアが異なる場合、抽出したリンクの通過エリアリストの最後に、新規リンクの始端点ノードの属するエリアＩＤを追加して、新規リンクの通過エリアリストとする。経路算出部４１は、抽出したリンクの始端点ノードと終端点ノードのエリアが同じ場合、抽出したリンクの通過エリアリストを新規リンクの通過エリアリストとする。
【００７９】
上記例の場合、抽出したリンクＬ１の通過エリアリスト‘Ａ’の最後以外のエリアＩＤ（この場合はなし）と、新規リンクＬ２，Ｌ８の終端点のノードＮ１４，Ｎ１３のエリアＩＤが異なるので、経路算出部４１は、新規リンクＬ２，Ｌ８を計算候補リストに登録する。また、経路算出部４１は、新規リンクＬ２，Ｌ８までの到達距離‘２’，‘２１’を記憶部４２に記憶する。そして、経路算出部４１は、抽出したリンクＬ１の始端点ノードと終端点ノードのエリアが異なるので、抽出したリンクＬ１の通過エリアリスト‘Ａ’の最後に、新規リンクＬ２，Ｌ８の始点のノードＮ１２の属するエリアＩＤ‘Ｂ’を追加して、新規リンクＬ２，Ｌ８の通過エリアリストとする。
【００８０】
これにより、例えば、図１１のノードＮ１３の上部に示すように‘２１’，‘ＡＢ’の情報が記憶部４２に記憶される。また、ノードＮ１４の上部に示すように‘２’，‘ＡＢ’の情報が記憶部４２に記憶される。
【００８１】
なお、上記例の場合、リンクＬ１は計算候補リストから削除され、新規リンクＬ２，Ｌ８は計算候補リストに登録されているので、現在の計算候補リストには、リンクＬ２，Ｌ４，Ｌ８が登録されていることになる。それぞれの到達距離は、２，５，２１である。
【００８２】
経路算出部４１は、計算候補リストの中から、到達距離の最も小さいリンクを抽出する。上記例の場合、経路算出部４１は、リンクＬ２を抽出する。経路算出部４１は、抽出したリンクＬ２を計算候補リストから削除する。
【００８３】
経路算出部４１は、上記と同様に、抽出したリンクＬ２から伸びるリンクＬ３，Ｌ７を新規リンクとし、上記と同様の処理を行う。
経路算出部４１は、新規リンクの終端点のノードが一度通過したエリアに属している場合にはその新規リンクの経路を経路算出対象から除く。一方、経路算出部４１は、新規リンクの終端点ノードが一度通過したエリアに属していない場合には、その新規リンクの到達距離を記憶し、通過エリアリストを記憶する。これにより、例えば、図１１のノードＮ１６の下部に示すように到達距離‘７’と通過エリアリスト‘ＡＢ’の情報が記憶部４２に記憶される。また、ノードＮ１５の上部に示すように到達距離‘１２’と通過エリアリスト‘ＡＢ’の情報が記憶部４２に記憶される。なお、計算候補リストは、リンクＬ２が削除され、Ｌ３，Ｌ４，Ｌ７，Ｌ８となる。
【００８４】
すなわち、経路算出部４１は、計算候補リストから最短の到達距離を有するリンクを抽出し、そのリンクの終端点のノードから新規リンクを伸ばし、伸ばした新規リンクが一度通過したエリアに戻っていなければ、新規リンクを計算候補リストに追加していく。
【００８５】
これにより、同じノードに到達する、異なる経路のリンクが複数計算候補リストに登録される場合がある。例えば、図１１の例の場合、ノードＮ１６に到達するリンクとしてリンクＬ４とリンクＬ３が計算候補リストに登録される。つまり、経路算出部４１は、各ノードへ到達する複数の経路を記憶することによって、適切な経路を算出することができる。
【００８６】
図１２は、経路算出部のフローチャートである。
［ステップＳ２１］経路算出部４１は、始点ノードに接続されている全リンクを計算候補リストに登録する。そして、経路算出部４１は、始点ノードからリンクの終端点へ至る経路情報として、始点ノードからリンクの終端点へ至る到達距離と、始点ノードからリンクの終端点へ至る経路が通過するエリアを通過エリアリストとして記憶部４２に記憶する。すなわち、経路算出部４１は、始点ノードから伸びる各リンクのリンクコストを到達距離として記憶し、始点ノードの属するエリアのエリアＩＤを通過エリアリストとして記憶部４２に記憶する。
【００８７】
［ステップＳ２２］経路算出部４１は、計算候補リストの中から到達距離の最も小さいリンクを抽出する。
［ステップＳ２３］経路算出部４１は、リンクを抽出できなかった場合、終点ノードへの到達経路が存在しないことになるので、処理を終了する。経路算出部４１は、リンクを抽出できた場合、ステップＳ２４へ進む。
【００８８】
［ステップＳ２４］経路算出部４１は、抽出したリンクの終端点のノードが終点ノードであるか否かを判断する。経路算出部４１は、終点ノードであると判断した場合、最短経路が算出されたことになるので処理を終了する。経路算出部４１は、終点ノードでなかった場合には、ステップＳ２５へ進む。
【００８９】
［ステップＳ２５］経路算出部４１は、抽出リンクを計算候補リストから削除する。
［ステップＳ２６］経路算出部４１は、抽出リンクの終端点のノードが有している全てのリンクに対して、順にステップＳ３２までの処理を行う。以下では、抽出リンクの終端点のノードから伸びている処理対象となっているリンクを新規リンクと呼ぶ。
【００９０】
［ステップＳ２７］経路算出部４１は、抽出リンクの通過エリアリストに記憶されているエリアＩＤのうち、最後のエリアＩＤ以外のエリアＩＤで、新規リンクの終端点のノードの属するエリアＩＤと同一のものがあるか否かを判断する。
【００９１】
［ステップＳ２８］経路算出部４１は、同一のエリアＩＤが含まれていない場合には、ステップＳ２９の処理へ進む。経路算出部４１は、同一のエリアＩＤが含まれている場合には、次の新規リンクの処理へ移るためステップＳ２６へ進む。すなわち、経路算出部４１は、一度通過したことのあるエリアに再び戻る経路を経路計算対象から除外する。
【００９２】
［ステップＳ２９］経路算出部４１は、新規リンクの新しい到達距離（抽出リンクの到達距離＋新規リストのリンクコスト）を記憶部４２に記憶する。また、経路算出部４１は、新規リンクへの経路として、抽出リンクの経路に抽出リンクの始端点のノードを追加した通過ノードリストを記憶部４２に記憶する。
【００９３】
［ステップＳ３０］経路算出部４１は、抽出リンクの始端点のノードと終端点のノードでエリアＩＤが異なる場合には、抽出リンクの通過エリアリストの最後に新規リンクの始端点のノードのエリアＩＤを追加し、新規リンクの通過エリアリストとして記憶部４２に記憶する。また、経路算出部４１は、抽出リンクの始端点のノードと終端点のノードでエリアＩＤが同じである場合には、抽出リンクの通過エリアリストを新規リンクの通過エリアリストとして記憶部４２に記憶する。
【００９４】
［ステップＳ３１］経路算出部４１は、新規リンクを計算候補リストに追加する。このとき、同じノードに到達する異なるリンクが計算候補リストに登録される場合もある。つまり、経路算出部４１は、あるノードに到達するリンクが複数存在する場合、異なる経路距離を持つリンクとして、多重に計算候補リストに登録する。このように、経路算出部４１は、複数の経路を記憶することによって、同一エリアを通過しない到達距離の短い経路を算出することが可能となる。
【００９５】
［ステップＳ３２］経路算出部４１は、新規リンクが残っている場合には、ステップＳ２６へ進む。経路算出部４１は、新規リンクが残っていない場合には、ステップＳ２２へ進む。
【００９６】
このように、経路算出部４１は、複数の経路を記憶しながら、かつ、同一エリアに戻る経路を除外して経路計算を進めていく。これにより、最短経路を算出することが可能となる。
【００９７】
次に、第４の実施の形態を、図面を参照して詳細に説明する。第２の実施の形態では、各ノードにおいて経路が通過する全てのエリアＩＤを通過エリアリストに追加しながら経路計算を進める。第３の実施の形態では、各ノードに到達可能な複数の経路において、その経路が通過する全てのエリアＩＤを通過エリアリストに追加しながら、経路計算を進める。そのため、ノードは、多くの情報を記憶するための記憶領域が必要になるとともに、記憶した情報をチェックする量も増加し、経路計算負荷が高くなる。第４の実施の形態では、ノードの記憶容量および計算負荷の低減を図る。
【００９８】
図１３は、第４の実施の形態に係る経路計算で経路を求めることができないマルチエリアネットワークの例を示した図である。図１３のマルチエリアネットワークは、エリアＡ〜Ｅを有している。エリアＡはノードＮ１１を有し、エリアＢはノードＮ２１〜Ｎ２４を有し、エリアＣはノードＮ３１，Ｎ３２を有し、エリアＤはノードＮ４１，Ｎ４２を有し、エリアＥはノードＮ５１を有している。ノードＮ１１を始点ノード、ノードＮ５１を終点ノードとする。
【００９９】
第４の実施の形態では、ダイクストラ法によって経路を算出するとともに、経路が１つ前に通過したエリアのエリアＩＤを記憶部に記憶する。すなわち、第４の実施の形態では、経路が通過してきた全てのエリアを記憶部に記憶しない。従って、複数の異なるエリアを跨って再び同一エリアに戻るマルチエリアネットワークのトポロジーでは、同一エリアを通過する経路計算を許可してしまう。
【０１００】
例えば、図１３においてノードＮ４２では、１つ前に通過したエリアＣのエリアＩＤしか記憶部に記憶していない。従って、第４の実施の形態では、同一のエリアＢを再び通過するノードＮ２３の経路を経路計算対象から除外せずに計算してしまう。
【０１０１】
一方、図２に示したようなマルチエリアネットワークのトポロジーでは、第４の実施の形態に係る経路計算によっても同一エリアを再び通過する経路を除外することができる。すなわち、第４の実施の形態では、スター型のトポロジーを有するマルチエリアネットワークにおいて適用することができる。
【０１０２】
なお、第４の実施の形態においてもノードは、図６、図７と同様のブロックを有する。ただし、経路算出部４１の機能が異なる。また、図８に示したマルチエリアネットワークを第４の実施の形態に係る経路算出部４１で経路計算した場合、図８に示すノードＮ１１，Ｎ１２，Ｎ１３，Ｎ１４，Ｎ１６，Ｎ１７の通過エリアリストは、それぞれＸ，Ｘ，Ｂ，Ｂ，Ｘ，Ｘとなる。すなわち、第４の実施の形態では、各ノードの通過エリアリストは、１つのエリアＩＤを記憶すればよい。以下では、第４の実施の形態に係る通過エリアリストを通過エリア情報と呼ぶ。
【０１０３】
図１４は、経路算出部のフローチャートである。
ステップＳ４１からステップＳ４６までの処理は、図９のフローチャートのステップＳ１からステップＳ６までの処理と同じであり、その説明を省略する。
【０１０４】
［ステップＳ４７］経路算出部４１は、抽出ノードの有する通過エリア情報が示しているエリアＩＤと、対象リンクの端点となる隣接ノードのエリアＩＤが同じであるか否か判断する。
【０１０５】
［ステップＳ４８］経路算出部４１は、抽出ノードの有する通過エリア情報のエリアＩＤと、対象リンクの端点となる隣接ノードのエリアＩＤが同じである場合、ステップＳ４６に進む。経路算出部４１は、同じでない場合、ステップＳ４９へ進む。
【０１０６】
［ステップＳ４９］経路算出部４１は、対象リンクの隣接ノードにおける新しい到達距離を算出する。隣接ノードにおける始点ノードからの到達距離は、抽出ノードまでの到達距離と対象リンクのリンクコストの和として求められる。
【０１０７】
［ステップＳ５０］経路算出部４１は、算出した隣接ノードの新しい到達距離と、すでに得られている隣接ノードの到達距離とを比較する。経路算出部４１は、新しい到達距離がすでに得られている到達距離に対し小さい場合は、ステップＳ５１へ進む。経路算出部４１は、新しい到達距離がすでに得られている到達距離に対し小さくない場合は、次のリンク処理へ移るためステップＳ４６へ進む。
【０１０８】
［ステップＳ５１］経路算出部４１は、隣接ノードの到達距離をステップＳ４９で算出された新しい値に更新する。
［ステップＳ５２］経路算出部４１は、抽出ノードと隣接ノードのエリアＩＤを比較する。経路算出部４１は、エリアＩＤが異なる場合には、抽出ノードのエリアＩＤを隣接ノードの通過エリア情報として記憶部４２に記憶する。経路算出部４１は、エリアＩＤが同じである場合には、抽出ノードの通過エリア情報を隣接ノードの通過エリア情報として記憶部４２に記憶する。
【０１０９】
［ステップＳ５３］経路算出部４１は、対象リンクが残っている場合には、ステップＳ４６へ進む。経路算出部４１は、対象リンクが残っていない場合には、ステップＳ４２へ進む。
【０１１０】
このように、経路算出部４１は、ダイクストラ法により経路を算出するとともに、算出した経路の１つ前に通過したエリアを記憶する。これにより、経路算出部４１は、記憶部４２に記憶する情報量を低減でき、また、経路計算の処理負荷を低減することができる。
【０１１１】
次に、第５の実施の形態を、図面を参照して詳細に説明する。第５の実施の形態では、あるエリア内で障害が発生した場合の経路計算について説明する。
図１５は、第５の実施の形態に係るマルチエリアネットワークを説明する図である。図１５のマルチエリアネットワークは、図２のマルチエリアネットワークと同様であり、その説明を省略する。
【０１１２】
図１５に示すように、エリアＡのノードＮ３５に障害が発生したとする。この場合、エリア間ルーティングプロトコルでは、ノードＮ３１−Ｎ３３間の仮想リンク、ノードＮ３１−Ｎ３２間の仮想リンクのリンク情報が通知されないか、あるいは障害リンクとして通知される。
【０１１３】
図１６は、エリア間ルーティングで交換されるトポロジー情報を説明する図である。図１５のノードＮ３５で障害が発生した場合、図１６に示すように、ノードＮ３１−Ｎ３３間の仮想リンク、ノードＮ３１−Ｎ３２間の仮想リンクで障害が発生したことになり、ノードＮ３１−Ｎ３３間の仮想リンク、ノードＮ３１−Ｎ３２間の仮想リンクのリンク情報が通知されないか、あるいは障害リンクとして通知される。
【０１１４】
このような場合に、上述した実施の形態の経路算出部４１によってノードＮ１１からノードＮ４１までの経路を計算した場合には、同一エリアを複数回通過しない経路が存在しないため、経路が算出されない。そこで、第５の実施の形態では、経路算出部４１によって経路計算できない場合は、ダイクストラ法に切り替えて経路の再計算を行う。
【０１１５】
図１６の場合、経路算出部４１は、ダイクストラ法によって再計算を行うことにより、ノードＮ１１，Ｎ３１，Ｎ２１，Ｎ３２，Ｎ３３，Ｎ４１のエリアＡを２回通過する経路を算出することができる。
【０１１６】
このように、経路算出部４１は、障害発生により、経路を算出することができないときはダイクストラ法によって経路を再計算する。これにより、経路算出部４１は、障害が発生したときでも経路を算出することができる。
【０１１７】
次に、第６の実施の形態を、図面を参照して詳細に説明する。経路計算において、同一エリアの通過を許可しない場合、場合によってはリンクコストが非常に大きくなる場合もある。第６の実施の形態では、同一エリアを通過する経路の許容回数を指定し、より小さいリンクコストの経路を選択するようにする。
【０１１８】
図１７は、第６の実施の形態に係るマルチエリアネットワークの経路計算を説明する図である。図１７のマルチエリアネットワークは、エリアＡ〜Ｄを有している。エリアＡはノードＮ１１〜Ｎ１４を有し、エリアＢはノードＮ２１を有し、エリアＣはノードＮ３１を有し、エリアＤはノードＮ４１を有している。各ノード間に示す数字は、リンクコストを示している。なお、ノードＮ１１−Ｎ１２間、ノードＮ１２−Ｎ１３間、ノードＮ１３−Ｎ１４間は、仮想リンクのリンクコストを示している。ノードＮ１１を始点ノード、ノードＮ１４を終点ノードとする。
【０１１９】
ノードＮ１１からノードＮ１４までに至る同一エリアを複数回通過しない経路は、ノードＮ１１，Ｎ１２，Ｎ１３，Ｎ１４を通過する経路になる。この経路は、総リンクコストが３０となり、非常にリンクコストが大きい経路となる。
【０１２０】
しかし、他のエリアＢ〜Ｄに出て行くことを許すと、エリアＡを４回通過することになるが、最短リンクコスト６のノードＮ１１，Ｎ２１，Ｎ１２，Ｎ３１，Ｎ１３，Ｎ４１，Ｎ１４の経路を得ることができる。一般的には、管理者は、同一エリアを通過する回数とリンクコストのバランスを考慮して経路を選択することになる。
【０１２１】
第６の実施の形態では、同一エリアを通過する許容回数を指定することにより、より小さいコストの経路を選択することを可能とする。許容回数は、例えば、ネットワークの管理者によって指定される。
【０１２２】
例えば、図１７に示すようなマルチエリアネットワークにおいて、エリアＡの通過を許容できる許容回数を２回とした場合には、ノードＮ１１，Ｎ１２，Ｎ１３，Ｎ４１，Ｎ１４の総リンクコスト‘１７’の経路を算出できる。あるいは、許容回数を３回とした場合には、ノードＮ１１，Ｎ１２，Ｎ３１，Ｎ１３，Ｎ４１，Ｎ１４の総リンクコスト‘９’の経路を算出できる。
【０１２３】
なお、第６の実施の形態においてもノードは、図６、図７と同様のブロックを有する。ただし、経路算出部４１の機能が異なる。経路算出部４１は、第３の実施の形態と同様の機能を有する。ただし、第３の実施の形態の経路算出部４１では、同一エリアを通過することになる新規リンクは経路計算から除外したが、第６の実施の形態に係る経路算出部４１では、除外しない。すなわち、第６の実施の形態に係る経路算出部４１は、始点ノードから終点ノードに至る経路を複数計算する。そして、各経路の通過エリアリストを参照して同じエリアを許容回数以下で通過する経路を抽出し、抽出した経路の中からリンクコストの最も小さい経路を選択する。
【０１２４】
図１８、図１９は、経路算出部のフローチャートである。
［ステップＳ６１］経路算出部４１は、始点ノードに接続されている全リンクを計算候補リストに登録する。そして、経路算出部４１は、始点ノードからリンクの終端点へ至る経路情報として、始点ノードからリンクの終端点へ至る到達距離と、始点ノードからリンクの終端点へ至る経路が通過するエリアを通過エリアリストとして記憶部４２に記憶する。すなわち、経路算出部４１は、始点ノードから伸びる各リンクのリンクコストを到達距離として記憶し、始点ノードの属するエリアのエリアＩＤを通過エリアリストとして記憶部４２に記憶する。
【０１２５】
［ステップＳ６２］経路算出部４１は、計算候補リストの中から到達距離の最も小さいリンクを抽出する。
［ステップＳ６３］経路算出部４１は、リンクを抽出できなかった場合、ステップＳ７１へ進む。経路算出部４１は、リンクを抽出できた場合、ステップＳ６４へ進む。
【０１２６】
［ステップＳ６４］経路算出部４１は、抽出したリンクの終端点のノードが終点ノードであるか否かを判断する。経路算出部４１は、終点ノードであると判断した場合、最短経路が算出されたことになる。経路算出部４１は、繰り返し計算により選ばれた複数経路の中から最適経路を選択するため、ステップＳ７２へ進む。経路算出部４１は、終点ノードでなかった場合には、ステップＳ６５へ進む。
【０１２７】
［ステップＳ６５］経路算出部４１は、抽出リンクを計算候補リストから削除する。
［ステップＳ６６］経路算出部４１は、抽出リンクの終端点のノードが有している全てのリンクに対して、順にステップＳ７０までの処理を行う。以下では、抽出リンクの終端点のノードから伸びている処理対象となっているリンクを新規リンクと呼ぶ。
【０１２８】
［ステップＳ６７］経路算出部４１は、新規リンクの新しい到達距離（抽出リンクの到達距離＋新規リストのリンクコスト）を記憶部４２に記憶する。また、経路算出部４１は、新規リンクへの経路として、抽出リンクの経路に抽出リンクの始端点のノードを追加した経路候補リストを記憶部４２に記憶する。
【０１２９】
［ステップＳ６８］経路算出部４１は、抽出リンクの始端点のノードと終端点のノードでエリアＩＤが異なる場合には、抽出リンクの通過エリアリストの最後に新規リンクの始端点のノードのエリアＩＤを追加し、同一である場合には、抽出リンクの通過エリアリストを新規リンクの通過エリアリストとして記憶部４２に記憶する。
【０１３０】
［ステップＳ６９］経路算出部４１は、新規リンクを計算候補リストに追加する。
［ステップＳ７０］経路算出部４１は、新規リンクが残っている場合には、ステップＳ６６へ進む。経路算出部４１は、新規リンクが残っていない場合には、ステップＳ６２へ進む。
【０１３１】
［ステップＳ７１］経路算出部４１は、経路候補リストに経路が存在しない場合、宛先までの経路が存在しないと判断し処理を終了する。経路算出部４１は、経路候補リストに経路が存在する場合、経路候補リストに格納されている全ての経路に対して通過エリアリストを参照し、許容回数以下で同一エリアを通過している経路を抽出する。経路算出部４１は、経路を抽出できた場合には、その中から最短リンクコストの経路を選択する。経路算出部４１は、経路を抽出できなかった場合には、終点ノードまでの所望の経路は存在しないと判断し処理を終了する。
【０１３２】
［ステップＳ７２］抽出リンクの終端点が終点ノードであることは、終点までの経路が得られたことを意味する。従って、経路算出部４１は、得られた経路が選択すべき最適な経路であるかを判断する。
【０１３３】
経路算出部４１は、抽出リンクの通過エリアリストに基づいて、同一エリアを通過したことのある経路であるか判断する。すなわち、経路算出部４１は、不連続に並んだ同じエリアＩＤが存在するか判断する。
【０１３４】
［ステップＳ７３］経路算出部４１は、抽出リンクの通過エリアリストに不連続に並んだ同じエリアＩＤが存在する場合、すなわち、抽出リンクの経路が同一エリアを一度通過した経路である場合、ステップＳ７４へ進む。経路算出部４１は、抽出リンクの通過エリアリストに不連続に並んだ同じエリアＩＤが存在しない場合、ステップＳ７５へ進む。
【０１３５】
［ステップＳ７４］経路算出部４１は、抽出リンクの経路を経路候補リストに格納する。経路算出部４１は、他の到達距離の小さい経路を探索すべく、ステップＳ６２へ進む。
［ステップＳ７５］経路算出部４１は、経路候補リストに経路が存在しない場合、宛先までの経路が存在しないと判断し処理を終了する。経路算出部４１は、経路候補リストに経路が存在する場合、経路候補リストに格納されている全ての経路に対して、通過エリアリストを参照し、許容回数以下で同一経路を通過している経路を抽出する。そして、経路算出部４１は、抽出した経路の中から最短の到達距離の経路を選択し処理を終了する。経路算出部４１は、許容回数以下で経路を抽出できなかった場合には、所望の経路は存在しないとして処理を終了する。
【０１３６】
このように、経路算出部４１は、複数の経路を記憶しながら、かつ、同一エリアに戻る経路を除外しないで経路計算を進めていく。そして、経路算出部４１は、同一エリアを許容回数以下で通過する経路を抽出し、より小さいリンクコストの経路を選択して、最適な経路を算出する。
【符号の説明】
【０１３７】
１〜５  ノード
１ａ  経路算出部
１ｂ  記憶部
【図１】
0005434511.tif 000002
【図２】
0005434511.tif 000003
【図３】
0005434511.tif 000004
【図４】
0005434511.tif 000005
【図５】
0005434511.tif 000006
【図６】
0005434511.tif 000007
【図７】
0005434511.tif 000008
【図８】
0005434511.tif 000009
【図９】
0005434511.tif 000010
【図１０】
0005434511.tif 000011
【図１１】
0005434511.tif 000012
【図１２】
0005434511.tif 000013
【図１３】
0005434511.tif 000014
【図１４】
0005434511.tif 000015
【図１５】
0005434511.tif 000016
【図１６】
0005434511.tif 000017
【図１７】
0005434511.tif 000018
【図１８】
0005434511.tif 000019
【図１９】
0005434511.tif 000020
【図２０】
0005434511.tif 000021
【図２１】
0005434511.tif 000022
【図２２】
0005434511.tif 000023