(57)【要約】  多地点対多地点通信においてネットワークの帯域の消費を低減可能なフロー制御装置等を提供する。フロー制御装置は、所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置であって、外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する第１の手段と、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する第２の手段と、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する第３の手段とを含むことを特徴とする。
2017090535.tif 000002
【特許請求の範囲】
【請求項１】
所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置であって、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する第１の手段と、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する第２の手段と、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する第３の手段と
を含むことを特徴とするフロー制御装置。
【請求項２】
前記第１の手段は、前記最短経路として、等価コストマルチパスを計算することを特徴とする請求項１に記載のフロー制御装置。
【請求項３】
前記第１の手段は、前記所定のフロー処理装置間のリンクが複数ある場合に、前記リンクに設定された優先度に基づいて選択されたリンクを用いて、前記最短経路を計算することを特徴とする請求項１又は２に記載のフロー制御装置。
【請求項４】
前記第２の手段は、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数が０回のリンクを、前記所定の通信の通信経路に用いるリンクの候補から除外することを特徴とする請求項１乃至３のいずれかに記載のフロー制御装置。
【請求項５】
前記第３の手段は、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補として、所定の前記フロー処理装置をルートノードとする配信ツリーを計算することを特徴とする請求項１乃至４のいずれかに記載のフロー制御装置。
【請求項６】
前記第３の手段は、前記配信ツリーのうち、所定の前記フロー処理装置がリーフとなる部分を削除することを特徴とする請求項５に記載のフロー制御装置。
【請求項７】
前記所定の通信は、多地点対多地点の通信であることを特徴とする請求項１乃至６のいずれかに記載のフロー制御装置。
【請求項８】
所定の前記フロー処理装置は、外部ネットワークと接続するポートを含むフロー処理装置であることを特徴とする請求項１乃至７のいずれかに記載のフロー制御装置。
【請求項９】
所定の通信のパケットを処理する複数のフロー処理装置と、
前記複数のフロー処理装置を制御するフロー制御装置と、を含み、
前記フロー制御装置は、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する第１の手段と、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する第２の手段と、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する第３の手段と
を含むことを特徴とする通信システム。
【請求項１０】
所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置におけるフロー制御方法であって、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算し、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定し、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算することを含む
フロー制御方法。
【請求項１１】
前記最短経路として、等価コストマルチパスを計算することを更に含む
請求項１０に記載のフロー制御方法。
【請求項１２】
前記所定のフロー処理装置間のリンクが複数ある場合に、前記リンクに設定された優先度に基づいて選択されたリンクを用いて、前記最短経路を計算すること、を更に含む
請求項１０又は１１に記載のフロー制御方法。
【請求項１３】
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数が０回のリンクを、前記所定の通信の通信経路に用いるリンクの候補から除外すること、を更に含む
請求項１０乃至１２のいずれかに記載のフロー制御方法。
【請求項１４】
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補として、所定の前記フロー処理装置をルートノードとする配信ツリーを計算することを更に含む
請求項１０乃至１３のいずれかに記載のフロー制御方法。
【請求項１５】
前記配信ツリーのうち、所定の前記フロー処理装置がリーフとなる部分を削除することを更に含む
請求項１４に記載のフロー制御方法。
【請求項１６】
所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置のコンピュータに実行させるプログラムが記録された記録媒体であって、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する処理と、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する処理と、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する処理と
を前記コンピュータに実行させるプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロー制御装置、通信システム、フロー制御方法及び記録媒体等に関する。
【背景技術】
【０００２】
多地点対多地点通信において、集中制御型のネットワークが採用されている。特許文献１には、フロー制御方式のネットワークが開示されている。特許文献１において、フロー制御装置は、同じ種別のパケット群であるフローを集中的に管理することにより、ネットワークの運用を柔軟に実行する。フロー制御装置は、フローを処理するフロー処理装置に対して当該フローの処理に関する情報を通知し、フロー処理装置は、通知された情報に基づきフローに対して廃棄や転送などの処理を実行する。【０００３】
特許文献２には、迂回対象のノードを通らない新たな経路を算出し、当該新たな経路を構成するノードに対して、フロー処理を規定したフロー情報を設定する技術が記載されている。【０００４】
特許文献３には、インタードメインネットワークにおいて、Ｅｎｄ−ｔｏ−Ｅｎｄ間のネットワークリソースを考慮した経路選択を実行する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１４／１９９２４号
【特許文献２】国際公開第２０１１／０４３３７９号
【特許文献３】特開２００２−１２４９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のとおり、特許文献１に記載のフロー制御方式では、フローに対する処理（例えば、廃棄や転送などの処理）は、フロー処理装置によって実行される。そのため、多地点対多地点通信の配信を実行する場合、特許文献１に記載のフロー制御方式では、全てのフロー処理装置に配信を行い、各フロー処理装置において当該配信に対する処理（廃棄する、又は、外部ＮＷ端点に出力する処理）を実行することになる。そうすると、特許文献１に記載のフロー制御方式では、本来であれば配信不要なフロー処理装置に対しても当該配信を行う必要があり、ネットワークの帯域を無駄に消費していた。【０００７】
本発明の目的は、上記の課題に鑑み、多地点対多地点通信において、ネットワークの帯域の消費増加を抑制することができるフロー制御装置、通信システム、通信方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様のフロー処理装置は、所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置であって、外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する第１の手段と、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する第２の手段と、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する第３の手段とを含むことを特徴とする。【０００９】
本発明の一態様の通信システムは、所定の通信のパケットを処理する複数のフロー処理装置と、前記複数のフロー処理装置を制御するフロー制御装置と、を含み、前記フロー制御装置は、外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する第１の手段と、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する第２の手段と、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する第３の手段とを含むことを特徴とする。【００１０】
本発明の一態様のフロー制御方法は、所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置におけるフロー制御方法であって、外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算するステップと、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定するステップと、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算するステップとを含むことを特徴とする。【００１１】
本発明の一態様のプログラムは、所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置のコンピュータに実行させるプログラムであって、外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する工程と、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する工程と、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する工程とを含むことを特徴とする。【００１２】
なお、本発明の一態様として、上記プログラムが記録された記録媒体が含まれてもよい。
【発明の効果】
【００１３】
本発明のフロー制御装置、通信システム、フロー制御方法及びプログラム等は、多地点対多地点通信において、ネットワークの帯域の消費増加を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態の通信システムの構成例である。
【図２】第１の実施形態の通信システムの他の構成例である。
【図３】第１の実施形態のフロー制御装置の構成例である。
【図４】第１の実施形態のフロー処理装置の構成例である。
【図５】第１の実施形態の配信範囲限定全域最小木算出部７００とフロー処理装置トポロジ情報記憶部１０５との構成例である。
【図６】第１の実施形態におけるフロー制御装置１００の動作例を示すフローチャートである。
【図７】第１の実施形態の通信システムの他の構成例である。
【図８】第１の実施形態におけるフロー制御装置１００の他の動作例を示すフローチャートである。
【図９】第１の実施形態の通信システムの他の構成例である。
【図１０】第１の実施形態の通信システムの他の構成例である。
【図１１】第１の実施形態の通信システムの他の構成例である。
【図１２】第１の実施形態の通信システムの他の構成例である。
【図１３】第１の実施形態におけるフロー制御装置１００の他の動作例を示すフローチャートである。
【図１４】第１の実施形態の通信システムの他の構成例である。
【図１５】第１の実施形態におけるフロー制御装置１００の他の動作例を示すフローチャートである。
【図１６】第１の実施形態の通信システムの他の構成例である。
【図１７】第１の実施形態の通信システムの他の構成例である。
【図１８】第１の実施形態の通信システムの他の構成例である。
【図１９】第１の実施形態の通信システムの他の構成例である。
【図２０】第１の実施形態の通信システムの他の構成例である。
【図２１】第１の実施形態の通信システムの他の構成例である。
【図２２】第２の実施形態のフロー制御装置の構成例である。
【図２３】第２の実施形態におけるフロー制御装置１００の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態及び実施例について、図面を参照して説明する。各実施形態は、例示であり、本発明は各実施形態に限定されるものではない。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１６】
＜第１の実施形態＞
図１は、本発明の第１の実施形態における通信システムの構成例を示す図である。
【００１７】
第１の実施形態における通信システムは、多地点対多地点通信用の物理外部ＮＷ端点の部分集合用に、必要最低限のフロー処理装置を経由する配信ツリーを算出する。
【００１８】
図１に示すように、第１の実施形態の通信システムは、フロー制御装置１００と、フロー処理装置２００（２００A〜２００Lのおのおの）と、ノード３００（３００A1〜３００D1のおのおの）と、リンク４００（４００AB1〜４００KL1のおのおの）と、物理外部ＮＷ端点５００（５００A1、５００D1、５００ｌ1、５００K1のおのおの）とを含む。
【００１９】
フロー制御装置１００は、例えば、集中管理型のアーキテクチャにおいて、パケット処理を実行するノードを管理可能である。
【００２０】
集中管理型のアーキテクチャは、例えば、ＯｐｅｎＦｌｏｗネットワークである。ＯｐｅｎＦｌｏｗネットワークでは、従来のスイッチの機構が、経路の決定処理を外部からプログラミングすることで変更可能としたモジュールであるＯＦＣ（ＯＦＣ：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）と、パケット転送処理のみを行うモジュールであるＯＦＳ（ＯＦＳ：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）とに分離されている。
【００２１】
ＯｐｅｎＦｌｏｗネットワークにおけるＯＦＳとは、ＯｐｅｎＦｌｏｗネットワークを形成し、ＯＦＣの制御下にあるエッジスイッチ及びコアスイッチのことである。ＯｐｅｎＦｌｏｗネットワークでは、ＯＦＣが、ＯＦＳのフローテーブルを操作することによりＯＦＳの挙動を制御する。
【００２２】
フローテーブルとは、所定の条件（ルール）に適合（マッチ）するパケット（通信データ）に対して行うべき所定の動作（アクション）を定義したフローエントリ（Ｆｌｏｗ  ｅｎｔｒｙ）が登録されたテーブルである。
【００２３】
各ＯＦＳは、フローテーブルを少なくとも１つ保持している。ＯＦＣは、配下の各ＯＦＳのフローテーブルと同じ内容のフローテーブルを全て保持している。すなわち、ＯＦＣは、各ＯＦＳのフローテーブルのマスターテーブルを保持している。なお、「フローテーブルを保持している」とは、そのフローテーブルを管理していることを意味する。そのフローテーブルをネットワーク経由等で管理可能であれば、実際には、そのフローテーブルが自身の内部に存在していなくても良い。例えば、ＯＦＣとＯＦＳが、ネットワーク上にある同一のフローテーブルを共有することも考えられる。
【００２４】
フローエントリのルールは、パケットの各プロトコル階層のヘッダ領域に含まれる送信先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、送信先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローを示すパケットのヘッダ領域の値の一部（又は全部）を、正規表現やワイルドカード「＊」等で表現したものを設定することもできる。
【００２５】
ＯＦＳは、ルールの欄に記述された内容にマッチするパケットを、アクションの欄に記述された内容に従って処理する。ＯＦＣは、このようなフローエントリをＯＦＳに登録することで、マッチするパケットに対する処理を制御できるのである。
【００２６】
ＯＦＳは、パケットが到着した時、当該パケットのヘッダ情報（送信元情報や送信先情報等）を読み取り、自身のフローテーブルの中から、マッチするルールを持つフローエントリ（以下、マッチするフローエントリと呼ぶ）を検索する。検索の結果、マッチするフローエントリが見つかった場合、ＯＦＳは、そのフローエントリのアクションに記載されている通りにパケットを処理する。なお、複数のフローエントリが見つかった場合、見つかったフローエントリのうち、最も優先度が高いフローエントリに従い、パケットを処理する。また、検索の結果、マッチするフローエントリが見つからなかった場合、ＯＦＳは、当該パケットを「ファーストパケット」と判断し、当該パケットのコピー（複製）をＯＦＣに転送することで、当該パケットをどのように処理すべきかについてＯＦＣに問い合わせる。
【００２７】
ＯＦＣは、ＯＦＳから問い合わせを受けた場合、経路計算を行い、問い合わせを受けたパケットを送信先まで転送するための最適な経路を導出する。また、ＯＦＣは、ＯＦＳのフローテーブルに、導出した経路を構成するためのフローエントリを新規に追加登録する。このとき、ＯＦＣは、自身のフローテーブルにも同じフローエントリを新規に追加登録する。
【００２８】
フロー制御装置１００は、ノード３００間の通信経路に関する情報（どのフロー処理装置２００やリンク４００を通って処理させるか）を管理する（フロー管理）。フロー制御装置１００は、１以上のフロー処理装置に対して、フロー処理装置２００から入力したフレームを処理するためのフロー設定の指示を行う。
【００２９】
フロー処理装置２００は、ノード３００もしくは他のフロー処理装置２００からの入力フレームに対して、フロー制御装置１００の指示によって設定されたフローテーブルを参照し、マッチした条件に従って入力フレームの処理を行う。フロー処理装置２００は、マッチした条件に基づいて、入力フレームの出力や（例えば、ノード３００への出力、他のフロー処理装置２００への出力、又は、フロー制御装置１００への出力）、当該入力フレームの破棄（ドロップ）を実行する。
【００３０】
ノード３００は、他のノード３００宛てのフレームをフロー処理装置２００に送信する処理や、他のノード３００を送信元とするフレームをフロー処理装置２００から受信する処理を行う。
【００３１】
ノード３００は、例えば、携帯電話、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、モバイルルータ、スマートデバイス（例えば、家庭の消費電力をモニタするスマートメータ、スマートテレビ、ウェアラブル端末）、Ｍ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）デバイス等である。Ｍ２Ｍデバイスは、例えば、上記のデバイスに加え、産業機器、車、ヘルスケア機器、家電等を含む。
【００３２】
ここで、ノード３００と接続しているフロー処理装置２００は、エッジフロー処理装置（以下「エッジフロー処理装置２００」と記載することがある）である。また、フロー処理装置２００としか接続していないフロー処理装置２００は、コアフロー処理装置（以下「コアフロー処理装置２００」と記載することがある）である。コアフロー処理装置は、フローネットワークの構成によっては存在しない場合もある。実施形態１の通信システムにおいて、フロー処理装置２００Ａ、２００Ｄ、２００Ｉ、２００Ｋは、エッジフロー処理装置であり、それ以外のフロー処理装置２００がコアフロー処理装置である。
【００３３】
リンク４００は、フロー処理装置２００間を接続する。リンク４００は、フロー処理装置２００間の物理ポートを両端に保持する。なお、フロー処理装置２００の物理ポート間には、中継用のＮＷ機器を配置してもよい。
【００３４】
フロー処理装置２００Ｉ、２００Ｊ間のように、２つのフロー処理装置２００間に複数のリンク４００を配置し、冗長性を向上させる場合もある。
【００３５】
物理外部ＮＷ端点５００は、フローネットワークとノード３００の境界となる物理的な端点であり、フロー処理装置２００の外部ＮＷ接続用の物理ポートである。
【００３６】
第１の実施形態の通信システムにおいて、ノード３００は、エッジフロー処理装置２００と直接接続している必要はなく、Ｌ２ＳＷ（Ｓｗｉｔｃｈ）を介して接続していてもよい。また、ノード３００が、Ｌ３ＳＷやルータであり、当該ノード３００に別のノード３００が存在している場合もある。
【００３７】
図２は、第１の実施形態における通信システムの他の構成例である。
【００３８】
図２において、図１に示すフローネットワークは、仮想ネットワーク６００として、Ｌ２ＳＷにより仮想化されている。フローネットワークを仮想化することにより、ユーザの操作性が向上する。
【００３９】
仮想ネットワーク６００Ａは、仮想ノードである仮想Ｌ２ＳＷ６０１Ａ１と、３点の仮想外部ＮＷ端点６０２とを含む。仮想外部ＮＷ端点６０２Ａ１Ａは、フローネットワークにおける物理外部ＮＷ端点５００Ａ１であるポートのＶＬＡＮ  ＩＤ１０にマッピングされている。また、仮想外部ＮＷ端点６０２Ａ１Ｂは、物理外部ＮＷ端点５００Ｉ１であるポートのＶＬＡＮ  ＩＤ１０に、仮想外部ＮＷ端点６０２Ａ１Ｃは、物理外部ＮＷ端点５００Ｋ１であるポートのＶＬＡＮ  ＩＤ１０にマッピングされている。
【００４０】
同様に、仮想ネットワーク６００Ｂは、仮想ノードである仮想Ｌ２ＳＷ６０１Ｂ１と、２点の仮想外部ＮＷ端点６０２Ｂ１Ｂ、６０２Ｂ１Ｄとを含む。仮想ネットワーク６００Ｂにおいて、仮想外部ＮＷ端点６０２Ｂ１Ｂは、物理外部ＮＷ端点５００Ｉ１であるポートのＶＬＡＮ  ＩＤ２０に、仮想外部ＮＷ端点６０２Ｂ１Ｄは、物理外部ＮＷ端点５００Ｄ１であるポートのＶＬＡＮ  ＩＤ２０に、それぞれマッピングされている。
【００４１】
図３は、第１の実施形態におけるフロー制御装置１００の構成例を示す図である。
【００４２】
フロー制御装置１００は、フロー処理装置通信部１０１、フローネットワーク管理部１０２、仮想ネットワーク管理部１０３、フロー処理装置記憶部１０４、フロー処理装置トポロジ情報記憶部１０５、ＢＣＭＣ用ベースフローエントリ記憶部１０６、限定配信用フローエントリ記憶部１０７、フローエントリ記憶部１０８、フロー記憶部１０９、仮想ネットワーク実ネットワークマッピング情報記憶部１１０、仮想ネットワークトポロジ情報記憶部１１１、仮想ノード情報記憶部１１２を含む。
【００４３】
フロー処理装置通信部１０１は、フロー処理装置２００から、フロー処理装置情報や入力フレーム情報、タイムアウトによるフローエントリ削除情報を受信する。フロー処理装置通信部１０１は、受信したフロー処理装置情報等を、フローネットワーク管理部１０２や仮想ネットワーク管理部１０３に出力する。
【００４４】
フロー処理装置通信部１０１は、仮想ネットワーク管理部１０３からの出力フレーム情報や、フローネットワーク管理部１０２からのフローエントリに関する設定や参照に関する情報を受信する。また、フロー処理装置通信部１０１は、仮想ネットワーク管理部１０３とフローネットワーク管理部１０２からのフロー処理装置情報の参照に関する要求を受信し、フロー処理装置記憶部１０４を参照して、所定の情報をフロー処理装置２００に転送する。
【００４５】
フローネットワーク管理部１０２は、フロー処理装置通信部１０１からのフロー装置情報をフロー処理装置記憶部１０４に設定する。また、フローネットワーク管理部１０２は、フロー処理装置記憶部１０４に記憶されている情報と入力フレーム情報とを基に、フロー処理装置トポロジ情報を、フロー処理装置トポロジ情報記憶部１０５に設定する。フローネットワーク管理部１０２は、フロー処理装置トポロジ情報を基に、ブロードキャスト、マルチキャストフレーム用のベースとなるフローを求める。フローネットワーク管理部１０２は、求めたベースとなるフローに基づいて、フロー処理装置２００ごとのブロードキャスト、マルチキャストフレーム用のＢＣＭＣ（ＢｒｏａｄＣａｓｔ／ＭｕｌｔｉＣａｓｔ）用ベースフローエントリを、ＢＣＭＣ用ベースフローエントリ記憶部１０６に設定する。
【００４６】
また、フローネットワーク管理部１０２は、仮想ネットワーク管理部１０３からの仮想ノード情報、仮想ネットワークトポロジ情報を求めて、フローエントリ記憶部１０８に設定する。また、フローネットワーク管理部１０２は、仮想ネットワーク実ネットワークマッピング情報記憶部１１０のマッピング情報、及び、ＢＣＭＣ用フローエントリを求めて、フローエントリ記憶部１０８に設定する。フローネットワーク管理部１０２は、フローエントリ記憶部１０８に設定した情報に基づいて、フロー処理装置通信部１０１を介して、フロー処理装置２００にフローエントリを設定する。
【００４７】
また、フローネットワーク管理部１０２は、仮想ネットワーク管理部１０３からのフロー設定情報と、フロー処理装置トポロジ情報とに基づいて、フローエントリを求める。フローネットワーク管理部１０２は、フロー設定情報をフロー記憶部１０９に設定し、フローエントリをフローエントリ記憶部１０８に設定して、フロー処理装置通信部１０１を介して、フロー処理装置２００にフローエントリを設定する。
【００４８】
また、フローネットワーク管理部１０２は、配信範囲限定全域最小木算出部７００が算出したツリーを元に多地点対多地点通信用フローエントリを求める。フローネットワーク管理部１０２は、求めた多地点対多地点通信用フローエントリを限定配信用フローエントリ記憶部１０７に設定し、フロー処理装置通信部１０１を介して、フロー処理装置２００にフローエントリを設定する。
【００４９】
仮想ネットワーク管理部１０３は、複数の仮想ネットワーク上の仮想ノード情報を仮想ノード情報記憶部１１２に設定し、仮想ネットワークごとの仮想ノードの接続関係に関する情報を、仮想ネットワークトポロジ情報記憶部１１１に設定する。また、仮想ネットワーク管理部１０３は、仮想外部ＮＷ端点６０２と、物理外部ＮＷ端点５００とのマッピング設定を、仮想ネットワーク実ネットワークマッピング情報記憶部１１０に記憶する。仮想ネットワーク管理部１０３は、仮想ノード情報、仮想ネットワークトポロジ情報、及び、仮想ネットワーク実ネットワークマッピング情報を、フローネットワーク管理部１０２に転送する。また、仮想ネットワーク管理部１０３は、フロー処理装置通信部１０１からの入力フレーム情報を、仮想ネットワークトポロジ情報に基づいて処理する。この際、入力フレーム情報が破棄（ドロップ）される可能性や、入力フレーム情報を仮想Ｌ２ＳＷ６０１などの仮想ノードがホストとして受信する可能性や、仮想ノードが出力フレーム情報を仮想外部ＮＷ端点６０２から出力する可能性がある。仮想ネットワーク管理部１０３は、出力フレーム情報を、フロー処理装置通信部１０１を介してフロー処理装置２００に出力する。また、仮想ネットワーク管理部１０３は、フロー処理装置通信部１０１からの入力フレーム情報と、当該入力フレーム情報に対応するフロー処理装置通信部１０１への出力フレーム情報とに基づくフロー設定情報を用いて、フロー設定をフローネットワーク管理部１０２に依頼してもよい。
【００５０】
配信範囲限定全域最小木算出部７００は、配信範囲限定全域最小木７４０を算出する。
配信範囲限定全域最小木算出部７００は、仮想ネットワークトポロジ情報記憶部１１１と仮想ネットワーク実ネットワークマッピング情報記憶部１１０の情報とに基づいて、所定の仮想ネットワーク６００の仮想外部ＮＷ端点６０２構成から多地点対多地点通信する物理外部ＮＷ端点５００の部分集合を、フロー処理装置トポロジ情報記憶部１０５に設定する。配信範囲限定全域最小木算出部７００は、フロー処理装置トポロジ情報記憶部１０５のリンク４００の情報に基づいて、配信範囲限定全域最小木７４０を算出する。配信範囲限定全域最小木算出部７００は、算出した配信範囲限定全域最小木７４０を、フローネットワーク管理部１０２に設定する。
【００５１】
フロー処理装置記憶部１０４は、フロー処理装置２００のフロー処理装置情報を、当該フロー処理装置２００ごとに保持する。フロー処理装置情報は、例えば、フロー処理装置のポート情報、ＶＬＡＮ設定情報、フロー処理装置の能力、フロー処理装置へアクセスするためのアドレスなどであり、統計情報などを含んでいてもよい。
【００５２】
フロー処理装置トポロジ情報記憶部１０５は、フロー処理装置２００間のリンク４００の情報である接続情報やポートの接続先など、フローネットワークのトポロジ情報を保持する。
【００５３】
ＢＣＭＣ用ベースフローエントリ記憶部１０６は、フローネットワークにおけるブロードキャスト、マルチキャスト用のフローのためのベースとなるフロー処理装置ごとのフローエントリを保持する。また、ＢＣＭＣ用ベースフローエントリ記憶部１０６は、ループフリーとなるような他のフロー処理装置２００の接続ポート情報を保持する。第１の実施形態のフロー制御装置１００は、フローネットワークにおける配信先のフロー処理装置２００すべてに配信する共通の全域最小木を使用することによりフローエントリの省資源化を実現する。限定配信用フローエントリ記憶部１０７は、フロー処理装置２００に設定する配信範囲限定全域最小木７４０から生成される多地点対多地点通信用フローエントリを、フロー処理装置２００ごとに保持する。
【００５４】
フローエントリ記憶部１０８は、フロー処理装置２００に設定するフロー設定情報に応じたフローエントリを、フロー処理装置２００ごとに保持する。
【００５５】
フロー記憶部１０９は、フロー設定情報を保持する。フロー記憶部１０９が保持するフロー設定情報は、例えば、フローネットワークへの入力フレーム情報のうちフローとしてマッチさせる条件と、フローネットワークから出力させる際の出力フレームの状態を含む。
【００５６】
仮想ネットワーク実ネットワークマッピング情報記憶部１１０は、仮想外部ＮＷ端点６０２と、物理外部ＮＷ端点５００とのマッピング情報を記憶する。仮想ネットワーク実ネットワークマッピング情報記憶部１１０は、入力フレームがフローネットワークに入力される際の仮想外部ＮＷ端点６０２や、出力フレームが出力される際の仮想外部ＮＷ端点６０２に関して、フロー制御装置１００が管理するフローネットワークにおける、フロー処理装置２００と、物理外部ＮＷ端点５００と、ＶＬＡＮ  ＩＤとの対応関係に関する情報や、仮想ネットワーク６００との関係などを記憶する。
【００５７】
仮想ネットワークトポロジ情報記憶部１１１は、仮想ネットワーク６００ごとの仮想ノード間の接続情報や仮想外部ＮＷ端点６０２情報を保持する。
【００５８】
仮想ノード情報記憶部１１２は、仮想ネットワークごとの仮想Ｌ２ＳＷ６０１や、仮想外部ＮＷ端点６０２などの仮想ノード情報をそれぞれ保持する。仮想ノード情報記憶部１１２は、仮想Ｌ２ＳＷ６０１の場合には、仮想インタフェース情報やＭＡＣエントリ情報などのＬ２ＳＷと同様の情報や、仮想ネットワーク６００の関係などを記憶する。
【００５９】
図４は、第１の実施形態におけるフロー処理装置２００の構成例を示す図である。
【００６０】
フロー処理装置２００は、フローエントリ検索部２０１、フローエントリ記憶部２０２、フローエントリ処理部２０３、フロー処理部２０４、フロー制御装置通信部２０５を含む。
【００６１】
フローエントリ検索部２０１は、フロー処理装置２００に入力されたフレームからフローエントリを検索するためのフローエントリ検索条件情報を抽出する。フローエントリ検索部２０１は、フローエントリ検索条件情報を用いて、フローエントリ記憶部２０２を検索する。フローエントリ検索部２０１は、マッチしたフローエントリのタイムアウト時間や統計情報などがあれば更新する。フローエントリ検索部２０１は、マッチしたフローエントリのアクションと入力フレームとを、フロー処理部２０４に転送する。
【００６２】
フローエントリ記憶部２０２は、該フロー処理装置２００がフレームを処理するためのフローエントリを保持する。フローエントリ記憶部２０２は、フローエントリ処理部２０３からフローエントリの追加・削除などの設定や参照が行われる。フローエントリ記憶部２０２は、フローエントリ検索部２０１からフローエントリの検索やマッチしたフローエントリの更新が行われる。フローエントリ記憶部２０２が保持するフローエントリは、フロー制御装置１００（具体的には、ＢＣＭＣ用ベースフローエントリ記憶部１０６、限定配信用フローエントリ記憶部１０７及びフローエントリ記憶部１０８）が保持する、該フロー処理装置２００に関するフローエントリに対応する。
【００６３】
フローエントリ処理部２０３は、フロー制御装置通信部２０５を介して、フロー制御装置１００から通知されるフローエントリに関する追加・削除などの設定や参照指示を、フローエントリ記憶部２０２に対して実行する。フローエントリ処理部２０３は、フローエントリ記憶部２０２を参照し、フローエントリでタイムアウトしたものに関しては削除し、フロー制御装置通信部２０５を介して、該フローエントリが削除されたことをフロー制御装置１００に通知する。
【００６４】
フロー処理部２０４は、フローエントリ検索部２０１、又はフロー制御装置通信部２０５を介してフロー制御装置１００から通知される入力フレームと、当該入力フレームに関するアクションとに従って、フレームの値を変更する。また、フロー処理部２０４は、当該入力フレームを、ノード３００に出力する処理や、他のフロー処理装置２００に出力する処理や、フロー制御装置通信部２０５を介してフロー制御装置１００に出力する処理や、廃棄（ドロップ）する処理を行う。
【００６５】
図５は、第１の実施形態における、配信範囲限定全域最小木算出部７００とフロー処理装置トポロジ情報記憶部１０５との構成例を示す図である。
【００６６】
配信範囲限定全域最小木算出部７００は、外部ＮＷ端点部分集合取得部７１０と、配信ツリー経路リンク絞り込み部７２０と、全域最小木算出部７３０とを含む。
【００６７】
外部ＮＷ端点部分集合取得部７１０は、仮想ネットワークトポロジ情報記憶部１１１からある仮想ネットワーク６００の仮想外部ＮＷ端点６０２のリストを取得する。外部ＮＷ端点部分集合取得部７１０は、仮想ネットワーク実ネットワークマッピング情報記憶部１１０の情報から、仮想外部ＮＷ端点６０２にマッピングされる多地点対多地点通信する物理外部ＮＷ端点５００の部分集合を取得する。外部ＮＷ端点部分集合取得部７１０は、フロー処理装置情報９００の外部ＮＷ端点部分集合保持フラグ９２０、及び、リンク情報８００の外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を更新する。
【００６８】
配信ツリー経路リンク絞り込み部７２０は、フロー処理装置２点間リンク絞り込み手段７２１と、物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２（以下、単に「算出手段７２２」と記載する場合がある）とを含み、全域最小木算出部７３０において計算対象とするリンク４００を絞り込む。
【００６９】
フロー処理装置２点間リンク絞り込み手段７２１は、２つのフロー処理装置間に複数のリンク４００が存在する場合に、リンクの重み設定８０１の値が最も低く、高優先として設定されているリンク４００の内の一つを選択する。フロー処理装置２点間リンク絞り込み手段７２１は、選択したリンク４００に基づいて、２点間リンク使用フラグ８０２を更新し、リンク４００の絞り込みを行う。フロー処理装置２点間リンク絞り込み手段７２１により、物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２の経路計算対象リンクを絞り込む。
【００７０】
物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２は、重み設定８０１と２点間リンク使用フラグ８０２とを使用して、多地点対多地点通信用の物理外部ＮＷ端点の部分集合を保持するフロー処理装置２００のすべての組み合わせにおける最短経路かつ等価コストのマルチパスを算出する。物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２は、最短経路として選択された回数を最短経路選択回数８０３に記憶し、最短経路として一度も選択されていないリンク４００を計算対象外とすることにより、選択対象のリンク４００を絞り込む。
【００７１】
全域最小木算出部７３０は、全域最小木用重み算出手段７３１と、全域最小木計算手段７３２と、配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３とを含む。
【００７２】
全域最小木用重み算出手段７３１は、リンクの重み設定８０１が同じ場合は、最短経路選択回数８０３と外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４とを参照し、最短経路として選択した回数が多く、多地点対多地点通信用の物理外部ＮＷ端点５００の部分集合を保持するフロー処理装置２００に接続されているリンク４００を優先して選択するような値であるリンク４００の全域最小木用重み８０５を算出する。
【００７３】
全域最小木計算手段７３２は、全域最小木用重み８０５を元に配信範囲限定全域最小木７４０を計算する。
【００７４】
配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３は、全域最小木計算手段７３２が算出した配信範囲限定全域最小木７４０から配信ツリーのリーフとなっているコアフロー処理装置２００を削除する。
【００７５】
フロー処理装置トポロジ情報記憶部１０５は、フロー処理装置情報９００とリンク情報８００とを記憶する。
【００７６】
フロー処理装置情報９００は、フロー処理装置２００が保持するリンク情報８００のリストおよび物理外部ＮＷ端点情報９１０のリストと外部ＮＷ端点部分集合保持フラグ９２０とを含む。
【００７７】
外部ＮＷ端点部分集合保持フラグ９２０は、あるフロー処理装置が、所定の仮想ネットワーク６００の仮想外部ＮＷ端点６０２にマッピングされる物理外部ＮＷ端点５００の集合（すなわち、多地点対多地点通信用の物理外部ＮＷ端点５００の部分集合）のいずれかを保持するフロー処理装置２００であることを示すフラグである。
【００７８】
リンク情報８００は、リンク４００の両端に接続される二つのフロー処理装置２００に関するリンク接続フロー処理装置情報９００（リンク接続フロー処理装置情報９００Ａ、リンク接続フロー処理装置情報９００Ｂ）と、リンクの重み設定８０１と、２点間リンク使用フラグ８０２と、最短経路選択回数８０３と、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４と、全域最小木用重み８０５とを含む。
【００７９】
リンクの重み設定８０１は、リンク４００に接続されるフロー処理装置２００のポートの回線速度又はユーザの優先度設定により決定するグラフ理論における木の計算をする際のリンクコストを示し、リンクの重み設定８０１の値の低い方の優先度が高くなる。
【００８０】
２点間リンク使用フラグ８０２は、隣接する２点のフロー処理装置２００間でフロー処理装置２点間リンク絞り込み手段７２１により選択されるリンク４００を判別するための情報である。
【００８１】
最短経路選択回数８０３は、物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２により算出される情報である。最短経路選択回数８０３は、全域最小木用重み算出手段７３１により全域最小木用重み８０５を算出する際に使用される。最短経路選択回数８０３を使用する目的は、最短経路に共通的に使用されるリンク４００を優先的に選択するためである。
【００８２】
外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４は、外部ＮＷ端点部分集合取得部７１０により算出される情報である。外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４は、全域最小木用重み算出手段７３１により全域最小木用重み８０５を算出する際に、使用される。値は保持のとき０、非保持のとき１とする。係るフラグの初期値は１とする。外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を使用する目的は、等価コストマルチパスで最短経路選択回数８０３も同一の複数経路がある場合に、コアフロー処理装置２００よりもエッジフロー処理装置２００を経由する経路を優先的に選択するためである。
【００８３】
図６は、第１の実施形態におけるフロー制御装置１００の動作例を示すフローチャートである。なお、以下の例では、各リンク４００群のリンクの重み設定８０１は、全部同じ値であるものとする。
【００８４】
図６は、フロー制御装置１００が、隣接するフロー処理装置２００のポート間を接続するリンクの重み設定８０１が最小のリンクのうちの１つを、フロー処理装置２点間リンク絞り込み手段７２１により決定し、他のリンクを経路選択候補から除外する処理を実行する場合の動作例である。
【００８５】
フロー制御装置１００の外部ＮＷ端点部分集合取得部７１０は、仮想ネットワーク６００Ａの仮想外部ＮＷ端点６０２Ａ１Ａ、６０２Ａ１Ｂ、及び、６０２Ａ１Ｃに関する情報を、仮想ネットワークトポロジ情報記憶部１１１から取得する（Ｓ１０１）。
【００８６】
外部ＮＷ端点部分集合取得部７１０は、仮想ネットワーク実ネットワークマッピング情報記憶部１１０を参照し、仮想外部ＮＷ端点６０２Ａ１Ａ、６０２Ａ１Ｂ、及び、６０２Ａ１Ｃにそれぞれマッピングされている、物理外部ＮＷ端点５００Ａ１、５００Ｉ１、５００Ｋ１を保持するフロー処理装置２００Ａ、２００Ｉ、２００Ｋを選択する（Ｓ１０２）。
【００８７】
外部ＮＷ端点部分集合取得部７１０は、物理外部ＮＷ端点５００を保持するフロー処理装置２００の部分集合を取得し、該当するフロー処理装置２００の外部ＮＷ端点部分集合保持フラグ９２０を保持（＝０）にし、リンク情報８００の外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を保持（＝０）とする（Ｓ１０３）。
【００８８】
なお、Ｓ１０３において、外部ＮＷ端点部分集合取得部７１０は、仮想ネットワーク６００Ａにマッピングされていないフロー処理装置２００Ｄ、コアフロー処理装置２００Ｂ、２００Ｃ、２００Ｅ、２００Ｆ、２００Ｇ、２００Ｈ、２００Ｊ、２００Ｌは部分集合に含めずに、各フラグ９２０、８０４は非保持のままとする。
【００８９】
フロー処理装置２点間リンク絞り込み手段７２１は、フロー処理装置２００の各組み合わせにおいて、同一組み合わせに複数のリンク４００があるフロー処理装置５００Ｉとフロー処理装置５００Ｌと間のリンク４００ＩＪ１及びリンク４００ＩＪ２の内リンクの重み設定８０１が低く、優先度が高いものを選択する（Ｓ１０４）。ただし、フロー処理装置２点間リンク絞り込み手段７２１は、重み設定８０１の値が等価の場合には、乱数を用いてリンク４００ＩＪ１を選択し、２点間リンク使用フラグ８０２を初期値使用のままとするとともに、リンク４００ＩＪ２を経路候補から削除し、２点間リンク使用フラグ８０２を未使用に更新する。
【００９０】
図７は、フロー制御装置１００が図６の動作を実行した後における通信システムの構成例を示す図である。フロー制御装置１００が、図６の動作を実行したことにより、図７の状態となる。図７は、外部ＮＷ端点部分集合取得部７１０にて仮想ネットワーク６００Ａに関する物理外部ＮＷ端点５００の部分集合を取得した後に、フロー処理装置２点間リンク絞り込み手段７２１が二つのフロー処理装置間に複数のリンク４００の内の一つを選択した時の状態を示す。
【００９１】
図８は、第１の実施形態におけるフロー制御装置１００の他の動作例を示すフローチャートである。図８は、図７の構成例となった後の、フロー制御装置１００の動作例を示す図である。
【００９２】
図８は、フロー制御装置１００が、物理外部ＮＷ端点５００を保持するフロー処理装置２００のすべての２点間の組み合わせにおいて、２点間の最短経路の等価コストマルチパスを、物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２により、すべて算出し、最短経路として選択されたフロー処理装置２００間のリンク４００群に対して最短経路選択回数８０３を算出し、最短経路選択回数８０３が初期値０のままのリンク４００を経路選択候補から除外する処理を実行する場合の動作例である。
【００９３】
フロー制御装置１００の算出手段７２２は、フロー処理装置２００Ａをルートノードとして、フロー処理装置２００Ｉ、２００Ｋへの最短経路を、ダイクストラ法を用いて等価コストマルチパスにて算出する（Ｓ２０１）。算出手段７２２は、例えば、リンクの重み設定８０１の値が同値のため、フロー処理装置２００Ａから２００Ｋへの経路が、重み設定８０１の値×４（経由するリンクの数）と等価コストのマルチパスとして経由するリンク４００が選択される。
【００９４】
図９は、フロー制御装置１００の算出手段７２２が、図８のＳ２０１を実行した後における通信システムの構成例を示す図である。図９は、物理外部ＮＷ端点５００Ａ１をルートノードとした場合の他の物理外部ＮＷ端点５００Ｉ１と、物理外部ＮＷ端点５００Ｋ１への最短経路として選択されるリンク４００群を示す。物理外部ＮＷ端点５００Ｋ１をルートノードとした場合も同様なリンク４００群が最短経路として選択される。
【００９５】
算出手段７２２は、フロー処理装置２００Ａから２００Ｋへの経路として、図９の「最短経路」で示されるリンク４００を選択する。また、図９に示すように、フロー処理装置２００Ａから２００Ｉへの最短経路は、２００Ａ、２００Ｅ、２００Ｉを経由する経路であるが、当該経路はフロー処理装置２００Ａから２００Ｋへの最短経路に含まれる。そして、図９の「最短経路」で示されるリンク４００の最短経路選択回数８０３は、初期値０回から１回に更新される。
【００９６】
算出手段７２２は、同様にして、フロー処理装置２００Ｋをルートノードとして、２００Ａ、及び、２００Ｉへの最短経路を、等価コストマルチパスにて算出する（Ｓ２０２）。算出手段７２２は、Ｓ２０２において算出した最短経路として、図９の「最短経路」で示されるリンク４００を選択する。そして、図９の「最短経路」で示されるリンク４００の最短経路選択回数８０３は、２回に更新される。
【００９７】
算出手段７２２は、同様にして、フロー処理装置２００Ｉをルートノードとして、２００Ａ、及び、２００Ｋへの最短経路を等価コストマルチパスにて算出する（Ｓ２０３）。
【００９８】
図１０は、フロー制御装置１００の算出手段７２２が、図８のＳ２０３を実行した後における通信システムの構成例を示す図である。図１０は、物理外部ＮＷ端点５００Ｉ１をルートノードとした場合の他の物理外部ＮＷ端点５００Ａ１と、物理外部ＮＷ端点５００Ｋ１への最短経路として選択されるリンク４００群を示す。
【００９９】
算出手段７２２は、算出した最短経路として、図１０の「最短経路」で示されるリンク４００を選択する。
【０１００】
図１１は、フロー制御装置１００が、図８のＳ２０３を実行して、最短経路に選択されたリンク４００の最短経路選択回数８０３をインクリメントした場合の、通信システムの構成例である。図１１は、図９、図１０の物理外部ＮＷ端点５００Ａ１、Ｉ１、Ｋ１をルートノードとした場合の最短経路選択されたリンク４００から物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２により設定された最短経路選択回数８０３を示す。
【０１０１】
算出手段７２２は、最短経路選択回数８０３が初期値０回である配信範囲限定全域最小木７４０非選択リンクを、全域最小木算出時に計算対象外であると判別する。
【０１０２】
図１２は、算出手段７２２が、全域最小木算出時に計算対象外であると判別する配信範囲限定全域最小木７４０非選択リンクを示した通信システムの他の構成例である。図１２は、最短経路選択回数８０３が初期値０であり、最短経路として一度も選択されていないリンク４００を計算対象外とした状態を示す。
【０１０３】
図１２のとおり、算出手段７２２は、配信範囲限定全域最小木７４０非選択リンク（図１２の破線で示すリンク）を、全域最小木算出時に計算対象外であると判別する。算出手段７２２は、物理外部ＮＷ端点５００を保持する全てのエッジフロー処理装置２００をルートノードとして、最短経路を等価コストマルチパスにて算出してリンク４００の最短経路選択回数８０３を求める。そして、算出手段７２２は、最短経路選択回数８０３が初期値０回である配信範囲限定全域最小木７４０非選択リンクを全域最小木算出時に計算対象外であると判別する。
【０１０４】
図１３は、第１の実施形態におけるフロー制御装置１００の他の動作例を示すフローチャートである。図１３は、図１２の構成例となった後の、フロー制御装置１００の動作例を示す図である。
【０１０５】
図１３は、フロー制御装置１００が、図８の処理の結果を受けて、所定の優先度でリンク４００の全域最小木用重み８０５を決定し、配信範囲限定全域最小木７４０を算出する場合の動作例である。
【０１０６】
所定の優先度は、「リンクの重み設定８０１＞リンクの最短経路選択回数８０３＞リンクの外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４」である。なお、リンクの重み設定８０１は、リンク４００に接続されるフロー処理装置のポートの回線速度やユーザ設定により決定される値である。このように、フロー制御装置１００は、リンクの外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４やリンクの最短経路選択回数８０３の値より優先して反映するために、リンクの重み設定８０１に十分に大きな値を積算した結果に基づいて、全域最小木用重み８０５を求める。
【０１０７】
このように、リンクの最短経路選択回数８０３を全域最小木用重み８０５に反映することで、全最短経路間において、より共通的に使用されるリンクが、配信範囲限定全域最小木７４０の経路として選択されやすくなる。共通的に使用されるリンク４００が経路として選択されることにより、配信範囲限定全域最小木７４０に不要に選択されるリンク４００数が減り、帯域削減が実現できる。
【０１０８】
また、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４は、リンク４００が接続されているフロー処理装置２００が外部ＮＷ端点を保持しているかを示すフラグである。例えば、対称性が高いトポロジであるために、最短経路選択回数８０３が同値になることから、物理外部ＮＷ端点５００を保持するフロー処理装置２００と、物理外部ＮＷ端点５００を保持しないフロー処理装置２００とのどちらを経由しても最短経路となる場合、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を全域最小木用重み８０５に反映することで、物理外部ＮＷ端点５００を保持するフロー処理装置２００を経由する経路が選択されることになる。これにより、物理外部ＮＷ端点５００を保持しないフロー処理装置２００が、配信範囲限定全域最小木７４０のリーフに配置されやすくなる。
【０１０９】
フロー制御装置１００の全域最小木用重み算出手段７３１は、全域最小木用重み８０５を算出する（Ｓ３０１）。具体的には、全域最小木用重み算出手段７３１は、“リンクの重み設定８０１の３２ビットシフト値＋（外部ＮＷ端点部分集合を保持するフロー処理装置２００の数−最短経路選択回数８０３）の１６ビットシフト値＋外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４の８ビットシフト値”を計算する。フロー処理装置間のホップ数によっては、反映優先順位の低い値が多く加算される場合がある。よって、シフトする値は、反映優先順位の低い値により計算された重みが、反映優先順位の高い値より大きくならないように、フロー処理装置２００の台数により調整が必要となる。
【０１１０】
なお、小さいシフト数の例を説明する。リンクの重み設定８０１を４ビットシフト（全部１で同じ値）、（外部ＮＷ端点部分集合を保持するフロー処理装置２００の数−最短経路選択回数８０３）を２ビットシフト（全部２で同じ値）、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４をシフト無で加算した場合を考える。この場合、配信範囲限定全域最小木７４０計算用の重みは、（１００００ｂ（２進数）＋１０００ｂ（２進数）＋（外部ＮＷ端点部分集合保持なら“１”、非保持なら“０”））から、重み値２５（外部ＮＷ端点部分集合保持）、又は、重み値２４（非保持）と計算される。ここで、フロー処理装置２００間に２００ホップあると、重みの合計が、“２４×２００＝４８００”となる。リンクの重み設定８０１の値“１００００ｂ（２進数）＝１６（１０進数）”は、４８００に比べて小さいので、配信範囲限定全域最小木７４０の計算結果として十分反映されない可能性がある。
【０１１１】
続けて、全域最小木用重み算出手段７３１は、リンク４００の全域最小木用重み８０５を用いて、プリム法によりフロー処理装置２００Aをルートノードとして、配信範囲限定全域最小木７４０を算出する（Ｓ３０２）。この場合において、全域最小木用重み算出手段７３１は、各フロー処理装置２００からルートノードへの経路も、配信範囲限定全域最小木７４０に記憶しておく。
【０１１２】
図１４は、フロー制御装置１００の全域最小木用重み算出手段７３１が、図１３のＳ３０２を実行した後における通信システムの構成例を示す図である。図１４は、全域最小木計算手段７３２により算出した配信範囲限定全域最小木７４０を示す。
【０１１３】
図１５は、第１の実施形態におけるフロー制御装置１００の他の動作例を示すフローチャートである。図１５は、図１４の構成例となった後の、フロー制御装置１００の動作例を示す図である。
【０１１４】
図１５は、フロー制御装置１００が、図１３の動作にて計算した配信範囲限定全域最小木７４０において、物理外部ＮＷ端点５００を保持しないフロー処理装置２００がリーフとなる部分を削除する場合の動作例を示す。物理外部ＮＷ端点５００間の通信時に経由されないコアフロー処理装置２００が、配信範囲限定全域最小木７４０に存在するため、当該コアフロー処理装置２００の削除が必要となる。配信範囲限定全域最小木７４０における、物理外部ＮＷ端点５００を保持するフロー処理装置２００の１つをルートノードとして、他の物理外部ＮＷ端点５００を保持するフロー処理装置２００からの経路のリンク４００を辿り、すべての他の物理外部ＮＷ端点５００からルートノードへのリンク４００を辿った後に、辿られなかったリンク４００群は配信範囲限定全域最小木７４０から削除する。
【０１１５】
フロー制御装置１００の配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３は、配信範囲限定全域最小木７４０において、ルートノード以外の全物理外部ＮＷ端点５００を保持するフロー処理装置２００Ｉ、２００Ｋからルートノードであるフロー処理装置２００Ａへの経路以外の配信範囲限定全域最小木７４０の選択候補リンクを、当該配信範囲限定全域最小木７４０から削除する（Ｓ４０１）。その結果、配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３は、配信範囲限定全域最小木７４０を完成させる（Ｓ４０２）。
【０１１６】
図１６は、フロー制御装置１００の配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３が、図１５のＳ４０１を実行した後における通信システムの構成例を示す図である。図１６は、算出した配信範囲限定全域最小木７４０から物理外部ＮＷ端点５００間の最短経路とならないリンク４００を示す。
【０１１７】
図１７は、フロー制御装置１００の配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３が、図１５のＳ４０２を実行した後における通信システムの構成例を示す図である。図１７は、最短経路とならないリンク４００を除外した最終的な配信範囲限定全域最小木７４０を示す。
【０１１８】
なお、外部ネットワークと接続する端点の部分集合の決定方法としては、ユーザが物理外部ＮＷ端点５００の部分集合を直接指定してもよいし、ＩＧＭＰ／ＭＬＤなどのＩＰマルチキャストグループ受信者を管理するためのプロトコルを用いて決定してもよい。また、フロー制御装置１００は、仮想ネットワーク６００の各々に対してデータを準備することで、複数の外部ＮＷ端点部分集合用のツリーを算出することが可能となる。
【０１１９】
上記のとおり、第１の実施形態におけるフロー制御装置１００は、仮想ネットワーク６００Ａ用の仮想外部ＮＷ端点６０２にマッピングされる物理外部ＮＷ端点５００の集合（すなわち、多地点対多地点通信用の物理外部ＮＷ端点５００の部分集合）用に必要最低限のフロー処理装置２００のみ経由する配信ツリーを算出する。
【０１２０】
これにより、第１の実施形態におけるフロー制御装置１００は、図１７で示す配信範囲限定全域最小木７４０に例示するように、全域最小木用重み８０５に最短経路選択回数８０３を反映して全域最小木を算出するため、配信範囲対象となるフロー処理装置２００の削減に効果がある。
【０１２１】
図１８は、最短経路選択回数８０３が同値となり、物理外部ＮＷ端点５００間の最短経路に物理外部ＮＷ端点５００を保持しないフロー処理装置２００が選択されてしまう可能性のある対称性が高いトポロジ例である。なお、各リンク４００のリンクの重み設定８０１は、全部同じ値であるものとする。第１の実施形態におけるフロー制御装置１００は、図１８に例示されるような対称性が高いトポロジにおいても、必要最低限のフロー処理装置２００のみ経由する配信ツリーを算出できる。
【０１２２】
また、第１の実施形態におけるフロー制御装置１００は、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を用いるため、最適なリンク４００を選択できるようになる。図１８に例示するような対称性の高い網構成の場合において、各物理外部ＮＷ端点５００を保持するエッジフロー処理装置２００をルートノードとする最短経路を求める。この場合、係るルートノードから、対角線上のエッジフロー処理装置２００への最短経路を等価コストマルチパスにて算出すると、すべてのリンク４００が最短経路として選択されることになる。その結果、フロー制御装置１００は、４角に配置されたエッジフロー処理装置２００を各々ルートノードとして最短経路選択回数８０３を取得することから、図１９に例示するように、全リンクが４回となる。そのため、フロー制御装置１００が、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を全域最小木用重み８０５に反映しない場合、プリム法計算結果において、コアフロー処理装置２００がエッジフロー処理装置２００間の最短経路に不要に含まれることになる。そこで、第１の実施形態のフロー制御装置１００が、外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４を反映することにより、物理外部ＮＷ端点５００を保持するエッジフロー処理装置２００に接続されるリンク４００のコストが低くなることで、係るリンク４００が優先して選択される。このため、図２１のような配信範囲限定全域最小木７４０が算出される。その結果、フロー制御装置１００は、最適なリンク４００を選択できるようになる。より具体的な外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４の効果としては、エッジフロー処理装置２００間とコアフロー処理装置２００間のリンク４００どちらかを選択する場合、フロー制御装置１００は、エッジフロー処理装置２００間を選択するようになる。図２０は、物理外部ＮＷ端点５００間の最短経路に不要な物理外部ＮＷ端点５００を保持しないフロー処理装置２００として選択された場合の配信範囲限定全域最小木７４０を示す。一方、図２１は、物理外部ＮＷ端点５００間の最短経路に不要な物理外部ＮＷ端点５００を保持しないフロー処理装置２００として選択されない場合の配信範囲限定全域最小木７４０を示す。
【０１２３】
また、フロー制御装置１００は、計算量を削減することも可能となる。
【０１２４】
グラフ理論において、頂点の部分集合すべてを含むツリーの算出方法として、シュタイナー木がある。重みづけされたグラフにおいて最小シュタイナー木を求める問題は、ＮＰ困難であり、最適解を求めるのが非常に困難であることが知られている。最小シュタイナー木を求める計算量は頂点の集合の要素数vと頂点の部分集合の要素数τに対してＯ（（ｖ３τ）＋ｖ２×２τ＋ｖ３）となり、要素数が増えると爆発的に計算量が増大することが知られている。
【０１２５】
一方、第１の実施形態のフロー制御装置１００は、初期のダイクストラ法の計算量がＯ（ｖ２）であり、これを頂点部分集合数ｔ回実施する。そのため、フロー制御装置１００において、最短経路選択回数８０３の加算は最大で辺数ｅ×ｔとなる。また、フロー制御装置１００は、図１３に示す全域最小木用重み８０５の算出は、６（加算２回、シフト３回、減算１回）×ｅの計算量となる。なお、プリム法の計算量は、Ｏ（ｖ２）である。さらに、フロー制御装置１００において、図１３に示す配信ツリー内端点非保持フロー処理装置リーフ部削除手段７３３の処理は、Ｏ（ｖ２）となる。
【０１２６】
したがって、フロー制御装置１００の計算量は、Ｏ（（ｔ＋２）ｖ２＋（ｔ＋６）ｅ）となる。したがって、最小シュタイナー木を求める計算量Ｏ（（ｖ３τ）＋ｖ２×２τ＋ｖ３）のように爆発的には増加しないことがわかる。
【０１２７】
以上説明したとおり、フロー制御装置１００は、最短経路選択回数８０３によりリンク４００を絞り込み、全域最小木用重み８０５に外部ＮＷ端点部分集合保持フロー処理装置接続判別フラグ８０４と最短経路選択回数８０３とを反映して、配信範囲限定した全域最小木の近似解の算出を少ない計算量で算出し、外部ネットワークと接続する端点の部分集合を指定することにより、多地点対多地点通信時に配信不要なフロー処理装置の帯域リソース消費を抑止することができる。
【０１２８】
＜第２の実施形態＞
図２２は、本発明の第２の実施形態におけるフロー制御装置１００の構成例を示す図である。
【０１２９】
なお、第２の実施形態における通信システムは、図１に例示する第１の実施形態の通信システムと同様であるため、詳細な説明は省略される。
【０１３０】
図２２に示すように、第２の実施形態におけるフロー制御装置１００は、第１の手段７２２Ａと、第２の手段７２２Ｂと、第３の手段７３０Ａと、フロー処理装置通信部１０１と、を含む。なお、第１の手段７２２Ａ及び第２の手段７２２Ｂが物理外部ＮＷ端点保持フロー処理装置間最短経路等価コストマルチパス算出手段７２２に対応し、第３の手段７３０Ａは全域最小木算出部７３０に対応する。
【０１３１】
第１の手段７２２Ａは、外部ネットワークとの端点に位置する所定のフロー処理装置ごとに、他の所定のフロー処理装置との間の最短経路を計算する。所定のフロー処理装置は、外部ネットワークと接続するポートを含むフロー処理装置である。第１の手段７２２Ａは、当該最短経路として、等価コストマルチパスを計算する。なお、所定の通信は、多地点対多地点の通信である。また、第１の手段７２２Ａは、所定のフロー処理装置間のリンクが複数ある場合に、当該リンクに設定された優先度に基づいて選択されたリンクを用いて、最短経路を計算する。
【０１３２】
第２の手段７２２Ｂは、複数のフロー処理装置間のリンクが最短経路に含まれる回数に基づいて、所定の通信の通信経路に用いるリンクの候補を決定する。第２の手段７２２Ｂは、例えば、複数のフロー処理装置間のリンクが最短経路に含まれる回数が０回のリンクを、所定の通信の通信経路に用いるリンクの候補から除外する。
【０１３３】
第３の手段７３０Ａは、第２の手段７２２Ｂが決定したリンクの候補に基づいて、所定の通信の通信経路の候補として、所定のフロー処理装置をルートノードとする配信ツリーを計算する。第３の手段は、例えば、配信ツリーのうち、所定のフロー処理装置がリーフとなる部分を削除する。
【０１３４】
図２３は、第２の実施形態におけるフロー制御装置１００の動作例を示す図である。  図２３に示すように、フロー制御装置１００の第１の手段７２２Ａは、外部ネットワークとの端点に位置する所定のフロー処理装置ごとに、他の所定のフロー処理装置との間の最短経路を計算する（Ｓ５０１）。
【０１３５】
続いて、フロー制御装置１００の第２の手段７２２Ｂは、複数のフロー処理装置間のリンクが最短経路に含まれる回数に基づいて、所定の通信の通信経路に用いるリンクの候補を決定する（Ｓ５０２）。
【０１３６】
そして、フロー制御装置１００の第３の手段７３０Ａは、決定したリンクの候補に基づいて、所定の通信の通信経路の候補を計算する（Ｓ５０３）。
【０１３７】
上記のとおり、第２の実施形態におけるフロー制御装置１００は、所定の通信の通信経路に用いるリンクの候補を絞り込み、当該絞り込んだリンクの候補に基づいて、当該所定の通信経路の候補を計算する。例えば、フロー制御装置１００は、配信不要なフロー制御装置へのリンクを、通信経路に用いるリンクから除外する。そのため、第２の実施形態における通信システムは、多地点対多地点通信において、配信不要なフロー処理装置に対する配信を行わなくなるため、ネットワークの帯域の消費増加を抑制することができる。  以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。また、本発明は、ＳＤＮ（Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）の技術分野にも適用可能である。
【０１３８】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１３９】
この出願は、２０１５年１１月２４日に出願された日本出願特願２０１５−２２８７１１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４０】
１００  フロー制御装置
２００  フロー処理装置
３００  ノード
４００  リンク
５００  物理外部ＮＷ端点
６００  仮想ネットワーク
６０１  仮想Ｌ２ＳＷ
６０２  仮想外部ＮＷ端点
【図１】
2017090535.tif 000003
【図２】
2017090535.tif 000004
【図３】
2017090535.tif 000005
【図４】
2017090535.tif 000006
【図５】
2017090535.tif 000007
【図６】
2017090535.tif 000008
【図７】
2017090535.tif 000009
【図８】
2017090535.tif 000010
【図９】
2017090535.tif 000011
【図１０】
2017090535.tif 000012
【図１１】
2017090535.tif 000013
【図１２】
2017090535.tif 000014
【図１３】
2017090535.tif 000015
【図１４】
2017090535.tif 000016
【図１５】
2017090535.tif 000017
【図１６】
2017090535.tif 000018
【図１７】
2017090535.tif 000019
【図１８】
2017090535.tif 000020
【図１９】
2017090535.tif 000021
【図２０】
2017090535.tif 000022
【図２１】
2017090535.tif 000023
【図２２】
2017090535.tif 000024
【図２３】
2017090535.tif 000025
【手続補正書】
【提出日】平成30年5月18日(2018.5.18)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置であって、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する第１の手段と、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する第２の手段と、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する第３の手段と
を含むことを特徴とするフロー制御装置。
【請求項２】
前記第１の手段は、前記最短経路として、等価コストマルチパスを計算することを特徴とする請求項１に記載のフロー制御装置。
【請求項３】
前記第１の手段は、前記所定のフロー処理装置間のリンクが複数ある場合に、前記リンクに設定された優先度に基づいて選択されたリンクを用いて、前記最短経路を計算することを特徴とする請求項１又は２に記載のフロー制御装置。
【請求項４】
前記第２の手段は、前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数が０回のリンクを、前記所定の通信の通信経路に用いるリンクの候補から除外することを特徴とする請求項１乃至３のいずれかに記載のフロー制御装置。
【請求項５】
前記第３の手段は、前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補として、所定の前記フロー処理装置をルートノードとする配信ツリーを計算することを特徴とする請求項１乃至４のいずれかに記載のフロー制御装置。
【請求項６】
前記第３の手段は、前記配信ツリーのうち、所定の前記フロー処理装置がリーフとなる部分を削除することを特徴とする請求項５に記載のフロー制御装置。
【請求項７】
前記所定の通信は、多地点対多地点の通信であることを特徴とする請求項１乃至６のいずれかに記載のフロー制御装置。
【請求項８】
所定の前記フロー処理装置は、外部ネットワークと接続するポートを含むフロー処理装置であることを特徴とする請求項１乃至７のいずれかに記載のフロー制御装置。
【請求項９】
所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置におけるフロー制御方法であって、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算し、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定し、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算することを含む
フロー制御方法。
【請求項１０】
所定の通信のパケットを処理する複数のフロー処理装置を制御するフロー制御装置のコンピュータに実行させるプログラムであって、
外部ネットワークとの端点に位置する所定の前記フロー処理装置ごとに、他の前記所定のフロー処理装置との間の最短経路を計算する処理と、
前記複数のフロー処理装置間のリンクが前記最短経路に含まれる回数に基づいて、前記所定の通信の通信経路に用いるリンクの候補を決定する処理と、
前記決定したリンクの候補に基づいて、前記所定の通信の通信経路の候補を計算する処理と
を前記コンピュータに実行させるプログラム。
【国際調査報告】
2017090535.tif 000026
2017090535.tif 000027
2017090535.tif 000028
2017090535.tif 000029