説明

端末装置およびパケット送信方法

【課題】局所的な処理による配信木の再構築を行った後、変更された配信ルートを全ての端末装置が短時間で認識すること。
【解決手段】配信木構築器462は、自己がソースノードである場合、いずれかのノードにおいてCPUの負荷あるいはノード間の回線の利用可能帯域が閾値を越えている場合には、当該ノードを経由してパケットを受信するノードを特定し、特定したノードの配信ルートを選定し直す。パケット構造修正器464は、自己がソースノードである場合、配信ルートデータベース412に格納された配信ルート情報に従って、パケットのヘッダ部分を修正する。また、パケット構造修正器464は、該ヘッダ部分の記載に従ってパケット複製器426に対してパケットの複製個数およびパケットの送信先を指示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ALM(Application Layer Multicast)において、局所的な処理による配信木の再構築を行う端末装置およびパケット送信方法に関する。
【背景技術】
【0002】
ALM(Application Layer Multicast)とは、多地点のノード(=端末装置)からなるネットワークにおいて、マルチキャストの機能であるパケットの複製やルーティング(木構造の配信ルートの構成)などをアプリケーションレベルで実現する機能である。
【0003】
インターネット上でALMにより映像データをパケットで配信する場合、配信される映像の品質を維持するためには、各ノードのCPU(中央演算処理装置)の負荷バランスおよびノード間の利用帯域を調整する必要がある。
【0004】
これまでは、この調整のために、集中管理サーバが、全てのノードのCPU負荷およびノード間の回線の利用可能帯域を監視し、特定ノードのCPUの過負荷や、ノード間の回線の利用可能帯域の公平性を満足しない場合には、配信木を再構築する方式が採られてきた。
【0005】
しかしながら、この方式では、ノード数(映像配信セッションに参加するユーザ数)が多くなると、集中管理サーバの処理負荷の増加や集中管理サーバ周辺のネットワークトラフィックが増加する。これによって、集中管理サーバは、所定時間内に必要な処理を完了することができなくなるという問題が発生する。
【0006】
また、ノード間のネットワーク回線が混雑すると、ノード間の通信で利用できる利用可能帯域が減少し、映像データのパケット落ちが発生する。これによって、配信木の下流に位置するノードが受信して再生する映像の品質が劣化するという問題が発生する。
【0007】
さらに、ノード数が多くなると、集中管理サーバが算出した新たな配信ルートの構成を示す情報を、集中管理サーバから全てのノードに配信する必要がある。このため、配信ルートの更新に余分な遅延が生じ、空いている回線へ配信ルートを変更するタイミングが遅れ、結果として混雑した回線を利用する時間が長くなり、ノードが受信して再生する映像が悪い状態が長引くという問題も発生する。あるいは、CPUの負荷が高いノードでパケットを複製転送しつづける時間が長引いてしまうため、下流のノードが受信して再生する映像が悪い状態が長引く。
【0008】
そのため、ノード数が多いネットワークでは、混雑した回線を回避するための配送ルートの変更やCPUの負荷の調整のためには、配信木の再構築を局所的に行うことが望まれる。
【0009】
特許文献1は、複数の仮想マシンのCPU負荷を監視し、各仮想マシンに割り当てるタスクを調整することによりCPU負荷を調整する方法を提案している。
【0010】
また、特許文献2は、ルータ間のパケット転送において、通常のユニキャストとは別の配送経路でパケットを転送する手法を提案している。具体的には、特許文献2では、各ルータのバッファー(配信するパケットを蓄積するキュー)の長さを監視し、それに応じて配信経路を動的に変更するQoS配信方式を提案している。
【0011】
また、非特許文献1は、ALMにおける配信木再構築方法を提案している。
【0012】
また、非特許文献2は、集中管理サーバを用いず、各ノードが互いに接続するノード(親ノード)を探索しつづけることで、利用可能な帯域をできるだけ多く利用する配信木構築方法を提案している。
【特許文献1】米国特許第7203944号明細書
【特許文献2】米国特許第7254138号明細書
【非特許文献1】Dimitrios Pendarakis and Sherlia Shi and Dinesh Verma and Marcel Waldvogel,” ALMI: An Application Level Multicast Infrastructure, Proc. of 3rd Usenix Symp. on Internet Technologies,2001
【非特許文献2】ミン・シク・キム他「インターネットストリーミングメディアのための最適配信ツリー」(Min Sik Kim et. al,’’Optimal Distribution Tree for Internet Streaming Media’’)、第23回IEEE ICDCS会議録、2003年5月
【発明の開示】
【発明が解決しようとする課題】
【0013】
しかしながら、従来技術は、局所的に配信木を再構築した後、新たなパケットの送信元ノードおよびパケットの送信先ノードに関する情報を別のパケットを使ってノード間で交換する必要がある。このため、従来技術では、変更された配信ルートを全ての端末装置が認識するまでに時間がかかってしまうという課題を有している。
【0014】
なお、特許文献1は、仮想マシン間で映像データを配信する用途を想定しておらず、仮想マシン間で配信木を構築する方法については述べられていない。
【0015】
また、特許文献2は、各ルータが自己のバッファを監視しているのみであり、近隣ルータ、転送先のルータの負荷状況や利用可能な帯域を勘案し、経路変更を行うことはできない。
【0016】
また、非特許文献1の手法では、配信木の更新のために、集中管理サーバが算出した新たな配信ルートを制御メッセージで、各ノードに伝える必要がある。このため、非特許文献1の手法では、配信ルートの変更に時間がかかってしまう。
【0017】
また、非特許文献2は、配信ルートを変更するには、参加離脱時と同等の制御メッセージをノード間で交換する必要がある。このため、非特許文献2では、局所的に配信ルートを変更する場合でも全体の配送木を再構成するのと同等の手続きが必要となる。
【0018】
本発明は、かかる点に鑑みてなされたものであり、局所的な処理による配信木の再構築を行った後、変更された配信ルートを全ての端末装置が短時間で認識することができる端末装置およびパケット送信方法を提供する。
【課題を解決するための手段】
【0019】
本発明の端末装置は、複数の端末装置から構成され、局所的に配信木の再構築を行うネットワークの端末装置であって、自己が配信木の構築を実行する端末装置である場合、全ての端末装置のCPUの負荷あるいは端末装置間の回線の利用可能帯域が閾値を越えないように、パケットの配信ルートを選定する配信木構築器と、前記配信ルートに基づいて入力パケットのヘッダ部分を書き替え、パケットの複製個数およびパケットの送信先の端末装置を設定するパケット構造修正器と、前記パケット構造修正器によりヘッダ部分が書き替えられたパケットを、前記パケット構造修正器が設定した個数だけ複製し、前記パケット構造修正器が設定した送信先の端末装置に送信するパケット処理器と、を具備する構成を採る。
【0020】
本発明のパケット送信方法は、複数の端末装置から構成され、局所的に配信木の再構築を行うネットワークの端末装置におけるパケット送信方法であって、自己が配信木の構築を実行する端末装置である場合、全ての端末装置のCPUの負荷あるいは端末装置間の回線の利用可能帯域が閾値を越えないように、パケットの配信ルートを選定する配信木構築工程と、前記配信ルートに基づいて入力パケットのヘッダ部分を書き替え、パケットの複製個数およびパケットの送信先の端末装置を設定するパケット構造修正工程と、前記パケット構造修正工程によりヘッダ部分が書き替えられたパケットを、前記パケット構造修正工程で設定した個数だけ複製し、前記パケット構造修正工程で設定した送信先の端末装置に送信するパケット処理工程と、を有する。
【発明の効果】
【0021】
本発明によれば、配信木の再構築が必要になった場合、パケットのヘッダ部分の書き替えにより、各ノードは、受信したパケットのヘッダ部分を解読するだけで新たな配信ルートを知り、パケットの送信先ノードを特定することができる。これにより、局所的な処理による配信木の再構築を行った後、変更された配信ルートを全ての端末装置が短時間で認識することができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0023】
図1は、本発明の一実施の形態に係るネットワークを示す図である。図1に示すように、本実施の形態では、複数のノード102、104、106、108、110、112、114、116が、それぞれネットワーク118に接続される。各ノード内に存在するマルチメディアアプリケーションは、ALMセッション中に、相互にストリームを交換することができる。図1中の各ノードは、他のノードと通信し、相互にネットワーク情報を交換することにより、パケットの配送ルートを知ることができる。
【0024】
なお、本発明において、物理的及び論理的ネットワークエンティティを指す用語であるノードとエンティティとは、互いに読み替えて使用することができる。また、ノード及びエンティティは、いずれも、通信システムにおける端末装置である。
【0025】
本発明において、配信木の構築を実行するソースノードは、自己および隣接ノードのCPU負荷の状態を示すCPUパラメータ、およびノード間の回線の利用可能帯域の状態を示すネットワークパラメータを継続的に収集する。次に、ソースノードは、CPUパラメータあるいはネットワークパラメータが所定の閾値を超えた場合に配信木の再構築を行う。
【0026】
ここで、ネットワークパラメータとして、パケットのロス率、伝送遅延時間の増減等が挙げられる。ソースノードは、パケット中のシーケンシャル番号を監視することによりパケットのロス率を観測することができる。また、ソースノードは、送信元がパケットヘッダ中に刻印する時刻情報と自らがパケットを受信した時刻の差分を監視することにより、伝送遅延時間を観測することができる。
【0027】
以下、本発明の一実施の形態に係る配信木再構築方法およびパケット送信方法について、図2および図3を用いて具体例に説明する。
【0028】
図2は、局所的なネットワークを構成するノード群の配信ルートの一例を示す図である。図2では、13個のノード(A,B,C,D,E,F,G,H,I,J,K,L,M)にて局所的なネットワークを構成している。
【0029】
図3は、図2の例における送信パケットの構造を示す図である。パケット302には、src304、dest306、bitmap308、tree_map310、ペイロードフィールド312が設けられる。また、パケット302は、src304、dest306、bitmap308およびtree_map310により、ヘッダ部分を構成する。
【0030】
src304は、配信木の構築を実行するソースノードの固有特性(IPアドレス等)が書き込まれる欄であり、dest306は、ソースノード以外のノードの固有特性(IPアドレス等)が書き込まれる欄である。なお、dest306には、配信木の階層が高いノードから(図3の左側から)順番に固有特性が書き込まれる。また、dest306には、同一階層のノード間において、一つ上の階層のノードの順番に従って、固有特性が書き込まれる。つまり、dest306は、配送木を幅優先で列挙した順で書き込まれる。
【0031】
bitmap308は、src304およびdest306の固有特性の順番に、各ノードがパケットの複製を行う必要があるか否かを示すビットマップ情報が書き込まれる欄である。つまり、ビットマップ情報は、各ノードが他のノードにパケットを送信する義務を有するか否かを示している。bitmap308には、対応するノードが、パケットの複製を行う必要がある場合には「1」が、パケットの複製を行う必要がない場合には「0」が書き込まれる。なお、bitmap308は、ルータ(図示しない)において、パケットを複製して配布する際に、配送済みの宛先かどうかを記録するために参照される。
【0032】
tree_map310は、src304およびdest306の固有特性の順番に、各ノードが複製を行う必要があるパケットの数を示すパケット数情報が書き込まれる欄である。つまり、パケット数情報は、そのノードが分岐する配送木の枝の数を示すものである。
【0033】
ペイロードフィールド312は、データ本体が書き込まれる欄である。
【0034】
図3に示すパケット302を受信したノードは、パケット302のヘッダ部分を解読することにより、必要なパケットの複製個数および複製したパケットの送信先を知ることができる。
【0035】
図2Aおよび図3Aは、配信木を再構築する前の状態を示し、図2Bおよび図3Bは、配信木を再構築した後の状態を示す。
【0036】
図2Aでは、ソースノードAから3つのノードB,C,Dへの配信ルートが構成され、さらに、ノードBから3つのノードE,F,Gへの配信ルートが構成されている。さらに、図2Aにおいて、ノードCから3つのノードH,I,Jへの配信ルートが構成され、ノードDから3つのノードK,L,Mへの配信ルートが構成されている。この配信ルートに従ってパケットが各ノードに配信される。すなわち、ソースノードAに受信されたパケットは、ソースノードAからノードB,C,Dに転送され、さらにノードBからノードE,F,Gに、ノードCからノードH,I,Jに、ノードDからノードK,L,Mにそれぞれ転送される。
【0037】
図2Aに示す配信ルートの場合、ソースノードAは、受信したパケット302のヘッダ部分を図3Aのように書き込む。すなわち、ソースノードAは、src304にソースノード(自己)の固有特性「A」を書き込む。また、ソースノードAは、dest306にソースノード以外のノードの固有特性「B,C,D,E,F,G,H,I,J,K,L,M」をこの順番に書き込む。また、ソースノードAは、src304およびdest306の順番に従って、bitmap308にビットマップ情報「1111000000000」を書き込む。また、ソースノードAは、src304およびdest306の順番に従って、tree_map310にパケット数情報「3333000000000」を書き込む。
【0038】
これにより、ソースノードAは、src304(自己)に対応するtree_map310の最初の値が「3」であるので、パケット302の複製を3個作成する。そして、ソースノードAは、dest306において最初から3つのノードB,C,Dに、複製したパケット302を送信する。
【0039】
ソースノードAからパケット302を受信したノードB,C,Dは、それぞれ、dest306の自己の固有特性の位置に対応するtree_map310の値が「3」であるので、パケット302の複製を3個作成する。そして、ノードB,C,Dは、送信元であるソースノードAが作成したパケット302の複製が3個であることから、ノードB,C,Dが同一階層であることを知ることができる。
【0040】
また、ノードBは、dest306において自己の固有特性が最初であるので、dest306において一つ下の階層の最初のノード(ノードDの次のノード)から3番目までのノードE,F,Gに、複製したパケット302を送信する。
【0041】
また、ノードCは、dest306において自己の固有特性がノードBの次であり、ノードBのtree_map310の値が「3」である。これにより、ノードCは、dest306において一つ下の階層の4つ目のノード(ノードGの次のノード)から3番目までのノードH,I,Jに、複製したパケット302を送信する。
【0042】
また、ノードDは、dest306において自己の固有特性がノードB、Cの次であり、ノードBのtree_map310の値が「3」、ノードCのtree_map310の値が「3」である。これにより、ノードDは、dest306において一つ下の階層の7つ目のノード(ノードJの次のノード)から3番目までのノードK,L,Mに、複製したパケット302を送信する。
【0043】
ノードE,F,G,H,I,J,K,L,Mは、それぞれ、dest306の自己の固有特性の位置に対応するtree_map310の値が「0」であるので、パケット302の複製を作成しない。
【0044】
このように、図3Aのようにパケット302のヘッダ部分を構成することにより、各ノードは、パケット302のヘッダ部分を解読するだけで、図2Aの配信ルートを知ることができる。これにより、パケット302は、全てのノードに重複することなく配信される。
【0045】
次に、図2Aに示す配信ルートの状態において、ノードCのCPUが過負荷の状態になった場合について説明する。この場合、ソースノードAは、図2Bに示すように配信木の再構築を実行する。図2Bに示す配信ルートの場合、ソースノードAは、受信したパケット302のヘッダ部分を図3Bのように書き替える。すなわち、ソースノードAは、src304にソースノード(自己)の固有特性「A」を書き込む。また、ノードAは、dest306にソースノード以外のノードの固有特性「B,D,E,F,G,K,L,M,H,I,J,C」をこの順番に書き込む。また、ソースノードAは、src304およびdest306の順番に従って、bitmap308にビットマップ情報「1111111000000」を書き込む。また、ソースノードAは、src304およびdest306の順番に従って、tree_map310にパケット数情報「2331111000000」を書き込む。
【0046】
これにより、ソースノードAは、src304(自己)に対応するtree_map310の最初の値が「2」であるので、パケット302の複製を2個作成する。そして、ソースノードAは、dest306において、最初から2つのノードB,Dに、複製したパケット302を送信する。
【0047】
ソースノードAからパケット302を受信したノードB,Dは、それぞれ、dest306の自己の固有特性の位置に対応するtree_map310の値が「3」であるので、パケット302の複製を3個作成する。そして、ノードB,Dは、送信元であるソースノードAが作成したパケット302の複製が2個であることから、ノードB,Dが同一階層であることを知ることができる。
【0048】
また、ノードBは、dest306において自己の固有特性が最初であるので、dest306において一つ下の階層の最初のノード(ノードDの次のノード)から3番目までのノードE,F,Gに、複製したパケット302を送信する。
【0049】
また、ノードDは、dest306において自己の固有特性がノードBの次であり、ノードBのtree_map310の値が「3」である。これにより、ノードDは、dest306において一つ下の階層の4つ目のノード(ノードGの次のノード)から3番目までのノードK,L,Mに、複製したパケット302を送信する。
【0050】
ノードBからパケット302を受信したノードE,F,Gは、それぞれ、dest306の自己の固有特性の位置に対応するtree_map310の値が「1」であるので、パケット302の複製を1個作成する。そして、ノードE,F,Gは、ソースノードAが作成したパケット302の複製が2個であることから、ノードB,Dが同一階層であることを知ることができる。さらに、ノードE,F,Gは、ノードB,Dが作成したパケット302の複製がそれぞれ3個であることから、ノードE,F,G,K,L,Mが同一階層であることを知ることができる。
【0051】
また、ノードEは、dest306において自己の固有特性が同一階層の中で最初であるので、dest306において一つ下の階層の最初のノード(ノードMの次のノード)であるノードHに、複製したパケット302を送信する。また、ノードFは、dest306において自己の固有特性がノードEの次であり、ノードEのtree_map310の値が「1」である。これにより、ノードFは、dest306において一つ下の階層の2つ目のノード(ノードHの次のノード)であるノードIに、複製したパケット302を送信する。
【0052】
また、ノードGは、dest306において自己の固有特性がノードE,Fの次であり、ノードEのtree_map310の値が「1」、ノードFのtree_map310の値が「1」である。これにより、ノードGは、dest306において一つ下の階層の3つ目のノード(ノードIの次のノード)であるノードJに、複製したパケット302を送信する。
【0053】
また、ノードKは、dest306において自己の固有特性がノードE,F,Gの次である。また、ノードEのtree_map310の値が「1」、ノードFのtree_map310の値が「1」、ノードGのtree_map310の値が「1」である。これにより、ノードKは、dest306において一つ下の階層の4つ目のノード(ノードJの次のノード)であるノードCに、複製したパケット302を送信する。
【0054】
ノードL,M,H,I,J,Cは、それぞれ、dest306の自己の固有特性の位置に対応するtree_map310の値が「0」であるので、パケット302の複製を作成しない。
【0055】
このように、ノードCの負荷を低減するために図2Bに示すように配信木の再構築を実行した場合、図3Bのようにパケット302のヘッダ部分を構成する。これにより、各ノードは、パケット302のヘッダ部分を解読するだけで、図2Bに示す配信ルートを知ることができ、パケット302は、全てのノードに重複することなく配信される。
【0056】
この操作は、パケットに対して行うので、即座に配信木を更新することが可能となる。つまり、従来の技術では、配信先を示す情報を、主信号パケットとは別の制御パケットを用いて通知し、配信ルートを変更する必要があった。しかし、本方式を用いることにより、主信号に配信ルートの情報を含めることができるので、即座に配送木を更新することが可能となる。
【0057】
さらに本方式では、tree_map310に深さ優先ではなく、幅優先すなわち同一階層のノードを先に列挙する方法で情報を記録している。このため、パケットを複製転送するノードは、パケット中のトップダウンに情報を探索するだけで、パケット中の最後まで探索することない。これにより、パケットを複製転送する必要があるか否かを判断することができるため、高速に処理できるという特徴がある。
【0058】
つまり、配信木の表現形態として、例えば、リスト構造で配信木を表現することができる。具体的には、図2において、Sの子供としてAが繋がり、Aの子供としてBとCが繋がっており、B、Cの子供として、それぞれD、E、Fが繋がっている配信木をリスト構造で表現した場合を例とする。この場合は、Sを送信元として宛先に(A−B),(B−D),(B−E),(A−C),(C−F)とリスト表現することができる。この表現形態のパケットを、例えばノードAが受信した場合に、従来技術では、Aが2個のパケットを複製すれば十分であることを判断するためには、上に述べたリストすべてを探索しなければならない。しかし、本方式では、幅優先に情報を配置し、かつ、パケットを複製する個数を明示的に記録している。このため、本方式では、各ノードが、情報の先頭から自己のノードが該当する部分まで情報を読めば、複製する個数、相手先の情報を知ることができるので、最後まで情報を探索するという無駄な処理を省くことができる。
【0059】
なお、固有特性としては、端末をネットワーク上で特定するIPアドレス等の情報に加えて、端末がパケットを受け取った際に自らの端末が、そのパケットを処理する方法を規定する情報を加えても良い。具体的には、パケットを破棄するか否かを決定するための情報を加えることで、端末が映像などを再生するために必要な処理負荷を軽減することが可能となる。つまり、例えば、固有特性は、IPアドレスに加えて、映像のピクチャ通番を特定の整数で割った数を追記しておいてもよい。具体的には、例えば整数3で割ったあまりを追記しておき、この部分の特性情報が0と等しいときだけ、パケットを再生する処理に引き渡すという動作をさせてもよい。このように動作させるとピクチャを適宜、間引きながら再生することが可能となる。つまり、すべてのピクチャを下流端末に転送しながら、パケットを受け取った端末は、1/3のフレームレートで再生するように制御することが可能となる。
【0060】
図4は、本発明の一実施の形態に係るノードの内部構成を示すブロック図である。図4に示すように、本実施の形態に係るノード400は、パケット処理器402、CPU負荷・利用帯域調整器404、複製処理器406と、CPUパラメータデータベース408と、ネットワークパラメータデータベース410と、配信ルートデータベース412と、から主に構成される。パケット処理器402は、パケット復号器422、パケット符号化器424およびパケット複製器426を有する。CPU負荷・利用帯域調整器404は、自己CPU負荷・利用可能帯域検出器442および隣接CPU負荷・利用可能帯域収集器444を有する。複製処理器406は、配信木構築器462およびパケット構造修正器464を有する。
【0061】
CPUパラメータデータベース408には、図5に示すように、局所的なネットワークを構成する全てのノードのCPUパラメータが格納される。各ノードのCPUの負荷状態を示すCPUパラメータには、図6に示すように、CPU負荷の値602、アップロードバンド幅604、ノード深度606、ノード幅608、子孫ノード数610等が含まれる。
【0062】
ネットワークパラメータデータベース410には、図7に示すように、局所的なネットワークを構成する全てのノードのネットワークパラメータがソースノードと対応付けられて格納される。ノード間の回線の利用可能帯域の状態を示すネットワークパラメータには、図8に示すように、受入れ・ダウンロードリンクが使用済みのバンド幅容量802、受入れ・ダウンロードリンクが未使用のバンド幅容量804、送出し・アップロードリンクが使用済みのバンド幅容量806、送出し・アップロードリンクが未使用のバンド幅容量808および予備のフィールド810等が含まれる。
【0063】
配信ルートデータベース412には、図9に示すように、局所的なネットワークを構成する各ノードについて、パケットの送信元ノードおよびパケットの送信先ノードを示す配信ルート情報が格納される。なお、図9では、図2Aの例における配信ルート情報の内容を示している。
【0064】
パケット復号器422は、符号化されている受信パケットを復号し、パケット構造修正器464に出力し、ペイロードをパケット符号化器424に出力する。パケット符号化器424は、パケット復号器422から入力したペイロードにパケット構造修正器464から入力したヘッダ部分を合わせてパケットを構成し、構成したパケットを符号化してパケット複製器426に出力する。パケット複製器426は、パケット符号化器424から入力したパケットについて、パケット構造修正器464から指示された個数の複製を作成し、複製したパケットを、パケット構造修正器464から指示された送信先に対して送信する。
【0065】
自己CPU負荷・利用可能帯域検出器442は、自己のCPUの負荷および利用可能帯域を継続的に監視する。そして、自己CPU負荷・利用可能帯域検出器442は、自己がソースノードである場合には、自己のCPUパラメータおよびネットワークパラメータを配信木構築器462に出力する。また、自己CPU負荷・利用可能帯域検出器442は、自己がソースノードではない場合には、配信ルートデータベース412に格納された配信ルート情報を参照してパケット送信元のノードを特定する。次に、自己CPU負荷・利用可能帯域検出器442は、自己のCPUパラメータおよびネットワークパラメータを含む制御パケットをパケット送信元のノードに送信する。
【0066】
隣接CPU負荷・利用可能帯域収集器444は、他のノードからCPUパラメータおよびネットワークパラメータを含む制御パケットを受信する。そして、隣接CPU負荷・利用可能帯域収集器444は、自己がソースノードである場合には、該CPUパラメータおよびネットワークパラメータを配信木構築器462に出力する。また、隣接CPU負荷・利用可能帯域収集器444は、自己がソースノードではない場合には、配信ルートデータベース412に格納された配信ルート情報を参照してパケット送信元のノードを特定する。次に、隣接CPU負荷・利用可能帯域収集器444は、該CPUパラメータおよびネットワークパラメータを含む制御パケットをパケット送信元のノードに送信する。
【0067】
配信木構築器462は、自己がソースノードである場合、自己CPU負荷・利用可能帯域検出器442、あるいは隣接CPU負荷・利用可能帯域収集器444からCPUパラメータおよびネットワークパラメータを入力する。次に、配信木構築器462は、いずれかのノードにおいてCPUの負荷、あるいはノード間の回線の利用可能帯域が閾値を越えているか否かを判定する。そして、配信木構築器462は、閾値を越えていると判定した場合、配信ルートデータベース412に格納された配信ルート情報を参照し、当該ノードを経由してパケットを受信するノードを特定する。次に、配信木構築器462は、CPUパラメータおよびネットワークパラメータを参照し、特定したノードの配信ルートを選定し直す。また、配信木構築器462は、配信木の再構築した結果に基づいて、CPUパラメータ、ネットワークパラメータ、および配信ルート情報を更新する。なお、自己がソースノードで、自己のCPUが過負荷となった場合、配信木構築器462は、負荷の低いノードを選択し、他のノードへの配送を負荷の低いノードが行うように配信木を変更する。また、自己がソースノードではない場合、配信木構築器462は、何も処理を行わない。
【0068】
パケット構造修正器464は、自己がソースノードである場合、配信ルートデータベース412に格納された配信ルート情報に従って、パケット復号器422から入力したパケットのヘッダ部分を修正し、パケット符号化器424に出力する。また、パケット構造修正器464は、自己がソースノードではない場合、パケット復号器422から入力したパケットのヘッダ部分をそのままパケット符号化器424に出力する。次に、パケット構造修正器464は、該ヘッダ部分の内容に基づいて配信ルートデータベース412に格納された配信ルート情報を更新する。また、パケット構造修正器464は、該ヘッダ部分の記載(図3のsrc304、dest306、およびtree_map310)に従ってパケット複製器426に対してパケットの複製個数およびパケットの送信先を指示する。
【0069】
次に、配信木構築器462における最適な配信ルートの選定方法の一例について説明する。
【0070】
配信木構築器462は、全てのノードについて、|(WID×a)×(DES×b)×(DEP×c)×(UPL×d)×(CPL×e)|を計算する。ただし、ノード幅を「WID」、子孫ノードの数を「DES」、ノード深度を「DEP」、アップロードバンド幅を「UPL」、CPU負荷を「CPL」、ノード幅の重みを「a」、子孫ノードの数の重みを「b」、ノード深度の重みを「c」、アップロードバンド幅の重みを「d」、CPU負荷の重みを「e」とすると(a、b、c、d、eは0から1までの範囲内の数値)とする。
【0071】
そして、配信木構築器462は、この計算結果が所定の閾値より小さいノードを選択する。
【0072】
そして、配信木構築器462は、選択したノードの中で特定条件(例えば、最大アップロードバンド幅)を満たすノードを、送信元のノードとして選定する。
【0073】
このように、本発明によれば、配信木の再構築が必要になった場合に、パケットのヘッダ部分を書き替えることにより、各ノードは、パケットのヘッダ部分を解読するだけで新たな配信ルートを知ることができる。これにより、本発明は、局所的な処理による配信木の再構築を行った後、変更された配信ルートを全ての端末装置が短時間で認識することができる。
【産業上の利用可能性】
【0074】
本発明は、多地点のノードからなり、ノードのCPUの負荷バランス、ノード間のネットワーク混雑の回避などノード間の利用帯域を局所的に調整する端末間のパケット転送に用いるに好適である。
【図面の簡単な説明】
【0075】
【図1】本発明の一実施の形態に係るネットワークを示す図
【図2】本発明の一実施の形態に係る局所的なネットワークを構成するノード群の配信ルートの一例を示す図
【図3】図2の例における送信パケットの構造を示す図
【図4】本発明の一実施の形態に係るノードの内部構成を示すブロック図
【図5】本発明の一実施の形態に係るノードのCPUパラメータデータベースに格納されるCPUパラメータの構造を示す図
【図6】本発明の一実施の形態に係るノードのCPUパラメータデータベースに格納されるCPUパラメータの内容を示す図
【図7】本発明の一実施の形態に係るノードのネットワークパラメータデータベースに格納されるネットワークパラメータの構造を示す図
【図8】本発明の一実施の形態に係るノードのネットワークパラメータデータベースに格納されるネットワークパラメータの内容を示す図
【図9】本発明の一実施の形態に係るノードの配信ルートデータベースに格納される配信ルート情報の内容を示す図
【符号の説明】
【0076】
400 ノード
402 パケット処理器
404 CPU負荷・利用帯域調整器
406 複製処理器
408 CPUパラメータデータベース
410 ネットワークパラメータデータベース
412 配信ルートデータベース
422 パケット復号器
424 パケット符号化器
426 パケット複製器
442 自己CPU負荷・利用可能帯域検出器
444 隣接CPU負荷・利用可能帯域収集器
462 配信木構築器
464 パケット構造修正器

【特許請求の範囲】
【請求項1】
複数の端末装置から構成され、局所的に配信木の再構築を行うネットワークの端末装置であって、
自己が配信木の構築を実行する端末装置である場合、全ての端末装置のCPUの負荷あるいは端末装置間の回線の利用可能帯域が閾値を越えないように、パケットの配信ルートを選定する配信木構築器と、
前記配信ルートに基づいて入力パケットのヘッダ部分を書き替え、パケットの複製個数およびパケットの送信先の端末装置を設定するパケット構造修正器と、
前記パケット構造修正器によりヘッダ部分が書き替えられたパケットを、前記パケット構造修正器が設定した個数だけ複製し、前記パケット構造修正器が設定した送信先の端末装置に送信するパケット処理器と、
を有する端末装置。
【請求項2】
前記ヘッダ部分には、少なくとも、配信木の構築を実行する端末装置の固有特性が書き込まれる第1欄と、配信木の構築を実行する端末装置以外の端末装置の固有特性が書き込まれる第2欄と、各端末装置が複製を行う必要があるパケットの数を示すパケット数情報が書き込まれる第3欄とが設けられ、
前記パケット構造修正器は、前記ヘッダ部分の第1欄、第2欄および第3欄を解読することにより、パケットの複製個数およびパケットの送信先の端末装置を設定する、
請求項1記載の端末装置。
【請求項3】
前記第2欄の固有特性は、配信木の階層が高い端末装置のものから順番に、かつ、同一階層の端末装置間において一つ上の階層の端末装置の順番に従って書き込まれ、
前記第3欄のパケット数情報は、前記第1欄および前記第2欄の固有特性の順番に書き込まれ、
前記パケット構造修正器は、前記ヘッダ部分の第1欄あるいは第2欄に書き込まれた自己の固有特性の位置に対応する前記第3欄のパケット数情報をパケットの複製個数として設定し、自己よりも上位の階層および自己と同一の階層の端末装置におけるパケットの複製個数に基づいて自己よりも一つ下の階層の端末装置の中からパケットの送信先の端末装置を設定する、
請求項2記載の端末装置。
【請求項4】
複数の端末装置から構成され、局所的に配信木の再構築を行うネットワークの端末装置におけるパケット送信方法であって、
自己が配信木の構築を実行する端末装置である場合、全ての端末装置のCPUの負荷あるいは端末装置間の回線の利用可能帯域が閾値を越えないように、パケットの配信ルートを選定する配信木構築工程と、
前記配信ルートに基づいて入力パケットのヘッダ部分を書き替え、パケットの複製個数およびパケットの送信先の端末装置を設定するパケット構造修正工程と、
前記パケット構造修正工程によりヘッダ部分が書き替えられたパケットを、前記パケット構造修正工程で設定した個数だけ複製し、前記パケット構造修正工程で設定した送信先の端末装置に送信するパケット処理工程と、
を有するパケット送信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate