(57)【要約】【課題】計算済み経路情報を効率的に用いて、コンピュータネットワークにおける経路計算時間の短縮を図ること。【解決手段】本発明は、複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置１００であって、経路計算時に、確定した最短経路の終点ノードを起点とする計算済み経路情報が存在する場合、確定した最短経路の起点ノードから終点のノードまでのホップ数が所定の閾値以下であるか否か等の判定条件により、計算済み経路情報を用いて経路計算をするか否かを使い分ける制御手段１１０を備えることを特徴とする。【選択図】図１
2011103628.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置であって、
前記コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、前記起点ノード以外のノードを起点として１以上の他の前記ノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段と、
前記記憶手段に記憶されたトポロジ情報を用いて、前記起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、
前記記憶手段を参照し、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在するか否かを判定し、
前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在する場合は、前記確定した最短経路の起点ノードから終点のノードまでのホップ数が所定の閾値以下であるか否か判定し、
前記ホップ数が所定の閾値以下である場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いて、前記確定した最短経路の終点のノードから先の経路計算を行い、
前記ホップ数が所定の閾値以下でない場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いずに、前記確定した最短経路の終点のノードから先の経路計算を行う制御手段と、
を備えることを特徴とする経路計算装置。
【請求項２】
複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置であって、
前記コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、前記起点ノード以外のノードを起点として１以上の他の前記ノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段と、
前記記憶手段に記憶されたトポロジ情報を用いて、前記起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、
前記記憶手段を参照し、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在するか否かを判定し、
前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在する場合は、当該経路計算装置が計算すべき前記起点ノードから複数の他のノードまでの最短経路の数に対する、その時点で確定している最短経路の数の割合が所定の閾値以下であるか否か判定し、
前記割合が所定の閾値以下である場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いて、前記確定した最短経路の終点のノードから先の経路計算を行い、
前記割合が所定の閾値以下でない場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いずに、前記確定した最短経路の終点のノードから先の経路計算を行う制御手段と、
を備えることを特徴とする経路計算装置。
【請求項３】
複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置であって、
前記コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、前記起点ノード以外のノードを起点として１以上の他の前記ノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段と、
前記記憶手段に記憶されたトポロジ情報を用いて、前記起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、
前記記憶手段を参照し、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在するか否かを判定し、
前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在する場合は、前記確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下であるか否か判定し、
前記確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下である場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いて、前記確定した最短経路の終点のノードから先の経路計算を行い、
前記確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下でない場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いずに、前記確定した最短経路の終点のノードから先の経路計算を行う制御手段と、
を備えることを特徴とする経路計算装置。
【請求項４】
複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置による経路計算方法であって、
前記経路計算装置は、前記コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、前記起点ノード以外のノードを起点として１以上の他の前記ノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段、および、制御手段を備えており、
前記制御手段は、
前記記憶手段に記憶されたトポロジ情報を用いて、前記起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、
前記記憶手段を参照し、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在するか否かを判定し、
前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在する場合は、前記確定した最短経路の起点ノードから終点のノードまでのホップ数が所定の閾値以下であるか否か判定し、
前記ホップ数が所定の閾値以下である場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いて、前記確定した最短経路の終点のノードから先の経路計算を行い、
前記ホップ数が所定の閾値以下でない場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いずに、前記確定した最短経路の終点のノードから先の経路計算を行う
ことを特徴とする経路計算方法。
【請求項５】
複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置による経路計算方法であって、
前記経路計算装置は、前記コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、前記起点ノード以外のノードを起点として１以上の他の前記ノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段、および、制御手段を備えており、
前記制御手段は、
前記記憶手段に記憶されたトポロジ情報を用いて、前記起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、
前記記憶手段を参照し、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在するか否かを判定し、
前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在する場合は、当該経路計算装置が計算すべき前記起点ノードから複数の他のノードまでの最短経路の数に対する、その時点で確定している最短経路の数の割合が所定の閾値以下であるか否か判定し、
前記割合が所定の閾値以下である場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いて、前記確定した最短経路の終点のノードから先の経路計算を行い、
前記割合が所定の閾値以下でない場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いずに、前記確定した最短経路の終点のノードから先の経路計算を行う
ことを特徴とする経路計算方法。
【請求項６】
複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置による経路計算方法であって、
前記経路計算装置は、前記コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、前記起点ノード以外のノードを起点として１以上の他の前記ノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段、および、制御手段を備えており、
前記制御手段は、
前記記憶手段に記憶されたトポロジ情報を用いて、前記起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、
前記記憶手段を参照し、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在するか否かを判定し、
前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報が存在する場合は、前記確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下であるか否か判定し、
前記確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下である場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いて、前記確定した最短経路の終点のノードから先の経路計算を行い、
前記確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下でない場合は、前記確定した最短経路の終点のノードを起点とする前記計算済み経路情報を用いずに、前記確定した最短経路の終点のノードから先の経路計算を行う
ことを特徴とする経路計算方法。
【請求項７】
請求項１から請求項３のいずれか１項に記載の経路計算装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークにおけるデータの転送経路の計算に関する。
【背景技術】
【０００２】
複数のノード（ルータなどのデータ転送装置）からなるコンピュータネットワークにおいて、データを宛先に転送するために、各ノードでは、データの出力先を計算する処理が必要となる。例えば、ある２つのノード間の最短経路を計算する場合、最短経路の候補を複数算出し、そのうちコスト（時間、通信負荷など）が最小のものを最短経路として決定する方法が、従来から一般に用いられている。
【０００３】
また、多くの経路計算アルゴリズムでは、起点ノード（以下、単に「起点」ともいう。）が同じである経路、もしくは終点ノード（以下、単に「終点」ともいう。）が同じである経路を、１回のプロセスで計算する。これは、ある終点までの経路情報が、プロセス内で以前に計算された経路情報を用いて計算されるためである。このことを踏まえて、経路計算アルゴリズムのプロセスについて以下に述べる。
【０００４】
経路計算アルゴリズムにおけるプロセスの特徴として、計算の手順中に、計算結果としてすでに確定した経路を使用して、別のノードまでの経路を探索するステップが存在することが挙げられる。この探索される経路は、起点からある終点までの計算結果として確定した経路と、その確定経路の終点から先の経路と、から構成される。また、その後半の経路は、２種類存在する。
【０００５】
１つは、確定経路の終点と隣接ノードを結ぶリンクである。この経路を後半の経路とする探索対象の経路を、以下、確定経路に対する「リンク追加型経路」と称する。もう１つは、確定経路の終点を起点とし、計算がすでに済んでいる経路である。この経路を後半の経路とする探索対象の経路を、以下、確定経路に対する「既計算経路追加型経路」と称する。
【０００６】
例えば、非特許文献１に記載されているダイクストラ法は、リンク追加型経路を探索するアルゴリズムである。しかし、リンク追加型経路を探索する場合、ある終点までの経路を確定するために、多くの複数の経路についてコストが最小のものを決定するための比較を行わなければならず、リンク追加型経路のみを用いた経路計算方法では効率の悪い場合がある。
【０００７】
一方、非特許文献２に記載されている経路計算法は、リンク追加型経路と既計算経路追加型経路とを併用して探索するアルゴリズムである。このアルゴリズムでは、既計算経路追加型経路を計算する際に、別プロセスで計算された経路情報を参照して経路計算を行う。既計算経路追加型経路を用いて計算をすれば、最短経路の候補の数を減らすことができ、その分、計算時間を短縮できることが多い。このアルゴリズムでは、確定経路の終点を起点とする経路がすでに計算されていることが発見されるたびに、既計算経路追加型経路を用いた計算が行われる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】E. W. DIJKSTRA, ”A Note on Two Problems in Connexion with Graphs,” Numerische Mathematik 1,P.269-271, 1959.
【非特許文献２】杉園幸司、他４名、“機能分散型トランスポートネットワーキングにおける経路計算の高速化に関する検討”，２００９年電子情報通信学会総合大会，p.132、２００９年３月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献２のアルゴリズムでは、計算対象の経路のうち、まだ計算されていない経路が多数存在する場合は、既計算経路追加型経路を用いた探索をすると計算時間の短縮につながる。しかし、経路計算がほぼ終了している場合は、既計算経路追加型経路を用いた探索をすると、計算時間が逆に増大してしまうことがある。
【００１０】
例えば、図７（ａ）に示すように、起点ノードｓから他のすべてのノードまでの最短経路を求める場合を想定する。ここで、ノードａから他のノードまでの最短経路はすでに計算済みであるものとする。そうすると、サーチ処理（既計算経路追加型経路による計算。つまり、計算済み経路情報を用いた処理）を行うほうが、計算時間が長くなる。なぜなら、図７（ａ）では、起点ノードｓから左下の６つのノードまでの各最短経路を計算する際、サーチ処理は計算済みの経路も一緒に計算するため、ダイクストラ計算経路（ダイクストラ法で求める計算経路）として求めたほうが計算時間を短縮できるためである。
【００１１】
この場合、図７（ｂ）に示すように、起点ノードｓから他のすべてのノードまでの最短経路を求めるには、ノードａからの計算済み経路情報を用いるよりも、ノードａから先もダイクストラ法で計算をしたほうが、計算時間が短くて済む。
【００１２】
したがって、リンク追加型経路と既計算経路追加型経路との効率的な併用手法が望まれていた。
【００１３】
そこで、本発明は、前記問題を解決するためになされたものであり、計算済み経路情報を効率的に用いて、コンピュータネットワークにおける経路計算時間の短縮を図ることを課題とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するために、本発明は、複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置であって、コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、起点ノード以外のノードを起点として１以上の他のノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段と、記憶手段に記憶されたトポロジ情報を用いて、起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、記憶手段を参照し、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在するか否かを判定し、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在する場合は、確定した最短経路の起点ノードから終点のノードまでのホップ数が所定の閾値以下であるか否か判定し、ホップ数が所定の閾値以下である場合は、確定した最短経路の終点のノードを起点とする計算済み経路情報を用いて、確定した最短経路の終点のノードから先の経路計算を行い、ホップ数が所定の閾値以下でない場合は、確定した最短経路の終点のノードを起点とする計算済み経路情報を用いずに、確定した最短経路の終点のノードから先の経路計算を行う制御手段と、を備えることを特徴とする。
【００１５】
かかる発明によれば、制御手段が、経路計算時に、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在する場合に、確定した最短経路の起点ノードから終点のノードまでのホップ数が所定の閾値以下であるか否かによって、計算済み経路情報を用いる場合と用いない場合とを適切に使い分けることができ、コンピュータネットワークにおける経路計算時間の短縮を図ることができる。
【００１６】
また、本発明は、複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置であって、コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、起点ノード以外のノードを起点として１以上の他のノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段と、記憶手段に記憶されたトポロジ情報を用いて、起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、記憶手段を参照し、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在するか否かを判定し、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在する場合は、当該経路計算装置が計算すべき起点ノードから複数の他のノードまでの最短経路の数に対する、その時点で確定している最短経路の数の割合が所定の閾値以下であるか否か判定し、割合が所定の閾値以下である場合は、確定した最短経路の終点のノードを起点とする計算済み経路情報を用いて、確定した最短経路の終点のノードから先の経路計算を行い、割合が所定の閾値以下でない場合は、確定した最短経路の終点のノードを起点とする計算済み経路情報を用いずに、確定した最短経路の終点のノードから先の経路計算を行う制御手段と、を備えることを特徴とする。
【００１７】
かかる発明によれば、制御手段が、経路計算時に、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在する場合に、当該経路計算装置が計算すべき起点ノードから複数の他のノードまでの最短経路の数に対する、その時点で確定している最短経路の数の割合が所定の閾値以下であるか否かによって、計算済み経路情報を用いる場合と用いない場合とを適切に使い分けることができ、コンピュータネットワークにおける経路計算時間の短縮を図ることができる。
【００１８】
また、本発明は、複数のノードからなるコンピュータネットワークについて、起点ノードから複数の他のノードまでの最短経路を計算する経路計算装置であって、コンピュータネットワークにおける各ノードの接続に関する情報であるトポロジ情報と、起点ノード以外のノードを起点として１以上の他のノードまでについてのすでに計算された最短経路の情報である計算済み経路情報と、を記憶する記憶手段と、記憶手段に記憶されたトポロジ情報を用いて、起点ノードから他のノードのうちのいずれか１つのノードまでの最短経路を計算により確定し、記憶手段を参照し、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在するか否かを判定し、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在する場合は、確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下であるか否か判定し、確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下である場合は、確定した最短経路の終点のノードを起点とする計算済み経路情報を用いて、確定した最短経路の終点のノードから先の経路計算を行い、確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下でない場合は、確定した最短経路の終点のノードを起点とする計算済み経路情報を用いずに、確定した最短経路の終点のノードから先の経路計算を行う制御手段と、を備えることを特徴とする。
【００１９】
かかる発明によれば、制御手段が、経路計算時に、確定した最短経路の終点のノードを起点とする計算済み経路情報が存在する場合に、確定経路の終点のノードを起点とする計算済み経路の数が所定の閾値以下であるか否かによって、計算済み経路情報を用いる場合と用いない場合とを適切に使い分けることができ、コンピュータネットワークにおける経路計算時間の短縮を図ることができる。
【００２０】
また、本発明は、前記した経路計算装置としてコンピュータを機能させるためのプログラムである。かかる発明によれば、このプログラムをインストールされたコンピュータに、このプログラムに基づいた各機能を実現させることができる。
【発明の効果】
【００２１】
本発明によれば、計算済み経路情報を効率的に用いて、コンピュータネットワークにおける経路計算時間の短縮を図ることができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態の経路計算装置の構成図である。
【図２】本実施形態のデータ転送装置の構成図である。
【図３】（ａ）はリンク追加型経路の説明図であり、（ｂ）は既計算経路追加型経路の説明図である。
【図４】本実施形態における経路計算の処理の流れを示すフローチャートである。
【図５】リンク追加型経路と既計算経路追加型経路の使い分けの一例を示す図である。
【図６】リンク追加型経路と既計算経路追加型経路の使い分けの他の例を示す図である。
【図７】（ａ）は、ダイクストラ法とともに計算済み経路情報を利用した場合の経路計算のイメージを示す図であり、（ｂ）は、ダイクストラ法のみを用いた場合の経路計算のイメージを示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明を実施するための形態（以下、「実施形態」という。）について説明する。まず、経路計算装置１００の構成について説明する。経路計算装置１００は、ダイクストラ法に基づき、また、リンク追加型経路と既計算経路追加型経路とを併用して、ある起点ノードから他のすべてのノードまでの最短経路を計算する装置である。なお、本実施形態では、起点ノードの符号を「ｓ」と表す。
【００２４】
経路計算装置１００は、コンピュータ装置であり、制御手段１１０、記憶手段１２０、通信手段１３０、入力手段１４０および出力手段１５０を備えて構成される。
【００２５】
制御手段１１０は、例えばＣＰＵ（Central Processing Unit）とメモリによって構成され、トポロジ情報取得部１１１および経路計算部１１２を備えている。トポロジ情報取得部１１１は、経路計算時に、記憶手段１２０から、計算対象となるコンピュータネットワークの最新のトポロジ情報（各ノードの接続状況、各ノード間のコストなど）を取得し、経路計算部１１２に引き渡す。経路計算部１１２は、経路計算時に、トポロジ情報取得部１１１から受け取った最新のトポロジ情報や、自装置（経路計算装置１００自身）または他装置によって予め計算され記憶手段１２０に記憶された計算済み経路情報などを取得して、経路計算を行う。
【００２６】
記憶手段１２０は、ＨＤＤ（Hard Disk Drive）などから構成され、計算対象となるコンピュータネットワークの最新のトポロジ情報や、計算済み経路情報など、経路計算に必要な各種情報を記憶する。
【００２７】
通信手段１３０は、後記するデータ転送装置２００と通信するための通信インタフェースや通信ポートから構成される。
【００２８】
入力手段１４０は、経路計算装置１００を操作する管理者が情報を入力する手段（例えばキーボードやマウスなど）であり、また、データ転送装置２００からのデータ入力の手段である。
【００２９】
出力手段１５０は、情報を出力する手段（例えば液晶表示機やスピーカなど）であり、また、データ転送装置２００へのデータ出力の手段である。
【００３０】
次に、データ転送装置２００の構成について説明する。データ転送装置２００は、経路計算装置１００から受け取った経路情報を記憶し、その経路情報に基づいて、他のデータ転送装置から受信したデータ（パケットなど）を別のデータ転送装置に転送する装置である。
【００３１】
データ転送装置２００は、ルータなどのコンピュータ装置であり、制御手段２１０、記憶手段２２０、通信手段２３０、入力手段２４０および出力手段２５０を備えて構成される。
【００３２】
制御手段２１０は、例えばＣＰＵとメモリによって構成され、経路情報制御部２１１およびデータ転送部２１２を備えている。経路情報制御部２１１は、記憶手段２２０に記憶された経路情報に基づいて、データを宛先に送信するための次の転送先を示す転送先情報を作成し、データ転送部２１２が参照できるように記憶手段２２０に記憶させ、管理する。データ転送部２１２は、転送すべきデータの入力があった場合、記憶手段２２０に記憶されている転送先情報を参照し、そのデータを次のデータ転送装置に転送する。
【００３３】
記憶手段２２０は、ＨＤＤなどから構成され、経路計算装置１００から受信した経路情報、経路情報制御部２１１が作成した転送先情報など、データ転送に必要な各種情報を記憶する。
【００３４】
通信手段２３０は、経路計算装置１００や他のデータ転送装置と通信するための通信インタフェースや通信ポートから構成される。
【００３５】
入力手段２４０は、データ転送装置２００の管理者が情報を入力する手段（例えばキーボードやマウスなど）であり、また、経路計算装置１００や他のデータ転送装置２００からのデータ入力の手段である。
【００３６】
出力手段２５０は、情報を出力する手段（例えば液晶表示機やスピーカなど）であり、また、経路計算装置１００や他のデータ転送装置２００へのデータ出力の手段である。
【００３７】
次に、本実施形態における経路計算を実施するためのアルゴリズムについて説明する。ここでのアルゴリズムによる計算（以下、単に「アルゴリズム」ともいう。）では、起点が同じである複数の経路を計算するか、あるいは、終点が同じである複数の経路を計算する。そして、経路計算の結果は記録され、他のノードが起点となる経路、もしくは他のノードが終点となる経路を計算するときに、このアルゴリズムによって使用される。
【００３８】
このアルゴリズムには、計算の手順中に、計算結果としてすでに確定した経路を使用して、別のノードまでの経路を探索するステップが存在する。ここで探索される経路としては、前記したリンク追加型経路と既計算経路追加型経路がある。
【００３９】
図３（ａ）に示すように、起点ノードｓからノードａまでは計算結果として確定した経路（確定経路）で、ノードａからノードｂまでは２ノード間を結ぶリンクであり、これらを組み合わせた経路がリンク追加型経路である。一方、図３（ｂ）の（ｂ１）に示すように、起点ノードｓからノードａまでは確定経路で、ノードａからノードｂまでは別の計算プロセスですでに計算された計算結果（計算済み経路）であり、これらを組み合わせた経路が既計算経路追加型経路である。また、図３（ｂ）の（ｂ２）に示すように、起点ノードｓからノードａまでは確定経路で、ノードａからノードｂまでは計算済み経路で、ノードｂからノードｄまでは２ノード間を結ぶリンクであり、これらを組み合わせた経路も既計算経路追加型経路である。
【００４０】
そして、本実施形態のアルゴリズムでは、起点からある終点までの経路の確定時に、その終点を起点とする計算済み経路がある場合に、原則としてその計算済み経路を用いて既計算経路追加型経路を探索する動作を行うが、一定条件下ではその計算済み経路を用いずにリンク追加型経路を探索する。これにより、リンク追加型経路と既計算経路追加型経路との効率的な併用を実現し、経路計算時間の短縮を図ることができる。
【００４１】
次に、図４を参照して、このアルゴリズムによる経路計算の処理の流れについて説明する（適宜図１参照）。ここでは、起点が同じである複数の経路計算を行う場合について説明する。
【００４２】
まず、経路計算部１１２は、アルゴリズムの手順に従い経路を確定する（ステップＳ１）。つまり、このアルゴリズムでは、ダイクストラ法によって、起点から他のノードまでの最短経路を、起点から近いほうから１つずつ確定していく。その際、後記するステップＳ５またはステップＳ６の後では、既計算経路追加型経路やリンク追加型経路も含めて、起点からあるノードまでの複数の経路のうちコストが最小の経路を、最短経路として確定する。ここでは、ステップＳ１において、起点からある１つのノード（以下、「確定経路の終点」という。）までの経路を確定したものとする。
【００４３】
次に、経路計算部１１２は、すべての経路（起点から他のすべてのノードまでの最短経路）を確定したか否かを判定し（ステップＳ２）、Ｙｅｓであれば処理を終了し、ＮｏであればステップＳ３に進む。
【００４４】
ステップＳ３において、経路計算部１１２は、確定経路の終点を起点とする計算済み経路が存在するか否かを判定し、ＹｅｓであればステップＳ４に進み、ＮｏであればステップＳ６に進む。なお、このステップＳ３の判定では、記憶手段１２０に記憶された計算済み経路を管理するテーブルを参照することで実行される。
【００４５】
ステップＳ４において、経路計算部１１２は、所定の設定条件に合致するか否かを判定し、ＹｅｓであればステップＳ５に進み、ＮｏであればステップＳ６に進む。ここでは、確定経路の終点を起点とする計算済み経路が存在している場合であっても、その計算済み経路を用いると逆に計算時間が増大してしまいそうなときには、その計算済み経路を計算に用いないほうがよいので、その計算済み経路の使い分けのための判定を行う。
【００４６】
所定の設定条件としては、例えば、次の３つが挙げられる。
（条件１）確定経路の起点ノードから終点ノードまでのホップ数が閾値以下である。
（条件２）計算すべき最短経路の数に対する、その時点で確定している最短経路の数の割合が閾値以下である。
（条件３）確定経路の終点のノードを起点とする計算済み経路の数が閾値以下である。
なお、条件１と条件２の具体例については後記する。
【００４７】
ステップＳ５において、経路計算部１１２は、確定経路における既計算経路追加型経路を探索し、ステップＳ１に戻る。
【００４８】
また、ステップＳ６において、経路計算部１１２は、確定経路に対するリンク追加型経路を探索し、ステップＳ１に戻る。
【００４９】
このように、このステップＳ１〜Ｓ６の処理を繰り返すことにより、リンク追加型経路と既計算経路追加型経路とを適切に使い分けることにより、コンピュータネットワークにおける経路計算時間の短縮を図ることができる。
【００５０】
次に、リンク追加型経路と既計算経路追加型経路とを使い分けるための判定（図４のステップＳ４に相当）の具体例について説明する。
【００５１】
まず、図５を参照して、前記した（条件１）で判定する場合について説明する。ここでは、確定経路のホップ数が「２」以下であれば設定条件に合致（図４のステップＳ４→Ｙｅｓ）するものとする。
【００５２】
図５（ａ）に示すように、起点ノードｓからノードａまでの経路がアルゴリズムの手順に従い確定し、また、ノードａを起点とする経路が計算済み（図４のステップＳ３→Ｙｅｓ）であるとする。このとき、確定経路のホップ数が「２」であり、設定条件に合致する（図４のステップＳ４→Ｙｅｓ）ため、確定経路に対する既計算経路追加型経路を探索する（図４のステップＳ５）。
【００５３】
一方、図５（ｂ）に示すように、起点ノードｓからノードｂまでの経路がアルゴリズムの手順に従い確定し、また、ノードｂを起点とする経路が計算済み（図４のステップＳ３→Ｙｅｓ）であるとする。このとき、確定経路のホップ数が「３」であり、設定条件に合致しない（図４のステップＳ４→Ｎｏ）ため、確定経路に対するリンク追加型経路を探索する（図４のステップＳ６）。
【００５４】
つまり、確定経路のホップ数がある程度小さい場合は、計算済み経路を用いて経路計算を行ったほうが計算効率のよい可能性が高い。しかし、確定経路のホップ数がある程度大きい場合は、計算済み経路を用いて経路計算を行うと逆に計算効率の悪い可能性が高い（図７参照）。そのため、確定経路のホップ数によって、既計算経路追加型経路とリンク追加型経路を使い分けるのである。
【００５５】
次に、図６を参照して、前記した（条件２）で判定する場合について説明する。ここでは、計算すべき最短経路の数に対する、その時点で確定している最短経路の数（確定経路数）の割合が６０％以下であれば設定条件に合致（図４のステップＳ４→Ｙｅｓ）するものとする。また、説明を簡単にするため、計算すべき最短経路の数を「１０」とする。つまり、起点から、図示されている１０個のノードまでの経路を計算する。
【００５６】
図６（ａ）に示すように、起点ノードｓからノードａまでの経路がアルゴリズムの手順に従い確定し、また、ノードａを起点とする経路が計算済み（図４のステップＳ３→Ｙｅｓ）であるとする。このとき、計算すべき最短経路の数は「１０」であり、確定経路数が「６」であるため、計算すべき最短経路の数に対する確定経路数の割合は６０％となり、設定条件に合致する（図４のステップＳ４→Ｙｅｓ）ため、確定経路に対する既計算経路追加型経路を探索する（図４のステップＳ５）。
【００５７】
一方、図６（ｂ）に示すように、起点ノードｓからノードｂまでの経路がアルゴリズムの手順に従い確定し、また、ノードｂを起点とする経路が計算済み（図４のステップＳ３→Ｙｅｓ）であるとする。このとき、計算すべき最短経路の数は「１０」であり、確定経路数が「７」であるため、計算すべき最短経路の数に対する確定経路数の割合は７０％となり、設定条件に合致しない（図４のステップＳ４→Ｙｅｓ）ため、確定経路に対するリンク追加型経路を探索する（図４のステップＳ５）。
【００５８】
つまり、計算すべき最短経路の数に対する確定経路数の割合がある程度小さい場合は、計算済み経路を用いて経路計算を行ったほうが計算効率のよい可能性が高い。しかし、計算すべき最短経路の数に対する確定経路数の割合がある程度大きい場合は、計算済み経路を用いて経路計算を行うと逆に計算効率の悪い可能性が高い（図７参照）。そのため、計算すべき最短経路の数に対する確定経路数の割合によって、既計算経路追加型経路とリンク追加型経路を使い分けるのである。
【００５９】
このように、本実施形態の経路計算装置１００によれば、既計算経路追加型経路とリンク追加型経路とを適切に使い分けることにより、コンピュータネットワークにおける経路計算時間の短縮を図ることができる。
【００６０】
また、経路計算装置１００を構成するコンピュータに実行させるためのプログラムを作成し、コンピュータにインストールすれば、コンピュータは、そのプログラムに基づいた各機能を実現することができる。
【００６１】
また、データ転送装置２００は、経路計算装置１００が計算した経路情報を受け取り、その経路情報に基づいて、データを最短経路で転送することができる。
【００６２】
以上で本実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。例えば、経路計算装置１００とデータ転送装置２００は同一筐体の装置としてもよい。
【００６３】
また、前記した条件１〜３は、単独でなくても、ＡＮＤやＯＲによって組み合わせて使用してもよい。また、条件１〜３以外の条件を用いてもよい。
また、制御手段１１０，２１０は、ＣＰＵとメモリで実現する以外に、ＡＳＩＣ（Application Specific Integrated Circuit）等の集積回路等によって実現してもよい。
【００６４】
また、記憶手段１２０，２２０は、ＨＤＤで実現する以外に、ＳＳＤ（Solid State Drive）や各種メモリ等によって実現してもよい。
その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００６５】
１００  経路計算装置
１１０  制御手段
１１１  トポロジ情報取得部
１１２  経路計算部
１２０  記憶手段
１３０  通信手段
１４０  入力手段
１５０  出力手段
２００  データ転送装置
２１０  制御手段
２１１  経路情報制御部
２１２  データ転送部
２２０  記憶手段
２３０  通信手段
２４０  入力手段
２５０  出力手段
【図１】
2011103628.tif 000003
【図２】
2011103628.tif 000004
【図３】
2011103628.tif 000005
【図４】
2011103628.tif 000006
【図５】
2011103628.tif 000007
【図６】
2011103628.tif 000008
【図７】
2011103628.tif 000009