(57)【要約】【課題】  ネットワークの構成を動的に変化させてコンテンツベースで情報を転送するネットワークの負荷及び消費エネルギーの上昇を抑制する。【解決手段】  制御装置は、コンテンツの名前または識別子を用いてパケットを転送するノードがコンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して、ノードのそれぞれに通知する。このとき、コンテンツの転送に関わらないノードおよびエッジを休止状態にする。制御装置は、ノードのそれぞれからスパニングツリーを構成するエッジの利用率の通知を受け、エッジの最大利用率が第１の閾値以上である場合には、新たなスパニングツリーを計算して追加する。また、エッジの最大利用率が第２の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの１つを削除する。【選択図】      図１
2015233264.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツの名前または識別子を用いてパケットを転送するノードと、
前記ノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードを休止状態にする制御装置と
を有し、
前記制御装置は、前記ノードのそれぞれから通知された前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たな前記スパニングツリーを計算して追加し、それぞれの前記ノードから通知された前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除する
ことを特徴とする通信システム。
【請求項２】
前記制御装置は、
前記スパニングツリーに含まれるエッジを、該エッジの利用率が第３の閾値以上となる混雑エッジと該エッジの利用率が前記第３の閾値未満となる非混雑エッジとに分類し、さらに、前記スパニングツリーに含まれていない休止状態のエッジをフリーエッジと分類し、
前記非混雑エッジ、前記フリーエッジ、前記混雑エッジの優先順で各エッジに重みを付して新たなスパニングツリーを計算して追加する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記制御装置は、
前記ネットワークに含まれる任意の２つのノードの最短経路を、前記ネットワークに含まれるノードの全てのペアに対して計算し、前記エッジごとに、前記エッジにおける前記最短経路が通過する数を示す共有度を計算し、
前記非混雑エッジ、前記フリーエッジ、前記混雑エッジの優先順に前記共有度を考慮した重みを各エッジに付して新たなスパニングツリーを計算して追加する
ことを特徴とする請求項２に記載の通信システム。
【請求項４】
前記ノードは、前記制御装置から新たなスパニングツリーが追加されたスパニングツリーセットの通知を受けると、コンテンツの名前のハッシュ値と前記スパニングツリーセットが含むスパニングツリーの数に応じて、該コンテンツと転送経路となるスパニングツリーとの対応を決めて、該ノードを経由する前記要求パケット或いは前記応答パケットの転送規則を更新する
ことを特徴とする請求項１乃至３のいずれかの請求項に記載の通信システム。
【請求項５】
前記ネットワークは、通信をエンドツーエンドのフローとして認識し、フロー単位で経路制御を実行できるＯｐｅｎＦｌｏｗ（オープンフロー）に準拠したネットワークであって、前記ノードはＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ（オープンフロースイッチ）で、前記制御装置はＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ（オープンフローコントローラ）であることを特徴とする請求項１乃至４のいずれかの請求項に記載の通信システム。
【請求項６】
コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成するスパニングツリー生成手段と、
前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに追加する前記スパニングツリーの計算を前記スパニングツリー生成手段に指示し、前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除するスパニングツリー制御手段と、
前記スパニングツリー制御手段の指示を受け、生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知するノード通知手段と
を有することを特徴とする制御装置。
【請求項７】
前記スパニングツリー制御手段は、
前記スパニングツリーに含まれるエッジを、該エッジの利用率が第３の閾値以上となる混雑エッジと該エッジの利用率が前記第３の閾値未満となる非混雑エッジとに分類し、さらに、前記スパニングツリーに含まれていない休止状態のエッジをフリーエッジと分類し、
前記非混雑エッジ、前記フリーエッジ、前記混雑エッジの優先順で各エッジに重みを付して新たなスパニングツリーを計算して追加する
ことを特徴とする請求項６に記載の制御装置。
【請求項８】
前記スパニングツリー制御手段は、
前記ネットワークに含まれる任意の２つのノードの最短経路を、前記ネットワークに含まれるノードの全てのペアに対して計算し、前記エッジごとに、前記エッジにおける前記最短経路が通過する数を示す共有度を計算し、
前記非混雑エッジ、前記フリーエッジ、前記混雑エッジの優先順に前記共有度を考慮した重みを各エッジに付して新たなスパニングツリーを計算して追加する
ことを特徴とする請求項７に記載の制御装置。
【請求項９】
コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成し、
前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに前記スパニングツリーを計算して追加し、前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除し、
生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知する
ことを特徴とする制御方法。
【請求項１０】
コンピュータを、
コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成するスパニングツリー生成機能手段と、
前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに追加する前記スパニングツリーの計算を前記スパニングツリー生成機能手段に指示し、前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除するスパニングツリー制御機能手段と、
前記スパニングツリー制御機能手段の指示を受け、生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知するノード通知機能手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、制御装置、制御方法およびプログラムに関し、特に、コンテンツの名前又は識別子により通信を行う通信システム、制御装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ＩＰアドレスなど位置依存型のアドレスではなく、コンテンツの名前（ＩＤ：Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を用いて通信を行うネットワークアーキテクチャが、注目を集めている。このようなコンテンツベースのネットワークアーキテクチャに関する発明として特許文献１乃至特許文献４に開示されているものがある。
【０００３】
特許文献１は、コンテンツの名前又は識別子により通信を行うネットワークである、コンテンツセントリックネットワーク（ＣＣＮ：Ｃｏｎｔｅｎｔ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋ）に関して開示する。
【０００４】
特許文献１に記載のネットワークは、当該ネットワークに属するノードが、コンテンツの名前又は識別子により、当該コンテンツの問い合わせ（クエリ、Ｑｕｅｒｙ）を例えばブロードキャストすることで、当該コンテンツを要求する。要求されたコンテンツを保存するホストは、当該コンテンツを、当該コンテンツを要求した（問い合わせた）ノードに対して返送する。
【０００５】
また、特許文献１に記載のネットワークでは、コンテンツを保存するホストのノードと、当該コンテンツを要求したノードとの間の中間ノードに、当該コンテンツをキャッシュすることを開示する。中間ノードにキャッシュされたコンテンツは、当該コンテンツを要求する第２のノードによって利用される。第２のノードは、コンテンツを保存するホストまでの全経路を辿ることなく、中間ノードにキャッシュされたコンテンツを利用することができる。
【０００６】
特許文献２は、コンテンツをスパニングツリーによって配信する通信ネットワークに関して開示する。
【０００７】
特許文献２に記載の通信ネットワークでは、複数のスパニングツリーを構築し、さらにデータ（コンテンツ）を複数のブロックに分割して、その複数のツリーに適切にブロックを割り振ることでデータ（コンテンツ）の配信を行う。特許文献２では、複数のスパニングツリーを同時に用いることによって、ネットワーク上の空き資源を有効に活用できる。
【０００８】
特許文献３は、コンテンツセントリックネットワークにおけるコンテンツルーティングにおいて、コンテンツを記憶する携帯機器に対する頻繁なコンテンツ要求に起因する携帯機器のバッテリー電力の消耗を防ぐ技術を開示する。
【０００９】
特許文献３が開示する技術では、電力制限されていない固定型装置のメディアサーバに携帯機器のコンテンツをキャッシュし、該コンテンツの要求に対しては、携帯機器に接続することなくメディアサーバが処理する。メディアサーバ以外の装置から携帯機器に対する接続は禁止され、要求されたコンテンツをメディアサーバがキャッシュしていない場合は、メディアサーバが携帯機器からそのコンテンツを取得してキャッシュする。
【００１０】
特許文献４は、コンテンツ配信におけるネットワークの省電力化を図るにあたって、データをキャッシュする際に消費する電力量と、データを配信する際に消費する電力量の両方を考慮してネットワークの省電力化を図る技術を開示する。
【００１１】
特許文献４が開示する技術では、ルータの接続関係を示すトポロジー情報を管理するキャッシュ配信サーバが、このトポロジー情報を用いてデータをキャッシュするルータと、データを転送するルータを示す経路の組み合わせを抽出する。キャッシュ配信サーバは、データをキャッシュする際に消費する電力量と、データを配信する際に消費する電力量の和を算出して、抽出した組み合わせのうち、算出した電力量の和が最小となる組み合わせを選択する。そして、選択した組み合わせを示すキャッシュリストを生成して各ルータに配信する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−２７８６２４号公報
【特許文献２】特開２００８−０７８７７５号公報
【特許文献３】特開２０１２−１２８８４７号公報
【特許文献４】特開２０１３−１８３２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
コンテンツの名前又は識別子により通信を行うネットワークにおいて、ノードがコンテンツをキャッシュすることにより、当該ネットワークにおける消費エネルギーが上昇してしまうという課題がある。
【００１４】
特許文献１に記載のネットワークでは、コンテンツの問い合わせ（クエリ、Ｑｕｅｒｙ）をブロードキャストするため、ネットワークの負荷が上昇するという課題が生じる。特に、ネットワークの規模が大きくなると、コンテンツを要求するノードの数も増大するため、この課題は顕著となる。また、ブロードキャストされた問い合わせ（クエリ、Ｑｕｅｒｙ）に対して、当該コンテンツをキャッシュしている複数の中間ノードがコンテンツを返送すると、同じコンテンツが複数返送されることになり、ネットワークの負荷はさらに上昇してしまう。
【００１５】
特許文献２に記載のネットワークのように、複数のスパニングツリーを用いてコンテンツを分割して配信すると、１つのコンテンツの配信に関わるノードの数が多くなる。そのため、１つのコンテンツの配信に対して多くのノードを稼働させる必要があり、ネットワーク全体のエネルギー消費量が増大するという課題が生じる。
【００１６】
特許文献３に記載のネットワークは、携帯機器のバッテリー消費を防ぐことができるものの、ネットワークの負荷が上昇するという点においては、特許文献１のネットワークと同様の課題を内在している。
【００１７】
一方、特許文献４のネットワークはキャッシュの利用量を少なくすることでネットワークにおける消費電力を削減する。しかし、ネットワークの構成を動的に変化させてネットワークの負荷及び消費エネルギーを抑制する技術ではない。
【００１８】
本発明は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させてネットワークの負荷及び消費エネルギーを抑制する通信システム、制御装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記の目的を実現するために、本発明の一形態である通信システムは、コンテンツの名前または識別子を用いてパケットを転送するノードと、前記ノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードを休止状態にする制御装置と、を含み、前記制御装置は、前記ノードのそれぞれから通知された前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たな前記スパニングツリーを計算して追加し、それぞれの前記ノードから通知された前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除することを特徴とする。
【００２０】
本発明の他の形態である制御装置は、コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成するスパニングツリー生成手段と、前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに追加する前記スパニングツリーの計算を前記スパニングツリー生成手段に指示し、前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除するスパニングツリー制御手段と、前記スパニングツリー制御手段の指示を受け、生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知するノード通知手段とを含むことを特徴とする。
【００２１】
また、本発明の別の形態である制御方法は、コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成し、前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに前記スパニングツリーを計算して追加し、前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除し、生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知することを特徴とする。
【００２２】
また、本発明のさらに別の形態であるプログラムは、コンピュータを、コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成するスパニングツリー生成機能手段と、前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに追加する前記スパニングツリーの計算を前記スパニングツリー生成機能手段に指示し、前記スパニングツリーを構成するエッジの前記最大利用率が第２の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの１つを削除するスパニングツリー制御機能手段と、前記スパニングツリー制御機能手段の指示を受け、生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知するノード通知機能手段として機能させることを特徴とする。
【発明の効果】
【００２３】
本発明は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させてネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態の通信システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態の制御装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態の制御方法の動作を示すフロー図である。
【図４】本発明の第１の実施形態の制御装置のハードウェアの構成を示すブロック図である。
【図５】本発明の第１の実施形態のプログラムが実現する機能手段の構成を示すブロック図である。
【図６】本発明の第２の実施形態のノードの構成を示すブロック図である。
【図７】本発明の第２の実施形態の制御装置の構成を示すブロック図である。
【図８】本発明の第２の実施形態の制御装置の動作を示すフロー図である。
【図９】本発明の第２の実施形態の通信システムの動作を示すシーケンス図である。
【図１０】本発明の第２の実施形態の制御装置の動作を示すフロー図である。
【図１１】本発明の第２の実施形態の制御装置の動作を示すフロー図である。
【図１２】スパニングツリーの半径を説明する図である。
【図１３】本発明の第３の実施形態の制御装置の動作の概要を示すフロー図である。
【図１４】本発明の第３の実施形態の制御装置の動作を示すフロー図である。
【図１５】オープンフロー技術により構成された通信システムの概要を示す図である。
【図１６】フローテーブルの各エントリ（フローエントリ）の構成例を示す図である。
【図１７】本発明の第４の実施形態の通信システムの構成を示すブロック図である。
【図１８】本発明の第４の実施形態のオープンフロースイッチの構成を示すブロック図である。
【図１９】本発明の第４の実施形態のオープンフローコントローラの構成を示すブロック図である。
【図２０】本発明の第４の実施形態の処理規則決定部が生成する処理規則の例を示す図である。
【図２１】本発明の第４の実施形態の通信システムの動作を示すシーケンス図である。
【発明を実施するための形態】
【００２５】
本発明を実施するための形態について図面を参照して説明する。
【００２６】
尚、実施の形態は例示であり、開示の装置及びシステムは、以下の実施の形態の構成には限定されない。
【００２７】
まず、本発明の実施形態の通信システムが適用されるネットワークの概要について説明する。
【００２８】
図１は、本発明の第１の実施形態の通信システムの構成を示すブロック図である。  第１の実施形態の通信システム１は、コンテンツの名前又は識別子により通信を行うネットワークアーキテクチャであるコンテンツセントリックネットワーク（ＣＣＮ）を構成する。
【００２９】
第１の実施形態の通信システム１は、複数のノード１０−１乃至１０−４（以下、特に区別の必要がない場合は「ノード１０」と称する。）、制御装置２０、通信端末３０およびサーバ４０を含んで構成される。
【００３０】
なお、図面に付記した参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００３１】
また、図１は、後述する第１の実施形態乃至第３の実施形態の通信システムに共通の構成を示すブロック図として使用する。
【００３２】
ＣＣＮは、コンテンツの名前又は識別子（コンテンツＩＤ）を用いて、通信を行うネットワークアーキテクチャである。ＣＣＮにおいて、ノードは、コンテンツを要求するための要求パケット（クエリ、コンテンツの問い合わせ、コンテンツの要求）と、コンテンツを配送するための応答パケットとを送受信する。要求パケットは、ノードが要求するコンテンツの名前又は識別子（コンテンツＩＤ）を含み、応答パケットは、コンテンツとコンテンツＩＤとを含む。
【００３３】
図１において、サーバ４０はコンテンツを格納、蓄積するコンテンツサーバである。ノード１０−４はサーバ４０を接続したコンテンツ配信のホストとなるノードである。ノード１０−１には、要求パケットおよび応答パケットを送受信する通信端末３０が接続されている。ノード１０−２およびノード１０−３は、要求パケットおよび応答パケットを転送する中間ノードである。
【００３４】
ＣＣＮにおいて、ネットワークに含まれる各ノードは、要求パケットを受信した場合、当該要求パケットに含まれるコンテンツＩＤにより、自装置に当該コンテンツＩＤに対応するコンテンツを有しているか否か（キャッシュしているか否か）を検索する。ノードは、当該コンテンツを有している場合、当該コンテンツを格納した応答パケットを返送することにより、要求パケットを送信してきたノードにそのコンテンツを配送する。
【００３５】
ＣＣＮにおいて、コンテンツを有するノードと、当該コンテンツを要求したノードとの間の中間ノードは、当該コンテンツをキャッシュする。
【００３６】
中間ノードは、要求パケットを受信した場合、当該要求パケットで要求されているコンテンツを、自装置がキャッシュしているか否かを検索する。中間ノードは、当該コンテンツをキャッシュしている場合には、当該コンテンツを返送する。また、中間ノードは、受信した応答パケットに含まれるコンテンツが、自装置にキャッシュされていない場合、当該コンテンツをキャッシュする。
【００３７】
したがって、要求パケットを要求したノードは、本来であれば、ホストのノードからコンテンツの配信を受けなければならないところ、どの中間ノードにおいてもコンテンツがキャッシュされていれば、その中間ノードから当該コンテンツを取得することができる。そのため、ＣＣＮでは、コンテンツの配送のための経路を短くすることができ、ネットワーク全体の負荷を低減することができる。
【００３８】
ＣＣＮでは、ネットワークに含まれる各ノードにアドレスを与えずにコンテンツの転送を可能にする。
【００３９】
ＣＣＮでは、例えば、要求パケットを送信したノードから、コンテンツを保持しているノードまでのデータリンク層の入力インターフェース（要求パケットを受信した通信ポートに関する情報）を保持することにより、コンテンツの転送を実現する。
【００４０】
ＣＣＮでは、例えば、コンテンツを転送する応答パケットのヘッダ部分に、コンテンツの転送経路上のノードにおける入力インターフェースに関する情報を格納する。また、ＣＣＮでは、例えば、要求パケットを受信した各ノードが、一時的に入力インターフェースを記憶してもよい。
【００４１】
上述したコンテンツの名前又は識別子により通信を行うネットワークを背景とした、本発明の第１の実施形態を説明する。
【００４２】
本発明の第１の実施形態の通信システム１において、ノード１０はコンテンツの名前または識別子を用いてパケットを転送する。つまり、ノード１０は、コンテンツの名前又は識別子（コンテンツＩＤ）により、コンテンツの要求（要求パケットの送受信）及びコンテンツの配信（応答パケットの送受信）を行う。
【００４３】
ノード１０はスパニングツリーを用いて要求パケットを転送する。また、応答パケットは、要求パケットが送信されてきた経路を辿って、当該要求パケットを送信したノード１０まで転送される。つまり、スパニングツリーは、ノード１０がコンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となる。
【００４４】
スパニングツリーは、コンテンツの要求を行う通信端末３０が接続されたノード１０−１から、コンテンツを蓄積したサーバ４０に接続されたノード１０−４に至る最小全域木である。
【００４５】
制御装置２０は、このようなコンテンツの要求および応答の転送経路となるスパニングツリーを計算してネットワーク内のノード１０のそれぞれに通知し、コンテンツの転送に関わらないノード１０を休止状態にする。
【００４６】
なお、スパニングツリーを構成する各ノード１０はエッジまたはリンクと称する通信経路で接続されている。この通信経路は、ノード１０が他の装置との間で通信するためのリンクであり、例えば、ノード１０と他のノード１０との間の通信リンクや、ノード１０と通信端末３０との間の通信リンクである。以降、この通信経路を「エッジ」と称して説明する。
【００４７】
制御装置２０はノード１０のそれぞれに対して図１の点線で示す通信リンクを備えており、前述したスパニングツリーの通知や休止状態にするための通知を行うと共に、既存の使用中のスパニングツリーを構成するエッジの利用率の通知を受ける。
【００４８】
制御装置２０は通知されたスパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たなスパニングツリーを計算して追加する。また、制御装置２０は通知されたスパニングツリーを構成するエッジの最大利用率が第２の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの１つを削除する。
【００４９】
なお、ここでエッジの利用率とは、エッジが有するトラフィックの転送キャパシティ（単位時間に転送可能なトラフィック量の上限値）に対し、ある単位時間におけるそのエッジ上に流れるトラフィック量の割合を云う。例えば、転送キャパシティが１０Ｍｂｐｓのエッジにおいて８Ｍｂｐｓのトラフィックが流れていた場合、利用率は０．８となる。そして、エッジの最大利用率とは、制御装置２０が通知を受けたエッジの利用率の中で最大の値となる利用率のことを云う。
【００５０】
第１の実施形態の制御装置を説明する。
【００５１】
図２は、本発明の第１の実施形態の制御装置の構成を示すブロック図である。
【００５２】
制御装置２０は、スパニングツリー生成手段２０１、スパニングツリー制御手段２０２およびノード通知手段２０３を含んで構成される。
【００５３】
スパニングツリー生成手段２０１は、ノード１０を複数含むネットワークにおいて、コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成する。ノード１０はコンテンツの名前または識別子を用いてパケットを転送するノードである。
【００５４】
スパニングツリー制御手段２０２は、ノード１０のそれぞれからスパニングツリーを構成するエッジの利用率の通知を受ける。
【００５５】
そして、スパニングツリー制御手段２０２は、スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たに追加するスパニングツリーの計算をスパニングツリー生成手段２０１に指示する。また、スパニングツリー制御手段２０２は、スパニングツリーを構成するエッジの最大利用率が第２の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの１つを削除する制御を行う。
【００５６】
ノード通知手段２０３は、スパニングツリー制御手段２０２の指示を受け、生成したスパニングツリーおよび削除したスパニングツリーをノード１０のそれぞれに通知し、また、コンテンツの転送に関わらないノード１０には休止状態にすることを通知する。
【００５７】
次に、本発明の第１の実施形態の制御方法を説明する。
【００５８】
図３は、本発明の第１の実施形態の制御方法の動作を示すフロー図である。
【００５９】
まず、ノード１０を複数含むネットワークにおいて、コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成する（Ｓ１０１）。
【００６０】
ノード１０はコンテンツの名前または識別子を用いてパケットを転送するノードである。
【００６１】
ノード１０のそれぞれからスパニングツリーを構成するエッジの利用率の通知を受ける。そして、スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たにスパニングツリーを計算して追加する。また、スパニングツリーを構成するエッジの最大利用率が第２の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの１つを削除する（Ｓ１０２）。
【００６２】
生成したスパニングツリーおよび削除したスパニングツリーをノード１０のそれぞれに通知し、コンテンツの転送に関わらないノード１０には休止状態にすることを通知する（Ｓ１０３）。
【００６３】
次に、第１の実施形態のプログラムを説明する。
【００６４】
図４は、第１の実施形態の制御装置２０のハードウェア構成を示すブロック図である。なお、図４は、後述する第２の実施形態および第３の実施形態の制御装置や第４の実施形態のオープンフローコントローラのハードウェアに共通の構成を示すブロック図である。
【００６５】
図４を参照すると、制御装置２０は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、次の構成を備える。
【００６６】
ハードウェア構成として、制御部であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１１、主記憶部２１２、補助記憶部２１３を含む。主記憶部２１２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、補助記憶部２１３は、磁気ディスク、半導体メモリ等の不揮発メモリから構成されるハードディスク装置を含む。
【００６７】
また、ハードウェア構成として、ネットワークを介してデータの送受信を行う通信制御部２１４、ディスプレイによる表示部２１５、キー操作を行う入力部２１６、上記各構成要素を相互に接続するシステムバス２１７等を含む。
【００６８】
本実施形態の制御装置２０は、その動作を、制御装置２０の内部に各機能を実現するプログラムを組み込んだＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品からなる回路部品を実装して実現してもよい。また、本実施形態の制御装置２０は、各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のＣＰＵ２１１で実行することにより、ソフトウェア的に実現してもよい。
【００６９】
すなわち、ＣＰＵ２１１は、補助記憶部２１３に格納されているプログラムを、主記憶部２１２にロードして実行し、あるいは補助記憶部２１３上で直接実行し、制御装置２０の動作を制御することにより、各機能をソフトウェア的に実現する。
【００７０】
本発明の第１の実施形態のプログラムが実現する機能手段の構成を図５に示す。
【００７１】
本実施形態のプログラムは、コンピュータを、図５に示すスパニングツリー生成機能手段２２１、スパニングツリー制御機能手段２２２およびノード通知機能手段２２３として機能させる。
【００７２】
スパニングツリー生成機能手段２２１は、ノード１０を複数含むネットワークにおいて、コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成する機能を有する。
【００７３】
ノード１０はコンテンツの名前または識別子を用いてパケットを転送するノードである。
【００７４】
スパニングツリー制御機能手段２２２は次の機能を有する。
【００７５】
ノード１０のそれぞれからスパニングツリーを構成するエッジの利用率の通知を受ける。そして、スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第１の閾値以上である場合には、新たにスパニングツリーを計算して追加し、スパニングツリーを構成するエッジの最大利用率が第２の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの１つを削除する。
【００７６】
ノード通知機能手段２２３は、スパニングツリー制御機能手段２２２の指示を受け、生成したスパニングツリーおよび削除したスパニングツリーをノード１０のそれぞれに通知し、コンテンツの転送に関わらないノード１０には休止状態にすることを通知する機能を有する。
【００７７】
以上に説明したように、本実施形態では、コンテンツに関わるトラフィックの転送に際し、複数のノードとエッジで構成されたスパニングツリーを用いて、コンテンツの転送に関わるノード及びエッジを最小限に抑えるようにしている。そして、コンテンツの転送に関わらないノードを休止状態にすることでネットワーク全体の電力消費を抑えている。また、スパニングツリーを構成するエッジの利用率を監視して、コンテンツの転送に関わるノード及びエッジを最小限に抑えたことに起因して利用率が増大したような場合には、輻輳緩和のためにスパニングツリーを追加する。一方、スパニングツリーが複数設けられている状況で、あるスパニングツリーにおいて利用率が低下したような場合には、スパニングツリーを削除する制御を行って、休止状態に移行可能なノードの数を増やして電力消費を抑えるようにしている。
【００７８】
このように、本実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【００７９】
次に、第２の実施形態を説明する。
【００８０】
第２の実施形態の通信システムの構成は、図１に示した通信システム１と同じ構成である。
【００８１】
第２の実施形態において、通信端末３０は、例えば、携帯電話、スマートフォン、パーソナルコンピュータ、タブレット型端末、サーバを含む通信機能を有する装置である。そして、通信端末３０が要求データであるコンテンツを要求する。
【００８２】
通信端末３０は、コンテンツを要求するための要求パケットを、通信端末３０に接続するノード１０−１に対して送信する。通信端末３０は、要求するコンテンツを一意に識別可能なコンテンツＩＤを、当該要求パケットに含める。
【００８３】
通信端末３０は、要求したコンテンツを受け取る。通信端末３０は、要求したコンテンツを含む応答パケットを、ノード１０−１を介して受信する。
【００８４】
サーバ４０は、コンテンツを格納しており、当該コンテンツの要求に応じて、当該コンテンツを提供する。
【００８５】
ノード１０は、例えば、スイッチやルータ、携帯電話網の基地局、モバイルルータ等の、通信を中継する装置である。なお、モバイルルータは、例えば、携帯電話の３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）回線や無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のネットワークを中継する端末である。
【００８６】
制御装置２０は、要求パケットや応答パケットの転送経路となるネットワーク内のスパニングツリーの生成や削除の制御を行う装置である。制御装置２０は、一般的なコンピュータ装置によって実現することができる。
【００８７】
第２の実施形態におけるノード１０と制御装置２０の構成を、それぞれ図６および図７を参照して説明する。
【００８８】
図６は、本実施形態のノード１０の構成を示すブロック図である。
【００８９】
ノード１０は、第１の通信部１０１、第２の通信部１０２、制御部１０３、コンテンツ格納部１０４および処理規則ＤＢ（ＤａｔａＢａｓｅ）１０５を含む構成になっている。
【００９０】
第１の通信部１０１は、制御装置２０と通信リンクで接続され、制御装置２０から通知される制御信号を受信する手段として機能する。
【００９１】
また、第１の通信部１０１は、自ノード１０の状態を示す信号やネットワークの接続形態を示すネットワークトポロジー（以降はトポロジーと称する。）に関する情報を制御装置２０に通知する手段として機能する。なお、第１の通信部１０１は、制御部１０３の指示によって、当該ノード１０の状態を示す信号や、トポロジーに関する情報を通知してもよい。
【００９２】
ノード１０の状態を示す情報は、例えば、コンテンツ格納部１０４のうち、使用されている容量、又は、使用されていない容量である。また、ノード１０の状態を示す情報は、例えば、ノード１０で生じた障害に関する情報である。また、ノード１０の状態を示す情報は、例えば、パケットの送受信に用いるポート（入力／出力インターフェース）に関する情報である。また、ノード１０の状態を示す情報は、例えば、処理規則ＤＢ１５の更新に関する情報である。
【００９３】
ノード１０の状態を示す情報は、これらの例に限られず、ノード１０の状態を示す情報であれば、どのような情報であってもよい。
【００９４】
トポロジーに関する情報は、通信システム１に含まれる複数のノード１０のそれぞれの接続状態に関する情報である。
【００９５】
トポロジーに関する情報は、例えば、ノード１０に接続するエッジの利用率を含むトラフィックに関する情報である。また、トポロジーに関する情報は、例えば、ノード１０に接続するエッジで生じた障害（例えば、エッジの切断など）に関する情報である。また、トポロジーに関する情報は、例えば、ノード１０に新たに接続したエッジ、又は、ノード１０に新たに接続した対向ノードに関する情報である。なお、トポロジーに関する情報は、これらの例に限られず、通信システム１を構成するネットワークのトポロジーに関する情報であれば、どのような情報であってもよい。
【００９６】
第２の通信部１０２は、対向するノード１０または通信端末３０とエッジで接続され、接続されたノード１０または通信端末３０との間で、パケットを送受信する手段として機能する。
【００９７】
コンテンツ格納部１０４は、コンテンツをキャッシュする（格納する）手段として機能する。コンテンツ格納部１０４は、例えば、制御部１０３からの指示に応じて、応答パケットに含まれるコンテンツを格納する。コンテンツ格納部１０４は、例えば、コンテンツＩＤと、コンテンツとを対応させて格納する。
【００９８】
処理規則ＤＢ１０５は、受信したパケットを処理するための処理規則を格納する。処理規則ＤＢ１０５は、例えば、コンテンツＩＤと、当該コンテンツＩＤを有するパケットの転送先とを対応付けて記憶するルーティングテーブルであってもよい。処理規則ＤＢ１０５は、通信システムにおけるスパニングツリーに関する情報を記憶する。なお、スパニングツリーは、制御装置２０から第１の通信部１０１を介して通知される。
【００９９】
制御部１０３は、第２の通信部１０２を介して要求パケットを受け取り、当該要求パケットに含まれるコンテンツＩＤに対応するコンテンツが、コンテンツ格納部１０４に格納されているか否かを検索する。制御部１０３は、例えば、要求パケットに含まれるコンテンツＩＤを抽出し、当該抽出したコンテンツＩＤをキーとして、コンテンツＩＤに対応するコンテンツがコンテンツ格納部１０４に格納されているか否かを検索する。
【０１００】
制御部１０３は、コンテンツ格納部１０４に当該コンテンツが格納されている場合には、当該コンテンツを含めた応答パケットを、当該コンテンツを要求してきたノード１０宛に送信する。
【０１０１】
一方、制御部１０３は、コンテンツ格納部１０４に当該コンテンツが格納されていない場合には、要求パケットを、制御装置２０に転送する。なお、この場合において、制御部１０３は、処理規則ＤＢ１０５を参照して、当該要求パケットを転送するノード１０を決定してもよい。
【０１０２】
制御部１０３は、制御装置２０から第１の通信部１０１を介して受信した、パケットを処理するための処理規則を用いて、処理規則ＤＢ１０５を更新する。制御部１０３は、例えば、要求パケットの転送先を示す処理規則を受信し、当該受信した処理規則を用いて、処理規則ＤＢ１０５を更新する。
【０１０３】
制御部１０３は、上述したノード１０の状態を示す信号やトポロジーに関する情報を収集し、第１の通信部１０１を介して、制御装置２０に通知する。
【０１０４】
次に、本実施形態の制御装置の構成を説明する。
【０１０５】
図７は、本実施形態の制御装置２０の構成を示すブロック図である。
【０１０６】
制御装置２０は、通信部２３１、制御部２３２、トポロジーＤＢ２３３、処理規則ＤＢ２３４およびツリー記憶部２３５を含む構成になっている。なお、第１の実施形態におけるスパニングツリー生成手段２０１、スパニングツリー制御手段２０２およびノード通知手段２０３は、制御部２３２が、トポロジーＤＢ２３３、処理規則ＤＢ２３４、ツリー記憶部２３５および通信部２３１を適宜制御して実現したものである。
【０１０７】
通信部２３１は、通信システム１に含まれる複数のノード１０のそれぞれと、図１の点線で示した通信リンクにより接続され、各ノード１０と通信する手段として機能する。
【０１０８】
トポロジーＤＢ２３３は、複数のノード１０のそれぞれから収集した、ネットワークのトポロジーに関する情報を格納する。トポロジーに関する情報は、通信システム１に含まれる複数のノード１０のそれぞれの接続状態に関する情報である。
【０１０９】
トポロジーに関する情報は、例えば、ノード１０に接続するエッジの利用率に関する情報である。また、トポロジーに関する情報は、例えば、ノード１０に接続するエッジで生じた障害（例えば、エッジの切断など）に関する情報である。また、トポロジーに関する情報は、例えば、ノード１０に新たに接続したエッジまたはノード１０に新たに接続した対向ノードに関する情報である。
【０１１０】
なお、トポロジーに関する情報は、これらの例に限られず、通信システム１を構成するネットワークのトポロジーに関する情報であれば、どのような情報であってもよい。
【０１１１】
処理規則ＤＢ２３４は、スパニングツリーを追加する基準、スパニングツリーを削除する基準、新しいスパニングツリーの作り方、スパンニングツリーの削除の仕方等を記憶している。
【０１１２】
ツリー記憶部２３５は、制御装置２０が生成した、通信システム１を構成するネットワーク内の現在使用中のすべてのスパニングツリーの情報を記憶している。
【０１１３】
制御部２３２は、通信部２３１、トポロジーＤＢ２３３、処理規則ＤＢ２３４およびツリー記憶部２３５を制御して、以降に説明する制御装置２０の処理動作を実現する。
【０１１４】
図１に示した通信システム１では、上述した制御装置２０が１つである場合の例を示しているが、複数の制御装置２０が設備されていてもよい。制御装置２０が複数設備されている場合には、複数の制御装置２０のうちの１つがマスターとなり、ネットワーク内の複数のノード１０のそれぞれを管理・制御する。そして、マスターの制御装置２０に障害が生じた場合には、他の制御装置２０がマスターとなり、障害が生じた制御装置２０の処理を引き継ぐように構成する。
【０１１５】
上記のように構成された制御装置２０が実行する制御動作について説明する。
【０１１６】
制御装置２０は、初期スパニングツリーの生成、その後のエッジの利用率に応じたスパニングツリーの追加生成およびスパニングツリーの削除の制御動作を実行する。
【０１１７】
まず、初期スパニングツリーの生成について説明する。
【０１１８】
図８は、制御装置２０の動作を示すフロー図である。
【０１１９】
制御装置２０は、図８に示す動作を実行して、通信システム１を構成するネットワーク内でコンテンツの転送経路となる初期スパニングツリーを計算して生成する（Ｓ２０１）。
【０１２０】
制御装置２０の制御部２３２は、トポロジーＤＢ２３３に収集、蓄積されている通信システム１を構成するネットワークのトポロジーに関する情報を参照して、コンテンツの転送経路となる初期スパニングツリーを計算して生成する。
【０１２１】
初期スパニングツリーは、サーバ４０に接続するノード１０−４に、ネットワーク内の通信端末３０が接続されたすべてのノード１０−１が接続することができるスパニングツリー（最小全域木）である。初期スパニングツリーは、サーバ４０の全てのコンテンツの転送経路として使用される。
【０１２２】
制御部２３２は、トポロジーに関する情報を参照して、通信システム１を構成するネットワーク内のそれぞれのエッジの重みを「１」として、クラスカル法（Ｋｒｕｓｋａｌ’ｓ Ａｌｇｏｒｉｔｈｍ）を用いて、初期スパニングツリーを算出する。
【０１２３】
制御部２３２は、計算した初期スパニングツリーのトポロジー情報を、通信部２３１を介してネットワーク内のすべてのノード１０のそれぞれに通知する（Ｓ２０２）。
【０１２４】
また、制御部２３２は、スパニングツリーの計算の過程で識別した、コンテンツの転送に関わらないノード１０（中間ノード）に対して、通信部２３１を介して休止状態にすることを通知する（Ｓ２０３）。
【０１２５】
以上の動作で初期スパニングツリーが生成され、そのトポロジー情報が各ノード１０に通知されると、各ノード１０では次のような動作が実行される。
【０１２６】
ノード１０の制御部１０３は、制御装置２０から通知を受けた初期スパニングツリーのトポロジー情報に基づいて、処理規則ＤＢ１０５に蓄積されているパケットを転送する規則を更新する。つまり、該ノード１０を経由する要求パケット或いは応答パケット（パケットｐ）を、初期スパニングツリーでこのパケットｐの要求ノードと応答ノードの間の最短経路を用いて転送するように、パケットを転送する規則を更新する。ここで「ｐ」はコンテンツを意味し、「パケットｐ」は、コンテンツｐを要求する要求パケット或いはコンテンツｐを含む応答パケットを意味する。
【０１２７】
また、ノード１０の制御部１０３は、休止状態となるノード１０と接続する自装置の第２の通信部１０２の通信インターフェースを休止状態にする。例えば、ノード１０が、シェルフ（装置筐体）に、各エッジに対応する通信インターフェース用のカードを装着してエッジと接続している場合、休止状態のノード１０との間のエッジに対応するカードを休止状態とする。これにより、ノード１０では、通信インターフェース用のカード単位で消費電力を削減することができる。
【０１２８】
一方、休止状態にすることを通知されたノード１０の制御部１０３は、制御装置２０と通信ができ、再度動作状態にすることができる必要最小限度の機能を残して、該ノード１０の機能を休止させる。
【０１２９】
上述したように、本実施形態では、初期スパニングツリーをすべてのコンテンツの転送経路にして、ネットワークを構成する一部のエッジにトラフィックを集約することにより消費電力の削減を図っている。
【０１３０】
一方、一部のエッジにトラフィックを集約することによりトラフィックの輻輳が発生する可能性がある。
【０１３１】
そのため、本実施形態では、スパニングツリーの各エッジの利用率を該スパニングツリーに関わる各ノードから収集し、その利用率の変化で動的にネットワーク内のスパニングツリーを増減させる制御を行う。なお、エッジの利用率は、第１の実施形態で説明したように、該エッジが有するトラフィックの転送キャパシティに対し、ある単位時間における該エッジ上に流れるトラフィック量の割合を云う。
【０１３２】
次に、エッジの利用率が増加したことに伴うスパニングツリーの追加について説明する。
【０１３３】
図９は、本実施形態における通信システム１の動作を示すシーケンス図である。
【０１３４】
スパニングツリーを構成する各ノード１０（図７ではノード１０−ａ乃至１０−ｄ）は、使用中のスパニングツリーに含まれるエッジの利用率を制御装置２０に通知する（Ｓ３０１）。このノード１０から制御装置２０へのエッジの利用率の通知は、ノード１０が周期的に実施してもよいし、制御装置２０からの要求に基づいて実施してもよい。
【０１３５】
制御装置２０は、使用中のスパニングツリーに含まれるエッジの利用率の最大値である最大利用率が所定の閾値（第１の閾値）を超えた場合には、追加する新たなスパニングツリーを計算する（Ｓ３０２）。
【０１３６】
制御装置２０は、新たにスパニングツリーを計算すると、新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード１０のそれぞれに通知する（Ｓ３０３）。
【０１３７】
新たなスパニングツリーセットのトポロジーを通知された各ノード１０は、そのトポロジー情報に基づいて、処理規則ＤＢ１０５に蓄積されているパケットを転送する規則を更新する。
【０１３８】
また、トポロジーの変更により、実際のネットワーク構成もそれに対応させて変更する。例えば、休止中であったノード１０が稼働状態にさせられ、稼働状態になったノード１０と対向するエッジの通信インターフェースを動作状態にする等の制御が各ノード１０で実施される。
【０１３９】
図１０は、本実施形態における制御装置２０の動作を示すフローチャートである。図１０に示す動作を実行することにより、制御装置２０は、新たなスパニングツリーを追加する。
【０１４０】
制御装置２０はスパニングツリーに含まれるエッジの利用率を各ノードから収集する（Ｓ４０１）。収集した各エッジの利用率は、例えば、トポロジーＤＢ２３３に格納されている。
【０１４１】
制御装置２０の制御部２３２は、収集した利用率のなかで一番大きな値を有する最大利用率を識別する（Ｓ４０２）。
【０１４２】
制御部２３２は、識別したエッジの最大利用率を、処理規則ＤＢ２３４に予め設定してあるスパニングツリーを追加する基準である第１の閾値と比較する（Ｓ４０３）。
【０１４３】
エッジの最大利用率が第１の閾値より大きい場合には（Ｓ４０３、Ｙｅｓ）、制御部２３２は、処理規則ＤＢ２３４に規定されている新しいスパニングツリーの作り方にしたがって、新たなスパニングツリーを計算する（Ｓ４０４）。
【０１４４】
制御部２３２は、新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード１０に通知する（Ｓ４０５）。
【０１４５】
一方、ステップＳ４０３の比較動作で、エッジの最大利用率が第１の閾値より小さい場合には（Ｓ４０３、Ｎｏ）、制御装置２０は新たなスパニングツリーを計算することなく処理を終了する。
【０１４６】
以上のように、制御装置２０は、定期的に各ノードからエッジの利用率の報告を受け、使用中のスパニングツリーに含まれるエッジの利用率が高くなると新たなスパニングツリーを追加する。このとき、制御装置２０の制御部２３２は、使用中のスパニングツリーに含まれるエッジの最大利用率が所定の第１の閾値を超えているか否かを判断する。
【０１４７】
ここで、利用率の閾値について説明する。
【０１４８】
上述した第１の閾値は、スパニングツリーを追加するか否かの判定に用いる閾値である。第１の閾値は数値で表され、例えば「０．９」である。
【０１４９】
また、後述するように、使用中のスパニングツリーに含まれるエッジの利用率が低くなった際には、スパニングツリーを削除する動作が行われる。その際に、スパニングツリーを削除するか否かの判定に用いる閾値を第２の閾値と称す。第２の閾値は数値で表され、例えば「０．６」である。
【０１５０】
さらに、第１の閾値と第２の閾値以外の閾値で、使用中のスパニングツリーに含まれるエッジの混雑度合の判定に用いる第３の閾値がある。つまり、エッジの利用率の大きさに応じてエッジを次のように分類する。
【０１５１】
利用率が第３の閾値以上のエッジを混雑エッジと称し、利用率が第３の閾値未満のエッジを非混雑エッジと称する。このとき、使用中のスパニングツリーに含まれていない休止状態のエッジをフリーエッジと称する。
【０１５２】
第３の閾値は数値で表され、例えば「０．９」である。この例の場合、スパニングツリーを追加する判定基準の第１の閾値とエッジの混雑度合の判定に用いる第３の閾値とを同じ値に設定している。しかし、第１の閾値と第３の閾値は必ずしも同じである必要はなく、例えば、第１の閾値が「０．９」で、第３の閾値が「０．８」と設定してもよい。
【０１５３】
制御装置２０の制御部２３２は、上述した３種類のエッジに異なる重みを付して、クラスカル法を用いて新たなスパニングツリーを計算する。
【０１５４】
利用率が第３の閾値未満の非混雑エッジに対しては、「該非混雑エッジの利用率」を重みとして付す。
【０１５５】
休止状態のエッジであるフリーエッジに対しては、「非混雑エッジの最大利用率＋１」を重みとして付す。
【０１５６】
利用率が第３の閾値以上の混雑エッジに対しては、「非混雑エッジの最大利用率＋１＋該混雑エッジの利用率」を重みとして付す。
【０１５７】
上記により、制御部２３２は、新たなスパニングツリーを計算する時に、非混雑エッジを優先して用いる。非混雑エッジだけを用いて新たなスパニングツリーを計算できない場合は、フリーエッジを用いてスパニングツリーを計算する。フリーエッジを用いても新たなスパニングツリーを計算できない場合は、混雑エッジを用いる。
【０１５８】
制御部２３２は、新たなスパニングツリーセットのトポロジーを複数のノード１０の各々に通知する。
【０１５９】
新たなスパニングツリーセットの通知を受けたノード１０は、各スパニングツリーが均衡して使用されるように、該ノード１０を経由する要求パケット或いは応答パケット（パケットｐ）を転送する規則を更新する。
【０１６０】
なお、一個のコンテンツは１つのスパニングツリーでしか転送されない。つまり、初期のスパニングツリーが１つであった場合には、全てのコンテンツが初期のスパニングツリーで転送される。しかし、ネットワークが混雑してきて、上記のようにスパニングツリーが複数用いられるようになると、コンテンツに応じて、転送に用いるスパニングツリーが決められる。そして、このとき、各スパニングツリーを均衡して使用することでネットワークの混雑を防ぐように、コンテンツとスパニングツリーとの対応が決められる。
【０１６１】
ノード１０は、ｐの名前のハッシュ値に応じて使用するスパニングツリーを決め、パケットｐを要求ノードと応答ノードの間の最短経路を用いて転送するように、パケットを転送する規則を更新する。このとき、ｐの名前のハッシュ値と使用するスパニングツリーの数に基づいて、式１で算出されるｔ番目のスパニングツリーを用いて該パケットｐが転送される。つまり、式１を用いて、パケットｐを転送するスパニングツリーの番号ｔを計算する。
【０１６２】
ｔ＝（ｐの名前のハッシュ値）％（使用するスパニングツリーの数）  ・・・式１
ここで、（ｐの名前のハッシュ値）も（使用するスパニングツリーの数）も整数であり、「％」は、（ｐの名前のハッシュ値：整数）を（使用するスパニングツリーの数：整数）で割った余りを表す。
【０１６３】
以上に説明したように、制御装置２０は、既存のスパニングツリーのしかも非混雑エッジを優先的に用いて新たなスパニングツリーを計算することにより、コンテンツの転送に関わるノードおよびエッジを最小限に抑える。これにより、スパニングツリーを追加した場合であっても、ネットワーク全体で消費する電力を極力低下させることができる。
【０１６４】
次に、エッジの利用率が低下したことに伴うスパニングツリーの削除について説明する。
【０１６５】
図１１は、本実施形態における制御装置２０の動作を示すフローチャートである。図１１に示す動作を実行することにより、制御装置２０は、使用中の複数のスパニングツリーのうちの１つを削除する。
【０１６６】
制御装置２０はスパニングツリーに含まれるエッジの利用率を各ノードから収集する（Ｓ５０１）。収集した各エッジの利用率は、例えば、トポロジーＤＢ２３３に格納されている。
【０１６７】
制御装置２０の制御部２３２は、収集した利用率のなかで一番大きな値を有する最大利用率を識別する（Ｓ５０２）。
【０１６８】
制御部２３２は、識別したエッジの最大利用率を、処理規則ＤＢ２３４に予め設定してあるスパニングツリーを削除する基準である第２の閾値と比較する（Ｓ５０３）。
【０１６９】
エッジの最大利用率が第２の閾値より小さい場合には（Ｓ５０３、Ｙｅｓ）、制御部２３２は、現在使用中のスパニングツリーが複数か否かを判定する（Ｓ５０４）。
【０１７０】
ステップＳ５０４の判定で、現在使用中のスパニングツリーが複数の場合には（Ｓ５０４、Ｙｅｓ）、制御部２３２は、処理規則ＤＢ２３４に規定されているスパニングツリーの削除の仕方にしたがって、使用中のスパニングツリーのうちの１つを削除する（Ｓ５０５）。
【０１７１】
制御部２３２は、例えば、使用中の複数のスパニングツリーのうちのランダムの１つを削除する。もしくは、制御部２３２は、使用中の複数のスパニングツリーのうちの最大利用率が最も低い１つを削除する。他の選択方法で削除しても良い。
【０１７２】
制御部２３２は、使用中のスパニングツリーのうちの１つを削除した新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード１０に通知する（Ｓ５０６）。そして、新たなスパニングツリーセットのトポロジーにおいて、コンテンツの転送に関わらないノードには、休止状態にすることを通知する（Ｓ５０７）。
【０１７３】
新たなスパニングツリーセットの通知を受けると、ノード１０は、各スパニングツリーが均衡して使用されるように、該ノード１０を経由する要求パケット或いは応答パケットを転送する規則を更新する。これは、上述したスパニングツリーの追加の動作での説明と同様の処理が行われる。
【０１７４】
一方、ステップＳ５０３の比較動作で、エッジの最大利用率が第２の閾値より大きい場合には（Ｓ５０３、Ｎｏ）、スパニングツリーを削除する必要がないので処理を終了する。また、ステップＳ５０４の判定で、現在使用中のスパニングツリーが１つしか存在しない場合には（Ｓ５０４、Ｎｏ）、削除すべきスパニングツリーが存在しないので処理を終了する。
【０１７５】
以上のように、制御装置２０は、定期的に各ノードからエッジの利用率の報告を受け、使用中のスパニングツリーに含まれるエッジの利用率が低くなるとスパニングツリーを削除する。このとき、制御装置２０の制御部２３２は、使用中のスパニングツリーに含まれるエッジの最大利用率が所定の第２の閾値を下回っているか否かと、現在使用中のスパニングツリーが複数存在するか否かを判定する。
【０１７６】
本発明の第２の実施形態では、スパニングツリーを構成するエッジの利用率を監視して、その最大利用率が所定の閾値を超えるまではコンテンツの転送に関わるノード及びエッジを最小限に抑えたスパニングツリーを最大限に利用することが可能となる。そのため、コンテンツの転送に関わらないノード及びエッジを休止状態にすることができ、ネットワーク全体で消費する電力を低下させることができる。
【０１７７】
また、コンテンツの転送に関わるノード及びエッジを最小限に抑えたことに起因して利用率が増大したような場合には、輻輳緩和のためにスパニングツリーを追加することができる。本発明の第２の実施形態では、スパニングツリーの追加に際しては、既存のスパニングツリーのしかも非混雑エッジを優先的に用いて新たなスパニングツリーを計算する。これにより、スパニングツリーを追加する場合であっても、コンテンツの転送に関わるノードおよびエッジを最小限に抑えることができ、ネットワーク全体で消費する電力を極力低下させることができる。
【０１７８】
さらに、スパニングツリーが複数になった場合、コンテンツとスパニングツリーとの対応を決めて各スパニングツリーを均衡よく使用することで、ネットワークの混雑を防ぐようにしている。
【０１７９】
また、本発明の第２の実施形態では、スパニングツリーを構成するエッジの利用率を監視して、スパニングツリーが複数設けられている状況で、エッジの最大利用率が、所定の閾値以下になったことに応じて、使用中のスパニングツリーのうちの１つを削除する。スパニングツリーのうちの１つを削除することにより、休止状態に移行可能なノードおよびエッジの数を増やすことができ、ネットワーク全体で消費する電力を低下させることができる。
【０１８０】
このように、本発明の第２の実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【０１８１】
次に、第３の実施形態を説明する。
【０１８２】
本発明の第３の実施形態の通信システムの構成は、図１に示した通信システム１の構成と同じである。また、本発明の第３の実施形態の制御装置およびノードの構成は、図７に示した制御装置２０の構成および図６に示したノード１０の構成と同じである。そのため、第３の実施形態の通信システム１、制御装置２０およびノード１０の構成の説明は省略する。
【０１８３】
本発明の第３の実施形態は、制御装置２０の制御部２３２が実行するスパニングツリーの計算が第２の実施形態における計算と異なる。
【０１８４】
第３の実施形態では、制御装置２０の制御部２３２は、スパニングツリーを計算する場合に、当該計算するスパニングツリーをできる限り半径の短いスパニングツリーとする。また、スパニングツリーを追加する際にも、エッジの利用率を考慮しつつ、当該追加するスパニングツリーをできるだけ半径の短いスパニングツリーとする。
【０１８５】
ここで、スパニングツリーの半径は、スパニングツリーに含まれる最も長いパスのエッジの個数の半分の値を示す。図１２は、スパニングツリーの半径を説明する図である。図１２において、左側に示すツリーＡの場合、ツリーＡに含まれる最も長いパスのエッジの個数は「６」なので、半径は「３」である。また、右側に示すツリーＢの場合、ツリーＢに含まれる最も長いパスのエッジの個数は「２」なので、半径は「１」である。
【０１８６】
第３の実施形態の通信システム１は、半径の短いスパニングツリーを用いることにより、コンテンツ配信に要する通信時間を短くすることが可能となる。また、当該通信システム１は、半径の短いスパニングツリーを用いることにより、コンテンツをキャッシュする必要のあるノード１０の数を減らすことができ、当該通信システム全体における記憶量を低減することができる。通信システム全体における記憶量を低減することで、通信システム全体における消費エネルギーの上昇を抑制することが可能となる。
【０１８７】
第３の実施形態において、制御装置２０の制御部２３２は、計算するスパニングツリーの半径をできる限り短くするために、各エッジの利用率及び「Ｂｅｔｗｅｅｎｅｓｓｅｓ」に基づいて、スパニングツリーに用いるエッジを決定する。なお、「Ｂｅｔｗｅｅｎｅｓｓｅｓ」は「共有度」とも称する。
【０１８８】
この「Ｂｅｔｗｅｅｎｅｓｓｅｓ」は、各ノード１０から通知を受けた、使用中のスパニングツリーに含まれるエッジの利用率に基づいて、制御部２３２が計算する。
【０１８９】
「Ｂｅｔｗｅｅｎｅｓｓｅｓ」は、エッジごとに計算される値であり、各エッジにおける、任意の２つのノード１０間の最短経路が通る数である。すなわち、「Ｂｅｔｗｅｅｎｅｓｓｅｓ」は、任意の２つのノード１０の最短経路を、ネットワークに含まれるノード１０の全てのペアに対して計算した場合に、エッジにおける当該最短経路が通過する数を、エッジ毎に示したものである。
【０１９０】
最短経路が通過する数はエッジによって異なり、「Ｂｅｔｗｅｅｎｅｓｓｅｓ」が高いエッジは、多くのノード１０間の最短経路がそのエッジを利用することを表す。
【０１９１】
制御装置２０は、各エッジの利用率及び「Ｂｅｔｗｅｅｎｅｓｓｅｓ」に基づいて、スパニングツリーに用いるエッジを決定する。
【０１９２】
制御装置２０は、スパニングツリーを計算する場合に、「Ｂｅｔｗｅｅｎｅｓｓｅｓ」が高いエッジを優先的に用いて、当該スパニングツリーを計算する。制御装置２０は、計算したスパニングツリーを、複数のノード１０の各々に通知する。
【０１９３】
図１３は、本発明の第３の実施形態の制御装置２０の動作の概要を示すフロー図である。
【０１９４】
制御装置２０の制御部２３２は図１３に示すフローにしたがって動作して、コンテンツに関するトラフィックを割り当てるスパニングツリーを計算する。
【０１９５】
制御部２３２は、通信システム１のネットワークに含まれる各エッジの「Ｂｅｔｗｅｅｎｅｓｓｅｓ」を計算する（Ｓ６０１）。
【０１９６】
制御部２３２は、各エッジに、そのエッジの「Ｂｅｔｗｅｅｎｅｓｓｅｓ」に応じた重みを付けて、クラスカル法等を用いて初期スパニングツリーを計算し、そのトポロジー情報を通信システム内のすべてのノード１０に通知する（Ｓ６０２）。各ノードは、通知を受けた初期スパニングツリーの情報に基づいて、要求パケットと応答パケットを転送する規則を更新する。
【０１９７】
制御部２３２は、各ノードから、使用中のスパニングツリーに含まれるエッジの利用率の通知を定期的に受けて、利用率を収集する（Ｓ６０３）。
【０１９８】
スパニングツリーを新たに追加する場合、制御部２３２は、各エッジの利用率及び算出した「Ｂｅｔｗｅｅｎｅｓｓｅｓ」に基づいて、新たなスパニングツリーを計算する（Ｓ６０４）。エッジの利用率及び「Ｂｅｔｗｅｅｎｅｓｓｅｓ」に基づいて、追加するスパニングツリーに用いるエッジを決定する方法については後述する。
【０１９９】
制御部２３２は、新たにスパニングツリーを計算した場合には、新たなスパニングツリーセットのトポロジー情報をネットワーク内のすべてのノード１０に通知する（Ｓ６０５）。新たなスパニングツリーセットの通知を受けた各ノード１０は、要求パケットと応答パケットを転送する規則を更新する。
【０２００】
エッジの利用率及び「Ｂｅｔｗｅｅｎｅｓｓｅｓ」を用いて追加するスパニングツリーを計算する動作について説明する。
【０２０１】
図１４は、本発明の第３の実施形態の制御装置２０の動作を示すフロー図である。
【０２０２】
制御装置２０の制御部２３２は図１４に示すフローにしたがって動作して、スパニングツリーを追加する。なお、この図１４に示す動作は、図１０に示した第２の実施形態におけるスパニングツリーの追加動作に類似している。
【０２０３】
制御装置２０の制御部２３２はスパニングツリーに含まれるエッジの利用率を各ノードから収集する（Ｓ７０１）。収集した各エッジの利用率は、例えば、トポロジーＤＢ２３３に格納されている。
【０２０４】
制御部２３２は、収集した利用率のなかで一番大きな値を有する最大利用率を識別する（Ｓ７０２）。
【０２０５】
制御部２３２は、識別したエッジの最大利用率を、処理規則ＤＢ２３４に予め設定してあるスパニングツリーを追加する基準である第１の閾値と比較する（Ｓ７０３）。
【０２０６】
エッジの最大利用率が第１の閾値より大きい場合には（Ｓ７０３、Ｙｅｓ）、制御部２３２は、処理規則ＤＢ２３４に規定されている新しいスパニングツリーの作り方にしたがって、新たなスパニングツリーを計算する（Ｓ７０４）。
【０２０７】
ここで、第３の実施形態では、エッジの利用率と「Ｂｅｔｗｅｅｎｅｓｓｅｓ」を用いて追加するスパニングツリーを計算する。
【０２０８】
制御部２３２は、新たなスパニングツリーを計算する時に、第２の実施形態で説明した、非混雑エッジ、フリーエッジ、混雑エッジの３種類のエッジに異なる重みをつける。
【０２０９】
非混雑エッジに対しては、「該非混雑エッジの利用率」を重みとして付す。
【０２１０】
休止状態のエッジであるフリーエッジに対しては、「非混雑エッジの最大利用率＋１／（該フリーエッジの「Ｂｅｔｗｅｅｎｅｓｓｅｓ」）」を重みとして付す。
【０２１１】
混雑エッジに対しては、「非混雑エッジの最大利用率＋１」を重みとして付す。
【０２１２】
そして、制御部２３２は、クラスカル法を用いて、スパニングツリーを計算する。
【０２１３】
制御部２３２は、新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード１０に通知する（Ｓ７０５）。
【０２１４】
新たなスパニングツリーセットの通知を受けたノード１０は、各スパニングツリーが均衡して使用されるように、該ノード１０を経由する要求パケット或いは応答パケットを転送する規則を更新する。つまり、第２の実施形態で説明したように、コンテンツに応じて、転送に用いるスパニングツリーを決め、しかも各スパニングツリーが均衡して使用されるように、コンテンツとスパニングツリーとの対応が決められる。
【０２１５】
一方、ステップＳ７０３の比較動作で、エッジの最大利用率が第１の閾値より小さい場合には（Ｓ７０３、Ｎｏ）、制御装置２０は新たなスパニングツリーを計算することなく処理を終了する。
【０２１６】
第３の実施形態においても、制御装置２０は、使用中のスパニングツリーに含まれるエッジの最大利用率が第２閾値より低い場合に、スパニングツリーを削除する。この動作は、図１１を参照して説明した第２の実施形態の動作と同じなので、説明を省略する。
【０２１７】
上記のとおり、本発明の第３の実施形態における通信システム１は、制御装置２０がスパニングツリーを計算する場合、及び、追加する新たなスパニングツリーを計算する場合に、できる限り半径の短いスパニングツリーを計算する。その際に、制御装置２０は、エッジが任意のノード間の最短経路として利用される程度を示す数値である共有度（または「Ｂｅｔｗｅｅｎｅｓｓｅｓ」）を用いる。
【０２１８】
したがって、当該通信システムは、コンテンツ配信に要する通信時間を短くすることができるとともに、コンテンツをキャッシュする必要のあるノードの数を減らすことができる。そして、当該通信システムは、コンテンツの転送に関わらないノード及びエッジを休止状態にすることによって、ネットワーク全体で消費する電力を低下させることができる。さらに、通信システム全体における記憶量を低減することで、通信システム全体における消費エネルギーの上昇を抑制することが可能となる。
【０２１９】
このように、本発明の第３の実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【０２２０】
続いて、第４の実施形態を説明する。
【０２２１】
本発明の第４の実施形態は、本発明を、集中制御型のネットワークアーキテクチャであるオープンフロー（ＯｐｅｎＦｌｏｗ）という技術を改良して実施する例を示す。
【０２２２】
オープンフローは、通信をエンドツーエンドのフローとして認識し、フロー単位で経路制御等を実行できる。
【０２２３】
図１５および図１６を参照し、オープンフローについて説明する。
【０２２４】
図１５は、オープンフロー技術により構成された通信システムの概要を示す。なお、フローとは、例えば、所定の属性（通信の宛先や送信元等に基づいて識別される属性）を有する一連の通信パケット群である。
【０２２５】
図１５に示す通信システムは、オープンフローコントローラ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）５０が、複数のオープンフロースイッチ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）５１を含んで構成されている。オープンフロースイッチ５１は、フローテーブル（Ｆｌｏｗ  Ｔａｂｌｅ）５１０を含み、オープンフロー技術を採用したネットワークスイッチである。オープンフローコントローラ５０は、オープンフロースイッチ５１を制御する情報処理装置である。
【０２２６】
オープンフロースイッチ５１は、オープンフローコントローラ５０との間に設定されたセキュアチャネル（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）５２を介して、オープンフローコントローラ５０と通信を行う。
【０２２７】
オープンフローコントローラ５０は、セキュアチャネル５２を介して、オープンフロースイッチ５１のフローテーブル５１０の設定を行う。なお、セキュアチャネル５２は、スイッチとコントローラ間の通信の盗聴や改ざん等を防止するための処置がなされた通信経路である。
【０２２８】
図１６は、フローテーブル５１０の各エントリ（フローエントリ）の構成例を示す。
【０２２９】
フローエントリは、マッチングルールフィールド（Ｍａｔｃｈｉｎｇ  Ｆｉｅｌｄｓ）Ｆ１０１、インストラクションフィールド（Ｉｎｓｔｒｕｃｔｉｏｎｓ）Ｆ１０２および統計情報フィールド（Ｃｏｕｎｔｅｒｓ）Ｆ１０３の各フィールドで構成される。
【０２３０】
マッチングルールフィールドＦ１０１は、スイッチが受信したパケットのヘッダに含まれる情報と照合するための情報（マッチングルール）を含むフィールドである。インストラクションフィールドＦ１０２は、マッチングルールにマッチするパケットの処理方法が規定されたフィールドである。統計情報フィールドＦ１０３は、パケットフロー毎の統計情報を示すフィールドである。
【０２３１】
ここで、パケットのヘッダに含まれる情報は、宛先ＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）や、ＶＬＡＮ  ＩＤ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）等である。
【０２３２】
なお、本発明の第４の実施形態において、パケットのヘッダにはコンテンツＩＤが含まれているので、当該オープンフロー技術を適用する場合には、マッチングルールにはコンテンツＩＤを含めることとなる。
【０２３３】
オープンフロースイッチ５１は、パケットを受信すると、フローテーブル５１０を参照する。オープンフロースイッチ５１は、受信したパケットのヘッダ情報にマッチするフローエントリを検索する。受信パケットのヘッダ情報にマッチするエントリが検索された場合、オープンフロースイッチ５１は、検索されたエントリのインストラクションフィールドに定義された処理方法に従って、受信パケットを処理する。処理方法は、例えば、“受信パケットを所定のポートから転送する”、“受信したパケットを破棄する”、“受信パケットのヘッダの一部を書き換えて、所定のポートから転送する”といったことが規定されている。
【０２３４】
一方、受信パケットのヘッダ情報にマッチするエントリが見つからない場合、オープンフロースイッチ５１は、例えば、セキュアチャネル５２を介して、オープンフローコントローラ５０に対して受信パケットを転送する。オープンフロースイッチ５１は、受信パケットを転送することにより、オープンフローコントローラ５０に対して、受信パケットの処理方法を規定したフローエントリの設定を要求する。
【０２３５】
なお、パケットの処理方法として、オープンフローコントローラ５０に要求を送信することを規定したフローエントリにパケットがマッチして、その処理方法に従ってオープンフローコントローラ５０に対してフローエントリの設定を要求するようにしてもよい。
【０２３６】
オープンフローコントローラ５０は、受信パケットの処理方法を決定し、決定した処理方法を含むフローエントリをフローテーブル５１０に設定する。その後、オープンフロースイッチ５１は、設定されたフローエントリにより、受信パケットと同一のフローに属する後続のパケットを処理する。
【０２３７】
図１７は、本発明の第４の実施形態の通信システム２の構成を示すブロック図である。
【０２３８】
本発明の第４の実施形態の通信システム２は、複数のオープンフロースイッチ１１、通信端末３１、オープンフローコントローラ２５およびサーバ４０を含んで構成される。オープンフローコントローラ２５は、通信システム２のネットワークに含まれるオープンフロースイッチ１１の各々と、ＯｐｅｎＦｌｏｗプロトコルに従って通信することが可能である。
【０２３９】
図１８は、本発明の第４の実施形態のオープンフロースイッチ１１の構成を示すブロック図である。
【０２４０】
オープンフロースイッチ１１は、通信部１１０、処理規則ＤＢ１１１、処理部１１２およびコンテンツ格納部１１５を含んで構成される。また、処理部１１２は、処理検索部１１３およびアクション実行部１１４を含む。
【０２４１】
通信部１１０は、ＯｐｅｎＦｌｏｗプロトコルに従って、オープンフローコントローラ２５と通信する。
【０２４２】
処理規則ＤＢ１１１は、オープンフローコントローラ２５から通知された処理規則を記憶する。
【０２４３】
処理部１１２は、オープンフローコントローラ２５から通知された処理規則に従って、パケットを処理する。
【０２４４】
処理部１１２の処理検索部１１３は、処理規則ＤＢ１１１から、受信したパケットに対応する処理規則を検索する。処理検索部１１３は、パケットと、処理規則ＤＢ１０２に記憶された処理規則のマッチングルールフィールドＦ１０１の内容（マッチングルール）とを照合し、パケットに対応する処理規則を検索する。
【０２４５】
処理部１１２のアクション実行部１１４は、検索された処理規則のインストラクションフィールドＦ１０２に規定された処理方法に従って、パケットを処理する。
【０２４６】
処理検索部１１３は、例えば、処理規則ＤＢ１１１に、受信したパケットに対応する処理規則が存在しない場合、処理規則の設定をオープンフローコントローラ２５に要求する。
【０２４７】
コンテンツ格納部１１５は、コンテンツをキャッシュする（格納する）手段として機能する。コンテンツ格納部１１５は、例えば、通信部１１０から応答パケットを受信し、当該受信した応答パケットに含まれるコンテンツを格納する。コンテンツ格納部１１５は、例えば、コンテンツＩＤと、コンテンツとを対応させて格納する。
【０２４８】
図１９は、本発明の第４の実施形態のオープンフローコントローラ２５の構成を示すブロック図である。
【０２４９】
オープンフローコントローラ２５は、通信部２５１、処理規則決定部２５２、ツリー決定部２５３、スイッチ管理部２５４、管理ＤＢ２５５およびツリー格納部２５６を含んで構成される。なお、処理規則決定部２５２とツリー決定部２５３は制御部２５０を構成する。
【０２５０】
通信部２５１は、オープンフロースイッチ１１と、ＯｐｅｎＦｌｏｗプロトコルに基づいて通信する機能を有する。通信部２５１は、オープンフロースイッチ１１から、パケットの処理規則（上述の“フローエントリ”に対応）の要求を受信する。また、通信部２５１は、オープンフロースイッチ１１に処理規則を通知する。
【０２５１】
処理規則決定部２５２は、オープンフロースイッチ１１に設定する処理規則を決定する。処理規則決定部２５２は、処理規則を決定する場合、通信部２５１が受信したパケットのヘッダのコンテンツＩＤを抽出する。
【０２５２】
処理規則決定部２５２は、通信部２５１が受信したパケットが要求パケットの場合、抽出したコンテンツＩＤに対応するコンテンツに関するトラフィックに割り当てられたスパニングツリーに沿って、当該要求パケットを送信するための処理規則を決定する。また、処理規則決定部２５２は、通信部２５１が受信したパケットが応答パケットの場合、抽出したコンテンツＩＤに対応するコンテンツの要求パケットの転送経路を辿って、当該要求パケットを転送するための処理規則を決定する。
【０２５３】
なお、処理規則決定部２５２は、処理規則を決定する場合、ツリー格納部２５６を参照する。
【０２５４】
ツリー決定部２５３は、各オープンフロースイッチ１１から収集した、使用中のスパニングツリーに含まれるエッジの利用率の最大値が、所定の閾値を超えているか否かを判断する。ツリー決定部２５３は、使用中のスパニングツリーに含まれるエッジの最大利用率が、所定の閾値を超えたことに応じて、新たなスパニングツリーを計算する。なお、ツリー決定部２５３が、新たなスパニングツリーを計算する方法は、上述した第２の実施形態および第３の実施形態における制御装置２０の制御部２３２と同様の方法である。
【０２５５】
また、ツリー決定部２５３は、使用中のスパニングツリーに含まれるエッジの最大利用率が、第２の所定の閾値以下になったことに応じて、使用中の複数のスパニングツリーのうちの１つを削除する。
【０２５６】
なお、ツリー決定部２５３は、上述した第２の実施形態および第３の実施形態における制御装置２０の制御部２３２と同様の機能を備える。また、ツリー決定部２５３は、計算したスパニングツリーに関する情報を、ツリー格納部２５６に格納する。
【０２５７】
ＯｐｅｎＦｌｏｗに準拠した通信機器（ネットワークスイッチ等）は、通信機器のポートのステータスをコントローラに通知する機能（Ｐｏｒｔ  Ｓｔａｔｕｓ）や、スイッチの特性をコントローラに通知する機能（Ｆｅａｔｕｒｅ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙ）を有する。スイッチ管理部２５４は、それらの機能により、オープンフロースイッチ１１から情報を収集してもよい。
【０２５８】
オープンフロースイッチ１１は、パケットを処理するための処理規則を、オープンフローコントローラ２５に要求することが可能である。処理規則決定部２５２は、要求に応じて、該パケットを転送するための処理規則を生成し、生成した処理規則を管理ＤＢ２５５に格納する。
【０２５９】
図２０は、本発明の第４の実施形態の処理規則決定部２５２が生成する処理規則の例を示す図である。
【０２６０】
図２０は、図１６に示したフローエントリの構成におけるマッチングルールフィールド（Ｍａｔｃｈｉｎｇ  Ｆｉｅｌｄｓ）Ｆ１０１とインストラクションフィールド（Ｉｎｓｔｒｕｃｔｉｏｎｓ）Ｆ１０２の例を示す。
【０２６１】
処理規則決定部２５２は、例えば、オープンフロースイッチ１１からの要求に対応するパケットのヘッダに格納されているコンテンツＩＤと、当該パケットのポート番号をマッチングルールとして規定する。
【０２６２】
処理規則決定部２５２、例えば、マッチングルールに対応する処理方法“Ｉｎｓｔｒｕｃｔｉｏｎｓ”として、所定のポート番号からパケットを転送する処理方法を規定する。
【０２６３】
図２０に示す例では、１行目の処理規則のマッチングルールは、「コンテンツＩＤが“Ａ”で、ポート番号が“８０”」である。また、１行目の処理規則のインストラクションは、ポート番号１６から当該パケットを転送することを示す。
【０２６４】
また、３行目の処理規則のマッチングルールは、「コンテンツＩＤが“Ｂ”で、ポート番号が“１１０”」である。また、３行目の処理規則のインストラクションは、パケットを破棄することを示す。
【０２６５】
図２１は、本発明の第４の実施形態の通信システム２の動作を示すシーケンス図である。なお、この動作例は、オープンフローコントローラ２５が新たなスパニングツリーを計算する場合の例を含んでいる。
【０２６６】
まず、オープンフローコントローラ２５は、各オープンフロースイッチ１１からトポロジーに関する情報を取得する（Ｓ８０１）。
【０２６７】
オープンフローコントローラ２５は、初期のスパニングツリー（又は、追加するスパニングツリー）を計算し（Ｓ８０２）、パケットを処理するための処理規則を、各オープンフロースイッチ１１に通知する（Ｓ８０３のＦｌｏｗ  Ｍｏｄ）。
【０２６８】
例えば、オープンフロースイッチ１１−１がコンテンツを要求するものとする。
【０２６９】
オープンフロースイッチ１１−１は、オープンフローコントローラ２５から通知された処理規則に基づいて、当該コンテンツを要求するための要求パケットを送信する（Ｓ８０４）。スパニングツリー上の各オープンフロースイッチ１１（例えば、オープンフロースイッチ１１−２、１１−３）は要求パケットを転送する（Ｓ８０５）。
【０２７０】
オープンフロースイッチ１１−１が要求したコンテンツを保持するオープンフロースイッチ１１−４は、要求パケットを受信し、当該要求パケットに対する応答である応答パケットに、要求されたコンテンツを格納する（Ｓ８０６）。続いて、オープンフロースイッチ１１−４は、オープンフローコントローラ２５に対して、要求パケットに応答するための応答パケットを処理するための処理規則を要求する（Ｓ８０７）。
【０２７１】
オープンフローコントローラ２５は、応答パケットを処理するための処理規則を、オープンフロースイッチ１１−４に通知する（Ｓ８０８のＦｌｏｗ  Ｍｏｄ）。なお、このとき通知される処理規則は各オープンフロースイッチ１１にも通知される。
【０２７２】
オープンフロースイッチ１１−４は、オープンフローコントローラ２５から通知された処理規則に基づいて、応答パケットを転送する（Ｓ８０９）。
【０２７３】
上述したように、本発明の第１の実施形態乃至第３の実施形態で説明した通信システム１は、集中制御型のネットワークアーキテクチャであるオープンフローを適用した通信システム２としても実現することができる。
【０２７４】
この通信システム２のオープンフローコントローラ２５は、通信システム１の制御装置２０と同等の機能を有し、スパニングツリーを計算する場合には、できる限り半径の短いスパニングツリーを計算し、コンテンツの転送に関わらないノード及びエッジを休止状態にする。したがって、通信システム２においても、通信システム全体における消費エネルギーの上昇を抑制し、ネットワーク全体で消費する電力を低下させることができる。
【０２７５】
このように、本発明の第４の実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【０２７６】
なお、図４の説明の際に言及したように、図４は、第２の実施形態と第３の実施形態の制御装置や第４の実施形態のオープンフローコントローラのハードウェアに共通の構成を示すブロック図である。
【０２７７】
制御装置およびオープンフローコントローラを制御機器と称すると、各実施形態の制御機器は、その動作を、制御機器の内部に各機能を実現するプログラムを組み込んだＬＳＩ等のハードウェア部品からなる回路部品を実装して実現してもよい。また、各実施形態の制御機器は、各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のＣＰＵで実行することにより、ソフトウェア的に実現してもよい。そして、各実施形態のプログラムは、コンピュータを、上述した各実施形態における各機能部として機能させるためのプログラムである。
【０２７８】
以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。
【符号の説明】
【０２７９】
１、２    通信システム
１０、１０−１、１０−２、１０−３、１０−４    ノード
１１、１１−１、１１−２、１１−３、１１−４    オープンフロースイッチ
２０    制御装置
２５    オープンフローコントローラ
３０、３１    通信端末
４０    サーバ
５０    ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ
５１    ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ
５２    Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ
１０１    第１の通信部
１０２    第２の通信部
１０３    制御部
１０４    コンテンツ格納部
１０５    処理規則ＤＢ
１１０    通信部
１１１    処理規則ＤＢ
１１２    処理部
１１３    処理検索部
１１４    アクション実行部
１１５    コンテンツ格納部
２０１    スパニングツリー生成手段
２０２    スパニングツリー制御手段
２０３    ノード通知手段
２１１    ＣＰＵ
２１２    主記憶部
２１３    補助記憶部
２１４    通信制御部
２１５    表示部
２１６    入力部
２２１    スパニングツリー生成機能手段
２２２    スパニングツリー制御機能手段
２２３    ノード通知機能手段
２３１    通信部
２３２    制御部
２３３    トポロジーＤＢ
２３４    処理規則ＤＢ
２３５    ツリー記憶部
２５０    制御部
２５１    通信部
２５２    処理規則決定部
２５３    ツリー決定部
２５４    スイッチ管理部
２５５    管理ＤＢ
２５６    ツリー格納部
５１０    Ｆｌｏｗ  Ｔａｂｌｅ
【図１】
2015233264.tif 000003
【図２】
2015233264.tif 000004
【図３】
2015233264.tif 000005
【図４】
2015233264.tif 000006
【図５】
2015233264.tif 000007
【図６】
2015233264.tif 000008
【図７】
2015233264.tif 000009
【図８】
2015233264.tif 000010
【図９】
2015233264.tif 000011
【図１０】
2015233264.tif 000012
【図１１】
2015233264.tif 000013
【図１２】
2015233264.tif 000014
【図１３】
2015233264.tif 000015
【図１４】
2015233264.tif 000016
【図１５】
2015233264.tif 000017
【図１６】
2015233264.tif 000018
【図１７】
2015233264.tif 000019
【図１８】
2015233264.tif 000020
【図１９】
2015233264.tif 000021
【図２０】
2015233264.tif 000022
【図２１】
2015233264.tif 000023