(57)【要約】  送信元から宛先へ複数の経路が存在するネットワークにおける通信効率を向上させる。転送確立テーブルを用いて確率的にトラフィックを転送させるアルゴリズムを用いる通信方法において、ネットワーク状況に適した設定パラメータγを動的に設定する。具体的には、経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出し、前記ノード間トラフィック転送確率と通信量とを用いることによって該パラメータ値を用いた場合におけるリンクコストを算出し、前記ノード間トラフィック転送確率と前記リンクコストとを用いることによってトラフィックがエンドツーエンド間で経験するコストを推定し、前記コストが最小となるノード間トラフィック転送確率を用いる。
2012108383.tif 000002
【特許請求の範囲】
【請求項１】
経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出する手段と、
前記ノード間トラフィック転送確率と通信量とを用いることによって該パラメータ値を用いた場合におけるリンクコストを算出する手段と、
前記ノード間トラフィック転送確率と前記リンクコストとを用いてトラフィックがエンドツーエンド間で経験するコストを算出する手段と、
前記コストが最小となるパラメータを算出する手段と、
ノード間トラフィック転送確率に基づいて次ノード候補からランダムに次ノードを選択する手段と、
を有し、送信元から宛先へ複数の経路が存在するネットワークにおけるトラフィックを前記ノード間トラフィック転送確率に基づいて制御する制御サーバ。
【請求項２】
複数のノード間トラフィック転送確率から
トラフィックがエンドツーエンド間で経験するコストが最小となるノード間トラフィック転送確率を選択的に決定することを特徴とする請求項１に記載の制御サーバ。
【請求項３】
経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出し、
該パラメータ値を用いた場合における全リンクのリンクコストを算出し、
該リンクコストに基づいて、
トラフィックがエンドツーエンド間で経験するコストを算出することを特徴とする請求項１または２に記載の制御サーバ。
【請求項４】
全ノードペア間の通信量と経路選択にかかるパラメータ値から算出したノード間トラフィック転送確率に基づいて
該パラメータ値を用いた場合の全リンクのリンクコストを算出すること特徴とする請求項１から３いずれか一に記載の制御サーバ。
【請求項５】
送信元から宛先へ複数の経路が存在するネットワークをノード間トラフィック転送確率に基づいて制御する経路選択方法において、
経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出し、
前記ノード間トラフィック転送確率と通信量とを用いることによって該パラメータ値を用いた場合のリンクコストを推定し、
前記ノード間トラフィック転送確率と前記リンクコストとを用いてトラフィックがエンドツーエンド間で経験するコストを算出し、
前記コストが最小となるノード間トラフィック転送確率を用いることを特徴とする経路選択方法。
【請求項６】
複数のノード間トラフィック転送確率から
トラフィックがエンドツーエンド間で経験するコストが最小となるノード間トラフィック転送確率を選択的に決定することを特徴とする請求項５に記載の経路選択方法。
【請求項７】
経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出し、
該パラメータ値を用いた場合の全リンクのリンクコストを算出し、
該リンクコストに基づいて、
トラフィックがエンドツーエンド間で経験するコストを算出することを特徴とする請求項５または６に記載の経路選択方法。
【請求項８】
全ノードペア間の通信量と経路選択にかかるパラメータ値から算出したノード間トラフィック転送確率に基づいて
当該のパラメータ値を用いた場合の全リンクのリンクコストを算出すること特徴とする請求項５から７いずれか一に記載の経路選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１１−０２４０４６号（２０１１年０２月０７日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信方法、制御サーバ、および通信システムに関し、特に、ネットワークに配置されたノードによりトラフィックを転送して通信を実現する通信方法、制御サーバ、および通信システムに関する。
【背景技術】
【０００２】
複数のノードを含む通信ネットワークが管理サーバによって集中的に管理される通信ネットワークシステムが知られている。管理サーバは、あるトラフィックに関する経路設定要求を受け取ると、通信ネットワークにおける当該トラフィックの通信経路を決定する。このようにトラフィックの通信経路を決定する管理サーバは、以下、「制御サーバ」とも参照される。【０００３】
ある送信元ノードからある送信先ノードへの最短経路を求めるアルゴリズムとして、非特許文献１では、ダイクストラ法（Ｄｉｊｋｓｔｒａ’ｓ  Ａｌｇｏｒｉｔｈｍ）が記載されている。しかしながら、それら送信元ノードと送信先ノードとの間で複数のトラフィックの通信が行われる場合、単純にダイクストラ法を用いるだけでは、それら複数のトラフィックに対して同じ通信経路（最短経路）が設定されてしまう。このことは、当該通信経路にかかる負荷を増大させ、通信効率を低下させる。【０００４】
負荷を分散させるためには、同じ送信元ノードと送信先ノードとの間の異なるトラフィックに対して、異なる通信経路を設定することが好適である。そのためには、それら送信元ノードと送信先ノードとの間で、最短経路だけでなく他の通信経路をも抽出することが考えられる。送信元ノードから送信先ノードへの複数の通信経路を求める技術として、次のものが知られている。【０００５】
非特許文献２には、ｋ番目に短い経路までをダイクストラ法によって抽出し、トラフィックの経路をｋ番目に短い経路の中からランダムに割り当てるｋ−ｓｈｏｒｔｅｓｔ  ｐａｔｈが記載されている。これにより、送信元ノードから送信先ノードへ複数の経路を求めることが出来る。【０００６】
しかしながら、ｋ−ｓｈｏｒｔｅｓｔ  ｐａｔｈ方法を用いる場合、ダイスクストラ法によって通信経路を求めるため、計算量が膨大になってしまうという問題がある。【０００７】
計算量を抑えつつ、負荷を分散させ、ある送信元ノードから送信先ノードへの経路を求めるアルゴリズムとして、非特許文献３には、経路中のノードがある送信先への転送確率テーブルを生成し、その転送確率テーブルを用いて、確率に基づいてパケットを転送させる方法が記載されている。転送確率は経路中ノードのリンクコストと、これを用いて算出する重み行列、および設定パラメータγに基づいて算出される。この場合、転送確率テーブルは、送信先ノードに対する、隣接ノードとそれへの転送確率を保持する。送信先ノードのアドレスが決定されると、確率的に隣接するノードへパケットを転送する。【０００８】
なお、非特許文献３に記載の方法は、確率的なパケット転送のための方法であるが、非特許文献４において、この方法をフロー転送のための方法として拡張する方法が記載されている。【０００９】
非特許文献３に記載の方法は、転送確率テーブルの構築が容易であるため、計算量を抑えることが可能である。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Ｅｄｓｇｅｒ  Ｗ．  Ｄｉｊｋｓｔｒａ，  “Ａ  Ｎｏｔｅ  ｏｎ  Ｔｗｏ  Ｐｒｏｂｌｅｍｓ  ｉｎ  Ｃｏｎｎｅｘｉｏｎ  ｗｉｔｈ  Ｇｒａｐｈｓ”  Ｎｕｍｅｒｉｓｃｈｅ  Ｍａｔｈｅｍａｔｉｋ，  ｖｏｌ．１，  ｐｐ．２６９−２７１  （１９５９）
【非特許文献２】Ｄ．  Ｅｐｐｓｔｅｉｎ，  “Ｆｉｎｄｉｎｇ  ｔｈｅ  ｋ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈｓ”，  Ｍａｒｃｈ  ３１，  １９９７．
【非特許文献３】Ｙ．  Ｈｏｎｍａ，  Ｍ．  Ａｉｄａ，  Ｈ．  Ｓｈｉｍｏｎｉｓｈｉ  ａｎｄ  Ａ．  Ｉｗａｔａ，  “Ａ  Ｎｅｗ  Ｍｕｌｔｉ−ｐａｔｈ  Ｒｏｕｔｉｎｇ  Ｍｅｔｈｏｄｏｌｏｇｙ  Ｂａｓｅｄ  ｏｎ  Ｌｏｇｉｔ  Ｔｙｐｅ  Ａｓｓｉｇｎｍｅｎｔ”，  Ｉｎ  ＦｕｔｕｒｅＮｅｔ  ＩＩ，  ２００９．
【非特許文献４】篠原悠介，千葉靖伸，下西英之，本間裕大，会田雅樹，“データセンタネットワークにおける効率的マルチパスルーティングとそのＯｐｅｎＦｌｏｗネットワークへの適用”，信学技報，ｖｏｌ，１０９，ｎｏ．４４８，ＮＳ２００９−１６４，  ｐｐ．１３−１８
【非特許文献５】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２３（２０１１年）年２月４日検索］、インターネット〈ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｗｐ−ｌａｔｅｓｔ．ｐｄｆ〉
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明によって与えられたものである。
転送確率テーブルを構築し、転送確率テーブルを用いて確率的にトラフィックを転送させるアルゴリズムにおいて、設定パラメータγはネットワークトポロジおよびトラフィックパターンからなるネットワーク状況によって最適な値が異なるため、ネットワーク状況に適した設定パラメータγを設定することは困難である。このことは、ネットワークの効率的な使用を妨げる。【００１２】
ネットワークを効率的に使用するため、常に最適な設定パラメータγを設定する必要がある。【００１３】
これを解決する方法として、ネットワーク状況に適した設定パラメータγの最適な値を設定するため、使用するネットワークにおいて、人手により、もしくは、機械的に実際に様々な値の設定パラメータγを設定、試行した結果、平均スループットが高く、ネットワークが効率的に使用できた設定パラメータを静的に設定する方法が考えられる。【００１４】
しかしながら、設定パラメータγの取りうる値は０から無限大の間の値であり、現実的な時間で最適な設定パラメータγを探索することは不可能である。また、仮に、最適な設定パラメータγを探索できたとしても、トラフィックパターンもしくはネットワークトポロジが変動した場合、再度、最適な設定パラメータγを探索する必要がある。このことは、非効率的である。【００１５】
本発明の１つの目的は、ネットワーク状況に適した設定パラメータγを動的に設定することにより、効率的にネットワークを利用することである。
【課題を解決するための手段】
【００１６】
本発明の第１の視点によれば、送信元から宛先へ複数の経路が存在するネットワークをノード間トラフィック転送確率に基づいて制御する経路選択方法において、経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出し、前記ノード間トラフィック転送確率と通信量とを用いることによって当該パラメータ値を用いた場合のリンクコストを算出し、前記ノード間トラフィック転送確率と前記リンクコストとを用いてトラフィックがエンドツーエンド間で経験するコスト（エンドツーエンドのコスト）を算出し、前記コスト（エンドツーエンドのコスト）が最小となるノード間トラフィック転送確率を用いることを特徴とする経路選択方法が提供される。本方法は、ネットワークに配置されたノードを制御する制御装置という、特定の機械に結びつけられている。【００１７】
本発明の第２の視点によれば、経路選択にかかるパラメータ値からノード間トラフィック転送確率を算出する手段と、前記ノード間トラフィック転送確率と通信量とを用いることによって当該パラメータ値を用いた場合のリンクコストを算出する手段と、前記ノード間トラフィック転送確率と前記リンクコストとを用いてトラフィックがエンドツーエンド間で経験するコスト（エンドツーエンドのコスト）を算出する手段と、前記コスト（エンドツーエンドのコスト）が最小となるノード間トラフィック転送確率に基づいて次ノード候補からランダムに次ノードを選択する手段と、を有し、送信元から宛先へ複数の経路が存在するネットワークにおけるトラフィックを前記ノード間トラフィック転送確率に基づいて制御する制御サーバが提供される。【００１８】
本発明の第３の視点によれば、転送確率テーブルを構築し、転送確率テーブルを用いて確率的にトラフィックを転送させるプログラムであって、ネットワークトポロジおよびトラフィックパターンからなるネットワーク状況に基づいて、リンクコスト、およびトラフィックがエンドツーエンド間で経験するリンクコストの和を算出する処理と、トラフィックがエンドツーエンド間で経験するリンクコストの和の算出値が最も小さくなる設定パラメータγを得る処理とをコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１９】
本発明によれば、最適な設定パラメータ値を設定し、効率的にネットワークを利用することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態に係る通信システムの概略図である。
【図２】送信元ノードから送信先ノードへの通信経路を示す概念図である。
【図３】本発明の第１の実施形態に係る制御サーバの構成を示すブロック図である。
【図４】転送確率テーブルの概念図である。
【図５】本発明の第１の実施形態に係る経路設定方法を示すフローチャートである。
【図６】本発明の第１の実施形態に係る設定パラメータγ設定方法のフローチャートである。
【発明を実施するための形態】
【００２１】
添付図面を参照して、本発明の一実施形態を説明する。
１．通信ネットワークシステム
図１は、本発明の第１の実施形態に係る通信ネットワークシステム１を示す概略図である。通信ネットワークシステム１は、複数のノード５を含む通信ネットワークＮＥＴを備えている。本実施形態では、通信ネットワークＮＥＴはｎ個（ｎは２以上の整数）のノード５−１〜５−ｎを含んでいるとする。
【００２２】
通信経路が決定されると、制御サーバ１０は、決定された通信経路上の各ノード５に対して、当該トラフィックのデータ（パケット、フレーム）を当該決定された通信経路に沿って転送するように指示する。各ノード５は、その指示に従って、自身の設定を行う。
【００２３】
例えば、各ノード５に「転送テーブル」が設けられる。転送テーブルは、トラフィックの入力元と送信先との対応関係を示すテーブルである。各ノード５は、その転送テーブルを参照することによって、入力元から受け取ったトラフィックを指定された送信先に転送することができる。この場合、制御サーバ１０は、上記決定された通信経路に沿ってトラフィックが転送されるように、各ノード５に対して転送テーブルを設定するよう指示する。各ノード５は、制御サーバ１０からの指示に従って、自身の転送テーブルの内容を設定する。
【００２４】
このような処理を実現するための制御サーバ１０とノード５との間のインターフェイス方式としては、非特許文献５にオープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。オープンフローは、通信をフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルールと、処理内容を定義したアクションと、フロー統計情報との組が定義される。
【００２５】
例えば、オープンフロースイッチは、最初のパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）を受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルール（ＦｌｏｗＫｅｙ）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
【００２６】
２．経路設定処理の概要
図２は、送信元ノード５−Ｓから送信先ノード５−Ｄへの複数の通信経路を示す概念図である。図２に示されるように、多くの場合、送信元ノード５−Ｓから送信先ノード５−Ｄへは複数の通信経路が存在する。各通信経路はいくつかの中継ノード５−ｒを含んでおり、異なる通信経路は異なる中継ノード５−ｒの組み合わせで構成されている。
【００２７】
３．転送確率テーブル
通信ネットワークからのリンクコストおよびトポロジ情報を含んだネットワーク情報に基づいて転送確率テーブル４００を構成することができる。
【００２８】
転送確率テーブル４００を説明するために、図４を参照して、「対象ノード」と「次ホップノード」を説明する。対象ノード５−ｉは、ノード５−１〜５−ｎのいずれかである（ｉ＝１〜ｎ）。また、送信先ノード５−ｊは、ノード５−１〜５−ｎのいずれかであり、対象ノード５−ｉとは異なる（ｊ＝１〜ｎ、ｊ≠ｉ）。対象ノード５−ｉから送信先ノード５−ｊへトラフィックを伝達することを考える。このとき、対象ノード５−ｉからのトラフィックの送信先となる次のノードが、「次ホップノード５−ｉｊ」である。つまり、次ホップノード５−ｉｊは、トラフィックが経由する対象ノード５−ｉの次のホップのノードである。ある対象ノード５−ｉに関して、次ホップノード５−ｉｊの候補は複数存在し得る。候補がｍ個（ｍは自然数）ある場合、それらは５−ｉｊ（１）〜５−ｉｊ（ｍ）で表される。一般化すれば、ある対象ノード５−ｉに関して、次ホップノード候補５−ｉｊ（ｋ）；ｋ＝１〜ｍが存在する。尚、次ホップノード候補５−ｉｊ（ｋ）は、送信先ノード５−ｊから遠ざかるようなものであっても構わない。
【００２９】
転送確率テーブル４００は、以上に説明された次ホップノードの候補を示す「次ホップ情報」である。より詳細には、ノード５−１〜５−ｎのそれぞれに対して転送確率テーブル４００−１〜４００−ｎが設けられている。つまり、ある対象ノード５−ｉと転送確率テーブル４００−ｉは互いに関連付けられている。転送確率テーブル４００−ｉは、対象ノード５−ｉに関する次ホップノード候補５−ｉｊ（ｋ）を示す。
【００３０】
図４は、対象ノード５−ｉに対する転送確率テーブル４００−ｉの一例を示している。図４に示されるように、転送確率テーブル４００−ｉは、送信先ノード５−ｊ（ｊ＝１〜ｎ、ｊ≠ｉ）毎に、次ホップノード候補５−ｉｊ（ｋ）を示している。更に、転送確率テーブル４００−ｉは、各次ホップノード候補５−ｉｊ（ｋ）に対して規定される「選択確率Ｐｉｊ（ｋ）」も示している。選択確率Ｐｉｊ（ｋ）は、ｍ個の次ホップノード候補５−ｉｊ（１）〜５−ｉｊ（ｍ）の中から次ホップノード５−ｉｊ（ｋ）が選択される確率である。
【００３１】
本実施形態に係る制御サーバ１０は、転送確率テーブル４００に基づいて確率的にトラフィックを転送させる。
【００３２】
尚、以上に説明された経路設定処理は、制御サーバ１０が経路設定プログラムを実行することにより実現される。経路設定プログラムは、制御サーバ１０によって実行されるコンピュータプログラムであり、コンピュータ読み取り可能な記録媒体（特に非トランジェントなもの）に記録されていてもよい。
【００３３】
４．制御サーバの様々な例
４−１．第１の実施形態
図３は、本発明の第１の実施形態に係る制御サーバ１０の構成を示すブロック図である。制御サーバ１０は、次ホップノード決定部１００、ノード設定部２００、ループ検出部３００、転送確率テーブル４００、経路ノードリスト５００、パラメータ設定部６００、トラフィック管理部７００を備えている。
【００３４】
次ホップノード決定部１００は、対象ノードに関する対象ノードに関する次ホップノードの候補とそれへの転送確率を転送確率テーブル４００より取得し、次ホップノードの候補から１つのノードを選択し、対象ノードを上記選択された１つの次ホップノードに更新し、経路ノードリスト５００に追加書き込みをする。また、転送確率テーブルの構築に用いられる設定パラメータγはパラメータ設定部６００によって決定される。パラメータ設定部６００は全ノードペア間の通信量を知るため、トラフィック管理部７００からトラフィックが通過しているエッジノードを取得する。
【００３５】
図５は、本実施形態に係る経路設定処理を示すフローチャートである。以下、本実施形態に係る経路設定処理を詳細に説明する。
【００３６】
ステップＳ１０：
あるトラフィックが発生した場合、次ホップノード決定部１００は、当該トラフィックに関する経路設定要求ＲＥＱを通信ネットワークＮＥＴから受け取る。経路設定要求ＲＥＱは、当該トラフィックの送信元ノード５−Ｓと送信先ノード５−Ｄを示している。
【００３７】
ステップＳ１１：
次ホップノード決定部１００は、経路設定要求ＲＥＱを受け取り、送信元ノード５−Ｓと送信先ノード５−Ｄを認識する。そして、次ホップノード決定部１００は、対象ノード５−ｉを送信元ノード５−Ｓに初期設定する。
【００３８】
ステップＳ１２：
次ホップノード決定部１００は、対象ノード５−ｉに関連付けられた、転送確率テーブル４００から次ホップ候補とそれへの転送確率を取得する。
【００３９】
ステップＳ１３：
ループ検出部３００は、ステップＳ１２で取得した次ホップ候補のうち、既に経路ノードリスト５００に書き込まれているノード（既に経由したノード）への転送確率を、次ホップ候補の中で経路ノードリスト５００に書込まれていないノードへの転送確率に対して小さな値に再設定して、既に経由したノードが次ホップのノードとして選択されることを抑制する。次ホップ候補のうち、既に経路ノードリスト５００に書込まれているノードは、トラフィック送信の経路においてループを形成してしまう。このノードへの転送確率を、上述のように再設定することにより、以降に転送確率に基づいて次ホップを決定する際、ループを形成するノードを選択することを抑制することができる。その結果、ループを形成する経路縮退等の処理を実行する必要がなくなり、ルーティングループが多発する環境においても、計算量を抑止することができるので、迅速な経路設定が可能となる。
【００４０】
なお、既に経路ノードリスト５００に書込まれているノードへの転送確率を小さな値に再設定する例について説明したが、本発明はこれに限定されるものではない。既に経路ノードリスト５００に書込まれているノードへの転送確率を、そのノードが次ホップとして決定されることを抑制するように再設定する方式であればよい。例えば、既に経路ノードリスト５００に書込まれているノードについて、転送確率を“０”に設定すること、次ホップ候補から除かれるような処理を実行すること、等が本発明に含まれる。
【００４１】
ステップＳ１４：
ステップＳ１３での処理の結果、全ての次ホップ候補への転送が抑制される状態になることが考えられる。例えば、全ての次ホップ候補への転送確率が所定の閾値を下回った場合、全ての次ホップ候補への転送確率が“０”に設定された場合、全ての次ホップ候補が次ホップとしての転送対象から除かれた場合等が該当する。よって、ステップＳ１４では、全ての次ホップ候補への転送が抑制される状態になっているか否かを判定する。以下、図５のフローチャートでは、既に経路ノードリスト５００に書込まれているノードへの転送確率を“０”に再設定する例を用いて説明する。既に経路ノードリスト５００に書込まれているノードステップＳ１３で経路ノードリスト５００に書き込まれているノードへの転送確率を０にした結果、全ての次ホップ候補ノードへの転送確率が０になっているか否かを調べる。
【００４２】
ステップＳ１５：
ステップＳ１３で経路ノードリスト５００に書き込まれているノードへの転送確率を０にした結果、全ての次ホップ候補ノードへの転送確率が０になった場合（ステップＳ１４；Ｙｅｓ）、前ホップノードを対象ノード５−ｉとして、再度ステップＳ１２を実行する。
【００４３】
ステップＳ１６：
ステップＳ１３で経路ノードリスト５００に書き込まれているノードへの転送確率を０にした結果、全ての次ホップ候補ノードへの転送確率が０にならなかった場合（ステップＳ１４；Ｎｏ）、次ホップノード決定部１００は、転送確率テーブルから次ホップ候補と転送確率を取得し、次ホップノード候補５−ｉｊ（１）〜５−ｉｊ（ｍ）の中から１つの次ホップノード５−ｉｊをランダムに選択する。例えば、次ホップノード決定部１００は、乱数と選択確率Ｐｉｊ（ｋ）を利用する。なお、転送確率の合計値は必ずしも１．０にならなくともよい。
【００４４】
例として、ｍ＝３であり、次ホップノード候補５−ｉｊ（１）〜５−ｉｊ（３）の選択確率Ｐｉｊ（１）〜Ｐｉｊ（３）がそれぞれ０．２、０．３、０．６である場合を考える。このとき、次ホップノード候補５−ｉｊ（１）〜５−ｉｊ（３）に関し、それぞれの選択確率Ｐｉｊ（１）〜Ｐｉｊ（３）に応じた数値範囲が規定される。例えば、次ホップノード決定部１００は、０．０以上０．２未満の範囲を次ホップノード候補５−ｉｊ（１）に対応づけ、０．２以上０．５未満の範囲を次ホップノード候補５−ｉｊ（２）に対応づけ、０．５以上１．１未満の範囲を次ホップノード候補５−ｉｊ（３）に対応づける。その上で、次ホップノード決定部１００は、転送確率の合計値が１．０であるとは限らないため、０．０以上、転送確率の合計値未満の範囲内で乱数Ｘを発生させる。そして、次ホップノード決定部１００は、発生した乱数Ｘを含む数値範囲に対応付けられた次ホップノード候補を選択する。例えば、乱数Ｘが０．３の場合、次ホップノード決定部１００は、次ホップノード候補５−ｉｊ（２）を選択する。このようにして、上記選択確率Ｐｉｊ（ｋ）に従って、且つ、ランダムに、１つの次ホップノード５−ｉｊを選択することができる。
【００４５】
ステップＳ１７：
次ホップノード５−ｉｊが選択されると、次ホップノード決定部１００は、その選択された次ホップノード５−ｉｊを中継ノード５−ｒとして経路ノードリスト５００に保持する。さらに、次ホップノード決定部１００は、対象ノード５−ｉを、選択された次ホップノード５−ｉｊに更新する。
【００４６】
ステップＳ１８：
次ホップ決定処理が完了すると、次ホップノード決定部１００は、更新後の対象ノード５−ｉ（選択された次ホップノード）が送信先ノード５−Ｄと一致しているか否かを調べる。つまり、次ホップノード決定部１００は、対象ノード５−ｉが送信先ノード５−Ｄまで到達したか否かを調べる。
【００４７】
対象ノード５−ｉが未だ送信先ノード５−Ｄに到達していない場合（ステップＳ１８；Ｎｏ）、処理はステップＳ１２に戻り、次ホップノード決定部１００は、新たな対象ノード５−ｉに関する次ホップ決定処理を実行する。
【００４８】
以上に説明された処理が繰り返され、次ホップノード決定部１００は、送信元ノード５−Ｓから送信先ノード５−Ｄに向かって１ホップずつランダムに中継ノード５−ｒを決定していく。最終的に、対象ノード５−ｉは送信先ノード５−Ｄに到達する（ステップＳ１８；Ｙｅｓ）。すなわち、送信元ノード５−Ｓから送信先ノード５−Ｄへの通信経路が決定される。このように、本実施形態に係る次ホップノード決定部１００は、次ホップ決定処理を繰り返すことによって、送信元ノード５−Ｓから送信先ノード５−Ｄへの通信経路を１ホップずつランダムに決定する。
【００４９】
ステップＳ１９：
通信経路が決定されると、ノード設定部２００は、決定された通信経路上の各ノード５に対して、トラフィックを当該決定された通信経路に沿って転送するように指示する。より詳細には、ノード設定部２００は、経路ノードリスト５００に登録されている各ノード５に対して、転送テーブル設定コマンドＣＭＤを送出する。転送テーブル設定コマンドＣＭＤは、上記決定された通信経路に沿ってトラフィックが転送されるように転送テーブルを設定するよう指示するコマンドである。
【００５０】
決定された通信経路上の各ノード５は、制御サーバ１０から転送テーブル設定コマンドＣＭＤを受け取り、それに従って自身の転送テーブルの内容を設定する。これにより、当該トラフィックのデータが、送信元ノード５−Ｓから送信先ノード５−Ｄまで伝達されるようになる。
【００５１】
なお、本実施形態では、集中制御によるループを除去した経路設定方法の例を挙げて説明したが、分散制御によるループを除去した経路設定方法としても実現可能である。
【００５２】
図６は、第１の実施形態に係る設定パラメータγ設定方法のフローチャートである。本実施形態では、ある設定パラメータγを与え、リンクコストＬＣと設定パラメータγより転送確率テーブル４００を構築し、これと全ノードペア間の通信量から当該パラメータ値を用いた場合のリンクコストを算出し、本リンクコストと本転送確率テーブル４００からトラフィックがエンドツーエンド間で経験するコストを算出する。そして本処理を全ての設定パラメータγの候補に実施し、最もトラフィックがエンドツーエンド間で経験するコストが低い設定パラメータγを選択する。以下、本実施形態にかかる設定パラメータγ設定処理を詳細に説明する。
【００５３】
ステップＳ２０：
設定パラメータγ設定処理が開始されると、設定パラメータγの候補γｉを設定する。０番目、１番目、２番目の設定パラメータγの候補γ０、γ１、γ２をそれぞれ現在使用中の設定パラメータγ、γ×（１−ｘ）、γ×（１＋ｘ）とする。ｘは０．０以上の数値とする。なお、設定パラメータの候補をγ、γ×（１−ｘ）、γ×（１＋ｘ）の３つとする例について説明したが、本発明はこれに限定されるものではない。複数の設定パラメータの候補γから選択する方式であればよい。例えば、設定パラメータγの候補を２つ以上とすること、２分割法や黄金分割法で設定パラメータγの候補を抽出すること、等が本発明に含まれる。
【００５４】
ステップＳ２１：
パラメータ設定部６００は、通信ネットワークＮＥＴから現時点でのリンクコストＬＣを受け取る。リンクコストＬＣは、ノードが持つリンクにおけるリンクコスト、例えばリンク利用率、伝播遅延、ロス率などが考えられる。
【００５５】
ステップＳ２２：
トラフィック管理部７００より、トラフィックｆの送信元エッジノードＥＩＤまたは送信先エッジノード番号ＩＩＤを取得する。
【００５６】
ステップＳ２３：
エッジノード番号がＥＩＤから、またはエッジノード番号がＩＩＤから、トラフィックｆの送信元エッジノードにおける送信データ量、送信先エッジノードにおける受信データ量を取得し、全ノードペア間の通信量に加算する。
【００５７】
ステップＳ２４：
送信データ量、受信データ量を取得したトラフィック数が、調査すべきフロー数ｆｍａｘまで探したか否かをチェックする。なお、調査すべきフロー数ｆｍａｘは、十分大きく、管理しているトラフィック数より小さい値とする。
【００５８】
ステップＳ２５：
ステップＳ２４で、送信データ量、受信データ量を取得したトラフィック数が、調査すべきトラフィック数ｆｍａｘまで探していない場合（ステップＳ２４；Ｎｏ）、トラフィックｆの番号を１つ加算する。
【００５９】
ステップＳ２６：
ステップＳ２４で、送信データ量、受信データ量を取得したトラフィック数が、調査すべきトラフィック数ｆｍａｘまで探した場合（ステップＳ２４；Ｙｅｓ）、設定パラメータγの候補γ０、リンクコストＬＣから転送確率テーブル４００を構築する。設定パラメータγの候補γ０、リンクコストＬＣから転送確率テーブル４００を構築する方法は様々考えられる。例えば、非特許文献３では以下の式［数１］で転送確率テーブル４００を構築している。
【００６０】
【数１】
2012108383.tif 000003
【００６１】
なお、ｐ（ｊ｜ｉ）は転送確率テーブル４００の要素であり、送信先ノードがｄであり、対象ノードｉから次ホップノードｊへの転送確率を示す。また、ｃｉｊはリンクコストノードｉ、ノードｊ間のリンクコスト、Ｉは単位行列を示す。
【００６２】
ステップＳ２７：
転送確率テーブル４００と全ノードペア間の通信量から当該パラメータを用いた場合のリンクコストＬＣ２を計算（推定）する。送信元ノードｓから送信先ノードｄ間の通信において、ノードｉ、ノードｊ間のリンクが使用される確率を、転送確率テーブル４００を用いて算出する。これと、全ノードペア間の通信量から得られる送信元ノードｓから送信先ノードｄ間の通信量を乗じることによって、ノードｉ、ノードｊ間のリンクに流れる通信量が得られる。この処理を全ての送信元ノードｓ、送信先ノードｄに実施することによってノードｉ、ノードｊ間リンクの使用量を算出する。この使用量に基づいて、当該パラメータを用いた場合のリンクコストＬＣ２を計算（推定）する。この当該パラメータを用いた場合のリンクコストＬＣ２の算出方法は様々考えられるが、例としてリンクコストＬＣをリンク利用率として定義した場合、以下の式［数２］に従って算出することができる。
【００６３】
【数２】
2012108383.tif 000004
【００６４】
なお、上式［数２］は時間ｔ後のリンクコストＬＣ２を算出している。ｃ’ｉｊは時間ｔ後のリンクコストＬＣ２であり、時間ｔ後のノードｉ、ノードｊ間のリンクコストを示す。また、Ｏｓｄは送信元ノードｓから送信先ノードｄへの送受信データ量、ｂｗｉｊはノードｉ、ノードｊ間のリンク容量を示す。
【００６５】
ステップＳ２８：
算出した当該パラメータ値を用いた場合のリンクコストＬＣ２と転送確率テーブル４００から、当該パラメータ値を用いた場合にトラフィックがエンドツーエンドで経験するコストの平均値Ｃを算出する。当該パラメータ値を用いた場合のリンクコストＬＣ２から得られる当該パラメータ値を用いた場合のノードｉ、ノードｊ間リンクのリンクコストと、送信元ノードｓから送信先ノードｄ間の通信においてノードｉ、ノードｊ間リンクが使用される確率を乗じることによって送信元ノードｓから送信先ノードｄ間の通信において当該パラメータ値を用いた場合にトラフィックがエンドツーエンドで経験する平均コストを算出する。そして、全ての送信元ノードｓ、送信先ノードｄペアに対して本処理を実施し、その平均値を当該パラメータ値を用いた場合にトラフィックがエンドツーエンドで経験するコストの平均値Ｃとして算出する。この当該パラメータ値を用いた場合にトラフィックがエンドツーエンドで経験するコストの平均値Ｃの算出方法は様々考えられるが、例として以下の式［数３］に従って算出することができる。
【００６６】
【数３】
2012108383.tif 000005
【００６７】
ステップＳ２９：
算出した当該パラメータ値を用いた場合のエンドツーエンドでトラフィックが経験するコストの平均値Ｃが、これまでに算出したエンドツーエンドでトラフィックが経験するコストの平均値の中の最小値Ｃｍｉｎより小さいか否かを調べる。
【００６８】
ステップＳ３０：
ステップＳ２９で、当該パラメータ地を用いた場合のエンドツーエンドでトラフィックが経験するコストの平均値Ｃがこれまでに算出したエンドツーエンドでトラフィックが経験するコストの平均値の中の最小値Ｃｍｉｎより小さくなった場合（ステップＳ２９；Ｙｅｓ）、これまでに算出したエンドツーエンドでトラフィックが経験するコストの平均値の中の最小値Ｃｍｉｎの値を、算出した時間ｔ後のエンドツーエンドで算出したトラフィックが経験するコストＣに置き換える。また、最適設定パラメータγｔの値を設定パラメータγの候補γｉに置き換える。
【００６９】
ステップＳ３１：
ステップＳ２９で、当該パラメータ値を用い場合のエンドツーエンドでトラフィックが経験するコストの平均値Ｃがこれまでに算出したエンドツーエンドでトラフィックが経験するコストの平均値の中の最小値ＣＣｍｉｎより大きくなった場合（ステップＳ２９；Ｎｏ）、設定パラメータγの候補γｉを次の設定パラメータγの候補に置き換える。
【００７０】
ステップＳ３２：
設定パラメータγの候補が他に存在するかを調べるため、ｉが３と等しいかを調べる。なお、本実施例ではパラメータの候補数は３であり、パラメータの候補数と等しければよい。
【００７１】
ステップＳ３２でｉが３と等しくない場合（ステップＳ３２；Ｎｏ）、ステップＳ２６から再度設定パラメータγの候補γｉの検証を行う。
【００７２】
ステップＳ３３：
ステップＳ３２でｉが３と等しい場合（ステップＳ３２；Ｙｅｓ）、最適設定パラメータγｔの値を転送確率テーブル４００に送出する。
【００７３】
ステップＳ３４：
一定時間ｔ待機し、ステップＳ２０から再度、設定パラメータγの最適値を検索する。
【００７４】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態に示したノードの数やこれを制御する制御サーバの数は、本発明を簡単に説明するために示した一例であり、適宜変更することが可能である。
最後に、本発明の好ましい形態を要約する。
［形態１］
前記第１の視点に記載の経路選択方法のとおり。
［形態２］
前記形態１において、
複数のノード間トラフィック転送確率から
トラフィックがエンドツーエンド間で経験するコストが最小となるノード間トラフィック転送確率を選択的に決定することが好ましい。
［形態３］
前記形態１または形態２において、
当該パラメータ値を用いた場合における全リンクのリンクコストを算出し、
該リンクコストに基づいて、
トラフィックがエンドツーエンド間で経験するコストを算出することもできる。
［形態４］
前記形態１から形態３いずれか一において、
全ノードペア間の通信量とノード間トラフィック転送確率に基づいて
当該パラメータ値を用いた場合における全リンクのリンクコストを算出することもできる。
［形態５］
前記第２の視点に記載の制御サーバのとおり。
［形態６］
前記形態５において、
複数のノード間トラフィック転送確率から
トラフィックがエンドツーエンド間で経験するコストが最小となるノード間トラフィック転送確率を選択的に決定することが好ましい。
［形態７］
前記形態５または形態６において、
当該パラメータ値を用いた場合における全リンクのリンクコストを算出し、
該リンクコストに基づいて、
トラフィックがエンドツーエンド間で経験するコストを算出することもできる。
［形態８］
前記形態５から形態７いずれか一において、
全ノードペア間の通信量とノード間トラフィック転送確率に基づいて
当該パラメータ値を用いた場合における全リンクのリンクコストを算出することもできる。特徴とする請求項１から３いずれか一に記載の制御サーバ。
［形態９］
前記第３の視点に記載の（コンピュータ）プログラムのとおり。
なお、前記プログラムは、形態１の経路選択方法と同様に、それぞれの構成要素ないしステップについて、形態２〜形態４と同様に展開することが可能である。
本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７５】
１  通信ネットワークシステム
５  ノード
５−Ｓ  送信元ノード
５−Ｄ  送信先ノード
５−ｉ  対象ノード
５−ｊ  送信先ノード
１０  制御サーバ
１００  次ホップノード決定部
２００  ノード設定部
３００  ループ検出部
４００  転送確率テーブル
５００  経路ノードリスト
６００  パラメータ設定部
７００  トラフィック管理部
ＮＥＴ  通信ネットワーク
ＲＥＱ  経路設計要求
ＣＭＤ  転送テーブル設定コマンド
ＬＣ  リンクコスト
ＬＣ２  当該パラメータ値を用いた場合のリンクコスト
Ｃ  エンドツーエンドでトラフィックが経験するコストの平均値
ｆｍａｘ  調査すべきトラフィック数
Ｃｍｉｎ  これまでに算出したエンドツーエンドでトラフィックが経験するコストの平均値の中の最小値
γ  設定パラメータ
γｉ  ｉ番目の設定パラメータγの候補
【図１】
2012108383.tif 000006
【図２】
2012108383.tif 000007
【図３】
2012108383.tif 000008
【図４】
2012108383.tif 000009
【図５】
2012108383.tif 000010
【図６】
2012108383.tif 000011
【国際調査報告】
2012108383.tif 000012
2012108383.tif 000013