【国等の委託研究の成果に係る記載事項】(出願人による申告)平成25年度、独立行政法人情報通信研究機構「高度通信・放送研究開発委託研究/新世代ネットワーク実現に向けた欧州との連携による共同研究開発」、産業技術力強化法第19条の適用を受ける特許出願
【解決手段】 制御装置は、コンテンツの名前または識別子を用いてパケットを転送するノードがコンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して、ノードのそれぞれに通知する。このとき、コンテンツの転送に関わらないノードおよびエッジを休止状態にする。制御装置は、ノードのそれぞれからスパニングツリーを構成するエッジの利用率の通知を受け、エッジの最大利用率が第1の閾値以上である場合には、新たなスパニングツリーを計算して追加する。また、エッジの最大利用率が第2の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの1つを削除する。
前記ノードは、前記制御装置から新たなスパニングツリーが追加されたスパニングツリーセットの通知を受けると、コンテンツの名前のハッシュ値と前記スパニングツリーセットが含むスパニングツリーの数に応じて、該コンテンツと転送経路となるスパニングツリーとの対応を決めて、該ノードを経由する前記要求パケット或いは前記応答パケットの転送規則を更新する
ことを特徴とする請求項1乃至3のいずれかの請求項に記載の通信システム。
前記ネットワークは、通信をエンドツーエンドのフローとして認識し、フロー単位で経路制御を実行できるOpenFlow(オープンフロー)に準拠したネットワークであって、前記ノードはOpenFlow Switch(オープンフロースイッチ)で、前記制御装置はOpenFlow Controller(オープンフローコントローラ)であることを特徴とする請求項1乃至4のいずれかの請求項に記載の通信システム。
コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成するスパニングツリー生成手段と、
前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第1の閾値以上である場合には、新たに追加する前記スパニングツリーの計算を前記スパニングツリー生成手段に指示し、前記スパニングツリーを構成するエッジの前記最大利用率が第2の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの1つを削除するスパニングツリー制御手段と、
前記スパニングツリー制御手段の指示を受け、生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知するノード通知手段と
を有することを特徴とする制御装置。
コンテンツの名前または識別子を用いてパケットを転送するノードを複数含むネットワークにおいて、前記ノードが前記コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成し、
前記ノードのそれぞれから前記スパニングツリーを構成するエッジの利用率の通知を受け、前記スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第1の閾値以上である場合には、新たに前記スパニングツリーを計算して追加し、前記スパニングツリーを構成するエッジの前記最大利用率が第2の閾値以下となった場合には、使用中の複数の前記スパニングツリーのうちの1つを削除し、
生成した前記スパニングツリーおよび削除した前記スパニングツリーを前記ノードのそれぞれに通知し、前記コンテンツの転送に関わらない前記ノードには休止状態にすることを通知する
ことを特徴とする制御方法。
【発明を実施するための形態】
【0025】
本発明を実施するための形態について図面を参照して説明する。
【0026】
尚、実施の形態は例示であり、開示の装置及びシステムは、以下の実施の形態の構成には限定されない。
【0027】
まず、本発明の実施形態の通信システムが適用されるネットワークの概要について説明する。
【0028】
図1は、本発明の第1の実施形態の通信システムの構成を示すブロック図である。 第1の実施形態の通信システム1は、コンテンツの名前又は識別子により通信を行うネットワークアーキテクチャであるコンテンツセントリックネットワーク(CCN)を構成する。
【0029】
第1の実施形態の通信システム1は、複数のノード10−1乃至10−4(以下、特に区別の必要がない場合は「ノード10」と称する。)、制御装置20、通信端末30およびサーバ40を含んで構成される。
【0030】
なお、図面に付記した参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0031】
また、
図1は、後述する第1の実施形態乃至第3の実施形態の通信システムに共通の構成を示すブロック図として使用する。
【0032】
CCNは、コンテンツの名前又は識別子(コンテンツID)を用いて、通信を行うネットワークアーキテクチャである。CCNにおいて、ノードは、コンテンツを要求するための要求パケット(クエリ、コンテンツの問い合わせ、コンテンツの要求)と、コンテンツを配送するための応答パケットとを送受信する。要求パケットは、ノードが要求するコンテンツの名前又は識別子(コンテンツID)を含み、応答パケットは、コンテンツとコンテンツIDとを含む。
【0033】
図1において、サーバ40はコンテンツを格納、蓄積するコンテンツサーバである。ノード10−4はサーバ40を接続したコンテンツ配信のホストとなるノードである。ノード10−1には、要求パケットおよび応答パケットを送受信する通信端末30が接続されている。ノード10−2およびノード10−3は、要求パケットおよび応答パケットを転送する中間ノードである。
【0034】
CCNにおいて、ネットワークに含まれる各ノードは、要求パケットを受信した場合、当該要求パケットに含まれるコンテンツIDにより、自装置に当該コンテンツIDに対応するコンテンツを有しているか否か(キャッシュしているか否か)を検索する。ノードは、当該コンテンツを有している場合、当該コンテンツを格納した応答パケットを返送することにより、要求パケットを送信してきたノードにそのコンテンツを配送する。
【0035】
CCNにおいて、コンテンツを有するノードと、当該コンテンツを要求したノードとの間の中間ノードは、当該コンテンツをキャッシュする。
【0036】
中間ノードは、要求パケットを受信した場合、当該要求パケットで要求されているコンテンツを、自装置がキャッシュしているか否かを検索する。中間ノードは、当該コンテンツをキャッシュしている場合には、当該コンテンツを返送する。また、中間ノードは、受信した応答パケットに含まれるコンテンツが、自装置にキャッシュされていない場合、当該コンテンツをキャッシュする。
【0037】
したがって、要求パケットを要求したノードは、本来であれば、ホストのノードからコンテンツの配信を受けなければならないところ、どの中間ノードにおいてもコンテンツがキャッシュされていれば、その中間ノードから当該コンテンツを取得することができる。そのため、CCNでは、コンテンツの配送のための経路を短くすることができ、ネットワーク全体の負荷を低減することができる。
【0038】
CCNでは、ネットワークに含まれる各ノードにアドレスを与えずにコンテンツの転送を可能にする。
【0039】
CCNでは、例えば、要求パケットを送信したノードから、コンテンツを保持しているノードまでのデータリンク層の入力インターフェース(要求パケットを受信した通信ポートに関する情報)を保持することにより、コンテンツの転送を実現する。
【0040】
CCNでは、例えば、コンテンツを転送する応答パケットのヘッダ部分に、コンテンツの転送経路上のノードにおける入力インターフェースに関する情報を格納する。また、CCNでは、例えば、要求パケットを受信した各ノードが、一時的に入力インターフェースを記憶してもよい。
【0041】
上述したコンテンツの名前又は識別子により通信を行うネットワークを背景とした、本発明の第1の実施形態を説明する。
【0042】
本発明の第1の実施形態の通信システム1において、ノード10はコンテンツの名前または識別子を用いてパケットを転送する。つまり、ノード10は、コンテンツの名前又は識別子(コンテンツID)により、コンテンツの要求(要求パケットの送受信)及びコンテンツの配信(応答パケットの送受信)を行う。
【0043】
ノード10はスパニングツリーを用いて要求パケットを転送する。また、応答パケットは、要求パケットが送信されてきた経路を辿って、当該要求パケットを送信したノード10まで転送される。つまり、スパニングツリーは、ノード10がコンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となる。
【0044】
スパニングツリーは、コンテンツの要求を行う通信端末30が接続されたノード10−1から、コンテンツを蓄積したサーバ40に接続されたノード10−4に至る最小全域木である。
【0045】
制御装置20は、このようなコンテンツの要求および応答の転送経路となるスパニングツリーを計算してネットワーク内のノード10のそれぞれに通知し、コンテンツの転送に関わらないノード10を休止状態にする。
【0046】
なお、スパニングツリーを構成する各ノード10はエッジまたはリンクと称する通信経路で接続されている。この通信経路は、ノード10が他の装置との間で通信するためのリンクであり、例えば、ノード10と他のノード10との間の通信リンクや、ノード10と通信端末30との間の通信リンクである。以降、この通信経路を「エッジ」と称して説明する。
【0047】
制御装置20はノード10のそれぞれに対して
図1の点線で示す通信リンクを備えており、前述したスパニングツリーの通知や休止状態にするための通知を行うと共に、既存の使用中のスパニングツリーを構成するエッジの利用率の通知を受ける。
【0048】
制御装置20は通知されたスパニングツリーを構成するエッジの利用率の最大値である最大利用率が第1の閾値以上である場合には、新たなスパニングツリーを計算して追加する。また、制御装置20は通知されたスパニングツリーを構成するエッジの最大利用率が第2の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの1つを削除する。
【0049】
なお、ここでエッジの利用率とは、エッジが有するトラフィックの転送キャパシティ(単位時間に転送可能なトラフィック量の上限値)に対し、ある単位時間におけるそのエッジ上に流れるトラフィック量の割合を云う。例えば、転送キャパシティが10Mbpsのエッジにおいて8Mbpsのトラフィックが流れていた場合、利用率は0.8となる。そして、エッジの最大利用率とは、制御装置20が通知を受けたエッジの利用率の中で最大の値となる利用率のことを云う。
【0050】
第1の実施形態の制御装置を説明する。
【0051】
図2は、本発明の第1の実施形態の制御装置の構成を示すブロック図である。
【0052】
制御装置20は、スパニングツリー生成手段201、スパニングツリー制御手段202およびノード通知手段203を含んで構成される。
【0053】
スパニングツリー生成手段201は、ノード10を複数含むネットワークにおいて、コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成する。ノード10はコンテンツの名前または識別子を用いてパケットを転送するノードである。
【0054】
スパニングツリー制御手段202は、ノード10のそれぞれからスパニングツリーを構成するエッジの利用率の通知を受ける。
【0055】
そして、スパニングツリー制御手段202は、スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第1の閾値以上である場合には、新たに追加するスパニングツリーの計算をスパニングツリー生成手段201に指示する。また、スパニングツリー制御手段202は、スパニングツリーを構成するエッジの最大利用率が第2の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの1つを削除する制御を行う。
【0056】
ノード通知手段203は、スパニングツリー制御手段202の指示を受け、生成したスパニングツリーおよび削除したスパニングツリーをノード10のそれぞれに通知し、また、コンテンツの転送に関わらないノード10には休止状態にすることを通知する。
【0057】
次に、本発明の第1の実施形態の制御方法を説明する。
【0058】
図3は、本発明の第1の実施形態の制御方法の動作を示すフロー図である。
【0059】
まず、ノード10を複数含むネットワークにおいて、コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成する(S101)。
【0060】
ノード10はコンテンツの名前または識別子を用いてパケットを転送するノードである。
【0061】
ノード10のそれぞれからスパニングツリーを構成するエッジの利用率の通知を受ける。そして、スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第1の閾値以上である場合には、新たにスパニングツリーを計算して追加する。また、スパニングツリーを構成するエッジの最大利用率が第2の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの1つを削除する(S102)。
【0062】
生成したスパニングツリーおよび削除したスパニングツリーをノード10のそれぞれに通知し、コンテンツの転送に関わらないノード10には休止状態にすることを通知する(S103)。
【0063】
次に、第1の実施形態のプログラムを説明する。
【0064】
図4は、第1の実施形態の制御装置20のハードウェア構成を示すブロック図である。なお、
図4は、後述する第2の実施形態および第3の実施形態の制御装置や第4の実施形態のオープンフローコントローラのハードウェアに共通の構成を示すブロック図である。
【0065】
図4を参照すると、制御装置20は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、次の構成を備える。
【0066】
ハードウェア構成として、制御部であるCPU(Central Processing Unit)211、主記憶部212、補助記憶部213を含む。主記憶部212は、RAM(Random Access Memory)等で構成され、補助記憶部213は、磁気ディスク、半導体メモリ等の不揮発メモリから構成されるハードディスク装置を含む。
【0067】
また、ハードウェア構成として、ネットワークを介してデータの送受信を行う通信制御部214、ディスプレイによる表示部215、キー操作を行う入力部216、上記各構成要素を相互に接続するシステムバス217等を含む。
【0068】
本実施形態の制御装置20は、その動作を、制御装置20の内部に各機能を実現するプログラムを組み込んだLSI(Large Scale Integration)等のハードウェア部品からなる回路部品を実装して実現してもよい。また、本実施形態の制御装置20は、各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のCPU211で実行することにより、ソフトウェア的に実現してもよい。
【0069】
すなわち、CPU211は、補助記憶部213に格納されているプログラムを、主記憶部212にロードして実行し、あるいは補助記憶部213上で直接実行し、制御装置20の動作を制御することにより、各機能をソフトウェア的に実現する。
【0070】
本発明の第1の実施形態のプログラムが実現する機能手段の構成を
図5に示す。
【0071】
本実施形態のプログラムは、コンピュータを、
図5に示すスパニングツリー生成機能手段221、スパニングツリー制御機能手段222およびノード通知機能手段223として機能させる。
【0072】
スパニングツリー生成機能手段221は、ノード10を複数含むネットワークにおいて、コンテンツを要求する要求パケットと該要求パケットに基づくコンテンツを含む応答パケットの転送経路となるスパニングツリーを計算して生成する機能を有する。
【0073】
ノード10はコンテンツの名前または識別子を用いてパケットを転送するノードである。
【0074】
スパニングツリー制御機能手段222は次の機能を有する。
【0075】
ノード10のそれぞれからスパニングツリーを構成するエッジの利用率の通知を受ける。そして、スパニングツリーを構成するエッジの利用率の最大値である最大利用率が第1の閾値以上である場合には、新たにスパニングツリーを計算して追加し、スパニングツリーを構成するエッジの最大利用率が第2の閾値以下となった場合には、使用中の複数のスパニングツリーのうちの1つを削除する。
【0076】
ノード通知機能手段223は、スパニングツリー制御機能手段222の指示を受け、生成したスパニングツリーおよび削除したスパニングツリーをノード10のそれぞれに通知し、コンテンツの転送に関わらないノード10には休止状態にすることを通知する機能を有する。
【0077】
以上に説明したように、本実施形態では、コンテンツに関わるトラフィックの転送に際し、複数のノードとエッジで構成されたスパニングツリーを用いて、コンテンツの転送に関わるノード及びエッジを最小限に抑えるようにしている。そして、コンテンツの転送に関わらないノードを休止状態にすることでネットワーク全体の電力消費を抑えている。また、スパニングツリーを構成するエッジの利用率を監視して、コンテンツの転送に関わるノード及びエッジを最小限に抑えたことに起因して利用率が増大したような場合には、輻輳緩和のためにスパニングツリーを追加する。一方、スパニングツリーが複数設けられている状況で、あるスパニングツリーにおいて利用率が低下したような場合には、スパニングツリーを削除する制御を行って、休止状態に移行可能なノードの数を増やして電力消費を抑えるようにしている。
【0078】
このように、本実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【0080】
第2の実施形態の通信システムの構成は、
図1に示した通信システム1と同じ構成である。
【0081】
第2の実施形態において、通信端末30は、例えば、携帯電話、スマートフォン、パーソナルコンピュータ、タブレット型端末、サーバを含む通信機能を有する装置である。そして、通信端末30が要求データであるコンテンツを要求する。
【0082】
通信端末30は、コンテンツを要求するための要求パケットを、通信端末30に接続するノード10−1に対して送信する。通信端末30は、要求するコンテンツを一意に識別可能なコンテンツIDを、当該要求パケットに含める。
【0083】
通信端末30は、要求したコンテンツを受け取る。通信端末30は、要求したコンテンツを含む応答パケットを、ノード10−1を介して受信する。
【0084】
サーバ40は、コンテンツを格納しており、当該コンテンツの要求に応じて、当該コンテンツを提供する。
【0085】
ノード10は、例えば、スイッチやルータ、携帯電話網の基地局、モバイルルータ等の、通信を中継する装置である。なお、モバイルルータは、例えば、携帯電話の3G(3rd Generation)回線や無線LAN(Local Area Network)のネットワークを中継する端末である。
【0086】
制御装置20は、要求パケットや応答パケットの転送経路となるネットワーク内のスパニングツリーの生成や削除の制御を行う装置である。制御装置20は、一般的なコンピュータ装置によって実現することができる。
【0087】
第2の実施形態におけるノード10と制御装置20の構成を、それぞれ
図6および
図7を参照して説明する。
【0088】
図6は、本実施形態のノード10の構成を示すブロック図である。
【0089】
ノード10は、第1の通信部101、第2の通信部102、制御部103、コンテンツ格納部104および処理規則DB(DataBase)105を含む構成になっている。
【0090】
第1の通信部101は、制御装置20と通信リンクで接続され、制御装置20から通知される制御信号を受信する手段として機能する。
【0091】
また、第1の通信部101は、自ノード10の状態を示す信号やネットワークの接続形態を示すネットワークトポロジー(以降はトポロジーと称する。)に関する情報を制御装置20に通知する手段として機能する。なお、第1の通信部101は、制御部103の指示によって、当該ノード10の状態を示す信号や、トポロジーに関する情報を通知してもよい。
【0092】
ノード10の状態を示す情報は、例えば、コンテンツ格納部104のうち、使用されている容量、又は、使用されていない容量である。また、ノード10の状態を示す情報は、例えば、ノード10で生じた障害に関する情報である。また、ノード10の状態を示す情報は、例えば、パケットの送受信に用いるポート(入力/出力インターフェース)に関する情報である。また、ノード10の状態を示す情報は、例えば、処理規則DB15の更新に関する情報である。
【0093】
ノード10の状態を示す情報は、これらの例に限られず、ノード10の状態を示す情報であれば、どのような情報であってもよい。
【0094】
トポロジーに関する情報は、通信システム1に含まれる複数のノード10のそれぞれの接続状態に関する情報である。
【0095】
トポロジーに関する情報は、例えば、ノード10に接続するエッジの利用率を含むトラフィックに関する情報である。また、トポロジーに関する情報は、例えば、ノード10に接続するエッジで生じた障害(例えば、エッジの切断など)に関する情報である。また、トポロジーに関する情報は、例えば、ノード10に新たに接続したエッジ、又は、ノード10に新たに接続した対向ノードに関する情報である。なお、トポロジーに関する情報は、これらの例に限られず、通信システム1を構成するネットワークのトポロジーに関する情報であれば、どのような情報であってもよい。
【0096】
第2の通信部102は、対向するノード10または通信端末30とエッジで接続され、接続されたノード10または通信端末30との間で、パケットを送受信する手段として機能する。
【0097】
コンテンツ格納部104は、コンテンツをキャッシュする(格納する)手段として機能する。コンテンツ格納部104は、例えば、制御部103からの指示に応じて、応答パケットに含まれるコンテンツを格納する。コンテンツ格納部104は、例えば、コンテンツIDと、コンテンツとを対応させて格納する。
【0098】
処理規則DB105は、受信したパケットを処理するための処理規則を格納する。処理規則DB105は、例えば、コンテンツIDと、当該コンテンツIDを有するパケットの転送先とを対応付けて記憶するルーティングテーブルであってもよい。処理規則DB105は、通信システムにおけるスパニングツリーに関する情報を記憶する。なお、スパニングツリーは、制御装置20から第1の通信部101を介して通知される。
【0099】
制御部103は、第2の通信部102を介して要求パケットを受け取り、当該要求パケットに含まれるコンテンツIDに対応するコンテンツが、コンテンツ格納部104に格納されているか否かを検索する。制御部103は、例えば、要求パケットに含まれるコンテンツIDを抽出し、当該抽出したコンテンツIDをキーとして、コンテンツIDに対応するコンテンツがコンテンツ格納部104に格納されているか否かを検索する。
【0100】
制御部103は、コンテンツ格納部104に当該コンテンツが格納されている場合には、当該コンテンツを含めた応答パケットを、当該コンテンツを要求してきたノード10宛に送信する。
【0101】
一方、制御部103は、コンテンツ格納部104に当該コンテンツが格納されていない場合には、要求パケットを、制御装置20に転送する。なお、この場合において、制御部103は、処理規則DB105を参照して、当該要求パケットを転送するノード10を決定してもよい。
【0102】
制御部103は、制御装置20から第1の通信部101を介して受信した、パケットを処理するための処理規則を用いて、処理規則DB105を更新する。制御部103は、例えば、要求パケットの転送先を示す処理規則を受信し、当該受信した処理規則を用いて、処理規則DB105を更新する。
【0103】
制御部103は、上述したノード10の状態を示す信号やトポロジーに関する情報を収集し、第1の通信部101を介して、制御装置20に通知する。
【0104】
次に、本実施形態の制御装置の構成を説明する。
【0105】
図7は、本実施形態の制御装置20の構成を示すブロック図である。
【0106】
制御装置20は、通信部231、制御部232、トポロジーDB233、処理規則DB234およびツリー記憶部235を含む構成になっている。なお、第1の実施形態におけるスパニングツリー生成手段201、スパニングツリー制御手段202およびノード通知手段203は、制御部232が、トポロジーDB233、処理規則DB234、ツリー記憶部235および通信部231を適宜制御して実現したものである。
【0107】
通信部231は、通信システム1に含まれる複数のノード10のそれぞれと、
図1の点線で示した通信リンクにより接続され、各ノード10と通信する手段として機能する。
【0108】
トポロジーDB233は、複数のノード10のそれぞれから収集した、ネットワークのトポロジーに関する情報を格納する。トポロジーに関する情報は、通信システム1に含まれる複数のノード10のそれぞれの接続状態に関する情報である。
【0109】
トポロジーに関する情報は、例えば、ノード10に接続するエッジの利用率に関する情報である。また、トポロジーに関する情報は、例えば、ノード10に接続するエッジで生じた障害(例えば、エッジの切断など)に関する情報である。また、トポロジーに関する情報は、例えば、ノード10に新たに接続したエッジまたはノード10に新たに接続した対向ノードに関する情報である。
【0110】
なお、トポロジーに関する情報は、これらの例に限られず、通信システム1を構成するネットワークのトポロジーに関する情報であれば、どのような情報であってもよい。
【0111】
処理規則DB234は、スパニングツリーを追加する基準、スパニングツリーを削除する基準、新しいスパニングツリーの作り方、スパンニングツリーの削除の仕方等を記憶している。
【0112】
ツリー記憶部235は、制御装置20が生成した、通信システム1を構成するネットワーク内の現在使用中のすべてのスパニングツリーの情報を記憶している。
【0113】
制御部232は、通信部231、トポロジーDB233、処理規則DB234およびツリー記憶部235を制御して、以降に説明する制御装置20の処理動作を実現する。
【0114】
図1に示した通信システム1では、上述した制御装置20が1つである場合の例を示しているが、複数の制御装置20が設備されていてもよい。制御装置20が複数設備されている場合には、複数の制御装置20のうちの1つがマスターとなり、ネットワーク内の複数のノード10のそれぞれを管理・制御する。そして、マスターの制御装置20に障害が生じた場合には、他の制御装置20がマスターとなり、障害が生じた制御装置20の処理を引き継ぐように構成する。
【0115】
上記のように構成された制御装置20が実行する制御動作について説明する。
【0116】
制御装置20は、初期スパニングツリーの生成、その後のエッジの利用率に応じたスパニングツリーの追加生成およびスパニングツリーの削除の制御動作を実行する。
【0117】
まず、初期スパニングツリーの生成について説明する。
【0118】
図8は、制御装置20の動作を示すフロー図である。
【0119】
制御装置20は、
図8に示す動作を実行して、通信システム1を構成するネットワーク内でコンテンツの転送経路となる初期スパニングツリーを計算して生成する(S201)。
【0120】
制御装置20の制御部232は、トポロジーDB233に収集、蓄積されている通信システム1を構成するネットワークのトポロジーに関する情報を参照して、コンテンツの転送経路となる初期スパニングツリーを計算して生成する。
【0121】
初期スパニングツリーは、サーバ40に接続するノード10−4に、ネットワーク内の通信端末30が接続されたすべてのノード10−1が接続することができるスパニングツリー(最小全域木)である。初期スパニングツリーは、サーバ40の全てのコンテンツの転送経路として使用される。
【0122】
制御部232は、トポロジーに関する情報を参照して、通信システム1を構成するネットワーク内のそれぞれのエッジの重みを「1」として、クラスカル法(Kruskal’s Algorithm)を用いて、初期スパニングツリーを算出する。
【0123】
制御部232は、計算した初期スパニングツリーのトポロジー情報を、通信部231を介してネットワーク内のすべてのノード10のそれぞれに通知する(S202)。
【0124】
また、制御部232は、スパニングツリーの計算の過程で識別した、コンテンツの転送に関わらないノード10(中間ノード)に対して、通信部231を介して休止状態にすることを通知する(S203)。
【0125】
以上の動作で初期スパニングツリーが生成され、そのトポロジー情報が各ノード10に通知されると、各ノード10では次のような動作が実行される。
【0126】
ノード10の制御部103は、制御装置20から通知を受けた初期スパニングツリーのトポロジー情報に基づいて、処理規則DB105に蓄積されているパケットを転送する規則を更新する。つまり、該ノード10を経由する要求パケット或いは応答パケット(パケットp)を、初期スパニングツリーでこのパケットpの要求ノードと応答ノードの間の最短経路を用いて転送するように、パケットを転送する規則を更新する。ここで「p」はコンテンツを意味し、「パケットp」は、コンテンツpを要求する要求パケット或いはコンテンツpを含む応答パケットを意味する。
【0127】
また、ノード10の制御部103は、休止状態となるノード10と接続する自装置の第2の通信部102の通信インターフェースを休止状態にする。例えば、ノード10が、シェルフ(装置筐体)に、各エッジに対応する通信インターフェース用のカードを装着してエッジと接続している場合、休止状態のノード10との間のエッジに対応するカードを休止状態とする。これにより、ノード10では、通信インターフェース用のカード単位で消費電力を削減することができる。
【0128】
一方、休止状態にすることを通知されたノード10の制御部103は、制御装置20と通信ができ、再度動作状態にすることができる必要最小限度の機能を残して、該ノード10の機能を休止させる。
【0129】
上述したように、本実施形態では、初期スパニングツリーをすべてのコンテンツの転送経路にして、ネットワークを構成する一部のエッジにトラフィックを集約することにより消費電力の削減を図っている。
【0130】
一方、一部のエッジにトラフィックを集約することによりトラフィックの輻輳が発生する可能性がある。
【0131】
そのため、本実施形態では、スパニングツリーの各エッジの利用率を該スパニングツリーに関わる各ノードから収集し、その利用率の変化で動的にネットワーク内のスパニングツリーを増減させる制御を行う。なお、エッジの利用率は、第1の実施形態で説明したように、該エッジが有するトラフィックの転送キャパシティに対し、ある単位時間における該エッジ上に流れるトラフィック量の割合を云う。
【0132】
次に、エッジの利用率が増加したことに伴うスパニングツリーの追加について説明する。
【0133】
図9は、本実施形態における通信システム1の動作を示すシーケンス図である。
【0134】
スパニングツリーを構成する各ノード10(
図7ではノード10−a乃至10−d)は、使用中のスパニングツリーに含まれるエッジの利用率を制御装置20に通知する(S301)。このノード10から制御装置20へのエッジの利用率の通知は、ノード10が周期的に実施してもよいし、制御装置20からの要求に基づいて実施してもよい。
【0135】
制御装置20は、使用中のスパニングツリーに含まれるエッジの利用率の最大値である最大利用率が所定の閾値(第1の閾値)を超えた場合には、追加する新たなスパニングツリーを計算する(S302)。
【0136】
制御装置20は、新たにスパニングツリーを計算すると、新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード10のそれぞれに通知する(S303)。
【0137】
新たなスパニングツリーセットのトポロジーを通知された各ノード10は、そのトポロジー情報に基づいて、処理規則DB105に蓄積されているパケットを転送する規則を更新する。
【0138】
また、トポロジーの変更により、実際のネットワーク構成もそれに対応させて変更する。例えば、休止中であったノード10が稼働状態にさせられ、稼働状態になったノード10と対向するエッジの通信インターフェースを動作状態にする等の制御が各ノード10で実施される。
【0139】
図10は、本実施形態における制御装置20の動作を示すフローチャートである。
図10に示す動作を実行することにより、制御装置20は、新たなスパニングツリーを追加する。
【0140】
制御装置20はスパニングツリーに含まれるエッジの利用率を各ノードから収集する(S401)。収集した各エッジの利用率は、例えば、トポロジーDB233に格納されている。
【0141】
制御装置20の制御部232は、収集した利用率のなかで一番大きな値を有する最大利用率を識別する(S402)。
【0142】
制御部232は、識別したエッジの最大利用率を、処理規則DB234に予め設定してあるスパニングツリーを追加する基準である第1の閾値と比較する(S403)。
【0143】
エッジの最大利用率が第1の閾値より大きい場合には(S403、Yes)、制御部232は、処理規則DB234に規定されている新しいスパニングツリーの作り方にしたがって、新たなスパニングツリーを計算する(S404)。
【0144】
制御部232は、新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード10に通知する(S405)。
【0145】
一方、ステップS403の比較動作で、エッジの最大利用率が第1の閾値より小さい場合には(S403、No)、制御装置20は新たなスパニングツリーを計算することなく処理を終了する。
【0146】
以上のように、制御装置20は、定期的に各ノードからエッジの利用率の報告を受け、使用中のスパニングツリーに含まれるエッジの利用率が高くなると新たなスパニングツリーを追加する。このとき、制御装置20の制御部232は、使用中のスパニングツリーに含まれるエッジの最大利用率が所定の第1の閾値を超えているか否かを判断する。
【0147】
ここで、利用率の閾値について説明する。
【0148】
上述した第1の閾値は、スパニングツリーを追加するか否かの判定に用いる閾値である。第1の閾値は数値で表され、例えば「0.9」である。
【0149】
また、後述するように、使用中のスパニングツリーに含まれるエッジの利用率が低くなった際には、スパニングツリーを削除する動作が行われる。その際に、スパニングツリーを削除するか否かの判定に用いる閾値を第2の閾値と称す。第2の閾値は数値で表され、例えば「0.6」である。
【0150】
さらに、第1の閾値と第2の閾値以外の閾値で、使用中のスパニングツリーに含まれるエッジの混雑度合の判定に用いる第3の閾値がある。つまり、エッジの利用率の大きさに応じてエッジを次のように分類する。
【0151】
利用率が第3の閾値以上のエッジを混雑エッジと称し、利用率が第3の閾値未満のエッジを非混雑エッジと称する。このとき、使用中のスパニングツリーに含まれていない休止状態のエッジをフリーエッジと称する。
【0152】
第3の閾値は数値で表され、例えば「0.9」である。この例の場合、スパニングツリーを追加する判定基準の第1の閾値とエッジの混雑度合の判定に用いる第3の閾値とを同じ値に設定している。しかし、第1の閾値と第3の閾値は必ずしも同じである必要はなく、例えば、第1の閾値が「0.9」で、第3の閾値が「0.8」と設定してもよい。
【0153】
制御装置20の制御部232は、上述した3種類のエッジに異なる重みを付して、クラスカル法を用いて新たなスパニングツリーを計算する。
【0154】
利用率が第3の閾値未満の非混雑エッジに対しては、「該非混雑エッジの利用率」を重みとして付す。
【0155】
休止状態のエッジであるフリーエッジに対しては、「非混雑エッジの最大利用率+1」を重みとして付す。
【0156】
利用率が第3の閾値以上の混雑エッジに対しては、「非混雑エッジの最大利用率+1+該混雑エッジの利用率」を重みとして付す。
【0157】
上記により、制御部232は、新たなスパニングツリーを計算する時に、非混雑エッジを優先して用いる。非混雑エッジだけを用いて新たなスパニングツリーを計算できない場合は、フリーエッジを用いてスパニングツリーを計算する。フリーエッジを用いても新たなスパニングツリーを計算できない場合は、混雑エッジを用いる。
【0158】
制御部232は、新たなスパニングツリーセットのトポロジーを複数のノード10の各々に通知する。
【0159】
新たなスパニングツリーセットの通知を受けたノード10は、各スパニングツリーが均衡して使用されるように、該ノード10を経由する要求パケット或いは応答パケット(パケットp)を転送する規則を更新する。
【0160】
なお、一個のコンテンツは1つのスパニングツリーでしか転送されない。つまり、初期のスパニングツリーが1つであった場合には、全てのコンテンツが初期のスパニングツリーで転送される。しかし、ネットワークが混雑してきて、上記のようにスパニングツリーが複数用いられるようになると、コンテンツに応じて、転送に用いるスパニングツリーが決められる。そして、このとき、各スパニングツリーを均衡して使用することでネットワークの混雑を防ぐように、コンテンツとスパニングツリーとの対応が決められる。
【0161】
ノード10は、pの名前のハッシュ値に応じて使用するスパニングツリーを決め、パケットpを要求ノードと応答ノードの間の最短経路を用いて転送するように、パケットを転送する規則を更新する。このとき、pの名前のハッシュ値と使用するスパニングツリーの数に基づいて、式1で算出されるt番目のスパニングツリーを用いて該パケットpが転送される。つまり、式1を用いて、パケットpを転送するスパニングツリーの番号tを計算する。
【0162】
t=(pの名前のハッシュ値)%(使用するスパニングツリーの数) ・・・式1
ここで、(pの名前のハッシュ値)も(使用するスパニングツリーの数)も整数であり、「%」は、(pの名前のハッシュ値:整数)を(使用するスパニングツリーの数:整数)で割った余りを表す。
【0163】
以上に説明したように、制御装置20は、既存のスパニングツリーのしかも非混雑エッジを優先的に用いて新たなスパニングツリーを計算することにより、コンテンツの転送に関わるノードおよびエッジを最小限に抑える。これにより、スパニングツリーを追加した場合であっても、ネットワーク全体で消費する電力を極力低下させることができる。
【0164】
次に、エッジの利用率が低下したことに伴うスパニングツリーの削除について説明する。
【0165】
図11は、本実施形態における制御装置20の動作を示すフローチャートである。
図11に示す動作を実行することにより、制御装置20は、使用中の複数のスパニングツリーのうちの1つを削除する。
【0166】
制御装置20はスパニングツリーに含まれるエッジの利用率を各ノードから収集する(S501)。収集した各エッジの利用率は、例えば、トポロジーDB233に格納されている。
【0167】
制御装置20の制御部232は、収集した利用率のなかで一番大きな値を有する最大利用率を識別する(S502)。
【0168】
制御部232は、識別したエッジの最大利用率を、処理規則DB234に予め設定してあるスパニングツリーを削除する基準である第2の閾値と比較する(S503)。
【0169】
エッジの最大利用率が第2の閾値より小さい場合には(S503、Yes)、制御部232は、現在使用中のスパニングツリーが複数か否かを判定する(S504)。
【0170】
ステップS504の判定で、現在使用中のスパニングツリーが複数の場合には(S504、Yes)、制御部232は、処理規則DB234に規定されているスパニングツリーの削除の仕方にしたがって、使用中のスパニングツリーのうちの1つを削除する(S505)。
【0171】
制御部232は、例えば、使用中の複数のスパニングツリーのうちのランダムの1つを削除する。もしくは、制御部232は、使用中の複数のスパニングツリーのうちの最大利用率が最も低い1つを削除する。他の選択方法で削除しても良い。
【0172】
制御部232は、使用中のスパニングツリーのうちの1つを削除した新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード10に通知する(S506)。そして、新たなスパニングツリーセットのトポロジーにおいて、コンテンツの転送に関わらないノードには、休止状態にすることを通知する(S507)。
【0173】
新たなスパニングツリーセットの通知を受けると、ノード10は、各スパニングツリーが均衡して使用されるように、該ノード10を経由する要求パケット或いは応答パケットを転送する規則を更新する。これは、上述したスパニングツリーの追加の動作での説明と同様の処理が行われる。
【0174】
一方、ステップS503の比較動作で、エッジの最大利用率が第2の閾値より大きい場合には(S503、No)、スパニングツリーを削除する必要がないので処理を終了する。また、ステップS504の判定で、現在使用中のスパニングツリーが1つしか存在しない場合には(S504、No)、削除すべきスパニングツリーが存在しないので処理を終了する。
【0175】
以上のように、制御装置20は、定期的に各ノードからエッジの利用率の報告を受け、使用中のスパニングツリーに含まれるエッジの利用率が低くなるとスパニングツリーを削除する。このとき、制御装置20の制御部232は、使用中のスパニングツリーに含まれるエッジの最大利用率が所定の第2の閾値を下回っているか否かと、現在使用中のスパニングツリーが複数存在するか否かを判定する。
【0176】
本発明の第2の実施形態では、スパニングツリーを構成するエッジの利用率を監視して、その最大利用率が所定の閾値を超えるまではコンテンツの転送に関わるノード及びエッジを最小限に抑えたスパニングツリーを最大限に利用することが可能となる。そのため、コンテンツの転送に関わらないノード及びエッジを休止状態にすることができ、ネットワーク全体で消費する電力を低下させることができる。
【0177】
また、コンテンツの転送に関わるノード及びエッジを最小限に抑えたことに起因して利用率が増大したような場合には、輻輳緩和のためにスパニングツリーを追加することができる。本発明の第2の実施形態では、スパニングツリーの追加に際しては、既存のスパニングツリーのしかも非混雑エッジを優先的に用いて新たなスパニングツリーを計算する。これにより、スパニングツリーを追加する場合であっても、コンテンツの転送に関わるノードおよびエッジを最小限に抑えることができ、ネットワーク全体で消費する電力を極力低下させることができる。
【0178】
さらに、スパニングツリーが複数になった場合、コンテンツとスパニングツリーとの対応を決めて各スパニングツリーを均衡よく使用することで、ネットワークの混雑を防ぐようにしている。
【0179】
また、本発明の第2の実施形態では、スパニングツリーを構成するエッジの利用率を監視して、スパニングツリーが複数設けられている状況で、エッジの最大利用率が、所定の閾値以下になったことに応じて、使用中のスパニングツリーのうちの1つを削除する。スパニングツリーのうちの1つを削除することにより、休止状態に移行可能なノードおよびエッジの数を増やすことができ、ネットワーク全体で消費する電力を低下させることができる。
【0180】
このように、本発明の第2の実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【0182】
本発明の第3の実施形態の通信システムの構成は、
図1に示した通信システム1の構成と同じである。また、本発明の第3の実施形態の制御装置およびノードの構成は、
図7に示した制御装置20の構成および
図6に示したノード10の構成と同じである。そのため、第3の実施形態の通信システム1、制御装置20およびノード10の構成の説明は省略する。
【0183】
本発明の第3の実施形態は、制御装置20の制御部232が実行するスパニングツリーの計算が第2の実施形態における計算と異なる。
【0184】
第3の実施形態では、制御装置20の制御部232は、スパニングツリーを計算する場合に、当該計算するスパニングツリーをできる限り半径の短いスパニングツリーとする。また、スパニングツリーを追加する際にも、エッジの利用率を考慮しつつ、当該追加するスパニングツリーをできるだけ半径の短いスパニングツリーとする。
【0185】
ここで、スパニングツリーの半径は、スパニングツリーに含まれる最も長いパスのエッジの個数の半分の値を示す。
図12は、スパニングツリーの半径を説明する図である。
図12において、左側に示すツリーAの場合、ツリーAに含まれる最も長いパスのエッジの個数は「6」なので、半径は「3」である。また、右側に示すツリーBの場合、ツリーBに含まれる最も長いパスのエッジの個数は「2」なので、半径は「1」である。
【0186】
第3の実施形態の通信システム1は、半径の短いスパニングツリーを用いることにより、コンテンツ配信に要する通信時間を短くすることが可能となる。また、当該通信システム1は、半径の短いスパニングツリーを用いることにより、コンテンツをキャッシュする必要のあるノード10の数を減らすことができ、当該通信システム全体における記憶量を低減することができる。通信システム全体における記憶量を低減することで、通信システム全体における消費エネルギーの上昇を抑制することが可能となる。
【0187】
第3の実施形態において、制御装置20の制御部232は、計算するスパニングツリーの半径をできる限り短くするために、各エッジの利用率及び「Betweenesses」に基づいて、スパニングツリーに用いるエッジを決定する。なお、「Betweenesses」は「共有度」とも称する。
【0188】
この「Betweenesses」は、各ノード10から通知を受けた、使用中のスパニングツリーに含まれるエッジの利用率に基づいて、制御部232が計算する。
【0189】
「Betweenesses」は、エッジごとに計算される値であり、各エッジにおける、任意の2つのノード10間の最短経路が通る数である。すなわち、「Betweenesses」は、任意の2つのノード10の最短経路を、ネットワークに含まれるノード10の全てのペアに対して計算した場合に、エッジにおける当該最短経路が通過する数を、エッジ毎に示したものである。
【0190】
最短経路が通過する数はエッジによって異なり、「Betweenesses」が高いエッジは、多くのノード10間の最短経路がそのエッジを利用することを表す。
【0191】
制御装置20は、各エッジの利用率及び「Betweenesses」に基づいて、スパニングツリーに用いるエッジを決定する。
【0192】
制御装置20は、スパニングツリーを計算する場合に、「Betweenesses」が高いエッジを優先的に用いて、当該スパニングツリーを計算する。制御装置20は、計算したスパニングツリーを、複数のノード10の各々に通知する。
【0193】
図13は、本発明の第3の実施形態の制御装置20の動作の概要を示すフロー図である。
【0194】
制御装置20の制御部232は
図13に示すフローにしたがって動作して、コンテンツに関するトラフィックを割り当てるスパニングツリーを計算する。
【0195】
制御部232は、通信システム1のネットワークに含まれる各エッジの「Betweenesses」を計算する(S601)。
【0196】
制御部232は、各エッジに、そのエッジの「Betweenesses」に応じた重みを付けて、クラスカル法等を用いて初期スパニングツリーを計算し、そのトポロジー情報を通信システム内のすべてのノード10に通知する(S602)。各ノードは、通知を受けた初期スパニングツリーの情報に基づいて、要求パケットと応答パケットを転送する規則を更新する。
【0197】
制御部232は、各ノードから、使用中のスパニングツリーに含まれるエッジの利用率の通知を定期的に受けて、利用率を収集する(S603)。
【0198】
スパニングツリーを新たに追加する場合、制御部232は、各エッジの利用率及び算出した「Betweenesses」に基づいて、新たなスパニングツリーを計算する(S604)。エッジの利用率及び「Betweenesses」に基づいて、追加するスパニングツリーに用いるエッジを決定する方法については後述する。
【0199】
制御部232は、新たにスパニングツリーを計算した場合には、新たなスパニングツリーセットのトポロジー情報をネットワーク内のすべてのノード10に通知する(S605)。新たなスパニングツリーセットの通知を受けた各ノード10は、要求パケットと応答パケットを転送する規則を更新する。
【0200】
エッジの利用率及び「Betweenesses」を用いて追加するスパニングツリーを計算する動作について説明する。
【0201】
図14は、本発明の第3の実施形態の制御装置20の動作を示すフロー図である。
【0202】
制御装置20の制御部232は
図14に示すフローにしたがって動作して、スパニングツリーを追加する。なお、この
図14に示す動作は、
図10に示した第2の実施形態におけるスパニングツリーの追加動作に類似している。
【0203】
制御装置20の制御部232はスパニングツリーに含まれるエッジの利用率を各ノードから収集する(S701)。収集した各エッジの利用率は、例えば、トポロジーDB233に格納されている。
【0204】
制御部232は、収集した利用率のなかで一番大きな値を有する最大利用率を識別する(S702)。
【0205】
制御部232は、識別したエッジの最大利用率を、処理規則DB234に予め設定してあるスパニングツリーを追加する基準である第1の閾値と比較する(S703)。
【0206】
エッジの最大利用率が第1の閾値より大きい場合には(S703、Yes)、制御部232は、処理規則DB234に規定されている新しいスパニングツリーの作り方にしたがって、新たなスパニングツリーを計算する(S704)。
【0207】
ここで、第3の実施形態では、エッジの利用率と「Betweenesses」を用いて追加するスパニングツリーを計算する。
【0208】
制御部232は、新たなスパニングツリーを計算する時に、第2の実施形態で説明した、非混雑エッジ、フリーエッジ、混雑エッジの3種類のエッジに異なる重みをつける。
【0209】
非混雑エッジに対しては、「該非混雑エッジの利用率」を重みとして付す。
【0210】
休止状態のエッジであるフリーエッジに対しては、「非混雑エッジの最大利用率+1/(該フリーエッジの「Betweenesses」)」を重みとして付す。
【0211】
混雑エッジに対しては、「非混雑エッジの最大利用率+1」を重みとして付す。
【0212】
そして、制御部232は、クラスカル法を用いて、スパニングツリーを計算する。
【0213】
制御部232は、新たなスパニングツリーセットのトポロジーをネットワーク内のすべてのノード10に通知する(S705)。
【0214】
新たなスパニングツリーセットの通知を受けたノード10は、各スパニングツリーが均衡して使用されるように、該ノード10を経由する要求パケット或いは応答パケットを転送する規則を更新する。つまり、第2の実施形態で説明したように、コンテンツに応じて、転送に用いるスパニングツリーを決め、しかも各スパニングツリーが均衡して使用されるように、コンテンツとスパニングツリーとの対応が決められる。
【0215】
一方、ステップS703の比較動作で、エッジの最大利用率が第1の閾値より小さい場合には(S703、No)、制御装置20は新たなスパニングツリーを計算することなく処理を終了する。
【0216】
第3の実施形態においても、制御装置20は、使用中のスパニングツリーに含まれるエッジの最大利用率が第2閾値より低い場合に、スパニングツリーを削除する。この動作は、
図11を参照して説明した第2の実施形態の動作と同じなので、説明を省略する。
【0217】
上記のとおり、本発明の第3の実施形態における通信システム1は、制御装置20がスパニングツリーを計算する場合、及び、追加する新たなスパニングツリーを計算する場合に、できる限り半径の短いスパニングツリーを計算する。その際に、制御装置20は、エッジが任意のノード間の最短経路として利用される程度を示す数値である共有度(または「Betweenesses」)を用いる。
【0218】
したがって、当該通信システムは、コンテンツ配信に要する通信時間を短くすることができるとともに、コンテンツをキャッシュする必要のあるノードの数を減らすことができる。そして、当該通信システムは、コンテンツの転送に関わらないノード及びエッジを休止状態にすることによって、ネットワーク全体で消費する電力を低下させることができる。さらに、通信システム全体における記憶量を低減することで、通信システム全体における消費エネルギーの上昇を抑制することが可能となる。
【0219】
このように、本発明の第3の実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【0221】
本発明の第4の実施形態は、本発明を、集中制御型のネットワークアーキテクチャであるオープンフロー(OpenFlow)という技術を改良して実施する例を示す。
【0222】
オープンフローは、通信をエンドツーエンドのフローとして認識し、フロー単位で経路制御等を実行できる。
【0223】
図15および
図16を参照し、オープンフローについて説明する。
【0224】
図15は、オープンフロー技術により構成された通信システムの概要を示す。なお、フローとは、例えば、所定の属性(通信の宛先や送信元等に基づいて識別される属性)を有する一連の通信パケット群である。
【0225】
図15に示す通信システムは、オープンフローコントローラ(OpenFlow Controller)50が、複数のオープンフロースイッチ(OpenFlow Switch)51を含んで構成されている。オープンフロースイッチ51は、フローテーブル(Flow Table)510を含み、オープンフロー技術を採用したネットワークスイッチである。オープンフローコントローラ50は、オープンフロースイッチ51を制御する情報処理装置である。
【0226】
オープンフロースイッチ51は、オープンフローコントローラ50との間に設定されたセキュアチャネル(Secure Channel)52を介して、オープンフローコントローラ50と通信を行う。
【0227】
オープンフローコントローラ50は、セキュアチャネル52を介して、オープンフロースイッチ51のフローテーブル510の設定を行う。なお、セキュアチャネル52は、スイッチとコントローラ間の通信の盗聴や改ざん等を防止するための処置がなされた通信経路である。
【0228】
図16は、フローテーブル510の各エントリ(フローエントリ)の構成例を示す。
【0229】
フローエントリは、マッチングルールフィールド(Matching Fields)F101、インストラクションフィールド(Instructions)F102および統計情報フィールド(Counters)F103の各フィールドで構成される。
【0230】
マッチングルールフィールドF101は、スイッチが受信したパケットのヘッダに含まれる情報と照合するための情報(マッチングルール)を含むフィールドである。インストラクションフィールドF102は、マッチングルールにマッチするパケットの処理方法が規定されたフィールドである。統計情報フィールドF103は、パケットフロー毎の統計情報を示すフィールドである。
【0231】
ここで、パケットのヘッダに含まれる情報は、宛先IPアドレス(Internet Protocol Address)や、VLAN ID(Virtual Local Area Network Identification)等である。
【0232】
なお、本発明の第4の実施形態において、パケットのヘッダにはコンテンツIDが含まれているので、当該オープンフロー技術を適用する場合には、マッチングルールにはコンテンツIDを含めることとなる。
【0233】
オープンフロースイッチ51は、パケットを受信すると、フローテーブル510を参照する。オープンフロースイッチ51は、受信したパケットのヘッダ情報にマッチするフローエントリを検索する。受信パケットのヘッダ情報にマッチするエントリが検索された場合、オープンフロースイッチ51は、検索されたエントリのインストラクションフィールドに定義された処理方法に従って、受信パケットを処理する。処理方法は、例えば、“受信パケットを所定のポートから転送する”、“受信したパケットを破棄する”、“受信パケットのヘッダの一部を書き換えて、所定のポートから転送する”といったことが規定されている。
【0234】
一方、受信パケットのヘッダ情報にマッチするエントリが見つからない場合、オープンフロースイッチ51は、例えば、セキュアチャネル52を介して、オープンフローコントローラ50に対して受信パケットを転送する。オープンフロースイッチ51は、受信パケットを転送することにより、オープンフローコントローラ50に対して、受信パケットの処理方法を規定したフローエントリの設定を要求する。
【0235】
なお、パケットの処理方法として、オープンフローコントローラ50に要求を送信することを規定したフローエントリにパケットがマッチして、その処理方法に従ってオープンフローコントローラ50に対してフローエントリの設定を要求するようにしてもよい。
【0236】
オープンフローコントローラ50は、受信パケットの処理方法を決定し、決定した処理方法を含むフローエントリをフローテーブル510に設定する。その後、オープンフロースイッチ51は、設定されたフローエントリにより、受信パケットと同一のフローに属する後続のパケットを処理する。
【0237】
図17は、本発明の第4の実施形態の通信システム2の構成を示すブロック図である。
【0238】
本発明の第4の実施形態の通信システム2は、複数のオープンフロースイッチ11、通信端末31、オープンフローコントローラ25およびサーバ40を含んで構成される。オープンフローコントローラ25は、通信システム2のネットワークに含まれるオープンフロースイッチ11の各々と、OpenFlowプロトコルに従って通信することが可能である。
【0239】
図18は、本発明の第4の実施形態のオープンフロースイッチ11の構成を示すブロック図である。
【0240】
オープンフロースイッチ11は、通信部110、処理規則DB111、処理部112およびコンテンツ格納部115を含んで構成される。また、処理部112は、処理検索部113およびアクション実行部114を含む。
【0241】
通信部110は、OpenFlowプロトコルに従って、オープンフローコントローラ25と通信する。
【0242】
処理規則DB111は、オープンフローコントローラ25から通知された処理規則を記憶する。
【0243】
処理部112は、オープンフローコントローラ25から通知された処理規則に従って、パケットを処理する。
【0244】
処理部112の処理検索部113は、処理規則DB111から、受信したパケットに対応する処理規則を検索する。処理検索部113は、パケットと、処理規則DB102に記憶された処理規則のマッチングルールフィールドF101の内容(マッチングルール)とを照合し、パケットに対応する処理規則を検索する。
【0245】
処理部112のアクション実行部114は、検索された処理規則のインストラクションフィールドF102に規定された処理方法に従って、パケットを処理する。
【0246】
処理検索部113は、例えば、処理規則DB111に、受信したパケットに対応する処理規則が存在しない場合、処理規則の設定をオープンフローコントローラ25に要求する。
【0247】
コンテンツ格納部115は、コンテンツをキャッシュする(格納する)手段として機能する。コンテンツ格納部115は、例えば、通信部110から応答パケットを受信し、当該受信した応答パケットに含まれるコンテンツを格納する。コンテンツ格納部115は、例えば、コンテンツIDと、コンテンツとを対応させて格納する。
【0248】
図19は、本発明の第4の実施形態のオープンフローコントローラ25の構成を示すブロック図である。
【0249】
オープンフローコントローラ25は、通信部251、処理規則決定部252、ツリー決定部253、スイッチ管理部254、管理DB255およびツリー格納部256を含んで構成される。なお、処理規則決定部252とツリー決定部253は制御部250を構成する。
【0250】
通信部251は、オープンフロースイッチ11と、OpenFlowプロトコルに基づいて通信する機能を有する。通信部251は、オープンフロースイッチ11から、パケットの処理規則(上述の“フローエントリ”に対応)の要求を受信する。また、通信部251は、オープンフロースイッチ11に処理規則を通知する。
【0251】
処理規則決定部252は、オープンフロースイッチ11に設定する処理規則を決定する。処理規則決定部252は、処理規則を決定する場合、通信部251が受信したパケットのヘッダのコンテンツIDを抽出する。
【0252】
処理規則決定部252は、通信部251が受信したパケットが要求パケットの場合、抽出したコンテンツIDに対応するコンテンツに関するトラフィックに割り当てられたスパニングツリーに沿って、当該要求パケットを送信するための処理規則を決定する。また、処理規則決定部252は、通信部251が受信したパケットが応答パケットの場合、抽出したコンテンツIDに対応するコンテンツの要求パケットの転送経路を辿って、当該要求パケットを転送するための処理規則を決定する。
【0253】
なお、処理規則決定部252は、処理規則を決定する場合、ツリー格納部256を参照する。
【0254】
ツリー決定部253は、各オープンフロースイッチ11から収集した、使用中のスパニングツリーに含まれるエッジの利用率の最大値が、所定の閾値を超えているか否かを判断する。ツリー決定部253は、使用中のスパニングツリーに含まれるエッジの最大利用率が、所定の閾値を超えたことに応じて、新たなスパニングツリーを計算する。なお、ツリー決定部253が、新たなスパニングツリーを計算する方法は、上述した第2の実施形態および第3の実施形態における制御装置20の制御部232と同様の方法である。
【0255】
また、ツリー決定部253は、使用中のスパニングツリーに含まれるエッジの最大利用率が、第2の所定の閾値以下になったことに応じて、使用中の複数のスパニングツリーのうちの1つを削除する。
【0256】
なお、ツリー決定部253は、上述した第2の実施形態および第3の実施形態における制御装置20の制御部232と同様の機能を備える。また、ツリー決定部253は、計算したスパニングツリーに関する情報を、ツリー格納部256に格納する。
【0257】
OpenFlowに準拠した通信機器(ネットワークスイッチ等)は、通信機器のポートのステータスをコントローラに通知する機能(Port Status)や、スイッチの特性をコントローラに通知する機能(Feature Request/Reply)を有する。スイッチ管理部254は、それらの機能により、オープンフロースイッチ11から情報を収集してもよい。
【0258】
オープンフロースイッチ11は、パケットを処理するための処理規則を、オープンフローコントローラ25に要求することが可能である。処理規則決定部252は、要求に応じて、該パケットを転送するための処理規則を生成し、生成した処理規則を管理DB255に格納する。
【0259】
図20は、本発明の第4の実施形態の処理規則決定部252が生成する処理規則の例を示す図である。
【0260】
図20は、
図16に示したフローエントリの構成におけるマッチングルールフィールド(Matching Fields)F101とインストラクションフィールド(Instructions)F102の例を示す。
【0261】
処理規則決定部252は、例えば、オープンフロースイッチ11からの要求に対応するパケットのヘッダに格納されているコンテンツIDと、当該パケットのポート番号をマッチングルールとして規定する。
【0262】
処理規則決定部252、例えば、マッチングルールに対応する処理方法“Instructions”として、所定のポート番号からパケットを転送する処理方法を規定する。
【0263】
図20に示す例では、1行目の処理規則のマッチングルールは、「コンテンツIDが“A”で、ポート番号が“80”」である。また、1行目の処理規則のインストラクションは、ポート番号16から当該パケットを転送することを示す。
【0264】
また、3行目の処理規則のマッチングルールは、「コンテンツIDが“B”で、ポート番号が“110”」である。また、3行目の処理規則のインストラクションは、パケットを破棄することを示す。
【0265】
図21は、本発明の第4の実施形態の通信システム2の動作を示すシーケンス図である。なお、この動作例は、オープンフローコントローラ25が新たなスパニングツリーを計算する場合の例を含んでいる。
【0266】
まず、オープンフローコントローラ25は、各オープンフロースイッチ11からトポロジーに関する情報を取得する(S801)。
【0267】
オープンフローコントローラ25は、初期のスパニングツリー(又は、追加するスパニングツリー)を計算し(S802)、パケットを処理するための処理規則を、各オープンフロースイッチ11に通知する(S803のFlow Mod)。
【0268】
例えば、オープンフロースイッチ11−1がコンテンツを要求するものとする。
【0269】
オープンフロースイッチ11−1は、オープンフローコントローラ25から通知された処理規則に基づいて、当該コンテンツを要求するための要求パケットを送信する(S804)。スパニングツリー上の各オープンフロースイッチ11(例えば、オープンフロースイッチ11−2、11−3)は要求パケットを転送する(S805)。
【0270】
オープンフロースイッチ11−1が要求したコンテンツを保持するオープンフロースイッチ11−4は、要求パケットを受信し、当該要求パケットに対する応答である応答パケットに、要求されたコンテンツを格納する(S806)。続いて、オープンフロースイッチ11−4は、オープンフローコントローラ25に対して、要求パケットに応答するための応答パケットを処理するための処理規則を要求する(S807)。
【0271】
オープンフローコントローラ25は、応答パケットを処理するための処理規則を、オープンフロースイッチ11−4に通知する(S808のFlow Mod)。なお、このとき通知される処理規則は各オープンフロースイッチ11にも通知される。
【0272】
オープンフロースイッチ11−4は、オープンフローコントローラ25から通知された処理規則に基づいて、応答パケットを転送する(S809)。
【0273】
上述したように、本発明の第1の実施形態乃至第3の実施形態で説明した通信システム1は、集中制御型のネットワークアーキテクチャであるオープンフローを適用した通信システム2としても実現することができる。
【0274】
この通信システム2のオープンフローコントローラ25は、通信システム1の制御装置20と同等の機能を有し、スパニングツリーを計算する場合には、できる限り半径の短いスパニングツリーを計算し、コンテンツの転送に関わらないノード及びエッジを休止状態にする。したがって、通信システム2においても、通信システム全体における消費エネルギーの上昇を抑制し、ネットワーク全体で消費する電力を低下させることができる。
【0275】
このように、本発明の第4の実施形態は、コンテンツの名前又は識別子により通信を行うネットワークにおいて、ネットワークの構成を動的に変化させることによりネットワークの負荷及び消費エネルギーの上昇を抑制することが可能となる。
【0276】
なお、
図4の説明の際に言及したように、
図4は、第2の実施形態と第3の実施形態の制御装置や第4の実施形態のオープンフローコントローラのハードウェアに共通の構成を示すブロック図である。
【0277】
制御装置およびオープンフローコントローラを制御機器と称すると、各実施形態の制御機器は、その動作を、制御機器の内部に各機能を実現するプログラムを組み込んだLSI等のハードウェア部品からなる回路部品を実装して実現してもよい。また、各実施形態の制御機器は、各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のCPUで実行することにより、ソフトウェア的に実現してもよい。そして、各実施形態のプログラムは、コンピュータを、上述した各実施形態における各機能部として機能させるためのプログラムである。
【0278】
以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。