(57)【特許請求の範囲】
【請求項１】
複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置であって、
現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた、再接続先の候補となるべきノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を受信する接続先候補情報受信手段と、
前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、
前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、
現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
自己の下位階層にノード装置が接続されている場合には、当該ノード装置に前記受信された接続先候補情報を転送する接続先候補情報転送手段を備えることを特徴とするノード装置。
【請求項３】
請求項１又は２に記載のノード装置において、
現在自己に接続されている下位階層のノード装置の数が、自己の下位階層に接続可能なノード装置の許容数に達しているか否かを判別する許容数判別手段と、
前記下位階層のノード装置の数が前記許容数に達していないと判別された場合には、その後に下位階層として接続されるノード装置に対して転送するために、前記受信された接続先候補情報を所定時間蓄積する接続先候補情報蓄積手段と、
を備えることを特徴とするノード装置。
【請求項４】
請求項１乃至３の何れか一項に記載のノード装置において、
前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける階層レベルを示す情報が含まれ、
前記属性情報には、自己の当該システムにおける階層レベルを示す情報が含まれており、
前記再接続先候補特定手段は、前記階層レベルを示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己と同じ階層又は上位階層に位置するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とするノード装置。
【請求項５】
請求項１乃至４の何れか一項に記載のノード装置において、
前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける通信方式を示す情報が含まれ、
前記属性情報には、自己の当該システムにおける通信方式を示す情報が含まれており、
前記再接続先候補特定手段は、前記通信方式を示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己の通信方式と適合するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とするノード装置。
【請求項６】
請求項１乃至５の何れか一項に記載のノード装置において、
前記接続先候補情報には、再接続先の候補となるべきノード装置が複数示されており、
前記再接続先候補特定手段は、前記受信された接続先候補情報に示される複数のノード装置のうち、前記受信された接続先候補情報に示される複数のノード装置数より少ない数のノード装置を自己の再接続先の候補としてランダムに特定することを特徴とするノード装置。
【請求項７】
請求項１乃至６の何れか一項に記載のノード装置において、
前記再接続先候補記憶手段は、前記特定された再接続先の候補となるノード装置のネットワークアドレス情報に加えて当該ノード装置の属性情報を記憶し、
現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた更新情報であって、前記ツリー型放送システムにおける再接続により属性情報が変更されたノード装置の当該変更後の属性情報を含む更新情報を受信する更新情報受信手段と、
前記更新情報に含まれる属性情報に基づいて、前記再接続先候補記憶手段に記憶されている属性情報を更新する属性情報更新手段と、
を更に備えることを特徴とするノード装置。
【請求項８】
前記接続先候補情報は、前記ツリー型放送システムにおけるノード装置の接続態様を管理するサーバ装置により生成され、前記放送装置に提供されるものであって、
請求項１乃至７の何れか一項に記載のノード装置は、
自己の下位階層に接続されているノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、
前記受信された報告情報を蓄積する報告情報蓄積手段と、
自己が前記サーバ装置に代表して前記報告情報を送信する代表ノード装置である場合には、所定期間毎に前記蓄積された報告情報を当該サーバ装置に送信し、自己が前記代表ノード装置でない場合には、前記受信された報告情報を自己が接続している上位階層のノード装置に送信する報告情報送信手段と、
を備えることを特徴とするノード装置。
【請求項９】
コンピュータを、請求項１乃至８の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項１０】
複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置であって、
前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、
前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、
を備えることを特徴とするサーバ装置。
【請求項１１】
請求項１０に記載のサーバ装置において、  
何れかの前記ノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、
前記報告情報に基づいて前記ツリー型放送システムにおけるノード装置の接続態様を示す情報を更新する更新手段と、
を備えることを特徴とするサーバ装置。
【請求項１２】
コンピュータを、請求項１０又は１１に記載のサーバ装置として機能させることを特徴とするサーバ処理プログラム。
【請求項１３】
複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムであって、
当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、
前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、
前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、
を備え、
前記ノード装置は、
現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する接続先候補情報受信手段と、
前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、
前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、
現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、
を備えることを特徴とするツリー型放送システム。
【請求項１４】
複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける再接続処理方法であって、
当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、
前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する工程と、
前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する工程と、
を備え、
前記ノード装置は、
現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する工程と、
前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する工程と、
前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する工程と、
現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理工程と、
を備えることを特徴とするツリー型放送システムにおける再接続処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のシステムにおいて、アプリケーション層でコンテンツデータの放送（配信）経路を管理しながらコンテンツストリームの中継配信を行うＡＬＭ（Application Layer Multicast）という技術が知られている。このＡＬＭ技術では、コンテンツデータのファイルから生成されたパケットをノード装置間でリアルタイムに中継することにより、放送局（放送装置）から放送されたコンテンツデータを任意のノード装置へ配信（マルチチャスト）することができる。
【０００３】
このようなＡＬＭ技術の下で形成されたトポロジーに参加中のノード装置が、受信ストリーム（上位階層のノード装置からのコンテンツストリーム）の品質劣化や上位階層（上流）のノード装置の脱退（離脱）を契機として、新しい上位階層のノード装置へ再接続する場合、トポロジーを管理する接続先紹介サーバに要求して接続先の候補のネットワークアドレス情報を取得しこれを使用して再接続するか、或いは各ノード装置が近隣のノード装置との間で交換し蓄積している接続先の候補のネットワークアドレス情報を使用して自律的に再接続するか、のどちらか一方の方式を使う事例が多い。
【０００４】
前者の場合は、接続先紹介サーバによりリアルタイムに収集されるトポロジー情報全体の中から最適な接続先の候補を紹介することが可能であるため、当該接続先の候補を使用し確実な接続処理を実施することができる一方、多数のノード装置がトポロジーに参加している場合には接続先紹介サーバにかかる負荷が高くなり、システム全体として不安定になりやすいという課題がある。
【０００５】
後者の場合は、各ノード装置が近隣のノード装置との間で交換したネットワークアドレス情を用いて再接続を行うため、接続先の候補を得るために接続先紹介サーバに負荷をかけないで済む一方、トポロジー全体から最適な接続先の候補を選択することが困難であるため、接続先の候補となるノード装置に対して接続を試みても失敗して再試行が必要になる可能性が高い。
【０００６】
また、特許文献１には、接続先紹介サーバにてノード装置の属性情報毎に所定数の接続先の候補を管理しておき、トポロジーへの参加を希望するノード装置が、自己の属性情報を伴って接続先紹介サーバに対して接続先候補取得要求を行う方式が開示されている。この方式では、ノード装置は、上記接続先候補取得要求により接続先紹介サーバから取得した接続先の候補のネットワークアドレス情報を用いて被接続ノード装置に対して接続要求を行い、当該被接続ノード装置が接続を許可した場合に接続が確立されるようになっている。この方式によれば、接続先紹介サーバにおいて最適な接続先の候補を選択するのではなく、被接続ノード装置が、接続要求を行ったノード装置の諸条件を詳しく判定してから接続可否を応答するため、接続先紹介サーバが最適な候補を選択するための処理に関わる負荷を減らすことが可能とされている。
【特許文献１】特開２００６−３１９４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された方式では、被接続ノード装置から接続を拒否された場合には、接続処理を再試行しなければならず、システム全体でみたときに必ずしもトポロジーを安定させることができない。例えば、接続処理に時間を要するとトポロジーが分断され、下位階層のノード装置にコンテンツストリームが供給されない時間が長くなるためである。
【０００８】
そこで、本発明は、以上の問題等に鑑みてなされたものであり、トポロジーを管理する接続先紹介サーバに与える負荷を低減させながらも、接続先紹介サーバから得られる接続先の候補と同等の最適性を伴った候補を各ノード装置に提供することを可能とし、トポロジーを安定させることが可能なツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置であって、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた、再接続先の候補となるべきノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を受信する接続先候補情報受信手段と、前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、を備えることを特徴とする。
【００１０】
この発明によれば、トポロジーを管理する接続先紹介サーバに対して再接続となるノード装置の問い合わせを抑えることができ、したがって、当該接続先紹介サーバに与える負荷を低減（負荷集中を抑制）させながらも、接続先紹介サーバから得られる接続先の候補と同等の最適性を伴った候補を各ノード装置に提供することができ、トポロジーを安定させることが可能となる。
【００１１】
請求項２に記載の発明は、請求項１に記載のノード装置において、自己の下位階層にノード装置が接続されている場合には、当該ノード装置に前記受信された接続先候補情報を転送する接続先候補情報転送手段を備えることを特徴とする。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載のノード装置において、現在自己に接続されている下位階層のノード装置の数が、自己の下位階層に接続可能なノード装置の許容数に達しているか否かを判別する許容数判別手段と、前記下位階層のノード装置の数が前記許容数に達していないと判別された場合には、その後に下位階層として接続されるノード装置に対して転送するために、前記受信された接続先候補情報を所定時間蓄積する接続先候補情報蓄積手段と、を備えることを特徴とする。
【００１３】
この発明によれば、接続先候補情報の蓄積期間中に新たに下位階層として接続されたノード装置に対して即座に接続先候補情報を得ることができる。
【００１４】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載のノード装置において、前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける階層レベルを示す情報が含まれ、前記属性情報には、自己の当該システムにおける階層レベルを示す情報が含まれており、前記再接続先候補特定手段は、前記階層レベルを示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己と同じ階層又は上位階層に位置するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とする。
【００１５】
この発明によれば、配信経路が循環することを回避することができる。
【００１６】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載のノード装置において、前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける通信方式を示す情報が含まれ、前記属性情報には、自己の当該システムにおける通信方式を示す情報が含まれており、前記再接続先候補特定手段は、前記通信方式を示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己の通信方式と適合するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とする。
【００１７】
この発明によれば、通信を確立することができないことを回避することができる。
【００１８】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載のノード装置において、前記接続先候補情報には、再接続先の候補となるべきノード装置が複数示されており、前記再接続先候補特定手段は、前記受信された接続先候補情報に示される複数のノード装置のうち、前記受信された接続先候補情報に示される複数のノード装置数より少ない数のノード装置を自己の再接続先の候補としてランダムに特定することを特徴とする。
【００１９】
この発明によれば、特定される再接続先の候補数を抑制し、再接続の候補の散逸化を図ることができる。
【００２０】
請求項７に記載の発明は、請求項１乃至６の何れか一項に記載のノード装置において、前記再接続先候補記憶手段は、前記特定された再接続先の候補となるノード装置のネットワークアドレス情報に加えて当該ノード装置の属性情報を記憶し、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた更新情報であって、前記ツリー型放送システムにおける再接続により属性情報が変更されたノード装置の当該変更後の属性情報を含む更新情報を受信する更新情報受信手段と、前記更新情報に含まれる属性情報に基づいて、前記再接続先候補記憶手段に記憶されている属性情報を更新する属性情報更新手段と、を更に備えることを特徴とする。
【００２１】
この発明によれば、ノード装置が記憶している再接続の候補の属性情報の変更は、比較的短い遅延時間の中で補正することができ、接続先紹介サーバが提供する場合と同等の良質な再接続先の候補を提供することができる。
【００２２】
請求項８に記載の発明は、前記接続先候補情報は、前記ツリー型放送システムにおけるノード装置の接続態様を管理するサーバ装置により生成され、前記放送装置に提供されるものであって、請求項１乃至７の何れか一項に記載のノード装置は、自己の下位階層に接続されているノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、前記受信された報告情報を蓄積する報告情報蓄積手段と、自己が前記サーバ装置に代表して前記報告情報を送信する代表ノード装置である場合には、所定期間毎に前記蓄積された報告情報を当該サーバ装置に送信し、自己が前記代表ノード装置でない場合には、前記受信された報告情報を自己が接続している上位階層のノード装置に送信する報告情報送信手段と、を備えることを特徴とする。
【００２３】
この発明によれば、接続先紹介サーバに対する通信量を削減することができる。
【００２４】
請求項９に記載のノード処理プログラムは、コンピュータを、請求項１乃至８の何れか一項に記載のノード装置として機能させることを特徴とする。
【００２５】
請求項１０に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置であって、前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、を備えることを特徴とする。
【００２６】
この発明によれば、ツリー型放送システムに参加している全てのノード装置に対して、放送装置から上記接続先候補情報をより効率良く配信することができる。
【００２７】
請求項１１に記載の発明は、請求項１０に記載のサーバ装置において、何れかの前記ノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、前記報告情報に基づいて前記ツリー型放送システムにおけるノード装置の接続態様を示す情報を更新する更新手段と、を備えることを特徴とする。
【００２８】
請求項１２に記載のサーバ処理プログラムの発明は、コンピュータを、請求項１０又は１１に記載のサーバ装置として機能させることを特徴とする。
【００２９】
請求項１３に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムであって、当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、を備え、前記ノード装置は、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する接続先候補情報受信手段と、前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、を備えることを特徴とする。
【００３０】
請求項１４に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける再接続処理方法であって、当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する工程と、前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する工程と、を備え、前記ノード装置は、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する工程と、前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する工程と、前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する工程と、現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理工程と、を備えることを特徴とする。
【発明の効果】
【００３１】
本発明によれば、トポロジーを管理する接続先紹介サーバに対して再接続となるノード装置の問い合わせを抑えることができ、したがって、当該接続先紹介サーバに与える負荷を低減（負荷集中を抑制）させながらも、接続先紹介サーバから得られる接続先の候補と同等の最適性を伴った候補を各ノード装置に提供することができ、トポロジーを安定させることが可能となる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の最良の実施形態を図面に基づいて説明する。
［１．ツリー型放送システムの構成等］
始めに、図１等を参照して、本発明の一実施形態に係るツリー型放送システム全体の概要構成及び機能について説明する。
【００３３】
図１は、本実施形態に係るツリー型放送システムにおける各ノード装置の接続態様の一例を示す図である。
【００３４】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ，４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ，５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワーク）８が構築されている。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００３５】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。また、各ノードＮｎには、固有のノードＩＤが割り当てられている。
【００３６】
そして、本実施形態に係るツリー型放送システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成（構成）されるピアツーピア方式のネットワークシステムとなっている。なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９（論理的なネットワーク）である。
【００３７】
このようなツリー型放送システムＳにおいては、該システムＳに参加（トポロジーに参加）している複数のノードＮｎが放送局１０を最上位として複数の階層を形成しつつネットワーク８を介してツリー状に接続され、当該放送局１０から放送（例えばストリームミング配信方式で放送）されたコンテンツデータ（例えば、映像データ及び音声データ等）が、上位階層（以下、「上流」という）のノードＮｎから下位階層（以下、「下流」という）のノードＮｎに順次転送（ＡＬＭ（Application Layer Multicast））されるようになっている。
【００３８】
また、ツリー型放送システムＳにおいて形成されたトポロジーは、接続先紹介サーバ２０により管理されている。そして、接続先紹介サーバ２０は、ノードＮｎからの接続先紹介要求に応じて当該ノードＮｎに対してツリー型放送システムＳにおける接続先となる上流のノード（以下、「上流ノード」という）Ｎｎを紹介するようになっている。
【００３９】
図２は、ノードＮ１２がツリー型放送システムＳへの参加する際の様子を示した概念図である。
【００４０】
図２の例において、ノードＮ１２がツリー型放送システムＳに参加（言い換えれば、トポロジーに参加）する場合、先ず、当該ノードＮ１２は、接続先紹介サーバ２０へ上流ノード紹介要求メッセージを送信する（１）。接続先紹介サーバ２０は、内部で管理しているトポロジー管理情報の中から下流側に接続が可能な（下流側に直接接続されたノード数が接続許容数に達していない）ノード（以下、「下流接続可能ノード」という）Ｎｎを検索し、１以上の上流ノード候補のネットワークアドレス情報（例えば、ＩＰ（Internet Protocol）アドレス及びポート番号）等を含む上流ノード候補紹介メッセージをノードＮ１２へ返信（接続可能ノード紹介）する（２）。次に、ノードＮ１２は、接続先紹介サーバ２０から取得した上流ノード候補の中から一つの例えばノードＮ２を選択し、当該ノードＮ２へ接続要求メッセージを送信する（３）。次に、ノードＮ２は、内部で管理しているノード管理テーブルにノードＮ１２の情報を追加し、ノードＮ１２へ接続許可応答メッセージを返信する（４）。次に、ノードＮ１２は、ノードＮ２へストリーム開始要求メッセージを送信する（５）。最後に、ノードＮ２は、装置内部にストリーム中継用のオブジェクトを準備し、ノードＮ１２に対してストリーミングを開始する（６）。こうして、ツリー型放送システムＳへのノードＮ１２の参加が完了する。
【００４１】
一方、ノードＮ１２がツリー型放送システムＳから脱退（離脱）する場合、当該ノードＮ１２は、ストリーム供給元である上流ノードＮ２に対してストリーム停止要求メッセージと接続解除要求メッセージを送信する。これに応じて、ノードＮ２は、ストリーム中継用オブジェクトを破棄することでノードＮ１２に対するストリーミングを停止し、同時にノード管理テーブルからノードＮ１２の情報を削除することでノードＮ２との接続関係を断ち切る。
【００４２】
このとき、脱退するノードＮｎの下流側にノードＮｎが存在していた場合、当該下流のノード（以下、「下流ノード」という）Ｎｎは、例えば、以下のａ）、ｂ）のいずれかの方法で放送経路の復元を行うことになる。
【００４３】
ａ）タイムアウト方式による再生
上流ノードＮｎからのストリーミング状態を常時監視しておき、一定時間、ストリーム供給が途絶したこと（自律的再接続事象の発生）を契機として、当該上流ノードＮｎとの接続状態を破棄して新たな上流ノードＮｎに再接続する。
【００４４】
ｂ）イベント通知方式による再生
上流ノードＮｎがツリー型放送システムＳから脱退する際、直下の下流ノードＮｎに向けて脱退イベントを通知する。下流ノードＮｎが上流ノードＮｎからの脱退イベントを受信する（自律的再接続事象の発生）と、上流ノードＮｎとの接続状態を破棄して新たな上流ノードＮｎに再接続する。
【００４５】
また、ツリー型放送システムＳに参加している各ノードＮｎは、上流ノードＮｎからのストリーム受信状態を監視し、一定の受信品質未満となったら（自律的再接続事象の発生）、上流ノードＮｎを切り替え、新たな上流ノードＮｎに再接続するようになっている。なお、受信品質の評価基準としては、過去一定期間における平均パケットレートおよびパケット損失率を用いることができる。
【００４６】
ここで、本実施形態においては、上記下流ノードＮｎの再接続先の候補となるべき複数の上流ノードＮｎを示す接続先候補情報は接続先候補パケットとして（当該パケットに含まれて）放送局１０から放送（配信）され上流から下流のノードＮｎに順次転送（ＡＬＭ）されるようになっている。つまり、コンテンツデータの配信経路と同じ経路で接続先候補パケットが配信される。
【００４７】
図３は、接続先候補パケットが上流から下流に向けて放送される様子を示す図である。
【００４８】
これにより、接続先候補パケットＰは、トポロジー参加中（ＡＬＭのマルチキャストの配信経路上）の全てのノードＮｎに行き渡るようになっている。なお、図中、ナンバー数字（No.1〜No.8）は、配信順序を示している。
【００４９】
また、放送局１０は、図３に示すように、上記接続先候補情報を含むチャンク（かたまり）Ｃを接続先紹介サーバ２０から例えば定期的に取得するようになっている。つまり、接続先紹介サーバ２０は、トポロジー管理情報の中から最新の接続可能候補を複数個抽出して接続先候補情報を生成し、これを含むチャンクＣを放送局１０へ定期的に送信する。そして、放送局１０は、取得したチャンクＣに含まれる接続先候補情報を複数に分割し、分割した各接続先候補情報を接続先候補パケットＰで放送する。
【００５０】
なお、放送局１０は、例えば、次の接続先候補情報を含むチャンクＣを取得するまでの時間を利用して、一定の送信速度（例えば、128kbps）でゆっくりと接続先候補パケットＰを放送することになる。
【００５１】
図４は、接続先候補パケットＰの構成の一例を示す図である。
【００５２】
図４に示すように、接続先候補パケットＰのヘッダ部は、ＩＰヘッダ、ＵＤＰ（User Datagram Protocol）ヘッダ、及び応用層ヘッダを含んで構成されており、ペイロード部には、接続先候補情報が格納されるようになっている。
【００５３】
ペイロード部に格納される接続先候補情報には、再接続先の候補に関する情報（接続先候補情報）が当該候補の数分（図４の例では、候補１，２，３・・・）含まれている。また、各候補に関する接続先候補情報には、グローバルＩＰアドレス、ローカル（プライベート）ＩＰアドレス、ＮＡＴ（Network Address Translation）越え属性（当該システムＳにおけるＮＡＴ越えの通信方式に関する情報（ヒント）の一例）、下流接続本数、及び階層レベル値（当該システムＳにおける階層レベルを示す情報の一例）等が含まれる。なお、グローバルＩＰアドレス及びローカルＩＰアドレスには、図示しないが夫々ポート番号が付加される。また、ＮＡＴ越え属性、下流接続本数、及び階層レベル値は、属性情報の一例である。
【００５４】
ここで、各ノードＮｎには必ずしも固有のグローバルＩＰアドレスが割り当てられているとは限らず、ローカルＩＰアドレスしか割り当てられていない場合もある。この場合、当該ノードＮｎがネットワーク８に接続するために公知のＮＡＴ（Network Address Translation）という技術が用いられる。このようなＮＡＴにおいては、ＮＡＴ対応ルータが、ローカルＩＰアドレスとグローバルＩＰアドレスを相互に変換することにより、ローカルＩＰアドレスしか割り当てられていないノードＮｎから、透過的にネットワーク８に接続できるようになっている。しかし、このようなＮＡＴにおいては、ＮＡＴ対応ルータの外側（つまり、ＷＡＮ（Wide Area Network）側のネットワーク）からＮＡＴ対応ルータ内側（つまり、ＬＡＮ（Local Area Network）側のネットワーク）のノードＮｎにダイレクトに接続できない、つまり、ＮＡＴ対応ルータの外側のノードＮｎからＮＡＴ対応ルータ内側のノードＮｎにセッションを開始できないという問題がある。この問題を解決する通信方式として、UPnP（Universal Plug and Play）」や「UDP（User Datagram Protocol ） hole punching」などのＮＡＴ越えの技術があるが、各候補に関する接続先候補情報に含まれるＮＡＴ越え属性は、ローカルＩＰアドレスしか割り当てられていないノードＮｎ（再接続先の候補となるべきノードＮｎ）に対するＮＡＴ越えの技術を示している。
【００５５】
また、下流接続本数は、再接続先の候補となるべきノードＮｎの下流に直接接続されている下流ノードＮｎの数を示している。例えば、図３の例において、ノードＮ２の下流接続本数は、ノードＮ５とノードＮ１２の２つである。
【００５６】
また、階層レベル値は、再接続先の候補となるべきノードＮｎがトポロジーにおいてどの階層に位置するかを示している。例えば、図３の例において、最上位である放送局１０から下流にいくほど階層レベル値が上がっていくようになっており、ノードＮ１及びノードＮ２の階層レベル値は「１」である。
【００５７】
一方、ヘッダ部における応用層ヘッダには、配信番号（放送番号）及び配信ノード数（放送ノード数）が含まれている。配信番号は、チャンクＣ毎に統一された番号である。従って、一つのチャンクＣを構成する複数の接続先候補パケットＰには同じ配信番号が付与される。また、配信ノード数は、今回の配信番号で放送された接続先候補パケットＰに含まれる接続先候補情報の中から何個分の再接続先の候補を抽出するかを示している。
【００５８】
上記のように放送された接続先候補パケットＰは、当該システムＳにおける上流から下流に向かって順次転送されていくことになるが、下流接続本数に余力のある下流接続可能ノードＮｎにおいて所定時間だけ蓄積（保持）される。
【００５９】
図５は、接続先候補パケットＰが下流接続可能ノードＮ１４において所定時間蓄積される様子を示す図である。
【００６０】
図５の例では、放送局１０から順次放送された接続先候補パケットＰ（No.1〜No.6）が下流接続可能ノードＮ１４において蓄積されている。この蓄積期間中に、図５に示すように、新たなノードＮ１５が直属下流ノードとして接続してきた場合に、下流接続可能ノードＮ１４は、先に蓄積していた接続先候補パケットＰを当該下流ノードＮ１５に送信することになる。これにより、新たにトポロジーに参加したノードＮｎ、或いは同一トポロジー内で接続先を変更したノードＮｎに対してもそれ以前に放送された接続先候補パケットＰを直ちに送信することができる。
【００６１】
そして、接続先候補パケットＰを受信したノードＮｎは、当該接続先候補パケットＰに含まれる接続先候補情報に示される再接続先の候補となるべきノードＮｎのうち、自己の属性情報に適合するノードＮｎを自己の再接続先の候補として特定し、そのノードＮｎに候補に関する接続先候補情報（少なくともネットワークアドレス情報）を記憶（接続候補管理テーブル（後述）に登録）する。なお、接続先候補情報に示される再接続先の候補となるべきノードＮｎが、自己の属性情報に適合するか否かの判断の詳細については後述する。
【００６２】
ところで、各ノードＮｎは、自律的再接続事象の発生を契機として現在自己が接続している上流ノードＮｎ又は放送局１０との間の当該接続を解除し新たに別の上流ノードＮｎに再接続する場合には、上記接続先候補情報が記憶されているノードＮｎのうち、一つのノード（つまり、新たな上流ノード）Ｎｎを再接続先として選定し再接続処理を行って当該新たな上流ノードＮｎに再接続することになる。
【００６３】
こうして再接続したノードＮｎ（同一トポロジー内で接続先を変更したノードＮｎ）、或いは新たにトポロジーに参加したノードＮｎは、当該トポロジーへの参加報告（新規の参加の報告、又は再接続による参加の報告）を示す参加報告メッセージを接続先紹介サーバ２０に対して送信（参加報告）することになるが、当該参加報告メッセージの接続先紹介サーバ２０への送信は、特定条件に合致するノード（以下、これを「代表ノード」という）Ｎｎが代表して行うようにすることが望ましい。即ち、参加報告を通知したいノードＮｎは、自己（自ノード）が直接接続している上流ノードＮｎに対して参加報告メッセージを送信し、当該参加報告メッセージを受信した上流ノードＮｎが参加報告メッセージをさらに上流の上流ノードＮｎへ中継（転送）する。そして、特定条件に合致する、例えば所定値（例えば１０）の倍数の階層に位置する代表ノードＮｎが参加報告メッセージを受信するまで当該中継を繰り返し、代表ノードＮｎが参加報告メッセージを受信したときにこれを蓄積し次の報告時間が到来するまで待ってから当該参加報告メッセージを接続先紹介サーバ２０に送信する。
【００６４】
同様に、上記トポロジーから脱退するノードＮｎが、当該トポロジーからの脱退報告を示す脱退報告メッセージを接続先紹介サーバ２０に対して送信（脱退報告の通知）する場合にも、当該脱退報告メッセージの接続先紹介サーバ２０への送信は、特定条件に合致する代表ノードＮｎが代表して行うようにすることが望ましい。
【００６５】
なお、参加報告メッセージには、自己のネットワークアドレス情報、自己のＮＡＴ越え属性、及び接続した上流ノードＮｎのネットワークアドレス情報）等の情報が含まれる。
【００６６】
このように参加又は脱退報告メッセージを代表ノードＮｎにより一つに取り纏めて接続先紹介サーバ２０に送信することで、接続先紹介サーバ２０に対する通信量を削減することができる。
【００６７】
なお、各ノードＮｎにおいて自己の生死（例えば、電源オン又はオフ）状態を示す生死報告メッセージを定期的に接続先紹介サーバ２０へ送信している場合には、当該生死報告メッセージについても参加又は脱退報告メッセージと同様に代表ノードＮｎが代表して行うように構成しても良い。
【００６８】
また、再接続によりノードＮｎから送信された例えば参加報告メッセージを受信した接続先紹介サーバ２０は、当該参加報告メッセージの受信を契機として、当該再接続したノードＮｎの属性情報の変更（変化）の有無を検知することができる。仮に、ノードＮｎの属性情報が変更されていた（変更有）場合には、接続先紹介サーバ２０は、属性情報が変更されたことを任意のノードＮｎへ周知させるために、属性情報が変更されたノードＮｎのネットワークアドレス情報及び変更後の属性情報を含む更新情報が格納されたノード属性更新パケットを生成、これを放送局１０に送信し、放送局１０は当該ノード属性更新パケットをトポロジー上で放送することになる。
【００６９】
図６は、ノード属性更新パケットＰＡが上流から下流に向けて放送される様子を示す図である。
【００７０】
こうして、ノード属性更新パケットＰＡを受信したノードＮｎでは、自己の再接続候補管理テーブル内に該当するノードＮｎが登録されているか否かを検査し、登録されている場合には該当するノードＮｎの属性情報を、ノード属性更新パケットＰＡを含まれる属性情報に置き換える。これにより、各ノードＮｎが記憶（キャッシュ）している上流ノードＮｎの候補の属性情報の変更は、比較的短い遅延時間の中で補正することが可能となる。
［１−２．放送局１０の構成等］
次に、図７を参照して、放送局１０の構成及び機能について説明する。
【００７１】
図７は、放送局１０の概要構成例を示す図である。
【００７２】
放送局１０は、図７に示すように、主電源１０１、主記憶装置１０２、ハードディスク装置１０３、ＣＰＵ１０４、ネットワークインタフェース１０５、周辺機器制御チップ１０６、ビデオチップ１０７、音源チップ１０８、キーボード１０９、マウス１１０、ディスプレイ１１１、及び内蔵スピーカ１１２等を備えて構成されている。また、主電源１０１、主記憶装置１０２、ハードディスク装置１０３、ＣＰＵ１０４、ネットワークインタフェース１０５、周辺機器制御チップ１０６、ビデオチップ１０７、及び音源チップ１０８は、システムバス１１３を介して相互に接続されている。また、放送局１０は、ルータ１１４を介してネットワーク８に接続される。
【００７３】
主記憶装置１０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、ストリーム制御プログラム、画面制御プログラム、トポロジー制御プログラム、及びデコーダ（プログラム）等が記憶されている。また、主記憶装置１０２は、ノード管理テーブルを記憶しており、該ノード管理テーブルには、放送局１０に接続された下流ノードＮｎの情報（例えば、ＩＰアドレス及びポート番号等）が登録される。また、主記憶装置１０２は、バッファメモリ（例えば、リングバッファ）を有する。
【００７４】
また、ハードディスク装置１０３には、放送用コンテンツデータ及びチャンクＣが記録されている。
【００７５】
ＣＰＵ１０４は、主記憶装置１０２に記憶された各種プログラムにしたがって（つまり、プログラムの実行により）、例えばハードディスク装置１０３に記録されたコンテンツデータをパケット化し、ノード管理テーブルに登録された下流ノードＮｎに対して放送（ストリーム配信）する放送処理を行う。また、ＣＰＵ１０４は、接続先紹介サーバ２０から例えば定期的に送信されてきた、接続先候補情報を含むチャンクＣ及び当該接続先候補情報の放送指令を示す放送指令メッセージ（放送指令情報）の受信処理、及び当該チャンクＣの主記憶装置１０２への記憶処理を行う。
【００７６】
そして、ＣＰＵ１０４は、例えば定期的に上記記憶されたチャンクＣを読み出し、これに含まれる接続先候補情報を複数に分割し、分割した各接続先候補情報を含む接続先候補パケットＰをノード管理テーブルに登録された下流ノードＮｎに対して放送する放送処理を行うようになっている。
【００７７】
ここで、一つの接続先候補パケットＰにおける再接続先の候補となるべきノードＮｎの数は任意に設定可能である。例えば、一つの接続先候補パケットＰにおける再接続先の候補となるべきノードＮｎの数が３個に設定されており、一つのチャンクＣにおける再接続先の候補となるべきノードＮｎの数が２４個であるとすると、図３に示すように、接続先候補情報は８つに分割され、各接続先候補パケットＰ（No.1〜No.8）で放送されることになる。
【００７８】
更に、ＣＰＵ１０４は、接続先紹介サーバ２０から送信されてきたノード属性更新パケットＰＡの受信処理、及び当該ノード属性更新パケットＰＡを上記下流ノードＮｎに対して放送する放送処理を行うようになっている。
【００７９】
なお、このような放送局１０として、専用の放送サーバの他、何れかのノードＮｎが適用されても良い。
［１−３．接続先紹介サーバ２０の構成等］
次に、図８を参照して、接続先紹介サーバ２０の構成及び機能について説明する。
【００８０】
図８は、接続先紹介サーバ２０の概要構成例を示す図である。
【００８１】
接続先紹介サーバ２０は、図８に示すように、主電源２０１、主記憶装置２０２、ハードディスク装置２０３、接続先候補情報生成手段、接続先候補情報送信手段、報告情報受信手段、及び更新手段の一例としてのＣＰＵ２０４、ネットワークインタフェース２０５、周辺機器制御チップ２０６、ビデオチップ２０７、キーボード２０８、マウス２０９、及びディスプレイ２１０等を備えて構成されている。また、主電源２０１、主記憶装置２０２、ハードディスク装置２０３、ＣＰＵ２０４、ネットワークインタフェース２０５、周辺機器制御チップ２０６、及びビデオチップ２０７は、システムバス２１１を介して相互に接続されている。また、接続先紹介サーバ２０は、ルータ２１２を介してネットワーク８に接続される。
【００８２】
主記憶装置２０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、放送局管理プログラム、トポロジー管理プログラム、接続先紹介プログラム、及び運用管理プログラム等のサーバ処理プログラムが記憶されている。
【００８３】
また、ハードディスク装置２０３には、放送局管理データベース及びトポロジーデータベースが構築されている。放送局管理データベースには、各放送局１０の所在情報（例えば、ＩＰアドレス及びポート番号等）が放送チャンネル情報（例えばチャンネル番号）に対応付けられて登録される。また、トポロジーデータベースには、トポロジー管理情報（接続態様を示す情報の一例）が登録されている。かかるトポロジー管理情報は、放送チャンネル毎に存在し、放送チャンル情報に対応付けられている。そして、トポロジー管理情報には、トポロジーに参加している各ノードＮｎのネットワークアドレス情報（例えばＩＰアドレス及びポート番号）、ＮＡＴ越え属性、下流接続本数、現在接続されている下流ノードを示す情報（例えば、ノードＩＤ）、下流ノードの接続許容数（例えば、２）、転送能力、及び階層レベル値等の情報が含まれている。ここで、転送能力とは、例えば、ノードＮｎのＣＰＵの処理速度（ＧＨｚ）やネットワーク８における有効帯域（例えば、データ転送速度（ｂｐｓ））のことをいう。
【００８４】
ＣＰＵ２０４は、主記憶装置２０２に記憶された各種プログラムにしたがって、例えば新たにトポロジーへ参加希望するノードＮｎからの接続先紹介要求に応じて上記トポロジー管理情報から下流接続可能ノードＮｎを検索し、検索された１以上の上流ノードの候補を接続先として紹介する紹介処理を行う。
【００８５】
また、ＣＰＵ２０４は、例えば定期的に、トポロジー管理情報に基づいて最新の下流接続可能ノードＮｎを再接続先の候補となるべきノードＮｎとして複数個抽出して、上述した接続先候補情報を生成し、これを含むチャンクＣ、及び当該接続先候補情報の放送指令を示す放送指令メッセージを放送局１０に送信する送信処理を行うようになっている。一つのチャンクＣに含める再接続先の候補となるべきノードＮｎの数は任意に設定可能である。なお、最新の下流接続可能ノードＮｎが、一つのチャンクＣに含めるノードＮｎの数よりも多い場合には、例えば転送能力がより高いノードＮｎや下流接続本数がより少ないノードＮｎ等が優先されて再接続先の候補となるべきノードＮｎとして特定される。
【００８６】
また、ノードＮｎからの参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージが受信された場合、ＣＰＵ２０４は、当該メッセージに基づいてトポロジー管理情報を更新する更新処理を行うようになっている。
【００８７】
また、上述したように、ＣＰＵ２０４は、再接続したノードＮｎの属性情報の変更（例えば、下流接続本数や階層レベル値の変更）の有無を検知する検知処理を行う。そして、当該ノードＮｎの属性情報が変更されていた場合、ＣＰＵ２０４は、属性情報が変更されたノードＮｎのネットワークアドレス情報及び変更後の属性情報を含む更新情報が格納されたノード属性更新パケットＰＡを生成、これを放送局１０に送信する送信処理を行うようになっている。
［１−４．ノードＮｎの構成等］
次に、図９を参照して、ノードＮｎの構成及び機能について説明する。
【００８８】
図９は、ノードＮｎの概要構成例を示す図である。
【００８９】
ノードＮｎは、図９に示すように、主電源３０１ａ、補助電源３０１ｂ、再接続先候補記憶手段、接続先候補情報蓄積手段及び報告情報蓄積手段の一例としての主記憶装置３０２、ハードディスク装置３０３、接続先候補情報受信手段、再接続先候補特定手段、接続処理手段、接続先候補情報転送手段、許容数判別手段、更新情報受信手段、属性情報更新手段、報告情報受信手段、及び報告情報送信手段の一例としてのＣＰＵ３０４、ネットワークインタフェース３０５、周辺機器制御チップ３０６、ビデオチップ３０７、音源チップ３０８、キーボード３０９、マウス３１０、ディスプレイ３１１、及び内蔵スピーカ３１２等を備えて構成されている。また、補助電源３０１ｂ、主記憶装置３０２、ハードディスク装置３０３、ＣＰＵ３０４、ネットワークインタフェース３０５、周辺機器制御チップ３０６、ビデオチップ３０７、及び音源チップ３０８は、システムバス３１３を介して相互に接続されている。また、ノードＮｎは、ルータ３１４を介してネットワーク８に接続される。
【００９０】
なお、ノードＮｎとしては、ＰＣ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【００９１】
主記憶装置３０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、画面制御プログラム、ストリーム制御プログラム、トポロジー制御プログラム、及びデコーダ等のノード処理プログラムが記憶されている。
【００９２】
また、主記憶装置３０２には、受信したコンテンツデータを一時的に蓄積するためのバッファメモリ（例えば、リングバッファ）を有する。また、主記憶装置３０２は、ノード管理テーブル及び接続候補管理テーブルを記憶している。ノード管理テーブルには、自ノードに接続されている下流ノードの情報（ＩＰアドレス及びポート番号等）が登録される。また、接続候補管理テーブルには、接続先候補パケットＰに含まれる接続先候補情報から、後述する再接続特定処理により特定された再接続先の候補に関する接続先候補情報等が登録される。
【００９３】
図１０は、接続候補管理テーブルに登録された接続先候補情報の一例を示す図である。
【００９４】
図１０に示す例では、接続候補管理テーブルには、再接続特定処理により特定された再接続の候補毎に、グローバルＩＰアドレス、ローカルＩＰアドレス、ＮＡＴ越え属性、下流接続本数、及び階層レベル値、更にはこれらの情報のキャッシュ時刻としての登録年月日時刻（以下、単に、「登録時刻」という）が対応付けられて登録されている。この登録時刻を対応付けて登録することで登録された情報の新しさを判断することができる。
【００９５】
なお、図１０に示すＮＡＴ越え属性において、「TCP Client」は、該当する再接続の候補ノードが接続されているルータがUPnPに対応していない、かつUDP  Hole Punchingが実施不可能な場合に付与されるNAT越え属性である。このようなノードを上流ノードとして接続する場合には、設置済みの中継サーバなどを使って上流ノードから自ノードの待機ポートに対してTCP接続をするかたちで接続を確立させる。また、図１０に示すＮＡＴ越え属性において「UPnP+TCP」は、ＮＡＴ越えの技術としてUPnPを採用しており、且つネットワーク８に接続するためのＮＡＴ対応ルータがTCPに基づくパケットのみを中継する機能を有していることを示している。一方、「UPnP+UDP」は、ＮＡＴ越えの技術としてUPnPを採用しており、且つネットワーク８に接続するためのＮＡＴ対応ルータがUDPに基づくパケットのみを中継する機能を有していることを示している。
【００９６】
また、主記憶装置３０には、自ノードのＮＡＴ越え属性、下流接続本数、及び階層レベル値（例えば、接続先紹介サーバ２０又は上流ノードから取得）を含む属性情報が記憶されている。
【００９７】
なお、代表ノードＮｎの主記憶装置３０２には、下流ノードＮｎから受信した参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージを一時的に蓄積するためのメッセージ取り纏め用記憶領域が確保される。また、下流接続本数に余力のある下流接続可能ノードＮｎの主記憶装置３０２には、上流ノードＮｎから受信した接続先候補パケットＰを一時的に蓄積するための接続先候補パケット蓄積用記憶領域が確保される。
【００９８】
ＣＰＵ３０４は、主記憶装置３０２に記憶された各種プログラムにしたがって、ツリー型放送システムＳ（ある放送チャンネルに係るトポロジー）に参加するための参加処理を実行し、参加後に放送局１０又は上流ノードＮｎから放送されネットワークインタフェース３０５を介して受信されたコンテンツデータのパケット（コンテンツストリーム）をバッファリングさせつつ再生処理を行う。
【００９９】
ここで、上記参加処理では、接続先紹介サーバ２０に対して接続先紹介要求がなされ、接続先紹介サーバ２０から紹介された上流ノードＮｎに接続（セッション確立）してストリーム開始要求がなされる。また、上記再生処理では、受信されバッファメモリに蓄積されたコンテンツデータ（例えば、ビデオデータ及びオーディオデータ）が読み出されデコーダによりデコードされる。そして、デコードされたビデオデータ（映像情報）がビデオチップ３０７を通じてディスプレイ３１１に出力され、デコードされたオーディオデータ（音声情報）が音源チップ３０８を通じて内蔵スピーカ３１２（又は図示しない外部スピーカ）から出力される。
【０１００】
また、自ノードに下流ノードＮｎが接続されている場合、ＣＰＵ３０４は、バッファメモリに蓄積されたコンテンツデータの各パケットを下流ノードＮｎに転送（コンテンツストリームの中継）する転送処理を行う。
【０１０１】
また、ＣＰＵ３０４は、放送局１０又は上流ノードＮｎから放送されネットワークインタフェース３０５を介して受信された接続先候補パケットＰに含まれる接続先候補情報に示される複数のノードＮｎうち、自ノードの属性情報に適合するノードＮｎを自ノードの再接続先の候補として特定する再接続特定処理を行い、特定したノードＮｎに関する接続先候補情報を接続候補管理テーブルに登録する。
【０１０２】
例えば、ＣＰＵ３０４は、接続先候補パケットＰにおける応用層ヘッダにおける配信ノード数を参照し、当該配信ノード数分の再接続先の候補を当該接続先候補情報から抽出する。このとき、ＣＰＵ３０４は、属性情報の適合性を検査し、自ノードの属性情報に適合しないノードＮｎを、抽出した再接続先の候補から除外する。
【０１０３】
例えば、ＣＰＵ３０４は、自ノードのＮＡＴ越え属性と接続先候補情報に示されるノードＮｎのＮＡＴ越え属性に基づいて（比較して）、接続先候補情報に示されるノードＮｎのうち、自己のＮＡＴ越え属性と適合しないノードＮｎを、自ノードの属性情報に適合しない再接続先の候補として除外する。これは、ＮＡＴ越えの適合性が合わない限りピアツーピアのコネクションを生成する（接続を確立する）ことが困難という問題が生じるからである。
【０１０４】
また、例えば、ＣＰＵ３０４は、自ノードの階層レベル値と接続先候補情報に示されるノードＮｎの階層レベル値に基づいて（比較して）、接続先候補情報に示されるノードＮｎのうち、自ノードより下位階層に位置するノードＮｎ、つまり、階層レベル値が自ノードより大きいノードＮｎを、自己の属性情報に適合しない再接続先の候補として除外する。これは、自ノードの階層レベル値よりも大きいノードＮｎを特定可能対象とした場合、自ノードから下流へたどれる下流ノードＮｎを特定する可能性があり、仮にこのような下流ノードＮｎを上流ノードＮｎとみなして接続した場合には配信経路が循環するという問題が生じるからである。
【０１０５】
なお、ＮＡＴ越え属性の適合性と階層レベル値の適合性の何れか一方で検査するように構成しても構わないが、ＮＡＴ越え属性の適合性と階層レベル値の適合性の双方を満たしているノードＮｎが再接続の候補として特定されることが望ましい。また、ＮＡＴ越え属性や階層レベル値の他の属性情報に基づき適合性を検査するように構成しても良い。
【０１０６】
ところで、接続先紹介サーバ２０により抽出された再接続先の候補となるべきノードＮｎの接続先候補情報は、当該トポロジーに参加した全てのノードＮｎに対して等しく配信されるが、接続先候補情報に示される特定の再接続先の候補のみが多くのノードＮｎにより特定されると、再接続が同時多発的に発生した場合に、上記特定されたノードＮｎに対して接続要求が集中するという事態が生じる。このような事態を回避するため、各ノードＮｎが接続先候補パケットＰに含まれる接続先候補情報から再接続先の候補を特定する際には、トポロジー内での再接続の候補が散逸化されることが望ましい。例えば、一つの接続先候補パケットＰから特定される再接続先の候補数を抑制（上述した配信ノード数により抑制）すると共に、この再接続特定処理に対して蓋然性（ランダムさ）を導入するような処理方法を導入することが具体例としてあげられる。
【０１０７】
図１１は、トポロジー内での再接続の候補が垂直方向に散逸化するように特定される例を示す図である。接続先候補パケットＰを受信したノードＮｎは、上述したように階層レベル値の適合性を検査する場合、自己の階層レベル値以上の再接続先の候補のみを特定することになるので、当該特定される再接続先の候補は、図１１における「再接続の候補のトポロジーにおける位置関係」に示すように、当該トポロジーの垂直方向において偏らなくなる。
【０１０８】
ところで、受信された接続先候補パケットＰはバッファメモリに一時的に蓄積されるが、自ノードに下流ノードＮｎが接続されている場合、ＣＰＵ３０４は、バッファメモリに蓄積された接続先候補パケットＰを下流ノードＮｎに転送する転送処理を行う。このとき、ＣＰＵ３０４は、現在自ノードに接続されている下流ノードＮｎの数が、自ノードの接続許容数に達しているか否かを判別する判別処理を行う。ＣＰＵ３０４は、接続許容数に達していないと判別した場合には、その後に下流に直接接続されるノードＮｎに対して接続先候補パケットＰを転送するために、当該接続先候補パケットＰを上記バッファメモリから主記憶装置３０２における接続先候補パケット蓄積用記憶領域に移して所定時間蓄積させる。そして、この蓄積期間中に、図５に示すように、新たなノードＮｎが下流ノードとして接続してきた場合には、ＣＰＵ３０４は、上記蓄積していた接続先候補パケットＰを当該下流ノードＮｎに転送する転送処理を行う。これにより、新たにトポロジーに参加したノードＮｎも即座に接続先候補情報を得ることが可能となる。
【０１０９】
そして、ＣＰＵ３０４は、自律的再接続事象の発生を契機として現在自己が接続している上流ノードＮｎ又は放送局１０との間の当該接続を解除し新たに別の上流ノードＮｎに再接続する場合には、上記接続候補管理テーブルに登録されているノードＮｎのうち、一つのノードＮｎを再接続先として選定（例えば、ランダムに選定、或いは、登録時刻が現在に最も近いノードＮｎを優先して選定）し、当該選定した再接続先となる上流ノードＮｎのネットワークアドレス情報に基づき当該上流ノードＮｎに接続するための再接続処理を行う。かかる再接続処理は、例えば、図２に示す（３）〜（６）の手順で行われる。
【０１１０】
また、ＣＰＵ３０４は、定期的な間隔で上記接続候補管理テーブルにおける登録時刻を参照して、過去一定期間より前の古い（陳腐化した）接続先候補情報を削除する削除処理を行う。これにより、接続候補管理テーブルには常に新鮮な接続先候補情報のみが保持されるようになり、ノードＮｎが再接続処理の一環で接続候補管理テーブルにおける接続先候補情報を利用する局面において接続失敗となる確率を低く抑えることができる。
【０１１１】
また、ＣＰＵ３０４は、自ノードが接続先紹介サーバ２０に代表して報告情報を送信する代表ノードＮｎであるか否かを判別する判別処理を行う。当該判別は、例えば、自ノードが特定条件に合致するか否か（例えば自ノードが所定値（例えば１０）の倍数の階層に位置するか否か）により行われる。自ノードが代表ノードＮｎである場合において、自ノードに直接接続されている下流ノードＮｎからの参加（再接続による参加も含む）報告メッセージ、脱退報告メッセージ、又は生死報告メッセージが受信されたとき、ＣＰＵ３０４は、当該報告メッセージ（参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージ）を主記憶装置３０２におけるメッセージ取り纏め用記憶領域に一時的に蓄積させ、所定期間毎に当該蓄積された報告メッセージを接続先紹介サーバ２０に送信する送信処理を行う。このとき、自ノードに係る上記報告メッセージも接続先紹介サーバ２０に送信される。
【０１１２】
一方、自ノードが代表ノードＮｎでない場合において、自ノードに直接接続されている下流ノードＮｎからの参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージが受信されたとき、当該受信された上記報告メッセージを自ノードが直接接続している上位ノードＮｎに送信（転送）する送信処理を行う。このとき、自ノードに係る上記報告メッセージも上位ノードＮｎに送信される。
【０１１３】
また、放送局１０又は上流ノードＮｎから放送されネットワークインタフェース３０５を介して受信されたノード属性更新パケットＰＡにおける更新情報に含まれる変更後の属性情報に基づいて、接続候補管理テーブルに登録されている属性情報を更新する更新処理を行う。例えば、更新情報に変更後の下流接続本数又は階層レベル値が含まれている場合には、接続候補管理テーブルに登録されている下流接続本数又は階層レベル値が、上記更新情報に含まれる下流接続本数又は階層レベル値に置き換えられる。
［２．ツリー型放送システムＳの動作］
次に、本実施形態に係るツリー型放送システムＳの動作について説明する。
（ノードＮｎの処理）
先ず、図１２乃至図１６を参照して、ノードＮｎにおけるＣＰＵ３０４の処理について説明する。
【０１１４】
図１２乃至図１６は、ノードＮｎにおけるＣＰＵ３０４により実行される処理を示すフローチャートである。
【０１１５】
図１２の処理は、例えば主電源３０１ａ及び補助電源３０１ｂのオンによりノードＮｎが起動することにより開始される。当該処理が開始されると、ステップＳ１では、ノードＮｎにおける各種プログラムが初期化され、タイムアウト事象を契機に実行される種々の周期処理向けのタイマが起動される。
【０１１６】
ステップＳ２では、キーボード３０９又はマウス３１０を介してユーザからの参加要求があったか否か、又は上述した自律的再接続事象が発生したか否かが判別される。そして、ユーザからの参加要求があった場合、又は自律的再接続事象が発生した場合には（ステップＳ２：ＹＥＳ）、ステップＳ３に進み、ユーザからの参加要求及び自律的再接続事象の発生がない場合には（ステップＳ２：ＮＯ）、ステップＳ１３に進む。
【０１１７】
ステップＳ３では、上述した接続候補管理テーブルに有効なノードＮｎの接続先候補情報が登録されているか否かが判別される。そして、有効なノードＮｎの接続先候補情報が登録されている場合には（ステップＳ３：ＹＥＳ）、ステップＳ４に進み、有効なノードＮｎの接続先候補情報が登録されていない場合には（ステップＳ３：ＮＯ）、ステップＳ１２に進む。
【０１１８】
ステップＳ４では、接続候補管理テーブルから一つの上流ノードＮｎが再接続先として例えばランダムに選定され、当該上流ノードＮｎのネットワークアドレス情報が取得される。
【０１１９】
ステップＳ５では、選定された上流ノードＮｎに接続するための接続処理（新規接続処理又は再接続処理）が開始され、先ず、当該上流ノードＮｎに対してＮＡＴ越え処理（ルータのＷＡＮ側のネットワークからＬＡＮ側ネットワークへパケットを通過させるための処理）が行われる。
【０１２０】
ステップＳ６では、上記選定された上流ノードＮｎに対して接続要求メッセージが送信される。この接続要求メッセージに対して、後述するステップＳ２６で上流ノードＮｎからの接続拒否応答メッセージが受信された場合に、接続候補管理テーブル利用タイマＴ２が起動中であれば、再度上記ステップＳ３〜Ｓ６の処理が繰り返され、接続候補管理テーブルに登録されている別の上流ノードＮｎに接続要求メッセージが送信されることになる。
【０１２１】
ステップＳ７では、接続候補管理テーブル利用タイマＴ２が起動中であるか否かが判別される。そして、接続候補管理テーブル利用タイマＴ２が起動中である場合には（ステップＳ７：ＹＥＳ）、ステップＳ９に進み、接続候補管理テーブル利用タイマＴ２が起動中でない場合には（ステップＳ７：ＮＯ）、ステップＳ８に進んで当該タイマＴ２が起動された後、ステップＳ９に進む。なお、この接続候補管理テーブル利用タイマＴ２は、接続候補管理テーブルを用いた接続処理に対する上限時間を設けるためのものである。
【０１２２】
ステップＳ９では、ノードＮｎの主電源３０１ａがオフになったか否かが判別される。そして、主電源３０１ａがオフになった場合には（ステップＳ９：ＹＥＳ）、ステップＳ１０に進み、主電源３０１ａがオフになっていない場合には（ステップＳ９：ＮＯ）、ステップＳ２に戻る。
【０１２３】
ステップＳ１０では、主電源３０１ａがオフ状態になったことを契機として各種プログラムが終了され、その後、種々の周期処理向けのタイマが停止される。そして、補助電源３０１ｂがオフにされ（ステップＳ１１）、当該処理が終了する。
【０１２４】
ステップＳ１２では、接続先紹介サーバ２０に対して上流ノード紹介要求メッセージが送信される。
【０１２５】
ステップＳ１３では、接続候補管理テーブル利用タイマＴ２のタイムアウト事象が発生したか否かが判別される。そして、上記タイマＴ２のタイムアウト事象が発生した場合には（ステップＳ１３：ＹＥＳ）、ステップＳ１４に進み、上記タイマＴ２のタイムアウト事象が発生していない場合には（ステップＳ１４：ＮＯ）、ステップＳ１６に進む。
【０１２６】
ステップＳ１４では、接続候補管理テーブル利用タイマＴ２が停止される。
【０１２７】
ステップＳ１５では、接続先紹介サーバ２０に対して上流ノード紹介要求メッセージが送信される。つまり、上流ノードＮｎに接続する際には、接続候補管理テーブルを優先して利用し、一定時間経過した後（タイマＴ２のタイムアウト事象発生後）は接続先紹介サーバ２０を利用する（ステップＳ２８にて）処理手順となっている。
【０１２８】
ステップＳ１６では、接続先紹介サーバ２０から上流ノード候補紹介メッセージが受信されたか否かが判別される。そして、上流ノード候補紹介メッセージが受信された場合には（ステップＳ１６：ＹＥＳ）、ステップＳ１７に進み、上流ノード候補紹介メッセージが受信されていない場合には（ステップＳ１６：ＮＯ）、図１３に示すステップＳ１９に進む。かかる上流ノード候補紹介メッセージには、接続先紹介サーバ２０により検索された上流ノードＮｎ（或いは、放送局１０の場合もある）のネットワークアドレス情報が含まれている。
【０１２９】
ステップＳ１７では、受信された上流ノード候補紹介メッセージに示される上流ノードＮｎに対してＮＡＴ越え処理が行われる。
【０１３０】
ステップＳ１８では、上流ノード候補紹介メッセージに示される上流ノードＮｎに対して接続要求メッセージが送信される。
【０１３１】
次に、図１３に示すステップＳ１９では、上流ノードＮｎから接続許可応答メッセージが受信されたか否かが判別される。そして、接続許可応答メッセージが受信された場合には（ステップＳ１９：ＹＥＳ）、ステップＳ２０に進み、接続許可応答メッセージが受信されていない場合には（ステップＳ１９：ＮＯ）、ステップＳ２６に進む。
【０１３２】
ステップＳ２０では、接続候補管理テーブル利用タイマＴ２が起動中であるか否かが判別される。そして、接続候補管理テーブル利用タイマＴ２が起動中である場合には（ステップＳ２０：ＹＥＳ）、当該タイマＴ２が停止され（ステップＳ２１）、ステップＳ２２に進み、接続候補管理テーブル利用タイマＴ２が起動中でない場合には（ステップＳ２０：ＮＯ）、ステップＳ２２に進む。
【０１３３】
ステップＳ２２では、上記接続許可応答メッセージを送信した上流ノードＮｎに対してストリーム開始要求メッセージが送信される。こうして、自ノードはトポロジーに参加することになる。
【０１３４】
ステップＳ２３では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。例えば、上述したように、自ノードの階層レベル値が参照され、自ノードが所定値（例えば１０）の倍数の階層に位置するか否かが判別される。そして、自ノードが代表ノードである場合には（ステップＳ２３：ＹＥＳ）、ステップＳ２４に進み、自ノードが代表ノードでない場合には（ステップＳ２３：ＮＯ）、ステップＳ２５に進む。
【０１３５】
ステップＳ２４では、自ノードのトポロジーへの参加報告メッセージがメッセージ取り纏め用記憶領域に格納される。
【０１３６】
ステップＳ２５では、自ノードが接続している上流ノードＮｎに対して自ノードのトポロジーへの参加報告メッセージが送信される。
【０１３７】
ステップＳ２６では、上流ノードＮｎから接続拒否応答メッセージが受信されたか否かが判別される。そして、接続拒否応答メッセージが受信された場合には（ステップＳ２６：ＹＥＳ）、ステップＳ２７に進み、接続拒否応答メッセージが受信されていない場合には（ステップＳ２６：ＮＯ）、ステップＳ２９に進む。
【０１３８】
ステップＳ２７では、接続候補管理テーブル利用タイマＴ２が起動中であるか否かが判別される。そして、接続候補管理テーブル利用タイマＴ２が起動中である場合には（ステップＳ２７：ＹＥＳ）、図１２に示すステップＳ３に戻り、接続候補管理テーブル利用タイマＴ２が起動中でない場合には（ステップＳ２７：ＮＯ）、ステップＳ２８に進む。
【０１３９】
ステップＳ２８では、接続先紹介サーバ２０に対して上流ノード紹介要求メッセージが送信される。
【０１４０】
ステップＳ２９では、他のノードＮｎから接続要求メッセージが受信されたか否かが判別される。そして、接続要求メッセージが受信された場合には（ステップＳ２９：ＹＥＳ）、ステップＳ３０に進み、接続要求メッセージが受信されていない場合には（ステップＳ２９：ＮＯ）、図１４に示すステップＳ３６に進む。
【０１４１】
ステップＳ３０では、自ノードに接続されている下流ノードＮｎの数が、自ノードの接続許容数に達しているか否かが判別される。そして、下流ノードＮｎの数が自ノードの接続許容数に達している場合には（ステップＳ３０：ＹＥＳ）、ステップＳ３１に進み、下流ノードＮｎの数が自ノードの接続許容数に達していない場合には（ステップＳ３０：ＮＯ）、ステップＳ３２に進む。
【０１４２】
ステップＳ３１では、上記接続要求メッセージを送信したノードＮｎに対して接続拒否応答メッセージが送信される。
【０１４３】
ステップＳ３２では、上記接続要求メッセージを送信したノードＮｎの情報がノード管理テーブルに追加登録される。
【０１４４】
ステップＳ３３では、上記接続要求メッセージを送信したノードＮｎに対して接続許可応答メッセージが送信される。こうして、当該接続要求メッセージを送信したノードＮｎは、自ノードに接続される新たな下流ノードＮｎとなる。
【０１４５】
ステップＳ３４では、上述した接続先候補パケット蓄積用記憶領域に接続先候補パケットＰが蓄積されているか否かが判別される。そして、接続先候補パケットＰが蓄積されている場合には（ステップＳ３４：ＹＥＳ）、ステップＳ３５に進み、接続先候補パケットＰが蓄積されていない場合には（ステップＳ３４：ＮＯ）、図１２に示すステップＳ９に戻る。
【０１４６】
ステップＳ３５では、上記蓄積されている全ての接続先候補パケットＰが上記新たに接続された下流ノードＮｎに対して送信される。
【０１４７】
次に、図１４に示すステップＳ３６では、下流ノードＮｎからストリーム開始要求メッセージが受信されたか否かが判別される。そして、ストリーム開始要求メッセージが受信された場合には（ステップＳ３６：ＹＥＳ）、ステップＳ３７に進み、ストリーム開始要求メッセージが受信されていない場合には（ステップＳ３６：ＮＯ）、ステップＳ３８に進む。
【０１４８】
ステップＳ３７では、ストリーム開始要求メッセージを送信した下流ノードＮｎに対してコンテンツデータのパケットの転送（中継）が開始（ストリーミング開始）される。
【０１４９】
ステップＳ３８では、上流ノードＮｎからコンテンツデータのパケットが受信されたか否かが判別される。そして、コンテンツデータのパケットが受信された場合には（ステップＳ３８：ＹＥＳ）、ステップＳ３９に進み、コンテンツデータのパケットが受信されていない場合には（ステップＳ３８：ＮＯ）、ステップＳ４３に進む。
【０１５０】
ステップＳ３９では、例えば主記憶装置３０２で管理されている受信品質情報が更新される。例えば、ＣＰＵ３０４は、受信品質情報として、過去一分間の平均パケットレート、平均パケット損失率、パケット到着ゆらぎ等を計算し、過去に計算され記憶された受信品質情報を更新する。
【０１５１】
ステップＳ４０では、自ノードに下流ノードＮｎが接続されているか否かが判別される。そして、自ノードに下流ノードＮｎが接続されている場合には（ステップＳ４０：ＹＥＳ）、当該下流ノードＮｎに対して上記受信されたコンテンツデータのパケットが転送（中継）され（ステップＳ４１）、ステップＳ４２に進む一方、自ノードに下流ノードＮｎが接続されていない場合には（ステップＳ４０：ＮＯ）、ステップＳ４２に進む。
【０１５２】
ステップＳ４２では、コンテンツデータの再生が行われる。つまり、受信されバッファメモリに蓄積されたコンテンツデータが読み出され、ディスプレイ３１１及び内蔵スピーカ３１２等を介して再生出力される。
【０１５３】
ステップＳ４３では、下流ノードＮｎからストリーム停止要求メッセージが受信されたか否かが判別される。そして、ストリーム停止要求メッセージが受信された場合には（ステップＳ４３：ＹＥＳ）、ステップＳ４４に進み、ストリーム停止要求メッセージが受信されていない場合には（ステップＳ４３：ＮＯ）、ステップＳ４５に進む。
【０１５４】
ステップＳ４４では、下流ノードＮｎに対するコンテンツデータのパケットの転送が停止（ストリーミング停止）される。
【０１５５】
ステップＳ４５では、下流ノードＮｎから接続解除要求メッセージが受信されたか否かが判別される。そして、接続解除要求メッセージが受信された場合には（ステップＳ４５：ＹＥＳ）、ステップＳ４６に進み、接続解除要求メッセージが受信されていない場合には（ステップＳ４５：ＮＯ）、図１５に示すステップＳ４７に進む。
【０１５６】
ステップＳ４６では、接続解除要求メッセージを送信した下流ノードＮｎの情報がノード管理テーブルから削除される。
【０１５７】
次に、図１５に示すステップＳ４７では、キーボード３０９又はマウス３１０を介してユーザからの脱退要求があったか否かが判別される。そして、ユーザからの脱退要求があった場合には（ステップＳ４７：ＹＥＳ）、ステップＳ４８に進み、ユーザからの脱退要求がない場合には（ステップＳ４７：ＮＯ）、ステップＳ５３に進む。
【０１５８】
ステップＳ４８では、上流ノードＮｎに対してストリーム停止要求メッセージが送信される。
【０１５９】
ステップＳ４９では、上流ノードＮｎに対して接続解除要求メッセージが送信される。こうして、自ノードはトポロジーから脱退することになる。
【０１６０】
ステップＳ５０では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には（ステップＳ５０：ＹＥＳ）、ステップＳ５１に進み、自ノードが代表ノードでない場合には（ステップＳ５０：ＮＯ）、ステップＳ５２に進む。
【０１６１】
ステップＳ５１では、自ノードのトポロジーからの脱退報告メッセージがメッセージ取り纏め用記憶領域に格納される。
【０１６２】
ステップＳ５２では、自ノードが接続している上流ノードＮｎに対して自ノードのトポロジーからの脱退報告メッセージが送信される。
【０１６３】
ステップＳ５３では、下流ノードＮｎから参加報告メッセージ又は脱退報告メッセージが受信されたか否かが判別される。そして、参加報告メッセージ又は脱退報告メッセージが受信された場合には（ステップＳ５３：ＹＥＳ）、ステップＳ５４に進み、参加報告メッセージ及び脱退報告メッセージが受信されていない場合には（ステップＳ５３：ＮＯ）、ステップＳ５７に進む。
【０１６４】
ステップＳ５４では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には（ステップＳ５４：ＹＥＳ）、ステップＳ５５に進み、自ノードが代表ノードでない場合には（ステップＳ５４：ＮＯ）、ステップＳ５６に進む。
【０１６５】
ステップＳ５５では、受信された参加報告メッセージ又は脱退報告メッセージがメッセージ取り纏め用記憶領域に格納される。
【０１６６】
ステップＳ５６では、自ノードが接続している上流ノードＮｎに対して、受信された参加報告メッセージ又は脱退報告メッセージが転送される。
【０１６７】
ステップＳ５７では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には（ステップＳ５７：ＹＥＳ）、ステップＳ５８に進み、自ノードが代表ノードでない場合には（ステップＳ５７：ＮＯ）、図１６に示すステップＳ６０に進む。
【０１６８】
ステップＳ５８では、メッセージ取り纏め用記憶領域に格納されたメッセージの報告契機（報告時間）か否かが判別される。そして、メッセージの報告契機である場合には（ステップＳ５８：ＹＥＳ）、ステップＳ５９に進み、メッセージの報告契機でない場合には（ステップＳ５８：ＮＯ）、図１２に示すステップＳ９に戻る。
【０１６９】
ステップＳ５９では、メッセージ取り纏め用記憶領域に格納された全てのメッセージが接続先紹介サーバ２０に対して送信される。メッセージ取り纏め用記憶領域に格納されたメッセージの送信が例えば１分に１回行われるように上記報告契機が設定される。
【０１７０】
次に、図１６に示すステップＳ６０では、上述した受信品質情報に基づき、ストリーム中継品質が閾値を下回ったか否かが判別される。そして、ストリーム中継品質が閾値を下回ったことが検知された場合には（ステップＳ６０：ＹＥＳ）、ステップＳ６１に進み、ストリーム中継品質が閾値を下回っていない場合には（ステップＳ６０：ＮＯ）、ステップＳ６７に進む。
【０１７１】
ステップＳ６１では、上流ノードＮｎに対してストリーム停止要求メッセージが送信される。
【０１７２】
ステップＳ６２では、上流ノードＮｎに対して接続解除要求メッセージが送信される。
【０１７３】
ステップＳ６３では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には（ステップＳ６３：ＹＥＳ）、ステップＳ６４に進み、自ノードが代表ノードでない場合には（ステップＳ６３：ＮＯ）、ステップＳ６５に進む。
【０１７４】
ステップＳ６４では、自ノードのトポロジーからの脱退報告メッセージがメッセージ取り纏め用記憶領域に格納される。
【０１７５】
ステップＳ６５では、自ノードが接続している上流ノードＮｎに対して自ノードのトポロジーからの脱退報告メッセージが送信される。
【０１７６】
ステップＳ６６では、自律的再接続事象が生起され、自律的再接続事象フラグが１にセットされる。これにより、上記ステップＳ２で自律的再接続事象が発生したと判断されることになる。
【０１７７】
ステップＳ６７では、上流ノードＮｎから接続先候補パケットＰが受信されたか否かが判別される。そして、接続先候補パケットＰが受信された場合には（ステップＳ６７：ＹＥＳ）、ステップＳ６８に進み、接続先候補パケットＰが受信されていない場合には（ステップＳ６７：ＮＯ）、ステップＳ７４に進む。
【０１７８】
ステップＳ６８では、受信された接続先候補パケットＰ中に接続候補管理テーブルに登録（キャッシュ）すべき接続先候補情報が含まれるか否かが判別される。例えば、上述したように、接続先候補パケットＰに含まれる接続先候補情報中に自ノードの属性情報に適合するノードＮｎが示されている場合、登録すべき接続先候補情報が含まれると判別される。そして、接続先候補パケットＰ中に接続候補管理テーブルに登録（キャッシュ）すべき接続先候補情報が含まれる場合には（ステップＳ６８：ＹＥＳ）、ステップＳ６９に進み、接続先候補パケットＰ中に接続候補管理テーブルに登録（キャッシュ）すべき接続先候補情報が含まれない場合には（ステップＳ６８：ＮＯ）、ステップＳ７０に進む。
【０１７９】
ステップＳ６９では、自ノードの再接続先の候補が特定され、当該特定された候補に関する接続先候補情報及びその時の時刻（登録時刻）が接続候補管理テーブルに追加登録される。
【０１８０】
ステップＳ７０では、自ノードに下流ノードＮｎが接続されているか否かが判別される。そして、自ノードに下流ノードＮｎが接続されている場合には（ステップＳ７０：ＹＥＳ）、当該下流ノードＮｎに対して上記受信された接続先候補パケットＰが転送（中継）され（ステップＳ７１）、ステップＳ７２に進む一方、自ノードに下流ノードＮｎが接続されていない場合には（ステップＳ７０：ＮＯ）、ステップＳ７２に進む。
【０１８１】
ステップＳ７２では、自ノードに接続されている下流ノードＮｎの数が、自ノードの接続許容数に達しているか否かが判別される。そして、下流ノードＮｎの数が自ノードの接続許容数に達している場合には（ステップＳ７２：ＹＥＳ）、図１２に示すステップＳ９に戻り、下流ノードＮｎの数が自ノードの接続許容数に達していない（余力がある）場合には（ステップＳ７２：ＮＯ）、ステップＳ７３に進む。
【０１８２】
ステップＳ７３では、上記受信された接続先候補パケットＰが接続先候補パケット蓄積用記憶領域に蓄積される。
【０１８３】
ステップＳ７４では、上流ノードＮｎからノード属性更新パケットＰＡが受信されたか否かが判別される。そして、ノード属性更新パケットＰＡが受信された場合には（ステップＳ７４：ＹＥＳ）、ステップＳ７５に進み、ノード属性更新パケットＰＡが受信されていない場合には（ステップＳ７４：ＮＯ）、ステップＳ７９に進む。
【０１８４】
ステップＳ７５では、受信されたノード属性更新パケットＰＡに更新すべき属性情報が含まれているか否かが判別される。そして、更新すべき属性情報が含まれている場合には（ステップＳ７５：ＹＥＳ）、ステップＳ７６に進み、更新すべき属性情報が含まれていない場合には（ステップＳ７５：ＮＯ）、ステップＳ７７に進む。
【０１８５】
ステップＳ７６では、ノード属性更新パケットＰＡにおける更新情報に含まれる変更後の属性情報に基づいて、接続候補管理テーブルに登録されている属性情報が更新される。
【０１８６】
ステップＳ７７では、自ノードに下流ノードＮｎが接続されているか否かが判別される。そして、自ノードに下流ノードＮｎが接続されている場合には（ステップＳ７７：ＹＥＳ）、当該下流ノードＮｎに対して上記受信されたノード属性更新パケットＰＡが転送（中継）され（ステップＳ７８）、ステップＳ９に戻り、自ノードに下流ノードＮｎが接続されていない場合には（ステップＳ７７：ＮＯ）、図１２に示すステップＳ９に戻る。
【０１８７】
ステップＳ７９では、初期化時に起動したタイマのタイムアウト事象が発生したか否かが判別される。そして、上記タイマのタイムアウト事象が発生した場合には（ステップＳ７９：ＹＥＳ）、ステップＳ８０に進み、上記タイマのタイムアウト事象が発生していない場合には（ステップＳ７９：ＮＯ）、図１２に示すステップＳ９に戻る。
【０１８８】
ステップＳ８０では、接続先候補パケット蓄積用記憶領域に蓄積されている接続先候補パケットＰの蓄積時間が、所定時間を経過しているか否かが判別される。そして、蓄積時間が所定時間を経過した場合には（ステップＳ８０：ＹＥＳ）、ステップＳ８１に進み、蓄積時間が所定時間を経過していない場合には（ステップＳ８０：ＮＯ）、ステップＳ８２に進む。
【０１８９】
ステップＳ８１では、接続先候補パケット蓄積用記憶領域に蓄積されていた接続先候補情報が削除される。
【０１９０】
ステップＳ８２では、所定時間経過した接続先候補情報が接続候補管理テーブルに登録されているか否かが判別される。そして、接続候補管理テーブルに登録されている場合には（ステップＳ８２：ＹＥＳ）、ステップＳ８３に進み、接続候補管理テーブルに登録されていない場合には（ステップＳ８２：ＮＯ）、図１２に示すステップＳ９に戻る。
【０１９１】
ステップＳ８３では、当該所定時間経過した（つまり、古い）接続先候補情報が、接続候補管理テーブルから削除される。
（放送局１０の処理）
次に、図１７及び図１８を参照して、放送局１０におけるＣＰＵ１０４の処理について説明する。
【０１９２】
図１７及び図１８は、放送局１０におけるＣＰＵ１０４により実行される処理を示すフローチャートである。
【０１９３】
図１７の処理は、主電源１０１のオンにより放送局１０が起動することにより開始される。当該処理が開始されると、ステップＳ１０１では、放送局１０における各種プログラムが初期化され、タイムアウト事象を契機に実行される種々の周期処理向けのタイマが起動される。なお、当該処理の開始時には、放送局の登録要求メッセージ（当該放送局１０の所在情報等を含む）が接続先紹介サーバ２０に送信される。
【０１９４】
ステップＳ１０２では、放送運営者から放送開始又は停止要求があったか否かが判別される。放送開始又は停止要求があった場合には、ステップＳ１０３に進み、放送開始又は停止要求がない場合には、ステップＳ１０６に進む。
【０１９５】
ステップＳ１０３では、放送開始又は停止要求に応じて、コンテンツデータのパケットの生成処理が開始又は停止される。コンテンツデータのパケットの生成処理が開始されると、ハードディスク装置１０３に記録されたコンテンツデータに対して読み出しアクセスがなされ、システムタイマと同期が取られながら、コンテンツデータのパケットが生成され、当該パケットがバッファメモリに格納される。一方、コンテンツデータのパケットの生成処理の停止時には、上記ハードディスク装置１０３に記録されたコンテンツデータに対する読み出しアクセスが停止され、バッファメモリがクリアされる。
【０１９６】
ステップＳ１０４では、放送局１０の主電源１０１がオフになったか否かが判別される。そして、主電源１０１がオフになった場合には（ステップＳ１０４：ＹＥＳ）、ステップＳ１０５に進み、主電源１０１がオフになっていない場合には（ステップＳ１０４：ＮＯ）、ステップＳ１０２に戻る。
【０１９７】
ステップＳ１０５では、主電源１０１がオフ状態になったことを契機として各種プログラムが終了され、その後、種々の周期処理向けのタイマが停止され、当該処理が終了する。なお、当該処理の終了時には、放送局の削除要求メッセージ（当該放送局１０の所在情報等を含む）が接続先紹介サーバ２０に送信される。
【０１９８】
ステップＳ１０６では、下流ノードＮｎから接続要求メッセージが受信されたか否かが判別される。そして、接続要求メッセージが受信された場合には（ステップＳ１０６：ＹＥＳ）、ステップＳ１０７に進み、接続要求メッセージが受信されない場合には（ステップＳ１０６：ＮＯ）、ステップＳ１０９に進む。
【０１９９】
ステップＳ１０７では、下流ノードＮｎの情報（例えばＩＰアドレス及びポート番号）がノード管理テーブルに追加登録される。
【０２００】
ステップＳ１０８では、下流ノードＮｎに対して接続許可応答メッセージが送信される。
【０２０１】
ステップＳ１０９では、下流ノードＮｎから接続解除要求メッセージが受信されたか否かが判別される。そして、接続解除要求メッセージが受信された場合には（ステップＳ１０９：ＹＥＳ）、ステップＳ１１０に進み、接続解除要求メッセージが受信されない場合には（ステップＳ１０９：ＮＯ）、ステップＳ１１１に進む。
【０２０２】
ステップＳ１１０では、下流ノードＮｎの情報（例えばＩＰアドレス及びポート番号）がノード管理テーブルから削除される。
【０２０３】
ステップＳ１１１では、下流ノードＮｎからストリーム開始要求メッセージが受信されたか否かが判別される。そして、ストリーム開始要求メッセージが受信された場合には（ステップＳ１１１：ＹＥＳ）、ステップＳ１１２に進み、ストリーム開始要求メッセージが受信されない場合には（ステップＳ１１１：ＮＯ）、ステップＳ１１３に進む。
【０２０４】
ステップＳ１１２では、下流ノードＮｎに対してコンテンツストリームの放送が開始（ストリーミング開始）される。
【０２０５】
ステップＳ１１３では、下流ノードＮｎからストリーム停止要求メッセージが受信されたか否かが判別される。そして、ストリーム停止要求メッセージが受信された場合には（ステップＳ１１３：ＹＥＳ）、ステップＳ１１４に進み、ストリーム停止要求メッセージが受信されない場合には（ステップＳ１１３：ＮＯ）、図１８に示すステップＳ１１５に進む。
【０２０６】
ステップＳ１１４では、下流ノードＮｎに対するコンテンツストリームの放送が停止（ストリーミング停止）される。
【０２０７】
次に、図１７に示すステップＳ１１５では、接続先紹介サーバ２０から接続先候補情報のチャンクＣ及び当該接続先候補情報の放送指令を示す放送指令メッセージが受信されたか否かが判別される。そして、接続先候補情報のチャンクＣ等が受信された場合には（ステップＳ１１５：ＹＥＳ）、ステップＳ１１６に進み、接続先候補情報のチャンクＣ等が受信されない場合には（ステップＳ１１５：ＮＯ）、ステップＳ１１７に進む。
【０２０８】
ステップＳ１１６では、受信されたチャンクＣが主記憶装置１０２の所定の記憶領域に格納される。
【０２０９】
ステップＳ１１７では、初期化時に起動したタイマのタイムアウト事象が発生したか否かが判別される。そして、上記タイマのタイムアウト事象が発生した場合には（ステップＳ１１７：ＹＥＳ）、ステップＳ１１８に進み、上記タイマのタイムアウト事象が発生していない場合には（ステップＳ１１７：ＮＯ）、ステップＳ１０４に戻る。
【０２１０】
ステップＳ１１８では、上記記憶されたチャンクＣは空であるか否か、つまり、主記憶装置１０２の上記記憶領域にチャンクＣが記憶されているか否かが判別される。そして、チャンクＣは空である場合には（ステップＳ１１８：ＹＥＳ）、図１７に示すステップＳ１０４に戻り、チャンクＣは空でない場合には（ステップＳ１１８：ＮＯ）、ステップＳ１１９に進む。
【０２１１】
ステップＳ１１９では、上記記憶されたチャンクＣから接続先候補情報を含む接続先候補パケットＰが生成される。
【０２１２】
ステップＳ１２０では、生成された接続先候補パケットＰが下流ノードＮｎに対して送信（放送）される。
【０２１３】
ステップＳ１２１では、接続先紹介サーバ２０からノード属性更新パケットＰＡが受信されたか否かが判別される。そして、ノード属性更新パケットＰＡが受信された場合には（ステップＳ１２１：ＹＥＳ）、ステップＳ１２２に進み、ノード属性更新パケットＰＡが受信されない場合には（ステップＳ１２１：ＮＯ）、図１７に示すステップＳ１０４に戻る。
【０２１４】
ステップＳ１２２では、受信されたノード属性更新パケットＰＡが下流ノードＮｎに対して送信（放送）される。
（接続先紹介サーバ２０の処理）
次に、図１９を参照して、接続先紹介サーバ２０におけるＣＰＵ２０４の処理について説明する。
【０２１５】
図１９は、接続先紹介サーバ２０におけるＣＰＵ２０４により実行される処理を示すフローチャートである。
【０２１６】
図１９の処理は、主電源２０１のオンにより接続先紹介サーバ２０が起動することにより開始される。当該処理が開始されると、ステップＳ２０１では、接続先紹介サーバ２０における各種プログラムが初期化され、タイムアウト事象を契機に実行される種々の周期処理向けのタイマが起動される。
【０２１７】
ステップＳ２０２では、放送局１０から登録要求メッセージ又は削除要求メッセージを受信したか否かが判別される。そして、登録要求メッセージ又は削除要求メッセージが受信された場合には（ステップＳ２０２：ＹＥＳ）、ステップＳ２０３に進み、登録要求メッセージ及び削除要求メッセージが受信されない場合には（ステップＳ２０２：ＮＯ）、ステップＳ２０７に進む。
【０２１８】
ステップＳ２０３では、上記登録要求メッセージに含まれる所在情報等が、放送チャンネル情報に対応付けられて放送局管理データベースに登録される。又は、上記削除要求メッセージに含まれる所在情報等が放送局管理データベースから削除される。
【０２１９】
ステップＳ２０４では、当該所在情報が登録された放送局１０に対応する放送チャンネル情報がトポロジーデータベースに登録される。又は、当該放送チャンネル情報がトポロジーデータベースから削除される。
【０２２０】
ステップＳ２０５では、接続先紹介サーバ２０の主電源２０１がオフになったか否かが判別される。そして、主電源２０１がオフになった場合には（ステップＳ２０５：ＹＥＳ）、ステップＳ２０６に進み、主電源２０１がオフになっていない場合には（ステップＳ２０５：ＮＯ）、ステップＳ２０２に戻る。
【０２２１】
ステップＳ２０６では、主電源２０１がオフ状態になったことを契機として各種プログラムが終了され、その後、種々の周期処理向けのタイマが停止され、当該処理が終了する。
【０２２２】
ステップＳ２０７では、ノードＮｎから上流ノード紹介要求メッセージが受信されたか否かが判別される。そして、上流ノード紹介要求メッセージが受信された場合には（ステップＳ２０７：ＹＥＳ）、ステップＳ２０８に進み、上流ノード紹介要求メッセージが受信されない場合には（ステップＳ２０７：ＮＯ）、ステップＳ２１０に進む。
【０２２３】
ステップ２０８では、トポロジーデータベースから上流ノードＮｎの候補が検索され、検索された１以上の上流ノードＮｎの候補のネットワークアドレス情報及び属性情報が取得される。
【０２２４】
ステップＳ２０９では、上記取得された上流ノードＮｎの候補のネットワークアドレス情報及び属性情報を含む上流ノード候補紹介メッセージが、上流ノード紹介要求メッセージを送信したノードＮｎに対して返信される。
【０２２５】
ステップＳ２１０では、ノードＮｎから参加報告メッセージ又は脱退報告メッセージが受信された否かが判別される。そして、参加報告メッセージ又は脱退報告メッセージが受信された場合には（ステップＳ２１０：ＹＥＳ）、ステップＳ２１１に進み、参加報告メッセージ及び脱退報告メッセージが受信されない場合には（ステップＳ２１０：ＮＯ）、ステップＳ２１３に進む。
【０２２６】
ステップＳ２１１では、参加報告メッセージ又は脱退報告メッセージにしたがってトポロジーデータベースに登録されたトポロジー管理情報が更新される。これにより、トポロジーの変動が反映される。
【０２２７】
ステップＳ２１２では、該当トポロジーにおける単位時間当りの接続頻度が計算される。
【０２２８】
ステップＳ２１３では、初期化時に起動したタイマのタイムアウト事象が発生したか（つまり、接続先候補の放送契機になったか）否かが判別される。そして、上記タイマのタイムアウト事象が発生した場合には（ステップＳ２１３：ＹＥＳ）、ステップＳ２１４に進み、上記タイマのタイムアウト事象が発生していない場合には（ステップＳ２１３：ＮＯ）、ステップＳ２１６に進む。
【０２２９】
ステップＳ２１４では、トポロジーデータベースに登録されたトポロジー管理情報に基づいて最新の下流接続可能ノードＮｎが再接続先の候補となるべきノードＮｎとして複数個抽出され、接続先候補情報を含むチャンクＣが生成される。
【０２３０】
ステップＳ２１５では、生成されたチャンクＣ及び当該接続先候補情報の放送指令を示す放送指令メッセージが放送局１０に対して送信される。
【０２３１】
ステップＳ２１６では、トポロジーデータベースに登録されたトポロジー管理情報におけるノードＮｎの属性情報に変更があったか否かが判別される。そして、上記ノードＮｎの属性情報に変更があった場合には（ステップＳ２１６：ＹＥＳ）、ステップＳ２１７に進み、上記ノードＮｎの属性情報に変更がない場合には（ステップＳ２１６：ＮＯ）、ステップＳ２０５に戻る。
【０２３２】
ステップＳ２１７では、上記属性情報が変更されたノードＮｎのネットワークアドレス情報及び変更後の属性情報を含む更新情報が格納されたノード属性更新パケットＰＡが生成される。
【０２３３】
ステップＳ２１８では、生成されたノード属性更新パケットＰＡが放送局１０に対して送信される。
【０２３４】
以上説明したように、上記実施形態によれば、放送局１０から接続先候補情報を含む接続先候補パケットＰをトポロジーの上流のノードＮｎから下流のノードＮｎに向けて放送させるようにし、当該接続先候補パケットＰを受信した各ノードＮｎが、これに含まれる接続先候補情報に示される複数のノードＮｎうち、自己の属性情報に適合するノードＮｎを自己の再接続先の候補として特定し、当該特定したノードＮｎに関する接続先候補情報を記憶する。そして、各ノードＮｎが、自律的再接続事象の発生を契機として現在自己が接続している上流ノードＮｎ又は放送局１０との間の当該接続を解除し新たに別の上流ノードＮｎに再接続する場合には、上記特定された再接続先の候補のうち、一つのノードＮｎを再接続先として選定し、当該選定した再接続先となる上流ノードＮｎに再接続するように構成したので、トポロジーを管理する接続先紹介サーバ２０に対して再接続となる上流ノードＮｎの問い合わせを抑えることができ、したがって、当該接続先紹介サーバ２０に与える負荷を低減（負荷集中を抑制）させながらも、接続先紹介サーバ２０から得られる接続先の候補と同等の最適性を伴った候補を各ノードＮｎに提供することができ、トポロジーを安定させることが可能となる。
【０２３５】
また、上記接続先候補情報に示される複数のノードＮｎうち自ノードの属性情報に適合するノードＮｎとして、自ノードの階層レベル値より小さいか（つまり上位階層）或いは同じ階層レベル値を有するノードＮｎを再接続先の候補として特定するように構成すれば、配信経路が循環することを回避することができる。
【０２３６】
また、上記接続先候補情報に示される複数のノードＮｎうち自ノードの属性情報に適合するノードＮｎとして、自ノードのＮＡＴ越え属性と適合するノードＮｎを再接続先の候補として特定するように構成すれば、通信を確立することができないことを回避することができる。また、接続候補管理テーブルに再接続先の候補のＮＡＴ越え属性を登録するようにしたので、当該接続候補管理テーブルに登録されたノードＮｎとの接続確立を試みるための処理時間を省き、接続確立までの時間を短縮することができる。
【０２３７】
また、一つの接続先候補パケットＰにおける接続先候補情報に示される複数のノードＮｎのうち、当該接続先候補情報に示される複数のノード装置数より少ない数のノードＮｎを再接続先の候補としてランダムに特定するように構成すれば、一つの接続先候補パケットＰから特定される再接続先の候補数を抑制し、再接続の候補の散逸化を図ることができる。
【０２３８】
また、再接続によりノードＮｎの属性情報に変更があった場合に、変更後の属性情報を含む更新情報が格納されたノード属性更新パケットＰＡをトポロジーの上流のノードＮｎから下流のノードＮｎに向けて放送させるようにし、当該ノード属性更新パケットＰＡを受信したノードＮｎが、自己の再接続候補管理テーブル内に該当するノードＮｎが登録されているか否かを検査し、登録されている場合には該当するノードＮｎの属性情報を、ノード属性更新パケットＰＡを含まれる属性情報に置き換えるように構成したので、各ノードＮｎが記憶している上流ノードＮｎの候補の属性情報の変更は、比較的短い遅延時間の中で補正することができ、接続先紹介サーバ２０が提供する場合と同等の良質な再接続先の候補を提供することができる。
【０２３９】
また、各ノードＮｎは、下流ノード接続数が接続許容数に達していない場合、上記接続先候補パケットＰを接続先候補パケット蓄積用記憶領域に所定時間蓄積させておき、この蓄積期間中に新たなノードＮｎが下流ノードとして接続してきた場合に、上記蓄積された接続先候補パケットＰを当該下流ノードＮｎに転送するように構成したので、新たにトポロジーに参加したノードＮｎも即座に接続先候補情報を得ることができる。
【０２４０】
また、参加又は脱退報告メッセージを代表ノードＮｎにより一つに取り纏めて接続先紹介サーバ２０に送信するように構成したので、接続先紹介サーバ２０に対する通信量を削減することができる。
【０２４１】
以上の結果として、トポロジーのスケーラビリティを確保するために必要であったサーバに対する設備投資を低く抑えることができる。
【０２４２】
なお、上記実施形態においては、あるノードＮｎが接続先候補パケットＰから再接続先の候補を特定する際、配信経路の循環を回避するために自ノードよりも階層レベル値が小さいか或いは同じ階層レベル値であることを条件としていたが、各ノードＮｎが近隣ノード群を予め覚えていれば自ノードよりも階層レベル値が大きいものを選定することが可能となる。
【０２４３】
図２０は、トポロジーおける注目ノードＮ１３についての近隣ノード群を示す図である。図２０の例では、注目ノードＮ１３は，自己を中心として上流方向と下流方向に対して１ホップ（ノード）先までの近隣ノードであるノードＮ１２，Ｎ１７，Ｎ１８に関する情報を記憶しており、注目ノードＮ１３は第ｎ階層目に位置している。この場合、注目ノードＮ１３は、これに接続されている直属の下流ノードから辿って下流１ホップまでの近隣ノードの存在を知っているので接続先候補パケットＰから再接続先の候補を特定するときは、まず、第ｎ＋１階層目以下の再接続先の候補を特定し、その後、当該特定した候補の中から下流方向の近隣ノードＮ１７，Ｎ１８を除外する。これにより、接続先候補パケットＰから再接続先の候補を特定（選択）するときの条件が緩和され、より多くの再接続の候補を特定し再接続候補管理テーブルに登録することができる。なお、各ノードＮｎが近隣ノードの存在を知るためには単に自ノードの存在を広告するための広告用パケットをノードＮｎの中継（転送）回数制限付きで周辺のノードＮｎへ送信すれば良い。
【図面の簡単な説明】
【０２４４】
【図１】本実施形態に係るツリー型放送システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノードＮ１２がツリー型放送システムＳへの参加する際の様子を示した概念図である。
【図３】接続先候補パケットが上流から下流に向けて放送される様子を示す図である。
【図４】接続先候補パケットＰの構成の一例を示す図である。
【図５】接続先候補パケットＰが下流接続可能ノードＮ１４において所定時間蓄積される様子を示す図である。
【図６】ノード属性更新パケットＰＡが上流から下流に向けて放送される様子を示す図である。
【図７】放送局１０の概要構成例を示す図である。
【図８】接続先紹介サーバ２０の概要構成例を示す図である。
【図９】ノードＮｎの概要構成例を示す図である。
【図１０】接続候補管理テーブルに登録された接続先候補情報の一例を示す図である。
【図１１】トポロジー内での再接続の候補が垂直方向に散逸化するように特定される例を示す図である。
【図１２】ノードＮｎにおけるＣＰＵ３０４により実行される処理を示すフローチャートである。
【図１３】ノードＮｎにおけるＣＰＵ３０４により実行される処理を示すフローチャートである。
【図１４】ノードＮｎにおけるＣＰＵ３０４により実行される処理を示すフローチャートである。
【図１５】ノードＮｎにおけるＣＰＵ３０４により実行される処理を示すフローチャートである。
【図１６】ノードＮｎにおけるＣＰＵ３０４により実行される処理を示すフローチャートである。
【図１７】放送局１０におけるＣＰＵ１０４により実行される処理を示すフローチャートである。
【図１８】放送局１０におけるＣＰＵ１０４により実行される処理を示すフローチャートである。
【図１９】接続先紹介サーバ２０におけるＣＰＵ２０４により実行される処理を示すフローチャートである。
【図２０】トポロジーおける注目ノードについての近隣ノード群を示す図である。
【符号の説明】
【０２４５】
８  ネットワーク
９  オーバーレイネットワーク
１０  放送局
２０  接続先紹介サーバ
１０１，２０１，３０１ａ  主電源
３０１ｂ  補助電源
１０２，２０２，３０２  主記憶装置
１０３，２０３，３０３  ハードディスク装置
１０４，２０４，３０４  ＣＰＵ
１０５，２０５，３０５  ネットワークインタフェース
１０６，２０６，３０６  周辺機器制御チップ
１０７，２０７，３０７  ビデオチップ
１０８，３０８  音源チップ
１０９，２０８，３０９  キーボード
１１０，２０９，３１０  マウス
１１１，２１０，３１１  ディスプレイ
１１２，３１２  内蔵スピーカ
１１３，２１１，３１３  システムバス
１１４，２１２，３１４  ルータ
Ｎｎ  ノード
Ｓ  ツリー型放送システム
【図１】
0004840329.tif 000002
【図２】
0004840329.tif 000003
【図３】
0004840329.tif 000004
【図４】
0004840329.tif 000005
【図５】
0004840329.tif 000006
【図６】
0004840329.tif 000007
【図７】
0004840329.tif 000008
【図８】
0004840329.tif 000009
【図９】
0004840329.tif 000010
【図１０】
0004840329.tif 000011
【図１１】
0004840329.tif 000012
【図１２】
0004840329.tif 000013
【図１３】
0004840329.tif 000014
【図１４】
0004840329.tif 000015
【図１５】
0004840329.tif 000016
【図１６】
0004840329.tif 000017
【図１７】
0004840329.tif 000018
【図１８】
0004840329.tif 000019
【図１９】
0004840329.tif 000020
【図２０】
0004840329.tif 000021