(57)【特許請求の範囲】
【請求項１】
フローの通信経路を制御する通信経路制御装置において、
ＭＡＣアドレス毎に設定されたＭＡＣアドレスの優先度と、ポート番号毎に設定されたポート番号の優先度と、を記憶しておく優先度情報記憶部と、
ネットワーク網に流れるフローのパケットに含まれる送信元と宛先の各ＭＡＣアドレスにそれぞれ対応する各ＭＡＣアドレスの優先度と宛先のポート番号に対応するポート番号の優先度とを前記優先度情報記憶部から取得し、取得した前記各ＭＡＣアドレスの優先度と前記ポート番号の優先度とを用いて前記フローのフロー優先度を算出するフロー優先度算出部と、
前記ネットワーク網を構成する転送装置間のリンク毎に、リンクで未使用の通信レートに対応するコストを使用中の通信レートが変化する毎に算出するリンクコスト算出部と、
所定リンクで使用中の総通信レートが輻輳を許容可能な通信レートを超える場合、前記コストを用いて迂回路を検索し、前記所定リンクを使用中の複数のフローのうち前記複数のフローの各前記フロー優先度に基づき特定した一部のフローの通信経路を前記迂回路に変更する迂回路制御部と、
を備えることを特徴とする通信経路制御装置。
【請求項２】
前記迂回路制御部は、
複数の迂回路のうち一迂回路を構成する全リンクの総コストが最も小さい迂回路を検索することを特徴とする請求項１に記載の通信経路制御装置。
【請求項３】
前記迂回路制御部は、
前記複数のフローのうちフロー優先度が最も低いフローの通信経路を変更することを特徴とする請求項１又は２に記載の通信経路制御装置。
【請求項４】
前記迂回路制御部は、
前記フロー優先度が最も低いフローが複数ある場合、通信レートが最も高いフローの通信経路を変更することを特徴とする請求項３に記載の通信経路制御装置。
【請求項５】
前記リンクコスト算出部は、
前記コストを、通信レートが大きくなるほどコストが小さくなるコストデフォルト情報と所定の補完方法とを用いて算出することを特徴とする請求項１乃至４のいずれかに記載の通信経路制御装置。
【請求項６】
前記リンクコスト算出部は、
前記コストを、オープンフローのスイッチ間のリンク毎に算出することを特徴とする請求項１乃至５のいずれかに記載の通信経路制御装置。
【請求項７】
フローの通信経路を制御する通信経路制御装置で行う通信経路制御方法において、
ＭＡＣアドレス毎に設定されたＭＡＣアドレスの優先度と、ポート番号毎に設定されたポート番号の優先度と、を優先度情報記憶部に記憶しておく優先度情報記憶ステップと、
ネットワーク網に流れるフローのパケットに含まれる送信元と宛先の各ＭＡＣアドレスにそれぞれ対応する各ＭＡＣアドレスの優先度と宛先のポート番号に対応するポート番号の優先度とを前記優先度情報記憶部から取得し、取得した前記各ＭＡＣアドレスの優先度と前記ポート番号の優先度とを用いて前記フローのフロー優先度を算出するフロー優先度算出ステップと、
前記ネットワーク網を構成する転送装置間のリンク毎に、リンクで未使用の通信レートに対応するコストを使用中の通信レートが変化する毎に算出するリンクコスト算出ステップと、
所定リンクで使用中の総通信レートが輻輳を許容可能な通信レートを超える場合、前記コストを用いて迂回路を検索し、前記所定リンクを使用中の複数のフローのうち前記複数のフローの各前記フロー優先度に基づき特定した一部のフローの通信経路を前記迂回路に変更する迂回路制御ステップと、
を行うことを特徴とする通信経路制御方法。
【請求項８】
請求項１乃至６のいずれかに記載の通信経路制御装置としてコンピュータを機能させることを特徴とする通信経路制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク網を流れるフローの通信経路を制御する技術に関する。
【背景技術】
【０００２】
通信分野において、通信要求過多により安定した通信が不能になる現象を輻輳と呼ぶ。インターネット等の通信には、ＯＳＩ参照モデルのトランスポート層に相当する通信方式のＴＣＰの中に輻輳を制御する機能がある。この輻輳制御機能により、通信帯域（転送時の毎秒あたりのデータ量）を制御することで、輻輳の影響を抑えることができる。
【０００３】
一方、現在利用されているＩＰネットワークのしくみでは、１つの経路に多数の通信要求が集中してしまうことが多々ある。その結果、輻輳制御を行っていても、安定した通信帯域を確保できない問題が起こる。
【０００４】
ここで、ＳＤＮ（Software Define Networking）技術を用いて上記の問題を解決することを考える。ＳＤＮとは、コントローラがネットワーク機器を一括管理・制御する技術の総称であり、ネットワークの構造及び設定を柔軟に制御・変更することができる。ＳＤＮの中でも、オープンフロー（Open Flow）は、複数のスイッチ（ＯＦＳ：Open Flow Switch）でネットワーク網を構築し、コントローラ（ＯＦＣ：Open Flow Controller）で各スイッチの設定を一元的に制御・変更することにより、そのネットワーク網を流れるフローの通信経路を制御する技術である。オープンフローでは、パケット内のヘッダ部分の組み合わせをフローと定義し、ネットワーク網を流れるフローについてフロー毎に異なる転送処理を行うことができる。つまり、オープンフローでは、フロー毎に適切な通信経路を設定することができる。具体的に、特許文献１，２では、オープンフローを用いて通信経路の構築及びパケットの転送制御を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１６６３８４号公報
【特許文献２】特開２０１４−３９１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１は、フローの優先度に応じて予め設定されたフローエントリに基づきパケットを転送するため、フローエントリの設定状況によっては特定経路上での輻輳を防止できず、安定した通信帯域を確保することは難しい。又、特許文献２は、サーバの負荷状況に応じてスイッチを制御するにすぎず、輻輳状態を安定的に防止できるとは言い難い。
【０００７】
本発明は、上記事情を鑑みてなされたものであり、ネットワーク網を流れるフローの通信経路を最適化することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、請求項１に係る通信経路制御装置は、フローの通信経路を制御する通信経路制御装置において、ネットワーク網を構成する転送装置間のリンク毎に、リンクで未使用の通信レートに対応するコストを使用中の通信レートが変化する毎に算出するリンクコスト算出部と、所定リンクで使用中の総通信レートが輻輳を許容可能な通信レートを超える場合、前記コストを用いて迂回路を検索し、前記所定リンクを使用中の複数のフローのうち一部のフローの通信経路を前記迂回路に変更する迂回路制御部と、を備えることを要旨とする。
【０００９】
又、請求項２に係る通信経路制御装置は、請求項１に記載の通信経路制御装置において、前記迂回路制御部は、複数の迂回路のうち一迂回路を構成する全リンクの総コストが最も小さい迂回路を検索することを要旨とする。
【００１０】
又、請求項３に係る通信経路制御装置は、請求項１又は２に記載の通信経路制御装置において、前記迂回路制御部は、前記複数のフローのうち優先度が最も低いフローの通信経路を変更することを要旨とする。
【００１１】
又、請求項４に係る通信経路制御装置は、請求項３に記載の通信経路制御装置において、前記迂回路制御部は、前記優先度が最も低いフローが複数ある場合、通信レートが最も高いフローの通信経路を変更することを要旨とする。
【００１２】
又、請求項５に係る通信経路制御装置は、請求項１乃至４のいずれかに記載の通信経路制御装置において、前記リンクコスト算出部は、前記コストを、通信レートが大きくなるほどコストが小さくなるコストデフォルト情報と所定の補完方法とを用いて算出することを要旨とする。
【００１３】
又、請求項６に係る通信経路制御装置は、請求項１乃至５のいずれかに記載の通信経路制御装置において、前記リンクコスト算出部は、前記コストを、オープンフローのスイッチ間のリンク毎に算出することを要旨とする。
【００１４】
又、請求項７に係る通信経路制御方法は、フローの通信経路を制御する通信経路制御装置で行う通信経路制御方法において、ネットワーク網を構成する転送装置間のリンク毎に、リンクで未使用の通信レートに対応するコストを使用中の通信レートが変化する毎に算出するリンクコスト算出ステップと、所定リンクで使用中の総通信レートが輻輳を許容可能な通信レートを超える場合、前記コストを用いて迂回路を検索し、前記所定リンクを使用中の複数のフローのうち一部のフローの通信経路を前記迂回路に変更する迂回路制御ステップと、を備えることを要旨とする。
【００１５】
又、請求項８に係る通信経路制御プログラムは、請求項１乃至６のいずれかに記載の通信経路制御装置としてコンピュータを機能させることを要旨とする。
【発明の効果】
【００１６】
本発明によれば、ネットワーク網を流れるフローの通信経路を最適化することができる。
【図面の簡単な説明】
【００１７】
【図１】オープンフローシステムの全体構成を示す図である。
【図２】通信経路制御装置の機能ブロック構成を示す図である。
【図３】フロー優先度の算出処理フローを示す図である。
【図４】ＭＡＣアドレス優先度情報を示す図である。
【図５】ポート番号優先度情報を示す図である。
【図６】フロー優先度情報を示す図である。
【図７】リンクマージンの算出処理フローを示す図である。
【図８】リンクコストの算出処理フローを示す図である。
【図９】コストデフォルト情報を示す図である。
【図１０】リンク情報を示す図である。
【図１１】フローの通信経路の制御処理フローを示す図である。
【図１２】迂回対象フローの特定処理及び迂回路の検索処理フローを示す図である。
【図１３】本発明の効果説明時の参照図である。
【発明を実施するための形態】
【００１８】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００１９】
図１は、本実施の形態に係るオープンフローシステム１００の全体構成を示す図である。オープンフローシステム１００は、自身以外の全てのスイッチに接続された４つのスイッチＯＦＳ１〜ＯＦＳ４と、各スイッチＯＦＳをそれぞれ制御する１つのコントローラＯＦＣと、を備えて構成される。全てのスイッチＯＦＳによりＯＦＳネットワーク網Ｎが構成されている。又、スイッチＯＦＳ１は３つのクライアント装置Ｃ１〜Ｃ３に接続され、スイッチＯＦＳ２は２つのサーバ装置Ｓ１，Ｓ２に接続されている。
【００２０】
各スイッチＯＦＳは、それぞれ、クライアント装置Ｃとサーバ装置Ｓとの間で送受信されるパケットをＯＦＳネットワーク網Ｎの内部で転送する転送装置である。本実施の形態では、スイッチを用いるが、パケットの転送装置に相当する他の装置（例えば、ルータ等）を用いてもよい。又、本実施の形態では、ＯＦＳネットワーク網Ｎを４つのスイッチＯＦＳを用いて構成するが、迂回路があればよいため、少なくとも３つのスイッチＯＦＳを用いて構成してもよい。又、本実施の形態では、各スイッチＯＦＳが自身以外の全てのスイッチＯＦＳに接続されるが、迂回路が１つでもあればよいため、特定のスイッチＯＦＳ間（例えば、スイッチＯＦＳ３とスイッチＯＦＳ４との間）は接続されていなくてもよい。
【００２１】
コントローラＯＦＣは、全てのスイッチＯＦＳがそれぞれ備えるインタフェース等の設定（例えば、ＩＰアドレス、コスト等）を制御・変更し、各インタフェースの物理的な最大の通信レート、スイッチ間のリンクで通信可能な最大の通信レート、各リンクで使用中・未使用の通信レート等を各スイッチＯＦＳからそれぞれ収集し、更にクライアント装置Ｃとサーバ装置Ｓとの間で送受信されるパケットの通信経路をフロー単位で取り扱う制御装置である。尚、フローについては、パケット内のヘッダ部分に含まれる送信元・宛先のＩＰアドレス及びＭＡＣアドレスにより一意に特定可能である。
【００２２】
上述のシステム構成において、本実施の形態では、ＯＦＳネットワーク網Ｎを流れるフローの通信経路を制御する。本実施の形態において、フローの通信経路を制御するための通信経路制御装置１をコントローラＯＦＣの内部に構成する。コントローラＯＦＣの内部に構成する理由は、コントローラＯＦＣはＯＦＳネットワーク網Ｎでの最新の通信状況（例えば、各フローの通信経路や通信レート等）を受信しているからであり、フローの通信経路を制御するための元データを収集するのに最も都合がよいからである。勿論、コントローラＯＦＣに通信可能に接続された外部のコンピュータに構築してもよい。
【００２３】
次に、通信経路制御装置１の機能について説明する。図２は、本実施の形態に係る通信経路制御装置１の機能ブロック構成を示す図である。通信経路制御装置１は、フロー優先度を算出するフロー優先度算出部１１と、フロー優先度情報等を記憶する優先度情報記憶部１２と、リンクのマージンを算出するリンクマージン算出部１３と、リンクのコストを算出するリンクコスト算出部１４と、コストデフォルト情報を記憶するコストデフォルト情報記憶部１５と、リンク情報を記憶するリンク情報記憶部１６と、ＯＦＳネットワーク網Ｎで発生した輻輳を検出する輻輳検出部１７と、迂回路を検索して迂回対象のフローを該迂回路に移行する迂回路制御部１８と、各スイッチＯＦＳをそれぞれ制御するＯＦＳ制御部１９と、ＯＦＳネットワーク網Ｎを流れるフローを管理するフロー管理部２０と、管理しているフローのフロー情報を記憶するフロー情報記憶部２１と、を備えて構成される。
【００２４】
次に、通信経路制御装置１で行う通信経路制御方法について説明する。本実施の形態において、通信経路制御装置１は、迂回対象のフローを特定する際の基準としてフローの優先度を用い、輻輳を検出する際の基準としてリンクのマージンを用い、迂回路を検索する際の基準としてリンクのコストを用いる。
【００２５】
（フロー優先度の決定）
そのため、まず、図３を参照しながら、フロー優先度算出部１１で行うフロー優先度算出方法について説明する。フロー優先度算出部１１は、送信元・宛先ＭＡＣアドレスとＴＣＰ／ＵＤＰポート番号との組み合わせより、ＯＦＳネットワーク網Ｎを流れる各フローの優先度をそれぞれ算出・決定する。
【００２６】
詳細には、まず、優先度情報記憶部１２から、ＭＡＣアドレスと優先度に相当する値とを組み合わせたＭＡＣアドレス優先度情報（図４）と、ＴＣＰ／ＵＤＰポート番号と優先度に相当する値とを組み合わせたポート番号優先度情報（図５）とを取得する（ステップＳ１−１）。ＭＡＣアドレス優先度情報及びポート番号優先度情報は、ユーザにより予め設定・管理されている。
【００２７】
次に、対象フローについて、パケット内のヘッダ部分に含まれるＭＡＣアドレスとポート番号とにそれぞれ対応する各優先度を上記ＭＡＣアドレス優先度情報及びポート番号優先度情報からそれぞれ取得し、式（１）を用いて上記対象フローのフロー優先度Ｐｆｌｏｗを算出する（ステップＳ１−２）。
【００２８】
Ｐｆｌｏｗ＝（src_mac_priority＋dst_mac_priority）×transport_priority  …式（１）
【００２９】
尚、「src_mac_priority」は、対象フローの送信元のＭＡＣアドレスに対応する優先度である。「dst_mac_priority」は、対象フローの宛先のＭＡＣアドレスに対応する優先度である。又、「transport_priority」は、対象フローの宛先のポート番号に対応する優先度である。
【００３０】
最後に、フロー優先度の算出に用いた送信元・宛先ＭＡＣアドレス及びポート番号とそれらを用いて算出したフロー優先度との組み合わせをフロー毎に関連付けてフロー優先度情報（図６）を生成し、優先度情報記憶部１２に記憶する（ステップＳ１−３）。
【００３１】
尚、ＭＡＣアドレス優先度情報及びポート番号優先度情報の各優先度は任意に設定可能である。但し、例えば、遠隔操作用のプロトコル、映像のストリーミング等、基本的にはパケットロスを起こしてはいけない・起こしたくないフローの優先度が高くなるように設定することが好ましい。又、式（１）はフロー優先度計算式の例であり、例えば、重み付け、他の四則演算等、他の計算式を用いてもよい。
【００３２】
（リンクマージン・リンクコストの決定）
続いて、リンクマージン算出部１３で行うリンクマージンの算出方法、リンクコスト算出部１４で行うリンクコストの算出方法について説明する。リンクマージン及びリンクコストは、ＯＦＳネットワーク網Ｎを構成する全てのリンクについてリンク毎に算出・決定される。
【００３３】
まず、図７を参照しながら、リンクマージンの算出方法について説明する。リンクマージンとは、所定のリンクで輻輳を許容可能な通信レートを指す。詳細には、リンクマージン算出部１３は、所定のリンクで通信可能な最大の通信レートのｎ割（ｎ：ゼロを除く正の実数値）をマージンとして算出する（ステップＳ２−１）。例えば、スイッチＯＦＳ１，ＯＦＳ２の物理的な最大の通信レートがそれぞれ１Ｇｂｐｓ、１００Ｍｂｐｓであり、ｎ＝８の場合、スイッチＯＦＳ１，ＯＦＳ２間のリンクで通信可能な最大の通信レートは物理的通信レートが小さい方の１００Ｍｂｐｓとなることから、１００Ｍｂｐｓ×０．８＝８０Ｍｂｐｓを該リンクのマージンとする。
【００３４】
次に、図８を参照しながら、リンクコストの算出方法について説明する。リンクコストとは、所定のリンクで未使用の通信レートに対応するコストを指す。即ち、リンクコスト算出部１４は、所定のリンクで通信可能な最大の通信レートと、該所定のリンクで使用中の通信レートと、を用いてコストを算出する。
【００３５】
詳細には、まず、コストデフォルト情報記憶部１５からコストデフォルト情報を取得する（ステップＳ３−１）。コストデフォルト情報とは、リンクの通信レートとそれに対応するコストとが関連付けられた情報であり、例えばＩＥＥＥ８０２．１Ｄ−１９９８で定義されている。図９に例示するように、互いに異なる複数の通信レートにそれぞれ対応する複数のコストが通信レートを大きくするほど小さくなるように定められている。
【００３６】
その後、所定のリンクで通信可能な最大の通信レートから該所定のリンクで使用中の通信レートを減算し、上記コストデフォルト情報に定められた通信レートとコストとの反比例性を満たすように、減算後の通信レート（＝リンクで未使用の通信レート）に対応するコストを補完的に算出する（ステップＳ３−２）。
【００３７】
例えば、スイッチＯＦＳ１，ＯＦＳ２間のリンクで通信可能な最大の通信レートが１００Ｍｂｐｓ、該リンクで使用中の通信レートが４０Ｍｂｐｓの場合、減算後の通信レート（＝該リンクで未使用の通信レート）は６０Ｍｂｐｓとなる。該６０Ｍｂｐｓはコストデフォルト情報より５０Ｍｂｐｓと１００Ｍｂｐｓとの間であることから、線形補完を行う場合、｛（１９−６３）／（１００Ｍｂｐｓ−５０Ｍｂｐｓ）｝よりコストの補完係数（＝−４４／５０Ｍｂｐｓ）を求め、｛（６０Ｍｂｐｓ−５０Ｍｂｐｓ）×（−４４／５０Ｍｂｐｓ）＋６３｝より減算後の通信レートに対応するコスト（＝５４．２）を算出する。
【００３８】
最後に、リンクマージンとリンクコストとの組み合わせをリンク毎に関連付けたリンク情報（図１０）を生成し、リンク情報記憶部１６に記憶する（ステップＳ３−３）。
【００３９】
その後、リンクで使用中の通信レートが変化した場合、ステップＳ３−１へ戻りステップＳ３−２を再度実行してコストの値を更新する（ステップＳ３−４）。
【００４０】
このようにリンクを使用中の通信レートが変化する毎にコストを動的に算出することにより、ＯＦＳネットワーク網Ｎで輻輳が発生した際に最適な迂回路を検索することができる。尚、上述した線形補完は補完方法の例であり、例えば、スプライン補完、ラグランジュ補完等を用いてもよい。線形補完以外の補完方法の具体的説明は省略するが、本発明に接した当業者であればコストデフォルト情報を用いて当然に補完コストを求めることができる。
【００４１】
（輻輳検出時の通信経路制御）
続いて、図１１を参照しながら、通信経路制御装置１で行う輻輳検出時の通信経路制御について説明する。
【００４２】
まず、輻輳検出部１７は、リンク情報に設定された各リンクのマージンを参照し、ＯＦＳネットワーク網Ｎを構成する各リンクについて、リンクで使用中の総通信レートが該リンクのマージンを超えるか否かを判定する（ステップＳ４−１）。リンクで使用中の総通信レートとは、該リンクを流れる全てのフローの通信レートの総和であり、リンクを形成する２つのスイッチＯＦＳから取得・算出可能である。
【００４３】
次に、リンクで使用中の総通信レートが該リンクのマージンを超える場合、輻輳検出部１７は、該リンクで輻輳が発生していることを検出し、迂回路制御部１８は、上記リンクで輻輳が検出されたことから、優先度情報記憶部１２からフロー優先度情報を取得し、リンク情報記憶部１６からリンク情報を取得する（ステップＳ４−２）。
【００４４】
次に、迂回路制御部１８は、取得したフロー優先度情報及びリンク情報を用いて、輻輳検出リンクを流れる全てのフローの中から迂回対象のフローを特定し、該輻輳検出リンクを除く全ての通信経路の中から迂回路を検索する（ステップＳ４−３）。
【００４５】
ここで、図１２を参照しながら、ステップＳ４−３で行う迂回対象フローの特定処理及び迂回路の検索処理について説明する。
【００４６】
まず、迂回路制御部１８は、フロー管理部２０で管理・生成されているフロー情報（原本）をフロー情報記憶部２１からコピーする（ステップＳ４−３−１）。フロー管理部２０及びフロー情報記憶部２１は、クライアント装置Ｃとサーバ装置Ｓの間で送受信されるパケットをフロー単位で管理している。フロー情報には各フローが経由しているスイッチ・リンクの識別情報が記されており、該フロー情報を参照することで所定のフローが経由するスイッチ・リンクを特定することができる。
【００４７】
次に、迂回路制御部１８は、コピーしたフロー情報を用いて輻輳検出リンクを流れる全てのフローを特定し、更にフロー優先度情報を用いて特定した全てのフローの中から優先度が最も低いフローを検索する（ステップＳ４−３−２）。このとき、優先度が最も低いフローが複数あるか否かを判定し（ステップＳ４−３−３）、優先度が最も低いフローが複数ある場合には、その中から通信レートが最も高いフローを検索し、迂回対象フローとして特定する（ステップＳ４−３−４）。一方、優先度が最も低いフローが１つである場合は、ステップＳ４−３−２で検索したフローを迂回対象フローとして特定する。
【００４８】
次に、迂回路制御部１８は、コピーしていたフロー情報から上記迂回対象フローを一旦削除する（ステップＳ４−３−５）。
【００４９】
次に、迂回路制御部１８は、リンク情報に含まれる各リンクのコストを用いて、輻輳検出リンクを除く全ての通信経路の中から迂回対象フロー用の迂回路を検索する（ステップＳ４−３−６）。
【００５０】
例えば、ダイクストラ法を用いて、考えられる複数の迂回路のうち一迂回路を構成する全てのリンクの総コストが最も小さい迂回路を検索する。尚、ダイクストラ法とは、最短経路問題を効率的に解くグラフ理論における既存のアルゴリズムである。スイッチＯＦＳをノード、リンクをノードとみなし、例えばスイッチＯＦＳ１をスタートノード、スイッチＯＦＳ２をゴールノードとして、スタートノードからゴールノードまでの間に介在する複数の経路の中から最短コストの経路を検索する。尚、経路検索のアルゴリズム自体は公知技術であり、ここでの詳細説明は省略する。
【００５１】
次に、迂回路制御部１８は、迂回対象フローの通信経路を上記検索した迂回対象用フローの迂回路に変更し、該迂回対象フローに対する変更後の迂回路をフロー情報に追加する（ステップＳ４−３−７）。
【００５２】
ここまでがステップＳ４−３の詳細動作である。続いて、図１１に戻り、ＯＦＳ制御部１９は、迂回路制御部１８が保持する最新状態のフロー情報を参照し、迂回対象フローがステップＳ４−３−６で検索された迂回路を通過するように各スイッチＯＦＳの設定を変更する（ステップＳ４−４）。
【００５３】
以降、リンクで使用中の総通信レートが該リンクのマージン以下になるまでステップＳ４−３〜ステップＳ４−４を繰り返し実行する（ステップＳ４−５）。その後、リンクで使用中の総通信レートが該リンクのマージン以下になった場合には、本処理を終了する。
【００５４】
以上の動作を行うことにより、例えば、図１３に示すようにスイッチＯＦＳ１，ＯＦＳ２間のリンクで輻輳が発生した場合、該リンクを流れる３つのフローＦ１〜Ｆ３のうち、最も優先度の低いフローＦ３が、総コストが最も小さい通信経路（スイッチＯＦＳ１→スイッチＯＦＳ４→スイッチＯＦＳ２）に変更される。又、それでも輻輳状態が改善されない場合は、次に優先度の低いフローＦ１が、総コストが次に小さい通信経路（スイッチＯＦＳ１→スイッチＯＦＳ３→スイッチＯＦＳ２）に変更される。
【００５５】
このように、本実施の形態では、リンクコストに基づいて迂回路を検索し、更にリンクの使用中の通信レートが変化する毎にリンクコストを再計算するので、迂回対象フローを最適な迂回路に移すことができる。又、リンクコストに基づいて迂回路を検索するので、同一のサーバ装置と通信している複数のフロー（サーバ装置Ｓ１と通信中のフローＦ１，Ｆ２）についても通信経路を分けることができる。更に、迂回対象フローの特定と迂回路の検索を自律的に行うので、ロードバランサ等の機器を導入する必要がなく、輻輳の発生を低コストで防止することができる。
【００５６】
以上より、本実施の形態によれば、フローの通信経路を制御する通信経路制御装置１において、ＯＦＳネットワーク網Ｎを構成するスイッチＯＦＳ間のリンク毎に、リンクで未使用の通信レートに対応するコストを使用中の通信レートが変化する毎に算出し、所定リンクで使用中の総通信レートが輻輳を許容可能な通信レートを超える場合、上記コストを用いて迂回路を検索し、該所定リンクを使用中の複数のフローのうち一部のフローの通信経路を該迂回路に変更するので、ＯＦＳネットワーク網Ｎを流れるフローの通信経路を自動かつリアルタイムに最適化することができる。その結果、ＯＦＳネットワーク網Ｎで発生した輻輳状態を解消し、安定した通信帯域の確保を実現することができる。
【００５７】
最後に、本実施の形態で説明した通信経路制御装置１は、ＣＰＵ等の演算機能やメモリ等の記憶機能を備えたコンピュータで実現できる。又、通信経路制御装置１としてコンピュータを機能させるためのプログラムや該プログラムの記憶媒体を作成することも可能である。
【００５８】
以上、実施の形態に沿って本発明の内容を説明したが、本発明はこれらの記載に限定されるものではなく、種々の変形及び改良が可能である。
【符号の説明】
【００５９】
１…通信経路制御装置
１１…フロー優先度算出部
１２…優先度情報記憶部
１３…リンクマージン算出部
１４…リンクコスト算出部
１５…コストデフォルト情報記憶部
１６…リンク情報記憶部
１７…輻輳検出部
１８…迂回路制御部
１９…ＯＦＳ制御部
２０…フロー管理部
２１…フロー情報記憶部
１００…オープンフローシステム
Ｃ…クライアント装置
Ｎ…ＯＦＳネットワーク網
ＯＦＣ…コントローラ
ＯＦＳ…スイッチ
Ｓ…サーバ装置
Ｓ１−１〜Ｓ１−３、Ｓ２−１、Ｓ３−１〜Ｓ３−４、Ｓ４−１〜Ｓ４−５、Ｓ４−３−１〜Ｓ４−３−７…ステップ
【図１】
0006650287.tif 000002
【図２】
0006650287.tif 000003
【図３】
0006650287.tif 000004
【図４】
0006650287.tif 000005
【図５】
0006650287.tif 000006
【図６】
0006650287.tif 000007
【図７】
0006650287.tif 000008
【図８】
0006650287.tif 000009
【図９】
0006650287.tif 000010
【図１０】
0006650287.tif 000011
【図１１】
0006650287.tif 000012
【図１２】
0006650287.tif 000013
【図１３】
0006650287.tif 000014