説明

マルチキャストシステム、マルチキャストツリー構成方法、及びプログラム

【課題】配信遅延のばらつきを、すばやく柔軟に調整できるマルチキャストシステム、マルチキャストツリー構成方法、及びプログラムを提供する。
【解決手段】マルチキャストシステムは、配信遅延量を設定する手段と、設定する手段により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成する手段と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチキャストシステム、マルチキャストツリー構成方法、及びプログラムに関する。特に、データの配信遅延時間を制御するマルチキャストシステム、マルチキャストツリー構成方法、及びプログラムに関する。
【背景技術】
【0002】
WEBサーバーの更新情報や、センサなどが生成するデータを多数の機器に配信する際に、データの配信元をルートとするマルチキャストツリーを用いて配信するマルチキャストシステムがある。
【0003】
このマルチキャストツリーは、そのデータを利用するノードで構成される論理ネットワークで、配信元毎に作成する場合や、1つのマルチキャストツリーを共有する場合がある。データはマルチキャストツリーの構成に従ってノード間を転送される。
【0004】
マルチキャストツリー構成方法に関して、多量の利用者に対しリアルタイムにデータを配信するためのマルチキャストツリーを構築する手段がいくつか提案されている。
【0005】
例えば、特許文献1では、ノードのCPU使用率、メモリ利用率、CPUスペック、物理的近傍度、生存時間といった情報を周囲のノードと交換し、周囲から受信する複数の情報を比較評価することによって、マルチキャストツリーを構築する手段が開示されている。なお、「物理的近傍度」は、ノードとノードとの間でピア間接続動作の応答時間を測定することにより得ることができる。また、「生存時間」は、1回の接続でその端末のネットワークへの平均接続時間を、平均生存時間とすることができる。
【0006】
また、特許文献2では、ホップ数(段数)またはある時刻における到着パケットのシーケンス番号の推定値で評価し、マルチキャストツリーを構築する手段が開示されている。
【0007】
さらに、特許文献3では、複数のノードにより構成されるネットワークにおいて、与えられた始点ノードから複数の終点ノードまでのマルチキャスト転送経路を求めるためのマルチキャスト転送経路計算方法であって、ネットワークのトポロジ情報と遅延情報とを用いて、始点ノードから終点ノードまでの遅延最小経路を各終点ノード毎に求め、始点ノードと各終点ノードまでの複数の遅延最小経路のうちの1つの遅延最小経路上のノードを、マルチキャスト転送における集約点ノードの候補ノードとして選択し、各候補ノードに対し、候補ノードから終点ノードまでの遅延最小経路を各終点ノード毎に算出し、各終点ノード毎の複数の遅延最小経路の遅延のうちの最大値と最小値との差を求め、誤差が最小となる候補ノードを集約点ノードとして選択し、始点ノードから集約点ノードまでの遅延最小経路と、集約点ノードから各終点ノードまでの各遅延最小経路とをマルチキャスト転送経路として出力する。上記特許文献3によれば、マルチキャスト転送経路の計算速度の向上を実現し、また、ユーザ間遅延分散の削減を可能とすることができると記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−252596号公報
【特許文献2】特開2004−246790号公報
【特許文献3】特開2004−208289号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
以下の分析は、本発明によって与えられたものである。
【0010】
上述した従来技術では、マルチキャストシステムにおける配信遅延のばらつきがないように、すばやく柔軟にマルチキャストツリーを設定することが難しい。
【0011】
一般に、マルチキャストツリーに参加しているノードは、マルチキャストツリー上の位置により、データを受け取るタイミングが異なる。その結果マルチキャストツリーにおける配信遅延のばらつきが大きくなってしまうためである。特許文献3には、配信遅延のばらつきを抑えるようにルートを選択するものが記載されているが、ルートの選択によって配信遅延のばらつきを抑えるのには、全てのノードにおいて多数あるルートから最適なルートを選択するという調整が必要になる。結果として調整に時間がかかるため、配信遅延のばらつきがないようにすばやく柔軟にマルチキャストツリーを設定できない。
【0012】
本発明は、このような事情を考慮してなされたものであり、その第1の目的は、ばらつきを小さくするための遅延の調整を少なくし、マルチキャストツリーに参加するノードの配信遅延のばらつきの小さいマルチキャストツリーを、すばやく柔軟に構築することができるマルチキャストシステムを提供することにある。
【課題を解決するための手段】
【0013】
本発明の第1の視点によれば、配信遅延量を設定する手段と、前記設定する手段により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成する手段と、を有するマルチキャストシステムが提供される。
【0014】
本発明の第2の視点によれば、マルチキャストツリーに参加しようとするノードから参加要求メッセージを受信するステップと、現在のマルチキャストツリーの構成を確認するステップと、所定の配信遅延量に対して遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるように参加要求メッセージを送信したノードの接続先ノードを決定するステップと、参加要求メッセージを送信してきたノードに対し、前記接続先ノードの情報を含む参加応答メッセージを送信するステップと、を含むマルチキャストツリー構成方法が提供される。
【0015】
本発明の第3の視点によれば、コンピュータに上記第2の視点によるマルチキャストツリー構成方法を実行させるプログラムが提供される。
【0016】
本発明の第4の視点によれば、マルチキャストツリーのルートノードであって、マルチキャストツリーが守るべき配信遅延量を設定する遅延量設定機能部と、前記遅延量設定機能部により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成するツリー構成演算機能部と、を有するマルチキャストツリーのルートノードが提供される。
【発明の効果】
【0017】
本発明の各視点によれば、ばらつきを小さくするための遅延の調整を少なくし、マルチキャストツリーに参加するノードの配信遅延のばらつきの小さいマルチキャストツリーを、すばやく柔軟に構築することができる。その理由は、遅延ばらつきを小さくするための遅延量の調整が不要になるノードができるだけ多く存在するようにマルチキャストツリーを構成していくことにより、指定された配信遅延量のノード、すなわち調整量が0となるノードの数を最大にすることができるためである。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施形態によるマルチキャストツリー1の構成例を示す概念図である。
【図2】一実施形態によるマルチキャストツリー1の構成例を示す概念図である。
【図3】一実施形態により(a)、(b)、(c)の順にマルチキャストツリーを構築していく過程を示す図面である。
【図4】一実施形態によるルートノードの構成を示すブロック図である。
【図5】一実施形態によるノードの構成を示すブロック図である。
【図6】一実施形態において、参加を要求するノードがあった場合にルートノードがマルチキャストツリーのトポロジを変更する処理を示すフローチャートである。
【図7】一実施形態において、離脱するノードがあった場合にルートノードがマルチキャストツリーのトポロジを変更する処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
本発明の実施形態の概要について説明する。なお、この概要に付記する図面参照符号は専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。
【0020】
本発明の一実施形態によるマルチキャストシステム(図1参照)は、配信遅延量を設定する手段(115)と、設定する手段により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成する手段(114)と、を有する。設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成するので、マルチキャストツリーに対して参加ノード、離脱ノードが発生した場合においても、ばらつきを小さくするための遅延の調整を少なくすることができる。
【0021】
一実施形態に示すように、マルチキャストツリーを構成する手段(114)は、設定された配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、設定された配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくことにより、遅延量の調整が不要になるノードの数が最大になるようにしてもよい。
【0022】
また、一実施形態に示すように、マルチキャストツリーを構成する手段(114)は、設定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、上記子ノードのうち、最も配信遅延量の大きい子ノードからさらに設定された配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくことによって、遅延量の調整が不要になるノードの数が最大になるようにしてもよい。
【0023】
さらに、マルチキャストツリーを構成する手段(114)は、マルチキャストツリーに参加しているノードが離脱する場合に、最後に接続したノードを、ノードが離脱したことによって孤立したノードの親の位置に再接続させるようにマルチキャストツリーを構成することが好ましい。最後に接続したノードは子ノードを持たないので、再接続により他のノードに影響を与えることがないからである。
【0024】
以上で概要の説明を終了し、以下、より具体的な実施の形態について、図面を参照して詳しく説明する。
【0025】
[第1の実施形態]
図1は、第1の実施形態によるマルチキャストツリー1の構成例を示す概念図である。
図1において、マルチキャストツリー1は、ルートノード100と複数のノード200とを有し、論理ネットワークを構成している。ルートノード100を四角形の記号を表し、ルードノード以外のノード200を円形の記号で表している。
【0026】
図2には、図1のマルチキャストツリー1について、ルートノード100及び各ノード200のIDを示す。図2に示すとおり、ルートノード100(ノードn2)を頂点とし、ルートノード100の配下にノード200であるノードn8、ノードn35、ノードn47、ノードn31があり、ノードn8の配下にノードn3、ノードn29、ノードn44があるというような、ツリー構造の状態で接続されている。
【0027】
各ノード200は、ルートノード100、及び/又は、1つ以上のノード200と接続する。各ノード200は、上流に接続しているルートノード100、またはノード200からデータを受信した場合に、マルチキャストツリー1での下流にあるノード200にデータを転送する。
【0028】
図3は、第1の実施形態において、ノードを追加してマルチキャストツリー1を構築する過程について説明する図面である。図3では、図3(a)、図3(b)、図3(c)の順番にノード200を追加することにより、マルチキャストツリー1を構築している。図3では、配信遅延のばらつきを小さくするための調整をできるだけ少なくするようにノードを追加している。
【0029】
なお、図3において、各ノードに示す符号は左から順に、「ノードID」、「配信遅延量」、「追加ノード推定遅延量」、「遅延調整量」である。ここで、「配信遅延量」とは、データ配信の遅延量である。また、「追加ノード推定遅延量」とは、そのノードに新たにノードが接続してきた場合の、その新規に接続してきたノードの推定遅延量であって、新規にマルチキャストツリーに接続するノードが接続先を選択する場合の目安とする数値である。「遅延調整量」とは、指定された遅延量とするため指定された遅延量と配信遅延量の差分で表現できる遅延の調整量である。
【0030】
図3の例では、目標遅延量は4で、例えばn9は配信遅延量が4で調整不要であるため遅延調整量は0、n8の配信遅延量は1であるため目標遅延量4との差分である3が遅延調整量となる。この調整をすることにより、マルチキャストツリー1に接続しているノード200は、遅延のばらつきが小さくデータの処理タイミングを合わせることができる。
【0031】
あるノードiの配信遅延量をD_i、1世代下のj番目のノードへデータを配信するための処理遅延量をDP_ij、前記ノードiとその1世代下のj番目のノード間のネットワーク遅延をDN_ijとすると、ノードiの1世代下のj番目のノードの配信遅延量 D_ijは、式1で表すことができる。
D_ij=D_i+DP_ij+DN_ij (式1)
【0032】
ここで、P_i0を、ノードiがノードiの親ノードからパケットを受信してから配下1番目の1世代下のノードへデータを送信するまでのノード内転送処理遅延、P_ijをノードiにおける配下j番目の1世代下のノードへデータを送信してから配下j+1番目の1世代下のノードへデータを送信するまでのノード内転送処理遅延とすると、1世代下のj番目のノードへデータを配信するための処理遅延量DP_ijは、
DP_ij=DP_i(j−1)+P_i(j−1)
DP_i1=P_i0
と書ける。
【0033】
このとき、ノードiにおける配下ノード間、および配下ノードへのデータ送信処理に差分がないとすると式1は簡略化することができる。さらにノードiがノードiの親ノードからパケットを受信してから配下1番目の1世代下のノードへデータを送信するまでのノード内転送処理遅延は、他の配下のノードへのノード内転送処理遅延に比べて十分小さいことも踏まえる。具体的には、
P_i0=0、
かつ
P_i1=P_i2=P_i3 … 、
かつ
DN_i1=DN_i2=DN_i3=DN_i4 …
と仮定出来る時、
式1は、式2のように簡略化できる。
D_ij=D_i+DP_i×(j−1)+DN_i (式2)
【0034】
式2において、DP_iは、ノードiにおける1回のデータ転送に掛かる処理遅延である。また、DN_iはノードiにおける1世代下のノードへのネットワーク遅延である。この値は、例えば、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)、代表的な配下のノードまたは1世代上のノードの値、から静的または動的に算出する。
【0035】
さらに、マルチキャストツリーに参加するどのノードにおいても、
DP_1=DP_2= … =DP、
かつ
DN_1=DN_2= … =DN
と仮定できる場合、式2をさらに簡略化することができる。すなわち、式3にように表すことができる。
D_ij=D_i+DP×(j−1)+DN (式3)
【0036】
式3において、DPは、1回のデータ転送に掛かる処理遅延である。また、DNは1世代下のノードへのネットワーク遅延である。この値は、例えば、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)、任意のノードの値、から静的または動的に算出する。
【0037】
図3の例ではルートノードn2の配信遅延量を0として、式3を適用し、かつDP=DN=1とした場合を示している。例えば、ルートノードn2は0、配下1番目のノードn8は1、続いてデータを受信するノードn3は2、となる。
【0038】
また、具体的には、「追加ノード推定遅延量」とは、そのノードに新たにノードが接続してきた場合の、その新規に接続してきたノードの推定遅延量と定義する。新規に接続するノードや、接続先を変更するノードにとって、新たに接続するノードの配信遅延量が小さいノードに接続した方が、より配信遅延が小さいことになる。新たに接続するノードの推定遅延量を式で表現する場合、新たに接続するノードがノードiのn番目の子供になるとして、あるノードiの配信遅延量をD_i、ノードiの新たに接続するノードの推定遅延量をD_in、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の推定値をDP_in、新規ノードが接続した場合のネットワーク遅延の推定値をDN_inとすると、式4で表すことができる。
D_in=D_i+DP_in+DN_in (式4)
【0039】
ここで、式1から式2の導出と同様に、ノードiにおける配下ノード間、および配下ノードへのデータ送信処理に差分がないとすると、式4は簡略化することができる。さらにノードiがノードiの親ノードからパケットを受信してから配下1番目の1世代下のノードへデータを送信するまでのノード内転送処理遅延は、他の配下のノードへのノード内転送処理遅延に比べて十分小さいことも踏まえる。具体的には、
P_i0=0、
かつ
P_i1=P_i2=P_i3 … 、
かつ
DN_i1=DN_i2=DN_i3=DN_i4 …
と仮定出来る時、式4は、式5のように簡略化できる。
D_in=D_i+DP_i×(n−1)+DN_i (式5)
【0040】
さらに、式2から式3の導出と同様に、マルチキャストツリーに参加するどのノードにおいても、
DP_1=DP_2= … =DP、
かつ
DN_1=DN_2= … =DN
と仮定できる場合、式5において、現在の子ノードの数をcとしてさらに簡略化すると、式6が得られる。
D_in=D_i+DP×c+DN (式6)
【0041】
図3の例では、ルートノードn2の配信遅延量を0として、式3および式6を適用し、かつDP=DN=1とした場合の、配信遅延量を4以内かつ、配信遅延量のばらつきを小さくするための調整を不要とするノードができるだけ多くなるようにマルチキャストツリー1を構成していく例を示している。構成方法としては、マルチキャストツリー1の深さを優先する構成方法、子ノード数を優先する構成方法、とその2つの組み合わせがあるが、図3(a)〜(c)では深さを優先する構成方法を示している。
【0042】
深さを優先する構成方法とは、具体的には、指定された配信遅延量になるまで、ツリーの形状を深くしていき、深い位置から順に、指定された配信遅延量を超えない最大の配信遅延量となる位置から順にノードを接続させていく。図3では、まず、n2、n8、n3、n18、n9まで深くしていく。この状態が図3(a)である。図3(a)において、n9で配信遅延量が指定された配信遅延量4になったため、次のノードn23は、できるだけ深い位置で新たに接続するノードの推定遅延量が4の位置、すなわちn3の配下にn23が接続する(図3(b)参照)。次のノードn29は、新たに接続するノードの推定遅延量が4のノードがないため、新たに接続するノードの推定遅延量が3のノードの配下に接続する。すなわちn29はn8の配下に接続する。すると、n8とn29の新たに接続するノードの推定遅延量が4になる。次のノードn15は、深さを優先しているため、n29の配下に接続する。次のノードn44をn8の配下に接続する。
【0043】
子ノード数を優先する構成方法とは、具体的には、指定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、末子の位置から順に、指定された配信遅延量を超えない最大の配信遅延量となる位置から順にノードを接続させていく。この子ノード数を優先する構成方法を取った場合、図3(c)において、ルートノードn2に新しいノードが接続される順番を示すと、n2→n8→n35→n47→n31→n5→n20→n22→n11→n3→n29→n44→n15→n18→n23→n9の順番になる。すなわち、ルートノードn2の4番目の子ノードn31を設けた後は、ルートノードn2にはそれ以上配信遅延時間の範囲内で子ノードを増やないので、子ノードn8、n35、n47、n31のいずれかに子ノードを設けることになる。この子ノードn8、n35、n47、n31のうち、子ノードを最も多く設けられるのはn8であるが、本実施形態では、末子(最も配信遅延量の大きい子ノード)であるn31から、n31→n47→n35→n8の順に子ノードの接続を検討し、指定された配信遅延量を超えない最大の配信遅延量となる位置から順にノードを接続させていく。
【0044】
あるノードが離脱する場合は、離脱によって孤立するノードが生じる場合には、最後に接続したノードを、ノードが離脱したことによって孤立したノードの親の位置に再接続させる。最後に接続したノードは子ノードを持たないため、接続位置を移動させても問題は発生せず、マルチキャストツリー1の構成も大幅に変化しない。このように再構成することで、ノードが離脱した場合でもマルチキャストツリーの特性を維持できる。
【0045】
この手法においては、指定された配信遅延量を満たすマルチキャストツリー1のノード数には制限がある。式3および式6を適用し、かつDP=DN=1とした場合、ある配信遅延量i(i>0)を満たすことのできるノード数の最大数をNiとすると、
Ni=2のi乗
となる。
【0046】
このとき、調整不要になる調整量0のノード数Miは、
Mi=2の(i−1)乗
である。
【0047】
なおNiおよびMiは上記モデルにおける最大数であるため、実際の配送遅延量や1ノードあたりに接続可能なノード数に制限がある場合にはこの限りではない。
【0048】
このような手法で、遅延ばらつきを小さくするための遅延量の調整が不要になるノードができるだけ多く存在するようにマルチキャストツリー1を構成していくことにより、指定された配信遅延量のノード、すなわち調整量が0となるノードの数が最大になるため、遅延ばらつきを小さくするための調整を少なくマルチキャストツリー1を構成することができる。
【0049】
図4は、第1の実施形態によるルートノード100の構成を示すブロック図である。図4において、ルートノード100は、主制御部110とネットワークインターフェイス120と、ノード情報データベース121と、を有する。主制御部110は、CPU、RAM、及びOSなどで構成されたコンピュータの主要部であり、主制御部110の中に、コンピュータをマルチキャストシステムのルートノードとして機能させるプログラムを動作させることにより、主制御部110を、送受信部111と、参加受付機能部112と、離脱受付機能部113と、ツリー構成演算機能部114と、遅延量設定機能部115、として機能させることができる。また、ノード情報データベースは、コンピュータの記憶部に記憶する。なお、上記プログラムは、フラッシュメモリなどの不揮発性半導体記憶装置、ハードディスクなどの磁気記録媒体、DVDやブルーレイディスクなどの光記録媒体をはじめとする記録媒体に記録することができる。
【0050】
ノード情報データベース121は、マルチキャストツリー1におけるノード情報を保存する。ノード情報とは、ノード200を一意に識別するノードID、IPアドレス、ポート番号など他のノード200とメッセージを送受信するために必要な情報であり、マルチキャストツリー1のツリー構造における全てのノード200の情報である。また、ノード情報データベース221には各ノードの配信遅延量と、新たに接続するノードの推定遅延量(追加ノード推定遅延量)と、遅延調整量、マルチキャストツリー1に参加した日時も保存される。
【0051】
送受信部111は、ネットワークインターフェイス120を介して、ノード200からのメッセージを受信して、メッセージ種別を見た上で、参加受付機能部112または離脱受付機能部113に送る。
【0052】
また、送受信部111は、参加受付機能部112または離脱受付機能部113からメッセージを受け取り、メッセージに記載されている宛先であるノード200にネットワークインターフェイス120を介してメッセージを送信する。
【0053】
参加受付機能部112は、新規にマルチキャストツリー1に参加するノードからの参加要求メッセージを処理する。具体的には、ノード200から参加要求メッセージを受信すると、メッセージをツリー構成演算機能部114に送り、演算結果を参加応答メッセージに含めて返信する。ここで、参加要求メッセージには、新規に参加するノード200のノード情報が含まれる。また、参加応答メッセージには新規に参加するノード200の接続先となるノード200のノード情報が含まれる。
【0054】
離脱受付機能部113は、マルチキャストツリー1に既に参加しているノードからの離脱要求メッセージを処理する。具体的には、ノード200から離脱要求メッセージを受信すると、離脱応答メッセージを返信する。さらに、メッセージをツリー構成演算機能部114に送り、ノード200の離脱により孤立したノードが存在する場合は、最後に接続したノードを、ノードが離脱したことによって孤立したノードの親の位置に再接続させるため、移動要求メッセージを該当するノード200に送信する。その後そのノード200から移動応答メッセージを受信すると、そのメッセージをツリー構成演算機能部114に送る。ここで、離脱要求メッセージには、離脱するノード200のノード情報が含まれる。また、離脱応答メッセージにはメッセージ受理を示す情報が含まれる。移動要求メッセージには、移動を要求するノード200のノード情報と、移動先となるノード200のノード情報が含まれる。さらに、移動応答メッセージには移動完了を示す情報が含まれる。
【0055】
ツリー構成演算機能部114は、マルチキャストツリー1の構成を管理し、構成を変更しなければならない場合に、マルチキャストツリー1の構成を演算する。具体的には、参加受付機能部112から参加要求メッセージを受信した場合、ノード情報データベース121からノード情報を読みマルチキャストツリーの構成を確認する。その後、前記深さを優先する構成方法または子ノード数を優先する構成方法またはその両方の組み合わせ方法で新規に参加するノード200の接続先を決定し、新規に参加するノード200の接続先となるノード200のノード情報を参加受付機能部112に応答する。さらに、新規に参加するノード200のノード情報について、接続先情報も含めてノード情報データベース121を更新する。ここで、新規に参加するノード200の接続先を決定する際、遅延量設定機能部115からの指定された遅延量を演算に用いる。
【0056】
さらに、ツリー構成演算機能部114は、離脱受付機能部113から離脱要求メッセージを受信した場合、ノード情報データベース121からノード情報を読みマルチキャストツリーの構成を確認する。このとき、マルチキャストツリー1の構成として、孤立するノードが存在しなかった場合、離脱したノード200のノード情報について、ノード情報データベース121を更新し、処理の完了を離脱受付機能部113に応答する。マルチキャストツリー1の構成として、孤立するノードが存在した場合、最後にマルチキャストツリー1に参加したノード200をノード情報データベース121から検索し、その移動を要求するため、移動を要求するノード200のノード情報と、移動先となるノード200のノード情報を離脱受付機能部113に応答する。その後、離脱受付機能部113から移動応答メッセージを受信すると、最新のマルチキャストツリーの構成をノード情報データベース121に反映させるため、ノード情報データベース121を更新する。
【0057】
遅延量設定機能部115は、マルチキャストツリー1が守るべき配信遅延量を設定する。具体的にはシステム利用者が配信遅延量を決定し、その数値の入力を受けるものである。
【0058】
図5は、第1の実施形態によるノード200の構成を示すブロック図である。図5において、ノード200は、主制御部210とネットワークインターフェイス220と、ノード情報データベース221と、を有する。主制御部210は、CPU、RAM、及びOSなどで構成されたコンピュータの主要部である。主制御部210の中に、コンピュータをマルチキャストシステムのノードとして機能させるプログラムを動作させることにより、主制御部210を、送受信部211と、参加要求機能部212と、離脱要求機能部213と、接続機能部214と、して機能させることができる。
【0059】
ノード情報データベース221は、ルートノード100におけるノード情報データベースと同等のもので、マルチキャストツリー1のツリー構造において自ノードより上及び下にあるノードのノード情報である。ノード情報データベース221は、コンピュータの記憶部に記憶される。
【0060】
送受信部211は、ルートノード100における送受信部111と同等であるため説明を省略する。
【0061】
参加要求機能部212は、新規にマルチキャストツリー1に参加する場合に、ルートノード100に参加を要求する機能を持つ。具体的には、ルートノード100に参加要求メッセージを送信し、ルートノード100から参加応答メッセージを受信すると、参加応答メッセージに記載の接続先ノードのノード情報を接続機能部214に渡す。
【0062】
離脱要求機能部213は、マルチキャストツリー1から離脱する場合に、ルートノード100に離脱を要求する機能を持つ。具体的には、ルートノード100に離脱要求メッセージを送信し、ルートノード100から離脱応答メッセージを受信すると、接続関係にあったひとつまたは複数のノードへ切断要求メッセージを送信する。続いて、切断要求メッセージを送ったノードから切断応答メッセージを受信すると、ノード情報データベース221から接続関係にあったノードのノード情報を削除する。
【0063】
接続機能部214は、他のノードと接続関係を確立する機能を持つ。具体的には、参加要求機能部212から接続先ノードのノード情報を受けた場合、またはルートノード100から移動要求メッセージを受信し、接続先ノードのノード情報を受けた場合に、接続先となるノードへ接続要求メッセージを送信する。続いて、接続先となるノードから接続応答メッセージを受信すると、ノード情報データベース221を更新する。ルートノード100から移動要求メッセージを受信していた場合は、移動応答メッセージをルートノード100に送信する。
【0064】
さらに、接続機能部214は、他のノードから接続要求メッセージを受信した場合、接続応答メッセージを送信し、ノード情報データベース221を更新する。さらに、接続機能部214は、他のノードから切断要求メッセージを受信した場合、切断応答メッセージを送信し、ノード情報データベース221を更新する。
【0065】
次に、本実施形態の動作について、特に特徴的な部分について説明する。図6は、本実施形態におけるルートノード100において、新規にマルチキャストツリー1に参加するノード200からの参加要求を受け付ける場合の動作を示すフローチャートである。動作を開始すると、まず送受信部111が他のノード200、もしくはルートノード100内の主制御部110からの通信を待つ状態(以後、アイドル状態という)となる(ステップS300)。
【0066】
ルートノード100は、アイドル状態中に(ステップS300)、ノード200から参加要求メッセージを受信すると(ステップS301)、ノード情報データベース121を参照し、現在のマルチキャストツリー1の構成を確認する(ステップS302)。続いて、すでに説明した深さを優先する構成方法または子ノード数を優先する構成方法またはその両方の組み合わせ方法のいずれかの方法で、マルチキャストツリー1の構成を決定する(ステップS303)。この決定したマルチキャストツリー1の構成となるよう、参加要求メッセージを送信してきたノード200に対し、接続先となるノード200のノード情報を含む参加応答メッセージを送信し(ステップS304)、ノード情報データベース121を更新し(ステップS305)、アイドル状態に戻る。
【0067】
図7は、本実施形態におけるルートノード100において、マルチキャストツリー1に参加しているノード200からの離脱要求を受け付ける場合の動作を示すフローチャートである。
【0068】
ルートノード100は、アイドル状態中に(ステップS300)、ノード200から離脱要求メッセージを受信すると(ステップS311)、離脱応答メッセージを送信する(ステップS312)。続いて、ノード情報データベース121を参照し、現在のマルチキャストツリー1の構成を確認する(ステップS313)。このとき、この離脱するノードが発生した場合に、マルチキャストツリー1の構成として、孤立するノードが存在するかどうかを確認する(ステップS314)。ステップS314において、孤立するノードが存在しなかった場合(ステップS314のNo)、ノード情報データベース121を更新し(ステップS318)、アイドル状態に戻る。一方、ステップS314において、孤立するノードが存在した場合(ステップS314のYes)、最後にマルチキャストツリー1に参加したノード200をノード情報データベース121から検索し(ステップS315)、そのノード200に移動を要求するため、その移動を要求するノード200へ移動要求メッセージを送信する(ステップS316)。その後、移動応答メッセージを受信すると(ステップS317)、ノード情報データベース121を更新し(ステップS318)、アイドル状態に戻る。
【0069】
なお、図6及び図7で説明したフローチャートに係る各ステップの動作内容は、ルートノード100が予め備えるコンピュータ(主制御部)で動作するプログラムとして実行させるように構成することができる。
【0070】
以上説明したように、遅延ばらつきを小さくするための遅延量の調整が不要になるノードができるだけ多く存在するようにマルチキャストツリーを構成していくことにより、指定された配信遅延量のノード、すなわち調整量が0となるノードの数が最大になるため、遅延ばらつきを小さくするための調整を少なくマルチキャストツリー1を構成することができる。
【0071】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【0072】
(付記1)
配信遅延量を設定する遅延量設定機能部と、
前記遅延量設定機能部により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーの構成を演算するツリー構成演算機能部と、
を備え、
前記ツリー構成演算機能部の演算結果に基づいてマルチキャストツリーを構築することを特徴とするマルチキャストシステム。
【0073】
(付記2)
前記ツリー構成演算機能部は、
前記設定された配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記設定された配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくことを特徴とする付記1記載のマルチキャストシステム。
【0074】
(付記3)
前記ツリー構成演算機能部は、
前記設定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記設定された配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくことを特徴とする付記1記載のマルチキャストシステム。
【0075】
(付記4)
前記ツリー構成演算機能部は、
前記設定された配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記設定された配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくアルゴリズムと、
前記設定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記設定された配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくアルゴリズムと、
を組み合わせて前記遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーの構成を演算することを特徴とする付記1記載のマルチキャストシステム。
【0076】
(付記5)
前記ツリー構成演算機能部は、
マルチキャストツリーに参加しているノードが離脱する場合に、最後に接続したノードを、ノードが離脱したことによって孤立したノードの親の位置に再接続させるようにマルチキャストツリーの構成を演算することを特徴とする付記1乃至4いずれかに記載のマルチキャストシステム。
【0077】
(付記6)
マルチキャストツリーにおけるノード情報を保存するノード情報記憶部と、
をさらに含むことを特徴とする付記1乃至5いずれかに記載のマルチキャストシステム。
【0078】
(付記7)
前記ノード情報記憶部は、前記マルチキャストツリーにおいて、各ノードが参加した順番に関する情報を記憶していることを特徴とする付記6記載のマルチキャストシステム。
【0079】
(付記8)
前記ノード情報記憶部は、前記マルチキャストツリーに各ノードが参加した日時に関する情報を記憶していることを特徴とする付記6又は7記載のマルチキャストシステム。
【0080】
(付記9)
前記ノード情報記憶部は、各ノード毎にそのノードの直下に新たにノードが接続された場合の推定遅延量である追加ノード推定遅延量を予め記憶し、前記ツリー構成演算機能部は、前記追加ノード推定遅延量を用いて新たに接続するノードの接続先を決定することを特徴とする付記6乃至8いずれかに記載のマルチキャストシステム。
【0081】
(付記10)
前記遅延量設定機能部と、前記ツリー構成演算機能部と、がマルチキャストツリーのルートノードに設けられていることを特徴とする付記1乃至6いずれかに記載のマルチキャストシステム。
【0082】
(付記11)
前記ルートノードが、新たにマルチキャストツリーに参加をするノードからの接続要求を受け付ける参加要求機能部をさらに備えていることを特徴とする付記10記載のマルチキャストシステム。
【0083】
(付記12)
前記ルートノードが、マルチキャストツリーからの離脱要求を受け付ける離脱受付機能部をさらに備えていることを特徴とする付記10又は11記載のマルチキャストシステム。
【0084】
(付記13)
マルチキャストツリーに新たに参加を希望するノードが在った場合に、所定の配信遅延量に対して遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるように前記参加を希望するノードの接続先となるノードについて決定するステップと、
前記参加を希望するノードに前記接続先となるノードを通知するステップと、
を備えることを特徴とするマルチキャストツリーの構成方法。
【0085】
(付記14)
前記接続先となるノードについて決定するステップは、前記所定の配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記所定の配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくことにより前記接続先となるノードについて決定することを特徴とする付記13記載のマルチキャストツリーの構成方法。
【0086】
(付記15)
前記接続先となるノードについて決定するステップは、
前記所定の配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記所定の配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくことにより前記接続先となるノードについて決定することを特徴とする付記13記載のマルチキャストツリーの構成方法。
【0087】
(付記16)
前記接続先となるノードについて決定するステップは、
前記所定の配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記所定の配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくアルゴリズムと、
前記所定の配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記所定の配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくアルゴリズムと、
を組み合わせて前記接続先となるノードについて決定することを特徴とする付記13記載のマルチキャストツリーの構成方法。
【0088】
(付記17)
マルチキャストツリーに参加しているノードが離脱し、孤立するノードが生じる場合に、最後に接続したノードを、前記孤立するノードの親の位置に再接続させるステップをさらに含むことを特徴とする付記13乃至16いずれかに記載のマルチキャストツリーの構成方法。
【0089】
(付記18)
マルチキャストシステムに含まれるコンピュータにマルチキャストツリーを構築させるコンピュータプログラムであって、
配信遅延量を設定する遅延量設定処理と、
前記遅延量設定機能部により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーの構成を演算するツリー構成演算処理と、
を含み、
前記ツリー構成演算処理の演算結果に基づいてマルチキャストツリーを構築させることを特徴とするプログラム。
【0090】
(付記19)
前記ツリー構成演算処理は、
前記設定された配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記設定された配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくことを特徴とする付記18記載のプログラム。
【0091】
(付記20)
前記ツリー構成演算処理は、
前記設定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記設定された配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくことを特徴とする付記18記載のプログラム。
【0092】
(付記21)
前記ツリー構成演算処理は、
前記設定された配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記設定された配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていく処理と、
前記設定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記設定された配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていく処理と、
を組み合わせて前記遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーの構成を演算することを特徴とする付記18記載のプログラム。
【0093】
(付記22)
前記ツリー構成演算処理は、
マルチキャストツリーに参加しているノードが離脱することによって孤立するノードが発生する場合に、最後に接続したノードを、前記孤立するノードの親の位置に再接続させるようにマルチキャストツリーの構成を演算することを特徴とする付記18乃至21いずれかに記載のプログラム。
【0094】
(付記23)
コンピュータにマルチキャストツリーを構築させるプログラムであって、
マルチキャストツリーに新たに参加を希望するノードが在った場合に、所定の配信遅延量に対して遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるように前記参加を希望するノードの接続先となるノードについて決定するステップと、
前記参加を希望するノードに前記接続先となるノードを通知するステップと、
を備えることを特徴とするプログラム。
【0095】
(付記24)
前記接続先となるノードについて決定するステップは、前記所定の配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記所定の配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくことにより前記接続先となるノードについて決定することを特徴とする付記23記載のプログラム。
【0096】
(付記25)
前記接続先となるノードについて決定するステップは、
前記所定の配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記所定の配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくことにより前記接続先となるノードについて決定することを特徴とする付記23記載のプログラム。
【0097】
(付記26)
マルチキャストツリーに参加しているノードが離脱し、孤立するノードが生じる場合に、最後に接続したノードを、前記孤立するノードの親の位置に再接続させるステップをさらに含むことを特徴とする付記23乃至25いずれかに記載のプログラム。
【0098】
(付記27)
付記18乃至26いずれかに記載のプログラムを記録した記録媒体。
【0099】
(付記28)
前記第3の視点に記載のプログラムを記録した記録媒体。
【0100】
本発明の全開示(特許請求の範囲及び図面を含む)の枠内において、さらにその基本的技術思想に基づいて、実施例ないし実施例の変更・調整が可能である。また、本発明の特許請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、特許請求の範囲及び図面を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0101】
1:マルチキャストツリー
100:ルートノード
200:ノード
110、210:主制御部
120、220:ネットワークインターフェイス
121、221:ノード情報データベース
111、211:送受信部
112:参加受付機能部
113:離脱受付機能部
114:ツリー構成演算機能部
115:遅延量設定機能部
212:参加要求機能部
213:離脱要求機能部
214:接続機能部

【特許請求の範囲】
【請求項1】
配信遅延量を設定する手段と、
前記設定する手段により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成する手段と、
を有することを特徴とするマルチキャストシステム。
【請求項2】
前記マルチキャストツリーを構成する手段は、
前記設定された配信遅延量になるまでツリーの形状を深くしていき、深い位置から順に、前記設定された配信遅延量を超えない最大の配信遅延量となるように順にノードを接続させていくことを特徴とする請求項1記載のマルチキャストシステム。
【請求項3】
前記マルチキャストツリーを構成する手段は、
前記設定された配信遅延量になるまで、1つのノードの子ノードの数を増やしていき、前記子ノードのうち、最も配信遅延量の大きい子ノードからさらに前記設定された配信遅延量を超えないように当該子ノードに対する子ノードの数を増やしていくことを特徴とする請求項1記載のマルチキャストシステム。
【請求項4】
前記マルチキャストツリーを構成する手段は、
マルチキャストツリーに参加しているノードが離脱する場合に、最後に接続したノードを、ノードが離脱したことによって孤立したノードの親の位置に再接続させるようにマルチキャストツリーを構成することを特徴とする請求項1乃至3いずれか1項記載のマルチキャストシステム。
【請求項5】
マルチキャストツリーに参加しようとするノードから参加要求メッセージを受信するステップと、
現在のマルチキャストツリーの構成を確認するステップと、
所定の配信遅延量に対して遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるように参加要求メッセージを送信したノードの接続先ノードを決定するステップと、
参加要求メッセージを送信してきたノードに対し、前記接続先ノードの情報を含む参加応答メッセージを送信するステップと、
を含むことを特徴とするマルチキャストツリー構成方法。
【請求項6】
マルチキャストツリーに参加しているノードから離脱要求メッセージを受信するステップと、
離脱応答メッセージを送信するステップと、
前記離脱前のマルチキャストツリーの構成を確認するステップと、
前記離脱によりマルチキャストツリーから孤立するノードが発生するかどうかを確認するステップと、
前記孤立するノードが発生する場合に、最後にマルチキャストツリーに参加したノードを検索するステップと、
前記最後にマルチキャストツリーに参加したノードに対して前記離脱が発生したノードへの移動要求メッセージを送信するステップと、
移動応答メッセージを受信するステップと、
をさらに含むことを特徴とする請求項5記載のマルチキャストツリー構成方法。
【請求項7】
コンピュータに請求項5又は6のマルチキャストツリー構成方法を実行させることを特徴とするプログラム。
【請求項8】
マルチキャストツリーのルートノードであって、
マルチキャストツリーが守るべき配信遅延量を設定する遅延量設定機能部と、
前記遅延量設定機能部により設定された配信遅延量に対して、遅延ばらつきを小さくするための遅延量の調整が不要になるノードの数が最大になるようにマルチキャストツリーを構成するツリー構成演算機能部と、
を有することを特徴とするマルチキャストツリーのルートノード。
【請求項9】
マルチキャストツリーに参加を希望するノードから受信した参加要求メッセージを処理して前記ツリー構成演算機能部に伝え、前記ツリー構成演算機能部が決定した前記参加を希望するノードの接続先となるノードの情報を含む応答メッセージを生成する参加受付機能部と、をさらに含むことを特徴とする請求項8記載のマルチキャストツリーのルートノード。
【請求項10】
マルチキャストツリーに参加しているノードから受信した離脱要求メッセージを処理して前記ツリー構成演算機能部に伝える離脱受付機能部をさらに備え、
前記ツリー構成演算機能部は、前記離脱要求メッセージが伝えられたときに前記離脱によって孤立するノードの有無を判定し、孤立するノードが発生する場合には、最後に接続したノードを、前記離脱により孤立したノードの親の位置に再接続させることを決定し、
前記離脱受付機能部は、前記ツリー構成演算機能部の決定に基づき、前記最後に接続したノードに対して前記再接続させる位置への移動を要求するメッセージを送信することを特徴とする請求項8又は9記載のマルチキャストツリーのルートノード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−209844(P2012−209844A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−75206(P2011−75206)
【出願日】平成23年3月30日(2011.3.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成22年度、独立行政法人情報通信研究機構「次世代ネットワーク(NGN)基盤技術の研究開発」)は産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】