説明

経路計算装置、データ転送装置、経路計算方法、データ転送方法およびプログラム

【課題】新規追加ネットワークを構成するノードを起点とする最短経路を、平均的な計算時間を高速にして、計算する方法を提供する。
【解決手段】計算部12aは、所定ノードの2つのノードの全ての組合せにつき、2つのノード間の経路のコスト最小経路を計算する。計算部12bは、追加リンクと接続する接続ノードを特定し、接続ノード単位で、接続ノードと接続する追加リンクと、計算部12aの計算結果のうちの当該接続ノードと終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノードとの間のコスト最小経路として算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ノードと、ノード間を接続するリンクと、により構成されるネットワークにおいて、起点ノードから終点ノードまでたどるべき経路を計算する技術に関する。より詳細には、本発明は、新たにリンクとノードが追加されてネットワークのトポロジが変化したときに、それまで使用されていた起点終点間の経路を利用して、トポロジが変化したネットワークでの起点ノードから終点ノードまでのコスト最小経路を再度計算する技術に関する。
【背景技術】
【0002】
分岐の存在しない通路に相当するリンクと、分岐点に相当するノードと、から構成されるネットワークにおいて、新たにノードとリンクが追加され、それまで通れなかった箇所が通れるようになる場合が存在する。コンピュータネットワークにおいては、ルータやリンクの増設が前述の場合に相当する。
【0003】
また、ネットワークにおいては、リンクに優先度(コスト)を持たせ、2ノード間の経路として、2ノード間の経路のうち経路内のリンクのコストの和が最も小さくなる経路を計算することが多々ある。通常、通したいリンクのコストは小さい値に設定される。そのようなネットワークで、経路内のリンクのコスト和が最小となる経路を計算することは重要な問題である。経路内のリンクのコスト和が最小となる経路をコスト最小経路という。
【0004】
出発地(起点)から目的地(終点)までのコスト最小経路を常に維持する必要がある場合、ネットワークにおけるノードとリンクの敷設状況(トポロジ)やリンクのコストの変化に伴い、変化後のネットワークについて2ノード間を結ぶコスト最小経路を再計算する必要がある。
【0005】
従来のコスト最小経路計算方法では、ネットワーク状況が変化した場合、2ノード間を結ぶコスト最小経路を、変化後のネットワークを示すネットワーク情報(トポロジの情報)のみを用いて、再計算する。
【0006】
コスト最小経路計算方法の代表例は、非特許文献1に記載されている。なお、非特許文献1に記載された方法は、ダイクストラのアルゴリズムとして知られている。
【0007】
トポロジが変化するネットワークでの2ノード間の経路うち、トポロジの変化の前後でコスト最小経路に違いが生じない2ノード間の経路が存在することがある。このような状況を、コスト最小経路の再計算をする前に検知すると、トポロジの変化の前後でコスト最小経路に違いが生じない経路の計算を省くことが可能となる。これにより、計算時間の短縮が可能となる。
【0008】
しかし、このような方法は、ネットワーク状況変化前のコスト最小経路を示す情報が必要となるため、変化後のネットワークを示すネットワーク情報のみを使用する従来の方法では実現が困難である。
【0009】
この問題を解決する方法として、あるリンクのコストに変化が生じた時に、ネットワーク状況の変化前の最短経路の情報を用いて、変化後の最短経路を計算する方法が、非特許文献2に記載されている。この方法を用いることで、上述のすべてのコスト最短経路を再計算することにより計算時間が長くなるという問題を解決することができる。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】E.W. Dijkstra: A note on two problems in connexion with graphs. In Numerische Mathematik, 1(1959), S. 269-271.
【非特許文献2】B. Xiao, et al. "Dynamic update of shortest path tree in OSPF," IEEE Parallel Architectures Algorithms and Network, pp. 18-23, May 2004.
【発明の概要】
【発明が解決しようとする課題】
【0011】
非特許文献2に記載の基本的なコスト最小経路の確定動作は、ダイクストラのアルゴリズムと同じである。このアルゴリズムでは、リンクのコストが変わった後のコスト最小経路を、ネットワーク状況変化前のコスト最小経路の情報を用いて計算する。非特許文献2に記載のコスト最小経路の計算方法を、図7を参照して説明する。
【0012】
図7では、B→C、D→Cの経路が既に確定している、つまり、B→C、D→Cの経路では、ネットワーク状況変化によってコスト最小経路に変化がなかったとする。以下、この状況でA→Cのコスト最小経路を求める場合を説明する。
【0013】
まず、ネットワーク状況変化の影響があった経路の計算を開始する。
【0014】
この計算により、A→Bへの経路が確定すると、B→Cの経路は既に確定しているため、A→B→CをA→Cの経路(コスト最小経路)の候補とする。ここで、Bを通らず、よりコストが小さいA→Cの経路が存在する可能性があるため、A→B→CをA→Cの経路の確定経路ではなく候補とする。
【0015】
経路計算を続けていき、A→Dの経路が確定すると、D→Cの経路は既に確定しているため、A→D→CをA→Cの経路の候補とする。
【0016】
続いて、A→B→CとA→D→Cのコストを比較し、コストが小さい方をA→Cの経路の候補として残す。ここで、BまたはDを通らず、よりコストが小さいA→Cの経路が存在する可能性があるため、コストが小さい方をA→Cの経路の確定経路ではなく候補とする。
【0017】
同様に、他にA→Cの経路の候補が見つかるたびに、コストが小さい方をA→Cの経路の候補として残す。ネットワーク全体の経路計算が終了した時点で、残っているA→Cの経路の候補がA→Cの経路として確定する。
【0018】
このアルゴリズムの場合、A→B→C、A→D→Cのように、A→Cの経路の候補が何個見つかるか、経路計算を始める前にはわからないため、計算時間の予測が困難である。よって、安定した計算時間を予測することが重要な場合、使いづらいアルゴリズムとなっている。
【0019】
本発明は、新規にネットワークを追加したときのみに動作環境を絞り、新規追加ネットワークを構成するノードを起点とする最短経路を、平均的な計算時間を高速にして、計算する方法を提供することを目的とする。
【課題を解決するための手段】
【0020】
本発明の経路計算装置は、n(nは2以上の整数)個の所定ノードとm(mはnよりも小さく1以上の整数)個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第1ネットワークを表す第1情報を受け付け、その後、1個の追加ノードとs(sは1以上n以下の整数)個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第2ネットワークを表す第2情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第3情報と、を受け付ける受付手段と、前記第1情報を参照して、前記所定ノードのうちの2つのノードの全ての組合せおよび同一ノードからなる2つのノードの全ての組合せについて、当該2つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第1計算手段と、前記第2情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第1計算手段の計算結果のうちの当該接続ノードと前記第3情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第2計算手段と、を含む。
【0021】
本発明の経路計算方法は、経路計算装置での経路計算方法であって、n(nは2以上の整数)個の所定ノードとm(mはnよりも小さく1以上の整数)個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第1ネットワークを表す第1情報を受け付け、その後、1個の追加ノードとs(sは1以上n以下の整数)個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第2ネットワークを表す第2情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第3情報と、を受け付ける受付ステップと、前記第1情報を参照して、前記所定ノードのうちの2つのノードの全ての組合せおよび同一ノードからなる2つのノードの全ての組合せについて、当該2つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第1計算ステップと、前記第2情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第1計算ステップでの計算結果のうちの当該接続ノードと前記第3情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第2計算ステップと、を含む。
【0022】
本発明のプログラムは、コンピュータに、n(nは2以上の整数)個の所定ノードとm(mはnよりも小さく1以上の整数)個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第1ネットワークを表す第1情報を受け付け、その後、1個の追加ノードとs(sは1以上n以下の整数)個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第2ネットワークを表す第2情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第3情報と、を受け付ける受付手順と、前記第1情報を参照して、前記所定ノードのうちの2つのノードの全ての組合せおよび同一ノードからなる2つのノードの全ての組合せについて、当該2つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第1計算手順と、前記第2情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第1計算手順での計算結果のうちの当該接続ノードと前記第3情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第2計算手順と、を実行させる。
【発明の効果】
【0023】
本発明によれば、所定ノードのうち追加リンクと接続する接続ノードが特定され、接続ノード単位で、接続ノードと接続する追加リンクと、第1計算手段の計算結果のうちの当該接続ノードと終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路が、追加ノードと終点ノードとの間のコスト最小経路として算出される。
【0024】
このため、追加ノードについてのコスト最小経路を計算する際に、既存ネットワークである第1ネットワークについて第1計算手段にて計算されたコスト最小経路の情報を利用できるため、追加ノードについてのコスト最小経路の計算量を少なくすることが可能になる。
【0025】
また、起点ノードである追加ノードと終点ノードとのコスト最小経路の候補の最大数が接続ノード数となる。このため、コスト最小経路の計算時間の予測が容易となり、また、平均的な計算時間を短くすることが可能になる。
【図面の簡単な説明】
【0026】
【図1】本発明の一実施形態の経路計算装置1の機能ブロック図である。
【図2】本実施形態の動作を説明するためのフローチャートである。
【図3】新規追加ネットワークと既存ネットワークとの一例を示した図である。
【図4】追加ノードから接続ノードまでのコスト最小経路の計算結果を示した図である。
【図5】追加ノードから特定ノードまでのコスト最小経路の計算結果を示した図である。
【図6】本発明の一実施形態のデータ転送装置2の機能ブロック図である。
【図7】非特許文献2に記載の技術を説明するための図である。
【発明を実施するための形態】
【0027】
以下、本発明の実施形態について説明する。
【0028】
図1は、本発明の一実施形態の経路計算装置1の機能ブロック図である。
【0029】
経路計算装置1は、ノード間がリンクで接続され、それぞれのリンクには計算の際に使用されるコストと呼ばれる優先度が存在するネットワークについて、ノード間のコスト最小経路を計算する。なお、コストは、数値にて示され、優先度が高いほど小さい値が付与される。
【0030】
新たに別ネットワーク(新規追加ネットワーク)が、既存ネットワークに追加される場合、経路計算装置1は、新規追加ネットワークの追加が起こる前に、既存ネットワークを構成するノード間のコスト最小経路を予め計算して用意する。
【0031】
経路計算装置1が使用するコスト最小経路の計算方法としては、ダイクストラのアルゴリズムを用いた方法など、既存のコスト最小経路を計算するアルゴリズムが用いられる。
【0032】
経路計算装置1が起点から終点までのコスト最小経路を計算する方法としては2種類存在し、それらは、候補となる経路数に違いが生じる。
【0033】
第1の方法は、経路計算装置1が、経路の起点に隣接(接続)するノード(以下「隣接ノード」または「接続ノード」と称する)ごとに、起点から接続ノードを経由して終点へ通じる経路のコスト最小経路を求め、それらの全てを候補経路とする方法である。第1の方法では、経路計算装置1は、これらの候補経路のうち、コストが最小となる候補経路を、コスト最小経路の計算結果として出力する。
【0034】
第2の方法は、経路計算装置1が、接続ノードごとに求められる、接続ノードを経由して起点から終点に通じる経路のコスト最小経路のうち、起点と接続ノードとの間のリンクが起点とその接続ノードとの間のコスト最小経路となる経路のみを、候補経路とする方法である。第2の方法では、経路計算装置1は、これらの候補経路のうち、コストが最小となる候補経路を、コスト最小経路の計算結果として出力する。
【0035】
起点から起点とは隣接しないノードまでのコスト最小経路を計算する場合、候補経路の数の少なさから、第1の方法より第2の方法のほうが高速化を実現できると予想される。よって、本実施形態では、コスト最小経路を計算する手法として、第2の方法が用いられる。なお、コスト最小経路を計算する手法として、第1の方法が用いられてもよい。
【0036】
図1において、経路計算装置1は、トポロジ情報取得部11と、経路計算部12と、インタフェース13および14と、を含む。経路計算部12は、計算部12aおよび12bを含む。
【0037】
トポロジ情報取得部11は、受付手段の一例である。
【0038】
トポロジ情報取得部11は、既存ネットワークを表す既存ネットワーク情報(既存トポロジ情報)を受け付ける。既存ネットワークは、第1ネットワークの一例である。既存ネットワークは、n(nは2以上の整数)個の所定ノードと、m(mはnよりも小さく1以上の整数)個の所定リンクと、を有する。所定リンクは、所定ノード間を接続する。所定リンクには、優先度を示すコストが付与されている。
【0039】
トポロジ情報取得部11は、既存ネットワーク情報を受け付けた後、新規追加ネットワークを表す新規追加ネットワーク情報(新規追加トポロジ情報)と、所定ノードのうち経路計算の対象となる経路の終点ノードを表す終点ノード情報と、を受け付ける。
【0040】
新規追加ネットワークは、第2ネットワークの一例である。新規追加ネットワークは、1個の追加ノードと、s(sは1以上n以下の整数)個の追加リンクと、を有する。追加リンクは、追加ノードと所定ノードのいずれかを接続する。追加リンクには、コストが付与されている。終点ノード情報は、第3情報の一例である。
【0041】
本実施形態では、トポロジ情報取得部11は、既存ネットワーク情報と、新規追加ネットワーク情報と、終点ノード情報とを、例えば、入力部(不図示)または外部装置(不図示)から取得することによって受け付ける。なお、トポロジ情報取得部11は、例えば、外部装置(外部機能)から出力された既存ネットワーク情報、新規追加ネットワーク情報、および、終点ノード情報を、受け付けてもよい。
【0042】
経路計算部12は、トポロジ情報取得部11が持っている既存ネットワーク情報、新規追加ネットワーク情報および終点ノード情報を利用して経路計算を行う。
【0043】
計算部12aは、第1計算手段の一例である。
【0044】
計算部12aは、既存ネットワーク情報を参照して、所定ノードのうちの2つのノードの全ての組合せおよび所定ノードのうちの同一ノードからなる2つのノードの全ての組合せについて、2つのノード単位で、2つのノード間の経路のうち経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する。
【0045】
なお、例えば、所定ノードとしてノードa1、a2およびa3が存在する場合、所定ノードのうちの2つのノードの全ての組合せは、(a1、a2)と(a1、a3)と(a2、a3)の組合せとなり、所定ノードのうちの同一ノードからなる2つのノードの全ての組合せは、(a1、a1)と(a2、a2)と(a3、a3)となる。
【0046】
なお、所定ノードのうちの同一ノードからなる2つのノードの全ての組合せは、換言すると、所定ノードのうちの1つのノードと当該ノードと同一のノードとからなる2つのノードの組合せにおいて、組合せ内の1つのノードを所定ノードのそれぞれとした場合の全ての組合せとなる。
【0047】
計算部12aは、例えば、ダイクストラのアルゴリズム等の既存のコスト最小経路を計算するアルゴリズムを使用して、全ての組合せについてコスト最小経路を計算する。計算部12aは、コスト最小経路の計算結果を保持する。
【0048】
計算部12bは、第2計算手段の一例である。
【0049】
計算部12bは、新規追加ネットワーク情報を参照して、所定ノードのうち追加リンクと接続されるノードである接続ノードを特定する。
【0050】
計算部12bは、接続ノードを特定すると、接続ノード単位で、その接続ノードと接続する追加リンクと、計算部12aの計算結果のうちの当該接続ノードと終点ノード情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノードとの間のコスト最小経路として算出する。計算部12bは、コスト最小経路の計算結果を保持してもよい。
【0051】
本実施形態では、終点ノード情報が表す終点ノードが接続ノードのいずれかである場合、計算部12bは、以下のような動作を行う。
【0052】
まず、計算部12bは、接続ノードを特定し、その後、接続ノードごとに、接続ノードと接続する追加リンクと、計算部12aの計算結果のうちの当該接続ノードと終点ノード情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路を計算する。
【0053】
続いて、計算部12bは、計算された経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノード(接続ノード)との間のコスト最小経路として算出する。
【0054】
また、本実施形態では、終点ノード情報が表す終点ノードが、所定ノードのうち接続ノード以外のノードである特定ノードである場合、計算部12bは、以下のような動作を行う。
【0055】
まず、計算部12bは、接続ノードごとに、追加ノードと接続ノードとの間のコスト最小経路を算出する。
【0056】
続いて、計算部12bは、接続ノードのうち、追加ノードとの間のコスト最小経路が新規追加ネットワーク内のみに存在する接続ノードを、経由ノードとして特定する。
【0057】
続いて、計算部12bは、経由ノードごとに、経由ノードと接続する追加リンクと、計算部12aの計算結果のうちの当該経由ノードと特定ノードとの間のコスト最小経路と、を合わせた経路を計算する。
【0058】
続いて、計算部12bは、計算された経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノード(特定ノード)との間のコスト最小経路として算出する。
【0059】
ここで、経路計算装置1が有する処理機能を説明する。
【0060】
計算部12aは、トポロジ情報取得部11が受け付けた既存ネットワーク情報を参照して、既存ネットワークにおける全ての経路のコスト最小経路を計算して計算結果を記録する処理(以下「処理S1」と称する)を実行可能である。
【0061】
なお、既存ネットワークにおける全ての経路は、既存ネットワーク内の所定ノードのうちの2つのノードの全ての組合せについての経路と、既存ネットワーク内の同一所定ノードからなる2つのノードの全ての組合せについての経路と、を含む。
【0062】
また、処理S1では、起点と終点との間の経路ごとに、その経路のコスト最小経路と、そのコスト最小経路が有するコストとが、計算され、その計算結果が計算部12aに記憶される。
【0063】
計算部12bは、処理S1で計算された各コスト最小経路から、計算対象の経路の起点と計算対象の終点とを指定することで特定されるノードペア間のコスト最小経路と、そのコスト最小経路が有するコストと、を検索する処理(以下「処理S2」と称する)を実行可能である。
【0064】
計算部12bは、追加リンクのみを介して追加ノードと接続する既存ネットワーク内の接続ノードと、追加ノードと接続ノードとの間の追加リンクと、その追加リンクが有するコストとを、1つずつ検索する処理(以下「処理S3」と称する)を実行可能である。
【0065】
トポロジ情報取得部11とインタフェース13および14は、入出力処理(以下「処理S4」と称する)を実行可能である。
【0066】
経路計算装置1は、コンピュータにて実現されてもよい。この場合、コンピュータは、コンピュータにて読み取り可能なCD−ROM(Compact Disk Read Only Memory)のような記録媒体に記録されたプログラムを読込み実行することによって、トポロジ情報取得部11および経路計算部12として機能する。記録媒体は、CD−ROMに限らず適宜変更可能である。なお、トポロジ情報取得部11および経路計算部12は、ロジック回路にて構成されてもよい。
【0067】
図2は、本実施形態の動作を説明するためのフローチャートである。以下、図2を参照して、本実施形態の動作を説明する。
【0068】
経路計算装置1は、単一ノード(追加ノード)とリンク(追加リンク)から構成されリンクには優先度を示すコストが割り振られている新規追加ネットワークを、既存ネットワークに追加したときに、新規追加ネットワークを構成する追加ノードを起点とするコスト最小経路を計算する。
【0069】
経路計算装置1は、新規追加ネットワークを構成する追加ノードを起点とし、起点以外の指定されたノード(既存ネットワーク内のノード)を終点とするコスト最小経路を、以下のように計算する。
【0070】
計算部12aは、トポロジ情報取得部11が、既存ネットワーク情報を受け付けると(ステップA1)、ネットワーク追加前に処理S1を実行することによって、既存ネットワークを構成するノード間のコスト最小経路を計算し、その計算結果を記録して、処理S2の検索ができる状態にする(ステップA2)。
【0071】
新規追加ネットワークが既存ネットワークに追加されると、つまり、既存ネットワーク情報が入力された後に、新規追加ネットワーク情報と終点ノード情報とが入力されると(ステップA3)、計算部12bは、処理S3を実行することによって、既存ネットワーク内の接続ノードを1つずつ検索し、接続ノードごとに、追加ノードと接続ノードとの間の追加リンクと、その追加リンクが有するコストと、を検索する(ステップA4)。
【0072】
計算部12bは、ステップA4を終了すると、接続ノードごとに、処理S3にて得られた追加ノードから接続ノードまでのリンクと、その接続ノードを起点とし終点ノード情報に示された終点ノードを終点として処理S2を実行することによって得られる接続ノードから終点ノードまでのノードペア間のコスト最小経路と、を合わせた経路のうち、コストが最小となる経路を、起点終点間を結ぶコスト最小経路とする。
【0073】
なお、図2に示した例では、処理S1実行後の動作が、追加ノードを起点とし接続ノードを終点とするコスト最小経路を計算するステップS101と、追加ノードを起点とし接続ノード以外のノードである特定ノードを終点とするコスト最小経路を計算するステップS102にわかれている。
【0074】
本実施形態では、経路計算装置1は、追加ノードを起点とし接続ノードを終点とするコスト最小経路を計算する際にはステップS101を実行し、追加ノードを起点とし特定ノードを終点とするコスト最小経路を計算する際にはステップS101とステップS102を実行する。
【0075】
ステップS101では、計算部12bは、追加ノードから処理S3で検索された接続ノードまでのコスト最小経路の計算を行う。
【0076】
本実施形態では、計算部12bは、接続ノードごとに、起点である追加ノードからその接続ノードまでのリンクと、その接続ノードを起点とし計算対象の経路の終点ノードとしての接続ノードを終点として処理S2を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部12bは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする。計算部12bは、上記コスト最小経路計算を、計算対象の経路の終点ノードとしての接続ノードを他の接続ノードに切り替えることによって、計算対象の経路を切り替えながら、各計算対象の経路のコスト最小経路を算出する(ステップA5)。
【0077】
計算部12bは、終点ノード情報が示す終点ノードが接続ノードである場合(ステップA6)、ステップA5での計算結果のうち、追加ノードと終点ノードとして指定された接続ノードとの間のコスト最小経路を出力する(ステップA7)。
【0078】
計算部12bは、終点ノード情報が示す終点ノードが特定ノードである場合(ステップA6)、ステップA5での計算済みのコスト最小経路のうち、起点と終点を接続する追加リンクのみを通過する経路を検索し、検索された経路の終点を経由ノードとして記録し、かつ、経由ノードごとに、追加ノードとその経由ノードとを接続する追加リンクのコストを記録する処理S5を実行する(ステップA8)。
【0079】
計算部12bは、処理S5を実行すると、処理S5で記録された経由ノードを1つずつ検索し、経由ノードごとに、起点となる追加ノードから経由ノードまでのリンクと、その経由ノードを起点とし計算対象の経路の終点ノードを終点とすることで処理S2を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部12bは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする(ステップA9)。
【0080】
ここで、本実施形態の動作を、計算対象の経路の終点が接続ノードである場合と、計算対象の経路の終点が特定ノードである場合と、に分けて再度説明する。
【0081】
まず、計算対象の経路が、既存ネットワークの接続ノードを終点とする場合の計算方法について説明する。
【0082】
この場合、計算部12bは、接続ノードごとに、起点である追加ノードからその接続ノードまでのリンクと、その接続ノードを起点とし計算対象の経路の終点に位置する接続ノードを終点として処理S2を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部12bは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする。
【0083】
次に、計算対象の経路が、経路の起点に隣接しないノードつまり特定ノートを終点とする場合の計算方法について説明する。
【0084】
まず、計算部12bは、起点である追加ノードに隣接する接続ノードごとに、追加ノードから接続ノードまでのコスト最小経路を計算する。この計算方法は前述のステップA5のとおりである。
【0085】
計算終了後、計算部12bは、計算されたコスト最小経路のうち、起点と接続ノードを結ぶ追加リンクのみ通過する経路を検索し、検索された経路の終点を経由ノードとして記録する。
【0086】
続いて、計算部12bは、経由ノードごとに、起点となる追加ノードから経由ノードまでのリンクと、その経由リンクを起点とし計算対象の経路の終点ノードを終点とすることで処理S2を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部12bは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする。
【0087】
次に、一例を挙げて、経路計算装置1の動作を説明する。
【0088】
今回説明する実施形態は、追加ノードを起点としその他のノードを終点とする経路を全部計算する例である。
【0089】
図3(A)は、新規追加ネットワークAと、既存ネットワークBと、を示した図である。
【0090】
既存ネットワークBは、ノード(所定ノード)a〜fと、リンク(所定リンク)a−bと、リンク(所定リンク)a−dと、リンク(所定リンク)b−cと、リンク(所定リンク)b−eと、リンク(所定リンク)c−fと、リンク(所定リンク)d−eと、リンク(所定リンク)e−fと、から構成される。リンクa−bのコストは「1」である。リンクa−dのコストは「2」である。リンクb−cのコストは「3」である。リンクb−eのコストは「2」である。リンクc−fのコストは「1」である。リンクd−eのコストは「3」である。リンクe−fのコストは「1」である。
【0091】
新規追加ネットワークAは、ノード(追加ノード)αと、リンク(追加リンク)α−aと、リンク(追加リンク)α−bと、リンク(追加リンク)α−cと、から構成される。リンクα−aのコストは「1」である。リンクα−bのコストは「3」である。リンクα−cのコストは「1」である。
【0092】
既存ネットワークB内のノードa〜fのうちのノードa〜cが、ノードαと接続される。このため、計算部12bは、処理S3を実行することによって、ノードa〜cを接続ノードとして特定し記録する。
【0093】
図3(a)〜(c)は、計算部12aが処理S1を実行することによって計算される、既存ネットワークBを構成するノードを起点とするコスト最小経路のうち、今回の例で使用する、ノードa、b、cを起点とするコスト最小経路群を示した図である。
【0094】
なお、図3において、リンクの横に示した数字は、そのリンクのコストを示す。本実施形態では、計算対象となるノード間を通る経路のうち、経路に含まれるリンクのコストの総和が最小のコスト最小経路を算出する。
【0095】
なお、処理S2において、起点がノードa、終点がノードfであるような経路を出力するとき、経路a→b→e→fとコスト「4」が合わせて出力される。
【0096】
図4は、追加ノードαを起点とし、ノードαに隣接する接続ノードa、b、cのそれぞれを終点とするコスト最小経路を計算する状況を説明するための図である。
【0097】
ノードαを起点としたコスト最小経路の計算結果は、図4での太線の矢印で記載される。このうち、ノードαからノードaへのコスト最小経路と、ノードαからノードcへのコスト最小経路は、新規追加ネットワークAのみを通過する。よって、前述のように処理S4を用いてノードa、cが経由ノードとして記録される。
【0098】
これに対し、ノードαからノードbへのコスト最小経路は、既存ネットワークBを構成するリンクa→b上を通過する。このため、ノードbは、処理S4にて経由ノードとして記録されない。
【0099】
図5は、ノードαから、既存ネットワークB内のノードの中から図4でノードαからのコスト最小経路を計算したノードa、bおよびcを除いたノードd〜fまでの、コスト最小経路の計算を説明するための図である。
【0100】
計算方法を以下に示す。
【0101】
まず、計算部12bは、経路の起点(ノードα)から処理S4で記録された経由ノードまでのコスト最小経路と、処理S4で記録された経由ノードから経路の終点ノードまでのコスト最小経路(このコスト最小経路は、既に処理S1で計算されている)を合わせた経路を、処理S4で記録された経由ノードごとに計算する。
【0102】
そして、計算部12bは、起点終点が同じ経路のうち、コストが最も小さい経路を、その起点終点間のコスト最小経路とする。
【0103】
例として、起点αから終点dまでのコスト最小経路を計算するときについて説明する。
【0104】
図5を用いた説明において、処理S4でノードa、cが経由ノードとして記録されている。
【0105】
ノードαからノードdまでのコスト最小経路を計算するための候補経路として、経路α→a→dと経路α→c→fが存在する。
【0106】
経由するノードa、cは、処理S4で経由ノードとして記録されたノードであり、経路の前半部分(ノードαからノードaへの経路と、ノードαからノードcへの経路)は、処理S3で検索され、経路の後半部分(ノードaからノードdまでの経路と、ノードcからノードdまでの経路)は、処理S1で検索されたものである。
【0107】
これらの経路のコストは、経路α→a→dが「3」で、経路α→c→dが「6」である。よって、計算部12bは、前者の経路をα→d間のコスト最小経路として特定する。
【0108】
その他のノード(ノードe、f)についても、図5(a)に記載の経路とコストになる。
【0109】
これらを全終点ノードに対しおこなうと、ノードαを起点とするコスト最小経路は、図5(b)に示されるような経路となる。
【0110】
本実施形態によれば、所定ノードのうち追加リンクと接続する接続ノードが特定され、接続ノード単位で、接続ノードと接続する追加リンクと、計算部12aの計算結果のうちの当該接続ノードと終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路が、追加ノードと終点ノードとの間のコスト最小経路として算出される。
【0111】
このため、追加ノードについてのコスト最小経路を計算する際に、既存ネットワークについて計算部12aにて計算されたコスト最小経路の情報を利用できるため、追加ノードについてのコスト最小経路の計算量を少なくすることが可能になる。
【0112】
また、起点ノードである追加ノードと終点ノードとのコスト最小経路の候補の最大数が接続ノード数となる。このため、コスト最小経路の計算時間の予測が容易となり、また、非特許文献2に記載の方法に比べて、平均的な計算時間を短くすることが可能になる。
【0113】
また、本実施形態では、計算部12cは、終点ノードが特定ノードである場合、接続ノードのうち、追加ノードとの間のコスト最小経路が新規追加ネットワーク内のみに存在する接続ノードを、経由ノードとして特定し、経由ノード単位で、経由ノードと接続する追加リンクと、計算部12aの計算結果のうちの経由ノードと特定ノードとの間のコスト最小経路と、を合わせた経路を計算し、計算された経路のうちのコスト最小経路を、追加ノードと終点ノードとの間のコスト最小経路として出力する。
【0114】
このため、終点ノードが特定ノードである場合、起点ノードである追加ノードと終点ノードとのコスト最小経路の候補の数が少なくすることが可能になる。このため、平均的な計算時間をさらに短くすることが可能になる。
【0115】
また、本実施形態によれば、最悪の計算時間(終点ノードとして、既存ネットワーク内の全てのノードが選択された場合の計算時間)が接続ノード数×既存ネットワーク内のノード数に抑えることができる。また、経路計算装置1をコンピュータ等で実現する際、走査処理が高速な配列を用いて実現できるため、平均的な計算時間も高速になることが期待される。
【0116】
図6は、図1に示した経路計算装置1と通信するデータ転送装置2の機能ブロック図である。なお、図6において、図1に示したものと同一機能を有するものには同一符号を付してある。
【0117】
データ転送装置2は、例えば、新規追加ネットワーク内の追加ノードまたは既存ネットワーク内の所定ノードであり、図1に示した経路計算装置1から経路計算結果、もしくは、経路計算結果を加工した、データの転送先を表すデータを受け取り、経路計算装置1からの経路計算結果またはデータに従って、新規追加ネットワークまたは既存ネットワークから受け取ったデータを、適切な出力先に転送する。
【0118】
データ転送装置2は、経路情報制御部21と、データ転送部22と、インタフェース23および24と、を含む。
【0119】
経路情報制御部21は、設定手段の一例である。
【0120】
経路情報制御部21は、経路計算装置1内の経路計算部12により出力された経路情報(経路計算結果)を受け取り、経路情報に基づいて、データの転送先を設定する。本実施形態では、経路情報制御部21は、経路情報を、データの宛先に対応する次の転送先を示す転送先情報に変換する。経路情報制御部21は、データ転送部22が転送先情報を参照できるように、転送先情報を管理する。
【0121】
データ転送部22は、転送手段の一例である。
【0122】
データ転送部22は、経路情報制御部21が設定した次のデータの転送先情報から、入力データの宛先に対応する次のデータの転送先を検索し、検索結果へとデータを転送する。
【0123】
インタフェース23および24は、外部の機能部ならびに外部装置とデータの入出力を行う。
【0124】
データ転送装置2は、コンピュータにて実現されてもよい。この場合、コンピュータは、コンピュータにて読み取り可能なCD−ROMのような記録媒体に記録されたプログラムを読込み実行することによって、経路情報制御部21およびデータ転送部22として機能する。記録媒体は、CD−ROMに限らず適宜変更可能である。なお、経路情報制御部21およびデータ転送部22は、ロジック回路にて構成されてもよい。
【0125】
なお、経路計算装置1内の経路計算部12は、データ転送装置2に含まれてもよいし、ネットワークやコネクタなどを介してデータ転送装置2とつながる外部装置に存在してもよい。
【0126】
本実施形態では、データ転送装置2は、経路計算装置1にて計算されたコスト最小経路を用いて、データの転送先を設定する。経路計算装置1でのコスト最小経路の計算時間が短いため、データ転送装置2は、的確な転送先を早期に設定することが可能になる。
【0127】
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【0128】
1 経路計算装置
11 トポロジ情報取得部
12 経路計算部
12a〜12b 計算部
13、14 インタフェース
2 データ転送装置
21 経路情報制御部
22 データ転送部
23〜24 インタフェース

【特許請求の範囲】
【請求項1】
n(nは2以上の整数)個の所定ノードとm(mはnよりも小さく1以上の整数)個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第1ネットワークを表す第1情報を受け付け、その後、1個の追加ノードとs(sは1以上n以下の整数)個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第2ネットワークを表す第2情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第3情報と、を受け付ける受付手段と、
前記第1情報を参照して、前記所定ノードのうちの2つのノードの全ての組合せおよび同一ノードからなる2つのノードの全ての組合せについて、当該2つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第1計算手段と、
前記第2情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第1計算手段の計算結果のうちの当該接続ノードと前記第3情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第2計算手段と、を含む経路計算装置。
【請求項2】
請求項1に記載の経路計算装置において、
前記第2計算手段は、前記第3情報が表す終点ノードが、前記所定ノードのうち前記接続ノード以外のノードである特定ノードである場合、前記接続ノード単位で、前記追加ノードと当該接続ノードとの間のコスト最小経路を算出し、前記接続ノードのうち、前記追加ノードとの間のコスト最小経路が前記第2ネットワーク内のみに存在する接続ノードを、経由ノードとして特定し、前記経由ノード単位で、当該経由ノードと接続する追加リンクと、前記第1計算手段の計算結果のうちの当該経由ノードと前記特定ノードとの間のコスト最小経路と、を合わせた経路を計算し、当該計算された経路のうちのコスト最小経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として出力する、経路計算装置。
【請求項3】
請求項1または2に記載の経路計算装置と接続され、前記第1ネットワークまたは前記第2ネットワークから受け取ったデータを当該データの宛先に転送する、前記所定ノードまたは前記追加ノードであるデータ転送装置であって、
前記経路計算装置から経路計算結果を受け取り、当該経路計算結果に基づいて、前記データの転送先を設定する設定手段と、
前記設定された転送先に前記データを転送する転送手段と、を含むデータ転送装置。
【請求項4】
経路計算装置での経路計算方法であって、
n(nは2以上の整数)個の所定ノードとm(mはnよりも小さく1以上の整数)個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第1ネットワークを表す第1情報を受け付け、その後、1個の追加ノードとs(sは1以上n以下の整数)個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第2ネットワークを表す第2情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第3情報と、を受け付ける受付ステップと、
前記第1情報を参照して、前記所定ノードのうちの2つのノードの全ての組合せおよび同一ノードからなる2つのノードの全ての組合せについて、当該2つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第1計算ステップと、
前記第2情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第1計算ステップでの計算結果のうちの当該接続ノードと前記第3情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第2計算ステップと、を含む経路計算方法。
【請求項5】
請求項4に記載の経路計算方法において、
前記第2計算ステップでは、前記第3情報が表す終点ノードが、前記所定ノードのうち前記接続ノード以外のノードである特定ノードである場合、前記接続ノード単位で、前記追加ノードと当該接続ノードとの間のコスト最小経路を算出し、前記接続ノードのうち、前記追加ノードとの間のコスト最小経路が前記第2ネットワーク内のみに存在する接続ノードを、経由ノードとして特定し、前記経由ノード単位で、当該経由ノードと接続する追加リンクと、前記第1計算ステップでの計算結果のうちの当該経由ノードと前記特定ノードとの間のコスト最小経路と、を合わせた経路を計算し、当該計算された経路のうちのコスト最小経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として出力する、経路計算方法。
【請求項6】
請求項1または2に記載の経路計算装置と接続され、前記第1ネットワークまたは前記第2ネットワークから受け取ったデータを当該データの宛先に転送する、前記所定ノードまたは前記追加ノードであるデータ転送装置でのデータ転送方法であって、
前記経路計算装置から経路計算結果を受け取り、当該経路計算結果に基づいて、前記データの転送先を設定する設定ステップと、
前記設定された転送先に前記データを転送する転送ステップと、を含むデータ転送方法。
【請求項7】
コンピュータに、
n(nは2以上の整数)個の所定ノードとm(mはnよりも小さく1以上の整数)個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第1ネットワークを表す第1情報を受け付け、その後、1個の追加ノードとs(sは1以上n以下の整数)個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第2ネットワークを表す第2情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第3情報と、を受け付ける受付手順と、
前記第1情報を参照して、前記所定ノードのうちの2つのノードの全ての組合せおよび同一ノードからなる2つのノードの全ての組合せについて、当該2つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第1計算手順と、
前記第2情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第1計算手順での計算結果のうちの当該接続ノードと前記第3情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第2計算手順と、を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate