説明

マルチキャストシステム及びマルチキャストシステムのノード

【課題】新規ノードの追加やマルチキャストツリーの再構成を行う必要が生じたときに、配信遅延を所定の遅延量以下に収まるように迅速にマルチキャストツリーを構築することができるマルチキャストシステムを提供する。
【解決手段】複数のノードを有するマルチキャストツリーにおいて、新たに追加ノードを接続すると仮定したときの予測遅延量を、追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出しておく手段と、算出した予測遅延量を記憶する手段と、追加ノードを設ける際に予測遅延量を用いて、追加ノードを接続するノードを決定する手段と、を備える。

【発明の詳細な説明】
【技術分野】
【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】
なお、上記特許文献1乃至特許文献3の全開示内容はその引用をもって本書に繰込み記載する。
【0010】
以下の分析は、本発明によって与えられたものである。
【0011】
従来技術における第1の問題は、マルチキャストツリーにおけるデータ配信において、配信遅延を指定した値以下に迅速に収めることができないということである。
【0012】
その理由は、特許文献1および2において、配信遅延の最悪値についてなんら考慮されていないためである。また、特許文献3によれば、配信遅延の最悪値について一応考慮されているが、配信途中において、ルートノードとの中間に位置するノードが脱落したような場合、迅速なマルチキャストツリーの再構築ができないという問題が存在する。
【0013】
従来技術における第2の問題は、マルチキャストシステムにおける配信遅延のばらつきを一定の範囲内に収めることができない場合があるということである。
【0014】
一般に、マルチキャストツリーに参加しているノードは、マルチキャストツリー上の位置により、データを受け取るタイミングが異なる。その結果マルチキャストツリーにおける配信遅延のばらつきが大きくなってしまうためである。特許文献3には、一応配信遅延のばらつきを抑えるようにルートを選択するものが記載されているが、ルートの選択によって配信遅延のばらつきを抑えるのには限界がある。
【0015】
本発明は、このような事情を考慮してなされたものであり、その第1の目的は、ノード内転送処理遅延と転送リンクのネットワーク遅延を考慮したマルチキャストツリーを迅速に構築することによって、参加するノードの配信遅延を指定した値以下に収めることができるマルチキャストシステムを提供することにある。
【0016】
また、その第2の目的は、マルチキャストツリーに参加するノード間における、配信遅延のばらつきの小さいマルチキャストシステムを提供することにある。
【課題を解決するための手段】
【0017】
本発明の第1の視点によれば、複数のノードを有するマルチキャストツリーにおいて、新たに追加ノードを接続すると仮定したときの予測遅延量を、前記追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出しておく手段と、前記算出した予測遅延量を記憶する手段と、前記追加ノードを設ける際に前記予測遅延量を用いて、前記追加ノードを接続するノードを決定する手段と、を備えるマルチキャストシステムが提供される。
【0018】
本発明の第2の視点によれば、ルートノードから複数のノードがツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムであって、前記ルートノードから各ノードまでの遅延量を算出する手段と、基準とする遅延量と前記算出した各ノードの遅延量との差分から、データ到着時に意図的に挿入する遅延量を算出する手段と、前記各ノードへのデータ到着時に前記算出した意図的な遅延量を挿入する手段と、を備えるマルチキャストシステムが提供される。
【0019】
本発明の第3の視点によれば、複数のノードがツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムに用いられるノードであって、自己のノードの配下に新たにノードを追加したと仮定した場合の予測遅延量をあらかじめ算出しておく推定遅延量計算機能部と、前記算出した予測遅延量を記憶するノード情報記憶部と、を備えるマルチキャストシステムのノードが提供される。
【0020】
本発明の第4の視点によれば、複数のノードがルートノードからツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムに用いられるルートノードであって、前記ツリー状に接続された前記各ノードから自己のノードの配下に新たにノードを追加したと仮定してあらかじめ計算された予測遅延量を収集する推定遅延量収集機能部と、前記収集された予測遅延量を用いて前記マルチキャストツリー構造の変更を行うトポロジ決定機能部と、を備えるマルチキャストシステムのルートノードが提供される。
【0021】
本発明の第5の視点によれば、複数のノードがツリー状に接続されたマルチキャストツリーを有するマルチキャストシステムにおいて、新たに追加ノードを接続すると仮定したときの予測遅延量を、前記追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出しておくステップと、前記追加ノードを設ける必要が生じたときに、前記あらかじめ算出しておいた予測遅延量を用いて、前記追加ノードを接続するノードを決定するステップと、前記決定に基づいて、追加ノードをマルチキャストツリーに組み込んでデータ配信を行うステップと、を備えるマルチキャストシステムのマルチキャストツリー更新方法が提供される。
【0022】
本発明の第6の視点によれば、複数のノードがツリー状に接続されたマルチキャストツリーを有するマルチキャストシステムにおいて用いられるコンピュータプログラムであって、前記複数のノードのいずれかに新たに追加ノードを接続すると仮定したときの予測遅延量を、前記追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出し、記憶手段に記憶させる処理と、前記追加ノードを設ける必要が生じたときに、前記記憶手段に記憶された前記予測遅延量を用いて、前記追加ノードを接続するノードを決定する処理と、を前記マルチキャストシステムに含まれる少なくとも一つのコンピュータに実行させるマルチキャストシステムのコンピュータプログラムが提供される。
【発明の効果】
【0023】
本発明の第1、第3乃至第6の視点によれば、マルチキャストシステムにおけるデータ配信において、配信遅延を指定した値以下に迅速に収めることが可能になる。
【0024】
また、本発明の第2の視点によれば、マルチキャストシステムにおける配信遅延のばらつきを一定の範囲内に収めることが可能になる。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態のマルチキャストシステムにおける(a)再構成前のマルチキャストツリーの構成と、(b)再構成後のマルチキャストツリーの構成を示す概念図である。
【図2】マルチキャストシステムにおけるマルチキャストツリーの構成例を示す概念図である。
【図3】本発明の実施形態によるマルチキャストシステムに用いられるルートノードの内部構成を示すブロック図である。
【図4】本発明の実施形態によるマルチキャストシステムに用いられるルートノード以外のノードの内部構成を示すブロック図である。
【図5】第1の実施形態におけるノード情報データベースのデータ構成の一例を示す概念図である。
【図6】第1の実施形態におけるルートノードの処理フローチャートである。
【図7】第1の実施形態におけるルートノード以外のノードの処理フローチャートである。
【図8】第2の実施形態によるマルチキャストシステムに用いられるルートノード以外のノードの内部構成を示すブロック図である。
【発明を実施するための形態】
【0026】
本発明の実施形態の概要について説明する。本発明の一実施形態によるマルチキャストシステムは、図1に一例を示すように複数のノードを有するマルチチャストツリーにおいて、新たに追加ノードを接続すると仮定したときの予測遅延量(図1の各ノードIDの3項目)を、追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出しておく手段(たとえば、図4の212)と、算出した予測遅延量を記憶する手段(図4の221、図3の121)と、を備える。さらに、追加ノードを設ける際に上記予測遅延量を用いて、追加ノードを接続するノードを決定する手段(図3の113)を備える。
【0027】
上記実施形態によれば、マルチキャストツリーに変更を加える前に各ノードの配下に追加ノードを新たに接続した場合の予測遅延量をノード毎にあらかじめ算出しておくので、マルチキャストツリーの変更が実際に必要になった場合に迅速に最適なマルチキャストツリーの変更を実施できる。従って、データ配信の途中で中間のノードの一部が脱落するような状況が発生しても、遅延量を所定の遅延値以下に収めて迅速にマルチキャストツリーの再構築を行うことができる。
【0028】
また、本発明の別の実施形態によるマルチキャストシステムは、図8に一例を示すようにルートノード(図2の100)から複数のノード(図2の200を200Aと読み替え)がツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムであって、ルートノード100から各ノード200Aまでの遅延量を算出する手段(図8の212)と、基準とする遅延量と算出した各ノードの遅延量との差分から、データ到着時に意図的に挿入する遅延量を算出する手段231と、各ノードへのデータ到着時に算出した意図的な遅延量を挿入する手段232と、を備える。
【0029】
上記別の実施形態によるマルチキャストシステムによれば、各ノードの遅延量を精度よく揃えることができる。
【0030】
なお、上記実施形態の概要に付記した図面参照符号は専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。以上で概要についての説明を終え、以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【0031】
[第1の実施形態]
図2は、マルチキャストシステムにおけるマルチキャストツリーの構成例を示す概念図である。図2において、マルチキャストツリー1は、ルートノード100と複数のノード200によって論理ネットワークを構成している。ルートノード100は、少なくとも一つのノード200に接続され、そのノード200は、ツリーの末端となるノード200を除いて少なくとも一つの別のノード200に接続されている。ルートノード100、ノード200から複数のノード200に枝分かれして接続されることによって、ルートノード100を頂点とするネットがツリー状に広がり、ルートノード100から発信する情報がツリー状に多数のノード200に伝えられることになる。
【0032】
ノード200は、ルートノード100、もしくは1つまたは複数のノード200と接続する。各ノード200は、接続しているルートノード100、もしくはノード200からデータを受信した場合に、マルチキャストツリー1での下流にあるノード200にデータを転送する。
【0033】
図1は、実施形態1の概念を示す図面であり、図1(a)は、再構成前のマルチキャストツリーの構成を示す概念図であり、図1(b)再構成後のマルチキャストツリーの構成を示す概念図である。図1のマルチキャストツリー1において、配信遅延を指定した値以下に収めるため、ノードを移動させることによってマルチキャストツリーの構成を変更する構成例を示している。図1(a)がノード移動前、図1(b)がノード移動後である。
【0034】
図1において、ルートノード100、ノード200にそれぞれコロンで区切って付している3つの符号は、左端の一つ目の符号は、各ノードのノードIDを示している。また、中央の二つ目の符号は、ルートノード100(ノードID:n2)から自己のノードまでの配信遅延量である。この遅延量は推定遅延量であってもよいし、実測値が得られていれば実測値であってもよい。さらに、右端の三つ目の符号は、自己のノードに新たなノードを直接接続して追加すると仮定した場合の配信遅延の予測値である。この予測値は、ルートノードから追加ノードまでの予測遅延量を表している。この予測遅延量は、新規にマルチキャストツリーに接続するノードが接続先を選択する場合の目安とする数値である。
【0035】
あるノードiの(推定)遅延量をD_i、1世代下のj番目のノードへデータを配信するための処理遅延量をDP_ij、上記ノードiとその1世代下のj番目のノード間のネットワーク遅延をDN_ijとすると、ノードiの1世代下のj番目のノードの推定遅延量D_ijは、式1で表すことができる。
【0036】
D_ij=D_i+DP_ij+DN_ij (式1)
【0037】
ここで、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
と書ける。
【0038】
このとき、ノードiにおける配下ノード間、および配下ノードへのデータ送信処理に差分がないとすると式1は簡略化することができる。具体的には、P_i0=P_i1=P_i2=P_i3…、かつDN_i1=DN_i2=DN_i3=DN_i4…と仮定出来る時、式1は、式2のように簡略化できる。
【0039】
D_ij=D_i+DP_i×j+DN_i (式2)
【0040】
ここでDP_iは、ノードiにおける1回のデータ転送に掛かる処理遅延である。また、DN_iはノードiにおける1世代下のノードへのネットワーク遅延である。この値は、例えば、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)、代表的な配下のノードまたは1世代上のノードの値、から静的または動的に算出する。なお、「処理遅延」とは、ノード内部の遅延であり、「配信遅延」とは、ノード間を接続するネットワークの遅延である。すなわち、各ノードの実際の処理遅延、各ノード間の実際の配信遅延、各ノードの実際の処理能力を用いて算出する。「ノード処理能力」は、マシンの性能であるため、固定であるが、「処理遅延」はマシン内の処理状況により変化し、「配信遅延」はネットワークの状況により変化する。この変化するパラメータについて、たとえば平均値を用いて静的に算出してもよいし、一定時間の移動平均を用いて動的に算出してもよい。
【0041】
さらに、マルチキャストツリーに参加するどのノードにおいても、DP_1=DP_2=…=DP、かつDN_1=DN_2=…=DNと仮定できる場合、式2をさらに簡略化して式3とすることができる。
【0042】
D_ij=D_i+DP×j+DN (式3)
【0043】
ここで、DPは、1回のデータ転送に掛かる処理遅延である。また、DNは1世代下のノードへのネットワーク遅延である。この値は、例えば、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)、任意のノードの値、から静的または動的に算出する。
【0044】
図1の例ではルートノードn2の推定遅延量を0として、式3を適用し、かつDP=DN=1とした場合を示している。例えば、ルートノードn2の遅延量は0、配下1番目のノードn8の遅延量は2となり、ルートノードn2がノードn8に続いてデータを転送するノードn11の遅延量は3となる。
【0045】
また、具体的には、新たに接続するノードの予測遅延量とは、そのノードに新たにノードが接続してきた場合の、その新規に接続してきたノードの推定遅延量と定義する。新規に接続するノードや、接続先を変更するノードにとって、新たに接続するノードの(推定)遅延量が小さいノードに接続した方が、より配信遅延が小さいことになる。新たに接続するノードの予測遅延量を式で表現する場合、新たに接続するノードがノードiのn番目の子供(配下に直接接続されるノード)になるとして、あるノードiの(推定)遅延量をD_i、ノードiの新たに接続するノードの予測遅延量をD_in、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の予測値をDP_in、新規ノードが接続した場合のネットワーク遅延の予測値をDN_inとすると、式4が成立する。
【0046】
D_in=D_i+DP_in+DN_in (式4)
【0047】
ここで、式1から式2の導出と同様に、ノードiにおける配下ノード間、および配下ノードへのデータ送信処理に差分がないとすると、式4は簡略化することができる。具体的には、P_i0=P_i1=P_i2=P_i3…、かつDN_i1=DN_i2=DN_i3=DN_i4…と仮定出来る時、式4は、式5のように簡略化できる。
【0048】
D_in=D_i+DP_i×n+DN_i (式5)
【0049】
さらに、式2から式3の導出と同様に、マルチキャストツリーに参加するどのノードにおいても、DP_1=DP_2=…=DP、かつDN_1=DN_2=…=DNと仮定できる場合、式5をさらに簡略化して式6とすることができる。
【0050】
D_in=D_i+DP×(c+1)+DN (式6)
【0051】
また、上記式1から式6において、D_iをノードiの推定遅延量としたが、実測した遅延量が分かる場合はD_iに実測した遅延量を用いても良い。
【0052】
図1の例では、ルートノードn2の推定遅延量を0として、式3および式6を適用し、かつDP=DN=1とした場合の、推定遅延量を所定の遅延量8以内に収めるための構成例を示している。具体的には図1(a)ではノードn9の遅延量は9、ノードn15の遅延量は10であり、所定の遅延量8より大きい。従って、ノードの組み換えが要求される。また、図1(a)において、自己のノードの配下に追加ノードを新たに設けたときの予測遅延量が所定の遅延量8より小さいノードが存在する(ノードn2、n8、n11、n22の予測遅延量は、それぞれ、0、6、6、7)。従って、ノードn9、n15を上記予測遅延量が8より小さいノードn2、n8、n11、n22のいずかに接続を変更することにより、全ノードの遅延量を所定の遅延量8以内に収める可能性があると考えられる。図1(b)では、ノードn9をノードn11の配下に、ノードn15をルートノードn2の配下に移動させている。
【0053】
この結果、ルートノードn2の新たに接続する追加ノードの予測遅延量が4から5に、ノードn11の新たに接続する追加ノードの予測遅延量が6から7に、ノードn15の推定遅延量および新たに接続する追加ノードの予測遅延量がそれぞれ10から4および12から6に、ノードn9の推定遅延量および新たに接続するノードの予測遅延量がそれぞれ9から6および11から8に、更新され、全てのノードの(推定)遅延量が指定された所定の遅延量8を超えない構成となる。なお、ノードn23の配下に接続されるノードがなくなったため、ノードn23の追加ノードの予測遅延量も、11から9に更新されている。このように、配信遅延が指定した値以下に納まらないノードを、追加ノードの予測遅延量を基準に配信遅延が指定した値以下に納まるノードへ接続先を変更させ、マルチキャストツリーを再構成することにより、マルチキャストツリーにおいて配信遅延を指定した値以下に収めることができる。
【0054】
次に、上記図1を用いて説明した実施形態1のマルチキャストツリーの変更を行うマルチキャストシステムのノード200及びルートノードの構成について説明する。
【0055】
図4は、図1、図2におけるルートノード100以外のノードの内部構成を示すブロック図である。図4において、ノード200は、主制御部210とネットワークインターフェイス220と、ノード情報データベース221と、を有する。ネットワークインターフェイス220は、ネットを介してルートノード100又は他のノード200と接続されている。
【0056】
主制御部210は、CPU、RAM、及びOSなどで構成されたコンピュータの主要部であり、主制御部210の中に、動作するプログラムとして構成されている送受信部211と、推定遅延量計算機能部212と、を有する。
【0057】
図5は、図2におけるノード情報データベース221の内部データ構成の一例を示す概念図である。データの一例として図2におけるノードn3のノード情報データベース221を例示している。ノード情報データベース221は、マルチキャストツリー1におけるノード情報を保存する。ノード情報とは、ノード200を一意に識別するノードID、IPアドレス、ポート番号など他のノード200とメッセージを送受信するために必要な情報であり、マルチキャストツリー1のツリー構造において自ノードより上及び下にあるノード200の情報である。また、ノード情報データベース221には各ノードの(推定)遅延量および新たに接続する追加ノードの予測遅延量も保存される。
【0058】
推定遅延量計算機能部212は、マルチキャストツリーにおいて、配下に接続しているノード200の(推定)遅延量と自ノードの新たに接続する追加ノードの予測遅延量を計算する。配下に接続しているノード200の(推定)遅延量の計算は、式1または式2を用いる。また、新たに接続する追加ノードの予測遅延量の計算は、式4または式5を用いる。ただし、新たに接続されると仮定している追加ノードは、まだ特定されていないのでで、ネットワーク遅延の推定値DN_inは仮想的な値である。計算結果は、ノード情報データベース221に保存し、配下に接続しているノード200の推定遅延量は、該当する配下のノード200に通知する。
【0059】
推定遅延量計算機能部212における、(推定)遅延量と新たに接続する追加ノードの予測遅延量の計算は、ルートノード100からの(推定)遅延量と新たに接続するノードの予測推定遅延量収集の要求が来た場合、配下のノード200に増減などの変化があった場合、ノード200のオペレータからの指示があった場合などに実施される。
【0060】
図3は、第1の実施形態によるマルチキャストシステムに用いられるルートノード100の内部構成を示すブロック図である。図3において、ルートノード100は、主制御部110とネットワークインターフェイス120と、ノード情報データベース121と、を有する。主制御部110は、CPU、RAM、及びOSなどで構成されたコンピュータの主要部である。ルートノード100は、主制御部110の中に、動作するプログラムとして構成されている送受信部111と、推定遅延量収集機能部112と、トポロジ決定機能部113と、を有する。
【0061】
ノード情報データベース121は、図5を用いてすでに説明したノード200のノード情報データベース221に相当するデータベースである。ただし、ルートノード100のノード情報データベース121の場合は、推定遅延量収集機能部112が各ノードから収集した各ノードのノード情報と(推定)遅延量および各ノードに新たに追加ノードが接続された場合の予測遅延量も保存される。
【0062】
送受信部111は、ネットワークインターフェイス120を介して、ノード200からのメッセージを受信して、メッセージ種別を見た上で、推定遅延量収集機能部112またはトポロジ決定機能部113に送る。
【0063】
また、送受信部111は、推定遅延量収集機能部112またはトポロジ決定機能部113からメッセージを受け取り、メッセージに記載されている宛先であるノード200にネットワークインターフェイス120を介してメッセージを送信する。
【0064】
推定遅延量収集機能部112は、マルチキャストツリー1に参加するノードから、それぞれの(推定)遅延量および新たに接続する追加ノードの予測遅延量を収集し、ノード情報データベース121を更新する。(推定)遅延量および新たに接続するノードの予測遅延量の収集方法としては、例えば、ルートノード100から配下のノード200に対し、推定遅延量および新たに接続する追加ノードの予測遅延量を要求するメッセージを送信し、推定遅延量および新たに接続する追加ノードの予測遅延量を要求するメッセージを受信したノード200は、さらに配下のノード200にメッセージを転送し、マルチキャストツリー1のリーフの位置のノード200から(推定)遅延量および新たに接続するノードの予測遅延量を、逆順で返信していく方法がある。あるいはルートノード100がマルチキャストツリー1に接続しているノード200とそれぞれ直接通信して(推定)遅延量および新たに接続するノードの予測遅延量を収集してもよい。また、実測した遅延量が分かる場合は推定遅延量に代わりに実測した遅延量を用いても良い。
【0065】
トポロジ決定機能部113は、ノード情報データベース121を参照し、マルチキャストツリー1に参加しているノード200の(推定)遅延量および新たに接続するノードの予測遅延量を参照する。次に、指定された遅延量より大きい(推定)遅延量のノード200を抽出する。ここで抽出されたノード群をノード群Aとする。また、指定された遅延量より小さい新たに接続するノードの予測遅延量を有するノード200を抽出する。ここで抽出されたノード群をノード群Bとする。すなわち、ノード群Aのノードは、そのノードの現在の(推定)遅延量が指定された基準となる遅延量より大きいノードであり、ノード群Bのノードは、新たに配下にノードを追加した場合の予測遅延量が指定された基準となる遅延量より小さい遅延量を有するノードである。
【0066】
このとき、ノード群Aの中に、ひとつ以上のノード200が含まれていた場合、ノード群Aをノード群Bの配下に接続させる。
【0067】
ノード群Aのどのノード200をノード群Bのどのノード200の配下に接続するかは、例えば、予測遅延量の大きいノード順に、新たに接続するノードの推定遅延量が小さいノードへ接続させることができる。また、マルチキャストツリー1上の位置がなるべく変わらない位置になるノードの配下に接続させることでもよい。それ以外の方法でもよいが、遅延量の大きなノードをそのノードの現在の遅延量より予測遅延量が小さいノードに接続をつなぎ変えることにより、遅延量の最大値を小さくすることができる。また、タイムスタンプを利用するなどによって、実測した遅延量が分かる場合はノード群Aを抽出する際に推定遅延量に替わりに実測した遅延量を用いても良い。
【0068】
トポロジ決定機能部113は、ノードの移動先を決定したのち、移動させるノード200に対し、移動のメッセージを送信する。
【0069】
ここで、配信遅延時間の指定はマルチキャストツリーのオペレータにより静的または動的に設定される。マルチキャストツリー1に参加するノード200の数により配信遅延時間の指定には下限がある。下限よりもさらに小さい値を指定する場合、ノード群Aのノードの数の方がノード群Bのノードの数よりも大きくなり、配信遅延が指定した値以下にならないノード200が存在してしまう。このとき、前記ノードに対し、アラームを通知する、または強制的にマルチキャストツリー1から離脱させる、などの方法をとる。
【0070】
また、トポロジ決定機能部113は、新規にマルチキャストツリーに参加するノード200に対し、すでにマルチキャストツリーに参加しているノード200の新たに接続する追加ノードの予測遅延量の情報を提供する。新規にマルチキャストツリーに参加するノード200は、入手した新たに接続するノードの予測遅延量の情報から指定されている配信遅延時間を超えない接続先となるノード200を選出し、接続することでマルチキャストツリーに参加する。このとき、指定されている配信遅延時間を超えない接続先が存在しない場合、アラームを上げた上で接続する、または接続を断念する、などの方法を取る。
【0071】
推定遅延量収集機能部112における、(推定)遅延量と新たに接続するノードの予測遅延量の収集、および、トポロジ決定機能部113におけるトポロジ決定とノードの移動は、マルチキャストツリー1に接続するノード200に増減などの変化があった場合、ルートノード100のオペレータからの指示があった場合などに実施される。
【0072】
次に、第1の実施形態の動作について、特に特徴的な部分について説明する。
【0073】
図6は、本実施形態におけるルートノード100において、マルチキャストツリー1における配信遅延を一定値以内に収めるようトポロジを変更する場合の動作を示すフローチャートである。動作を開始すると、まず送受信部111が他のノード200、もしくはルートノード100内の主制御部110からの通信を待つ状態(以後、アイドル状態という)となる(ステップS300)。
【0074】
ルートノード100は、アイドル状態中に(ステップS300)、マルチキャストツリー1に接続するノード200に増減などの変化があった場合または、ルートノード100のオペレータからの指示があった場合などに、マルチキャストツリー1に参加するノード200から(推定)遅延量と新たに接続するノードの予測遅延量を収集し(ステップS301)、ノード情報データベース121を更新する(ステップS302)。
【0075】
続いて、ノード情報データベース121を参照し、指定された遅延量より(推定)遅延量が大きいノード200を抽出する(ステップS303)。さらに、ノード情報データベース121を参照し、指定された遅延量より追加ノードの予測遅延量が小さいノード200を抽出する(ステップS304)。さらに、ステップS303で抽出したノードをステップS304で抽出したノードへ接続させる(ステップS305)。次に、ステップS303で抽出したノードの数とステップS304で抽出したノードの数を比較し(ステップS306)、ステップS304で抽出したノードの数の方が大きい場合は、ステップS300のアイドル状態に戻る。ステップS303で抽出したノードの数の方が大きい場合は(ステップS306の下への遷移)、移動できなかったノード200に対しアラームを送信し(ステップS307)、アイドル状態に戻る。
【0076】
なお、図6で説明したフローチャートに係る各ステップの動作内容は、ルートノード100が予め備えるコンピュータ(主制御部)で動作するプログラムとして実行させるように構成することができる。
【0077】
上述した説明では、すでに存在するマルチキャストツリー1の再構成について説明したが、新たなノードが、新規にマルチキャストツリー1に参加する場合において、すでにマルチキャストツリー1を構成しているどのノード200に接続するかを決定する時に、新たに接続するノードの予測遅延量をマルチキャストツリー1に参加している各ノード200から収集し、追加ノードの予測遅延量を基準として、追加ノードの予測遅延量が小さいノードに接続することによって、マルチキャストツリー1の配信遅延を指定した値以下に収めるようにすることもできる。このとき、マルチキャストツリー1の配信遅延を指定した値以下に収めることができるような接続先がない場合、新規参加を拒否する、またはアラームを通知した上で参加を許可する、ということもできる。
【0078】
図7は、第1の実施形態におけるルートノード以外のノード200の処理フローチャートである。動作を開始すると、まず送受信部211が他のノード200、もしくはルートノード100内の主制御部110からの通信を待つ状態(以後、アイドル状態という)となる(ステップS400)。ルートノードからの指示により、当該ノードの接続が変わる場合(ステップS401でYes)は、ノード情報データベース221のトポロジ情報を更新する(ステップS402)。また、ステップS402ではタイムスタンプ等を利用して遅延値の実測値が得られたら、推定遅延値を実測値に置き換えてもよい。
【0079】
ステップS403では、ルートノード100や当該ノードとルートノードとの間に介在するノード(親ノード)からノード情報データベース221の照会があった場合(ステップS403でYes)は、当該照会の内容に応答して最新のノード情報データベース221の内容を問い合わせ先に回答し(ステップS404)、その後、ステップS400のidle状態に戻る。一方、ノード情報データベース221の照会がなかった場合(ステップS403でNoの場合)は、何もせず、ステップS400のidle状態に戻る。
【0080】
また、上述した説明では、ルートノード100がマルチキャストツリー1に参加するノード200から、(推定)遅延量と新たに接続するノードの予測遅延量を収集し、マルチキャストツリー1のトポロジを決定するとしたが、この機能はルートノード100が持たなくてもよい。すなわちあるノード200でもよいし、第3のコンピュータでもよい。この場合、ルートノード100もノード200と同様のノードとして動作する。
【0081】
[第2の実施形態]
次に、本発明の第2の実施形態を、図面を参照して説明する。
【0082】
本発明の第2の実施形態では、ある指定した推定遅延量を基準に、データ到着時に遅延を挿入することにより、マルチキャストツリーに参加するノード間における、配信遅延のばらつきを小さくすることができる。
【0083】
図1(a)を例として、第2の実施形態の概念から説明する。図1(a)において、ノードn8の(推定)遅延量は2、ノードn22の(推定)遅延量は5である。このとき、ノードn8において(推定)遅延量3の分だけデータ受信時にノード内部で遅延させると推定遅延量5相当となり、ノードn8とノードn22の間の配信遅延の差が小さくなる。
【0084】
さらに、遅延量10を基準とすると、ノードn8は遅延量8の遅延、ノードn22は遅延量5の遅延、ノードn11は遅延量7の遅延というように、自ノードの遅延量と基準遅延量の差分だけ、データ受信時にノード内部で遅延させると、データ受信の配信遅延が、全てのノードでほぼ等しくなる。なお、配下に他のノードが接続されているノードは、配下に転送するデータに関しては、遅延を挿入せずに、データ到着時、速やかに配下のノードに転送する。たとえば、ノードn8はノードn3とノードn44、ノードn11はノードn22にデータ転送を行うが、この他のノードへ転送するデータには、遅延を挿入しない。この様な処理を行うことにより、配信先の末端での配信遅延のばらつきを小さくすることができる。式で表現すると、ノードiの遅延量をD_i、基準とする遅延量をDB、意図的に挿入する遅延量をΔD_iとすると、式7が成立する。
【0085】
ΔD_i=DB−D_i (式7)
【0086】
このとき基準とする遅延量は、マルチキャストツリー1に参加するノード200の中で最大の遅延量と同じか、大きくする必要がある。この基準とする遅延量を決定するには、マルチキャストツリー1に参加するノード200の中で最大の遅延量が分かればよい。マルチキャストツリー1に参加するノード200の中で最大の遅延量は、トポロジを決定する過程で得られる。ただし、全ノードの(実測または推定の)遅延量の情報を得ることが困難な場合、例えばマルチキャストツリーに参加するノード200の数が膨大である場合、マルチキャストツリー1に参加するノード200の中で最大の遅延量を推定する。その方法は例えば、マルチキャストツリーに参加するノード200の数から推定する、マルチキャストツリーの最下層のあるノードの推定遅延量から推定する、などがある。
【0087】
また、データ到着時に挿入する遅延量は少ない方が好ましいため、前述の意図的に挿入する遅延量を求める前に、本発明の第1の実施形態の手段を用いて、予めマルチキャストツリー1に参加するノード200の中で最大の推定遅延量を小さくしておくとよい。具体的には、基準とする推定遅延量を下限に設定し、マルチキャストツリー1のトポロジを変更しておくことで、マルチキャストツリー1に参加するノード200の中で最大の推定遅延量を小さくできる。
【0088】
また、基準とする遅延量の周知は、例えば初回のデータとして送付することで周知させることができる。基準とする遅延量をマルチキャストツリーに参加するノードに周知させておくことにより、最大遅延量または最大遅延量よりも大きな値を基準値として事前に与えておき、それを基準に意図的に挿入する遅延量ΔD_iを算出することができる。
【0089】
図8は、第2の実施形態によるマルチキャストシステムに用いられるルートノード以外のノードの内部構成を示すブロック図である。図8のノード200Aは、第1の実施形態のノード200に置き換えて用いる。図8のノード200Aについて、図4を用いて説明した第1の実施形態のノード200と異なる構成について説明する。第1の実施形態のノード200と構成が同一である部分については、同一の符号を付し、重複する説明は省略する。
【0090】
挿入遅延量算出部231は、ルートノード100から基準とする遅延量の指定を受けて、ノード情報データベースに含まれる自ノードの(推定)遅延量に基づいて、データ受信時に挿入する遅延量を算出する。
【0091】
遅延挿入部232は、ルートノード100からデータの配信を受ける際に、送受信部に受信したデータを挿入遅延量算出部231が算出した挿入遅延量に基づいて、遅延させる。
【0092】
また、ルートノード100は、初回のデータ配信において、基準となる遅延量を各ノード200Aに対して送信することを除いて、第1の実施形態のルートノード100をそのまま用いることができる。
【0093】
上述した説明では、マルチキャストツリー1全体でひとつの基準とする推定遅延量を周知させることにより、配信遅延のばらつきを小さくすることができるとしたが、マルチキャストツリー1に参加するノードを複数のグループに分割し、そのグループそれぞれで基準とする推定遅延量を設定し、グループ内の基準とする推定遅延量から意図的に挿入する遅延量ΔD_iを算出し、データ到着時に遅延を挿入することにより、グループ内のノード間における、配信遅延のばらつきを小さくすることができる。
【0094】
また、上述した説明では、マルチキャストツリー1全体で基準とする推定遅延量を周知させることにより、配信遅延のばらつきを小さくすることができるとしたが、推定遅延量が同じまたは近いノード200をグループ化することで、グループ内の配送遅延のばらつきを小さくすることも出来る。
【0095】
図1(a)を例とすると、ノードn44と、ノードn22は何れも推定遅延量5である。これらのノードをグループとすると、グループ内では推定遅延量が同値であるため、グループ内の配送遅延のばらつきを小さくすることが出来る。
【0096】
以上説明したように、推定遅延量をノード内転送処理遅延と転送リンクのネットワーク遅延の総和から算出し、推定遅延量および新たに接続するノードの推定遅延量を基準に、配信遅延が指定した値以下に納まらないと推定されるノードを、配信遅延が指定した値以下に納まるように、マルチキャストサービス開始より前に移動させ、マルチキャストツリーを再構成することにより、マルチキャストツリーに参加するノードの配信遅延を指定した値以下に収めることができる。
【0097】
また、以上説明したように、推定遅延量をノード内転送処理遅延と転送リンクのネットワーク遅延の総和から算出し、推定遅延量および新たに接続するノードの推定遅延量を基準に、データ到着時に遅延を挿入することにより、マルチキャストツリーに参加するノード間における、配信遅延のばらつきを小さくすることができる。
【0098】
なお、本発明において下記の形態が可能である。
[形態1]
前記第1の視点に記載のマルチキャストシステムのとおり。
[形態2]
前記追加ノードを接続するノードを決定する手段は、前記予測遅延量が所定の遅延値以下であるノードに前記追加ノードを接続し、
前記予測遅延量が所定の遅延量以下となるノードが存在しない場合は、前記追加ノードを含めた前記複数のノードの遅延量がいずれも前記所定の遅延量以下となるように、前記マルチキャストツリーを組み替えることが好ましい。
[形態3]
前記各ノードは、それぞれ、
自己ノードの下流に追加ノードを接続すると仮定した場合の予測遅延量を算出する手段と、
前記算出した予測遅延量を記憶する手段と、を備え、
前記マルチキャストシステムは、前記各ノードが算出した前記各ノードの予測遅延量を収集して一括して記憶する手段を備え、
前記ノードを決定する手段は、前記一括して記憶された各ノードの予測遅延量を用いて前記追加ノードを接続するノードを決定することが好ましい。
[形態4]
前記予想遅延量を算出する手段は、前記接続先となり得るノードの処理能力と、ルートノードから当該ノードまでの遅延量と、当該ノードから前記追加ノードまでのネットワーク遅延を平均的であると仮定した仮想ネットワーク遅延量と、に基づいて予想遅延量を算出することが好ましい。
[形態5]
前記第2の視点に記載のマルチキャストシステムのとおり。
[形態6]
前記第3の視点に記載のマルチキャストシステムのノードのとおり。
[形態7]
前記マルチキャストツリー構造がルートノードから前記複数のノードがツリー状に接続されたマルチキャストシステムであって、
前記推定遅延量計算機能部と前記ノード情報記憶部とを備える前記ノードが、前記ルートノード以外の前記ノードであることが好ましい。
[形態8]
前記第4の視点に記載のマルチキャストシステムのルートノードのとおり。
[形態9]
前記第5の視点に記載のマルチキャストシステムのマルチキャストツリー更新方法のとおり。
[形態10]
前記第6の視点に記載のマルチキャストシステムのコンピュータプログラムのとおり。
[形態11]
マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する手段と、を有するマルチキャストシステム。
[形態12]
マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する手段と、マルチキャストツリーを構成するノードから、推定または実測の遅延量およびそのノードの配下に新たにノードが接続したと仮定した時の推定遅延量を収集する手段と、配信遅延が指定した値以下に納まらないノードを、推定または実測の遅延量から、配信遅延が指定した値以下に納まるノードの配下に移動させ、マルチキャストツリーを再構成する手段と、を有するマルチキャストシステム。
[形態13]
マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する手段と、新規にマルチキャストツリーに参加するノードに対し、マルチキャストツリーを構成するノードの配下に新たにノードが接続したと仮定した時の推定遅延量を通知する手段と、前記推定遅延量から、配信遅延が指定した値以下に納まる接続先となるノードを選出する手段と、を有するマルチキャストシステム。
[形態14]
前記形態11乃至13のいずれかに記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、あるノードの推定遅延量を算出する際に、任意のノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、1世代下のノードへデータを配信するための処理遅延量と、前記ノードとその1世代下のノード間のネットワーク遅延を算出し、前記処理遅延量と前記ネットワーク遅延量の累積からあるノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態15]
前記形態14に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、あるノードの推定遅延量を算出する際に、マルチキャストツリーを構成する全ノードの平均の、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、1世代下のノードへデータを配信するための処理遅延量と、前記ノードとその1世代下のノード間のネットワーク遅延を算出し、前記処理遅延量と前記ネットワーク遅延量の累積からあるノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態16]
前記形態14に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、あるノードの推定遅延量を算出する際に、マルチキャストツリーにおいて隣接するノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、1世代下のノードへデータを配信するための処理遅延量と、前記ノードとその1世代下のノード間のネットワーク遅延を算出し、前記処理遅延量と前記ネットワーク遅延量の累積からあるノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態17]
前記形態14に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、あるノードの推定遅延量を算出する際に、処理遅延と配信遅延が等しいと仮定して、1世代下のノードへデータを配信するための処理遅延量と、前記ノードとその1世代下のノード間のネットワーク遅延を算出し、前記処理遅延量と前記ネットワーク遅延量の累積からあるノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態18]
前記形態14に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、あるノードの推定遅延量を算出する際に、マルチキャストツリーを構成する全ノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)で重み付けした平均値を用いて、1世代下のノードへデータを配信するための処理遅延量と、前記ノードとその1世代下のノード間のネットワーク遅延を算出し、前記処理遅延量と前記ネットワーク遅延量の累積からあるノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態19]
前記形態11乃至13のいずれかに記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する際に、任意のノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の推定値と、新規ノードが接続した場合のネットワーク遅延の推定値を算出し、前記処理遅延の推定値と前記ネットワーク遅延の推定値の累積から新たに接続するノードが接続する前に新たに接続するノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態20]
前記形態19に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する際に、マルチキャストツリーを構成する全ノードの平均の、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、1世代下のノードへデータを配信するための処理遅延量と、前記ノードとその1世代下のノード間のネットワーク遅延を算出し、前記処理遅延量と前記ネットワーク遅延量の累積からあるノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態21]
前記形態19に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する際に、マルチキャストツリーにおいて隣接するノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の推定値と、新規ノードが接続した場合のネットワーク遅延の推定値を算出し、前記処理遅延の推定値と前記ネットワーク遅延の推定値の累積から新たに接続するノードが接続する前に新たに接続するノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態22]
前記形態19に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する際に、マルチキャストツリーにおいて隣接するノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)を用いて、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の推定値と、新規ノードが接続した場合のネットワーク遅延の推定値を算出し、前記処理遅延の推定値と前記ネットワーク遅延の推定値の累積から新たに接続するノードが接続する前に新たに接続するノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態23]
前記形態19に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する際に、処理遅延と配信遅延が等しいと仮定して、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の推定値と、新規ノードが接続した場合のネットワーク遅延の推定値を算出し、前記処理遅延の推定値と前記ネットワーク遅延の推定値の累積から新たに接続するノードが接続する前に新たに接続するノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態24]
前記形態19に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、そのマルチキャストツリーに参加する前に参加後のノードの推定遅延量を接続先のノードごとに算出する際に、マルチキャストツリーを構成する全ノードの、実際の処理遅延、配信遅延、ノードの処理能力(CPU速度、CPU利用率)で重み付けした平均値を用いて、新規ノードが接続した場合のそのノードへデータを配信するまでの処理遅延の推定値と、新規ノードが接続した場合のネットワーク遅延の推定値を算出し、前記処理遅延の推定値と前記ネットワーク遅延の推定値の累積から新たに接続するノードが接続する前に新たに接続するノードの推定遅延量を算出するマルチキャストシステムであることが好ましい。
[形態25]
マルチキャストシステムを構成するノードであって、マルチキャストツリーに参加するノードから、それぞれの推定または実測の遅延量および新たに接続するノードの推定遅延量を収集する手段と、収集した推定または実測の遅延量および新たに接続するノードの推定遅延量から、指定された推定遅延量より大きい推定または実測の遅延量のノードを、指定された推定遅延量より小さい新たに接続するノードの推定遅延量をもつノードの配下に接続させる手段と、マルチキャストツリーに参加するノードの推定または実測の遅延量および新たに接続するノードの推定遅延量を含むノード情報を保持する手段と、を有するノード。
[形態26]
マルチキャストシステムを構成するノードであって、配下に接続しているノードの推定または実測の遅延量と自ノードの新たに接続するノードの推定遅延量を計算する手段と、自ノードの推定または実測の遅延量および新たに接続するノードの推定遅延量を含むノード情報を保持する手段と、を有するノード。
[形態27]
マルチキャストツリーから構成されるマルチキャストシステムであって、マルチキャストツリーを構成するノードの推定遅延量を算出する手段と、基準とする遅延量とノードの推定または実測の遅延量の差分から、データ到着時に意図的に挿入する遅延量を算出する手段と、データ到着時に前記意図的な遅延量を挿入する手段と、を有するマルチキャストシステム。
[形態28]
前記形態27に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、データ到着時に意図的に挿入する遅延量を算出する際に、基準とする値を、実測遅延量の最悪値とするマルチキャストシステムであることが好ましい。
[形態29]
前記形態27に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、データ到着時に意図的に挿入する遅延量を算出する際に、基準とする値を、推定遅延量の最大値とするマルチキャストシステムであることが好ましい。
[形態30]
前記形態27に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、データ到着時に意図的に挿入する遅延量を算出する際に、基準とする値を、推定遅延量が大きくなりそうな位置にあるノードの実測値とするマルチキャストシステムであることが好ましい。
[形態31]
前記形態27に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、マルチキャストツリーに参加するノードを複数のグループに分割する手段と、そのグループそれぞれで基準とする推定または実測の遅延量を設定する手段と、グループ内の基準とする推定または実測の遅延量から意図的に挿入する遅延量を算出する手段と、前記遅延量の分だけデータ到着時に遅延を挿入する手段と、を有するマルチキャストシステムであることが好ましい。
[形態32]
前記形態27に記載の、マルチキャストツリーから構成されるマルチキャストシステムであって、推定または実測の遅延量が、同じまたは近いノードをグループ化する手段と、を有するマルチキャストシステムであることが好ましい。
[形態33]
マルチキャストツリーから構成されるマルチキャストシステムであって、マルチキャストツリーを構成するノードから、推定または実測の遅延量およびそのノードの配下に新たにノードが接続したと仮定した時の推定遅延量を収集するステップと、指定された推定または実測の遅延量より大きい遅延量のノードを抽出するステップと、指定された推定または実測の遅延量より小さい新たに接続するノードの推定遅延量のノードを抽出するステップと、配信遅延が指定した値以下に納まらないノードを、推定または実測の遅延量から、配信遅延が指定した値以下に納まるノードの配下に移動させ、マルチキャストツリーを再構成するステップと、を有するマルチキャスツリー構成方法。
[形態34]
マルチキャストツリーから構成されるマルチキャストシステムを構成するノードを制御するコンピュータに、マルチキャストツリーを構成するノードから、推定または実測の遅延量およびそのノードの配下に新たにノードが接続したと仮定した時の推定遅延量を収集する機能と、指定された推定または実測の遅延量より大きい遅延量のノードを抽出する機能と、指定された推定または実測の遅延量より小さい新たに接続するノードの推定遅延量のノードを抽出する機能と、配信遅延が指定した値以下に納まらないノードを、推定または実測の遅延量から、配信遅延が指定した値以下に納まるノードの配下に移動させ、マルチキャストツリーを再構成する機能と、を実行させるプログラム。
[形態35]
基準とする遅延量を指定する手段と、
前記複数のノードのうち、少なくとも一部のノードは、前記基準とする遅延量と自己の遅延量との差分を求める手段と、当該ノードへのデータ到着時に前記差分を埋める遅延量を挿入する手段と、を備える形態1乃至3のいずれかに記載のマルチキャストシステムであることが好ましい。
[形態36]
前記推定遅延量計算機能部は、前記マルチキャストツリーに含まる他のノードが計算した予測遅延量を収集する機能を含み、
さらに、前記収集した予測遅延量を用いて前記マルチキャストツリーの再構築を行うトポロジ決定機能部をさらに含むことを特徴とする形態6又は7に記載のマルチキャストシステムのノードであることが好ましい。
[形態37]
前記推定値遅延量収集機能部は、自己のノードの配下に新たにノードを追加したと仮定した場合の予測遅延量をあらかじめ算出しておく推定遅延量計算機能部を兼ね備え、
前記推定遅延量収集機能部が集積した前記予測遅延量を含む現在の前記マルチキャストツリー構造のトポロジを記憶するノード情報記憶部をさらに備え、
前記トポロジ決定機能部が、前記ノード情報記憶部に記憶されたマルチキャストツリー全体のノード情報を用いて前記マルチキャストツリー構造の変更を行う形態8に記載のマルチキャストシステムのルートノードであることが好ましい。
[形態38]
前記各ノードのうち、データ配信の目的地であると共に他のノードへのデータ転送の中継も行うノードにおいて、前記意図的な遅延量を挿入する手段は、前記他のノードへ中継するデータには前記遅延量を挿入せずに、データの受信後、速やかにデータ転送を行う形態5のマルチキャストシステムであることが好ましい。
【0099】
本発明の全開示(特許請求の範囲及び図面を含む)の枠内において、さらにその基本的技術思想に基づいて、実施例ないし実施例の変更・調整が可能である。また、本発明の特許請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、特許請求の範囲及び図面を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0100】
1:マルチキャストツリー
100:ルートノード
200、200A:ノード
110、210:主制御部
120、220:ネットワークインターフェイス
121、221:ノード情報データベース
111、211 送受信部
112:推定遅延量収集機能部
113:トポロジ決定機能部
212:推定遅延量計算機能部
231:挿入遅延量算出部
232:遅延挿入部

【特許請求の範囲】
【請求項1】
複数のノードを有するマルチキャストツリーにおいて、新たに追加ノードを接続すると仮定したときの予測遅延量を、前記追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出しておく手段と、
前記算出した予測遅延量を記憶する手段と、
前記追加ノードを設ける際に前記予測遅延量を用いて、前記追加ノードを接続するノードを決定する手段と、
を備えることを特徴とするマルチキャストシステム。
【請求項2】
前記追加ノードを接続するノードを決定する手段は、前記予測遅延量が所定の遅延値以下であるノードに前記追加ノードを接続し、
前記予測遅延量が所定の遅延量以下となるノードが存在しない場合は、前記追加ノードを含めた前記複数のノードの遅延量がいずれも前記所定の遅延量以下となるように、前記マルチキャストツリーを組み替えることを特徴とする請求項1記載のマルチキャストシステム。
【請求項3】
前記各ノードは、それぞれ、
自己ノードの下流に追加ノードを接続すると仮定した場合の予測遅延量を算出する手段と、
前記算出した予測遅延量を記憶する手段と、を備え、
前記マルチキャストシステムは、前記各ノードが算出した前記各ノードの予測遅延量を収集して一括して記憶する手段を備え、
前記ノードを決定する手段は、前記一括して記憶された各ノードの予測遅延量を用いて前記追加ノードを接続するノードを決定することを特徴とする請求項1又は2記載のマルチキャストシステム。
【請求項4】
前記予想遅延量を算出する手段は、前記接続先となり得るノードの処理能力と、ルートノードから当該ノードまでの遅延量と、当該ノードから前記追加ノードまでのネットワーク遅延を平均的であると仮定した仮想ネットワーク遅延量と、に基づいて予想遅延量を算出することを特徴とする請求項1乃至3いずれか1項記載のマルチキャストシステム。
【請求項5】
ルートノードから複数のノードがツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムであって、
前記ルートノードから各ノードまでの遅延量を算出する手段と、
基準とする遅延量と前記算出した各ノードの遅延量との差分から、データ到着時に意図的に挿入する遅延量を算出する手段と、
前記各ノードへのデータ到着時に前記算出した意図的な遅延量を挿入する手段と、
を備えることを特徴とするマルチキャストシステム。
【請求項6】
複数のノードがツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムに用いられるノードであって、
自己のノードの配下に新たにノードを追加したと仮定した場合の予測遅延量をあらかじめ算出しておく推定遅延量計算機能部と、
前記算出した予測遅延量を記憶するノード情報記憶部と、
を備えることを特徴とするマルチキャストシステムのノード。
【請求項7】
前記マルチキャストツリー構造がルートノードから前記複数のノードがツリー状に接続されたマルチキャストシステムであって、
前記推定遅延量計算機能部と前記ノード情報記憶部とを備える前記ノードが、前記ルートノード以外の前記ノードであることを特徴とする請求項6記載のマルチキャストシステムのノード。
【請求項8】
複数のノードがルートノードからツリー状に接続されたマルチキャストツリー構造を有するマルチキャストシステムに用いられるルートノードであって、
前記ツリー状に接続された前記各ノードから自己のノードの配下に新たにノードを追加したと仮定してあらかじめ計算された予測遅延量を収集する推定遅延量収集機能部と、
前記収集された予測遅延量を用いて前記マルチキャストツリー構造の変更を行うトポロジ決定機能部と、
を備えることを特徴とするマルチキャストシステムのルートノード。
【請求項9】
複数のノードがツリー状に接続されたマルチキャストツリーを有するマルチキャストシステムにおいて、新たに追加ノードを接続すると仮定したときの予測遅延量を、前記追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出しておくステップと、
前記追加ノードを設ける必要が生じたときに、前記あらかじめ算出しておいた予測遅延量を用いて、前記追加ノードを接続するノードを決定するステップと、
前記決定に基づいて、追加ノードをマルチキャストツリーに組み込んでデータ配信を行うステップと、
を備えることを特徴とするマルチキャストシステムのマルチキャストツリー更新方法。
【請求項10】
複数のノードがツリー状に接続されたマルチキャストツリーを有するマルチキャストシステムにおいて用いられるコンピュータプログラムであって、
前記複数のノードのいずれかに新たに追加ノードを接続すると仮定したときの予測遅延量を、前記追加ノードを設ける前に、接続先となり得るノード毎にあらかじめ算出し、記憶手段に記憶させる処理と、
前記追加ノードを設ける必要が生じたときに、前記記憶手段に記憶された前記予測遅延量を用いて、前記追加ノードを接続するノードを決定する処理と、
を前記マルチキャストシステムに含まれる少なくとも一つのコンピュータに実行させることを特徴とするマルチキャストシステムのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


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