JPWO2010079736A1 - 通信端末および通信状態変更方法 - Google Patents

通信端末および通信状態変更方法 Download PDF

Info

Publication number
JPWO2010079736A1
JPWO2010079736A1 JP2010529035A JP2010529035A JPWO2010079736A1 JP WO2010079736 A1 JPWO2010079736 A1 JP WO2010079736A1 JP 2010529035 A JP2010529035 A JP 2010529035A JP 2010529035 A JP2010529035 A JP 2010529035A JP WO2010079736 A1 JPWO2010079736 A1 JP WO2010079736A1
Authority
JP
Japan
Prior art keywords
node
nodes
group
data
local improvement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010529035A
Other languages
English (en)
Inventor
ティルミー バデゥゲ
ティルミー バデゥゲ
衛一 村本
衛一 村本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2010079736A1 publication Critical patent/JPWO2010079736A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

生成部(210)は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する。送信部(220)は、グループ形成データを、自端末に設定された送信先のノードへ送信する。生成部(210)は、グループ分け条件が満たされた場合、グループ形成データを、グループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。送信部(220)は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。グループ形成データは、2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのデータである。

Description

本発明は、通信端末および通信状態変更方法に関し、特に、ALM(Application Layer Multicast)配信木において処理を行うための通信端末および通信状態変更方法に関する。
インターネット上でALM(Application Layer Multicast)配信木を構成する複数の通信端末において映像配信等を行う場合、配信する映像の品質を維持するために、ネットワークトラフィックの動的な変化によって生じるパケットロスや遅延変動に対応する必要がある。この場合、ALM配信木を動的に再構成する必要がある。ALM配信木は、アプリケーション層のネットワーク(以下、オーバーレイネットワークという)における、各通信端末間の接続構成を示す。
図20は、ALM配信木を説明するための図である。図20(A)は、物理リンクによる物理トポロジの一例を示す図である。
図20(A)に示されるように、通信端末11,21,22,31,32,33,34は、物理リンクにより、インターネット10に接続される。図20(A)では、例えば、通信端末11が、ユニキャスト通信により、通信端末21を介して、通信端末31へ、データを送信する。また、通信端末11は、ユニキャスト通信により、通信端末22を介して、通信端末33へ、データを送信する。
図20(B)は、仮想リンクによるALMトポロジの一例を示す図である。図20(B)は、通信端末11,21,22,31,32,33,34において、図20(A)のようにデータが送信される場合のデータの経路を、仮想リンクで表現したALM配信木を示す。
図20(B)に示されるALM配信木により、例えば、通信端末11が送信したデータは、通信端末22を介して、通信端末34へ送信されることが容易に理解できる。以下においては、ALM配信木を構成する各通信端末を、ノードという。
ALM配信木は、図20(B)に示されるように、階層構造を有する。図20(B)に示されるALM配信木は、一例として、3つの階層を有する。ノード11は、第1階層のノードである。ノード21,22は、第2階層のノードである。ノード31,32,33,34は、第3階層のノードである。すなわち、ノード11は、最上位層のノードである。ノード31,32,33,34は、最下位層のノードである。
また、ALM配信木を構成する複数のノードの各々には、図20(B)に示されるように、当該ALM配信木における位置により、データの送信先が予め設定されている。例えば、第2階層の位置PS21におけるノード21のデータの送信先は、図20(B)に示されるように、第3階層のノード31,32に設定されている。データの送信先は、例えば、IP(Internet Protocol)アドレスで表現される。
また、ALM配信木を構成する各ノードのデータの送信先は、自ノードの属する階層より下位層のノードとなる。なお、ALM配信木において最下位層のノードには、データの送信先は設定されない。
ALM配信木の動的再構築方法には、集中管理サーバによってトラフィックをモニタリングして、トラフィックのバランスを考慮して再構成する方法が用いられることが多い。しかし、ALM配信木を構成するノードの数(例えば、映像配信セッションに参加する通信端末の数)が多くなると以下のような問題が発生する。
当該問題の一例は、集中管理サーバの処理負荷の増加や集中管理サーバ周辺のネットワークトラフィックの増加によって処理が追いつかないという問題である。また、当該問題の他の例は、集中管理サーバで算出された新しい配信木の構成情報を各ノードに配信する必要があるため、余分な遅延が発生するという問題である。
そのため、ノード数が多い場合にALM配信木の再構成を、各ノードの周辺情報(以下、局所情報という)だけを用い、各ノードが自律的に行う処理(以下、局所改善処理という)が行われることが望ましい。
図21は、局所改善処理を説明するための図である。
具体的には、図21は、ノード31とノード41との間のネットワークにおいて混雑(以下、ネットワーク混雑という)が発生した場合を想定して行われる処理を説明するための図である。
ここで、ネットワーク混雑とは、例えば、2つのノード間の通信量が所定値(例えば、最大通信帯域の90%の通信帯域)以上であることとする。例えば、最大通信帯域が10Mbpsである2つのノード間において、9Mbpsの通信帯域が使用された場合、ネットワーク混雑が発生したとする。すなわち、2つのノード間の通信量が9Mbps以上となった場合、ネットワーク混雑が発生したとする。
図21(A)は、ネットワーク混雑を解消するための局所改善処理として、ALM配信木におけるノード31の位置とノード52の位置とを交換する処理が行われている状態を示す。
図21(A)に示されるALM配信木は、図20(B)に示されるノード11,21,22,31,32,33,34に加え、さらに、複数のノードを含む。当該複数のノードの一部は、ノード41,42,43,44,51,52,53,54,61,62,63,64である。なお、図21(A)には、ノード33,34は示されていない。
ここで、第3階層の位置PS31におけるノード31のデータの送信先は、ノード41,42に設定されているとする。また、第5階層の位置PS52におけるノード52のデータの送信先は、ノード63,64に設定されているとする。
図21(B)は、局所改善処理が行われた後のALM配信木の構成を示す。このような局所改善処理を実行するために周辺のノード情報を得る必要がある。そのため、一般的に、各ノードは、局所改善処理を行うために必要な周辺のノード情報を事前に収集しておく。ノード情報は、例えば、データの送信先の情報である。
そのため、局所改善処理により、位置PS31におけるノード31の位置と位置PS52におけるノード52の位置とが交換された場合、図21(B)に示されるように、位置PS31におけるノード52のデータの送信先は、ノード41,42に設定される。また、位置PS52におけるノード31のデータの送信先は、ノード63,64に設定される。これにより、局所改善処理が行われた後も、最上位層のノードから送信されたデータは、最下位層のノードまで到達する。
一方、局所改善処理が分散的に行われる場合、局所改善処理が複数個所で同時に実行される可能性がある。ALM配信木において、局所改善処理が複数個所で同時に実行された場合、ALM配信木の整合性が保持できないという問題が生じる。
図22は、ALM配信木の整合性が保持できないことを説明するための図である。
図22(A)は、局所改善処理が複数個所で同時に実行されることを説明するための図である。図22(A)に示されるALM配信木は、図21(A)のALM配信木と比較して、一部のノードが示されていない点が異なる。それ以外は、図21(A)のALM配信木と同様なので詳細な説明は繰り返さない。
図22(A)において、ネットワーク混雑CNAおよびネットワーク混雑CNBが同時に発生したとする。ネットワーク混雑CNAは、ノード31とノード41との間におけるネットワーク混雑である。ネットワーク混雑CNBは、ノード52とノード64との間におけるネットワーク混雑である。
また、ネットワーク混雑CNAおよびネットワーク混雑CNBに対し、それぞれ、以下の局所改善処理Aおよび局所改善処理Bが互いに独立して同時に行われたとする。
局所改善処理Aは、位置PS31におけるノードの位置と位置PS52におけるノード位置とを交換する処理であるとする。局所改善処理Bは、位置PS52におけるノードの位置と位置PS63におけるノードの位置とを交換する処理であるとする。
ここで、図22(A)に示される位置PS31におけるノードのデータの送信先は、ノード41,42であるとする。また、位置PS52におけるノードのデータの送信先は、ノード63,64であるとする。
局所改善処理Aおよび局所改善処理Bは互いに独立して同時に行われる。そのため、例えば、局所改善処理Bにより、ノード63の位置が位置PS52となり、ノード52の位置が位置PS63の位置となったとする。この場合、局所改善処理Aが行われることにより、ノード63の位置が位置PS31となり、ノード31の位置が位置PS52の位置となったとする(図22(B)参照)。
ここで、位置PS52におけるノードのデータの送信先は、ノード63,64である。そのため、位置PS52におけるノード31は、データを位置PS31におけるノード63へ送信することになる。その結果、ノード63,41,31において、データの巡回(ループ)が発生する。
また、位置PS63におけるノード52は、データを他のノードから受信することができず、他のノードから孤立してしまうという問題が発生する。つまり、局所改善処理Aおよび局所改善処理Bが互いに独立して同時に行われた場合、ALM配信木の整合性が保持できなくなる。すなわち、ALM配信木の不整合が発生する。
そこで、非特許文献1には、局所改善処理をボトムアップ(またはトップダウン)的に逐次実行する処理(以下、逐次実行処理という)が開示されている。以下においては、局所改善処理をボトムアップ的に逐次実行する処理を、ボトムアップ的局所改善処理という。
図23は、ボトムアップ的局所改善処理を説明するための図である。ボトムアップ的局所改善処理は、局所改善処理の対象となる2つの層を、最下位層から最上位層に向かって、順次、移動させながら、行われる処理である。
図23(A)は、段CL1における局所改善処理を示す図である。段CL1は、最下位層としての第6階層と、第5階層とを含む部分である。すなわち、段CL1における局所改善処理は、最下位層としての第6階層の位置のノードと、第5階層の位置のノードとを交換する処理である。
段CL1における局所改善処理が終了すると、局所改善処理の対象となる層は、第5階層および第4階層となる。
図23(B)は、段CL2における局所改善処理を示す図である。段CL2は、第5階層と、第4階層とを含む部分である。すなわち、段CL2における局所改善処理は、第5階層の位置のノードと、第4階層の位置のノードとを交換する処理を示す。
図23(A)および図23(B)に示されるように、ボトムアップ的局所改善処理は、段CL1における局所改善処理が完全に終了しないと、次の処理(段CL2における)が開始されない。そのため、ALM配信木の整合性が保持できる。
しかし、局所改善処理の実行される位置が順番に、上位の層にあがっていくため、ネットワークの任意の場所の任意の時刻で起きるトラフィック変動に応じて、迅速にALM配信木が改善できないという課題がある。
例えば、図23(A)および図23(B)の例では、ALM配信木の上位層のノード11周辺においてネットワーク混雑が発生した場合、段CL1,CL2における局所改善処理が終了するまで、当該ネットワーク混雑に迅速に対応できない。
"Stability Oriented Overlay Multicast for Multimedia Streaming in Multiple Source Context", Baduge, T.M., Ikeda, K, Yamaguchi, H., Higashino, T., appears in: proceedings of ICC '08, IEEE International Conference on Communications, 2008, Publication Date: 19-23 May 2008, page(s): 5708 - 5714
しかしながら、非特許文献1に記載の技術では、ALM配信木において、複数の局所改善処理を行う必要がある場合、複数の局所改善処理が終了するまでに時間がかかるという問題がある。
本発明は、上述の問題点を解決するためになされたものであって、その目的は、ALM配信木において、複数の局所改善処理を迅速に行うことを可能とする通信端末等を提供することである。
上述の課題を解決するために、この発明のある局面に従う通信端末は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末である。複数のノードの少なくとも一部ではデータ通信が行われている。複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。所定ノードとしての通信端末は、複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する生成部と、グループ形成データを、自端末に設定された送信先のノードへ送信する送信部とを備える。生成部は、さらに、グループ分け条件が満たされた場合、グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。送信部は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。生成部は、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
すなわち、生成部は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する。送信部は、グループ形成データを、自端末に設定された送信先のノードへ送信する。生成部は、グループ分け条件が満たされた場合、グループ形成データを、グループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。送信部は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。グループ形成データは、2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのデータである。
複数のノードには、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。そのため、グループ形成データが、所定ノードから、設定された送信先のノードへ送信されることにより、各ノードへグループ形成データが送信される。この処理により、ALM配信木において、複数のグループが形成される。形成された各グループでは、局所改善処理が行われる。
したがって、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
また、グループ分け条件は、所定時間が経過したという条件であってもよい。
これにより、所定時間が経過する毎に、グループ形成データがグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更される。変更されたグループ形成データは、設定された送信先のノードへ送信される。そのため、所定時間が経過する毎に、グループの数および各グループに対応するノードの数の少なくとも一方が変更される。したがって、所定時間が経過する毎に、ALM配信木において形成されるグループの数、各グループに対応するノードの数が変更される。
また、生成部は、形成されるグループの境界に位置するノードを特定するための情報を示すグループ形成データを生成してもよい。
また、生成部は、グループに対応するノードの数がN個であり、かつ、該N個のノードにおける通信量が所定値以上となった場合、該通信量を所定値未満とするように、局所改善処理が行われるグループを形成させるためのグループ形成データを生成してもよい。
これにより、通信量が所定値以上となった場合、該通信量を所定値未満とするように、局所改善処理が行われる。
また、所定ノードは、ルートノードであってもよい。
また、所定ノードとしての通信端末は、さらに、自端末に対応するグループに対応するノードの数がN個である場合、該N個のノードの各々が順次受信するためのトークンを送信するトークン制御部を備え、トークン制御部は、トークンを受信したノードが該トークンを保持している期間のみ、該トークンを保持しているノードが局所改善処理を行うことを可能とする該トークンを送信してもよい。
これにより、1つのグループにおいて、同時に実行できる局所改善処理を1つに制限することができる。
この発明の他の局面に従う通信端末は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末である。複数のノードには、ALM配信木におけるノードの位置によって、データの送信先が予め設定されている。通信端末は、他のノードから送信されるデータであって、複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する受信部を備える。グループ形成データは、自ノードが特定ノードであるか否かを特定するための情報を示す。通信端末は、さらに、受信したグループ形成データに基づいて、自ノードが特定ノードであるか否かを判定する判定部と、判定部により自ノードが特定ノードであると判定された場合、グループ形成データに基づいて、M個のノードからなるグループを形成するグループ生成部と、グループ生成部により形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する局所改善部とを備える。局所改善部は、さらに、変更必要ノードがあると判定された場合、変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う。
すなわち、自ノードを含むM個のノードからなるグループを、ALM配信木を構成する複数のノードのうちの特定ノードに形成させるためのグループ形成データが受信される。自ノードが特定ノードである場合、M個のノードからなるグループが形成される。形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かが判定される。変更必要ノードがある場合、変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理が行われる。
したがって、形成されたグループにおいて、データの送信先の変更が必要なノードである変更必要ノードがある場合、局所改善処理が行われる。仮に、形成されたグループが複数である場合、複数のグループ各々において、変更必要ノードがある場合、各グループにおいて局所改善処理が行われる。この場合、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
また、局所改善処理は、変更必要ノードがデータの送信先に設定されているノードのデータの送信先の少なくとも一部を他のノードに変更し、他のノードがデータの送信先に設定されているノードのデータの送信先を他のノードに設定されたデータの送信先に変更する処理を含んでもよい。
また、変更必要ノードおよび他のノードの各々は、M個のノードのうち、最上位のノードであるグループルートノードを除いた複数のノードのいずれかのノードであってもよい。
また、複数のノードのいずれかのノードとしての通信端末は、さらに、自端末に対応するグループに対応するノードの数がM個である場合、該M個のノードの各々が順次受信するためのトークンを送信するトークン制御部を備え、トークン制御部は、トークンを受信したノードが該トークンを保持している期間のみ、該トークンを保持しているノードが局所改善処理を行うことを可能とする該トークンを送信してもよい。
これにより、1つのグループにおいて、同時に実行できる局所改善処理を1つに制限することができる。
また、局所改善部は、M個のノードのうちの2つのノードの間の通信量が所定値以上である場合に、2つのノードのうちの少なくともいずれか一方を変更必要ノードとして、変更必要ノードがあると判定してもよい。
これにより、通信量が所定値以上となった場合、局所改善処理が行われる。
この発明のさらに他の局面に従う通信状態変更方法は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末が行う通信状態変更方法である。複数のノードの少なくとも一部ではデータ通信が行われている。複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。通信状態変更方法は、複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する生成ステップと、グループ形成データを、自端末に設定された送信先のノードへ送信する送信ステップとを備える。生成ステップでは、グループ分け条件が満たされた場合、グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更し、送信ステップでは、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信し、生成ステップでは、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
すなわち、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データが生成される。グループ形成データは、自端末に設定された送信先のノードへ送信される。グループ分け条件が満たされた場合、グループ形成データは、グループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更される。グループ形成データが変更される毎に、変更後のグループ形成データが、自端末に設定された送信先のノードへ送信される。グループ形成データは、2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのデータである。
複数のノードには、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。そのため、グループ形成データが、所定ノードから、設定された送信先のノードへ送信されることにより、各ノードへグループ形成データが送信される。この処理により、ALM配信木において、複数のグループが形成される。形成された各グループでは、局所改善処理が行われる。
したがって、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
この発明のさらに他の局面に従う通信状態変更方法は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末が行う通信状態変更方法である。複数のノードには、ALM配信木におけるノードの位置によって、データの送信先が予め設定されている。通信状態変更方法は、他のノードから送信されるデータであって、複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する受信ステップを備える。グループ形成データは、自ノードが特定ノードであるか否かを特定するための情報を示す。通信状態変更方法は、さらに、受信したグループ形成データに基づいて、自ノードが特定ノードであるか否かを判定する判定ステップと、判定ステップにより自ノードが特定ノードであると判定された場合、グループ形成データに基づいて、M個のノードからなるグループを形成するグループ生成ステップと、グループ生成ステップにより形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する局所改善ステップとを備える。局所改善ステップでは、変更必要ノードがあると判定された場合、該変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う。
すなわち、自ノードを含むM個のノードからなるグループを、ALM配信木を構成する複数のノードのうちの特定ノードに形成させるためのグループ形成データが受信される。自ノードが特定ノードである場合、M個のノードからなるグループが形成される。形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かが判定される。変更必要ノードがある場合、変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理が行われる。
したがって、形成されたグループにおいて、データの送信先の変更が必要なノードである変更必要ノードがある場合、局所改善処理が行われる。仮に、形成されたグループが複数である場合、複数のグループ各々において、変更必要ノードがある場合、各グループにおいて局所改善処理が行われる。この場合、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
この発明のさらに他の局面に従う通信状態変更方法は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードの少なくとも一部で行われるデータ通信の通信状態を動的に変更する通信状態変更方法である。複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。通信状態変更方法は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成するための処理を行うステップと、グループ分け条件が満たされる毎に、形成されているグループの数および各グループに対応するノードの数の少なくとも一方を変更するための処理を行うステップと、2以上のノードに対応する複数のグループのうちの少なくとも2つのグループの各々において、ノードの位置の交換が必要な2つのノードがある場合、2つのノードの位置を交換する局所改善処理を行うステップとを備える。
すなわち、ALM配信木を構成する複数のノードにおいて、複数のグループが形成される。2以上のノードに対応する複数のグループのうちの少なくとも2つのグループの各々において、ノードの位置の交換が必要なノードである変更必要ノードがある場合、変更必要ノードの位置と、該変更必要ノードに対応するグループに対応する他のノードの位置とを交換する局所改善処理が行われる。
したがって、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
本発明により、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
図1は、第1の実施の形態の概念を説明するための図である。 図2は、第1の実施の形態において、通信端末としての複数のノードから構成されるALM配信木を示す図である。 図3は、通信端末の構成を示すブロック図である。 図4は、グループ分け処理のフローチャートである。 図5は、一例としてのトリガメッセージを示す図である。 図6は、グループ化ノード判定処理のフローチャートである。 図7は、グループ化処理のフローチャートである。 図8は、一例としてのグループ化用メッセージを示す図である。 図9は、GC巡回処理を説明するための図である。 図10は、一例としての巡回済を示す図である。 図11は、トークン巡回処理のフローチャートである。 図12は、一例としてのトークンを示す図である。 図13は、局所改善判定処理のフローチャートである。 図14は、配信木変更処理のフローチャートである。 図15は、グループ分け処理Aのフローチャートである。 図16は、ALM配信木においてグループが形成される処理を説明するための図である。 図17は、ALM配信木に形成されるグループの一例を示す図である。 図18は、本発明に係る通信端末の特徴的な第1の機能構成を示すブロック図である。 図19は、本発明に係る通信端末の特徴的な第2の機能構成を示すブロック図である。 図20は、ALM配信木を説明するための図である。 図21は、局所改善処理を説明するための図である。 図22は、ALM配信木の整合性が保持できないことを説明するための図である。 図23は、ボトムアップ的局所改善処理を説明するための図である。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
(本発明の概要)
図1は、第1の実施の形態の概念を説明するための図である。図1(A)は、第1の実施の形態の処理により、複数のノードから構成されるALM配信木において、複数のグループ(グループGP1,GP2,GP3)が形成された状態を示す図である。なお、グループを形成するための処理は後述する。
本実施の形態では、ALM配信木において形成された複数のグループに対し、以下の規則D1および規則D2を定める。以下の規則D1,D2は、ALM配信木を構成する各ノードに予め通知されている。したがって、ALM配信木を構成する各ノードは、規則D1,D2に従った処理を行う。
規則D1は、異なる2つのグループ間において2つのノードの位置を交換する局所改善処理を禁止するという規則である。
規則D1により、例えば、グループGP1に対応するノード31の位置と、グループGP2に対応するノード52の位置とを交換する局所改善処理は実行されない。これにより、図22(A)で説明したように、ネットワーク混雑CNAおよびネットワーク混雑CNBが同時に発生した場合でも、前述した局所改善処理Aは実行されず、前述した局所改善処理Bのみが実行されることになる。
これにより、図22(A)および図22(B)で説明したように、局所改善処理Aおよび局所改善処理Bが同時に行われた場合における、ALM配信木の不整合の発生を防止できる可能性を高めることができる。
しかし、これだけでは同一グループ内で同時に複数の局所改善処理が行われる可能性があり、ALM配信木の不整合の発生を完全に防止できない。
そこで、本発明では、さらに、規則D2を定める。
規則D2は、各グループ内で同時に実行できる局所改善処理を1つに制限するという規則である。規則D1および規則D2により、ALM配信木の不整合の発生を完全に防止することができる。
具体的な処理としては、各グループにおいて、トークンを巡回させ、トークンを受信したノードが、当該トークンを保持している期間のみ、当該トークンを保持しているノードに対し局所改善処理の実行権を与える。以下においては、トークンを、トークンTKともいう。
図1(B)は、トークンTKを巡回させている状態を示す図である。図1(B)では、図1(A)のグループGP2においてトークンTKを巡回させている状態を示すが、他のグループにおいても、グループGP2と同様にトークンTKが巡回する。なお、トークンTKを巡回させるための処理は後述する。
(ALM配信木の構成)
図2は、第1の実施の形態において、通信端末としての複数のノードから構成されるALM配信木を示す図である。なお、図2に示されるALM配信木は、一般的なALM配信木構築手法によって構築されたものとする。
図2に示されるALM配信木は、一例として、6つの階層を有する。例えば、ノード11は、第1階層のノードである。以下においては、第1階層のノードを、ルートノードという。すなわち、ALM配信木の最上位にあるノードがルートノードである。すなわち、ノード11は、ルートノードである。
例えば、ノード21,22は、第2階層のノードである。例えば、ノード31,32は、第3階層のノードである。例えば、ノード61,62,63,64は、第6階層のノードである。ノード61,62,63,64は、最下位層のノードである。
以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層の1つ上の階層のノードを、親ノードまたは直接上位ノードという。例えば、図2のノード11は、ノード21,22の親ノード(直接上位ノード)である。
また、以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層より上の階層のノードを、上位ノードという。例えば、図2のノード11,21,31は、ノード41またはノード42の上位ノードである。
また、以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層の1つ下の階層のノードを、直接下位ノードまたは子ノードという。例えば、図2のノード21,22は、ノード11の子ノード(直接下位ノード)である。
また、以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層より下の階層のノードを、下位ノードという。例えば、図2のノード21,22,31,32,41,42,43,44,51,52,53,54,61,62,63,64は、ノード11の下位ノードである。例えば、図2のノード41,42,51,52,53,54,61,62,63,64は、ノード31の下位ノードである。
また、以下においては、ALM配信木における最下位層のノードを、最下位層ノードまたは葉ノードという。すなわち、最下位層ノードまたは葉ノードは、子ノードを有さない。
図2に示されるALM配信木を構成する各ノードには、当該ALM配信木における位置により、データの送信先が予め設定されている。つまり、ALM配信木を構成する複数のノードには、ALM配信木におけるノードの位置によって、ルートノードから送信されるデータが複数のノードのうちルートノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。
例えば、位置PS11におけるノード11のデータの送信先は、ノード21,22に設定されている。例えば、位置PS31におけるノード31のデータの送信先は、ノード41,42に設定されている。
また、ALM配信木を構成する各ノードには、ノードを特定するためのID(以下、ノードIDという)が設定される。ノードIDは、一例として、Tm(m:自然数)として表現されるとする。ノードIDは、同一の階層に複数のノードが存在する場合、最も左側のノードから順に、mの値が大きくなるとする。例えば、ノード51,52,53,54のノードIDは、それぞれ、T51,T52,T53,T54であるとする。
図2のノード11,21,22,31,32のノードIDは、それぞれ、T11,T21,T22,T31,T32であるとする。また、図2のノード41,42,43,44,51,52,53,54のノードIDは、それぞれ、T41,T42,T43,T44,T51,T52,T53,T54であるとする。また、図2のノード61,62,63,64のノードIDは、それぞれ、T61,T62,T63,T64であるとする。
図2に示される各ノードは、以下の通信端末100の構成を有する。
(装置の構成)
図3は、通信端末100の構成を示すブロック図である。図3に示されるように、通信端末100は、受信部110と、制御部120と、送信部112とを備える。
受信部110は、他の通信端末(ノード)から、各種データを受信する。
制御部120は、データ制御部121と、局所改善部122と、トークン制御部123と、グループ生成部124とを含む。
送信部112は、外部(例えば、データ制御部121)からの指示により、データを送信する機能を有する。
データ制御部121は、他の通信端末(ノード)から受信したデータDTを複製したデータDTを、送信部112を利用して、外部の通信端末(ノード)へ送信する。また、データ制御部121は、データDTを受信する毎に、受信したデータDTのデータ量と、受信したデータDTを送信したノードの情報を、局所改善部122へ通知する。これにより、局所改善部122は、自端末(自ノード)と他のノードとの通信量を常に把握することができる。
グループ生成部124は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成する機能を有する。
トークン制御部123は、トークンTKを生成する機能を有する。また、トークン制御部123は、外部から受信したトークンTKを、所定時間(例えば、1秒)保持した後、当該トークンTKを他のノードへ送信する。
局所改善部122は、詳細は後述するが、局所改善処理を行う必要があるか否かを判定する。局所改善部122は、局所改善処理を行う必要があると判定した場合、後述する局所改善メッセージIPMを、対象となるノードへ送信する。また、局所改善部122は、後述する局所改善メッセージIPMを受信することにより、局所改善処理を行う。
なお、各部が行う処理の詳細な説明は後述する。
(グループの形成)
次に、構築済みのALM配信木において、非集中処理によって複数のグループを形成するための処理(以下、グループ分け処理という)について説明する。グループ分け処理は、ルートノードとしてのノード11である通信端末100が行う。なお、以下のグループ分け処理は、ルートノード以外の任意のノードである通信端末100が行ってもよい。
図4は、グループ分け処理のフローチャートである。
ステップS111では、グループ生成部124が、トリガメッセージTRを生成する。
図5は、一例としてのトリガメッセージTRを示す図である。図5において、「START_INDEX」は、グループ化ノードを決定するための値を示す。グループ化ノードは、グループを形成するための処理を行うノードである。START_INDEXの値が“0”の場合、少なくとも最上位層のノードとしてのルートノードは、グループ化ノードとなる。トリガメッセージTRは、特定ノードとしてのグループ化ノードに、グループを形成させるためのグループ形成データである。
図5において、「GRP_SIZE」とは、トリガメッセージTRにより生成するグループの大きさ(以下、グループサイズという)を示す。グループサイズGRP_SIZEの値がk(自然数)である場合、ALM配信木において、グループ化ノードから、下位ノードの方向へ、k個のホップで到達可能な全てのノードを含むグループが、グループサイズGRP_SIZEにより生成されるグループとなる。なお、1つのホップにより、あるノードから、当該ノードの子ノードまたは親ノードに到達するものとする。
例えば、グループ化ノードがノード11であり、グループサイズGRP_SIZEが“2”であるとする。この場合、図2のALM配信木において、ノード11から、下位ノードの方向へ、2つのホップで到達可能なノードは、ノード21,31,32,22である。この場合、ノード21,31,32,22により、1つのグループが形成される。
図5において、「HOP_COUNT」とは、ホップの回数をカウントするためのカウンタである。カウンタHOP_COUNTの値は、トリガメッセージTRが、あるノードから、下位ノードの方向へ、1つのホップが行われる毎に、“1”インクリメントされる。また、カウンタHOP_COUNTの値は、トリガメッセージTRが、あるノードから、上位ノードの方向へ、1つのホップが行われる毎に、“1”デクリメントされる。なお、カウンタHOP_COUNTの初期値は“0”である。
再び、図4を参照して、ステップS112では、グループ生成部124が、送信部112を利用して、生成したトリガメッセージTRを、自端末に設定されたデータの送信先へ送信する。なお、トリガメッセージTRの送信先が子ノードである場合、グループ生成部124は、トリガメッセージTRに示されるカウンタHOP_COUNTの値を“1”インクリメントしたトリガメッセージTRを、当該子ノードへ送信する。
ここで、自端末に設定されたデータの送信先は、子ノードとしてのノード21,22であるとする。この場合、カウンタHOP_COUNTの値が“1”インクリメントされたトリガメッセージTRが、ノード21,22へ送信される。
以下においては、トリガメッセージTRを受信したノードを、トリガメッセージ受信ノードという。
ALM配信木を構成する複数のノードのうち、最下位層ノード以外のトリガメッセージ受信ノードは、以下のトリガメッセージ転送処理を行う。
トリガメッセージ転送処理では、トリガメッセージ受信ノード(例えば、ノード21)が、受信したトリガメッセージTRを、自ノードに設定されたデータの送信先となるノード(例えば、ノード31,32)へ送信する。なお、トリガメッセージTRの送信先が子ノードである場合、トリガメッセージ受信ノードは、トリガメッセージTRに示されるカウンタHOP_COUNTの値を“1”インクリメントしたトリガメッセージTRを、当該子ノードへ送信する。
最下位層ノード以外の各ノードにおいて、前述したトリガメッセージ転送処理が行われることにより、ルートノードとしてのノード11から送信されたトリガメッセージTRは、図2のALM配信木を構成する複数のノードへ送信される。この場合、例えば、最下位層ノードであるノード61が受信したトリガメッセージTRが示すカウンタHOP_COUNTの値は“5”である。
(グループ化ノードの判定)
また、図2のALM配信木を構成する複数のノードの各々は、他の処理とは独立して、以下のグループ化ノード判定処理を行う。
図6は、グループ化ノード判定処理のフローチャートである。
ステップS211では、グループ生成部124が、他のノードから、トリガメッセージTRを受信したか否かを判定する。ステップS211において、YESならば、処理はステップS212に移行する。一方、ステップS211において、NOならば、再度、ステップS211の処理が行われる。なお、ルートノード(例えば、ノード11)は、ステップS211の処理を行わず、ステップS212の処理から開始するとする。
ここでは、トリガメッセージTRを受信したとして、処理はステップS212に移行する。
ステップS212では、グループ生成部124が、当該グループ生成部124を含む自ノード(通信端末)が、グループ化ノードであるか否かを判定する。グループ化ノードは、グループを形成するための後述する処理を行うノードである。
自ノードがグループ化ノードであるか否かは、以下の式1により判定される。
(HOP_COUNT−START_INDEX)%(GRP_SIZE+1)…式1
式1は、(HOP_COUNT−START_INDEX)を(GRP_SIZE+1)で除算した余りを算出する式である。なお、式1では、START_INDEX<GRP_SIZE+1が満たされるとする。式1における、HOP_COUNT、START_INDEXおよびGRP_SIZEの各値は、受信したトリガメッセージTRが示す。
具体的には、グループ生成部124は、式1で算出される値が“0”である場合、自ノードがグループ化ノードであると判定する。グループ生成部124は、式1で算出される値が“0”でない場合、自ノードがグループ化ノードでないと判定する。
すなわち、グループ生成部124は、受信したグループ形成データとしてのトリガメッセージTRが示す各値に基づいて、自ノードが特定ノード(グループ化ノード)であるか否かを判定する。つまり、グループ生成部124は、受信したグループ形成データとしてのトリガメッセージTRに基づいて、自ノードが特定ノード(グループ化ノード)であるか否かを判定する。
ステップS212において、YESならば処理はステップS213に移行する。一方、ステップS212において、NOならば、再度、ステップS211の処理が行われる。
ここで、図2のノード11が、前述のグループ分け処理により、トリガメッセージTRを、データの送信先のノードへ送信したとする。また、グループ化ノード判定処理を行っているノード(通信端末)は、ノード41であるとする。また、ノード41が受信したトリガメッセージTRは、HOP_COUNT“3”、START_INDEX“0”、GRP_SIZE“2”を示すとする。
この場合、式1により得られる値は“0”となる。この場合、ノード41は、自ノードがグループ化ノードであると判定する。すなわち、ステップS212において、YESと判定され、処理はステップS213に移行する。
なお、自ノードがグループ化ノードであるか否かの判定方法は、上記式1を用いた方法に限定されず、他の方法であってもよい。当該他の方法は、例えば、HOP_COUNT、START_INDEXおよびGRP_SIZEのうちの2つを用いた、式1と異なる式を用いた方法である。
ステップS213では、グループ化ノード(通信端末100)に含まれるグループ生成部124が、グループ化処理を実行する。すなわち、グループ化処理は、グループ化ノードにより実行される。グループ化処理は、他の処理とは独立して行われる処理である。以下においては、グループ化ノードを、グループルートノードともいう。
図7は、グループ化処理のフローチャートである。
ステップS311では、グループ生成部124が、前述のグループ化ノード判定処理により受信したトリガメッセージTRが示す値の一部を用いて、グループ化用メッセージGCを生成する。
図8は、一例としてのグループ化用メッセージGCを示す図である。以下においては、グループ化用メッセージGCを、単に、GCともいう。図8において、「STARTER_ID」とは、グループルートノードのノードIDである。例えば、グループルートノードが、ノード41である場合、STARTER_IDは“T41”に設定される。
「GRP_SIZE」は、図5で説明したので詳細な説明は繰り返さない。GCに示されるGRP_SIZEの値は、グループルートノードが受信したトリガメッセージTRが示すGRP_SIZEの値に設定される。
図8において、「G_HOP_COUNT」は、ホップの回数をカウントするためのカウンタである。カウンタG_HOP_COUNTの値は、GCが、あるノードから、下位ノードの方向へ、1つのホップが行われる毎に、“1”インクリメントされる。また、カウンタG_HOP_COUNTの値は、GCが、あるノードから、上位ノードの方向へ、1つのホップが行われる毎に、“1”デクリメントされる。なお、カウンタG_HOP_COUNTの初期値は“0”である。
図8において、「PASSED_IDS」は、GCを受信したノードを示す通過ノード情報である。GCを受信したノードは、自ノードのノードIDを、当該GCの通過ノード情報PASSED_IDSの項目に追記して、他のIDへ転送する。
すなわち、GCは、トリガメッセージTRが示すGRP_SIZEの値を用いて生成される。つまり、GCは、トリガメッセージTRに基づいて生成される。
また、グループ化用メッセージGCには、以下の規則P1〜P4が記載される。
規則P1:G_HOP_COUNT<GRP_SIZEが成立し、かつ、自ノードがグループルートノードである場合、または、自ノードが受信したGCの送信元のノードが自ノードの親ノードである場合、ノードIDが示す数字が最も小さい当該ノードIDの子ノードへ、生成したGCまたは受信したGCを送信(転送)する。なお、GCを送信する際に、当該GCの通過ノード情報PASSED_IDSの項目に、自ノードのノードIDを追記する。
規則P2:G_HOP_COUNT=GRP_SIZEが成立し、かつ、自ノードが受信したGCの送信元のノードが自ノードの親ノードである場合、当該GCを、親ノードへ送信(転送)する。なお、GCを送信する際に、当該GCの通過ノード情報PASSED_IDSの項目に、自ノードのノードIDを追記する。
規則P3:自ノードが受信したGCの送信元のノードが自ノードの子ノードであり、当該GCを送信してない子ノードがある場合、通過ノード情報PASSED_IDSが示すノードID以外のノードIDであって、ノードIDが示す数字が最も小さい当該ノードIDの子ノードへ、当該GCを送信(転送)する。
規則P4:自ノードが受信したGCの送信元のノードが自ノードの子ノードであり、当該GCを送信してない子ノードがない場合、当該GCを、親ノードへ送信(転送)する。
なお、GCを送信してない子ノードがなく、かつ、GCを受信しているノードがグループルートノードである場合(自ノードのノードID=STARTER_ID)、後述するGC巡回処理を終了する。すなわち、グループルートノードが、巡回済GCを受信した場合、後述するGC巡回処理を終了する。巡回済GCは、子ノードへGCを送信したグループルートノードに対応するグループに対応する、グループルートノード以外の全てのノードを経由したGCである。
再び、図7を参照して、ステップS312では、グループ化用メッセージの送信が行われる。具体的には、グループ生成部124が、送信部112を利用して、GCに記載されている前述した規則P1に従って、生成したGCを、子ノードへ送信する。
ここで、ステップS312の処理を行うグループルートノードは、ノード41であるとする。また、生成されたGCが示す、STARTER_ID、GRP_SIZE、G_HOP_COUNTおよびPASSED_IDSは、図8に示される情報または数値を示すとする。
この場合、グループルートノードとしてのノード41は、規則P1に従って、ノードIDが示す数字が最も小さい当該ノードIDの子ノードであるノード51へ、GCを送信する。この場合、ノード51へ送信されるGCにはノード41のノードID“T41”がノード41により追記される。
なお、ノード41が子ノードであるノード51へGCを送信する場合、ノード41は、GCが示すG_HOP_COUNTの値を“1”インクリメントしたGCを、ノード51へ送信する。
ステップS313では、グループ生成部124が、前述した巡回済GCを受信したか否かを判定する。ステップS313において、YESならば、処理はステップS314に移行する。一方、ステップS313において、NOならば、再度、ステップS313の処理が行われる。
(GCの巡回)
次に、グループルートノードが生成したGCが各ノードを巡回するGC巡回処理について説明する。なお、GCを受信したノードは、当該GCに記載される前述の規則P1〜P4のうち、当該ノードの状況に対応する規則に従った処理を行う。
図9は、GC巡回処理を説明するための図である。本実施の形態では、一例として、グループルートノードとしてのノード41が、GCをノード51へ送信したとして、GC巡回処理を説明する。図9(A)は、GCが各ノードを巡回する様子を示す図である。以下、図9(A)を参照しながら、GC巡回処理について説明する。なお、ノード41がノード51へ送信するGCには、ノード41により、ノードID“T41”が追記されているとする。
なお、以下のGC巡回処理において、各ノードは、GCを子ノードへ送信する際に、カウンタG_HOP_COUNTの値を“1”インクリメントする。また、GC巡回処理において、各ノードは、GCを親ノードへ送信する際に、カウンタG_HOP_COUNTの値を“1”デクリメントする。
GC巡回処理において、まず、ノード51は、規則P1に従って、受信したGCを、ノード61へ送信する。この場合、ノード61へ送信されるGCにはノード51のノードID“T51”がノード51により追記される。
ノード61は、規則P2に従って、受信したGCをノード51へ送信する。この場合、ノード51へ送信されるGCにはノード61のノードID“T61”がノード61により追記される。
ノード51は、受信したGCを、規則P3に従って、受信したGCをノード62へ送信する。
ノード62は、規則P2に従って、受信したGCをノード51へ送信する。この場合、ノード51へ送信されるGCにはノード62のノードID“T62”がノード62により追記される。
そして、ノード51は、規則P4に従って、受信したGCをノード41へ送信する。そして、ノード41は、規則P3に従って、受信したGCをノード52へ送信する。
上記のような処理が、さらに、ノード52,63,64の各々で行われることにより、最終的に、グループルートノードとしてのノード41は、ノード52からGC(巡回済GC)を受信する。そして、ノード41は、規則P4に従って、GC巡回処理を終了させる。この場合、グループルートノードとしてのノード41が受信したGCは、巡回済GCである。
また、この場合、グループルートノードとしてのノード41は、巡回済GCを受信したことになる。この場合、図7のステップS313において、YESと判定され、処理はステップS314に移行する。
ステップS314では、詳細は後述するが、グループ生成部124が、受信した巡回済GCに基づいて、グループを形成する。
図10は、一例としての巡回済GCを示す図である。図10に示される通過ノード情報PASSED_IDSは、通過したノードのノードIDとして、T41,T51,T61,T62,T52,T63,T64を示す。すなわち、図10に示される通過ノード情報PASSED_IDSは、グループルートノードとしてのノード41の全ての下位ノードの各々のノードIDが示される。
これにより、図10に示される巡回済GCから、ノードIDが、T41,T51,T61,T62,T52,T63,T64である、全てのノードに送信されたことがわかる。なお、通過ノード情報PASSED_IDSが示す複数のノードIDには、重複するノードIDがないことが、規則P1〜P4により保証される。
この場合、図10の巡回済GCを受信したグループルートノードとしてのノード41は、当該巡回済GCの通過ノード情報PASSED_IDSが示す複数のノードIDにそれぞれ対応する複数のノードを含む1つのグループを形成する(S314)。
具体的には、グループルートノードのグループ生成部124が、グループ情報を、巡回済GCが示す複数のノードIDにそれぞれ対応する複数のノードの各々へ送信する。これによりグループが形成される。ここで、グループ情報は、グループ特定情報とノード情報とが示される。グループ特定情報は、グループを特定する情報である。グループ特定情報は、例えば、グループの番号を示す。ノード情報は、巡回済GCが示す複数のノードIDを示す。
グループルートノードからグループ情報を受信した複数のノードの各々は、グループ特定情報が示すグループ番号と、ノード情報が示す複数のノードIDとを参照することにより、自ノードが対応する(属する)グループと、当該グループに含まれる複数のノードとを知ることができる。これによりグループが形成される。すなわち、グループ生成部124は、巡回済GCを用いてグループを形成する。
なお、ステップS314におけるグループの形成処理は、上記処理に限定されず、他の処理であってもよい。例えば、GCおよび巡回済GCを使用せずに、グループが形成されてもよい。以下においては、GCおよび巡回済GCを使用せずに、グループを形成する処理を、グループ化処理Nという。
ステップS314においてグループ化処理Nが行われる場合、図7のグループ化処理では、ステップS311,S312,S313の処理は行われず、ステップS314のみ行われる。この場合、GC巡回処理は行われない。
グループ化処理Nでは、グループルートノードのグループ生成部124が、受信したトリガメッセージTR(グループ形成データ)を用いてグループを形成する。
具体的には、グループ化処理Nにおいて、グループルートノードのグループ生成部124は、自ノードの階層より下の階層であって、トリガメッセージTRが示すGRP_SIZEの値分の階層の各下位ノードへ、グループ情報を送信することによりグループを形成する。グループ情報は、グループ特定情報とノード情報とが示される。
なお、この場合、グループルートノードは、事前の通信等により、自ノードの階層より下位の階層の各ノードのノードIDを予め取得しているとする。この場合、グループ情報が示すノード情報は、前述のノード情報と異なり、グループルートノードのノードIDおよび当該グループ情報の送信先の各ノードのノードIDを示す。グループ特定情報は、前述したグループ特定情報と同じである。
ここで、一例として、グループルートノードはノード41であるとする。また、トリガメッセージTRが示すGRP_SIZEの値は“2”であるとする。この場合、自ノード(グループルートノード)の階層は、第4階層である。また、この場合、前述した、GRP_SIZEの値分の階層は、2つの階層である。すなわち、自ノードの階層より下の階層であって、トリガメッセージTRが示すGRP_SIZEの値分の階層は、第5階層および第6階層である。
すなわち、この場合、ノード41のグループ生成部124は、第5階層および第6階層の各ノードへ、グループ情報を送信することによりグループを形成する。
ここで、ノード11およびノード42は、グループルートノードであるとする。また、グループルートノードとしてのノード41が行った図6のグループ化ノード判定処理および図7のグループ化処理を、ノード11およびノード42の各々が行ったとする。また、GCを受信した各ノードが、前述したGC巡回処理を行ったとする。この場合、ALM配信木を構成する複数のノードにおいて、複数のグループが形成される。なお、前述のグループ化処理Nが行われる場合、GC巡回処理は行われない。
図9(B)は、形成された複数のグループの一例を示す図である。グループGP2は、グループルートノードとしてのノード41が図10の巡回済GCを受信することにより形成されたグループである。なお、前述のグループ化処理Nが行われる場合、グループGP2は、グループ化処理Nにより形成されたグループである。
グループGP1は、グループルートノードとしてのノード11が、ステップS314の処理を行うことにより、形成されたグループである。グループGP3は、グループルートノードとしてのノード42が、ステップS314の処理を行うことにより、形成されたグループである。
図9(B)に示されるように、グループルートノードとしてのノード41,42は、対応するグループの境界に位置するノードである。
なお、規則P1,3では、子ノードへGCを送信する場合、ノードIDが示す数字が最も小さい当該ノードIDの子ノードへGCを送信するようにしていた。しかしながら、これに限定されることなく、ノードIDが示す数字が最も大きい当該ノードIDの子ノードへGCを送信してもよい。すなわち、ノードIDが示す数字が大きい順に、GCの送信先となる子ノードを選択してもよい。また、GCの送信先となる子ノードを無作為に選択してもよい。
なお、上記のように、GCを巡回させることなく、隣接ノードに問い合わせることによってノードIDの収集を行ってもよいし、複数ホップ先までのノードにノードIDを問い合わせてもよい。
なお、上記のグループ形成手法において、集中処理法によって(集中管理サーバによって)グループを形成し、その情報を各グループに散布してもよい。また、非集中処理、集中処理が混在する手法によってグループ形成を行ってもよい。
(トークンの巡回)
次に、図1(B)で説明したトークンTKを、グループ内で巡回させるための処理(以下、トークン巡回処理という)について説明する。トークン巡回処理は、前述した巡回済GCを受信したグループルートノードとしての通信端末100が行う。ここでは、ノード41が、巡回済GCを受信したグループルートノードであるとする。
なお、形成されたグループに対応するノードの数が1個である場合、当該グループにおいてトークン巡回処理は行われない。つまり、トークン巡回処理は、形成されたグループに対応するノードの数が2個以上である場合に行われる。
図11は、トークン巡回処理のフローチャートである。
ステップS411では、トークン制御部123が、巡回済GCが示す情報に基づいて、トークンTKを生成する。具体的には、トークン制御部123は、巡回済GCにおける通過ノード情報PASSED_IDSが示す複数のノードIDを示すトークンTKを生成する。なお、トークン制御部123は、トークンTKが示すノードIDの順番を、グループに対応する複数のノードをトークンTKが、例えば、最短距離で巡回するように設定する。
ここで、トークンTKの生成に使用される巡回済GCは、図10の巡回済GCであるとする。この場合、以下の図12に示されるトークンTKが生成される。
図12は、一例としてのトークンTKを示す図である。
図12において、「GRP_IDS」は、トークンTKを生成したグループルートノードに対応するグループに対応する複数のノードにそれぞれ対応する複数のノードIDを示す情報(以下、グループノード情報という)である。トークンTKは、当該トークンTKに記載される複数のノードIDのうち、トークンTKを受信したノードのIDの右側のノードIDのノードへ順次送信される。
なお、トークンTKに記載される複数のノードIDのうち最も右側のノードIDのノードが、当該トークンTKを受信した場合、当該複数のノードIDのうち最も左側のノードIDのノードへ、当該トークンTKは送信される。
再び、図11を参照して、ステップS412では、トークン制御部123が、送信部112を利用して、生成したトークンTKを、当該トークンTKに示される複数のノードIDのうち、自ノードのノードIDの次のノードIDのノードへ送信する。
ここで、自ノードのノードIDは“T41”であるとする。また、生成されたトークンTKは、図12のトークンTKであるとする。この場合、グループルートノードとしてのノード41は、ノードID“T51”のノードへ、トークンTKを送信する。
そして、トークンTKを受信した各ノードは、前述したように、受信したトークンTKに記載される複数のノードIDのうち、トークンTKを受信したノードのIDの右側のノードIDのノードへ、当該トークンTKを送信する。なお、トークンTKを受信した各ノードのトークン制御部123は、受信したトークンTKを所定時間(例えば、1秒)保持した後、当該トークンTKを、自ノードのノードIDの次のノードIDのノードへ送信する。
なお、トークンTKに記載される複数のノードIDのうち最も右側のノードID(例えば、“T52”)のノードが、当該トークンTKを受信した場合、当該複数のノードIDのうち最も左側のノードID(例えば、“T41”)のノードへ、当該トークンTKを送信する。
以上の処理により、トークンTKは、例えば、図1(B)に示されるように、グループルートノードに対応するグループに対応する複数のノードにおいて、巡回する。また、ALM配信木において形成された複数のグループの各々におけるグループルートノードが、図11のトークン巡回処理を行うことにより、各グループにおいて、トークンTKが独立して巡回する。
なお、前述したグループ化処理Nが行われる場合、トークン巡回処理のステップS411では、トークン制御部123が、トリガメッセージTRが示すGRP_SIZEの値分の階層の各下位ノードと自ノードとをトークンTKが最短距離で巡回するように当該トークンTK(例えば、図12)を生成する。そして、前述のステップS412が行われる。
(局所改善処理)
次に、ALM配信木において、前述した規則D1および規則D2に従って行われる局所改善処理を行うための処理について説明する。なお、ALM配信木には、図9(B)に示されるように、複数のグループが形成されているとする。ALM配信木を構成する複数のノードの各々は、他の処理とは独立して、後述の局所改善判定処理を行う。
また、ALM配信木を構成する複数のノードの各々は、他の処理とは独立して、後述の配信木変更処理を行う。
ここで、図9(B)のルートノードとしてのノード11は、所定時間(例えば、1ミリ秒)毎に、データDTを、子ノード(ノード21,22)へ送信しているとする。ルートノードとしてのノード11が送信するデータDTは、例えば、ストリーミングデータであるとする。ルートノード以外の各ノード(例えば、ノード31)は、データDTを受信する毎に、受信したデータDTを、子ノード(例えば、ノード41)へ送信する。
また、ルートノード以外の各ノード(例えば、ノード21,31)は、データDTを受信する毎に、データ受信メッセージを、親ノード(例えば、ノード11,21)へ送信するとする。データ受信メッセージは、データDTを受信したことを報知するためのメッセージである。これにより、ALM配信木における各ノードは、所定時間毎にデータ受信メッセージを受信することで、データDTが正常に子ノードへ送信されていることを知ることができる。
図13は、局所改善判定処理のフローチャートである。ここでは、一例として、ノード52が、局所改善判定処理を行っているとして説明する。
また、前述した処理により、各グループにおいて、トークンTKが巡回しているとする。
ステップS511では、局所改善部122が、局所改善条件が満たされたか否かを判定する。局所改善条件は、局所改善処理を実行するための条件である。
局所改善条件は、例えば、自ノードと子ノードとの間の通信量が所定値以上になったという条件である。すなわち、局所改善条件は、自ノードと子ノードとの間で前述したネットワーク混雑が発生したという条件である。局所改善条件が満たされる場合、データの送信先の変更が必要なノード(以下、変更必要ノードという)があることになる。この場合、変更必要ノードは、自ノードである。
自ノードと子ノードとの間の通信量が所定値以上になった場合、局所改善部122は、局所改善条件が満たされたと判定する。すなわち、ステップS511では、局所改善部122が、変更必要ノードがあるか否かを判定する。
自ノードと子ノードとの間の通信量が所定値以上になったか否かの判定は、子ノードから送信されるデータ受信メッセージを受信する時間間隔により判定できる。例えば、ネットワーク混雑が発生した場合、データ受信メッセージを受信する時間間隔は、所定の時間間隔より長くなる。以下においては、自ノードと子ノードとの間の通信量が所定値以上になった場合における当該子ノードを、混雑解消対象ノードという。
ステップS511において、YESならば、処理はステップS512に移行する。一方、ステップS511において、NOならば、再度、ステップS511の処理が行われる。
ここで、ノード52とノード64との間の通信量が所定値以上になったとする。すなわち、ノード52とノード64との間に、前述したネットワーク混雑が発生したとする。この場合、ノード64は、混雑解消対象ノードである。この場合、局所改善条件が満たされたと判定され、処理はステップS512に移行する。
なお、局所改善条件は、上記条件に限定されることなく、他の条件であってもよい。例えば、局所改善条件は、自ノードと子ノードとの間の通信量が“0”になったという条件でもよい。すなわち、局所改善条件は、子ノードが動作してないという条件であってもよい。
ステップS512では、交換対象ノードの判定が行われる。交換対象ノードは、自ノードと混雑解消対象ノードとの間の通信量を所定値未満とすることができるノードである。すなわち、交換対象ノードは、ネットワーク混雑を解消するのに最も適したノードである。また、交換対象ノードは、自ノードと交換の対象となるノードである。
なお、交換対象ノードは、グループルートノード以外のノードとする。なぜならば、グループルートノードが交換されてしまうと、他のグループに対応する、当該グループルートノードの親ノードが、データをどこへ送信すればいいのかわからなくなってしまうからである。
具体的には、局所改善部122が、混雑解消対象ノード(例えば、ノード64)以外の親ノード(例えば、ノード41)または混雑解消対象ノード以外の子ノード(例えば、ノード63)との通信量に基づいて、交換対象ノードを判定する。また、局所改善部122は、判定された交換対象ノードに、当該交換対象ノードのノードIDを問い合わせることにより、交換対象ノードのノードIDを取得する。
ステップS513では、局所改善部122が、トークン制御部123がトークンTKを保持しているか否かを判定する。ステップS513において、YESならば、処理はステップS514に移行する。一方、ステップS513において、NOならば、再度、ステップS511の処理が行われる。ここでは、トークン制御部123がトークンTKを保持しているとする。
ステップS514では、局所改善処理に関わる全てのノードIDがあるか否かが判定される。具体的には、局所改善部122が、保持されているトークンTKが、自ノードのノードIDと、交換対象ノードのノードIDとを示すか否かを判定する。ステップS514において、YESならば、処理はステップS515に移行する。一方、ステップS514において、NOならば、再度、ステップS511の処理が行われる。
ここで、保持されているトークンTKは、図12のトークンTKであるとする。また、ステップS514の処理は、ノード52が行っているとする。また、前述の処理により判定された交換対象ノードは、ノード63であるとする。
この場合、自ノードのノードIDは“T52”である。また、交換対象ノードのノードIDは“T63”である。この場合、ステップS514でYESと判定され、処理はステップS515に移行する。
ステップS515では、局所改善処理Tが行われる。局所改善処理Tは、アプリケーション層では、ALM配信木における変更必要ノード(例えば、ノード52)の位置と、交換対象ノード(例えば、ノード63)の位置とを交換する処理である。
局所改善処理Tは、物理層では、変更必要ノードに設定されたデータの送信先と、交換対象ノードに設定されたデータの送信先とを交換する送信先交換処理を含む。具体的には、送信先交換処理は、変更必要ノードに設定されたデータの送信先を、交換対象ノードに設定されたデータの送信先に変更し、交換対象ノードに設定されたデータの送信先を、変更必要ノードに設定されたデータの送信先に変更する処理である。
なお、交換対象ノードが、変更必要ノードの子ノードである場合、送信先交換処理は、交換対象ノード(例えば、ノード63)がデータの送信先に設定されている親ノード(例えば、ノード52)のデータの送信先を当該交換対象ノードに設定されたデータの送信先に変更する処理を含む。
また、局所改善処理Tは、物理層では、変更必要ノード(例えば、ノード52)がデータの送信先に設定されているノード(例えば、ノード41)のデータの送信先の少なくとも一部を交換対象ノード(例えば、ノード63)に変更する処理を含む。
具体的には、局所改善処理Tでは、まず、局所改善部122が、局所改善メッセージIPMを生成する。局所改善メッセージIPMは、局所改善処理を行うためのメッセージである。局所改善処理Tでは、変更必要ノードの親ノードへ送信するための局所改善メッセージIPM(以下、第1局所改善メッセージという)と、交換対象ノードへ送信するための局所改善メッセージIPM(以下、第2局所改善メッセージという)とが生成される。そして、局所改善部122は、生成した第1局所改善メッセージおよび第1局所改善メッセージの各々を、送信先となるノードへ送信する。
ここで、ステップS512の処理により、交換対象ノードはノード63であると判定されたとする。この場合、ノード52の位置と、ノード63の位置とを交換するための局所改善処理を行うための第1局所改善メッセージおよび第2局所改善メッセージが生成される。
また、ノード52がステップS515の処理を行っているとする。また、変更必要ノードはノード52(自ノード)であるとする。
この場合、生成される第1局所改善メッセージは、変更必要ノード(ノード52)の親ノードであるノード41へ送信するためのメッセージである。また、生成される第2局所改善メッセージは、交換対象ノードとしてのノード63へ送信するためのメッセージである。
ここで、ノード41に設定されているデータの送信先は、ノード51,52であるとする。なお、データの送信先情報は、例えば、IPアドレス等により表現される。
また、この場合、第1局所改善メッセージは、ノード41のデータの送信先の一部(ノード52のIPアドレス)を、ノード63のIPアドレスに変更するための指示を示す。また、第2局所改善メッセージは、変更必要ノードのIPアドレスと、当該変更必要ノードのIPアドレスを交換対象ノードとしてのノード63のデータの送信先に設定する旨の指示と、交換対象ノードとしてのノード63のデータの送信先情報(例えば、IPアドレス)を要求する指示とを示す。
なお、局所改善部122は、交換対象ノードから、データの送信先情報を受信すると、受信した送信先情報が示すデータの送信先を、自ノードのデータの送信先に設定する。
そして、局所改善部122は、生成した第1局所改善メッセージを、ノード41へ送信する。また、局所改善部122は、生成した第2局所改善メッセージを、交換対象ノードとしてのノード63へ送信する。
図14は、配信木変更処理のフローチャートである。前述したように、ALM配信木を構成する複数のノードの各々は、他の処理とは独立して、配信木変更処理を行う。ここでは、一例として、ノード41が、配信木変更処理を行っているとして説明する。
ステップS611では、局所改善部122が、局所改善メッセージを受信したか否かを判定する。ステップS611において、YESならば、処理はステップS612に移行する。一方、ステップS611において、NOならば、再度、ステップS611の処理が行われる。ここでは、ノード41が、変更必要ノード(ノード52)から、前述の第1局所改善メッセージを受信したとする。
ステップS612では、メッセージ対応処理が行われる。メッセージ対応処理では、局所改善部122が、受信した局所改善メッセージに基づいた処理を行う。ここで、受信した局所改善メッセージは、前述の第1局所改善メッセージであるとする。また、第1局所改善メッセージは、ノード41のデータの送信先の一部(ノード52のIPアドレス)を、ノード63のIPアドレスに変更するための指示を示すとする。
この場合、局所改善部122は、自ノード(ノード41)に設定されているデータの送信先の一部(ノード52のIPアドレス)を、ノード63のIPアドレスに変更する。すなわち、自ノード(ノード41)に設定されているデータの送信先の一部(ノード52)が、ノード63に変更される。
以上の処理により、メッセージ対応処理は終了する。そして、再度、ステップS611の処理が行われる。
次に、ノード63が、図14の配信木変更処理を行っている場合の処理を説明する。ここで、ノード63が、変更必要ノード(ノード52)から、前述の第2局所改善メッセージを受信したとする。
この場合、ステップS611において、YESと判定され、処理はステップS612に移行する。
ステップS612のメッセージ対応処理では、局所改善部122が、受信した第2局所改善メッセージに基づいた処理を行う。第2局所改善メッセージは、変更必要ノードのデータの送信先としての変更必要ノードのIPアドレスと、変更必要ノードのIPアドレスを、交換対象ノードとしてのノード63のデータの送信先に設定する旨の指示と、交換対象ノードとしてのノード63のデータの送信先情報(例えば、IPアドレス)を要求する指示とを示すとする。
この場合、局所改善部122は、自ノード(ノード63)に設定されているデータの送信先を、変更必要ノードの送信先(IPアドレス)に設定(変更)する。また、局所改善部122は、自ノードのデータの送信先情報を、ノード52へ送信する。
前述の局所改善処理Tを行っているノード52の局所改善部122は、前述したように、交換対象ノード(ノード63)から、データの送信先情報を受信すると、受信した送信先情報が示すデータの送信先を、自ノードのデータの送信先に設定する。そして、図13における局所改善処理Tは終了する。そして、再度、ステップS511の処理が行われる。
以上の局所改善処理Tが行われることにより、変更必要ノードのデータの送信先の全てと、交換対象ノードのデータの送信先の全てとが交換される。なお、局所改善処理Tは、変更必要ノードのデータの送信先の全てと、交換対象ノードのデータの送信先の全てとを交換する処理に限定されない。局所改善処理Tは、例えば、変更必要ノードのデータの送信先の一部と、交換対象ノードのデータの送信先の一部とを交換する処理であってもよい。
なお、図13の局所改善判定処理は、データの送信先の変更が必要な変更必要ノード(例えば、ノード52)以外のノードが行ってもよい。例えば、変更必要ノードが、ノード52であるとする。また、ノード41が、ノード52とノード64との間の通信量の状態を監視しているとする。
この場合、ノード41が、図13の局所改善判定処理を行ってもよい。この場合、ノード41が行う局所改善判定処理は、例えば、ALM配信木におけるノード52の位置と、ノード63の位置とを交換するための処理となる。
以上説明したように、本実施の形態では、上記の局所改善処理Tが行われることにより、ネットワーク混雑が解消される。また、配信木変更処理により、トークンTKを保持しているノードのみしか局所改善処理が実行できないので、1つのグループ内で、同時に複数の局所改善処理が行われることはない。
そのため、ALM配信木において形成された複数のグループの各々において、同時にネットワーク混雑が発生し、当該ネットワーク混雑を解消するための局所改善処理が行われても、ALM配信木の不整合の発生を防ぐことができる。
また、トークンTKを保持しているノードのみしか局所改善処理が実行できないので、局所改善処理が他の処理の影響を受けることなく、局所改善処理を確実に実行することができる。
また、ALM配信木において形成された複数のグループの各々において、ネットワーク混雑が同時に発生した場合、各グループにおいて、同時に、図13の局所改善判定処理および図14の配信木変更処理が行われることにより、複数のグループの各々において、局所改善処理が行われる。すなわち、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
したがって、従来技術としての逐次実行処理より、複数個所のネットワーク混雑を迅速に解消することができる。すなわち、ALM配信木の再構築を迅速に行うことができる。つまり、従来技術としての逐次実行処理より、ALM配信木を迅速に改善することができる。
また、本発明では、トークンTKがグループノード情報(GRP_IDS)を保持するようにしている。そのため、ALM配信木における各ノードがグループノード情報を保持、管理する必要がない。そのため、グループ管理を非常に簡単にすることができる。
なお、ALM配信木の不整合を解消するのに発生するネットワークのオーバーヘッドは、グループ形成時のトラフィック量と、トークン巡回時のトラフィック量との合計である。グループ形成時のトラフィック量は、1回限りのトラフィックである。また、トークン巡回時のトラフィック量は、トークンTKがグループノード情報を保持しているため十分に小さい。したがって、本発明において、ALM配信木の不整合を解消するのに発生するネットワークのオーバーヘッドは非常に少ない。
以上により、本発明では、局所改善処理が複数個所で同時実行されるときに起こり得るALM配信木の不整合を、少ないネットワークのオーバーヘッドで、迅速に解消することができる。その結果、高いQoS(Quality of Service)を実現することができる。
<第1の実施の形態の変形例>
第1の実施の形態では、ALM配信木において形成される複数のグループの大きさおよびグループの位置は固定であった。すなわち、ALM配信木において形成されるグループの数、各グループに対応するノードの数は固定であった。また、異なる2つのグループ間において2つのノードの位置を交換する局所改善処理は禁止していた。
そのため、ALM配信木において、図9(B)のようにグループGP1,GP2,GP3が形成されている状態で、例えば、グループGP1と、グループGP2との間においてネットワーク混雑が発生した場合、当該ネットワーク混雑を解消するための局所改善処理は実行されないという問題があった。
本実施の形態の変形例では、ALM配信木において形成される複数のグループの大きさおよびグループの位置を動的に変更することにより、上記問題を解決する。すなわち、ALM配信木において形成されるグループの数、各グループに対応するノードの数を動的に変更することにより、上記問題を解決する。
本実施の形態の変形例の概要は、予め定められたグループ分け条件が満たされた場合、トリガメッセージTRが示す、START_INDEXの値、グループサイズGRP_SIZEの値を変更したトリガメッセージTRを、ALM配信木を構成する複数のノードへブロードキャストする。グループ分け条件は、例えば、所定時間が経過したという条件である。
これにより、ALM配信木において形成される複数のグループの大きさおよびグループの位置を動的に変更する。すなわち、ALM配信木において形成されるグループの数、各グループに対応するノードの数を動的に変更する。
本実施の形態の変形例におけるノードとしての通信端末は、図3の通信端末100である。そのため、通信端末100についての詳細な説明は繰り返さない。
(グループの形成)
次に、ALM配信木において、複数のグループを形成するための処理(以下、グループ分け処理Aという)について説明する。グループ分け処理Aは、ルートノードとしてのノード11である通信端末100が行う。なお、以下のグループ分け処理Aは、ルートノード以外の任意のノードである通信端末100が行ってもよい。
図15は、グループ分け処理Aのフローチャートである。図15において、図4のステップ番号と同じステップ番号の処理は、第1の実施の形態で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。
ステップS110Aでは、グループ生成部124が、予め定められたグループ分け条件が満たされたか否かを判定する。ここで、グループ分け条件は、例えば、所定時間が経過したという条件である。ステップS110Aにおいて、YESならば、処理はステップS111Aに移行する。一方、ステップS110Aにおいて、NOならば、再度、ステップS110Aの処理が行われる。
なお、グループ分け条件は、他の条件であってもよい。グループ分け条件は、例えば、現在の時刻が任意の時刻であるという条件であってもよい。
ステップS111Aでは、トリガメッセージ生成処理Aが行われる。トリガメッセージ生成処理Aでは、グループ生成部124が、トリガメッセージTRを生成する。生成されるトリガメッセージTRは、例えば、図5のトリガメッセージTRである。トリガメッセージ生成処理Aでは、ステップS111Aの処理が繰り返し行われる毎に、グループ生成部124が、前回とは異なるトリガメッセージTRを生成する。
例えば、前回のトリガメッセージ生成処理Aにより生成されたトリガメッセージTRが、図5のトリガメッセージTRであった場合、今回のトリガメッセージ生成処理Aでは、グループサイズGRP_SIZEの値およびSTART_INDEXの値の少なくとも一方が変更されたトリガメッセージTRが生成される。
すなわち、ステップS111Aの処理が繰り返し行われる毎に、トリガメッセージ生成処理Aでは、ALM配信木において形成される複数のグループの大きさおよびグループの位置の少なくとも一方を動的に変更したトリガメッセージTR(グループ形成データ)が生成される。つまり、ステップS111Aの処理が繰り返し行われる毎に、トリガメッセージ生成処理Aでは、ALM配信木において形成されるグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのトリガメッセージTR(グループ形成データ)が生成される。すなわち、ステップS111Aの処理が繰り返し行われる毎に、グループ生成部124により生成されるトリガメッセージTR(グループ形成データ)は変更される。
ステップS112では、第1の実施の形態で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。この処理により、トリガメッセージTRが送信される。そして、再度、ステップS110Aの処理が行われる。
すなわち、グループ分け処理Aでは、グループ分け条件が満たされる毎に、トリガメッセージTR(グループ形成データ)が生成され、当該トリガメッセージTRが子ノードへ送信される。グループ分け条件が、例えば、所定時間が経過したという条件である場合、所定時間経過毎に、前回と異なるトリガメッセージTRが、子ノードへ送信される。
そして、第1の実施の形態と同様に、ALM配信木を構成する複数のノードの各々は、図6のグループ化ノード判定処理を行う。なお、ルートノードは、図6のステップS211を行わず、ステップS212,S213のみを行うとする。
また、ALM配信木を構成する複数のノードのうち、グループルートノード(グループ化ノード)は、図7のグループ化処理を行う。
図16は、ALM配信木においてグループが形成される処理を説明するための図である。以下、図16(A)、図16(B)、図16(C)、図16(D)、図16(E)および図16(F)を参照して、ALM配信木においてグループが形成される処理を説明する。
ルートノードとしてのノード11は、図15のグループ分け処理Aを行うことにより、子ノードとしてのノード21,22へ、トリガメッセージTRを送信する(図16(A)参照)。ここで、ノード11が送信するトリガメッセージTRは、図5のトリガメッセージTRであるとする。すなわち、トリガメッセージTRが示すSTART_INDEXの値およびグループサイズGRP_SIZEの値は、それぞれ、“0”および“2”である。
この場合、ルートノードとしてのノード11は、図6のグループ化ノード判定処理を行うことにより、自ノードがグループルートノード(グループ化ノード)であると判定し、図7のグループ化処理を行う。この処理により、ノード11は、GCを、第1の実施の形態で説明したのと同様な処理により、他のノード(ノード21)へ送信する(図16(A)参照)。
そして、図16(B)に示されるように、ノード21は、第1の実施の形態で説明したのと同様な処理により、トリガメッセージTRを、子ノードとしてのノード31,32へ送信する。また、ノード11,21,31,32は、第1の実施の形態で説明したのと同様な処理により、GCを巡回させるための処理を行う。
GCの巡回により、図16(C)に示されるように、グループGP1が形成される。また、ノード31は、受信したトリガメッセージTRを、子ノードとしてのノード41,42へ送信する。
ノード41,42の各々は、図6のグループ化ノード判定処理を行うことにより、自ノードがグループルートノード(グループ化ノード)であると判定し、図7のグループ化処理を行う。この処理により、ノード41は、GCを、第1の実施の形態で説明したのと同様な処理により、他のノード(ノード51)へ送信する(図16(D)参照)。ノード42も、ノード41と同様に、GCを、第1の実施の形態で説明したのと同様な処理により、他のノード(ノード53)へ送信する(図16(D)参照)。
また、ノード41は、受信したトリガメッセージTRを、子ノードとしてのノード51,52へ送信する(図16(D)参照)。ノード42は、受信したトリガメッセージTRを、子ノードとしてのノード53,54へ送信する。
そして、図9(A)を用いて第1の実施の形態で説明したGCを巡回させるための処理により、ノード41,51,61,62,52,63,64において、GCが巡回する(図16(E)参照)。
また、ノード51,52,53,54の各々は、受信したトリガメッセージTRを、対応する子ノードへ送信する。なお、ノード51,52,53,54の子ノード(例えば、ノード61)は、最下位層ノードであるため、トリガメッセージTRを受信するのみである。
ノード41,42の各々が生成したGCの巡回により、図9(B)と同様、図16(F)に示されるように、グループGP1に加え、さらに、グループGP2,GP3が形成される。
以上の処理により、ルートノードとしてのノード11が送信したトリガメッセージTRが、ALM配信木を構成する全てのノードへ送信されるとともに、ALM配信木において、1以上のノードに対応するグループが形成される。
なお、各グループにおいては、第1の実施の形態で説明した、図11のトークン巡回処理、図13の局所改善判定処理および図14の配信木変更処理が行われる。
また、図15のグループ分け処理Aが行われることにより、ルートノードとしてのノード11が、子ノードへ送信するトリガメッセージTRが異なると、ALM配信木において形成されるグループの数、各グループに対応するノードの数も変化する。
なお、本実施の形態の変形例で行われる図7のグループ化処理のステップS314において前述したグループ化処理Nが行われることによりグループが形成されてもよい。この場合、ステップS311,S312,S313の処理およびGC巡回処理は行われない。
図17は、ALM配信木に形成されるグループの一例を示す図である。
図17(A)は、ノード11が送信するトリガメッセージTRが示すSTART_INDEXの値およびグループサイズGRP_SIZEの値が、それぞれ、“0”および“3”である場合に形成される複数のグループを示す図である。
図17(A)は、形成されたグループの例として、グループGP11,GP21,GP22,GP23,GP24を示す。グループGP21,GP22,GP23,GP24の各々のサイズは“1”である。すなわち、グループGP21,GP22,GP23,GP24の各々は、3つのノードから形成される。これは、ALM配信木の大きさ、すなわち、ALM配信木を構成するノードの数により、最下位のグループに含められるノードの数が限られるからである。
図17(B)は、ノード11が送信するトリガメッセージTRが示すSTART_INDEXの値およびグループサイズGRP_SIZEの値が、それぞれ、“1”および“2”である場合に形成される複数のグループを示す図である。
図17(B)は、形成されたグループの例として、グループGP12,GP20,GP21,GP22,GP23,GP24を示す。
START_INDEX>0の場合、最上位のグループ(例えば、グループGP12)のサイズが、グループサイズGRP_SIZEの値“2”より小さくなることが、前述した式1よりわかる。この場合、グループGP12は1つのノードで形成される。
以上説明したように、本実施の形態の変形例では、ルートノードが、所定時間経過毎に、異なるトリガメッセージTRを、子ノードへ送信する。この処理により、トリガメッセージTRが示す値によって、例えば、図16(F)、図17(A)および図17(B)のいずれかに示されるように、ALM配信木にグループが形成される。
すなわち、所定時間経過毎に、ALM配信木において形成される複数のグループの大きさおよびグループの位置が動的に変更される。すなわち、所定時間経過毎に、ALM配信木において形成されるグループの数、各グループに対応するノードの数が変更される。
ここで、例えば、図16(F)において、ノード31とノード41との間にネットワーク混雑が発生したとする。この場合、図16(F)が示すように、複数のグループが形成されている場合、当該ネットワーク混雑は、グループGP1とグループGP2との間に発生したネットワーク混雑となる。そのため、仮に、グループの大きさおよびグループの位置が固定である場合、前述した規則D1により、局所改善処理は実行されず、当該ネットワーク混雑は解消されない。
しかしながら、本実施の形態の変形例では、ALM配信木において形成される複数のグループの大きさおよびグループの位置が動的に変更される。この処理により、例えば、図17(A)または図17(B)に示されるようにグループが形成され、ノード31およびノード41が同じグループに対応するようになると、当該グループにおいてネットワーク混雑を解消するための局所改善処理が実行されるようになる。
したがって、本実施の形態の変形例では、第1の実施の形態で奏する効果に加えて、ネットワーク混雑が発生する位置に関わらず、当該ネットワーク混雑を解消することができる。すなわち、ネットワーク混雑が発生する位置に関わらず、当該ネットワーク混雑を解消することができるとともに、局所改善処理が複数個所で同時実行されるときに起こり得るALM配信木の不整合を、少ないネットワークのオーバーヘッドで、迅速に解消することができる。
なお、本実施の形態の変形例では、トリガメッセージTRにおけるグループサイズGRP_SIZEの値は、ALM配信木においてグループが形成される間は変化しない。しかしながら、これに限定されることなく、ALM配信木における任意のノードが、トリガメッセージTRを子ノードへ送信(転送)する場合に、グループサイズGRP_SIZEの値を、ある条件に基づいて変更してもよい。
この場合、グループ毎に、当該グループのサイズを異なるようにすることができる。すなわち、異なるサイズの複数のグループを形成することが可能となる。その結果、より柔軟なグループ形成ができるようになる。
(機能ブロック図)
図18は、本発明に係る通信端末100の特徴的な第1の機能構成を示すブロック図である。つまり、図18は、図3に示される通信端末100の機能のうち、本発明に関わる主要な機能を示すブロック図である。
第1の機能構成を有する通信端末100は、ALM配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末である。所定ノードは、例えば、ルートノードである。なお、所定ノードは、ルートノード以外の任意のノードであってもよい。ALM配信木を構成する複数のノードの少なくとも一部ではデータ通信が行われている。
複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。
図18に示すように、通信端末100は、生成部210と、送信部220とを備える。
生成部210は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する。グループ形成データは、例えば、トリガメッセージTRである。生成部210は、図4のグループ分け処理または図15のグループ分け処理Aを行う図3のグループ生成部124に相当する。
送信部220は、グループ形成データを、自端末に設定された送信先のノードへ送信する。送信部220は、図4または図15のステップS112の処理を行うグループ生成部124に相当する。
生成部210は、グループ分け条件が満たされた場合、グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。ここで、グループ分け条件は、例えば、所定時間が経過したという条件である。
送信部220は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。
具体的には、例えば、生成部210は、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
また、例えば、生成部210は、形成されるグループの境界に位置するノードを特定するための情報を示す前記グループ形成データを生成する。
また、例えば、生成部210は、グループに対応するノードの数がN個であり、かつ、該N個のノードにおける通信量が所定値以上となった場合、該通信量を所定値未満とするように、局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
なお、図18の生成部210および送信部220の全てまたは一部は、LSI(Large Scale Integration:大規模集積回路)等のハードウエアで構成されてもよい。また、生成部210および送信部220の全てまたは一部は、CPU等のプロセッサにより実行されるプログラムのモジュールであってもよい。
図19は、本発明に係る通信端末100の特徴的な第2の機能構成を示すブロック図である。つまり、図19は、図3に示される通信端末100の機能のうち、本発明に関わる主要な機能を示すブロック図である。
第2の機能構成を有する通信端末100は、ALM配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末である。複数のノードには、ALM配信木におけるノードの位置によって、データの送信先が予め設定されている。
図19に示すように、通信端末100は、受信部310と、判定部320と、グループ生成部330と、局所改善部340とを備える。
受信部310は、他のノードから送信されるデータであって、複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する。ここで、特定ノードは、例えば、前述したグループ化ノードである。グループ形成データは、例えば、トリガメッセージTRである。グループ形成データは、自ノードが前記特定ノードであるか否かを特定するための情報(例えば、図5の各値)を示す。
受信部310は、例えば、図3の受信部110および図6のステップS211の処理を行うグループ生成部124に相当する。
判定部320は、受信部310が受信したグループ形成データに基づいて、自ノードが特定ノードであるか否かを判定する。判定部320は、例えば、図6のステップS212の処理を行うグループ生成部124に相当する。
グループ生成部330は、判定部320により自ノードが特定ノードであると判定された場合、グループ形成データに基づいて、M個のノードからなるグループを形成する。グループ生成部330は、図6のステップS213の処理、すなわち、図7のグループ化処理を行うグループ生成部124に相当する。
局所改善部340は、グループ生成部330により形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する。局所改善部340は、例えば、図13の局所改善判定処理を行う局所改善部122に相当する。
局所改善部340は、さらに、変更必要ノードがあると判定された場合、該変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う。
具体的には、例えば、局所改善部340は、M個のノードのうちの2つのノードの間の通信量が所定値以上である場合に、2つのノードのうちの少なくともいずれか一方を変更必要ノードとして、変更必要ノードがあると判定する。
なお、図19の受信部310、判定部320、グループ生成部330および局所改善部340の全てまたは一部は、LSI(Large Scale Integration:大規模集積回路)等のハードウエアで構成されてもよい。また、受信部310、判定部320、グループ生成部330および局所改善部340の全てまたは一部は、CPU等のプロセッサにより実行されるプログラムのモジュールであってもよい。
以上、本発明における通信端末100について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
また、上記の通信端末100を構成する複数の構成要素の全てまたは一部は、ハードウエアで構成されてもよい。また、上記の通信端末100を構成する構成要素の全てまたは一部は、CPU(Central Processing Unit)等により実行されるプログラムのモジュールであってもよい。
また、上記の通信端末100を構成する複数の構成要素の全てまたは一部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されてもよい。システムLSIは、複数の構成要素を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM(Read Only Memory)およびRAM(Random Access Memory)などを含んで構成されるコンピュータシステムである。
例えば、図3において、制御部120は、1個のシステムLSIから構成されてもよい。
また、本発明は、通信端末100が備える特徴的な構成部の動作をステップとする方法として実現してもよい。また、本発明は、そのような方法に含まれる各ステップをコンピュータに実行させるプログラムとして実現してもよい。また、本発明は、そのようなプログラムを格納するコンピュータ読み取り可能な記録媒体として実現されてもよい。また、当該プログラムは、インターネット等の伝送媒体を介して配信されてもよい。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
本発明は、より高いQoSを実現することができる。そのため、本発明は、ALM技術を利用した大規模な映像配信や遠隔講義システム等で利用可能である。
100 通信端末
110,310 受信部
112,220 送信部
120 制御部
121 データ制御部
122,340 局所改善部
123 トークン制御部
124,330 グループ生成部
210 生成部
320 判定部
本発明は、通信端末および通信状態変更方法に関し、特に、ALM(Application Layer Multicast)配信木において処理を行うための通信端末および通信状態変更方法に関する。
インターネット上でALM(Application Layer Multicast)配信木を構成する複数の通信端末において映像配信等を行う場合、配信する映像の品質を維持するために、ネットワークトラフィックの動的な変化によって生じるパケットロスや遅延変動に対応する必要がある。この場合、ALM配信木を動的に再構成する必要がある。ALM配信木は、アプリケーション層のネットワーク(以下、オーバーレイネットワークという)における、各通信端末間の接続構成を示す。
図20は、ALM配信木を説明するための図である。図20(A)は、物理リンクによる物理トポロジの一例を示す図である。
図20(A)に示されるように、通信端末11,21,22,31,32,33,34は、物理リンクにより、インターネット10に接続される。図20(A)では、例えば、通信端末11が、ユニキャスト通信により、通信端末21を介して、通信端末31へ、データを送信する。また、通信端末11は、ユニキャスト通信により、通信端末22を介して、通信端末33へ、データを送信する。
図20(B)は、仮想リンクによるALMトポロジの一例を示す図である。図20(B)は、通信端末11,21,22,31,32,33,34において、図20(A)のようにデータが送信される場合のデータの経路を、仮想リンクで表現したALM配信木を示す。
図20(B)に示されるALM配信木により、例えば、通信端末11が送信したデータは、通信端末22を介して、通信端末34へ送信されることが容易に理解できる。以下においては、ALM配信木を構成する各通信端末を、ノードという。
ALM配信木は、図20(B)に示されるように、階層構造を有する。図20(B)に示されるALM配信木は、一例として、3つの階層を有する。ノード11は、第1階層のノードである。ノード21,22は、第2階層のノードである。ノード31,32,33,34は、第3階層のノードである。すなわち、ノード11は、最上位層のノードである。ノード31,32,33,34は、最下位層のノードである。
また、ALM配信木を構成する複数のノードの各々には、図20(B)に示されるように、当該ALM配信木における位置により、データの送信先が予め設定されている。例えば、第2階層の位置PS21におけるノード21のデータの送信先は、図20(B)に示されるように、第3階層のノード31,32に設定されている。データの送信先は、例えば、IP(Internet Protocol)アドレスで表現される。
また、ALM配信木を構成する各ノードのデータの送信先は、自ノードの属する階層より下位層のノードとなる。なお、ALM配信木において最下位層のノードには、データの送信先は設定されない。
ALM配信木の動的再構築方法には、集中管理サーバによってトラフィックをモニタリングして、トラフィックのバランスを考慮して再構成する方法が用いられることが多い。しかし、ALM配信木を構成するノードの数(例えば、映像配信セッションに参加する通信端末の数)が多くなると以下のような問題が発生する。
当該問題の一例は、集中管理サーバの処理負荷の増加や集中管理サーバ周辺のネットワークトラフィックの増加によって処理が追いつかないという問題である。また、当該問題の他の例は、集中管理サーバで算出された新しい配信木の構成情報を各ノードに配信する必要があるため、余分な遅延が発生するという問題である。
そのため、ノード数が多い場合にALM配信木の再構成を、各ノードの周辺情報(以下、局所情報という)だけを用い、各ノードが自律的に行う処理(以下、局所改善処理という)が行われることが望ましい。
図21は、局所改善処理を説明するための図である。
具体的には、図21は、ノード31とノード41との間のネットワークにおいて混雑(以下、ネットワーク混雑という)が発生した場合を想定して行われる処理を説明するための図である。
ここで、ネットワーク混雑とは、例えば、2つのノード間の通信量が所定値(例えば、最大通信帯域の90%の通信帯域)以上であることとする。例えば、最大通信帯域が10Mbpsである2つのノード間において、9Mbpsの通信帯域が使用された場合、ネットワーク混雑が発生したとする。すなわち、2つのノード間の通信量が9Mbps以上となった場合、ネットワーク混雑が発生したとする。
図21(A)は、ネットワーク混雑を解消するための局所改善処理として、ALM配信木におけるノード31の位置とノード52の位置とを交換する処理が行われている状態を示す。
図21(A)に示されるALM配信木は、図20(B)に示されるノード11,21,22,31,32,33,34に加え、さらに、複数のノードを含む。当該複数のノードの一部は、ノード41,42,43,44,51,52,53,54,61,62,63,64である。なお、図21(A)には、ノード33,34は示されていない。
ここで、第3階層の位置PS31におけるノード31のデータの送信先は、ノード41,42に設定されているとする。また、第5階層の位置PS52におけるノード52のデータの送信先は、ノード63,64に設定されているとする。
図21(B)は、局所改善処理が行われた後のALM配信木の構成を示す。このような局所改善処理を実行するために周辺のノード情報を得る必要がある。そのため、一般的に、各ノードは、局所改善処理を行うために必要な周辺のノード情報を事前に収集しておく。ノード情報は、例えば、データの送信先の情報である。
そのため、局所改善処理により、位置PS31におけるノード31の位置と位置PS52におけるノード52の位置とが交換された場合、図21(B)に示されるように、位置PS31におけるノード52のデータの送信先は、ノード41,42に設定される。また、位置PS52におけるノード31のデータの送信先は、ノード63,64に設定される。これにより、局所改善処理が行われた後も、最上位層のノードから送信されたデータは、最下位層のノードまで到達する。
一方、局所改善処理が分散的に行われる場合、局所改善処理が複数個所で同時に実行される可能性がある。ALM配信木において、局所改善処理が複数個所で同時に実行された場合、ALM配信木の整合性が保持できないという問題が生じる。
図22は、ALM配信木の整合性が保持できないことを説明するための図である。
図22(A)は、局所改善処理が複数個所で同時に実行されることを説明するための図である。図22(A)に示されるALM配信木は、図21(A)のALM配信木と比較して、一部のノードが示されていない点が異なる。それ以外は、図21(A)のALM配信木と同様なので詳細な説明は繰り返さない。
図22(A)において、ネットワーク混雑CNAおよびネットワーク混雑CNBが同時に発生したとする。ネットワーク混雑CNAは、ノード31とノード41との間におけるネットワーク混雑である。ネットワーク混雑CNBは、ノード52とノード64との間におけるネットワーク混雑である。
また、ネットワーク混雑CNAおよびネットワーク混雑CNBに対し、それぞれ、以下の局所改善処理Aおよび局所改善処理Bが互いに独立して同時に行われたとする。
局所改善処理Aは、位置PS31におけるノードの位置と位置PS52におけるノード位置とを交換する処理であるとする。局所改善処理Bは、位置PS52におけるノードの位置と位置PS63におけるノードの位置とを交換する処理であるとする。
ここで、図22(A)に示される位置PS31におけるノードのデータの送信先は、ノード41,42であるとする。また、位置PS52におけるノードのデータの送信先は、ノード63,64であるとする。
局所改善処理Aおよび局所改善処理Bは互いに独立して同時に行われる。そのため、例えば、局所改善処理Bにより、ノード63の位置が位置PS52となり、ノード52の位置が位置PS63の位置となったとする。この場合、局所改善処理Aが行われることにより、ノード63の位置が位置PS31となり、ノード31の位置が位置PS52の位置となったとする(図22(B)参照)。
ここで、位置PS52におけるノードのデータの送信先は、ノード63,64である。そのため、位置PS52におけるノード31は、データを位置PS31におけるノード63へ送信することになる。その結果、ノード63,41,31において、データの巡回(ループ)が発生する。
また、位置PS63におけるノード52は、データを他のノードから受信することができず、他のノードから孤立してしまうという問題が発生する。つまり、局所改善処理Aおよび局所改善処理Bが互いに独立して同時に行われた場合、ALM配信木の整合性が保持できなくなる。すなわち、ALM配信木の不整合が発生する。
そこで、非特許文献1には、局所改善処理をボトムアップ(またはトップダウン)的に逐次実行する処理(以下、逐次実行処理という)が開示されている。以下においては、局所改善処理をボトムアップ的に逐次実行する処理を、ボトムアップ的局所改善処理という。
図23は、ボトムアップ的局所改善処理を説明するための図である。ボトムアップ的局所改善処理は、局所改善処理の対象となる2つの層を、最下位層から最上位層に向かって、順次、移動させながら、行われる処理である。
図23(A)は、段CL1における局所改善処理を示す図である。段CL1は、最下位層としての第6階層と、第5階層とを含む部分である。すなわち、段CL1における局所改善処理は、最下位層としての第6階層の位置のノードと、第5階層の位置のノードとを交換する処理である。
段CL1における局所改善処理が終了すると、局所改善処理の対象となる層は、第5階層および第4階層となる。
図23(B)は、段CL2における局所改善処理を示す図である。段CL2は、第5階層と、第4階層とを含む部分である。すなわち、段CL2における局所改善処理は、第5階層の位置のノードと、第4階層の位置のノードとを交換する処理を示す。
図23(A)および図23(B)に示されるように、ボトムアップ的局所改善処理は、段CL1における局所改善処理が完全に終了しないと、次の処理(段CL2における)が開始されない。そのため、ALM配信木の整合性が保持できる。
しかし、局所改善処理の実行される位置が順番に、上位の層にあがっていくため、ネットワークの任意の場所の任意の時刻で起きるトラフィック変動に応じて、迅速にALM配信木が改善できないという課題がある。
例えば、図23(A)および図23(B)の例では、ALM配信木の上位層のノード11周辺においてネットワーク混雑が発生した場合、段CL1,CL2における局所改善処理が終了するまで、当該ネットワーク混雑に迅速に対応できない。
"Stability Oriented Overlay Multicast for Multimedia Streaming in Multiple Source Context", Baduge, T.M., Ikeda, K, Yamaguchi, H., Higashino, T., appears in: proceedings of ICC '08, IEEE International Conference on Communications, 2008, Publication Date: 19-23 May 2008, page(s): 5708 - 5714
しかしながら、非特許文献1に記載の技術では、ALM配信木において、複数の局所改善処理を行う必要がある場合、複数の局所改善処理が終了するまでに時間がかかるという問題がある。
本発明は、上述の問題点を解決するためになされたものであって、その目的は、ALM配信木において、複数の局所改善処理を迅速に行うことを可能とする通信端末等を提供することである。
上述の課題を解決するために、この発明のある局面に従う通信端末は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末である。複数のノードの少なくとも一部ではデータ通信が行われている。複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。所定ノードとしての通信端末は、複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する生成部と、グループ形成データを、自端末に設定された送信先のノードへ送信する送信部とを備える。生成部は、さらに、グループ分け条件が満たされた場合、グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。送信部は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。生成部は、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
すなわち、生成部は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する。送信部は、グループ形成データを、自端末に設定された送信先のノードへ送信する。生成部は、グループ分け条件が満たされた場合、グループ形成データを、グループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。送信部は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。グループ形成データは、2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのデータである。
複数のノードには、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。そのため、グループ形成データが、所定ノードから、設定された送信先のノードへ送信されることにより、各ノードへグループ形成データが送信される。この処理により、ALM配信木において、複数のグループが形成される。形成された各グループでは、局所改善処理が行われる。
したがって、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
また、グループ分け条件は、所定時間が経過したという条件であってもよい。
これにより、所定時間が経過する毎に、グループ形成データがグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更される。変更されたグループ形成データは、設定された送信先のノードへ送信される。そのため、所定時間が経過する毎に、グループの数および各グループに対応するノードの数の少なくとも一方が変更される。したがって、所定時間が経過する毎に、ALM配信木において形成されるグループの数、各グループに対応するノードの数が変更される。
また、生成部は、形成されるグループの境界に位置するノードを特定するための情報を示すグループ形成データを生成してもよい。
また、生成部は、グループに対応するノードの数がN個であり、かつ、該N個のノードにおける通信量が所定値以上となった場合、該通信量を所定値未満とするように、局所改善処理が行われるグループを形成させるためのグループ形成データを生成してもよい。
これにより、通信量が所定値以上となった場合、該通信量を所定値未満とするように、局所改善処理が行われる。
また、所定ノードは、ルートノードであってもよい。
また、所定ノードとしての通信端末は、さらに、自端末に対応するグループに対応するノードの数がN個である場合、該N個のノードの各々が順次受信するためのトークンを送信するトークン制御部を備え、トークン制御部は、トークンを受信したノードが該トークンを保持している期間のみ、該トークンを保持しているノードが局所改善処理を行うことを可能とする該トークンを送信してもよい。
これにより、1つのグループにおいて、同時に実行できる局所改善処理を1つに制限することができる。
この発明の他の局面に従う通信端末は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末である。複数のノードには、ALM配信木におけるノードの位置によって、データの送信先が予め設定されている。通信端末は、他のノードから送信されるデータであって、複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する受信部を備える。グループ形成データは、自ノードが特定ノードであるか否かを特定するための情報を示す。通信端末は、さらに、受信したグループ形成データに基づいて、自ノードが特定ノードであるか否かを判定する判定部と、判定部により自ノードが特定ノードであると判定された場合、グループ形成データに基づいて、M個のノードからなるグループを形成するグループ生成部と、グループ生成部により形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する局所改善部とを備える。局所改善部は、さらに、変更必要ノードがあると判定された場合、変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う。
すなわち、自ノードを含むM個のノードからなるグループを、ALM配信木を構成する複数のノードのうちの特定ノードに形成させるためのグループ形成データが受信される。自ノードが特定ノードである場合、M個のノードからなるグループが形成される。形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かが判定される。変更必要ノードがある場合、変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理が行われる。
したがって、形成されたグループにおいて、データの送信先の変更が必要なノードである変更必要ノードがある場合、局所改善処理が行われる。仮に、形成されたグループが複数である場合、複数のグループ各々において、変更必要ノードがある場合、各グループにおいて局所改善処理が行われる。この場合、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
また、局所改善処理は、変更必要ノードがデータの送信先に設定されているノードのデータの送信先の少なくとも一部を他のノードに変更し、他のノードがデータの送信先に設定されているノードのデータの送信先を他のノードに設定されたデータの送信先に変更する処理を含んでもよい。
また、変更必要ノードおよび他のノードの各々は、M個のノードのうち、最上位のノードであるグループルートノードを除いた複数のノードのいずれかのノードであってもよい。
また、複数のノードのいずれかのノードとしての通信端末は、さらに、自端末に対応するグループに対応するノードの数がM個である場合、該M個のノードの各々が順次受信するためのトークンを送信するトークン制御部を備え、トークン制御部は、トークンを受信したノードが該トークンを保持している期間のみ、該トークンを保持しているノードが局所改善処理を行うことを可能とする該トークンを送信してもよい。
これにより、1つのグループにおいて、同時に実行できる局所改善処理を1つに制限することができる。
また、局所改善部は、M個のノードのうちの2つのノードの間の通信量が所定値以上である場合に、2つのノードのうちの少なくともいずれか一方を変更必要ノードとして、変更必要ノードがあると判定してもよい。
これにより、通信量が所定値以上となった場合、局所改善処理が行われる。
この発明のさらに他の局面に従う通信状態変更方法は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末が行う通信状態変更方法である。複数のノードの少なくとも一部ではデータ通信が行われている。複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。通信状態変更方法は、複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する生成ステップと、グループ形成データを、自端末に設定された送信先のノードへ送信する送信ステップとを備える。生成ステップでは、グループ分け条件が満たされた場合、グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更し、送信ステップでは、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信し、生成ステップでは、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
すなわち、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データが生成される。グループ形成データは、自端末に設定された送信先のノードへ送信される。グループ分け条件が満たされた場合、グループ形成データは、グループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更される。グループ形成データが変更される毎に、変更後のグループ形成データが、自端末に設定された送信先のノードへ送信される。グループ形成データは、2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのデータである。
複数のノードには、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。そのため、グループ形成データが、所定ノードから、設定された送信先のノードへ送信されることにより、各ノードへグループ形成データが送信される。この処理により、ALM配信木において、複数のグループが形成される。形成された各グループでは、局所改善処理が行われる。
したがって、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
この発明のさらに他の局面に従う通信状態変更方法は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末が行う通信状態変更方法である。複数のノードには、ALM配信木におけるノードの位置によって、データの送信先が予め設定されている。通信状態変更方法は、他のノードから送信されるデータであって、複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する受信ステップを備える。グループ形成データは、自ノードが特定ノードであるか否かを特定するための情報を示す。通信状態変更方法は、さらに、受信したグループ形成データに基づいて、自ノードが特定ノードであるか否かを判定する判定ステップと、判定ステップにより自ノードが特定ノードであると判定された場合、グループ形成データに基づいて、M個のノードからなるグループを形成するグループ生成ステップと、グループ生成ステップにより形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する局所改善ステップとを備える。局所改善ステップでは、変更必要ノードがあると判定された場合、該変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う。
すなわち、自ノードを含むM個のノードからなるグループを、ALM配信木を構成する複数のノードのうちの特定ノードに形成させるためのグループ形成データが受信される。自ノードが特定ノードである場合、M個のノードからなるグループが形成される。形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かが判定される。変更必要ノードがある場合、変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理が行われる。
したがって、形成されたグループにおいて、データの送信先の変更が必要なノードである変更必要ノードがある場合、局所改善処理が行われる。仮に、形成されたグループが複数である場合、複数のグループ各々において、変更必要ノードがある場合、各グループにおいて局所改善処理が行われる。この場合、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
この発明のさらに他の局面に従う通信状態変更方法は、ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードの少なくとも一部で行われるデータ通信の通信状態を動的に変更する通信状態変更方法である。複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。通信状態変更方法は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成するための処理を行うステップと、グループ分け条件が満たされる毎に、形成されているグループの数および各グループに対応するノードの数の少なくとも一方を変更するための処理を行うステップと、2以上のノードに対応する複数のグループのうちの少なくとも2つのグループの各々において、ノードの位置の交換が必要な2つのノードがある場合、2つのノードの位置を交換する局所改善処理を行うステップとを備える。
すなわち、ALM配信木を構成する複数のノードにおいて、複数のグループが形成される。2以上のノードに対応する複数のグループのうちの少なくとも2つのグループの各々において、ノードの位置の交換が必要なノードである変更必要ノードがある場合、変更必要ノードの位置と、該変更必要ノードに対応するグループに対応する他のノードの位置とを交換する局所改善処理が行われる。
したがって、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
本発明により、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
図1は、第1の実施の形態の概念を説明するための図である。 図2は、第1の実施の形態において、通信端末としての複数のノードから構成されるALM配信木を示す図である。 図3は、通信端末の構成を示すブロック図である。 図4は、グループ分け処理のフローチャートである。 図5は、一例としてのトリガメッセージを示す図である。 図6は、グループ化ノード判定処理のフローチャートである。 図7は、グループ化処理のフローチャートである。 図8は、一例としてのグループ化用メッセージを示す図である。 図9は、GC巡回処理を説明するための図である。 図10は、一例としての巡回済を示す図である。 図11は、トークン巡回処理のフローチャートである。 図12は、一例としてのトークンを示す図である。 図13は、局所改善判定処理のフローチャートである。 図14は、配信木変更処理のフローチャートである。 図15は、グループ分け処理Aのフローチャートである。 図16は、ALM配信木においてグループが形成される処理を説明するための図である。 図17は、ALM配信木に形成されるグループの一例を示す図である。 図18は、本発明に係る通信端末の特徴的な第1の機能構成を示すブロック図である。 図19は、本発明に係る通信端末の特徴的な第2の機能構成を示すブロック図である。 図20は、ALM配信木を説明するための図である。 図21は、局所改善処理を説明するための図である。 図22は、ALM配信木の整合性が保持できないことを説明するための図である。 図23は、ボトムアップ的局所改善処理を説明するための図である。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
(本発明の概要)
図1は、第1の実施の形態の概念を説明するための図である。図1(A)は、第1の実施の形態の処理により、複数のノードから構成されるALM配信木において、複数のグループ(グループGP1,GP2,GP3)が形成された状態を示す図である。なお、グループを形成するための処理は後述する。
本実施の形態では、ALM配信木において形成された複数のグループに対し、以下の規則D1および規則D2を定める。以下の規則D1,D2は、ALM配信木を構成する各ノードに予め通知されている。したがって、ALM配信木を構成する各ノードは、規則D1,D2に従った処理を行う。
規則D1は、異なる2つのグループ間において2つのノードの位置を交換する局所改善処理を禁止するという規則である。
規則D1により、例えば、グループGP1に対応するノード31の位置と、グループGP2に対応するノード52の位置とを交換する局所改善処理は実行されない。これにより、図22(A)で説明したように、ネットワーク混雑CNAおよびネットワーク混雑CNBが同時に発生した場合でも、前述した局所改善処理Aは実行されず、前述した局所改善処理Bのみが実行されることになる。
これにより、図22(A)および図22(B)で説明したように、局所改善処理Aおよび局所改善処理Bが同時に行われた場合における、ALM配信木の不整合の発生を防止できる可能性を高めることができる。
しかし、これだけでは同一グループ内で同時に複数の局所改善処理が行われる可能性があり、ALM配信木の不整合の発生を完全に防止できない。
そこで、本発明では、さらに、規則D2を定める。
規則D2は、各グループ内で同時に実行できる局所改善処理を1つに制限するという規則である。規則D1および規則D2により、ALM配信木の不整合の発生を完全に防止することができる。
具体的な処理としては、各グループにおいて、トークンを巡回させ、トークンを受信したノードが、当該トークンを保持している期間のみ、当該トークンを保持しているノードに対し局所改善処理の実行権を与える。以下においては、トークンを、トークンTKともいう。
図1(B)は、トークンTKを巡回させている状態を示す図である。図1(B)では、図1(A)のグループGP2においてトークンTKを巡回させている状態を示すが、他のグループにおいても、グループGP2と同様にトークンTKが巡回する。なお、トークンTKを巡回させるための処理は後述する。
(ALM配信木の構成)
図2は、第1の実施の形態において、通信端末としての複数のノードから構成されるALM配信木を示す図である。なお、図2に示されるALM配信木は、一般的なALM配信木構築手法によって構築されたものとする。
図2に示されるALM配信木は、一例として、6つの階層を有する。例えば、ノード11は、第1階層のノードである。以下においては、第1階層のノードを、ルートノードという。すなわち、ALM配信木の最上位にあるノードがルートノードである。すなわち、ノード11は、ルートノードである。
例えば、ノード21,22は、第2階層のノードである。例えば、ノード31,32は、第3階層のノードである。例えば、ノード61,62,63,64は、第6階層のノードである。ノード61,62,63,64は、最下位層のノードである。
以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層の1つ上の階層のノードを、親ノードまたは直接上位ノードという。例えば、図2のノード11は、ノード21,22の親ノード(直接上位ノード)である。
また、以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層より上の階層のノードを、上位ノードという。例えば、図2のノード11,21,31は、ノード41またはノード42の上位ノードである。
また、以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層の1つ下の階層のノードを、直接下位ノードまたは子ノードという。例えば、図2のノード21,22は、ノード11の子ノード(直接下位ノード)である。
また、以下においては、ALM配信木におけるある階層のノードに対して、当該ある階層より下の階層のノードを、下位ノードという。例えば、図2のノード21,22,31,32,41,42,43,44,51,52,53,54,61,62,63,64は、ノード11の下位ノードである。例えば、図2のノード41,42,51,52,53,54,61,62,63,64は、ノード31の下位ノードである。
また、以下においては、ALM配信木における最下位層のノードを、最下位層ノードまたは葉ノードという。すなわち、最下位層ノードまたは葉ノードは、子ノードを有さない。
図2に示されるALM配信木を構成する各ノードには、当該ALM配信木における位置により、データの送信先が予め設定されている。つまり、ALM配信木を構成する複数のノードには、ALM配信木におけるノードの位置によって、ルートノードから送信されるデータが複数のノードのうちルートノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。
例えば、位置PS11におけるノード11のデータの送信先は、ノード21,22に設定されている。例えば、位置PS31におけるノード31のデータの送信先は、ノード41,42に設定されている。
また、ALM配信木を構成する各ノードには、ノードを特定するためのID(以下、ノードIDという)が設定される。ノードIDは、一例として、Tm(m:自然数)として表現されるとする。ノードIDは、同一の階層に複数のノードが存在する場合、最も左側のノードから順に、mの値が大きくなるとする。例えば、ノード51,52,53,54のノードIDは、それぞれ、T51,T52,T53,T54であるとする。
図2のノード11,21,22,31,32のノードIDは、それぞれ、T11,T21,T22,T31,T32であるとする。また、図2のノード41,42,43,44,51,52,53,54のノードIDは、それぞれ、T41,T42,T43,T44,T51,T52,T53,T54であるとする。また、図2のノード61,62,63,64のノードIDは、それぞれ、T61,T62,T63,T64であるとする。
図2に示される各ノードは、以下の通信端末100の構成を有する。
(装置の構成)
図3は、通信端末100の構成を示すブロック図である。図3に示されるように、通信端末100は、受信部110と、制御部120と、送信部112とを備える。
受信部110は、他の通信端末(ノード)から、各種データを受信する。
制御部120は、データ制御部121と、局所改善部122と、トークン制御部123と、グループ生成部124とを含む。
送信部112は、外部(例えば、データ制御部121)からの指示により、データを送信する機能を有する。
データ制御部121は、他の通信端末(ノード)から受信したデータDTを複製したデータDTを、送信部112を利用して、外部の通信端末(ノード)へ送信する。また、データ制御部121は、データDTを受信する毎に、受信したデータDTのデータ量と、受信したデータDTを送信したノードの情報を、局所改善部122へ通知する。これにより、局所改善部122は、自端末(自ノード)と他のノードとの通信量を常に把握することができる。
グループ生成部124は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成する機能を有する。
トークン制御部123は、トークンTKを生成する機能を有する。また、トークン制御部123は、外部から受信したトークンTKを、所定時間(例えば、1秒)保持した後、当該トークンTKを他のノードへ送信する。
局所改善部122は、詳細は後述するが、局所改善処理を行う必要があるか否かを判定する。局所改善部122は、局所改善処理を行う必要があると判定した場合、後述する局所改善メッセージIPMを、対象となるノードへ送信する。また、局所改善部122は、後述する局所改善メッセージIPMを受信することにより、局所改善処理を行う。
なお、各部が行う処理の詳細な説明は後述する。
(グループの形成)
次に、構築済みのALM配信木において、非集中処理によって複数のグループを形成するための処理(以下、グループ分け処理という)について説明する。グループ分け処理は、ルートノードとしてのノード11である通信端末100が行う。なお、以下のグループ分け処理は、ルートノード以外の任意のノードである通信端末100が行ってもよい。
図4は、グループ分け処理のフローチャートである。
ステップS111では、グループ生成部124が、トリガメッセージTRを生成する。
図5は、一例としてのトリガメッセージTRを示す図である。図5において、「START_INDEX」は、グループ化ノードを決定するための値を示す。グループ化ノードは、グループを形成するための処理を行うノードである。START_INDEXの値が“0”の場合、少なくとも最上位層のノードとしてのルートノードは、グループ化ノードとなる。トリガメッセージTRは、特定ノードとしてのグループ化ノードに、グループを形成させるためのグループ形成データである。
図5において、「GRP_SIZE」とは、トリガメッセージTRにより生成するグループの大きさ(以下、グループサイズという)を示す。グループサイズGRP_SIZEの値がk(自然数)である場合、ALM配信木において、グループ化ノードから、下位ノードの方向へ、k個のホップで到達可能な全てのノードを含むグループが、グループサイズGRP_SIZEにより生成されるグループとなる。なお、1つのホップにより、あるノードから、当該ノードの子ノードまたは親ノードに到達するものとする。
例えば、グループ化ノードがノード11であり、グループサイズGRP_SIZEが“2”であるとする。この場合、図2のALM配信木において、ノード11から、下位ノードの方向へ、2つのホップで到達可能なノードは、ノード21,31,32,22である。この場合、ノード21,31,32,22により、1つのグループが形成される。
図5において、「HOP_COUNT」とは、ホップの回数をカウントするためのカウンタである。カウンタHOP_COUNTの値は、トリガメッセージTRが、あるノードから、下位ノードの方向へ、1つのホップが行われる毎に、“1”インクリメントされる。また、カウンタHOP_COUNTの値は、トリガメッセージTRが、あるノードから、上位ノードの方向へ、1つのホップが行われる毎に、“1”デクリメントされる。なお、カウンタHOP_COUNTの初期値は“0”である。
再び、図4を参照して、ステップS112では、グループ生成部124が、送信部112を利用して、生成したトリガメッセージTRを、自端末に設定されたデータの送信先へ送信する。なお、トリガメッセージTRの送信先が子ノードである場合、グループ生成部124は、トリガメッセージTRに示されるカウンタHOP_COUNTの値を“1”インクリメントしたトリガメッセージTRを、当該子ノードへ送信する。
ここで、自端末に設定されたデータの送信先は、子ノードとしてのノード21,22であるとする。この場合、カウンタHOP_COUNTの値が“1”インクリメントされたトリガメッセージTRが、ノード21,22へ送信される。
以下においては、トリガメッセージTRを受信したノードを、トリガメッセージ受信ノードという。
ALM配信木を構成する複数のノードのうち、最下位層ノード以外のトリガメッセージ受信ノードは、以下のトリガメッセージ転送処理を行う。
トリガメッセージ転送処理では、トリガメッセージ受信ノード(例えば、ノード21)が、受信したトリガメッセージTRを、自ノードに設定されたデータの送信先となるノード(例えば、ノード31,32)へ送信する。なお、トリガメッセージTRの送信先が子ノードである場合、トリガメッセージ受信ノードは、トリガメッセージTRに示されるカウンタHOP_COUNTの値を“1”インクリメントしたトリガメッセージTRを、当該子ノードへ送信する。
最下位層ノード以外の各ノードにおいて、前述したトリガメッセージ転送処理が行われることにより、ルートノードとしてのノード11から送信されたトリガメッセージTRは、図2のALM配信木を構成する複数のノードへ送信される。この場合、例えば、最下位層ノードであるノード61が受信したトリガメッセージTRが示すカウンタHOP_COUNTの値は“5”である。
(グループ化ノードの判定)
また、図2のALM配信木を構成する複数のノードの各々は、他の処理とは独立して、以下のグループ化ノード判定処理を行う。
図6は、グループ化ノード判定処理のフローチャートである。
ステップS211では、グループ生成部124が、他のノードから、トリガメッセージTRを受信したか否かを判定する。ステップS211において、YESならば、処理はステップS212に移行する。一方、ステップS211において、NOならば、再度、ステップS211の処理が行われる。なお、ルートノード(例えば、ノード11)は、ステップS211の処理を行わず、ステップS212の処理から開始するとする。
ここでは、トリガメッセージTRを受信したとして、処理はステップS212に移行する。
ステップS212では、グループ生成部124が、当該グループ生成部124を含む自ノード(通信端末)が、グループ化ノードであるか否かを判定する。グループ化ノードは、グループを形成するための後述する処理を行うノードである。
自ノードがグループ化ノードであるか否かは、以下の式1により判定される。
(HOP_COUNT−START_INDEX)%(GRP_SIZE+1)…式1
式1は、(HOP_COUNT−START_INDEX)を(GRP_SIZE+1)で除算した余りを算出する式である。なお、式1では、START_INDEX<GRP_SIZE+1が満たされるとする。式1における、HOP_COUNT、START_INDEXおよびGRP_SIZEの各値は、受信したトリガメッセージTRが示す。
具体的には、グループ生成部124は、式1で算出される値が“0”である場合、自ノードがグループ化ノードであると判定する。グループ生成部124は、式1で算出される値が“0”でない場合、自ノードがグループ化ノードでないと判定する。
すなわち、グループ生成部124は、受信したグループ形成データとしてのトリガメッセージTRが示す各値に基づいて、自ノードが特定ノード(グループ化ノード)であるか否かを判定する。つまり、グループ生成部124は、受信したグループ形成データとしてのトリガメッセージTRに基づいて、自ノードが特定ノード(グループ化ノード)であるか否かを判定する。
ステップS212において、YESならば処理はステップS213に移行する。一方、ステップS212において、NOならば、再度、ステップS211の処理が行われる。
ここで、図2のノード11が、前述のグループ分け処理により、トリガメッセージTRを、データの送信先のノードへ送信したとする。また、グループ化ノード判定処理を行っているノード(通信端末)は、ノード41であるとする。また、ノード41が受信したトリガメッセージTRは、HOP_COUNT“3”、START_INDEX“0”、GRP_SIZE“2”を示すとする。
この場合、式1により得られる値は“0”となる。この場合、ノード41は、自ノードがグループ化ノードであると判定する。すなわち、ステップS212において、YESと判定され、処理はステップS213に移行する。
なお、自ノードがグループ化ノードであるか否かの判定方法は、上記式1を用いた方法に限定されず、他の方法であってもよい。当該他の方法は、例えば、HOP_COUNT、START_INDEXおよびGRP_SIZEのうちの2つを用いた、式1と異なる式を用いた方法である。
ステップS213では、グループ化ノード(通信端末100)に含まれるグループ生成部124が、グループ化処理を実行する。すなわち、グループ化処理は、グループ化ノードにより実行される。グループ化処理は、他の処理とは独立して行われる処理である。以下においては、グループ化ノードを、グループルートノードともいう。
図7は、グループ化処理のフローチャートである。
ステップS311では、グループ生成部124が、前述のグループ化ノード判定処理により受信したトリガメッセージTRが示す値の一部を用いて、グループ化用メッセージGCを生成する。
図8は、一例としてのグループ化用メッセージGCを示す図である。以下においては、グループ化用メッセージGCを、単に、GCともいう。図8において、「STARTER_ID」とは、グループルートノードのノードIDである。例えば、グループルートノードが、ノード41である場合、STARTER_IDは“T41”に設定される。
「GRP_SIZE」は、図5で説明したので詳細な説明は繰り返さない。GCに示されるGRP_SIZEの値は、グループルートノードが受信したトリガメッセージTRが示すGRP_SIZEの値に設定される。
図8において、「G_HOP_COUNT」は、ホップの回数をカウントするためのカウンタである。カウンタG_HOP_COUNTの値は、GCが、あるノードから、下位ノードの方向へ、1つのホップが行われる毎に、“1”インクリメントされる。また、カウンタG_HOP_COUNTの値は、GCが、あるノードから、上位ノードの方向へ、1つのホップが行われる毎に、“1”デクリメントされる。なお、カウンタG_HOP_COUNTの初期値は“0”である。
図8において、「PASSED_IDS」は、GCを受信したノードを示す通過ノード情報である。GCを受信したノードは、自ノードのノードIDを、当該GCの通過ノード情報PASSED_IDSの項目に追記して、他のIDへ転送する。
すなわち、GCは、トリガメッセージTRが示すGRP_SIZEの値を用いて生成される。つまり、GCは、トリガメッセージTRに基づいて生成される。
また、グループ化用メッセージGCには、以下の規則P1〜P4が記載される。
規則P1:G_HOP_COUNT<GRP_SIZEが成立し、かつ、自ノードがグループルートノードである場合、または、自ノードが受信したGCの送信元のノードが自ノードの親ノードである場合、ノードIDが示す数字が最も小さい当該ノードIDの子ノードへ、生成したGCまたは受信したGCを送信(転送)する。なお、GCを送信する際に、当該GCの通過ノード情報PASSED_IDSの項目に、自ノードのノードIDを追記する。
規則P2:G_HOP_COUNT=GRP_SIZEが成立し、かつ、自ノードが受信したGCの送信元のノードが自ノードの親ノードである場合、当該GCを、親ノードへ送信(転送)する。なお、GCを送信する際に、当該GCの通過ノード情報PASSED_IDSの項目に、自ノードのノードIDを追記する。
規則P3:自ノードが受信したGCの送信元のノードが自ノードの子ノードであり、当該GCを送信してない子ノードがある場合、通過ノード情報PASSED_IDSが示すノードID以外のノードIDであって、ノードIDが示す数字が最も小さい当該ノードIDの子ノードへ、当該GCを送信(転送)する。
規則P4:自ノードが受信したGCの送信元のノードが自ノードの子ノードであり、当該GCを送信してない子ノードがない場合、当該GCを、親ノードへ送信(転送)する。
なお、GCを送信してない子ノードがなく、かつ、GCを受信しているノードがグループルートノードである場合(自ノードのノードID=STARTER_ID)、後述するGC巡回処理を終了する。すなわち、グループルートノードが、巡回済GCを受信した場合、後述するGC巡回処理を終了する。巡回済GCは、子ノードへGCを送信したグループルートノードに対応するグループに対応する、グループルートノード以外の全てのノードを経由したGCである。
再び、図7を参照して、ステップS312では、グループ化用メッセージの送信が行われる。具体的には、グループ生成部124が、送信部112を利用して、GCに記載されている前述した規則P1に従って、生成したGCを、子ノードへ送信する。
ここで、ステップS312の処理を行うグループルートノードは、ノード41であるとする。また、生成されたGCが示す、STARTER_ID、GRP_SIZE、G_HOP_COUNTおよびPASSED_IDSは、図8に示される情報または数値を示すとする。
この場合、グループルートノードとしてのノード41は、規則P1に従って、ノードIDが示す数字が最も小さい当該ノードIDの子ノードであるノード51へ、GCを送信する。この場合、ノード51へ送信されるGCにはノード41のノードID“T41”がノード41により追記される。
なお、ノード41が子ノードであるノード51へGCを送信する場合、ノード41は、GCが示すG_HOP_COUNTの値を“1”インクリメントしたGCを、ノード51へ送信する。
ステップS313では、グループ生成部124が、前述した巡回済GCを受信したか否かを判定する。ステップS313において、YESならば、処理はステップS314に移行する。一方、ステップS313において、NOならば、再度、ステップS313の処理が行われる。
(GCの巡回)
次に、グループルートノードが生成したGCが各ノードを巡回するGC巡回処理について説明する。なお、GCを受信したノードは、当該GCに記載される前述の規則P1〜P4のうち、当該ノードの状況に対応する規則に従った処理を行う。
図9は、GC巡回処理を説明するための図である。本実施の形態では、一例として、グループルートノードとしてのノード41が、GCをノード51へ送信したとして、GC巡回処理を説明する。図9(A)は、GCが各ノードを巡回する様子を示す図である。以下、図9(A)を参照しながら、GC巡回処理について説明する。なお、ノード41がノード51へ送信するGCには、ノード41により、ノードID“T41”が追記されているとする。
なお、以下のGC巡回処理において、各ノードは、GCを子ノードへ送信する際に、カウンタG_HOP_COUNTの値を“1”インクリメントする。また、GC巡回処理において、各ノードは、GCを親ノードへ送信する際に、カウンタG_HOP_COUNTの値を“1”デクリメントする。
GC巡回処理において、まず、ノード51は、規則P1に従って、受信したGCを、ノード61へ送信する。この場合、ノード61へ送信されるGCにはノード51のノードID“T51”がノード51により追記される。
ノード61は、規則P2に従って、受信したGCをノード51へ送信する。この場合、ノード51へ送信されるGCにはノード61のノードID“T61”がノード61により追記される。
ノード51は、受信したGCを、規則P3に従って、受信したGCをノード62へ送信する。
ノード62は、規則P2に従って、受信したGCをノード51へ送信する。この場合、ノード51へ送信されるGCにはノード62のノードID“T62”がノード62により追記される。
そして、ノード51は、規則P4に従って、受信したGCをノード41へ送信する。そして、ノード41は、規則P3に従って、受信したGCをノード52へ送信する。
上記のような処理が、さらに、ノード52,63,64の各々で行われることにより、最終的に、グループルートノードとしてのノード41は、ノード52からGC(巡回済GC)を受信する。そして、ノード41は、規則P4に従って、GC巡回処理を終了させる。この場合、グループルートノードとしてのノード41が受信したGCは、巡回済GCである。
また、この場合、グループルートノードとしてのノード41は、巡回済GCを受信したことになる。この場合、図7のステップS313において、YESと判定され、処理はステップS314に移行する。
ステップS314では、詳細は後述するが、グループ生成部124が、受信した巡回済GCに基づいて、グループを形成する。
図10は、一例としての巡回済GCを示す図である。図10に示される通過ノード情報PASSED_IDSは、通過したノードのノードIDとして、T41,T51,T61,T62,T52,T63,T64を示す。すなわち、図10に示される通過ノード情報PASSED_IDSは、グループルートノードとしてのノード41の全ての下位ノードの各々のノードIDが示される。
これにより、図10に示される巡回済GCから、ノードIDが、T41,T51,T61,T62,T52,T63,T64である、全てのノードに送信されたことがわかる。なお、通過ノード情報PASSED_IDSが示す複数のノードIDには、重複するノードIDがないことが、規則P1〜P4により保証される。
この場合、図10の巡回済GCを受信したグループルートノードとしてのノード41は、当該巡回済GCの通過ノード情報PASSED_IDSが示す複数のノードIDにそれぞれ対応する複数のノードを含む1つのグループを形成する(S314)。
具体的には、グループルートノードのグループ生成部124が、グループ情報を、巡回済GCが示す複数のノードIDにそれぞれ対応する複数のノードの各々へ送信する。これによりグループが形成される。ここで、グループ情報は、グループ特定情報とノード情報とが示される。グループ特定情報は、グループを特定する情報である。グループ特定情報は、例えば、グループの番号を示す。ノード情報は、巡回済GCが示す複数のノードIDを示す。
グループルートノードからグループ情報を受信した複数のノードの各々は、グループ特定情報が示すグループ番号と、ノード情報が示す複数のノードIDとを参照することにより、自ノードが対応する(属する)グループと、当該グループに含まれる複数のノードとを知ることができる。これによりグループが形成される。すなわち、グループ生成部124は、巡回済GCを用いてグループを形成する。
なお、ステップS314におけるグループの形成処理は、上記処理に限定されず、他の処理であってもよい。例えば、GCおよび巡回済GCを使用せずに、グループが形成されてもよい。以下においては、GCおよび巡回済GCを使用せずに、グループを形成する処理を、グループ化処理Nという。
ステップS314においてグループ化処理Nが行われる場合、図7のグループ化処理では、ステップS311,S312,S313の処理は行われず、ステップS314のみ行われる。この場合、GC巡回処理は行われない。
グループ化処理Nでは、グループルートノードのグループ生成部124が、受信したトリガメッセージTR(グループ形成データ)を用いてグループを形成する。
具体的には、グループ化処理Nにおいて、グループルートノードのグループ生成部124は、自ノードの階層より下の階層であって、トリガメッセージTRが示すGRP_SIZEの値分の階層の各下位ノードへ、グループ情報を送信することによりグループを形成する。グループ情報は、グループ特定情報とノード情報とが示される。
なお、この場合、グループルートノードは、事前の通信等により、自ノードの階層より下位の階層の各ノードのノードIDを予め取得しているとする。この場合、グループ情報が示すノード情報は、前述のノード情報と異なり、グループルートノードのノードIDおよび当該グループ情報の送信先の各ノードのノードIDを示す。グループ特定情報は、前述したグループ特定情報と同じである。
ここで、一例として、グループルートノードはノード41であるとする。また、トリガメッセージTRが示すGRP_SIZEの値は“2”であるとする。この場合、自ノード(グループルートノード)の階層は、第4階層である。また、この場合、前述した、GRP_SIZEの値分の階層は、2つの階層である。すなわち、自ノードの階層より下の階層であって、トリガメッセージTRが示すGRP_SIZEの値分の階層は、第5階層および第6階層である。
すなわち、この場合、ノード41のグループ生成部124は、第5階層および第6階層の各ノードへ、グループ情報を送信することによりグループを形成する。
ここで、ノード11およびノード42は、グループルートノードであるとする。また、グループルートノードとしてのノード41が行った図6のグループ化ノード判定処理および図7のグループ化処理を、ノード11およびノード42の各々が行ったとする。また、GCを受信した各ノードが、前述したGC巡回処理を行ったとする。この場合、ALM配信木を構成する複数のノードにおいて、複数のグループが形成される。なお、前述のグループ化処理Nが行われる場合、GC巡回処理は行われない。
図9(B)は、形成された複数のグループの一例を示す図である。グループGP2は、グループルートノードとしてのノード41が図10の巡回済GCを受信することにより形成されたグループである。なお、前述のグループ化処理Nが行われる場合、グループGP2は、グループ化処理Nにより形成されたグループである。
グループGP1は、グループルートノードとしてのノード11が、ステップS314の処理を行うことにより、形成されたグループである。グループGP3は、グループルートノードとしてのノード42が、ステップS314の処理を行うことにより、形成されたグループである。
図9(B)に示されるように、グループルートノードとしてのノード41,42は、対応するグループの境界に位置するノードである。
なお、規則P1,3では、子ノードへGCを送信する場合、ノードIDが示す数字が最も小さい当該ノードIDの子ノードへGCを送信するようにしていた。しかしながら、これに限定されることなく、ノードIDが示す数字が最も大きい当該ノードIDの子ノードへGCを送信してもよい。すなわち、ノードIDが示す数字が大きい順に、GCの送信先となる子ノードを選択してもよい。また、GCの送信先となる子ノードを無作為に選択してもよい。
なお、上記のように、GCを巡回させることなく、隣接ノードに問い合わせることによってノードIDの収集を行ってもよいし、複数ホップ先までのノードにノードIDを問い合わせてもよい。
なお、上記のグループ形成手法において、集中処理法によって(集中管理サーバによって)グループを形成し、その情報を各グループに散布してもよい。また、非集中処理、集中処理が混在する手法によってグループ形成を行ってもよい。
(トークンの巡回)
次に、図1(B)で説明したトークンTKを、グループ内で巡回させるための処理(以下、トークン巡回処理という)について説明する。トークン巡回処理は、前述した巡回済GCを受信したグループルートノードとしての通信端末100が行う。ここでは、ノード41が、巡回済GCを受信したグループルートノードであるとする。
なお、形成されたグループに対応するノードの数が1個である場合、当該グループにおいてトークン巡回処理は行われない。つまり、トークン巡回処理は、形成されたグループに対応するノードの数が2個以上である場合に行われる。
図11は、トークン巡回処理のフローチャートである。
ステップS411では、トークン制御部123が、巡回済GCが示す情報に基づいて、トークンTKを生成する。具体的には、トークン制御部123は、巡回済GCにおける通過ノード情報PASSED_IDSが示す複数のノードIDを示すトークンTKを生成する。なお、トークン制御部123は、トークンTKが示すノードIDの順番を、グループに対応する複数のノードをトークンTKが、例えば、最短距離で巡回するように設定する。
ここで、トークンTKの生成に使用される巡回済GCは、図10の巡回済GCであるとする。この場合、以下の図12に示されるトークンTKが生成される。
図12は、一例としてのトークンTKを示す図である。
図12において、「GRP_IDS」は、トークンTKを生成したグループルートノードに対応するグループに対応する複数のノードにそれぞれ対応する複数のノードIDを示す情報(以下、グループノード情報という)である。トークンTKは、当該トークンTKに記載される複数のノードIDのうち、トークンTKを受信したノードのIDの右側のノードIDのノードへ順次送信される。
なお、トークンTKに記載される複数のノードIDのうち最も右側のノードIDのノードが、当該トークンTKを受信した場合、当該複数のノードIDのうち最も左側のノードIDのノードへ、当該トークンTKは送信される。
再び、図11を参照して、ステップS412では、トークン制御部123が、送信部112を利用して、生成したトークンTKを、当該トークンTKに示される複数のノードIDのうち、自ノードのノードIDの次のノードIDのノードへ送信する。
ここで、自ノードのノードIDは“T41”であるとする。また、生成されたトークンTKは、図12のトークンTKであるとする。この場合、グループルートノードとしてのノード41は、ノードID“T51”のノードへ、トークンTKを送信する。
そして、トークンTKを受信した各ノードは、前述したように、受信したトークンTKに記載される複数のノードIDのうち、トークンTKを受信したノードのIDの右側のノードIDのノードへ、当該トークンTKを送信する。なお、トークンTKを受信した各ノードのトークン制御部123は、受信したトークンTKを所定時間(例えば、1秒)保持した後、当該トークンTKを、自ノードのノードIDの次のノードIDのノードへ送信する。
なお、トークンTKに記載される複数のノードIDのうち最も右側のノードID(例えば、“T52”)のノードが、当該トークンTKを受信した場合、当該複数のノードIDのうち最も左側のノードID(例えば、“T41”)のノードへ、当該トークンTKを送信する。
以上の処理により、トークンTKは、例えば、図1(B)に示されるように、グループルートノードに対応するグループに対応する複数のノードにおいて、巡回する。また、ALM配信木において形成された複数のグループの各々におけるグループルートノードが、図11のトークン巡回処理を行うことにより、各グループにおいて、トークンTKが独立して巡回する。
なお、前述したグループ化処理Nが行われる場合、トークン巡回処理のステップS411では、トークン制御部123が、トリガメッセージTRが示すGRP_SIZEの値分の階層の各下位ノードと自ノードとをトークンTKが最短距離で巡回するように当該トークンTK(例えば、図12)を生成する。そして、前述のステップS412が行われる。
(局所改善処理)
次に、ALM配信木において、前述した規則D1および規則D2に従って行われる局所改善処理を行うための処理について説明する。なお、ALM配信木には、図9(B)に示されるように、複数のグループが形成されているとする。ALM配信木を構成する複数のノードの各々は、他の処理とは独立して、後述の局所改善判定処理を行う。
また、ALM配信木を構成する複数のノードの各々は、他の処理とは独立して、後述の配信木変更処理を行う。
ここで、図9(B)のルートノードとしてのノード11は、所定時間(例えば、1ミリ秒)毎に、データDTを、子ノード(ノード21,22)へ送信しているとする。ルートノードとしてのノード11が送信するデータDTは、例えば、ストリーミングデータであるとする。ルートノード以外の各ノード(例えば、ノード31)は、データDTを受信する毎に、受信したデータDTを、子ノード(例えば、ノード41)へ送信する。
また、ルートノード以外の各ノード(例えば、ノード21,31)は、データDTを受信する毎に、データ受信メッセージを、親ノード(例えば、ノード11,21)へ送信するとする。データ受信メッセージは、データDTを受信したことを報知するためのメッセージである。これにより、ALM配信木における各ノードは、所定時間毎にデータ受信メッセージを受信することで、データDTが正常に子ノードへ送信されていることを知ることができる。
図13は、局所改善判定処理のフローチャートである。ここでは、一例として、ノード52が、局所改善判定処理を行っているとして説明する。
また、前述した処理により、各グループにおいて、トークンTKが巡回しているとする。
ステップS511では、局所改善部122が、局所改善条件が満たされたか否かを判定する。局所改善条件は、局所改善処理を実行するための条件である。
局所改善条件は、例えば、自ノードと子ノードとの間の通信量が所定値以上になったという条件である。すなわち、局所改善条件は、自ノードと子ノードとの間で前述したネットワーク混雑が発生したという条件である。局所改善条件が満たされる場合、データの送信先の変更が必要なノード(以下、変更必要ノードという)があることになる。この場合、変更必要ノードは、自ノードである。
自ノードと子ノードとの間の通信量が所定値以上になった場合、局所改善部122は、局所改善条件が満たされたと判定する。すなわち、ステップS511では、局所改善部122が、変更必要ノードがあるか否かを判定する。
自ノードと子ノードとの間の通信量が所定値以上になったか否かの判定は、子ノードから送信されるデータ受信メッセージを受信する時間間隔により判定できる。例えば、ネットワーク混雑が発生した場合、データ受信メッセージを受信する時間間隔は、所定の時間間隔より長くなる。以下においては、自ノードと子ノードとの間の通信量が所定値以上になった場合における当該子ノードを、混雑解消対象ノードという。
ステップS511において、YESならば、処理はステップS512に移行する。一方、ステップS511において、NOならば、再度、ステップS511の処理が行われる。
ここで、ノード52とノード64との間の通信量が所定値以上になったとする。すなわち、ノード52とノード64との間に、前述したネットワーク混雑が発生したとする。この場合、ノード64は、混雑解消対象ノードである。この場合、局所改善条件が満たされたと判定され、処理はステップS512に移行する。
なお、局所改善条件は、上記条件に限定されることなく、他の条件であってもよい。例えば、局所改善条件は、自ノードと子ノードとの間の通信量が“0”になったという条件でもよい。すなわち、局所改善条件は、子ノードが動作してないという条件であってもよい。
ステップS512では、交換対象ノードの判定が行われる。交換対象ノードは、自ノードと混雑解消対象ノードとの間の通信量を所定値未満とすることができるノードである。すなわち、交換対象ノードは、ネットワーク混雑を解消するのに最も適したノードである。また、交換対象ノードは、自ノードと交換の対象となるノードである。
なお、交換対象ノードは、グループルートノード以外のノードとする。なぜならば、グループルートノードが交換されてしまうと、他のグループに対応する、当該グループルートノードの親ノードが、データをどこへ送信すればいいのかわからなくなってしまうからである。
具体的には、局所改善部122が、混雑解消対象ノード(例えば、ノード64)以外の親ノード(例えば、ノード41)または混雑解消対象ノード以外の子ノード(例えば、ノード63)との通信量に基づいて、交換対象ノードを判定する。また、局所改善部122は、判定された交換対象ノードに、当該交換対象ノードのノードIDを問い合わせることにより、交換対象ノードのノードIDを取得する。
ステップS513では、局所改善部122が、トークン制御部123がトークンTKを保持しているか否かを判定する。ステップS513において、YESならば、処理はステップS514に移行する。一方、ステップS513において、NOならば、再度、ステップS511の処理が行われる。ここでは、トークン制御部123がトークンTKを保持しているとする。
ステップS514では、局所改善処理に関わる全てのノードIDがあるか否かが判定される。具体的には、局所改善部122が、保持されているトークンTKが、自ノードのノードIDと、交換対象ノードのノードIDとを示すか否かを判定する。ステップS514において、YESならば、処理はステップS515に移行する。一方、ステップS514において、NOならば、再度、ステップS511の処理が行われる。
ここで、保持されているトークンTKは、図12のトークンTKであるとする。また、ステップS514の処理は、ノード52が行っているとする。また、前述の処理により判定された交換対象ノードは、ノード63であるとする。
この場合、自ノードのノードIDは“T52”である。また、交換対象ノードのノードIDは“T63”である。この場合、ステップS514でYESと判定され、処理はステップS515に移行する。
ステップS515では、局所改善処理Tが行われる。局所改善処理Tは、アプリケーション層では、ALM配信木における変更必要ノード(例えば、ノード52)の位置と、交換対象ノード(例えば、ノード63)の位置とを交換する処理である。
局所改善処理Tは、物理層では、変更必要ノードに設定されたデータの送信先と、交換対象ノードに設定されたデータの送信先とを交換する送信先交換処理を含む。具体的には、送信先交換処理は、変更必要ノードに設定されたデータの送信先を、交換対象ノードに設定されたデータの送信先に変更し、交換対象ノードに設定されたデータの送信先を、変更必要ノードに設定されたデータの送信先に変更する処理である。
なお、交換対象ノードが、変更必要ノードの子ノードである場合、送信先交換処理は、交換対象ノード(例えば、ノード63)がデータの送信先に設定されている親ノード(例えば、ノード52)のデータの送信先を当該交換対象ノードに設定されたデータの送信先に変更する処理を含む。
また、局所改善処理Tは、物理層では、変更必要ノード(例えば、ノード52)がデータの送信先に設定されているノード(例えば、ノード41)のデータの送信先の少なくとも一部を交換対象ノード(例えば、ノード63)に変更する処理を含む。
具体的には、局所改善処理Tでは、まず、局所改善部122が、局所改善メッセージIPMを生成する。局所改善メッセージIPMは、局所改善処理を行うためのメッセージである。局所改善処理Tでは、変更必要ノードの親ノードへ送信するための局所改善メッセージIPM(以下、第1局所改善メッセージという)と、交換対象ノードへ送信するための局所改善メッセージIPM(以下、第2局所改善メッセージという)とが生成される。そして、局所改善部122は、生成した第1局所改善メッセージおよび第1局所改善メッセージの各々を、送信先となるノードへ送信する。
ここで、ステップS512の処理により、交換対象ノードはノード63であると判定されたとする。この場合、ノード52の位置と、ノード63の位置とを交換するための局所改善処理を行うための第1局所改善メッセージおよび第2局所改善メッセージが生成される。
また、ノード52がステップS515の処理を行っているとする。また、変更必要ノードはノード52(自ノード)であるとする。
この場合、生成される第1局所改善メッセージは、変更必要ノード(ノード52)の親ノードであるノード41へ送信するためのメッセージである。また、生成される第2局所改善メッセージは、交換対象ノードとしてのノード63へ送信するためのメッセージである。
ここで、ノード41に設定されているデータの送信先は、ノード51,52であるとする。なお、データの送信先情報は、例えば、IPアドレス等により表現される。
また、この場合、第1局所改善メッセージは、ノード41のデータの送信先の一部(ノード52のIPアドレス)を、ノード63のIPアドレスに変更するための指示を示す。また、第2局所改善メッセージは、変更必要ノードのIPアドレスと、当該変更必要ノードのIPアドレスを交換対象ノードとしてのノード63のデータの送信先に設定する旨の指示と、交換対象ノードとしてのノード63のデータの送信先情報(例えば、IPアドレス)を要求する指示とを示す。
なお、局所改善部122は、交換対象ノードから、データの送信先情報を受信すると、受信した送信先情報が示すデータの送信先を、自ノードのデータの送信先に設定する。
そして、局所改善部122は、生成した第1局所改善メッセージを、ノード41へ送信する。また、局所改善部122は、生成した第2局所改善メッセージを、交換対象ノードとしてのノード63へ送信する。
図14は、配信木変更処理のフローチャートである。前述したように、ALM配信木を構成する複数のノードの各々は、他の処理とは独立して、配信木変更処理を行う。ここでは、一例として、ノード41が、配信木変更処理を行っているとして説明する。
ステップS611では、局所改善部122が、局所改善メッセージを受信したか否かを判定する。ステップS611において、YESならば、処理はステップS612に移行する。一方、ステップS611において、NOならば、再度、ステップS611の処理が行われる。ここでは、ノード41が、変更必要ノード(ノード52)から、前述の第1局所改善メッセージを受信したとする。
ステップS612では、メッセージ対応処理が行われる。メッセージ対応処理では、局所改善部122が、受信した局所改善メッセージに基づいた処理を行う。ここで、受信した局所改善メッセージは、前述の第1局所改善メッセージであるとする。また、第1局所改善メッセージは、ノード41のデータの送信先の一部(ノード52のIPアドレス)を、ノード63のIPアドレスに変更するための指示を示すとする。
この場合、局所改善部122は、自ノード(ノード41)に設定されているデータの送信先の一部(ノード52のIPアドレス)を、ノード63のIPアドレスに変更する。すなわち、自ノード(ノード41)に設定されているデータの送信先の一部(ノード52)が、ノード63に変更される。
以上の処理により、メッセージ対応処理は終了する。そして、再度、ステップS611の処理が行われる。
次に、ノード63が、図14の配信木変更処理を行っている場合の処理を説明する。ここで、ノード63が、変更必要ノード(ノード52)から、前述の第2局所改善メッセージを受信したとする。
この場合、ステップS611において、YESと判定され、処理はステップS612に移行する。
ステップS612のメッセージ対応処理では、局所改善部122が、受信した第2局所改善メッセージに基づいた処理を行う。第2局所改善メッセージは、変更必要ノードのデータの送信先としての変更必要ノードのIPアドレスと、変更必要ノードのIPアドレスを、交換対象ノードとしてのノード63のデータの送信先に設定する旨の指示と、交換対象ノードとしてのノード63のデータの送信先情報(例えば、IPアドレス)を要求する指示とを示すとする。
この場合、局所改善部122は、自ノード(ノード63)に設定されているデータの送信先を、変更必要ノードの送信先(IPアドレス)に設定(変更)する。また、局所改善部122は、自ノードのデータの送信先情報を、ノード52へ送信する。
前述の局所改善処理Tを行っているノード52の局所改善部122は、前述したように、交換対象ノード(ノード63)から、データの送信先情報を受信すると、受信した送信先情報が示すデータの送信先を、自ノードのデータの送信先に設定する。そして、図13における局所改善処理Tは終了する。そして、再度、ステップS511の処理が行われる。
以上の局所改善処理Tが行われることにより、変更必要ノードのデータの送信先の全てと、交換対象ノードのデータの送信先の全てとが交換される。なお、局所改善処理Tは、変更必要ノードのデータの送信先の全てと、交換対象ノードのデータの送信先の全てとを交換する処理に限定されない。局所改善処理Tは、例えば、変更必要ノードのデータの送信先の一部と、交換対象ノードのデータの送信先の一部とを交換する処理であってもよい。
なお、図13の局所改善判定処理は、データの送信先の変更が必要な変更必要ノード(例えば、ノード52)以外のノードが行ってもよい。例えば、変更必要ノードが、ノード52であるとする。また、ノード41が、ノード52とノード64との間の通信量の状態を監視しているとする。
この場合、ノード41が、図13の局所改善判定処理を行ってもよい。この場合、ノード41が行う局所改善判定処理は、例えば、ALM配信木におけるノード52の位置と、ノード63の位置とを交換するための処理となる。
以上説明したように、本実施の形態では、上記の局所改善処理Tが行われることにより、ネットワーク混雑が解消される。また、配信木変更処理により、トークンTKを保持しているノードのみしか局所改善処理が実行できないので、1つのグループ内で、同時に複数の局所改善処理が行われることはない。
そのため、ALM配信木において形成された複数のグループの各々において、同時にネットワーク混雑が発生し、当該ネットワーク混雑を解消するための局所改善処理が行われても、ALM配信木の不整合の発生を防ぐことができる。
また、トークンTKを保持しているノードのみしか局所改善処理が実行できないので、局所改善処理が他の処理の影響を受けることなく、局所改善処理を確実に実行することができる。
また、ALM配信木において形成された複数のグループの各々において、ネットワーク混雑が同時に発生した場合、各グループにおいて、同時に、図13の局所改善判定処理および図14の配信木変更処理が行われることにより、複数のグループの各々において、局所改善処理が行われる。すなわち、ALM配信木において、複数の局所改善処理を迅速に行うことができる。
したがって、従来技術としての逐次実行処理より、複数個所のネットワーク混雑を迅速に解消することができる。すなわち、ALM配信木の再構築を迅速に行うことができる。つまり、従来技術としての逐次実行処理より、ALM配信木を迅速に改善することができる。
また、本発明では、トークンTKがグループノード情報(GRP_IDS)を保持するようにしている。そのため、ALM配信木における各ノードがグループノード情報を保持、管理する必要がない。そのため、グループ管理を非常に簡単にすることができる。
なお、ALM配信木の不整合を解消するのに発生するネットワークのオーバーヘッドは、グループ形成時のトラフィック量と、トークン巡回時のトラフィック量との合計である。グループ形成時のトラフィック量は、1回限りのトラフィックである。また、トークン巡回時のトラフィック量は、トークンTKがグループノード情報を保持しているため十分に小さい。したがって、本発明において、ALM配信木の不整合を解消するのに発生するネットワークのオーバーヘッドは非常に少ない。
以上により、本発明では、局所改善処理が複数個所で同時実行されるときに起こり得るALM配信木の不整合を、少ないネットワークのオーバーヘッドで、迅速に解消することができる。その結果、高いQoS(Quality of Service)を実現することができる。
<第1の実施の形態の変形例>
第1の実施の形態では、ALM配信木において形成される複数のグループの大きさおよびグループの位置は固定であった。すなわち、ALM配信木において形成されるグループの数、各グループに対応するノードの数は固定であった。また、異なる2つのグループ間において2つのノードの位置を交換する局所改善処理は禁止していた。
そのため、ALM配信木において、図9(B)のようにグループGP1,GP2,GP3が形成されている状態で、例えば、グループGP1と、グループGP2との間においてネットワーク混雑が発生した場合、当該ネットワーク混雑を解消するための局所改善処理は実行されないという問題があった。
本実施の形態の変形例では、ALM配信木において形成される複数のグループの大きさおよびグループの位置を動的に変更することにより、上記問題を解決する。すなわち、ALM配信木において形成されるグループの数、各グループに対応するノードの数を動的に変更することにより、上記問題を解決する。
本実施の形態の変形例の概要は、予め定められたグループ分け条件が満たされた場合、トリガメッセージTRが示す、START_INDEXの値、グループサイズGRP_SIZEの値を変更したトリガメッセージTRを、ALM配信木を構成する複数のノードへブロードキャストする。グループ分け条件は、例えば、所定時間が経過したという条件である。
これにより、ALM配信木において形成される複数のグループの大きさおよびグループの位置を動的に変更する。すなわち、ALM配信木において形成されるグループの数、各グループに対応するノードの数を動的に変更する。
本実施の形態の変形例におけるノードとしての通信端末は、図3の通信端末100である。そのため、通信端末100についての詳細な説明は繰り返さない。
(グループの形成)
次に、ALM配信木において、複数のグループを形成するための処理(以下、グループ分け処理Aという)について説明する。グループ分け処理Aは、ルートノードとしてのノード11である通信端末100が行う。なお、以下のグループ分け処理Aは、ルートノード以外の任意のノードである通信端末100が行ってもよい。
図15は、グループ分け処理Aのフローチャートである。図15において、図4のステップ番号と同じステップ番号の処理は、第1の実施の形態で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。
ステップS110Aでは、グループ生成部124が、予め定められたグループ分け条件が満たされたか否かを判定する。ここで、グループ分け条件は、例えば、所定時間が経過したという条件である。ステップS110Aにおいて、YESならば、処理はステップS111Aに移行する。一方、ステップS110Aにおいて、NOならば、再度、ステップS110Aの処理が行われる。
なお、グループ分け条件は、他の条件であってもよい。グループ分け条件は、例えば、現在の時刻が任意の時刻であるという条件であってもよい。
ステップS111Aでは、トリガメッセージ生成処理Aが行われる。トリガメッセージ生成処理Aでは、グループ生成部124が、トリガメッセージTRを生成する。生成されるトリガメッセージTRは、例えば、図5のトリガメッセージTRである。トリガメッセージ生成処理Aでは、ステップS111Aの処理が繰り返し行われる毎に、グループ生成部124が、前回とは異なるトリガメッセージTRを生成する。
例えば、前回のトリガメッセージ生成処理Aにより生成されたトリガメッセージTRが、図5のトリガメッセージTRであった場合、今回のトリガメッセージ生成処理Aでは、グループサイズGRP_SIZEの値およびSTART_INDEXの値の少なくとも一方が変更されたトリガメッセージTRが生成される。
すなわち、ステップS111Aの処理が繰り返し行われる毎に、トリガメッセージ生成処理Aでは、ALM配信木において形成される複数のグループの大きさおよびグループの位置の少なくとも一方を動的に変更したトリガメッセージTR(グループ形成データ)が生成される。つまり、ステップS111Aの処理が繰り返し行われる毎に、トリガメッセージ生成処理Aでは、ALM配信木において形成されるグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのトリガメッセージTR(グループ形成データ)が生成される。すなわち、ステップS111Aの処理が繰り返し行われる毎に、グループ生成部124により生成されるトリガメッセージTR(グループ形成データ)は変更される。
ステップS112では、第1の実施の形態で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。この処理により、トリガメッセージTRが送信される。そして、再度、ステップS110Aの処理が行われる。
すなわち、グループ分け処理Aでは、グループ分け条件が満たされる毎に、トリガメッセージTR(グループ形成データ)が生成され、当該トリガメッセージTRが子ノードへ送信される。グループ分け条件が、例えば、所定時間が経過したという条件である場合、所定時間経過毎に、前回と異なるトリガメッセージTRが、子ノードへ送信される。
そして、第1の実施の形態と同様に、ALM配信木を構成する複数のノードの各々は、図6のグループ化ノード判定処理を行う。なお、ルートノードは、図6のステップS211を行わず、ステップS212,S213のみを行うとする。
また、ALM配信木を構成する複数のノードのうち、グループルートノード(グループ化ノード)は、図7のグループ化処理を行う。
図16は、ALM配信木においてグループが形成される処理を説明するための図である。以下、図16(A)、図16(B)、図16(C)、図16(D)、図16(E)および図16(F)を参照して、ALM配信木においてグループが形成される処理を説明する。
ルートノードとしてのノード11は、図15のグループ分け処理Aを行うことにより、子ノードとしてのノード21,22へ、トリガメッセージTRを送信する(図16(A)参照)。ここで、ノード11が送信するトリガメッセージTRは、図5のトリガメッセージTRであるとする。すなわち、トリガメッセージTRが示すSTART_INDEXの値およびグループサイズGRP_SIZEの値は、それぞれ、“0”および“2”である。
この場合、ルートノードとしてのノード11は、図6のグループ化ノード判定処理を行うことにより、自ノードがグループルートノード(グループ化ノード)であると判定し、図7のグループ化処理を行う。この処理により、ノード11は、GCを、第1の実施の形態で説明したのと同様な処理により、他のノード(ノード21)へ送信する(図16(A)参照)。
そして、図16(B)に示されるように、ノード21は、第1の実施の形態で説明したのと同様な処理により、トリガメッセージTRを、子ノードとしてのノード31,32へ送信する。また、ノード11,21,31,32は、第1の実施の形態で説明したのと同様な処理により、GCを巡回させるための処理を行う。
GCの巡回により、図16(C)に示されるように、グループGP1が形成される。また、ノード31は、受信したトリガメッセージTRを、子ノードとしてのノード41,42へ送信する。
ノード41,42の各々は、図6のグループ化ノード判定処理を行うことにより、自ノードがグループルートノード(グループ化ノード)であると判定し、図7のグループ化処理を行う。この処理により、ノード41は、GCを、第1の実施の形態で説明したのと同様な処理により、他のノード(ノード51)へ送信する(図16(D)参照)。ノード42も、ノード41と同様に、GCを、第1の実施の形態で説明したのと同様な処理により、他のノード(ノード53)へ送信する(図16(D)参照)。
また、ノード41は、受信したトリガメッセージTRを、子ノードとしてのノード51,52へ送信する(図16(D)参照)。ノード42は、受信したトリガメッセージTRを、子ノードとしてのノード53,54へ送信する。
そして、図9(A)を用いて第1の実施の形態で説明したGCを巡回させるための処理により、ノード41,51,61,62,52,63,64において、GCが巡回する(図16(E)参照)。
また、ノード51,52,53,54の各々は、受信したトリガメッセージTRを、対応する子ノードへ送信する。なお、ノード51,52,53,54の子ノード(例えば、ノード61)は、最下位層ノードであるため、トリガメッセージTRを受信するのみである。
ノード41,42の各々が生成したGCの巡回により、図9(B)と同様、図16(F)に示されるように、グループGP1に加え、さらに、グループGP2,GP3が形成される。
以上の処理により、ルートノードとしてのノード11が送信したトリガメッセージTRが、ALM配信木を構成する全てのノードへ送信されるとともに、ALM配信木において、1以上のノードに対応するグループが形成される。
なお、各グループにおいては、第1の実施の形態で説明した、図11のトークン巡回処理、図13の局所改善判定処理および図14の配信木変更処理が行われる。
また、図15のグループ分け処理Aが行われることにより、ルートノードとしてのノード11が、子ノードへ送信するトリガメッセージTRが異なると、ALM配信木において形成されるグループの数、各グループに対応するノードの数も変化する。
なお、本実施の形態の変形例で行われる図7のグループ化処理のステップS314において前述したグループ化処理Nが行われることによりグループが形成されてもよい。この場合、ステップS311,S312,S313の処理およびGC巡回処理は行われない。
図17は、ALM配信木に形成されるグループの一例を示す図である。
図17(A)は、ノード11が送信するトリガメッセージTRが示すSTART_INDEXの値およびグループサイズGRP_SIZEの値が、それぞれ、“0”および“3”である場合に形成される複数のグループを示す図である。
図17(A)は、形成されたグループの例として、グループGP11,GP21,GP22,GP23,GP24を示す。グループGP21,GP22,GP23,GP24の各々のサイズは“1”である。すなわち、グループGP21,GP22,GP23,GP24の各々は、3つのノードから形成される。これは、ALM配信木の大きさ、すなわち、ALM配信木を構成するノードの数により、最下位のグループに含められるノードの数が限られるからである。
図17(B)は、ノード11が送信するトリガメッセージTRが示すSTART_INDEXの値およびグループサイズGRP_SIZEの値が、それぞれ、“1”および“2”である場合に形成される複数のグループを示す図である。
図17(B)は、形成されたグループの例として、グループGP12,GP20,GP21,GP22,GP23,GP24を示す。
START_INDEX>0の場合、最上位のグループ(例えば、グループGP12)のサイズが、グループサイズGRP_SIZEの値“2”より小さくなることが、前述した式1よりわかる。この場合、グループGP12は1つのノードで形成される。
以上説明したように、本実施の形態の変形例では、ルートノードが、所定時間経過毎に、異なるトリガメッセージTRを、子ノードへ送信する。この処理により、トリガメッセージTRが示す値によって、例えば、図16(F)、図17(A)および図17(B)のいずれかに示されるように、ALM配信木にグループが形成される。
すなわち、所定時間経過毎に、ALM配信木において形成される複数のグループの大きさおよびグループの位置が動的に変更される。すなわち、所定時間経過毎に、ALM配信木において形成されるグループの数、各グループに対応するノードの数が変更される。
ここで、例えば、図16(F)において、ノード31とノード41との間にネットワーク混雑が発生したとする。この場合、図16(F)が示すように、複数のグループが形成されている場合、当該ネットワーク混雑は、グループGP1とグループGP2との間に発生したネットワーク混雑となる。そのため、仮に、グループの大きさおよびグループの位置が固定である場合、前述した規則D1により、局所改善処理は実行されず、当該ネットワーク混雑は解消されない。
しかしながら、本実施の形態の変形例では、ALM配信木において形成される複数のグループの大きさおよびグループの位置が動的に変更される。この処理により、例えば、図17(A)または図17(B)に示されるようにグループが形成され、ノード31およびノード41が同じグループに対応するようになると、当該グループにおいてネットワーク混雑を解消するための局所改善処理が実行されるようになる。
したがって、本実施の形態の変形例では、第1の実施の形態で奏する効果に加えて、ネットワーク混雑が発生する位置に関わらず、当該ネットワーク混雑を解消することができる。すなわち、ネットワーク混雑が発生する位置に関わらず、当該ネットワーク混雑を解消することができるとともに、局所改善処理が複数個所で同時実行されるときに起こり得るALM配信木の不整合を、少ないネットワークのオーバーヘッドで、迅速に解消することができる。
なお、本実施の形態の変形例では、トリガメッセージTRにおけるグループサイズGRP_SIZEの値は、ALM配信木においてグループが形成される間は変化しない。しかしながら、これに限定されることなく、ALM配信木における任意のノードが、トリガメッセージTRを子ノードへ送信(転送)する場合に、グループサイズGRP_SIZEの値を、ある条件に基づいて変更してもよい。
この場合、グループ毎に、当該グループのサイズを異なるようにすることができる。すなわち、異なるサイズの複数のグループを形成することが可能となる。その結果、より柔軟なグループ形成ができるようになる。
(機能ブロック図)
図18は、本発明に係る通信端末100の特徴的な第1の機能構成を示すブロック図である。つまり、図18は、図3に示される通信端末100の機能のうち、本発明に関わる主要な機能を示すブロック図である。
第1の機能構成を有する通信端末100は、ALM配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末である。所定ノードは、例えば、ルートノードである。なお、所定ノードは、ルートノード以外の任意のノードであってもよい。ALM配信木を構成する複数のノードの少なくとも一部ではデータ通信が行われている。
複数のノードには、ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが複数のノードのうち所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されている。
図18に示すように、通信端末100は、生成部210と、送信部220とを備える。
生成部210は、ALM配信木を構成する複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する。グループ形成データは、例えば、トリガメッセージTRである。生成部210は、図4のグループ分け処理または図15のグループ分け処理Aを行う図3のグループ生成部124に相当する。
送信部220は、グループ形成データを、自端末に設定された送信先のノードへ送信する。送信部220は、図4または図15のステップS112の処理を行うグループ生成部124に相当する。
生成部210は、グループ分け条件が満たされた場合、グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更する。ここで、グループ分け条件は、例えば、所定時間が経過したという条件である。
送信部220は、グループ形成データが変更される毎に、変更後のグループ形成データを、自端末に設定された送信先のノードへ送信する。
具体的には、例えば、生成部210は、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
また、例えば、生成部210は、形成されるグループの境界に位置するノードを特定するための情報を示す前記グループ形成データを生成する。
また、例えば、生成部210は、グループに対応するノードの数がN個であり、かつ、該N個のノードにおける通信量が所定値以上となった場合、該通信量を所定値未満とするように、局所改善処理が行われるグループを形成させるためのグループ形成データを生成する。
なお、図18の生成部210および送信部220の全てまたは一部は、LSI(Large Scale Integration:大規模集積回路)等のハードウエアで構成されてもよい。また、生成部210および送信部220の全てまたは一部は、CPU等のプロセッサにより実行されるプログラムのモジュールであってもよい。
図19は、本発明に係る通信端末100の特徴的な第2の機能構成を示すブロック図である。つまり、図19は、図3に示される通信端末100の機能のうち、本発明に関わる主要な機能を示すブロック図である。
第2の機能構成を有する通信端末100は、ALM配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末である。複数のノードには、ALM配信木におけるノードの位置によって、データの送信先が予め設定されている。
図19に示すように、通信端末100は、受信部310と、判定部320と、グループ生成部330と、局所改善部340とを備える。
受信部310は、他のノードから送信されるデータであって、複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する。ここで、特定ノードは、例えば、前述したグループ化ノードである。グループ形成データは、例えば、トリガメッセージTRである。グループ形成データは、自ノードが前記特定ノードであるか否かを特定するための情報(例えば、図5の各値)を示す。
受信部310は、例えば、図3の受信部110および図6のステップS211の処理を行うグループ生成部124に相当する。
判定部320は、受信部310が受信したグループ形成データに基づいて、自ノードが特定ノードであるか否かを判定する。判定部320は、例えば、図6のステップS212の処理を行うグループ生成部124に相当する。
グループ生成部330は、判定部320により自ノードが特定ノードであると判定された場合、グループ形成データに基づいて、M個のノードからなるグループを形成する。グループ生成部330は、図6のステップS213の処理、すなわち、図7のグループ化処理を行うグループ生成部124に相当する。
局所改善部340は、グループ生成部330により形成されたグループに対応するM個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する。局所改善部340は、例えば、図13の局所改善判定処理を行う局所改善部122に相当する。
局所改善部340は、さらに、変更必要ノードがあると判定された場合、該変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う。
具体的には、例えば、局所改善部340は、M個のノードのうちの2つのノードの間の通信量が所定値以上である場合に、2つのノードのうちの少なくともいずれか一方を変更必要ノードとして、変更必要ノードがあると判定する。
なお、図19の受信部310、判定部320、グループ生成部330および局所改善部340の全てまたは一部は、LSI(Large Scale Integration:大規模集積回路)等のハードウエアで構成されてもよい。また、受信部310、判定部320、グループ生成部330および局所改善部340の全てまたは一部は、CPU等のプロセッサにより実行されるプログラムのモジュールであってもよい。
以上、本発明における通信端末100について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
また、上記の通信端末100を構成する複数の構成要素の全てまたは一部は、ハードウエアで構成されてもよい。また、上記の通信端末100を構成する構成要素の全てまたは一部は、CPU(Central Processing Unit)等により実行されるプログラムのモジュールであってもよい。
また、上記の通信端末100を構成する複数の構成要素の全てまたは一部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されてもよい。システムLSIは、複数の構成要素を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM(Read Only Memory)およびRAM(Random Access Memory)などを含んで構成されるコンピュータシステムである。
例えば、図3において、制御部120は、1個のシステムLSIから構成されてもよい。
また、本発明は、通信端末100が備える特徴的な構成部の動作をステップとする方法として実現してもよい。また、本発明は、そのような方法に含まれる各ステップをコンピュータに実行させるプログラムとして実現してもよい。また、本発明は、そのようなプログラムを格納するコンピュータ読み取り可能な記録媒体として実現されてもよい。また、当該プログラムは、インターネット等の伝送媒体を介して配信されてもよい。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
本発明は、より高いQoSを実現することができる。そのため、本発明は、ALM技術を利用した大規模な映像配信や遠隔講義システム等で利用可能である。
100 通信端末
110,310 受信部
112,220 送信部
120 制御部
121 データ制御部
122,340 局所改善部
123 トークン制御部
124,330 グループ生成部
210 生成部
320 判定部

Claims (14)

  1. ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのうち、所定ノードとしての通信端末であって、
    前記複数のノードの少なくとも一部ではデータ通信が行われており、
    前記複数のノードには、前記ALM配信木におけるノードの位置によって、前記所定ノードから送信されるデータが前記複数のノードのうち前記所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されており、
    前記所定ノードとしての通信端末は、
    前記複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する生成部と、
    前記グループ形成データを、自端末に設定された送信先のノードへ送信する送信部とを備え、
    前記生成部は、さらに、グループ分け条件が満たされた場合、前記グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更し、
    前記送信部は、前記グループ形成データが変更される毎に、変更後の前記グループ形成データを、自端末に設定された送信先のノードへ送信し、
    前記生成部は、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるための前記グループ形成データを生成する、
    通信端末。
  2. 前記グループ分け条件は、所定時間が経過したという条件である、
    請求項1に記載の通信端末。
  3. 前記生成部は、形成されるグループの境界に位置するノードを特定するための情報を示す前記グループ形成データを生成する、
    請求項1または2に記載の通信端末。
  4. 前記生成部は、グループに対応するノードの数がN個であり、かつ、該N個のノードにおける通信量が所定値以上となった場合、該通信量を前記所定値未満とするように、前記局所改善処理が行われるグループを形成させるための前記グループ形成データを生成する、
    請求項1〜3のいずれかに記載の通信端末。
  5. 前記所定ノードは、ルートノードである、
    請求項1〜4のいずれかに記載の通信端末。
  6. 前記所定ノードとしての通信端末は、さらに、
    自端末に対応するグループに対応するノードの数がN個である場合、該N個のノードの各々が順次受信するためのトークンを送信するトークン制御部を備え、
    前記トークン制御部は、トークンを受信したノードが該トークンを保持している期間のみ、該トークンを保持しているノードが前記局所改善処理を行うことを可能とする該トークンを送信する、
    請求項1〜5のいずれかに記載の通信端末。
  7. ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数のノードのいずれかのノードとしての通信端末であって、
    前記複数のノードには、前記ALM配信木におけるノードの位置によって、データの送信先が予め設定されており、
    前記複数のノードのいずれかのノードとしての通信端末は、
    他のノードから送信されるデータであって、前記複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、前記複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する受信部を備え、
    前記グループ形成データは、自ノードが前記特定ノードであるか否かを特定するための情報を示し、
    前記複数のノードのいずれかのノードとしての通信端末は、さらに、
    受信した前記グループ形成データに基づいて、自ノードが前記特定ノードであるか否かを判定する判定部と、
    前記判定部により自ノードが前記特定ノードであると判定された場合、前記グループ形成データに基づいて、前記M個のノードからなるグループを形成するグループ生成部と、
    前記グループ生成部により形成されたグループに対応する前記M個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する局所改善部とを備え、
    前記局所改善部は、さらに、前記変更必要ノードがあると判定された場合、該変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う、
    通信端末。
  8. 前記局所改善処理は、前記変更必要ノードがデータの送信先に設定されているノードのデータの送信先の少なくとも一部を前記他のノードに変更し、前記他のノードがデータの送信先に設定されているノードのデータの送信先を前記他のノードに設定されたデータの送信先に変更する処理を含む、
    請求項7に記載の通信端末。
  9. 前記変更必要ノードおよび前記他のノードの各々は、前記M個のノードのうち、最上位のノードであるグループルートノードを除いた複数のノードのいずれかのノードである、
    請求項8に記載の通信端末。
  10. 前記複数のノードのいずれかのノードとしての通信端末は、さらに、
    自端末に対応するグループに対応するノードの数がM個である場合、該M個のノードの各々が順次受信するためのトークンを送信するトークン制御部を備え、
    前記トークン制御部は、トークンを受信したノードが該トークンを保持している期間のみ、該トークンを保持しているノードが前記局所改善処理を行うことを可能とする該トークンを送信する、
    請求項7〜9のいずれかに記載の通信端末。
  11. 前記局所改善部は、
    前記M個のノードのうちの2つのノードの間の通信量が所定値以上である場合に、前記2つのノードのうちの少なくともいずれか一方を前記変更必要ノードとして、前記変更必要ノードがあると判定する、
    請求項7〜10のいずれかに記載の通信端末。
  12. ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数の
    ノードのうち、所定ノードとしての通信端末が行う通信状態変更方法であって、
    前記複数のノードの少なくとも一部ではデータ通信が行われており、
    前記複数のノードには、前記ALM配信木におけるノードの位置によって、前記所定ノードから送信されるデータが前記複数のノードのうち前記所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されており、
    前記通信状態変更方法は、
    前記複数のノードにおいて、複数のグループを形成させるためのグループ形成データを生成する生成ステップと、
    前記グループ形成データを、自端末に設定された送信先のノードへ送信する送信ステップとを備え、
    前記生成ステップでは、グループ分け条件が満たされた場合、前記グループ形成データを、該グループ形成データに基づくグループの数および各グループに対応するノードの数の少なくとも一方を変更させるためのデータに変更し、
    前記送信ステップでは、前記グループ形成データが変更される毎に、変更後の前記グループ形成データを、自端末に設定された送信先のノードへ送信し、
    前記生成ステップでは、グループに対応するノードの数がN(2以上の整数)個である場合、該N個のノードのうち2つのノードの位置を交換する局所改善処理が行われるグループを形成させるための前記グループ形成データを生成する、
    通信状態変更方法。
  13. ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数の
    ノードのいずれかのノードとしての通信端末が行う通信状態変更方法であって、
    前記複数のノードには、前記ALM配信木におけるノードの位置によって、データの送信先が予め設定されており、
    前記通信状態変更方法は、
    他のノードから送信されるデータであって、前記複数のノードのうち、自ノードを含むM(2以上の整数)個のノードからなるグループを、前記複数のノードのうちの特定ノードに形成させるためのグループ形成データを受信する受信ステップを備え、
    前記グループ形成データは、自ノードが前記特定ノードであるか否かを特定するための情報を示し、
    前記通信状態変更方法は、さらに、
    受信した前記グループ形成データに基づいて、自ノードが前記特定ノードであるか否かを判定する判定ステップと、
    前記判定ステップにより自ノードが前記特定ノードであると判定された場合、前記グループ形成データに基づいて、前記M個のノードからなるグループを形成するグループ生成ステップと、
    前記グループ生成ステップにより形成されたグループに対応する前記M個のノードにおいて、データの送信先の変更が必要なノードである変更必要ノードがあるか否かを判定する局所改善ステップとを備え、
    前記局所改善ステップでは、前記変更必要ノードがあると判定された場合、該変更必要ノードに設定されたデータの送信先と、他のノードに設定されたデータの送信先とを交換する局所改善処理を行う、
    通信状態変更方法。
  14. ALM(Application Layer Multicast)配信木を構成する、通信端末としての複数の
    ノードの少なくとも一部で行われるデータ通信の通信状態を動的に変更する通信状態変更方法であって、
    前記複数のノードには、前記ALM配信木におけるノードの位置によって、所定ノードから送信されるデータが前記複数のノードのうち前記所定ノード以外の全てのノードへ送信されるように、データの送信先が予め設定されており、
    前記通信状態変更方法は、
    前記ALM配信木を構成する複数のノードにおいて、複数のグループを形成するための処理を行うステップと、
    グループ分け条件が満たされる毎に、形成されているグループの数および各グループに対応するノードの数の少なくとも一方を変更するための処理を行うステップと、
    2以上のノードに対応する複数のグループのうちの少なくとも2つのグループの各々において、ノードの位置の交換が必要なノードである変更必要ノードがある場合、前記変更必要ノードの位置と、該変更必要ノードに対応するグループに対応する他のノードの位置とを交換する局所改善処理を行うステップとを備える、
    通信状態変更方法。
JP2010529035A 2009-01-09 2010-01-05 通信端末および通信状態変更方法 Withdrawn JPWO2010079736A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009004111 2009-01-09
JP2009004111 2009-01-09
PCT/JP2010/000015 WO2010079736A1 (ja) 2009-01-09 2010-01-05 通信端末および通信状態変更方法

Publications (1)

Publication Number Publication Date
JPWO2010079736A1 true JPWO2010079736A1 (ja) 2012-06-21

Family

ID=42316502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010529035A Withdrawn JPWO2010079736A1 (ja) 2009-01-09 2010-01-05 通信端末および通信状態変更方法

Country Status (4)

Country Link
US (1) US20110002334A1 (ja)
EP (1) EP2378428A1 (ja)
JP (1) JPWO2010079736A1 (ja)
WO (1) WO2010079736A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5861085B2 (ja) * 2011-06-09 2016-02-16 パナソニックIpマネジメント株式会社 通信端末、通信制御方法及びプログラム
FR2979512B1 (fr) * 2011-08-30 2014-04-04 Bull Sas Procede d'echange de donnees entre nœuds d'une grappe de serveurs et grappe de serveurs mettant en œuvre ce procede
US10608956B2 (en) * 2015-12-17 2020-03-31 Intel Corporation Adaptive fabric multicast schemes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6460036B1 (en) * 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
AU2001286954A1 (en) * 2000-08-31 2002-03-13 The Regents Of The University Of California Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks
JP3920849B2 (ja) * 2001-06-29 2007-05-30 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像復号装置、画像符号化方法、及び画像復号方法
US20050080883A1 (en) * 2003-09-29 2005-04-14 Nurminen Jukka K. System and method for data handling in a network environment
US7551552B2 (en) * 2003-10-17 2009-06-23 Microsoft Corporation Method for providing guaranteed distributed failure notification
KR100667318B1 (ko) * 2004-02-12 2007-01-12 삼성전자주식회사 지그비 네트워크에서 멀티캐스트 방법
US7570604B1 (en) * 2004-08-30 2009-08-04 Juniper Networks, Inc. Multicast data trees for virtual private local area network (LAN) service multicast
EP2194678B1 (en) * 2005-04-25 2013-06-05 Thomson Licensing SA Routing protocol for multicast in a meshed network
US8064446B2 (en) * 2007-08-24 2011-11-22 At&T Intellectual Property I, L.P. Multicast with adaptive dual-state
US20090077254A1 (en) * 2007-09-13 2009-03-19 Thomas Darcie System and method for streamed-media distribution using a multicast, peer-to- peer network
US20100182404A1 (en) * 2008-12-05 2010-07-22 Panasonic Corporation Three dimensional video reproduction apparatus, three dimensional video reproduction system, three dimensional video reproduction method, and semiconductor device for three dimensional video reproduction

Also Published As

Publication number Publication date
US20110002334A1 (en) 2011-01-06
WO2010079736A1 (ja) 2010-07-15
EP2378428A1 (en) 2011-10-19

Similar Documents

Publication Publication Date Title
US11323366B2 (en) Path determining method, apparatus, and system
EP1334586B1 (en) Subgroup multicasting in a communications network
CN101305559B (zh) 无线网络中的路由选择
WO2012049788A1 (ja) 通信端末およびクラスター監視方法
Antonini et al. Lightweight multicast forwarding for service discovery in low-power IoT networks
JP2021517425A (ja) マルチキャストパケットを伝送する方法、デバイス、及びシステム
GB2505230B (en) Leader node appointment
WO2010079736A1 (ja) 通信端末および通信状態変更方法
JP2010166240A (ja) 端末装置およびパケット送信方法
JPWO2010109767A1 (ja) データ同期システム、データ同期方法、及び同期管理サーバ
Ribas et al. A new approach to a self-organizing federation of mqtt brokers
CN105337939B (zh) 一种bgp逻辑拓扑生成的方法及装置
JP5673268B2 (ja) 通信装置、およびプログラム
KR102168177B1 (ko) 네트워크 장치 및 이를 이용한 패킷 처리 방법
JP4122328B2 (ja) 伝送装置
AU2018200879B2 (en) Controller coordination system
CN107276774B (zh) 一种组播报文传输方法以及转发设备
CN114531392A (zh) 组播业务设计方法、服务器及存储介质
JP6603631B2 (ja) データ配信システム、および、データ転送装置
Alevizaki et al. Dynamic selection of user plane function in 5G environments
CN116319311A (zh) 一种交换机批量升级方法、系统、电子设备及存储介质
JP2011055231A (ja) ネットワーク管理システムおよびネットワーク管理方法
Chatmen et al. A new network on chip design dedicated to multicast service
JP2008154016A (ja) 無線端末及び無線通信システム
US20130188636A1 (en) Communication terminal and communication method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121010

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130516