(57)【特許請求の範囲】
【請求項１】
所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出するスイッチ抽出部と、
前記通信システムを通過する複数のフローの中から、前記第２のスイッチの次に前記第１のスイッチへ転送されるフローを抽出するフロー抽出部と、
前記複数のスイッチのうちの前記フローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、前記第２のスイッチから該第４のスイッチまでの経路を、前記所定のトポロジーから第１のスイッチを除いたものに基づいて決定する経路決定部と、
前記フローに対するもとの経路における前記第３のスイッチから前記第２のスイッチまでの経路と前記経路決定部によって決定された経路とを接続して前記フローに対する新たな経路を生成する経路生成部と、
前記新たな経路に重複して含まれるスイッチがある場合には、前記新たな経路における冗長な経路を解消する冗長性解消部と、を備え、
前記冗長性解消部は、前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消する、
ことを特徴とする通信システムの制御装置。
【請求項２】
前記所定のトポロジーから前記第１のスイッチを除いたものに基づいて、前記第２のスイッチを根（ルート）とする最短パスツリーを計算するパスツリー計算部をさらに備え、
前記経路決定部は、第２のスイッチから第４のスイッチまでの経路を前記最短パスツリーに基づいて決定することを特徴とする、請求項１に記載の制御装置。
【請求項３】
前記フローに対するもとの経路と前記フローに対する新たな経路とを比較して、フローエントリを更新する必要があるスイッチを前記複数のスイッチから抽出し、抽出されたスイッチに前記フローに対する新たな経路を通知する経路通知部をさらに備えていることを特徴とする、請求項１または２に記載の制御装置。
【請求項４】
前記冗長性解消部は、前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消し、該同一のスイッチの前後のスイッチが同一である場合にはさらに冗長な経路を解消するという処理を繰り返すことを特徴とする、請求項１ないし３のいずれか１項に記載の制御装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の制御装置と、
前記複数のスイッチと、を備えていることを特徴とする通信システム。
【請求項６】
コンピュータが、所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出する工程と、
前記通信システムを通過する複数のフローの中から、前記第２のスイッチの次に前記第１のスイッチへ転送されるフローを抽出する工程と、
前記複数のスイッチのうちの前記フローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、前記第２のスイッチから該第４のスイッチまでの経路を、前記所定のトポロジーから第１のスイッチを除いたものに基づいて決定する決定工程と、
前記フローに対するもとの経路における前記第３のスイッチから前記第２のスイッチまでの経路と前記決定工程によって決定された経路とを接続して前記フローに対する新たな経路を生成する工程と、
前記新たな経路に重複して含まれるスイッチがある場合には、前記新たな経路における冗長な経路を解消する工程と、を含み、
前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消することを特徴とする、通信システムの制御方法。
【請求項７】
前記所定のトポロジーから第１のスイッチを除いたものに基づいて、第２のスイッチを根（ルート）とする最短パスツリーを計算する工程をさらに含み、
前記決定工程において、第２のスイッチから第４のスイッチまでの経路を前記最短パスツリーに基づいて決定することを特徴とする、請求項６に記載の制御方法。
【請求項８】
コンピュータが、前記フローに対するもとの経路と前記フローに対する新たな経路とを比較して、フローエントリを更新する必要があるスイッチを前記複数のスイッチから抽出し、抽出されたスイッチに前記フローに対する新たな経路を通知する工程をさらに含むことを特徴とする、請求項６または７に記載の制御方法。
【請求項９】
前記抽出されたスイッチが、通知された新たな経路に基づいて、フローエントリを更新する工程をさらに含むことを特徴とする、請求項８に記載の制御方法。
【請求項１０】
所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出する処理と、
前記通信システムを通過する複数のフローの中から、前記第２のスイッチの次に前記第１のスイッチへ転送されるフローを抽出する処理と、
前記複数のスイッチのうちの前記フローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、前記第２のスイッチから該第４のスイッチまでの経路を、前記所定のトポロジーから第１のスイッチを除いたものに基づいて決定する決定処理と、
前記フローに対するもとの経路における前記第３のスイッチから前記第２のスイッチまでの経路と前記決定処理によって決定された経路とを接続して前記フローに対する新たな経路を生成する処理と、
前記新たな経路に重複して含まれるスイッチがある場合には、前記新たな経路における冗長な経路を解消する処理と、をコンピュータに実行させ、
前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消する処理を前記コンピュータに実行させることを特徴とするプログラム。
【請求項１１】
前記所定のトポロジーから第１のスイッチを除いたものに基づいて、第２のスイッチを根（ルート）とする最短パスツリーを計算する処理をさらにコンピュータに実行させ、
前記決定処理において、第２のスイッチから第４のスイッチまでの経路を前記最短パスツリーに基づいて決定することを特徴とする、請求項１０に記載のプログラム。
【請求項１２】
前記フローに対するもとの経路と前記フローに対する新たな経路とを比較して、フローエントリを更新する必要があるスイッチを前記複数のスイッチから抽出し、抽出されたスイッチに前記フローに対する新たな経路を通知する処理をさらにコンピュータに実行させることを特徴とする、請求項１０または１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２００９−２３３８９１号（２００９年１０月７日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システムの制御装置、方法及びプログラムに関し、特に、通信システムを構成する機器が、データ転送を行うスイッチと当該スイッチの制御を行う制御装置（コントローラ）に分離された通信システムの制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
データ転送を行う機器とネットワーク制御を行う機器とが分離された通信システムとして、一例として、スイッチがデータ転送を行うとともに、制御装置（コントローラ）がネットワーク制御を行うものが知られている。かかる通信システムを実現するプロトコルの一つとして、オープンフロー（ＯｐｅｎＦｌｏｗ）が挙げられる（非特許文献１）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御などを行うものである。転送ノードとして機能するスイッチは、コントローラとの通信用のセキュアチャネルを備え、コントローラから適宜、追加、又は指示されるオープンフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルール（Ｆｌｏｗｋｅｙ）と、処理内容を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報（Ｓｔａｔｓ）との組が定義される。【０００３】
図８は、オープンフローに基づく通信システムの構成を概略的に示す図である。図８を参照すると、通信システムは、制御装置（コントローラ）１１０と、複数のスイッチＳ、Ａ、Ｘ及びＤを備えている。制御装置１１０は経路制御を行い、スイッチＳ、Ａ、Ｘ及びＤは、それぞれパケットの転送を行う。【０００４】
図８を参照して、オープンフローにおけるパケットの転送処理について説明する。フローに含まれる最初のパケット（Ｆｉｒｓｔ  Ｐａｃｋｅｔ）が通信システムの入り口のスイッチ（図８のスイッチＳ）に到着すると、スイッチＳは当該パケットを制御装置１１０に送信する。制御装置１１０は、フローに対するパスを決定するとともに、フローに対応するフォワーディングエントリをパス上のスイッチ（スイッチＳ、Ａ、Ｘ、Ｄ）に書き込む。通信システムに到着する以降のパケットは、スイッチＳ、Ａ、Ｘ及びＤに書き込まれたフォワーディングエントリにしたがって転送される。【０００５】
制御装置１１０は、すべてのパスの決定に関与することから、パスの張替え（経路決定）を行う際に必要な情報をすべて保持している。オープンフローにおけるパス計算では、フロー単位で異なるポリシーのものを扱うことができる。しかし、以下では、一例として、すべてのフローが同一のポリシーで計算される場合について考える。また、一例として、各パスは２点間の最短パスで構成される場合について考える。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】N. McKeown et al., "Openflow: Enableing Innovation in Campus Networks," [平成21年9月2日検索]、インターネット、<URL:http://www.openflowswitch.org/documents/openflow-wp-latest.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
なお、上記非特許文献の全開示内容はその引用をもって本書に繰込み記載する。以下の分析は、本発明の視点から与えられたものである。
通信システムのメンテナンスの際に、あるスイッチを停止させる場合には、そのスイッチを通過するフローを他のスイッチに移す必要がある。しかし、フロー数が膨大である場合には、制御装置（コントローラ）１１０において必要とされる計算量が膨大になる。以下では、その理由を具体例に基づいて説明する。【０００８】
図９は、制御装置１１０の動作を示すフローチャートである。図１０及び図１１は、制御装置１１０の動作を説明するための図である。図１０（ａ）に、ベースとなるスイッチ群におけるスイッチ間のトポロジー情報の一例を示す。図１０（ａ）において、スイッチＸは、スイッチ群の中で機能を停止するスイッチである。【０００９】
図９を参照すると、制御装置１１０は、停止するスイッチＸを通過するフローを抽出する（ステップＳ１０１）。次に、制御装置１１０は、抽出された各フローについて、ステップＳ１０３〜Ｓ１０５の処理を行う（ステップＳ１０２）。いま、スイッチＸを通過するフローとして、経路Ｓ−＞Ａ−＞Ｘ−＞Ｄを経由するものが含まれるものとする。図１０（ａ）に示すように、停止するスイッチＸを通過するフローの始点をＳ（Ｓｔａｒｔ）、終点をＤ（Ｄｅｓｔｉｎａｔｉｏｎ）とする。【００１０】
停止するスイッチＸを除いたトポロジーを用いて、スイッチＳを根（ルート）とする最短パスツリーＴＳを計算する（ステップＳ１０３）。例えば、最短パスツリーＴＳは、最短経路問題を効率的に解くことができるダイクストラ（Ｄｉｊｋｓｔｒａ）のアルゴリズムを用いて求めることができる。【００１１】
次に、最短パスツリーＴＳに基づいて、スイッチＳからスイッチＤまでの最短経路を決定する（ステップＳ１０４）。図１０（ｂ）を参照すると、ＳからＤへの最短経路、すなわち、ＳからＤへの新たな経路は、経路Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄとなる。【００１２】
図１１は、スイッチＸを停止する前後における経路を示している。図１１の矢印は、スイッチＸを停止する前における最短パスツリーである。図１１を参照すると、スイッチＸが停止する前の旧経路は経路Ｓ−＞Ａ−＞Ｘ−＞Ｄであり、スイッチＸが停止した後の新経路は経路Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄとなる。制御装置１１０は、新旧の経路を比較し、フローエントリの更新が必要なスイッチを抽出し、フローエントリを更新する（ステップＳ１０５）。このとき制御装置は、旧経路中の各スイッチにおける該当するフローエントリを削除し、新経路中の各スイッチに該当するフローエントリを登録する。なお、あるスイッチに対して、旧経路で削除するフローエントリと新経路で登録するフローエントリとが同一である場合には、削除及び登録の動作を省略することができる。【００１３】
すべてのフローについて、上記のステップＳ１０３〜Ｓ１０５の処理を繰り返す（ステップＳ１０６）。【００１４】
以上の処理のうち、最短パスツリーを計算するステップＳ１０３では、スイッチ群を構成するスイッチの数に応じて制御装置の負荷が高くなる。したがって、最短パスツリーの計算コストを減らすことが好ましい。図９のフローチャートでは、フロー数をｎとすると、最短パスツリーＴＳをｎ回計算しなければならない。なお、始点が同一のフローであれば最短パスツリーＴＳは同一であることから、ステップＳ１０３において計算した最短パスツリーＴＳをキャッシュすることで、最短パスツリーの計算回数を減らすこともできる。しかしながら、この場合であっても、フローの始点の数をｓ個とすると、ｓ回の最短パスツリーを計算する必要がある。【００１５】
本発明の課題は、上記事情に鑑みてなされたものであり、スイッチを停止する際に、制御装置によるパス再計算の計算コストを削減することにある。本発明の目的は、かかる課題を解決する、通信システムの制御装置、制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明の第１の視点に係る、通信システムの制御装置は、
所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出するスイッチ抽出部と、
前記通信システムを通過する複数のフローの中から、前記第２のスイッチの次に前記第１のスイッチへ転送されるフローを抽出するフロー抽出部と、
前記複数のスイッチのうちの前記フローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、前記第２のスイッチから該第４のスイッチまでの経路を、前記所定のトポロジーから第１のスイッチを除いたものに基づいて決定する経路決定部と、
前記フローに対するもとの経路における前記第３のスイッチから前記第２のスイッチまでの経路と前記経路決定部によって決定された経路とを接続して前記フローに対する新たな経路を生成する経路生成部と、
前記新たな経路に重複して含まれるスイッチがある場合には、前記新たな経路における冗長な経路を解消する冗長性解消部と、を備え、
前記冗長性解消部は、前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消する。
【００１７】
本発明の第２の視点に係る、通信システムの制御方法は、
コンピュータが、所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出する工程と、
前記通信システムを通過する複数のフローの中から、前記第２のスイッチの次に前記第１のスイッチへ転送されるフローを抽出する工程と、
前記複数のスイッチのうちの前記フローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、前記第２のスイッチから該第４のスイッチまでの経路を、前記所定のトポロジーから第１のスイッチを除いたものに基づいて決定する決定工程と、
前記フローに対するもとの経路における前記第３のスイッチから前記第２のスイッチまでの経路と前記決定工程によって決定された経路とを接続して前記フローに対する新たな経路を生成する工程と、
前記新たな経路に重複して含まれるスイッチがある場合には、前記新たな経路における冗長な経路を解消する工程と、を含み、
前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消する。
【００１８】
本発明の第３の視点に係るプログラムは、
所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出する処理と、
前記通信システムを通過する複数のフローの中から、前記第２のスイッチの次に前記第１のスイッチへ転送されるフローを抽出する処理と、
前記複数のスイッチのうちの前記フローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、前記第２のスイッチから該第４のスイッチまでの経路を、前記所定のトポロジーから第１のスイッチを除いたものに基づいて決定する決定処理と、
前記フローに対するもとの経路における前記第３のスイッチから前記第２のスイッチまでの経路と前記決定処理によって決定された経路とを接続して前記フローに対する新たな経路を生成する処理と、
前記新たな経路に重複して含まれるスイッチがある場合には、前記新たな経路における冗長な経路を解消する処理と、をコンピュータに実行させ、
前記新たな経路において前記第２のスイッチの前後のスイッチが同一のスイッチである場合には前記第２のスイッチと該同一のスイッチとの間の冗長な経路を解消する処理を前記コンピュータに実行させることを特徴とするプログラム。
【発明の効果】
【００１９】
本発明に係る通信システムの制御装置、制御方法及びプログラムによると、スイッチを停止する際に、制御装置によるパス再計算の計算コストを削減することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る制御装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る制御装置の動作を示すフローチャートである。
【図３】本発明の実施形態に係るプログラムを実行させるコンピュータのハードウェア構成を示すブロック図である。
【図４】実施例１における制御装置の動作を説明するための図である。
【図５】実施例１における制御装置の動作を説明するための図である。
【図６】実施例２における制御装置の動作を説明するための図である。
【図７】実施例２における制御装置の動作を説明するための図である。
【図８】オープンフローに基づく通信システムを概略的に示す図である。
【図９】従来の制御装置の動作を示すフローチャートである。
【図１０】従来の制御装置の動作を説明するための図である。
【図１１】従来の制御装置の動作を説明するための図である。
【発明を実施するための形態】
【００２１】
（実施形態）
本発明の実施形態に係る制御装置について、図面を参照して説明する。図１は、本実施形態に係る制御装置１０の構成を示すブロック図である。図１を参照すると、制御装置１０は、スイッチ抽出部１１、パスツリー計算部１３、フロー抽出部１４、経路決定部１６及び経路生成部１７を備えている。
【００２２】
スイッチ抽出部１１は、所定のトポロジーを有する複数のスイッチを含む通信システムにおいて停止する第１のスイッチに隣接する第２のスイッチを抽出する。
【００２３】
パスツリー計算部１３は、上記所定のトポロジーから第１のスイッチを除いたものに基づいて、第２のスイッチを根とする最短パスツリーを計算する。
【００２４】
フロー抽出部１４は、第２のスイッチの次に転送すべき宛先のスイッチが第１のスイッチであるフローを抽出する。
【００２５】
経路決定部１６は、複数のスイッチのうちのフローの始点及び終点に位置するスイッチをそれぞれ第３のスイッチ及び第４のスイッチとしたときに、第２のスイッチから第４のスイッチまでの経路を上記最短パスツリーに基づいて決定する。
【００２６】
経路生成部１７は、上記フローに対するもとの経路における第３のスイッチから第２のスイッチまでの経路と経路決定部によって決定された経路とを接続して上記フローに対する新たな経路を生成する。
【００２７】
制御装置１０は、さらに経路通知部１９を備えていてもよい。経路通知部１９は、上記フローに対するもとの経路と上記フローに対する新たな経路とを比較して、フローエントリを更新する必要があるスイッチを上記複数のスイッチから抽出し、抽出されたスイッチに上記フローに対する新たな経路を通知する。
【００２８】
制御装置１０は、さらに冗長性解消部１８を備えていてもよい。冗長性解消部１８は、新たな経路に重複して含まれるスイッチがある場合には、新たな経路における冗長な経路を解消する。冗長性解消部１８は、新たな経路において第２のスイッチの前後のスイッチが同一のスイッチである場合には第２のスイッチと当該同一のスイッチとの間の冗長な経路を解消し、当該同一のスイッチの前後のスイッチが同一である場合にはさらに冗長な経路を解消するという処理を繰り返すようにしてもよい。
【００２９】
次に、図面を参照して、制御装置１０の動作について説明する。図２は、本実施形態に係る制御装置の動作を示すフローチャートである。図２を参照すると、スイッチ抽出部１１は、停止するスイッチＸに隣接するスイッチＮを抽出する（ステップＳ１１）。制御装置１０は、各スイッチＮに対して、以下の処理を行う（ステップＳ１２）。
【００３０】
パスツリー計算部１３は、停止するスイッチＸを除いたトポロジーを用いて、スイッチＮを根（ルート）とする最短パスツリーＴＮを計算する（ステップＳ１３）。
【００３１】
フロー抽出部１４は、スイッチＮの次転送先がスイッチＸであるフローをすべて抽出する（ステップＳ１４）。制御装置１０は、各フローに対して、以下の処理を行う（ステップＳ１５）。
【００３２】
フローの始点をＳ（ｓｔａｒｔ）、終点をＤ（ｄｅｓｔｉｎａｔｉｏｎ）とする。このとき、経路決定部１６は、スイッチＮからスイッチＤまでの迂回用経路を最短パスツリーＴＮから決定する（ステップＳ１６）。
【００３３】
経路生成部１７は、スイッチＳからスイッチＮまでの旧経路と、スイッチＮからスイッチＤまでの迂回経路を繋ぎ合わせて、新経路を生成する（ステップＳ１７）。
【００３４】
冗長性解消部１８は、新経路中に重複したスイッチがある場合には、冗長な経路を解消する（ステップＳ１８）。
【００３５】
経路通知部１９は、新旧の経路を比較して、フローエントリの更新が必要なスイッチを抽出し、フローエントリを更新する（ステップＳ１９）。
【００３６】
制御装置１０は、以上のステップＳ１５〜Ｓ１９を繰り返す（ステップＳ２０）とともに、ステップＳ１２〜Ｓ２０を繰り返す（ステップＳ２１）。
【００３７】
停止するスイッチＸに隣接するスイッチの数をｍとしたとき、本実施形態の制御装置１０によると、最短パスツリーの計算(ステップＳ１３)はｍ回のみでよい。一般に、隣接するスイッチの数ｍは、フロー数及び全フローの始点数ｓと比較して小さい。このように、本実施形態の制御装置１０では、計算負荷の高い最短パスツリーの計算回数を少なくすることができ、スイッチを停止する際のパス再計算の計算コストを削減することができる。
【００３８】
制御装置１０は、コンピュータ・プログラムによって実現してもよい。図３は、プログラムを実行するコンピュータのハードウェア構成を示すブロック図である。図３を参照すると、コンピュータ３０は、ＣＰＵ３１、メモリ３２、ハードディスク３３、入力装置３４及び出力装置３５を備えている。プログラムは、制御装置１０の各部における処理をＣＰＵ３１に実行させる。入力装置３４は、マウス及びキーボードを含んでいてもよい。出力装置３５は、ディスプレイを有していてもよい。ハードディスク３３に、上記のプログラム及びネットワークのトポロジーに関する情報を記憶させるようにしてもよい。
【実施例１】
【００３９】
次に、本発明の実施形態に係る制御装置１０の動作について、スイッチ群に対する具体的なトポロジーを想定して説明する。【００４０】
図４は、制御装置１０による最短パスツリーの計算（図２のステップＳ１３）を説明するための図である。図４は、本実施例におけるネットワークのトポロジーを示す。図４（ａ）は、ベースとなるトポロジーを示す。停止するスイッチはスイッチＸとなる。【００４１】
スイッチＸに隣接するスイッチであるスイッチＡを根（ルート）とした最短パスツリーＴＡを計算する（図２のステップＳ１３）。計算した最短パスツリーＴＡに基づいて、スイッチＡからのスイッチＤまでの迂回用経路が、経路Ａ−＞Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄと求まる（図２のステップＳ１６）。【００４２】
図５は、制御装置１０による新経路の生成（図２のステップＳ１７）と冗長な経路の解消（図２のステップＳ１８）について説明するための図である。【００４３】
図５（ａ）を参照すると、スイッチＸを停止する前の旧経路は、経路Ｓ−＞Ａ−＞Ｘ−＞Ｄである。一方、ステップＳ１６で求めた迂回経路は、経路Ａ−＞Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄである（図４（ｂ）参照）。ここで、旧経路におけるスイッチＸ以降のスイッチは、使用されないことから、削除する。図５（ｂ）に削除後の旧経路と迂回経路を示す。これら２つの経路をつなぎ合わせることによって、図５（ｃ）に示すような新経路Ｓ−＞Ａ−＞Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄが得られる（図２のステップＳ１７）。【００４４】
次に、繋ぎ合わせたスイッチＡを中心に、前後のスイッチを比較して、同一のスイッチである場合には、冗長な経路を解消する（図２のステップＳ１８）。図５（ｃ）を参照すると、スイッチＡの前後のスイッチはいずれもスイッチＳであることから、重複する経路を削除する。図５（ｄ）は、重複する経路を削除した後の新経路Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄを示す。経路を圧縮したスイッチＳを中心に、再度前後のスイッチを比較する。本実施例においては、これ以上圧縮することができないので、経路Ｓ−＞Ｅ−＞Ｆ−＞Ｇ−＞Ｄを、スイッチＸの停止後の新たな経路とする。
【実施例２】
【００４５】
次に、本発明の実施形態に係る制御装置１０の動作について、他のネットワークトポロジーに基づいて説明する。【００４６】
図６は、旧経路と迂回経路と新経路の関係について説明するための図である。図６を参照すると、スイッチＸは、停止するスイッチである。スイッチＮは、スイッチＸに隣接するスイッチである。また、スイッチＳ及びスイッチＤは、それぞれフローの始点及び終点に相当するスイッチである。スイッチＸが停止する前の旧経路は破線で示した経路Ｓ−＞Ａ−＞Ｂ−＞Ｎ−＞Ｘ−＞Ｄである。次に、制御装置１０によって、スイッチＸに隣接するスイッチＮを始点、スイッチＤを終点とする迂回用経路として、点線で示した迂回経路Ｎ−＞Ｂ−＞Ａ−＞Ｃ−＞Ｅ−＞Ｆ−＞Ｄを求める（図２のステップＳ１６）。【００４７】
図７は、本実施例における制御装置の動作について説明するための図である。図７（ａ）〜（ｃ）を参照すると、スイッチＳからスイッチＮまでの旧経路と、スイッチＮからスイッチＤまでの迂回経路をつなぎ合わせると、新経路Ｓ−＞Ａ−＞Ｂ−＞Ｎ−＞Ｂ−＞Ａ−＞Ｃ−＞Ｅ−＞Ｆ−＞Ｄが得られる（図２のステップＳ１７）。【００４８】
この新経路において、つなぎ合わせたスイッチＮの前後のスイッチは、いずれもスイッチＢであることから、重複する経路Ｂ−＞Ｎ−＞Ｂを削除する（図２のステップＳ１８）。すると、新経路は、経路Ｓ−＞Ａ−＞Ｂ−＞Ａ−＞Ｃ−＞Ｅ−＞Ｆ−＞Ｄとなる（図７（ｄ））。【００４９】
図７（ｄ）を参照すると、経路の圧縮を行ったスイッチＢの前後のスイッチは、いずれもスイッチＡである。そこで、重複する経路Ａ−＞Ｂ−＞Ａをさらに削除する（図２のステップＳ１８）。すると、新経路は、経路Ｓ−＞Ａ−＞Ｃ−＞Ｅ−＞Ｆ−＞Ｄとなる。【００５０】
経路の圧縮を行ったスイッチＡの前後のスイッチは、異なるスイッチであることから経路の圧縮処理を終了する（図２のステップＳ１８）。以上の処理により、本実施例における新経路は、経路Ｓ−＞Ａ−＞Ｃ−＞Ｅ−＞Ｆ−＞Ｄとなる。【００５１】
なお、上記実施形態で説明した経路管理テーブル、経路構成情報、集約経路管理テーブル、スイッチ別集約フローエンティティテーブルのデータ構造はあくまで実装の一例を示したものであり、本発明はかかるデータ構造に制限されるものでないことは勿論である。また、本発明において、ノードは上記実施例のスイッチを含むほか、コントローラによってフローの制御が行われる任意のスイッチ（Ｌ２／Ｌ３スイッチ）、ルータ等を含む。【００５２】
本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。上記した実施形態のコントローラ１０は、専用のサーバとして実現することもでき、スイッチとしては、上記ＯＦＳ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）のほか、ＩＰ網におけるルータ、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）網におけるＭＰＬＳスイッチのようなノードであれば実現できる。その他のコントローラがネットワーク内のノードを集中管理するようなネットワークに本発明を適用することが可能である。【００５３】
なお、本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ、乃至、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００５４】
１０、１１０  制御装置（コントローラ）
１１  スイッチ抽出部
１３  パスツリー計算部
１４  フロー抽出部
１６  経路決定部
１７  経路生成部
１８  冗長性解消部
１９  経路通知部
３０  コンピュータ
３１  ＣＰＵ
３２  メモリ
３３  ハードディスク
３４  入力装置
３５  出力装置
Ａ〜Ｈ、Ｎ、Ｓ、Ｘ  スイッチ、ノード
【図１】
0005640986.tif 000002
【図２】
0005640986.tif 000003
【図３】
0005640986.tif 000004
【図４】
0005640986.tif 000005
【図５】
0005640986.tif 000006
【図６】
0005640986.tif 000007
【図７】
0005640986.tif 000008
【図８】
0005640986.tif 000009
【図９】
0005640986.tif 000010
【図１０】
0005640986.tif 000011
【図１１】
0005640986.tif 000012