(57)【要約】【課題】コンテンツ配信システムからのノード装置の離脱を遅延させるとともに、遅延によりシステムが不安定な状態になることを解消する。【解決手段】コンテンツ配信システムから離脱する離脱指示を検出する検出手段と、離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得手段と、取得された送信能力情報に基づいて、送信能力が高いほど、コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定手段と、離脱指示が検出されてから決定された遅延時間が経過したときに、コンテンツ配信システムからの離脱処理を行う離脱手段と、を備える。【選択図】図６
2010232781.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置により構成されるコンテンツ配信システムであり、前記複数のノード装置間でコンテンツが送受信されるコンテンツ配信システムにおけるノード装置であって、
前記コンテンツ配信システムから離脱する離脱指示を検出する検出手段と、
前記検出手段により離脱指示が検出されたノード装置である離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得手段と、
前記取得された送信能力情報に基づいて、前記送信能力が高いほど、前記コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定手段と、
前記離脱指示が検出されてから前記決定された遅延時間が経過したときに、前記コンテンツ配信システムからの離脱処理を行う離脱手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記送信能力取得手段は、前記離脱ノード装置が送信したコンテンツを、前記離脱ノード装置とは異なる他のノード装置が受信した際の受信品質を示す受信品質情報を、前記送信能力情報として取得し、
前記遅延時間決定手段は、前記取得された受信品質情報が示す受信品質が高いほど、前記遅延時間が長くなるように当該遅延時間を決定することを特徴とするノード装置。
【請求項３】
請求項１又は請求項２に記載のノード装置において、
前記送信能力取得手段は、前記ノード装置の上り帯域幅を示す帯域情報を前記送信能力情報として取得し、
前記遅延時間決定手段は、前記取得された帯域情報が示す上り帯域幅が広いほど、前記遅延時間が長くなるように当該遅延時間を決定することを特徴とするノード装置。
【請求項４】
請求項１乃至３の何れか１項に記載のノード装置において、
前記コンテンツ配信システムは、前記コンテンツ配信システムに参加している参加ノード装置が放送装置を最上位として複数の階層を形成しつつ前記放送装置から放送されたコンテンツが上位階層の上位ノード装置から下位階層の下位ノード装置に順次転送されるようにしたものであり、前記参加ノード装置は、前記参加ノード装置の前記送信能力情報に基づいて、前記送信能力が高いほど前記上位階層に配置され、
前記コンテンツ配信システムに参加するとき、前記参加ノード装置のうち、前記参加ノード装置の下位階層の下位ノード装置と接続している接続数が予め定められた接続許容数に満たないノード装置にその下位階層の下位ノード装置として接続する接続手段と、
前記離脱ノード装置が位置する階層から最下位層までの階層数を示す階層数情報を取得する階層数取得手段を更に備え、
前記遅延時間決定手段は、前記取得された階層数情報が示す階層数が多いほど、前記遅延時間が長くなるように当該遅延時間を決定することを特徴とするノード装置。
【請求項５】
コンピュータを、
請求項１乃至４の何れか１項に記載のノード装置として機能させることを特徴とする離脱処理遅延制御プログラム。
【請求項６】
ネットワークを介して互いに通信可能な複数のノード装置より構成されるコンテンツ配信システムであり、前記複数のノード装置間でコンテンツが送受信されるコンテンツ配信システムであって、
前記コンテンツ配信システムから離脱する離脱指示を検出する検出手段と、
前記検出手段により離脱指示が検出されたノード装置である離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得手段と、
前記取得された送信能力情報に基づいて、前記送信能力が高いほど、前記コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定手段と、
前記離脱指示が検出されてから前記決定された遅延時間が経過したときに、前記コンテンツ配信システムからの離脱処理を行う離脱手段と、
を備えることを特徴とするコンテンツ配信システム。
【請求項７】
ネットワークを介して互いに通信可能な複数のノード装置により構成されるコンテンツ配信システムであり、前記複数のノード装置間でコンテンツが送受信されるコンテンツ配信システムにおけるノード装置における離脱処理遅延方法であって、
前記コンテンツ配信システムから離脱する離脱指示を検出する検出工程と、
前記検出工程において離脱指示が検出されたノード装置である離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得工程と、
前記取得された送信能力情報に基づいて、前記送信能力が高いほど、前記コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定工程と、
前記離脱指示が検出されてから前記決定された遅延時間が経過したときに、前記コンテンツ配信システムからの離脱処理を行う離脱工程と、
を有することを特徴とする離脱処理遅延方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のシステムに関し、特許文献１には、複数の端末装置がツリー型に構成された配信システムが開示されている。特許文献１に記載のツリー型の配信システムは、ピアツーピア方式の配信システムである。かかるツリー型の配信システムにおいては、放送局（例えば、放送装置）が、最上位として、複数のノード装置が複数の階層を形成する。階層を形成する複数のノード装置は、通信手段を介してツリー状に接続される。そして、放送局から配信されたコンテンツ（例えば、映像データ及び音声データ等）が、上位階層のノード装置から下位階層のノード装置に順次転送される。また、特許文献１には、ユーザ端末としてのノード装置が現在参加している階層構造から離脱する際、離脱するノード装置が蓄積しているコンテンツを下位階層のノード装置への転送が終了するまでは、離脱するノード装置と接続不可ノード装置として他のノード装置とを接続させない技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３２５１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、上述の階層構造からノード装置が離脱する場合、ノード装置のコンテンツ中継能力（転送能力）については考慮されていなかった。例えば、階層構造からの離脱を遅延させると、その間、コンテンツの中継に不適格なノード装置も階層構造に接続されたままとなる。不適格なノード装置が多数存在すると、新規に参加するノード装置や再接続するノード装置の接続処理が阻害される。そのため、中継能力が低いノードがコンテンツ配信システムに残るため、コンテンツ配信システムの配信効率が低下してしまう。また、ツリー型放送システム以外のピアツーピア型のコンテンツ配信システムにおいても、同様の問題が生じる可能性がある。例えば、コンテンツの配信に不適格なノード装置が残存していると、上記と同様に接続処理が阻害されて配信効率が低下する可能性もある。
【０００５】
このように、本来はコンテンツ配信システムを安定させるためにノード装置の離脱を遅延させるようにしたにもかかわらず、その目的に反して、システムが不安定になる問題があった。
【０００６】
そこで、本発明は、以上の点に鑑みてなされたものであり、コンテンツ配信システムからのノード装置の離脱を遅延させるとともに、遅延によりシステムが不安定な状態になることを解消する可能とするコンテンツ配信システム、ノード装置、離脱処理遅延方法及び離脱処理遅延制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置の参加により構成されるコンテンツ配信システムであり、前記複数のノード装置間でコンテンツが送受信されるコンテンツ配信システムにおけるノード装置であって、前記コンテンツ配信システムから離脱する離脱指示を検出する検出手段と、前記検出手段により離脱指示が検出されたノード装置である離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得手段と、前記取得された送信能力情報に基づいて、前記送信能力が高いほど、前記コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定手段と、前記離脱指示が検出されてから前記決定された遅延時間が経過したときに、前記コンテンツ配信システムからの離脱処理を行う離脱手段と、を備える。
【０００８】
この発明によれば、離脱指示が検出された後、コンテンツの送信能力が相対的に低いノード装置は相対的に早く離脱し、コンテンツの送信能力が相対的に高いノード装置は相対的に長くコンテンツ配信システムに残存することとなるので、コンテンツ配信システムからのノード装置の離脱を遅延させることによりシステムが不安定な状態になることを解消することができる。
【０００９】
請求項２に記載の発明は、前記送信能力取得手段は、前記離脱ノード装置が送信したコンテンツを、前記離脱ノード装置とは異なる他のノード装置が受信した際の受信品質を示す受信品質情報を、前記送信能力情報として取得し、前記遅延時間決定手段は、前記取得された受信品質情報が示す受信品質が高いほど、前記遅延時間が長くなるように当該遅延時間を決定することを特徴とする。
【００１０】
この発明によれば、離脱ノード装置がコンテンツを転送した結果が送信能力とされるので、より実際的な送信能力に基づいて遅延時間を決定することができる。
【００１１】
請求項３に記載の発明は、請求項１又は請求項２に記載のノード装置において、前記送信能力取得手段は、前記ノード装置の上り帯域幅を示す帯域情報を前記送信能力情報として取得し、前記遅延時間決定手段は、前記取得された帯域情報が示す上り帯域幅が広いほど、前記遅延時間が長くなるように当該遅延時間を決定することを特徴とする。
【００１２】
この発明によれば、送信能力として離脱ノード装置の上り帯域幅を用いるので、他のノード装置の接続状況等に影響されることなく、ツリー型の放送システム以外でも送信能力を取得することができる。また、上り帯域幅が広いノード装置ほど長くコンテンツ配信システムに残存することとなるので、その分コンテンツを多量に送信することができる。
【００１３】
請求項４に記載の発明は、請求項１乃至３の何れか１項に記載のノード装置において、前記コンテンツ配信システムは、前記コンテンツ配信システムに参加している参加ノード装置が放送装置を最上位として複数の階層を形成しつつ前記放送装置から放送されたコンテンツが上位階層の上位ノード装置から下位階層の下位ノード装置に順次転送されるようにしたものであり、前記参加ノード装置は、前記参加ノード装置の前記送信能力情報に基づいて、前記送信能力が高いほど前記上位階層に配置され、前記コンテンツ配信システムに参加するとき、前記参加ノード装置のうち、前記参加ノード装置の下位階層の下位ノード装置と接続している接続数が予め定められた接続許容数に満たないノード装置にその下位階層の下位ノード装置として接続する接続手段と、前記離脱ノード装置が位置する階層から最下位層までの階層数を示す階層数情報を取得する階層数取得手段を更に備え、前記遅延時間決定手段は、前記取得された階層数情報が示す階層数が多いほど、前記遅延時間が長くなるように当該遅延時間を決定することを特徴とする。
【００１４】
この発明によれば、新規にシステムに参加することによって既に参加しているノード装置に接続されたノード装置は、その時点では下位階層のノード装置との接続数がゼロであるので、接続先のノード装置の候補となり得る。しかし、このようなノード装置でも、中継能力が低いノード装置は接続先のノード装置としては適格ではない。ここで、送信能力が低いノード装置ほど下位の階層に位置させるようにした場合には、離脱ノード装置が位置する階層から最下位層までの階層数から送信能力を判断することができる。そして、この階層数が少ない下位の階層に位置するノード装置、つまり、コンテンツの送信能力が低いノード装置から早くシステムから離脱するので、システムに新規に参加するノード装置や再接続するノード装置の接続処理が阻害されず、コンテンツの転送をより安定して行うことができる。
【００１５】
請求項５に記載の発明は、コンピュータを、請求項１乃至４の何れか１項に記載のノード装置として機能させることを特徴とする。
【００１６】
請求項６に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置の参加により構成されるコンテンツ配信システムであり、前記複数のノード装置間でコンテンツが送受信されるコンテンツ配信システムであって、前記ノード装置は、前記コンテンツ配信システムから離脱する離脱指示を検出する検出手段と、前記検出手段により離脱指示が検出されたノード装置である離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得手段と、前記取得された送信能力情報に基づいて、前記送信能力が高いほど、前記コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定手段と、前記離脱指示が検出されてから前記決定された遅延時間が経過したときに、前記コンテンツ配信システムからの離脱処理を行う離脱手段と、を備えることを特徴とする。
【００１７】
請求項７に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置の参加により構成されるコンテンツ配信システムであり、前記複数のノード装置間でコンテンツが送受信されるコンテンツ配信システムにおけるノード装置における離脱処理遅延方法であって、前記コンテンツ配信システムから離脱する離脱指示を検出する検出工程と、前記検出工程において離脱指示が検出されたノード装置である離脱ノード装置の送信能力に関する送信能力情報を取得する送信能力情報取得工程と、前記取得された送信能力情報に基づいて、前記送信能力が高いほど、前記コンテンツ配信システムからの離脱を遅延させるための遅延時間が長くなるように当該遅延時間を決定する遅延時間決定工程と、前記離脱指示が検出されてから前記決定された遅延時間が経過したときに、前記コンテンツ配信システムからの離脱処理を行う離脱工程と、を有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、離脱指示が検出された後、コンテンツの送信能力が相対的に低いノード装置は相対的に早く離脱し、コンテンツの送信能力が相対的に高いノード装置は相対的に長くコンテンツ配信システムに残存することとなるので、コンテンツ配信システムからのノード装置の離脱を遅延させることによりシステムが不安定な状態になることを解消することができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態に係るツリー型放送システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】一実施形態に係る放送局１０の概要構成例を示す図である。
【図３】一実施形態に係る接続先紹介サーバ２０の概要構成例を示す図である。
【図４】一実施形態に係るノードＮｎの概要構成例を示す図である。
【図５】一実施形態に係るノードＮｎにおけるＣＰＵ３０４の離脱指示検出時における処理例を示すフローチャートである。
【図６】一実施形態に係るノードＮｎにおけるＣＰＵ３０４の離脱遅延時間決定処理における処理例を示すフローチャートである。
【図７】一実施形態に係る離脱遅延時間決定テーブルに設定される内容の一例を示す図である。
【図８】一実施形態に係るノードＮｎにおけるＣＰＵ３０４のストリーム受信開始後における処理例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の最良の実施形態を図面に基づいて説明する。
【００２１】
［１．ツリー型放送システムの構成等］
始めに、図１を参照して、本発明の一実施形態に係るツリー型放送システム全体の概要構成及び機能について説明する。
【００２２】
図１は、本実施形態に係るツリー型放送システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００２３】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ，４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ，５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線７等によって、インターネット等のネットワーク８が構築されている。ネットワーク８は、現実世界の通信ネットワークである。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが適宜挿入されているが、図１では図示を省略している。なお、通信回線７としては、例えば、電話回線や光ケーブル等が用いられる。
【００２４】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。また、各ノードＮｎには、固有のノードＩＤが割り当てられている。
【００２５】
そして、本実施形態に係るツリー型放送システムＳは、ピアツーピア方式のネットワークシステムとなっている。ツリー型放送システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成（構成）される。なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９である。オーバーレイネットワーク９は、論理的なネットワークである。
【００２６】
このようなツリー型放送システムＳにおいては、該システムＳに参加（トポロジーに参加）している複数のノードＮｎが放送局１０（放送装置の一例）を最上位として複数の階層を形成しつつネットワーク８を介してツリー状に接続されている。そして、当該放送局１０から放送されたコンテンツ（ストリーム）が、上位階層のノードＮｎから下位階層のノードＮｎに順次転送（ＡＬＭ（Application Layer Multicast））されるようになっている。動画データは、例えばストリームミング配信方式で放送される。
【００２７】
このトポロジーは、放送チャンネル毎に形成されるようになっている。各ノードＮｎは、ユーザにより指定されたチャンネルに対応するトポロジーに参加し、当該トポロジーにおいてコンテンツを受信し転送しつつ、当該コンテンツを再生する。例えば、各ノードＮｎは、動画再生し画面に表示したり、音声再生しスピーカにより出力する。これによりユーザは、自身が選択したチャンネルのコンテンツを視聴することができる。
【００２８】
また、ツリー型放送システムＳにおいて形成されたトポロジーは、接続先紹介サーバ２０により管理されている。そして、接続先紹介サーバ２０は、ノードＮｎからの接続先紹介要求に応じて当該ノードＮｎに対してツリー型放送システムＳにおける接続先となる上流のノードＮｎを紹介するようになっている。
【００２９】
更に、ツリー型放送システムＳにおいては、コンテンツの中継（転送）に適している（中継能力が高い）ノードＮｎが優先的にコンテンツを中継するノード（以下、「中継ノード」という）として接続されるようになっている。そして、中継に適していないノードＮｎが中継ノードとならないように、つまり、他のノードＮｎが自ノードの下位階層として当該自ノードと接続されないように、トポロジーが形成される。これにより、中継能力が低いノードＮｎは、トポロジーの下位階層に位置するようになる。中継に適していないノードＮｎとは、中継能力が低いノードＮｎである。
【００３０】
つまり、中継能力が高いノードＮｎほど上位階層に配置され、中継能力が低いノードＮｎほど下位階層に配置されるようにトポロジーが形成される。このポロジーの形成は、接続先紹介サーバ２０による管理制御に基づいて行われる。こうしたトポロジーの形成方法については、特開２００３−１６９０８９号公報等で公知であるので、詳しい説明を省略する。特開２００３−１６９０８９号公報に記載の技術を用いて、トポロジーを形成するとき、トポロジーに新たに参加するノード装置の接続先として、上位階層に位置するノード装置であり、且つ、中継能力が高いノード装置が紹介される。上述したノード装置が紹介されることで、中継能力が高いノードＮｎほど上位階層に配置され、中継能力が低いノードＮｎほど下位階層に配置される。
【００３１】
また更に、ツリー型放送システムＳにおいては、ノードＮｎがトポロジーから離脱（脱退）する際、ユーザによりコンテンツの視聴終了指示（トポロジーからの離脱の指示）がされた後、所定時間（以下、「離脱遅延時間」という）が経過したときに、実際に離脱を行うようになっている。コンテンツの視聴終了指示は、トポロジーからの離脱の指示をも意味する。
【００３２】
また、トポロジーからの離脱は、視聴終了指示があった場合のほか、チャンネル切り替え時や放送終了時にも行われる。チャンネル切り替え時には、ユーザが切り替え先のチャンネルを指定することにより、ノードＮｎは、現在参加しているトポロジーから離脱し、これとは別のトポロジーに参加する。また、放送終了時には、トポロジーからの離脱が自動で行われる。
【００３３】
離脱指示があった場合でも、すぐには離脱処理が行われないようにすることにより、トポロジーの変動を抑制することができる。つまり、離脱指示があった後、離脱遅延時間が経過する前に、トポロジーへの再参加がユーザにより指示された場合には、離脱処理も参加処理も行う必要がないからである。トポロジーへの再参加は、コンテンツの再視聴及びザッピング等によるチャンネルの切り戻しを含む。しかし、上述したように、コンテンツの中継能力が低いノードＮｎが下位階層に位置するようにトポロジーが形成される。従って、全てのノードＮｎが一律に同じ時間離脱を遅延させるようにすると、タイミングによっては、リーフノードが、離脱遅延中の中継能力の低いノードＮｎにより占められてしまう場合がある。リーフノードは、自身の下位階層に他のノードＮｎが接続されていないノードＮｎである。よって、リーフノードは、トポロジーに参加するノードＮｎや再接続を行うノードＮｎの接続先の候補となるノードＮｎである。そうすると、トポロジーに参加するノードＮｎや再接続を行うノードＮｎによる接続処理の妨げになる。そこで、ツリー型放送システムＳにおいては、コンテンツの中継能力が高いほど離脱遅延時間が長く、中継能力が低いほど離脱遅延時間は短くなるようにしている。また、こうすることにより、中継能力が高いノードＮｎほど、離脱指示があった後も長くトポロジーに残ることとなる。そして、その間は、中継能力が高いノードＮｎよるコンテンツの中継処理を継続させることができるので、コンテンツを安定して放送することができる。
【００３４】
なお、ノードＮｎがトポロジーから離脱した後のトポロジーの再構築方法については、特開２００６−３３５１４号公報及び特開２００８−９２００４号公報等で公知であるので、詳しい説明を省略する。
【００３５】
次に、ノードＮｎがトポロジーに参加してから離脱するまでの動作概要を説明する。
【００３６】
例えば、ノードＮ１３が、ユーザによる指示により或るトポロジーに参加する場合、ノード１３は、接続先紹介サーバ２０へ上流ノード紹介要求メッセージを送信する。接続先紹介サーバ２０は、内部で管理しているトポロジー管理情報の中から下流側に接続が可能な（下流側に直接接続されたノード数が接続許容数に達していない）ノードＮｎを検索し、１以上の上流ノード候補のネットワークアドレス情報等を含む上流ノード候補紹介メッセージをノードＮ１３へ返信（接続可能なノードＮｎを紹介）する。下流側に接続が可能なノードＮｎは、下流側に直接接続されたノード数が接続許容数に達していないノードＮｎである。次に、ノードＮ１３は、接続先紹介サーバ２０から取得した上流ノード候補の中から一つの例えばノードＮ６を選択し、当該ノードＮ６へ接続要求メッセージを送信する。次に、ノードＮ６は、内部で保存している自己の上り帯域の測定結果に基づいて、自ノードがコンテンツの中継に適していると判定した場合には、内部で管理しているノード管理テーブルにノードＮ１３の情報を追加し、ノードＮ１３へ接続許可応答メッセージを返信する。次に、ノードＮ１３は、ノードＮ６へストリーム開始要求メッセージを送信する。最後に、ノードＮ６は、装置内部にストリーム中継用のオブジェクトを準備し、ノードＮ１３に対してストリーミングを開始する。こうして、ツリー型放送システムＳへのノードＮ１３の参加が完了する。
【００３７】
ここで、例えば、ノードＮ６がコンテンツの中継に適していない場合（ノードＮ６の中継能力が中継ノードとなるための水準に達していない場合）や、ノードＮ６よりもノードＮ１３の方の中継能力が高い場合等には接続替えが行われる。例えば、接続要求メッセージを受信したノードＮ６は、自己の上流に（上位階層として）接続されている、例えばノードＮ２との接続を切断する。次に、ノードＮ６は、ノードＮ２のネットワークアドレス情報等を含む上流ノード接続指示メッセージをノードＮ１３へ送信する。次に、ノードＮ６は、接続先紹介サーバ２０から紹介された上流ノード候補の中から例えばノードＮ１２を選択し、当該ノードＮ１２へ接続要求メッセージを送信する。一方、上流ノード接続指示メッセージを受信したノードＮ１３は、ノードＮ２へ接続要求メッセージを送信する。こうして、ノードＮ６はノードＮ１２と接続し、ノードＮ１３はノードＮ２と接続して、接続替えが完了する。
【００３８】
その後、離脱指示に基づいてノードＮ１３がトポロジーから離脱する場合、離脱するノードの中継能力に基づいて離脱遅延時間を決定し、この遅延時間が経過した後、離脱処理を行う。具体的に、当該ノードＮ１３は、ストリーム供給元である上流のノードＮ６に対してストリーム停止要求メッセージと接続解除要求メッセージを送信する。これに応じて、ノードＮ６は、ストリーム中継用オブジェクトを破棄することでノードＮ１３に対するストリーミングを停止する。同時にノード管理テーブルからノードＮ１３の情報を削除することでノードＮ６との接続関係を断ち切る。
【００３９】
［１−２．放送局１０の構成等］
次に、図２を参照して、放送局１０の構成及び機能について説明する。
【００４０】
図２は、放送局１０の概要構成例を示す図である。
【００４１】
放送局１０は、図２に示すように、主電源１０１、主記憶装置１０２、ハードディスク装置１０３、ＣＰＵ１０４、ネットワークインタフェース１０５、周辺機器制御チップ１０６、ビデオチップ１０７、音源チップ１０８、キーボード１０９、マウス１１０、ディスプレイ１１１、及び内蔵スピーカ１１２等を備えて構成されている。また、主電源１０１、主記憶装置１０２、ハードディスク装置１０３、ＣＰＵ１０４、ネットワークインタフェース１０５、周辺機器制御チップ１０６、ビデオチップ１０７、及び音源チップ１０８は、システムバス１１３を介して相互に接続されている。また、放送局１０は、ルータ１１４を介してネットワーク８に接続される。
【００４２】
主記憶装置１０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、ストリーム制御プログラム、画面制御プログラム、トポロジー制御プログラム、及びデコーダ（プログラム）等が記憶されている。また、主記憶装置１０２は、ノード管理テーブルを記憶しており、該ノード管理テーブルには、放送局１０に接続されたノードＮｎの情報（例えば、ＩＰアドレス及びポート番号等）が登録される。また、主記憶装置１０２は、バッファメモリを有する。バッファメモリは、例えば、リングバッファである。
【００４３】
また、ハードディスク装置１０３には、放送用のコンテンツが記録されている。
【００４４】
ＣＰＵ１０４は、主記憶装置１０２に記憶された各種プログラムに従って（つまり、プログラムの実行により）、例えばハードディスク装置１０３に記録されたコンテンツをパケット化し、ノード管理テーブルに登録されたノードＮｎに対して放送（ストリーム配信）する放送処理を行う。
【００４５】
なお、このような放送局１０として、専用の放送サーバのほか、何れかのノードＮｎが適用されても良い。
【００４６】
［１−３．接続先紹介サーバ２０の構成等］
次に、図３を参照して、接続先紹介サーバ２０の構成及び機能について説明する。
【００４７】
図３は、接続先紹介サーバ２０の概要構成例を示す図である。
【００４８】
接続先紹介サーバ２０は、図３に示すように、主電源２０１、主記憶装置２０２、ハードディスク装置２０３、ＣＰＵ２０４、ネットワークインタフェース２０５、周辺機器制御チップ２０６、ビデオチップ２０７、キーボード２０８、マウス２０９、及びディスプレイ２１０等を備えて構成されている。また、主電源２０１、主記憶装置２０２、ハードディスク装置２０３、ＣＰＵ２０４、ネットワークインタフェース２０５、周辺機器制御チップ２０６、及びビデオチップ２０７は、システムバス２１１を介して相互に接続されている。また、接続先紹介サーバ２０は、ルータ２１２を介してネットワーク８に接続される。
【００４９】
主記憶装置２０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、放送局管理プログラム、トポロジー管理プログラム、接続先紹介プログラム、及び運用管理プログラム等のサーバ処理プログラムが記憶されている。
【００５０】
また、ハードディスク装置２０３には、放送局管理データベース及びトポロジーデータベースが構築されている。放送局管理データベースには、各放送局１０の所在情報（例えば、ＩＰアドレス及びポート番号等）が放送チャンネル情報（例えばチャンネル番号）に対応付けられて登録される。また、トポロジーデータベースには、トポロジー管理情報が登録されている。トポロジー管理情報は、放送チャンネル毎に存在し、放送チャンネル情報に対応付けられている。そして、トポロジー管理情報には、トポロジーに参加している各ノードＮｎ毎に、ネットワークアドレス情報、現在接続されている下流のノードＮｎを示す情報、現在接続されている下流のノードＮｎの接続数、下流のノードＮｎの接続許容数等の情報が対応付けられて含まれている。ネットワークアドレス情報は、例えばＩＰアドレス及びポート番号である。また、現在接続されている下流のノードＮｎを示す情報は、例えば、ノードＩＤである。また、下流のノードＮｎの接続許容数は、例えば、２が設定されても良いし、これより多い値が設定されても良い。
【００５１】
ＣＰＵ２０４は、主記憶装置２０２に記憶された各種プログラムに従って、例えば新たにトポロジーへ参加希望するノードＮｎからの接続先紹介要求に応じて上記トポロジー管理情報から下流に接続可能なノードＮｎを検索し、検索された１以上のノードＮｎの候補を接続先として紹介する紹介処理を行う。ここで、下流に接続可能なノードＮｎは、現在接続されている下流のノードＮｎの接続数が接続許容数未満であるノードＮｎに限定される。
【００５２】
［１−４．ノードＮｎの構成等］
次に、図４を参照して、ノードＮｎの構成及び機能について説明する。
【００５３】
図４は、ノードＮｎの概要構成例を示す図である。
【００５４】
ノードＮｎは、図４に示すように、主電源３０１、主記憶装置３０２、ハードディスク装置３０３、ＣＰＵ３０４、ネットワークインタフェース３０５、周辺機器制御チップ３０６、ビデオチップ３０７、音源チップ３０８、キーボード３０９、マウス３１０、ディスプレイ３１１、及び内蔵スピーカ３１２等を備えて構成されている。また、補助電源３０１ｂ、主記憶装置３０２、ハードディスク装置３０３、ＣＰＵ３０４、ネットワークインタフェース３０５、周辺機器制御チップ３０６、ビデオチップ３０７、及び音源チップ３０８は、システムバス３１３を介して相互に接続されている。また、ノードＮｎは、ルータ３１４を介してネットワーク８に接続される。本実施形態に係るコンピュータは、ＣＰＵ３０４及び主記憶装置３０２により構成される。
【００５５】
なお、ノードＮｎとしては、ＰＣ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【００５６】
主記憶装置３０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、画面制御プログラム、ストリーム制御プログラム、トポロジー制御プログラム、及びデコーダ等が記憶されている。これら各種プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００５７】
また、主記憶装置３０２には、受信したコンテンツを一時的に蓄積するためのバッファメモリ（例えば、リングバッファ）を有する。また、主記憶装置３０２は、ノード管理テーブルを記憶している。ノード管理テーブルには、自ノード（自己）に接続されている下流のノードＮｎのネットワークアドレス情報（ＩＰアドレス及びポート番号等）が登録される。ネットワークアドレス情報は、例えばＩＰアドレス及びポート番号である。また、下流のノードＮｎの接続許容数は、例えば、２が設定されても良いし、これより多い値が設定されても良い。
【００５８】
また、主記憶装置３０２には、自ノードの中継能力を判定するため、つまり、離脱遅延時間を算出するための中継能力判定情報が記憶される。この中継能力判定情報としては、種々の情報を適用することができる。
【００５９】
第１の例では、自ノードの上り帯域が用いられる。この場合においては、上り帯域が広いほど（上り回線速度が速いほど）、中継能力が高い。上り帯域の測定は、例えば、ノードＮｎが、上り帯域測定用のサーバに対してデータ送信することにより行われる。当該サーバでは、データ受信した際の転送効率（転送速度）を算出し、これをノードＮｎに返信する。ノード装置は、受信した転送効率を中継能力判定情報として記録する。ここで、接続先紹介サーバ２０等の所定のサーバ装置を上り帯域測定用のサーバとしても良いし、接続先紹介サーバ２０が、既にトポロジーに参加しているノードＮｎの中から適当なノードＮｎを上り帯域測定用のサーバとして紹介するようにしても良い。なお、中継能力判定情報として、上り帯域に代えて下り帯域が用いられるようにしても良い。
【００６０】
第２の例では、参加しているトポロジーにおける最下位層から自ノードの位置する階層までの距離（階層数）が用いられる。ツリー型放送システムＳにおいては、中継能力が低いノードＮｎほど、下層に追いやられる傾向にあるので、最下位層からの距離でノードＮｎのおおよその中継能力を判断することができる。この場合においては、最下位層からの距離が長いほど、中継能力が高い。この最下位層からの距離は、ノードＮｎから紹介サーバ２０に対して問い合わせることにより取得される。
【００６１】
第３の例では、自ノードからコンテンツの転送を受けている下流側のノードＮｎによる当該コンテンツ受信の際のパケット損失率を用いる。この場合、パケット損失率が低いほど、つまり、コンテンツの受信品質が高いほど、中継能力が高い。この場合においては、コンテンツを受信しているノードＮｎが、受信パケットの損失を検出し、これを損失パケットのシーケンス番号として、定期的の上流側のノードＮｎに報告する。当該報告を受けたノードＮｎは、報告内容に基づいてパケット損失率を算出する。
【００６２】
ＣＰＵ３０４は、主記憶装置３０２に記憶された各種プログラム（本発明の離脱処理遅延制御プログラムを含む）を読み出し実行することにより、本発明における検出手段、送信能力情報取得手段、遅延時間決定手段、離脱手段、接続手段及び階層数取得手段等として機能する。また、ＣＰＵ３０４は、各種プログラムにしたがって、ツリー型放送システムＳ（或る放送チャンネルに係るトポロジー）に参加するための参加処理を実行する。参加後に放送局１０又は上流ノードＮｎから放送されネットワークインタフェース３０５を介して受信されたコンテンツのパケット（コンテンツストリーム）をバッファリングさせつつ再生処理を行う。
【００６３】
ここで、上記参加処理では、接続先紹介サーバ２０に対して接続先紹介要求がなされ、接続先紹介サーバ２０から紹介された上流のノードＮｎに接続（セッション確立）してストリーム開始要求がなされる。
【００６４】
また、上記再生処理では、受信されバッファメモリに蓄積されたコンテンツが読み出されデコーダによりデコードされる。動画データは、例えば、ビデオデータ及びオーディオデータである。そして、デコードされたビデオデータ（映像情報）がビデオチップ３０７を通じてディスプレイ３１１に出力され、デコードされたオーディオデータ（音声情報）が音源チップ３０８を通じて内蔵スピーカ３１２（又は図示しない外部スピーカ）から出力される。
【００６５】
また、自ノードの下流に他のノードＮｎが接続されている場合、ＣＰＵ３０４は、バッファメモリに蓄積されたコンテンツの各パケットを当該下流のノードＮｎに転送（コンテンツストリームの中継）する転送処理を行う。
【００６６】
更に、ＣＰＵ３０４は、下流のノードＮｎからストリーム停止要求メッセージと接続解除要求メッセージを受信した場合、当該ノードＮｎに対するストリーミングを停止する。ノード管理テーブルから当該ノードＮｎの情報を削除することで当該ノードＮｎとの接続を解除する。
【００６７】
また更に、ＣＰＵ３０４は、検出手段として、トポロジーからの離脱の指示を検出する。具体的に、ＣＰＵ３０４は、キーボード１０９やマウス１１０をユーザが操作することによってコンテンツの視聴の終了が指示されたとき、視聴終了指示を検出する。また、ＣＰＵ３０４は、キーボード１０９やマウス１１０をユーザが操作することによってチャンネル切り替えが指示されたとき、チャンネル切り替え指示を検出する。また、ＣＰＵ３０４は、コンテンツの放送終了を検出する。
【００６８】
更にまた、ＣＰＵ３０４は、送信能力情報取得手段として、中継能力判定情報を取得する。例えば、ＣＰＵ３０４は、自己の上り帯域を中継能力判定情報として取得する場合には、トポロジーに参加する際、帯域測定サーバに対してデータ送信したことに応じて当該帯域測定サーバから送信されてきた上り帯域応答メッセージを受信する。ＣＰＵ３０４は、受信した上り帯域応答メッセージが示す上り帯域を中継能力判定情報として主記憶装置３０２に記憶させる。また、ＣＰＵ３０４は、離脱遅延時間を決定する際、最下位層からの距離を中継能力判定情報として取得する場合には、距離問い合わせメッセージを送信したことに応じて接続先紹介サーバ２０から送信されてきた距離応答メッセージを受信する。ＣＰＵ３０４は、受信した距離応答メッセージが示す距離を中継能力判定情報として用いる。また、ＣＰＵ３０４は、パケット損失率を中継能力判定情報として取得する場合には、自ノードに接続されている下流側のノードＮｎから送信されてきたパケット損失報告メッセージを受信する。当該メッセージにより得られるパケット損失の個数に基づいて、パケット損失率を算出する。そして、ＣＰ３０４は、算出したパケット損失率を中継能力判定情報として、主記憶装置３０２に記憶されている中継能力判定情報を更新する。
【００６９】
また更に、ＣＰＵ３０４は、遅延時間決定手段として、トポロジーから離脱する際、中継能力判定情報に基づいて離脱遅延時間を決定する。具体的には、離脱遅延時間をＴとすると、
Ｔ＝α＋β
により離脱遅延時間が算出される。ここで、αは、基本遅延時間であり、ゼロ以上の値をとる定数である。つまり、どんなに中継能力が低くても、少なくともα以上は離脱が遅延される。一方、βは、ノードＮｎの中継能力に応じて変化する値であり、中継能力判定情報が示す中継能力が高いほど大きい値が設定される。なお、離脱遅延時間の決定方法としては、上記式を用いる方法以外にも、例えば、テーブルを用いることができる。例えば、中継能力を複数に区分してその区分毎に離脱遅延時間が設定されたテーブルを主記憶装置３０２に記憶させておく。テーブルには、中継能力が高い区分であるほど、値の大きい（長い）離脱遅延時間が設定されるようにする。ＣＰＵ３０４は、このようなテーブルを用いて離脱遅延時間を決定する。
【００７０】
更にまた、ＣＰＵ３０４は、遅延手段として、視聴終了指示が検出されてから離脱遅延時間が経過した後、トポロジーからの離脱処理を実行する。具体的に、ＣＰＵ３０４は、自己のノードが接続している上流側のノードＮｎにストリーム停止要求メッセージ及び接続解除要求メッセージを送信する。上流側のノードＮｎとの接続を切断する。また、ＣＰＵ３０４は、自ノードが下流側のノードＮｎと接続している場合には、当該ノードＮｎに接続解除要求メッセージを送信し、下流側のノードＮｎとの接続を切断する。更に、ＣＰＵ３０４は、接続先紹介サーバ２０に離脱メッセージを送信し、これにより、接続先紹介サーバ２０管理するトポロジーから自ノードを削除させる。
【００７１】
［２．ツリー型放送システムＳの動作］
次に、図５乃至図８を参照して、本実施形態に係るツリー型放送システムＳの動作について説明する。
【００７２】
図５は、本実施形態に係るノードＮｎにおけるＣＰＵ３０４の離脱指示検出時における処理例を示すフローチャートである。また、図６は、本実施形態に係るノードＮｎにおけるＣＰＵ３０４の離脱遅延時間決定処理における処理例を示すフローチャートである。
【００７３】
図５の処理は、ノードＮｎがトポロジーに参加中に、ＣＰＵ３０４が、ユーザにより入力された視聴終了指示を検出したとき、チャンネル切り替えを検出したとき、又は、放送終了を検出したときに開始される。
【００７４】
先ず、ＣＰＵ３０４は、タイマーのカウントを開始させて、離脱遅延時間決定処理を実行する（ステップＳ１）。この離脱遅延時間決定処理において、ＣＰＵ３０４は、図６に示すように、中継能力判定情報を取得する（ステップＳ１１）。このとき、ＣＰＵ３０４は、自己のノード装置の上り帯域又はパケット損失率を中継能力判定情報としている場合には、主記憶装備３０２に記憶されている中継能力判定情報を読み出す。また、ＣＰＵ３０４は、最下位層からの距離を中継能力判定情報としている場合には、接続先紹介サーバ２０に距離問い合わせメッセージを送信することにより、当該接続先紹介サーバ２０から送信されてきた距離応答メッセージを中継能力判定情報として受信する。
【００７５】
次いで、ＣＰＵ３０４は、取得した中継能力判定情報に基づいて、離脱遅延時間を決定する（ステップＳ１２）。例えば、ＣＰＵ３０４は、中継能力判定情報を変数とする所定関数によりβを算出し、これに定数αを加算して離脱遅延時間を算出する。
【００７６】
また、離脱遅延時間を決定する他の例として、テーブルを用いた場合について説明する。図７は、離脱遅延時間決定テーブルに設定される内容の一例を示す図である。この離脱遅延時間決定テーブルは、主記憶装置３０２に記憶されている。図７に示す離脱遅延時間決定テーブルは、上り帯域を中継能力判定情報として使用する場合の例である。この場合の離脱遅延時間決定テーブルには、上り帯域の閾値とこれに対応する離脱遅延時間との組が複数設定されている。例えば、上り帯域の閾値Ｕ１＝１Ｍｂｐｓに対して離脱遅延時間Ｔ１＝１０秒が設定されている。また、上り帯域の閾値Ｕ２＝２Ｍｂｐｓに対して離脱遅延時間Ｔ２＝２０秒が設定されている。また、上り帯域の閾値０に対して離脱遅延時間Ｔ３＝３０秒が設定されている。なお、閾値の０は、無効な値となっている。ＣＰＵ３０４は、中継能力判定情報として取得した上り帯域Ｕが、閾値Ｕ１未満である場合には、離脱遅延時間はＴ１＝１０と決定する。また、ＣＰＵ３０４は、上り帯域Ｕが、閾値Ｕ１以上且つ閾値Ｕ２未満である場合には、離脱遅延時間はＴ２＝２０と決定する。また、ＣＰＵ３０４は、上り帯域Ｕが、閾値Ｕ２以上である場合には、離脱遅延時間はＴ３＝３０と決定する。このようにして離脱遅延時間が決定される。
【００７７】
なお、パケット損失率を中継能力判定情報として用いる場合には、パケット損失率が大きいほど、送信能力が低いと推定される。また、パケット損失率が小さいほど、送信能力が高いと推定される。そのため、図７に示すテーブルの上り帯域の閾値の代わりにパケット損失率の閾値を用いる場合には、パケット損失率が大きいほど、小さい値の離脱遅延時間を離脱遅延時間決定テーブルに設定し、パケットの損失率が小さいほど、大きい値の離脱遅延時間を離脱遅延時間決定テーブルに設定する。
【００７８】
ＣＰＵ３０４は、離脱遅延時間を決定すると、離脱遅延時間決定処理を終了させる。
【００７９】
次いで、ＣＰＵ３０４は、から、離脱遅延時間決定処理において決定された離脱遅延時間が経過したか否かを判定する（ステップＳ２）。具体的に、ＣＰＵ３０４は、タイマーの値が離脱遅延時間の値以上となっているか否かを判定する。このとき、ＣＰＵ３０４は、離脱遅延時間が経過していない場合には（ステップＳ２：ＮＯ）、ユーザにより、現在離脱しようとしているトポロジーへの再参加指示が入力されたか否かを判定する（ステップＳ３）。このとき、ＣＰＵ３０４は、再参加指示が入力されていない場合には（ステップＳ３：ＮＯ）、ステップＳ２に移行する。一方、ＣＰＵ３０４は、再参加指示が入力された場合には（ステップＳ３：ＹＥＳ）、トポロジーからの離脱（ステップＳ４、Ｓ５）を取り止めて、タイマーのカウントを停止させて、本処理を終了させる。
【００８０】
ＣＰＵ３０４は、ステップＳ２において離脱遅延時間が経過した場合には（ステップＳ２：ＹＥＳ）、タイマーのカウントを停止させて、自ノードに接続しているノードに離脱を通知する（ステップＳ４）。具体的に、ＣＰＵ３０４は、上流側のノードＮｎにストリーム停止要求メッセージ及び接続解除要求メッセージを送信し、上流側のノードＮｎに接続解除要求メッセージを送信する。
【００８１】
次いで、ＣＰＵ３０４は、自ノードに接続しているノードとの接続を切断し（ステップＳ５）、本処理を終了させる。
【００８２】
なお、上記説明では、上り帯域を中継能力判定情報として使用する場合には、ＣＰＵ３０４は、主記憶装置３０２に記憶させておいた上り帯域の情報を読み出して離脱遅延時間を決定していたが、この方法だけに限られるものでｈない。例えば、上り帯域を測定した際、上り帯域測定用のサーバ装置が、測定した上り帯域に基づいて離脱遅延時間を決定しても良い。この場合、ノードＮｎは、決定された離脱遅延時間を、上り帯域測定用のサーバ装置から受信する。ノードＮｎは、受信した離脱遅延時間を主記憶装置３０２に記憶させる。そして、ノードＮｎは、トポロジーから離脱する際に、主記憶装置３０２に記憶された離脱遅延時間を用いて、離脱を遅延させる。
【００８３】
図８は、本実施形態に係るノードＮｎにおけるＣＰＵ３０４のストリーム受信開始後における処理例を示すフローチャートである。
【００８４】
図８の処理は、中継能力判定情報としてパケット損失率を用いる場合に、ノードＮｎが、上流側に接続されているノードＮｎからのストリームの受信を開始したときに開始される。
【００８５】
先ず、ＣＰＵ３０４は、トポロジーからの離脱指示が検出されたか否かを判定する（ステップＳ２１）。このとき、ＣＰＵ３０４は、離脱指示が検出されなかった場合には（ステップＳ２１：ＮＯ）、一定時間が経過したか否かを判定する（ステップＳ２２）。
【００８６】
このとき、ＣＰＵ３０４は、一定時間が経過した場合には（ステップＳ２２：ＹＥＳ）、主記憶装置３０２に記録しておいた損失パケット情報を取得する（ステップＳ２３）。次いで、ＣＰＵ３０４は、自ノードに接続されている上流側のノードＮｎに、パケット損失を報告する（ステップＳ２４）。具体的に、ＣＰＵ３０４は、記録した損失パケット情報を含むパケット損失報告メッセージを上流側のノードＮｎに送信する。ＣＰＵ３０４は、この処理を終えると、ステップＳ２１に移行する。
【００８７】
ＣＰＵ３０４は、ステップＳ２２において一定時間が経過していない場合には（ステップＳ２２：ＮＯ）、ストリーム受信によるパケット損失を検出したか否かを判定する（ステップＳ２５）。このとき、ＣＰＵ３０４は、パケット損失を検出した場合には（ステップＳ２５：ＹＥＳ）、損失パケットのシーケンス番号を損失パケット情報として主記憶装置３０２に記録する（ステップＳ２６）。ＣＰＵ３０４は、この処理を終えると、ステップＳ２１に移行する。
【００８８】
ＣＰＵ３０４は、ステップＳ２５においてパケット損失を検出しなかった場合には（ステップＳ２５：ＮＯ）、自己のノードに接続されている下流側のノードＮｎからパケット損失の報告を受けたか否かを判定する（ステップＳ２７）。この判定は、下流側のノードＮｎからパケット損失報告メッセージを受信したか否かを判定することにより行われる。このとき、ＣＰＵ３０４は、パケット損失の報告を受けた（パケット損失報告メッセージを受信した）場合には（ステップＳ２７：ＹＥＳ）、パケット損失報告メッセージに含まれるシーケンス番号に対応する補完パケットを下流側のノードＮｎに送信する（ステップＳ２８）。次いで、ＣＰＵ３０４は、パケット損失報告メッセージに含まれるシーケンス番号の個数に基づいて、パケット損失率を計算する（ステップＳ２９）。次いで、ＣＰＵ３０４は、主記憶装置３０２に記録している中継能力判定情報としてのパケット損失率を、計算したパケット損失率で更新する（ステップ３０）。この処理を終えると、ステップＳ２１に移行する。
【００８９】
ＣＰＵ３０４は、ステップＳ２７においてパケット損失の報告を受けていない場合には（ステップＳ２７：ＮＯ）、ステップＳ２１に移行する。
【００９０】
ステップＳ２１において、ＣＰＵ３０４は、離脱指示が検出された場合には（ステップＳ２１：ＹＥＳ）、本処理を終了させ、図５に示す処理を開始させる。
【００９１】
以上説明したように、本実施形態によれば、ノードＮｎのＣＰＵ３０４が、トポロジーからの離脱指示を検出する。また、ノードＮｎのＣＰＵ３０４は、中継能力判定情報を取得する。ノードＮｎのＣＰＵ３０４は、中継能力判定情報に基づいて、自ノードの中継能力が高いほど離脱遅延時間が長くなるように当該離脱遅延時間を決定する。そして、ノードＮｎのＣＰＵ３０４は、離脱指示が検出されてから決定された離脱遅延時間が経過したときに離脱処理を実行する。
【００９２】
従って、離脱指示が検出された後、コンテンツの送信能力が相対的に低いノードＮｎは相対的に早く離脱する。コンテンツの送信能力が相対的に高いノードＮｎは相対的に長くツリー型放送システムＳに残存することとなる。よってツリー型放送システムＳからのノードＮｎの離脱を遅延させることによりシステムが不安定な状態になることを解消することができる。
【００９３】
また、ノードＮｎのＣＰＵ３０４が、自ノードからコンテンツの転送を受けている下流側のノードＮｎによる当該コンテンツ受信の際のパケット損失率を中継能力判定情報として取得する場合には、パケット損失率が低いほど離脱遅延時間が長くなるように当該離脱遅延時間を決定する。
【００９４】
従って、自ノードがコンテンツを転送した結果が中継能力とされるので、より実際的な中継能力に基づいて離脱遅延時間を決定することができる。
【００９５】
また、ノードＮｎのＣＰＵ３０４が、自ノードの上り帯域幅を中継能力判定情報として取得する場合には、上り帯域幅が広いほど離脱遅延時間が長くなるように当該離脱遅延時間を決定する。
【００９６】
従って、上り帯域幅が広いノードＮｎほど長くコンテンツ配信システムに残存することとなるので、その分コンテンツ多量に送信することができる。
【００９７】
また、ノードＮｎのＣＰＵ３０４が、トポロジーに参加するとき、既に参加しているノードＮｎのうちその下位階層のノードＮｎと接続している接続数が接続許容数に満たないノードＮｎにその下位階層のノードＮｎとして接続する。そして、ノードＮｎのＣＰＵ３０４は、最下位層から自ノードの位置する階層までの距離（階層数）を中継能力判定情報として紹介サーバ２０から取得する場合には、当該距離が長い（階層数が多い）ほど離脱遅延時間が長くなるように当該離脱遅延時間を決定する。
【００９８】
従って、ツリー型放送システムＳにおいては、中継能力が低いノードＮｎほど下位の階層に位置するようになっているので、最下位層から自ノードの位置する階層までの距離から中継能力を判断することができる。そして、この距離が短い下位の階層に位置するノードＮｎ、つまり、コンテンツの中継能力が低いノードＮｎから早くシステムから離脱するので、システムに新規に参加するノードＮｎや再接続するノードＮｎの接続処理が阻害されず、コンテンツの転送をより安定して行うことができる。
【００９９】
［３．コンテンツ分散保存システムへの適用例］
上記実施形態においては、本発明をツリー型放送システムに適用していたが、当該システム以外のピアツーピア方式のネットワークシステム、例えば、コンテンツ分散保存システムに適用することができる。
【０１００】
コンテンツ分散保存システムにおいては、内容の異なる様々なコンテンツが複数のノードＮｎに分散して保存（格納）されており（コンテンツを保存しているノードＮｎを、以下、「コンテンツ保持ノード」という）、各ノードＮｎ間で当該コンテンツを利用可能になっている。
【０１０１】
各ノードＮｎは、必要なコンテンツを利用する際（この場合のノードＮｎを、「ユーザノード」という）、先ず、当該コンテンツを保存しているコンテンツ保持ノードを検索する。例えば、分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用したコンテンツ分散保存システムであれば、コンテンツの所在を問い合わせるコンテンツ所在問合せメッセージを任意のノードＮｎに送出する。このメッセージは、ＤＨＴルーティングによって、コンテンツの所在（コンテンツ保持ノード）を管理するノードＮｎ（以下、「ルートノード」という）に最終的に転送される。ルートノードは、コンテンツ所在問合せメッセージに対応するコンテンツ保持ノードのリストをユーザノードに送信する。そして、コンテンツ保持ノードのリストを受信したユーザノードは、リストに記載されているノードＮｎのうち任意のノードＮｎに対してコンテンツを要求する。コンテンツを取得したユーザノードは、当該コンテンツを保存すると、登録通知（パブリッシュ）を行う。この登録通知のメッセージもルートノードまで転送され、ルートノードにより新しい所在としてユーザノードが登録される。
【０１０２】
なお、ＤＨＴを利用したコンテンツ分散保存システムに関する詳細は、例えば、特開２００６−１９７４００号公報等で公知である。
【０１０３】
また、所謂ハイブリッド式のコンテンツ分散保存システムであれば、コンテンツの所在は所定のサーバ装置が管理している。この場合、各ノードＮｎは、コンテンツの所在の問い合わせを直接サーバ装置に対して行う。
【０１０４】
このようなコンテンツ分散保存システムにおいては、現に参加しているノードＮｎの数が多いほど、コンテンツ配信の負荷がより分散されるようになっているのが一般的である。従って、ユーザによりシステムからの離脱が指示された際にも、実際の離脱処理を遅延させることがのぞましい。なぜならば、離脱が遅延されている間はその分システムに参加しているノードＮｎの数が減らないからである。しかしながら、コンテンツの送信能力が極端に低いノードＮｎがコンテンツを送信する場合は別である。この場合、ユーザノードによる受信時間が長くなり、コンテンツの配信効率が低下する。その一方で、コンテンツの送信能力が高いノードＮｎが残っていれば、当該ノードＮｎによってコンテンツが送信される（当該ノードＮｎがコンテンツ保持ノードとしてユーザノードにより選択される）可能性があるので、当該ノードＮｎがコンテンツを送信することにより、コンテンツの配信効率が高くなる。
【０１０５】
そこで、コンテンツ分散保存システムにおいても、システムからの離脱が指示されてから実際に離脱処理を行うまでの離脱遅延時間を、コンテンツの送信能力が高いほど長くすることで、コンテンツを効率的に配信することができる。
【０１０６】
なお、コンテンツ分散保存システムにおいては、例えば、自ノードの上り帯域、パケット損失率等をコンテンツの送信能力を判定するための情報として用いることができる。
【０１０７】
以上説明したように、ツリー型の放送システム以外のピアツーピア型のコンテンツ配信システムにおいても、本発明を適用することができる。
【符号の説明】
【０１０８】
８  ネットワーク
９  オーバーレイネットワーク
１０  放送局
２０  接続先紹介サーバ
１０１，２０１，３０１  主電源
１０２，２０２，３０２  主記憶装置
１０３，２０３，３０３  ハードディスク装置
１０４，２０４，３０４  ＣＰＵ
１０５，２０５，３０５  ネットワークインタフェース
１０６，２０６，３０６  周辺機器制御チップ
１０７，２０７，３０７  ビデオチップ
１０８，３０８  音源チップ
１０９，２０８，３０９  キーボード
１１０，２０９，３１０  マウス
１１１，２１０，３１１  ディスプレイ
１１２，３１２  内蔵スピーカ
１１３，２１１，３１３  システムバス
１１４，２１２，３１４  ルータ
Ｎｎ  ノード
Ｓ  ツリー型放送システム
【図１】
2010232781.tif 000003
【図２】
2010232781.tif 000004
【図３】
2010232781.tif 000005
【図４】
2010232781.tif 000006
【図５】
2010232781.tif 000007
【図６】
2010232781.tif 000008
【図７】
2010232781.tif 000009
【図８】
2010232781.tif 000010