JP2010130173A - 最短経路計算装置、最短経路計算方法、およびプログラム - Google Patents

最短経路計算装置、最短経路計算方法、およびプログラム Download PDF

Info

Publication number
JP2010130173A
JP2010130173A JP2008300973A JP2008300973A JP2010130173A JP 2010130173 A JP2010130173 A JP 2010130173A JP 2008300973 A JP2008300973 A JP 2008300973A JP 2008300973 A JP2008300973 A JP 2008300973A JP 2010130173 A JP2010130173 A JP 2010130173A
Authority
JP
Japan
Prior art keywords
node
route
path
shortest
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008300973A
Other languages
English (en)
Other versions
JP4724219B2 (ja
Inventor
Koji Sugisono
幸司 杉園
Michihiro Aoki
道宏 青木
Hideaki Iwata
英明 岩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008300973A priority Critical patent/JP4724219B2/ja
Publication of JP2010130173A publication Critical patent/JP2010130173A/ja
Application granted granted Critical
Publication of JP4724219B2 publication Critical patent/JP4724219B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ノードやリンクの追加または削除があったとき、最短経路の再計算を行うことが可能な最短経路計算装置を提供する。
【解決手段】起点ノードから到達し得るノードとノード同士の接続関係との情報を含む計算対象ツリーが格納される記憶部と、ネットワークのトポロジに変化があると、上記計算対象ツリーを設定し、トポロジの変化がリンクの追加であると、追加されたリンクに接続される第1および第2のノードについて、追加されたリンクを経由する第1の経路の方がそのリンクを経由しない第2の経路よりも短ければ、第1の経路を最短経路の候補とし、トポロジの変化がリンクの削除であると、計算対象ツリー内の第3のノードと計算対象ツリーに属さない第4のノードとを結ぶリンクを見つけ、該リンクを含む経路を起点ノードから第4のノードまでの最短経路の候補とし、最短経路の候補が複数あれば、最短な候補を最短経路に決定するプロセッサとを有する。
【選択図】図1

Description

本発明は、目的地までの経路の計算方法に関し、特に、目的地までの最短経路を計算する最短経路計算装置、最短経路計算方法、およびその方法をコンピュータに実行させるためのプログラムに関する。
ネットワーク内のノードや拠点間を結ぶ道やネットワークリンクの敷設状況(トポロジ)に変化が生じ、それまで通れなかった箇所が通れるようになる、または、その反対に通れた箇所が通れなくなることが生じる場合がある。出発地から目的地までの最短経路を常に維持する必要がある場合、パスのトポロジの変化に伴い、変化後のトポロジにおける最短経路を計算する必要がある。従来の最短経路計算装置は、トポロジ情報を使用することで2拠点間を結ぶ最短経路を全て再計算していた。
計算方法については非特許文献1に記載が存在する。なお、この方式はダイクストラのアルゴリズムとして知られている。
注意すべきこととして、トポロジの変化前と変化後に最短経路に違いが生じない2ノードペアが存在するということが挙げられる。また、別の拠点間を結ぶ最短経路がトポロジ変化後に計算されているものが存在すれば、この最短経路とこれから計算しようとしている拠点間の最短経路に違いが生じない場合も多々存在する。
しかし、従来の最短経路計算装置では、最短経路の計算を敷設状況のみの情報を用いて計算を行っているため、違いが生じない場合、既に存在する最短経路情報を利用することは不可能である。このため、全ての最短経路を再計算する必要が生じ、計算時間が長くなるという問題が生じる。
通常、このような経路計算方法では、拠点間を結ぶ伝送路や道に、コストと呼ばれる数を割り当て、通過した経路に含まれるリンクのコスト和が最小になる経路を計算する。あるリンクのコストに変化が生じたとき、トポロジ変更前の最短経路情報を用いて計算する方法が非特許文献2に記載されている。
この方法を用いることで、前述の全ての最短経路を再計算することにより計算時間が長くなるという問題を解決することができる。
E. W. Dijkstra: A note on two problems in connexion with graphs. In Numerische Mathematik 1, (1959), S. 269−271. B. Xiao, et al. "Dynamic update of shortest path tree in OSPF," IEEE Parallel Architectures Algorithms and Network, pp.18−23, May 2004.
非特許文献2では、トポロジ内に存在するリンクのコスト変化が生じた場合のみを計算対象としている。
トポロジの変化にはこの他に、ノードを結ぶリンクが追加される場合、または、リンクと拠点が同時に追加される場合がある。非特許文献2に開示された技術では、トポロジ変更前に存在していなかった伝送路の追加によるトポロジ変化を計算開始のトリガーとして扱っておらず、再計算を行わない。そのため、この場合の最短経路を計算するには手順を追加する必要がある。
本発明は、上述したような技術が有する問題点を解決するためになされたものであり、ネットワークにノードやリンクの追加または削除があったとき、最短経路の再計算を行うことが可能な最短経路計算装置、最短経路計算方法、およびその方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
上記目的を達成するための本発明の最短経路計算装置は、ネットワークにおけるノード間の最短経路を計算する最短経路計算装置であって、
起点となるノードである起点ノードからノード間の上流下流の関係をたどって到達し得るノードと該ノード同士における上流下流の接続関係との情報を含む計算対象ツリーが格納される記憶部と、
前記ネットワークのトポロジに変化があると、前記計算対象ツリーを設定し、前記トポロジの変化が新たな第1のリンクの追加である場合、前記計算対象ツリー内のノードであって該第1のリンクで接続される第1および第2のノードについて、前記起点ノードから前記計算対象ツリーに沿って前記第2のノードまで到達する経路および前記第1のリンクの経路を経由して前記第1のノードまで到達する経路からなる第1の経路と、前記起点ノードから前記計算対象ツリーに沿って前記第1のノードまで到達する第2の経路との距離を比較し、前記第2の経路よりも前記第1の経路の距離が短ければ、前記第1の経路を前記起点ノードから前記第1のノードまでの最短経路の候補とし、前記トポロジの変化がリンクの削除である場合、削除されたリンクの下流側の情報を前記計算対象ツリーから削除し、該計算対象ツリー内の第3のノードと該計算対象ツリーに属さない第4のノードとを結ぶ第2のリンクを見つけると、前記起点ノードから前記計算対象ツリーに沿って前記第3のノードまで到達する経路および前記第2のリンクからなる経路を前記起点ノードから第4のノードまでの最短経路の候補とし、前記起点ノードから前記第1または第4のノードに至る経路について、前記最短経路の候補が複数あれば、複数の候補から距離が最短な候補を特定し、特定した候補を最短経路に決定するプロセッサと、
を有する構成である。
また、本発明の最短経路計算方法は、ネットワークにおけるノード間の最短経路を計算する方法であって、
前記ネットワークのトポロジに変化があると、起点となるノードである起点ノードからノード間の上流下流の関係をたどって到達し得るノードと該ノード同士における上流下流の接続関係とを含む情報を計算対象ツリーとし、
前記トポロジの変化が新たな第1のリンクの追加である場合、前記計算対象ツリー内のノードであって該第1のリンクで接続される第1および第2のノードについて、前記起点ノードから前記計算対象ツリーに沿って前記第2のノードまで到達する経路および前記第1のリンクの経路を経由して前記第1のノードまで到達する経路からなる第1の経路と、前記起点ノードから前記計算対象ツリーに沿って前記第1のノードまで到達する第2の経路との距離を比較し、前記第2の経路よりも前記第1の経路の距離が短ければ、前記第1の経路を前記起点ノードから前記第1のノードまでの最短経路の候補とし、
前記トポロジの変化がリンクの削除である場合、削除されたリンクの下流側の情報を前記計算対象ツリーから削除し、該計算対象ツリー内の第3のノードと該計算対象ツリーに属さない第4のノードとを結ぶ第2のリンクを見つけると、前記起点ノードから前記計算対象ツリーに沿って前記第3のノードまで到達する経路および前記第2のリンクからなる経路を前記起点ノードから第4のノードまでの最短経路の候補とし、
前記起点ノードから前記第1または第4のノードに至る経路について、前記最短経路の候補が複数あれば、複数の候補から距離が最短な候補を特定し、特定した候補を最短経路に決定するものである。
さらに、本発明のプログラムは、上記本発明の最短経路計算方法をコンピュータに実行させるものである。
本発明によれば、ネットワークにリンクが新規に追加され、または、ネットワークからリンクが削除されたことによりトポロジに変化が起きても、最短経路を計算することが可能となる。また、非特許文献2に開示された方法では計算できない、新たに追加されたリンクが存在する場合についても最短経路の計算が可能となる。
本実施形態の最短経路計算装置の構成を説明する。図1は本実施形態の最短経路計算装置の一構成例を示すブロック図である。
図1に示すように、本実施形態の最短経路計算装置10は、経路計算に必要な情報を記憶する記憶部12と、情報管理部141および経路計算部142を含むプロセッサ14と、外部の装置とデータを送受信するインタフェース部16とを有する。
記憶部12には、ネットワーク内のノード間の最短経路の情報である経路情報と、ネットワークにおけるノード間の物理リンクおよび仮想リンクの接続状況を示すトポロジ情報とが格納される。また、記憶部12には、最短経路を決定するまでの計算途中の情報も格納される。
インタフェース部16は、プロセッサ14による計算結果をネットワーク(不図示)を介して他の装置に通知し、ネットワークを介して他の装置から受信する、トポロジに関する情報をプロセッサ14に渡す。
プロセッサ14には、プログラムを格納するためのメモリ(不図示)が設けられている。プロセッサ14がプログラムを実行することで、情報管理部141および経路計算部142が最短経路計算装置10に仮想的に構成される。
情報管理部141は、ネットワーク状況を監視し、ネットワーク内にリンクが新規に設定される、または、ネットワーク内のリンクが削除されると、それらの変化の情報を経路計算部142に通知する。また、経路計算部142から計算結果を取得したり、インタフェース部16からトポロジに関する情報を取得したりすると、取得した計算結果や情報に基づいて記憶部12内の情報を更新する。ネットワーク状況を監視する方法の一例として、ルータ間でやり取りされるルーティングテーブルを取得する方法があるが、これ以外の方法であってもよい。
経路計算部142は、ネットワーク状況の変化の情報を情報管理部141から受け取ると、経路計算を行い、計算結果を情報管理部141に通知する。経路計算方法の詳細は、後述の最短経路計算方法の手順で説明する。
最短経路計算装置10は、上述したように、経路計算機能を備え、ネットワーク内の各ルータのルーティングテーブルを受け取り、または各ルータの経路計算を一手に引き受け、計算結果に基づいてネットワーク内の各ルータに出力先の設定を指示するコンピュータである。最短経路計算装置10は、ネットワーク内の特定のルータであってもよく、経路計算処理を専門に実行する装置であってもよい。
この最短経路計算装置を用いて、ネットワークにおける2ノード間を結ぶ最短経路を計算する例について考える。
本実施形態の最短経路計算方法は、2ノード間を結ぶ最短経路のうち、1つのノードを起点としてその他の複数のノードとの最短経路を一度に計算する方法である。ここで、本実施形態で使用する用語について説明する。
図2Aおよび図2Bは1つのノードを起点とする経路を示す情報の一例を示す図である。図2Aはツリー構造で最短経路を表した図であり、図2Bは個別に最短経路を表した図である。
「経路ツリー」は2点間を結ぶ経路のうち、起点が同じ経路の一部を示す。本実施形態では、経路の集合である経路集合をツリー構造で表す。2ノード間を結ぶ経路は起点から終点までツリーに沿って進んだ時に通過するノードとリンクからなる。図2Aに示すようなツリーが存在したとすると、ノードsが起点であり、ノードsからbまでの経路はツリーに沿ってノードsからbまでに行くまでに通過するノードであるs、a、bを用いてs→a→bのように表わされる。
ノードaおよびdのそれぞれから見てノードsは上流側であり、ノードbおよびcのそれぞれから見てノードaは上流側である。反対に、ノードsから見てノードa〜dは下流側である。
集合に含まれる経路には、共通部分を持つものも存在する。これらの情報を、図2Bに示すように、個別に持つのは情報的に冗長である。ツリー構造で表すことにより、冗長な情報をまとめて、共通な部分を管理する情報で表すことができる。図2Aに示すツリーでは、ノードsからb、そして、ノードsからcを結ぶ経路は、ノードsとaの間をともに通る。この場合、個別の経路でノードsとaの間を通ることを述べる(図2B参照)のでなく、図2Aのようなツリー構造であれば、ノードsからaの間を通る経路が存在することを示す情報でそれぞれがノードsとaの間を通ることを示すことができる。これにより、冗長な情報を持つことを防ぐことができる。なお、この例では、ツリー内においてノードs→aを結ぶリンクを最短経路の存在を示す情報として使用している。
図2A示すツリー構造の情報が記憶部12に格納される経路情報となる。図には示していないがノード間を結ぶ経路を候補経路として挙げ、そのうち最終的に最短経路となるものだけを図2Aに示すツリー構造に残して経路情報として記憶部12に記録している。
「ノードZの配下ツリー」は、ノードZを経由する経路ツリーの情報において、ノードZから下流に位置するリンクとノードを指す。ノードZ自身も配下ツリーに含まれる。図2Aの経路ツリーの例を用いると、ノードaの配下ツリーは、経路ツリーのうち、ノードa、b、cを結ぶ部分になる。
ノード間の「距離」は、ネットワークのノード間の実際の長さを意味するのではなく、経路上のリンクに振られたコストの総和を意味する。リンクコストがいずれのノード間でも同じであれば、「距離」はホップ数に比例する。
本実施形態の最短経路計算装置10が実行する最短経路計算方法の手順を説明する。図3および図4は本実施形態の最短経路計算方法の手順を示すフローチャートである。
ここでは、ノードXを起点とする最短経路集合において、最短経路ツリーS’xを計算対象とすることを考える。トポロジ変更前における、ノードXを起点とする最短経路集合の情報を最短経路ツリーSxとして、記憶部12に予め登録されているものとする。
図3に示すように、最短経路計算装置10は、最初の手順では、ネットワークを監視し(ステップ101)、リンクの削除またはリンクの追加があるか否かを調べる(ステップ102)。リンクの削除および追加がなければ、ステップ101に戻る。
計算対象ツリーS’xが通っているノードEa,Ebにネットワークトポロジに、新たに設定されたリンクL1が存在する場合について考える。ステップ102で、最短経路計算装置10は、ネットワークに新たにリンクL1が設定されていることを認識すると、次の2通りの経路についてノードEaまでの距離を計算する。1つ目の経路は、計算対象ツリーS’xにおけるノードXからノードEbまでの経路(これを経路R2とする)とノードEbからリンクL1を経由してノードEaに到達する経路とを合わせた(R2+L1)の経路である。2つ目の経路は、計算対象ツリーS’xにおけるノードXからノードEaまでの経路(これを経路R1とする)である。最短経路計算装置10は、経路(R2+L1)と経路R1とを比較し、前者の距離のほうが短ければ、前者の経路を候補経路として扱う(ステップ103)。
一方、ネットワークからリンクが削除されている場合について考える。ステップ102またはステップ104で、最短経路計算装置10は、ネットワークからリンクが削除されていることを認識すると、最短経路ツリーSxに、トポロジから削除されるノードやリンクをまたぐ上流下流の関係に対応する情報が存在するか確認する。削除されるノードやリンクが存在すれば、対応するノード間の上流下流の関係に関する情報を削除する。削除されるノードやリンクが存在しないならばそのままにする。ノードXから経路ツリーをたどって到達することのできるノードおよびノード間の上流下流の関係を含めて、これらを計算対象の最短経路ツリーS’xとして扱う(ステップ105)。
続いて、最短経路計算装置10は、計算対象ツリーS’xが通っているノードEcと計算対象ツリーS’xが通っていないノードEdとを結ぶリンクL2を検索する。検索の結果、リンクL2を見つけると、ノードXからノードEdに到達する経路として、計算対象ツリーS’xを経由してノードEcを結ぶ経路とノードEcからリンクL2を経由してノードEdまで到達する経路とを合わせた経路(これを経路Cとする)に着目する。そして、この経路Cを候補経路の1つとして扱う(ステップ106)。リンクの追加があれば、ステップ103に進む(ステップ107)。
上述のようにして、新規にリンクが追加された場合とリンクが削除された場合のいずれについても、最短経路計算装置10は、候補経路を見つけ、候補経路がなくなるまで、以下の作業が繰り返される。
候補経路が複数存在するならば(ステップ108)、最短経路計算装置10は、候補経路のうち、距離が最短なものを選び出す。選んだ時点までにわかっている経路の終点までの経路のうち、選んだ経路が最短であれば、選ばれた候補経路を、候補経路の終点までの最短経路、すなわち計算結果とする(ステップ109)。
新規にリンクが設定された場合の上記ノードEa、およびリンクが削除された場合の上記ノードEdを、以下ではノードE1と称すると、最短経路計算装置10は、計算対象ツリーS’xにおけるノードE1までの経路情報を、選んだ経路のものに変更する。具体的には、ノード間の上流下流の関係を、選んだ経路の通りに変更する(図4に示すステップ110)。なお、ノードE1は本発明の中継ノードに相当する。
ノードE1に配下ツリーが存在する場合、最短経路計算装置10は、配下ツリーに通るノードまでの距離を、ステップ109で選んだ経路と配下ツリーを経由する経路とを合わせたものに書き換える(ステップ111)。これにより、起点からノードE1までの経路の距離とノードE1からその配下ツリーを構成するノードまでの距離が変化したため、いくつかのノードではこの時点で見つかっている今までの経路よりも、配下ツリーを構成するノードを経由する経路の方が短くなる場合がある。また、ネットワークトポロジに新規追加されたリンクが、配下ツリーを構成するノード同士を結ぶ場合、配下ツリーとノードE1までの最短経路を経由する場合より、新規追加リンク経由の経路のほうが、距離が短くなる場合も生じる。このような経路を探索するために、最短経路計算装置10は、次のステップ112やステップ113の動作を行う。
ステップ112では、最短経路計算装置10は、トポロジに新規追加されたリンクのうち、ノードE1の配下ツリーを構成するノード同士を結ぶリンクがあるか探す。ノードE1の配下ツリーを構成するノード同士c1、c2を結ぶリンクL3があると、ツリーの起点のノードXからノードE1までの最短経路と配下ツリーとリンクL3とを経由して端点c1に到達する経路(経路R5とする)の距離と、ノードXからノードE1までの最短経路と配下ツリーとを経由して端点c1に到達する経路(経路R4とする)の距離とを比較する。そして、経路R5が経路R4に比べて短くなるような端点が存在すれば、経路R5を候補経路として扱う処理を行う。
ステップ113では、最短経路計算装置10は、ノードE1の配下ツリーを構成するノードを起点とし、配下ツリーを構成しないノードを終点とするリンクを探す。ノードE1の配下ツリーのノードd1を起点として配下ツリーを構成しないノードd2を終点とするリンクL4があると、ツリーの起点のノードXからノードE1までの最短経路とノードE1から端点d1までの経路とリンクL4とを経由して端点d2に到達する経路(経路R7とする)の距離と、ノードXからノードE1までの最短経路およびノードE1から端点d2までの経路を含む経路(経路R6とする)の距離とを比較する。そして、経路R7が経路R6に比べて短くなるような端点が存在すれば、経路R7を候補経路として扱う処理を行う。ステップ112、ステップ113の作業が終了すると、ステップ108に戻る。
本実施形態の最短経路計算方法の手順を、具体例を用いて説明する。ここでは、図3および図4を参照するとともに、各ステップの動作について図5から図10を用いて説明する。
図5は、トポロジ変更前に計算された、ノードXを起点とする最短経路ツリーSxを示す図である。ここでは、起点となるノードXの他に、以下の説明で代表的なノードとなるノードAからDを図に示している。なお、ノード間の最短経路を示す破線矢印には、他のノードを経由していてもよく、図に示すことを省略している。
図6は図3に示したステップ103の処理を説明するための図である。
ネットワークに新規リンクが設定されていると、ステップ103で、最短経路計算装置10は、計算対象ツリーS’xが通るノード同士を結ぶ新規追加リンクL1を探す。そして、リンクL1を見つけると、その端点となるノードGおよびノードHのそれぞれに到達する経路のうち、それまで見つかっている経路R1(X→J→G、またはX→H)と、S’xとL1を通る経路R2(X→H→G、またはX→J→G→H)とを比較する。経路R2が経路R1よりも短ければ、経路R2を候補経路として扱う。
ノードGまでの経路について着目すると、最短経路計算装置10は、経路R1(X→J→G)と経路R2(X→H→G)とを比較し、経路R2の距離が経路R1よりも短ければ、経路R2を候補経路として扱う。図6はノードGまでの経路について着目した場合を示す。ノードHまでの経路についても、ノードGと同様に行う。
図7はネットワークでリンクが削除された場合の一例を示す図である。図7には2箇所のリンクが削除されている場合を示しているが、削除されるリンクは1箇所であってもよく、3箇所以上あってもよい。図7は図3に示したステップ105の処理を示す。図8は図3に示したステップ106の処理を説明するための図であり、図9は図3に示したステップ109の処理を説明するための図である。
図7に示すように、ノードAとBを結ぶリンクA→Bと、ノードCとDを結ぶリンクC→Dがトポロジから削除されるとする。最短経路計算装置10は、最短経路ツリーSxの中において削除されたリンクA→B、C→Dをまたぐ上流下流の関係、すなわちノードAとノードBの間の接続関係とノードCとノードDの間の接続関係が存在するか確認する。この例の場合、ともに存在する。このとき、最短経路計算装置10は、最短経路ツリーSxからリンクA→BとリンクC→Dに対応する情報を削除する。この作業により、最短経路ツリーSxは、ノードXを頂点としてノードA、ノードCまで結ぶ経路ツリーと、ノードB、ノードDをそれぞれ頂点とする経路ツリーに分割される。ノードXからツリーを経由して到達することのできる、ノードXからノードA,Cまで結ぶ部分ツリーを計算対象ツリーS’xとする。
ステップ106では、最短経路計算装置10は、ステップ105で分割された計算対象ツリーS’xを構成するノードまでの経路を探索する。このアルゴリズムでは、計算対象ツリーS’x内のノードから計算対象ツリーS’x外に至る経路の終点まで1ホップ(リンクL2)で到達でき、リンクL2の始点まで、計算対象ツリーS’xを通って行く経路を探索対象とする。図8では、ノードXからノードPまでの経路X→N→Pがそのような経路に該当する。見つかった経路はノードXからノードPまでの最短経路の候補として扱う。
最短経路計算装置10は、新規にリンクが設定された場合、リンクが削除された場合のそれぞれについて、上述の処理を行った後、図3に示したステップ109で、候補経路として扱われている経路のうち、終点までの距離が最短である経路を選び出す。
リンクが削除された場合で説明すると、選んだ時点までにわかっている経路の終点までの経路のうち、選んだ経路が最短であれば、図9に示すように、最短経路計算装置10は、選んだ経路を、計算対象ツリーの起点ノードXと終点ノードPまでを結ぶ最短経路R3として扱う。続いて、図4に示したステップ110で、最短経路R3の終点ノードPにおける上流のノードに関する情報を最短経路R3における上流であるノードNに関する情報に書き換える。つまり、図8および図9から、ノードPの親ノードをノードQからノードNに書き換える。
以下では、ネットワークでリンクが削除された場合のノードPに着目して説明するが、新規にリンクが設定された場合には、ノードPをノードGに置き換えて考えればよく、その場合の詳細な説明を省略する。
経路の終点ノードPの配下ツリー上にノードが存在するならば、最短経路計算装置10は、ツリー上のノードまでの距離を、経路R3と配下ツリーを通ってツリー上のノードまで到達する経路の距離に変更する。図9に示す例では、ノードPの配下にノードSとノードTがある。配下ツリーの情報が記憶部12に存在するならば、配下ツリーから各ノードまでの距離はツリーの情報より容易に計算することが可能である。
ノードPからその配下ツリー上に存在するノードTまでの距離が2であり、計算対象ツリーS’xの起点ノードXからノードPまでの距離が5であるなら、最短経路R3と配下ツリーを経由する経路の距離は7と算出される。この距離7の値をノードXからノードTまでの距離の値とする。そして、ノードPの配下ツリーを計算対象ツリーS’xに含める。
図10は図4に示したステップ112およびステップ113の処理を説明するための図である。
ステップ112では、最短経路計算装置10は、新たにトポロジに追加されたリンクのうち、ノードPの配下ツリー上に存在するノードを結ぶものを探す。そして、そのようなリンクL3の両端(ノードS、ノードT)のうち、計算対象ツリーS’xを経由してそれらのノードに到達する経路よりも、計算対象ツリーS’xとリンクL3を経由する経路の方が距離の短くなる場合を探す。図10における例では、ノードPの配下ツリー上に存在するノードTまで到達するのに、計算対象ツリーS’x経由の経路R4(X→P→T)とリンクL3を経由する経路R5(X→P→S→T)との距離を比較する。そして、経路R5の距離が経路R4よりも短い場合を探す。もしそのような場合が存在すれば、経路R5を候補経路の1つとして扱う。
ステップ113では、最短経路計算装置10は、ノードPの配下ツリーを経由し、計算対象ツリーS’x内に存在する経路よりも距離が短い経路を探索する。このとき、配下ツリー上のノードからの距離がわかる終点ノードまでの経路を探索する。
該当する経路のうち、このアルゴリズムでは経路の終点まで1ホップ(リンクL4)で到達でき、リンクの始点まで、計算対象ツリーS’xを通って行く経路を探索対象とする。図10では、ノードPの配下ツリーのノードSを起点として配下ツリーを構成しないノードMを終点とするリンクL4があると、ツリーの起点のノードXからノードPまでの最短経路とノードPからノードSまでの経路とリンクL4とを経由してノードMに到達する経路(経路R7:経路X→P→S→M)の距離と、ノードXから計算対象ツリーS’xを経由してノードMまでの最短経路の候補(経路R6とする)の距離とを比較する。そして、経路R7が経路R6に比べて短くなるような端点が存在すれば、経路R7を候補経路として扱う処理を行う。見つかった経路R7は候補経路の1つとして扱う。
なお、図10では、経路R6をX→ノード(不図示)→Mと表しているが、経路R6はX→P→Mであってもよい。経路R6として、様々な経路が考えられ、図10では、その一例を示したにすぎない。
最短経路計算装置10は、これらステップ112およびステップ113の動作を、候補経路として扱われる経路が存在しなくなるまで繰り返す(ステップ108)。
本発明によれば、ネットワークにリンクが新規に追加され、または、ネットワークからリンクが削除されたことによりトポロジに変化が起きても、最短経路を計算することが可能となる。また、非特許文献2に開示された方法では計算できない、新たに追加されたリンクが存在する場合についても最短経路の計算が可能となる。これは新たに追加されたリンクを経由するような経路も探索対象となるためである。これにより、リンクの追加が生じたときも最短経路の計算が可能となる。
本実施形態の最短経路計算装置の一構成例を示すブロック図である。 1つのノードを起点とする経路について、ツリー構造で最短経路を表した図である。 1つのノードを起点とする経路について、個別に最短経路を表した図である。 本実施形態の最短経路計算方法の手順を示すフローチャートである。 本実施形態の最短経路計算方法の手順を示すフローチャートである。 トポロジ変更前に計算された、ノードXを起点とする最短経路ツリーSxを示す図である。 図3に示したステップ103の処理を説明するための図である。 ネットワークでリンクが削除された場合の一例を示す図である。 図3に示したステップ105およびステップ106の処理を説明するための図である。 図3に示したステップ109の処理を説明するための図である。 図4に示したステップ112およびステップ113の処理を説明するための図である。
符号の説明
10 最短経路計算装置
12 記憶部
14 プロセッサ
16 インタフェース部
141 情報管理部
142 経路計算部

Claims (9)

  1. ネットワークにおけるノード間の最短経路を計算する最短経路計算装置であって、
    起点となるノードである起点ノードからノード間の上流下流の関係をたどって到達し得るノードと該ノード同士における上流下流の接続関係との情報を含む計算対象ツリーが格納される記憶部と、
    前記ネットワークのトポロジに変化があると、前記計算対象ツリーを設定し、前記トポロジの変化が新たな第1のリンクの追加である場合、前記計算対象ツリー内のノードであって該第1のリンクで接続される第1および第2のノードについて、前記起点ノードから前記計算対象ツリーに沿って前記第2のノードまで到達する経路および前記第1のリンクの経路を経由して前記第1のノードまで到達する経路からなる第1の経路と、前記起点ノードから前記計算対象ツリーに沿って前記第1のノードまで到達する第2の経路との距離を比較し、前記第2の経路よりも前記第1の経路の距離が短ければ、前記第1の経路を前記起点ノードから前記第1のノードまでの最短経路の候補とし、前記トポロジの変化がリンクの削除である場合、削除されたリンクの下流側の情報を前記計算対象ツリーから削除し、該計算対象ツリー内の第3のノードと該計算対象ツリーに属さない第4のノードとを結ぶ第2のリンクを見つけると、前記起点ノードから前記計算対象ツリーに沿って前記第3のノードまで到達する経路および前記第2のリンクからなる経路を前記起点ノードから第4のノードまでの最短経路の候補とし、前記起点ノードから前記第1または第4のノードに至る経路について、前記最短経路の候補が複数あれば、複数の候補から距離が最短な候補を特定し、特定した候補を最短経路に決定するプロセッサと、
    を有する最短経路計算装置。
  2. 前記プロセッサは、
    前記第1または前記第4のノードである中継ノードについて、前記起点ノードとは反対側である下流に位置する経路に対応するノード間の上流下流の関係に対応する情報が存在すれば、該情報が示す経路が通るノードまでの距離を前記最短経路と該情報が示す経路を経由した経路のものに書き換え、前記中継ノードの下流に対応する上流下流の関係を前記計算対象ツリーに追加し、下流に位置するノードを前記計算対象ツリーが通過するノードとして扱う、請求項1記載の最短経路計算装置。
  3. 前記プロセッサは、
    前記トポロジに新たに追加されたリンクのうち、前記第1または前記第4のノードである中継ノードより下流に位置するノード同士を結ぶ第3のリンクがあると、該第3のリンクの端点である第5のノードおよび第6のノードについて、前記起点ノードから前記中継ノードまでの前記最短経路、該中継ノードの下流における前記第6のノードまでの経路および前記第3のリンクからなる、前記起点ノードから前記第5のノードに到達するまでの第3の経路と、前記起点ノードから前記中継ノードまでの前記最短経路および該中継ノードの下流における前記第5のノードまでの経路からなる第4の経路との距離を比較し、該第4の経路よりも前記第3の経路の距離が短ければ、前記第3の経路を前記起点ノードから前記第5のノードまでの最短経路の候補経路とし、該候補経路のうち距離が最短なものを選び出す、請求項1または2記載の最短経路計算装置。
  4. 前記プロセッサは、
    前記第1または前記第4のノードである中継ノードの下流に位置する第7のノードを起点とし、該中継ノードの下流に位置せず、最短経路が計算されていない第8のノードを終点とする第4のリンクがあると、前記起点ノードから前記中継ノードまでの前記最短経路を経由して該中継ノードの下流における前記第7のノードまでの経路および前記第4のリンクからなる、前記起点ノードから前記第8のノードに到達するまでの第5の経路と、前記起点ノードから前記計算対象ツリーを経由して前記第8のノードに到達するまでの第6の経路との距離を比較し、該第6の経路よりも前記第5の経路の距離が短ければ、前記第5の経路を前記起点ノードから前記第8のノードまでの最短経路の候補経路とし、該候補経路のうち距離が最短なものを選び出す、請求項1から3のいずれか1項記載の最短経路計算装置。
  5. ネットワークにおけるノード間の最短経路を計算する方法であって、
    前記ネットワークのトポロジに変化があると、起点となるノードである起点ノードからノード間の上流下流の関係をたどって到達し得るノードと該ノード同士における上流下流の接続関係とを含む情報を計算対象ツリーとし、
    前記トポロジの変化が新たな第1のリンクの追加である場合、前記計算対象ツリー内のノードであって該第1のリンクで接続される第1および第2のノードについて、前記起点ノードから前記計算対象ツリーに沿って前記第2のノードまで到達する経路および前記第1のリンクの経路を経由して前記第1のノードまで到達する経路からなる第1の経路と、前記起点ノードから前記計算対象ツリーに沿って前記第1のノードまで到達する第2の経路との距離を比較し、前記第2の経路よりも前記第1の経路の距離が短ければ、前記第1の経路を前記起点ノードから前記第1のノードまでの最短経路の候補とし、
    前記トポロジの変化がリンクの削除である場合、削除されたリンクの下流側の情報を前記計算対象ツリーから削除し、該計算対象ツリー内の第3のノードと該計算対象ツリーに属さない第4のノードとを結ぶ第2のリンクを見つけると、前記起点ノードから前記計算対象ツリーに沿って前記第3のノードまで到達する経路および前記第2のリンクからなる経路を前記起点ノードから第4のノードまでの最短経路の候補とし、
    前記起点ノードから前記第1または第4のノードに至る経路について、前記最短経路の候補が複数あれば、複数の候補から距離が最短な候補を特定し、特定した候補を最短経路に決定する、最短経路計算方法。
  6. 前記第1または前記第4のノードである中継ノードについて、前記起点ノードとは反対側である下流に位置する経路に対応するノード間の上流下流の関係に対応する情報が存在すれば、該情報が示す経路が通るノードまでの距離を前記最短経路と該情報が示す経路を経由した経路のものに書き換え、前記中継ノードの下流に対応する上流下流の関係を前記計算対象ツリーに追加し、下流に位置するノードを前記計算対象ツリーが通過するノードとして扱う、請求項5記載の最短経路計算方法。
  7. 前記トポロジに新たに追加されたリンクのうち、前記第1または前記第4のノードである中継ノードより下流に位置するノード同士を結ぶ第3のリンクがあると、該第3のリンクの端点である第5のノードおよび第6のノードについて、前記起点ノードから前記中継ノードまでの前記最短経路、該中継ノードの下流における前記第6のノードまでの経路および前記第3のリンクからなる、前記起点ノードから前記第5のノードに到達するまでの第3の経路と、前記起点ノードから前記中継ノードまでの前記最短経路および該中継ノードの下流における前記第5のノードまでの経路からなる第4の経路との距離を比較し、
    前記第4の経路よりも前記第3の経路の距離が短ければ、前記第3の経路を前記起点ノードから前記第5のノードまでの最短経路の候補経路とし、該候補経路のうち距離が最短なものを選び出す、請求項5または6記載の最短経路計算方法。
  8. 前記第1または前記第4のノードである中継ノードの下流に位置する第7のノードを起点とし、該中継ノードの下流に位置せず、最短経路が計算されていない第8のノードを終点とする第4のリンクがあると、前記起点ノードから前記中継ノードまでの前記最短経路を経由して該中継ノードの下流における前記第7のノードまでの経路および前記第4のリンクからなる、前記起点ノードから前記第8のノードに到達するまでの第5の経路と、前記起点ノードから前記計算対象ツリーを経由して前記第8のノードに到達するまでの第6の経路との距離を比較し、
    前記第6の経路よりも前記第5の経路の距離が短ければ、前記第5の経路を前記起点ノードから前記第8のノードまでの最短経路の候補経路とし、該候補経路のうち距離が最短なものを選び出す、請求項5から7のいずれか1項記載の最短経路計算方法。
  9. 請求項5から8のいずれかの最短経路計算方法をコンピュータに実行させるためのプログラム。
JP2008300973A 2008-11-26 2008-11-26 最短経路計算装置、最短経路計算方法、およびプログラム Expired - Fee Related JP4724219B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008300973A JP4724219B2 (ja) 2008-11-26 2008-11-26 最短経路計算装置、最短経路計算方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008300973A JP4724219B2 (ja) 2008-11-26 2008-11-26 最短経路計算装置、最短経路計算方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2010130173A true JP2010130173A (ja) 2010-06-10
JP4724219B2 JP4724219B2 (ja) 2011-07-13

Family

ID=42330264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008300973A Expired - Fee Related JP4724219B2 (ja) 2008-11-26 2008-11-26 最短経路計算装置、最短経路計算方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4724219B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347083A (zh) * 2021-05-31 2021-09-03 北京字跳网络技术有限公司 网络路径确定及切换方法、装置、设备、介质及程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005109765A1 (ja) * 2004-05-10 2005-11-17 Matsushita Electric Industrial Co., Ltd. 無線ノード装置及びマルチホップ型無線lanシステム
WO2006098723A1 (en) * 2005-03-10 2006-09-21 Thomson Licensing Hybrid mesh routing protocol
JP2007221428A (ja) * 2006-02-16 2007-08-30 Nagoya Institute Of Technology 移動端末による通信網の構造化手法
JP2007306135A (ja) * 2006-05-09 2007-11-22 Ntt Docomo Inc ネットワーク構築方法
JP2008092004A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd 離脱可否制御装置、ツリー型配信システム、ノード装置離脱制御方法、離脱可否制御プログラム及び情報処理プログラム
JP2008252498A (ja) * 2007-03-30 2008-10-16 Brother Ind Ltd ネットワークシステム、情報処理装置及び情報処理用プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005109765A1 (ja) * 2004-05-10 2005-11-17 Matsushita Electric Industrial Co., Ltd. 無線ノード装置及びマルチホップ型無線lanシステム
WO2006098723A1 (en) * 2005-03-10 2006-09-21 Thomson Licensing Hybrid mesh routing protocol
JP2008533809A (ja) * 2005-03-10 2008-08-21 トムソン ライセンシング ハイブリッド型メッシュ・ルーティング・プロトコル
JP2007221428A (ja) * 2006-02-16 2007-08-30 Nagoya Institute Of Technology 移動端末による通信網の構造化手法
JP2007306135A (ja) * 2006-05-09 2007-11-22 Ntt Docomo Inc ネットワーク構築方法
JP2008092004A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd 離脱可否制御装置、ツリー型配信システム、ノード装置離脱制御方法、離脱可否制御プログラム及び情報処理プログラム
JP2008252498A (ja) * 2007-03-30 2008-10-16 Brother Ind Ltd ネットワークシステム、情報処理装置及び情報処理用プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347083A (zh) * 2021-05-31 2021-09-03 北京字跳网络技术有限公司 网络路径确定及切换方法、装置、设备、介质及程序产品
CN113347083B (zh) * 2021-05-31 2022-09-23 北京字跳网络技术有限公司 网络路径确定及切换方法、装置、设备、介质及程序产品

Also Published As

Publication number Publication date
JP4724219B2 (ja) 2011-07-13

Similar Documents

Publication Publication Date Title
JP5391322B2 (ja) 経路計算方法、プログラムおよび計算装置
US10404576B2 (en) Constrained shortest path determination in a network
US9246794B2 (en) Label distribution and route installation in a loop-free routing topology using routing arcs
US7907596B2 (en) Valley-free shortest path method
JP2014103656A (ja) ネットワークシステム及びルーティング方法
JP2011007713A (ja) 多点対間最短経路探索方法およびシステム
CN109361596B (zh) 路由计算方法、装置及电子设备
KR20130087535A (ko) 라우팅 정보의 룩헤드 계산
US7545756B2 (en) Method and apparatus for constructing a forwarding information structure
CN102210128B (zh) 路径计算顺序决定方法以及计算装置
JPWO2006059787A1 (ja) オーバーレイリンク計算装置およびその計算方法ならびにプログラム
CN103238300A (zh) 管理网络单元的路由选择信息库中的过时路由移除
JP4536690B2 (ja) 経路計算方法及び装置及びプログラム
JP4463779B2 (ja) パス収容計算装置及びパス収容計算方法及びプログラム
JP4724219B2 (ja) 最短経路計算装置、最短経路計算方法、およびプログラム
JP7322951B2 (ja) 経路制御装置、経路制御方法、プログラム、および、ネットワークシステム
JP5756049B2 (ja) マルチキャスト経路計算方法及び装置
JP4422114B2 (ja) 故障影響度判定方法及び装置及びプログラム
JP5001996B2 (ja) 経路計算装置、経路計算方法およびプログラム
JP2012070169A (ja) 配信経路決定装置及び方法
JP6390091B2 (ja) トンネル管理装置、通信制御装置、トンネル管理方法及びトンネル管理プログラム
CN108259357A (zh) 一种路由收敛方法及装置
TW201501491A (zh) 網路系統及路由方法
JP2007074312A (ja) 迂回経路計算装置及びプログラム及び迂回経路計算サーバ及びルータ及び迂回経路計算方法及びシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110408

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees