(57)【要約】      （修正有）【課題】配信サーバ等の特定の装置に大きな負担を課することなく、欠落したデータパケットをより効率良く補完することが可能な配信システム、ノード装置、及びデータパケットの補完方法等を提供する。【解決手段】複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ中継されつつ配信される配信システムにおいて、配信されてきた連続する複数のデータパケットを受信するパケット受信手段と、欠落したデータパケットが有るか否かを判別する欠落パケット有無判別手段と、欠落したデータパケットがあると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求情報を送信する補完要求送信手段と、補完要求情報に対して返信されてきたデータパケットを受信する補完パケット受信手段と、を備える。【選択図】  図２
2006319495.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ前記ノード装置により中継されつつ配信される配信システムに含まれる前記ノード装置において、
配信されてきた前記連続する複数のデータパケットを受信するパケット受信手段と、
前記受信されたデータパケットに基づき、欠落したデータパケットが有るか否かを判別する欠落パケット有無判別手段と、
前記欠落パケット有無判別手段により前記欠落したデータパケットがあると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求情報を送信する補完要求送信手段と、
前記補完要求情報に対して前記ノード装置から返信されてきたデータパケットを受信する補完パケット受信手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記補完要求送信手段は、自己から前記データパケットの配信元である配信元装置に至るまでの通信経路上に位置する上流の第１ノード装置と、当該通信経路上以外に位置しかつ自己の下流に位置するノード装置以外の第２ノード装置と、の何れか一方のノード装置を予め設定された確率で選択し、当該選択したノード装置に対して前記補完要求情報を送信することを特徴とするノード装置。
【請求項３】
請求項２に記載のノード装置において、
前記第１ノード装置が選択される確率は、前記第２ノード装置が選択される確率よりも高く設定されていることを特徴とするノード装置。
【請求項４】
請求項２又は３に記載のノード装置において、
前記第２ノード装置は、自己と同一階層以上の階層のノード装置であることを特徴とするノード装置。
【請求項５】
請求項２乃至４の何れか一項に記載のノード装置において、
前記複数のノード装置は、前記配信元装置を頂点として複数の階層を形成しつつ通信経路を介してツリー状に接続されており、
前記第２ノード装置は、前記配信元装置から分岐される通信経路であって、自己から前記データパケットの前記配信元装置に至るまでの通信経路とは異なる通信経路上に位置することを特徴とするノード装置。
【請求項６】
請求項１乃至５の何れか一項に記載のノード装置において、
前記受信されたデータパケットを一時的に蓄積する蓄積手段と、
コンテンツの単位を形成する前記複数のデータパケットのうち、欠落したデータパケットが前記補完要求情報により補完された場合に、前記蓄積手段に蓄積された複数のデータパケットと前記補完パケットを使って完全なコンテンツデータを復元して他の記録媒体へ記録する記録手段と、
を更に備えることを特徴とするノード装置。
【請求項７】
請求項１乃至６の何れか一項に記載のノード装置から送信された補完要求情報を受信する補完要求情報受信手段を備えるノード装置であって、
前記受信された補完要求情報にて示される前記データパケットを有しているか否かを判別するパケット有無判別手段と、
前記パケット有無判別手段により前記データパケットを有していると判別された場合には、前記補完要求情報を送信したノード装置に対して、当該データパケットを返信するデータパケット返信手段と、
を備えることを特徴とするノード装置。
【請求項８】
請求項７に記載のノード装置において、
前記パケット有無判別手段により前記データパケットを有していないと判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する補完要求転送手段を更に備えることを特徴とするノード装置。
【請求項９】
請求項１乃至６の何れか一項に記載のノード装置から送信された補完要求情報を受信する補完要求情報受信手段を備えるノード装置であって、
前記補完要求情報には、欠落した複数のデータパケットの夫々に対応するパケット識別情報が記述された欠落パケットリストが含まれており、
当該欠落パケットリストにて示される夫々の前記データパケットを有しているか否かを判別するパケット有無判別手段と、
前記パケット有無判別手段により有ると判別されたデータパケットを、前記補完要求情報を送信したノード装置に対して返信するデータパケット返信手段と、
前記返信に係るデータパケットに対応するパケット識別情報を前記欠落パケットリストから削除して当該欠落パケットリストを更新する欠落パケットリスト更新手段と、
前記更新後の欠落パケットリストに前記パケット識別情報が未だ記述されているか否かを判別するパケット識別情報有無判別手段と、
前記パケット識別情報有無判別手段により前記パケット識別情報が未だ記述されていると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、前記更新後の欠落パケットリストを含む前記補完要求情報を転送する補完要求転送手段と、
を備えることを特徴とするノード装置。
【請求項１０】
請求項８又は９に記載のノード装置において、
前記補完要求転送手段は、自己から前記データパケットの配信元である配信元装置に至るまでの通信経路上に位置する上流の第１ノード装置と、当該通信経路上以外に位置しかつ自己の下流に位置するノード装置以外の第２ノード装置と、の何れか一方のノード装置を予め設定された確率で選択し、当該選択したノード装置に対して前記補完要求情報を転送することを特徴とするノード装置。
【請求項１１】
請求項１０に記載のノード装置において、
前記第１ノード装置が選択される確率は、前記第２ノード装置が選択される確率よりも高く設定されていることを特徴とするノード装置。
【請求項１２】
請求項１０又は１１に記載のノード装置において、
前記第２ノード装置は、自己と同一階層以上の階層のノード装置であることを特徴とするノード装置。
【請求項１３】
請求項１０乃至１２の何れか一項に記載のノード装置において、
前記複数のノード装置は、前記配信元装置を頂点として複数の階層を形成しつつ通信経路を介してツリー状に接続されており、
前記第２ノード装置は、前記配信元装置から分岐される通信経路であって、自己から前記データパケットの前記配信元装置に至るまでの通信経路とは異なる通信経路上に位置することを特徴とするノード装置。
【請求項１４】
コンピュータを、請求項１乃至６の何れか一項に記載のノード装置として機能させることを特徴とするプログラム。
【請求項１５】
コンピュータを、請求項７乃至１３の何れか一項に記載のノード装置として機能させることを特徴とするプログラム。
【請求項１６】
複数のノード装置を備え、当該複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ前記ノード装置により中継されつつ配信される配信システムにおいて、
１の前記ノード装置は、
配信されてきた前記連続する複数のデータパケットを受信するパケット受信手段と、
前記受信されたデータパケットに基づき、欠落したデータパケットが有るか否かを判別する欠落パケット有無判別手段と、
前記欠落パケット有無判別手段により前記欠落したデータパケットがあると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求を示す補完要求情報を送信する補完要求送信手段と、
前記補完要求情報に対して他の前記ノード装置から返信されてきたデータパケットを受信する補完パケット受信手段と、を備え、
前記他のノード装置は、
前記１のノード装置から送信されてきた補完要求情報を受信する補完要求情報受信手段と、
前記受信された補完要求情報にて示される前記欠落したデータパケットを有しているか否かを判別するパケット有無判別手段と、
前記パケット有無判別手段により前記データパケットを有していると判別された場合には、前記１のノード装置に対して、当該データパケットを返信するデータパケット返信手段と、
を備えることを特徴とする配信システム。
【請求項１７】
請求項１６に記載の配信システムにおいて、
前記他のノード装置は、
前記パケット有無判別手段により前記データパケットを有していないと判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する補完要求転送手段を更に備えることを特徴とする配信システム。
【請求項１８】
複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ前記ノード装置により中継されつつ配信される配信システムにおけるデータパケットの補完方法であって、
１の前記ノード装置において、配信されてきた前記連続する複数のデータパケットを受信する工程と、
前記１のノード装置において、前記受信されたデータパケットに基づき、欠落したデータパケットが有るか否かを判別する工程と、
前記１のノード装置において、前記欠落したデータパケットがあると判別された場合には、当該１のノード装置の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求を示す補完要求情報を送信する工程と、
他の前記ノード装置において、前記１のノード装置から送信されてきた補完要求情報を受信する工程と、
前記他のノード装置において、前記受信された補完要求情報にて示される前記欠落したデータパケットを有しているか否かを判別する工程と、
前記他のノード装置において、前記データパケットを有していると判別された場合には、前記１のノード装置に対して、当該データパケットを返信する工程と、
前記１のノード装置において、前記他のノード装置から返信されてきたデータパケットを受信する工程と、
を備えることを特徴とするデータパケットの補完方法。
【請求項１９】
請求項１８に記載のデータパケットの補完方法において、
前記他のノード装置において、前記データパケットを有していないと判別された場合には、当該他のノード装置の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する工程を更に備えることを特徴とするデータパケットの補完方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツの単位を形成する連続する複数のデータパケットが上流から下流の方向へノード装置により中継されつつ配信されるコンテンツ配信システム等における欠落したデータパケットの補完方法等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムとして、特許文献１には、ストリームデータ分散配信システムが開示されており、当該システムにおいては、各ノード装置がネットワーク接続関係を認識するためのトポロジー情報を有しており、各ノード装置はトポロジー情報により認識した上流（上位階層）のノード装置に接続し、当該上流のノード装置から送信されるストリームデータを受信し、それを下流（下位階層）のノード装置に転送（中継）するようになっている。
【０００３】
かかるコンテンツ配信システムにおいては、ノード装置間の通信にはＵＤＰ（User Datagram Protocol）のような送達確認を行わないプロトコルを使用しており、また、各ノード装置がネットワークに自由に参加、脱退（例えば、電源のＯＮ，ＯＦＦ）可能であるため、各ノード装置が受信するコンテンツには、一定の割合でデータパケットの欠落が発生する。
【特許文献１】特開２００３−１６９０８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記のように、データパケットの欠落が発生した場合、例えばコンテンツの配信元である配信サーバから欠落したデータパケットを取得して補完する方法が考えられるが、この方法では、複数のノード装置による配信サーバへのアクセスが集中し、大きな負担を課するという問題がある。
【０００５】
本発明は、以上の問題等に鑑みてなされたものであり、配信サーバ等の特定の装置に大きな負担を課することなく、欠落したデータパケットを補完することが可能な配信システム、ノード装置、及びデータパケットの補完方法等を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ前記ノード装置により中継されつつ配信される配信システムに含まれる前記ノード装置において、配信されてきた前記連続する複数のデータパケットを受信するパケット受信手段と、前記受信されたデータパケットに基づき、欠落したデータパケットが有るか否かを判別する欠落パケット有無判別手段と、前記欠落パケット有無判別手段により前記欠落したデータパケットがあると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求情報を送信する補完要求送信手段と、前記補完要求情報に対して前記ノード装置から返信されてきたデータパケットを受信する補完パケット受信手段と、を備えることを特徴とする。
【０００７】
この発明によれば、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求情報を送信するように構成したので、配信サーバ等の特定の装置に大きな負担を課することなく、欠落したデータパケットを補完することができる。
【０００８】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記補完要求送信手段は、自己から前記データパケットの配信元である配信元装置に至るまでの通信経路上に位置する上流の第１ノード装置と、当該通信経路上以外に位置しかつ自己の下流に位置するノード装置以外の第２ノード装置と、の何れか一方のノード装置を予め設定された確率で選択し、当該選択したノード装置に対して前記補完要求情報を送信することを特徴とする。
【０００９】
この発明によれば、上記第１ノード装置と、上記第２ノード装置と、の何れか一方のノード装置を予め設定された確率で選択し、当該選択したノード装置に対して前記補完要求情報を送信するように構成したので、特定のノード装置に負担を課さず、かつ、幅広い範囲で効率良くデータパケットを補完することができる。
【００１０】
請求項３に記載の発明は、請求項２に記載のノード装置において、前記第１ノード装置が選択される確率は、前記第２ノード装置が選択される確率よりも高く設定されていることを特徴とする。
【００１１】
この発明によれば、補完要求情報を繰り返し転送するような状況において、パケット損失が少ない配信元装置付近への収斂を加速させることができるので、さらに迅速にデータパケットを補完することができる。
【００１２】
請求項４に記載の発明は、請求項２又は３に記載のノード装置において、前記第２ノード装置は、自己と同一階層以上の階層のノード装置であることを特徴とする。
【００１３】
この発明によれば、自己の装置を基準として常に上層側の他のノード装置へ補完要求情報を転送するので補完要求情報の転送がループすることを回避することができる。
【００１４】
請求項５に記載の発明は、請求項２乃至４の何れか一項に記載のノード装置において、前記複数のノード装置は、前記配信元装置を頂点として複数の階層を形成しつつ通信経路を介してツリー状に接続されており、前記第２ノード装置は、前記配信元装置から分岐される通信経路であって、自己から前記データパケットの前記配信元装置に至るまでの通信経路とは異なる通信経路上に位置することを特徴とする。
【００１５】
請求項５に記載の発明によれば、補完要求情報の転送処理が単一の配信元装置へ収斂する形となるので、より確実にデータパケットを補完することができる。
【００１６】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載のノード装置において、前記受信されたデータパケットを一時的に蓄積する蓄積手段と、コンテンツの単位を形成する前記複数のデータパケットのうち、欠落したデータパケットが前記補完要求情報により補完された場合に、前記蓄積手段に蓄積された複数のデータパケットと前記補完パケットを使って完全なコンテンツデータを復元して他の記録媒体へ記録する記録手段と、を更に備えることを特徴とする。
【００１７】
請求項６に記載の発明によれば、配信済みのストリームを流用して購入用コンテンツを復元できるので、コンテンツの購入に係わるデータの通信量を削減することができる。
【００１８】
請求項７に記載の発明は、請求項１乃至６の何れか一項に記載のノード装置から送信された補完要求情報を受信する補完要求情報受信手段を備えるノード装置であって、前記受信された補完要求情報にて示される前記データパケットを有しているか否かを判別するパケット有無判別手段と、前記パケット有無判別手段により前記データパケットを有していると判別された場合には、前記補完要求情報を送信したノード装置に対して、当該データパケットを返信するデータパケット返信手段と、を備えることを特徴とする。
【００１９】
この発明によれば、補完要求情報を受信したノード装置は、補完要求情報に示されたデータパケットがある場合、前記補完要求情報を送信したノード装置に対して、当該データパケットを返信するので、配信サーバ等の特定の装置に大きな負担を課することなく、欠落したデータパケットを補完することができる。
【００２０】
請求項８に記載の発明は、請求項７に記載のノード装置において、前記パケット有無判別手段により前記データパケットを有していないと判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する補完要求転送手段を更に備えることを特徴とする。
【００２１】
この発明によれば、補完要求情報を受信したノード装置は、補完要求情報を受信したノード装置は、補完要求情報に示されたデータパケットがない場合、自己の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する、つまり、欠落したデータパケットを有するノード装置に至るまで補完要求情報が転送されるので、特定のノード装置において補完要求元の欠落したデータパケットを補完できなくても、他のノード装置によって補完処理を補うことができる。
【００２２】
請求項９に記載の発明は、請求項１乃至６の何れか一項に記載のノード装置から送信された補完要求情報を受信する補完要求情報受信手段を備えるノード装置であって、前記補完要求情報には、欠落した複数のデータパケットの夫々に対応するパケット識別情報が記述された欠落パケットリストが含まれており、当該欠落パケットリストにて示される夫々の前記データパケットを有しているか否かを判別するパケット有無判別手段と、前記パケット有無判別手段により有ると判別されたデータパケットを、前記補完要求情報を送信したノード装置に対して返信するデータパケット返信手段と、前記返信に係るデータパケットに対応するパケット識別情報を前記欠落パケットリストから削除して当該欠落パケットリストを更新する欠落パケットリスト更新手段と、前記更新後の欠落パケットリストに前記パケット識別情報が未だ記述されているか否かを判別するパケット識別情報有無判別手段と、前記パケット識別情報有無判別手段により前記パケット識別情報が未だ記述されていると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、前記更新後の欠落パケットリストを含む前記補完要求情報を転送する補完要求転送手段と、を備えることを特徴とする。
【００２３】
この発明によれば、前記補完要求情報に示されたデータパケットの全てが補完できるまで当該補完要求情報が適切に更新された形で転送され続けるので、特定のノード装置に負担を課さず、かつ、幅広い範囲で確実にデータパケットを補完することができる。
【００２４】
請求項１０に記載の発明は、請求項８又は９に記載のノード装置において、前記補完要求転送手段は、自己から前記データパケットの配信元である配信元装置に至るまでの通信経路上に位置する上流の第１ノード装置と、当該通信経路上以外に位置しかつ自己の下流に位置するノード装置以外の第２ノード装置と、の何れか一方のノード装置を予め設定された確率で選択し、当該選択したノード装置に対して前記補完要求情報を転送することを特徴とする。
【００２５】
この発明によれば、上記第１ノード装置と、上記第２ノード装置と、の何れか一方のノード装置を予め設定された確率で選択し、当該選択したノード装置に対して前記補完要求情報を送信するように構成したので、特定のノード装置に負担を課さず、かつ、幅広い範囲でより効率良くデータパケットを補完することができる。
【００２６】
請求項１１に記載の発明は、請求項１０に記載のノード装置において、前記第１ノード装置が選択される確率は、前記第２ノード装置が選択される確率よりも高く設定されていることを特徴とする。
【００２７】
この発明によれば、補完要求情報を繰り返し転送するような状況において、パケット損失が少ない配信元装置付近への収斂を加速させることができるので、さらに迅速にデータパケットを補完することができる。
【００２８】
請求項１２に記載の発明は、請求項１０又は１１に記載のノード装置において、前記第２ノード装置は、自己と同一階層以上の階層のノード装置であることを特徴とする。
【００２９】
この発明によれば、自己の装置を基準として常に上層側の他のノード装置へ補完要求情報を転送するので補完要求情報の転送がループすることを回避することができる。
【００３０】
請求項１３に記載の発明は、請求項１０乃至１２の何れか一項に記載のノード装置において、前記複数のノード装置は、前記配信元装置を頂点として複数の階層を形成しつつ通信経路を介してツリー状に接続されており、前記第２ノード装置は、前記配信元装置から分岐される通信経路であって、自己から前記データパケットの前記配信元装置に至るまでの通信経路とは異なる通信経路上に位置することを特徴とする。
【００３１】
この発明によれば、補完要求情報の転送処理が単一の配信元装置へ収斂する形となるので、より確実にデータパケットを補完することができる。
【００３２】
請求項１４に記載のプログラムは、コンピュータを、請求項１乃至６の何れか一項に記載のノード装置として機能させることを特徴とする。
【００３３】
請求項１５に記載のプログラムは、コンピュータを、請求項７乃至１３の何れか一項に記載のノード装置として機能させることを特徴とする。
【００３４】
請求項１６に記載の発明は、複数のノード装置を備え、当該複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ前記ノード装置により中継されつつ配信される配信システムにおいて、１の前記ノード装置は、配信されてきた前記連続する複数のデータパケットを受信するパケット受信手段と、前記受信されたデータパケットに基づき、欠落したデータパケットが有るか否かを判別する欠落パケット有無判別手段と、前記欠落パケット有無判別手段により前記欠落したデータパケットがあると判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求を示す補完要求情報を送信する補完要求送信手段と、前記補完要求情報に対して他の前記ノード装置から返信されてきたデータパケットを受信する補完パケット受信手段と、を備え、前記他のノード装置は、前記１のノード装置から送信されてきた補完要求情報を受信する補完要求情報受信手段と、前記受信された補完要求情報にて示される前記欠落したデータパケットを有しているか否かを判別するパケット有無判別手段と、前記パケット有無判別手段により前記データパケットを有していると判別された場合には、前記１のノード装置に対して、当該データパケットを返信するデータパケット返信手段と、を備えることを特徴とする。
【００３５】
請求項１７に記載の発明は、請求項１６に記載の配信システムにおいて、前記他のノード装置は、前記パケット有無判別手段により前記データパケットを有していないと判別された場合には、自己の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する補完要求転送手段を更に備えることを特徴とする。
【００３６】
請求項１８に記載の発明は、複数のノード装置が複数の階層を形成しつつ通信経路を介して接続され、連続する複数のデータパケットが上流から下流の方向へ前記ノード装置により中継されつつ配信される配信システムにおけるデータパケットの補完方法であって、１の前記ノード装置において、配信されてきた前記連続する複数のデータパケットを受信する工程と、前記１のノード装置において、前記受信されたデータパケットに基づき、欠落したデータパケットが有るか否かを判別する工程と、前記１のノード装置において、前記欠落したデータパケットがあると判別された場合には、当該１のノード装置の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求を示す補完要求情報を送信する工程と、他の前記ノード装置において、前記１のノード装置から送信されてきた補完要求情報を受信する工程と、前記他のノード装置において、前記受信された補完要求情報にて示される前記欠落したデータパケットを有しているか否かを判別する工程と、前記他のノード装置において、前記データパケットを有していると判別された場合には、前記１のノード装置に対して、当該データパケットを返信する工程と、前記１のノード装置において、前記他のノード装置から返信されてきたデータパケットを受信する工程と、を備えることを特徴とする。
【００３７】
請求項１９に記載の発明は、請求項１８に記載のデータパケットの補完方法において、前記他のノード装置において、前記データパケットを有していないと判別された場合には、当該他のノード装置の下流に位置するノード装置以外のノード装置に対して、前記補完要求情報を転送する工程を更に備えることを特徴とする。
【発明の効果】
【００３８】
本発明によれば、自己の下流に位置するノード装置以外のノード装置に対して、当該欠落したデータパケットの補完要求情報を送信し、当該ノード装置からパケットを補完するように構成したので、配信サーバ等の特定の装置に大きな負担を課することなく、欠落したデータパケットを補完することができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、ツリー型コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００４０】
[１．ツリー型コンテンツ配信システムの構成等]
始めに、図１を参照して、ツリー型コンテンツ配信システムの概要構成及び機能について説明する。
【００４１】
図１は、本実施形態に係るツリー型コンテンツ配信システムにおける各装置の接続態様の一例を示す図である。
【００４２】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）５、ＩＳＰ（Internet Service Provider）６、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）７、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）８、ルータ（図示せず）及び通信回線（例えば、電話回線や光ケーブル等）９等によって、インターネット等のネットワーク（現実世界のネットワーク）１０が構築されている。なお、図１の下部枠１０１内において、各通信回線９に対応する実線の太さは、各通信回線９の帯域の広さ（例えば、データ転送速度）を表している。
【００４３】
本実施形態に係るツリー型コンテンツ配信システムＳは、コンテンツの単位を形成する連続する複数のデータパケットの配信元である配信元装置としての放送局装置１と、複数のノード装置２ａ，２ｂ，２ｃ，２ｄ・・・と、を備え、図１の下部枠１０１内に示すようなネットワーク１０を基礎として図１の上部枠１００内に示すように構成されており、放送局装置１を頂点（最上位）として複数のノード装置が複数の階層（図１の例では、４階層）を形成しつつ通信経路を介してツリー状に接続され、上記連続する複数のデータパケットが、上流（上位階層）から下流（下位階層）の方向へ各ノード装置により中継（転送）されつつ配信されるようになっている。なお、以下の説明において、ノード装置２ａ，２ｂ，２ｃ，２ｄ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置２という場合がある。
【００４４】
図１の上部枠１００内に示されるノード装置２は、ツリー型コンテンツ配信システムＳに参加しているノード装置２であり、当該ツリー型コンテンツ配信システムＳに参加するためには、未参加のノード装置が、接続先紹介（照会）サーバ３に対して参加要求を行い、接続先紹介（照会）サーバ３により参加権限があることを認証される必要がある。この接続先紹介（照会）サーバ３は、ツリー型コンテンツ配信システムＳに参加している放送局装置１及びノード装置２の所在情報（例えば、ＩＰ（Internet Protocol）アドレス及びポート番号（待ち受けポート番号））と、ツリー型コンテンツ配信システムＳにおける放送局装置１とノード装置２及び各ノード装置２間のトポロジー（接続態様）情報と、をデータベースを用いて管理しており、未参加のノード装置からの参加要求に対して上記認証を行った後、当該ノード装置に対して接続先となる既参加のノード装置２（ツリー状のトポロジーを考慮して選定）の所在情報を通知するようになっている。そして、当該所在情報の通知を受けたノード装置は、当該所在情報に基づき、既参加のノード装置２との接続を確立し、これによって、ツリー型コンテンツ配信システムＳに参加することになる。
【００４５】
なお、ツリー状のトポロジーは、各ノード装置２に直接接続される下流のノード装置２の最大接続数、バランス（対称性）、更には、ノード装置２間のローカリティ（ネットワーク１０上における近接度（ホップ数（介在するルータ数）が少ないほど高い）等が考慮されて決定されることになる。
【００４６】
また、既参加のノード装置２が電源ＯＦＦ或いは通信不良等になった場合、ノード装置２はツリー型コンテンツ配信システムＳから脱退することになり、これにより、当該脱退したノード装置２に直接接続される下流のノード装置２等は、接続先紹介（照会）サーバ３から新たな接続先となる既参加のノード装置２の所在情報を取得して接続を確立するようになっている。
【００４７】
更にまた、ツリー型コンテンツ配信システムＳにおけるツリー状のトポロジーは、放送局装置毎、言い換えれば、放送チャンネル毎に形成される（図１の上部枠１００内では、１つの放送チャンネルのみ示している）ようになっており（但し、１つの放送局装置で複数の放送チャンネルを賄う場合もある）、例えば既参加のノード装置２においてユーザにより放送チャンネルが切り替えられた場合には、当該ノード装置２は、切り替え後の放送チャンネルにおける既参加のノード装置２の所在情報を接続先紹介（照会）サーバ３から取得して接続を確立するようになっている。なお、放送チャンネルの切り替え制御は、本発明と直接の関係がないので詳しい説明を省略する。
【００４８】
このようなツリー型コンテンツ配信システムＳにおいて、放送局装置１からストリーム配信された複数のデータパケットが、上流から下流の方向へ各ノード装置により中継されていく通信経路上（例えば、図１の上部枠１００内に示される、ノード装置２ａ→ノード装置２ｃ→ノード装置２ｇ→ノード装置２ｏ）において何れか１又は複数のデータパケットが欠落した場合に、データパケットの欠落を認識したノード装置２は、欠落したデータパケットの補完要求情報を、自己（自ノード装置）の下流に位置するノード装置２以外のノード装置２に対して送信するようになっている。これに対して、当該補完要求情報を受信したノード装置２は、当該補完要求情報にて示されるデータパケットを有している場合、上記補完要求情報の送信元のノード装置２に対して当該データパケットを返信し、上記データパケットを有していない場合、自己の下流に位置するノード装置２以外のノード装置２に対して当該補完要求情報を転送するようになっている。こうして、当該補完要求情報は、これに示されるデータパケットを有しているノード装置２に辿り着くまで転送されていくことになる（欠落したデータパケットが複数ある場合、全てのデータパケットを補完できるまで転送される）。そして、上記補完要求情報の送信元のノード装置２は、当該補完要求情報に対して他のノード装置２から返信されてきたデータパケットを受信して、自己の装置において欠落しているパケットを補完する。
【００４９】
ここで、補完要求情報の送信（又は転送）先を「自己の下流に位置するノード装置以外のノード装置」としたのは、自己の下流に位置するノード装置２では、自己の上流側において欠落したパケットが配信されない（パケットの欠落が連鎖する）ので、これらの装置に補完要求情報を送信（又は転送）してもデータパケットが補完できないからである。例えば、図１の上部枠１００内において、ノード装置２ｃの下流に位置するノード装置としては、ノード装置２ｇ，２ｈ，２ｏ，２ｐ，２ｑ，及び２ｒが該当する（このうちノード装置２ｇ及び２ｈは、ノード装置２ｃから見て当該ノード装置２ｃに直接接続される下流のノード装置である）。
【００５０】
補完要求情報の送信（又は転送）先としては、自己の下流に位置するノード装置２以外のノード装置２であればどこでも良いのであるが、なるべく放送局装置１及び上流のノード装置２に負担を課さず（なお、ツリー状のトポロジーで放送局装置１に近いノード装置２ほど、データパケットの欠落が少ないことが想定される）、かつ、より効率良くデータパケットを補完可能とするために、例えば、各ノード装置２は、上記補完要求情報を自己が直接接続する上流のノード装置２（第１ノード装置の一例、以下、「上流ノード装置」という）と、当該自己からデータパケットの放送局装置１に至るまでの通信経路上以外に位置しかつ自己の下流に位置するノード装置２以外のノード装置２（第２ノード装置の一例、以下、「遠方ノード装置」という）と、の何れか一方のノード装置２を予め設定された確率で選択し、当該選択したノード装置２に対して送信（又は、転送）することが望ましい。
【００５１】
これは、ツリー状のトポロジーが、各ノード装置２間のローカリティが考慮されて形成されているので、上流ノード装置（例えば、図１の上部枠１００内において、ノード装置２ｃの上流ノード装置は、ノード装置２ａである）はネットワーク的に近い（例えば、ポップ数が少ない）場合が多く、したがって、欠落したデータパケットを迅速に取得できる可能性がある一方、自己からデータパケットの放送局装置１に至るまでの通信経路上に位置するノード装置２（特に、上流ノード装置）は、同じデータパケットを欠落している可能性があるので、別の通信経路上に位置する遠方ノード装置であれば、自己が欠落したデータパケットを有する可能性が高いためである。なお、遠方ノード装置の所在情報は、接続先紹介（照会）サーバ３から取得されることになる。
【００５２】
図２は、補完要求情報が放送局装置１方向に向かって転送されていく様子を示す図である。図２の例では、ノード装置２ａｆは、上流ノード装置としてのノード装置２ａｅに対して補完要求情報を送信し、さらに当該ノード装置２ａｅは、放送局装置１から分岐される通信経路であって自己から放送局装置１に至るまでの通信経路とは異なる通信経路上に位置する遠方ノード装置としてのノード装置２ｙに対して補完要求情報を送信している。このような、放送局装置１から分岐される通信経路であって自己から放送局装置１に至るまでの通信経路とは異なる通信経路上に位置するノード装置２ｙは、パケット補完要求元とは全く別経路に位置しているので、自己が欠落したデータパケットを有している可能性が高い。
【００５３】
また、図２の例では、上流ノード装置が選択される確率（１−β）が、遠方ノード装置が選択される確率（β）よりも若干高く設定（β＜０．５）されており、さらに、当該遠方ノード装置に対して補完要求情報が送信（又は転送）される場合、送信元（転送元）のノード装置と送信先（転送先）の遠方ノード装置の階層が同一或いは１つ上（上流）の階層となっている。これにより、上記補完要求情報は、放送局装置１までに転送されるまで間（全てのデータパケットが補完できれば、配信元装置（放送局装置）において転送は終了する）に、より多くのノード装置に転送されることになり、放送局装置１及び上流のノード装置２への負担を抑えつつ、幅広い範囲で、より効率的にデータパケットを補完することができる。
【００５４】
なお、当該遠方ノード装置に対して補完要求情報が送信（又は転送）される場合、送信先（転送先）の遠方ノード装置の階層が、送信元（転送元）のノード装置２の階層よりも下（下流）の階層である場合、補完要求情報の転送がループする可能性がある。
【００５５】
図３は、補完要求情報の転送がループする様子を示す図である。図３に示すように、送信先（転送先）の遠方ノード装置（例えば、ノード装置２ｗ）の階層が、送信元（転送元）のノード装置（例えば、ノード装置２ｃ）の階層（例えば、第２階層）よりも下（下流）の階層（例えば、第４階層）である場合、補完要求情報の転送がループし、全てのデータパケットが補完できないという問題が生じる。このような問題を避けるために、各ノード装置２は、補完要求情報を送信又は転送する際、送信先（転送先）の遠方ノード装置の階層と自己の階層とを比較し、自己の階層よりも遠方ノード装置の階層が下（下流）の場合には、上流ノード装置が選択される確率（１−β）を一時的に上げて上流ノード装置が選択されやすくするか、或いは、自己の階層よりも上（上流）の階層に位置する遠方ノード装置の所在情報を接続先紹介（照会）サーバ３から取得してこれに補完要求情報を送信又は転送する。
【００５６】
[２．放送局装置の構成等]
次に、図４を参照して、放送局装置１の構成及び機能について説明する。
【００５７】
図４は、放送局装置１の概要構成例を示す図である。
【００５８】
放送局装置１は、図４に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラム（ＯＳ（オペレーティングシステム）及び各種アプリケーションを含む）を記憶するＲＯＭ等から構成された制御部１１と、コンテンツデータ（例えば、圧縮されたビデオデータや音楽データ）等を記憶保存するためのＨＤＤ等から構成された記憶部１２と、暗号鍵を用いてコンテンツデータを暗号化するための暗号化用アクセラレータ１３と、ネットワーク１０を通じてノード装置２等との間の情報の通信制御を行うための通信部１５と、オペレータからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス等）１６と、を備えて構成され、これらの構成要素は、バス１７を介して相互に接続されている。
【００５９】
制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを実行することにより放送局装置１全体を統括制御し、記憶部１２に記憶保存されたコンテンツデータを暗号鍵を用いて暗号化用アクセラレータ１３により暗号化させ、当該コンテンツデータを所定のデータ量に分割して連続する複数のデータパケットを生成し、これを通信部１５を介してノード装置２（図１の上部枠１００内の例では、ノード装置２ａ及び２ｂ）に対してストリーム配信するようになっている。なお、各データパケットのペイロード部には、そのコンテンツデータの先頭から連続するパケット番号（配信順に連続するシーケンス番号）が記述されている（埋め込まれている）。また、各データパケットのペイロード部には、補完用のデータパケットであるか否かを示すパケット種別情報が記述される（埋め込まれる）。
【００６０】
また、制御部１１は、当該コンテンツデータの配信先を、記憶部１２に記憶された接続態様テーブルを参照して決定することになる。この接続態様テーブルには、少なくとも、放送局装置１と接続されるノード装置２（言い換えれば、コンテンツデータの配信先であるノード装置２）のＩＰアドレス及びポート番号が記述されている。
【００６１】
[３．ノード装置の構成等]
次に、図５を参照して、ノード装置２の構成及び機能について説明する。
【００６２】
図５は、ノード装置２の概要構成例を示す図である。
【００６３】
ノード装置２は、図５に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラム（ＯＳ（オペレーティングシステム）及び各種アプリケーションを含む）を記憶するＲＯＭ等から構成された制御部２１と、各種データ及びプログラム等を記憶するＨＤＤ等から構成された記憶部２２と、受信したコンテンツデータ（データパケット）を一時的に蓄積（記憶）する蓄積手段としてのバッファメモリ２３と、バッファメモリ２３に蓄積された暗号化されたコンテンツデータを復号鍵を用いて復号化するための復号化アクセラレータ２４と、復号化されたコンテンツデータに含まれるビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張等）して再生するデコーダ部２５と、当該再生されたビデオデータ等に対して所定の描画処理を施し映像信号として出力する映像処理部２６と、当該映像処理部２６から出力された映像信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部２７と、上記再生されたオーディオデータをアナログ音声信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部２８と、当該音声処理部２８から出力された音声信号を音波として出力するスピーカ２９と、ネットワーク１０を通じて放送局装置１や他のノード装置２等との間の通信制御を行うための通信部２９ａと、ユーザ（視聴者）からの各種指示を入力し制御部２１に対してその指示信号を与える入力部（例えば、マウス、キーボード、操作パネル、或いはリモコン等）２９ｂと、ＩＣカード２９ｅを装着し電気的に接続するためのＩＣカードスロット２９ｃと、を備えて構成され、制御部２１、記憶部２２、バッファメモリ２３、復号化アクセラレータ２４、デコーダ部２５、通信部２９ａ、入力部２９ｂ、及びＩＣカードスロット２９ｃは、バス２９ｅを介して相互に接続されている。なお、ノード装置２としては、例えば、ＳＴＢ（Set Top Box）やパーソナルコンピュータが適用可能である。
【００６４】
ＩＣカード２９ｅは、耐タンパ性があり（つまり、非正規な手段による機密データの読み取りを防ぎ、簡単に解析できないようにタンパリング対策が施されている）、例えば、ツリー型コンテンツ配信システムＳの運営者等からユーザに配布される。当該ＩＣカード２９ｅは、ＣＰＵからなるＩＣカードコントローラ、耐タンパ性のある不揮発性メモリ（例えば、ＥＥＰＲＯＭ）等を備えて構成されており、不揮発性メモリには、ユーザＩＤ、暗号化されたコンテンツデータを復号化するための復号鍵、デジタル証明書等が記憶されるようになっている。デジタル証明書は、ノード装置がツリー型コンテンツ配信システムＳに参加する際に、参加要求（当該ノード装置の所在情報が含まれる）と共に接続先紹介（照会）サーバ３に送信される。
【００６５】
バッファメモリ２３は、例えばＦＩＦＯ（First In First Out）形式のリングバッファメモリから構成されており、制御部２１の制御下、受信ポインタにより示される記憶領域に通信部２９ａを通じて受信されたコンテンツデータを一時的に蓄積するようになっている。
【００６６】
制御部２１は、ＣＰＵが記憶部２２等に記憶されたプログラムを読み出して実行することによりノード装置２全体を統括制御し、上流から配信されてきた複数のデータパケットを通信部２９ａを通じてパケット受信手段として受信してバッファメモリ２３に書き込み、かつ、当該バッファメモリ２３に蓄積されているデータパケット（一定時間過去に受信されたデータパケット）を読み出して通信部２９ａを通じて下流のノード装置２に送信（転送）するようになっており、更に、再生ポインタにより示されるバッファメモリ２３の記憶領域に蓄積されているデータパケットを読み出してバス２９ｄを介して復号化アクセラレータ２４やデコーダ部２５に出力するようになっている。なお、上記プログラムは、例えば、ネットワーク１０上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【００６７】
そして更に、制御部２１は、欠落パケット有無判別手段として、上記受信され、バッファメモリ２３に蓄積されているデータパケットに基づき、欠落したデータパケットが有るか否かを判別し、欠落しているデータパケットがあると判別した場合（例えば、“１”、“２”、“４”、“５”、“６”のパケット番号が付与されたデータパケットがバッファメモリ２３に蓄積されている場合、“３”のパケット番号が付与されたデータパケットが欠落していると判断）、補完要求送信手段として、上述したように、自己の下流に位置するノード装置２以外のノード装置２に対して、当該欠落したデータパケットの補完要求情報を通信部２９ａを通じて送信し、当該補完要求情報に対して他のノード装置２から返信されてきたデータパケットを通信部２９ａを通じて補完パケット受信手段として受信するようになっている。
【００６８】
ここで、上記補完要求情報には、例えば、欠落したデータパケットに対応するパケット識別情報としてのパケット番号及びコンテンツＩＤ（コンテンツデータ毎に一意に付与されたＩＤ）等が記述された欠落パケットリスト（パケット損失リスト）が含まれており、欠落したデータパケットが複数ある場合、夫々の欠落したデータパケットに対応するパケット番号及びコンテンツＩＤが記述されることになる。
【００６９】
また、制御部２１は、他のノード装置２から送信又は転送されてきた上記補完要求情報を通信部２９ａを通じて補完要求情報受信手段として受信し、パケット有無判別手段として、当該補完要求情報に含まれる欠落パケットリストにて示されるデータパケットを有しているか否かを判別（例えば、欠落パケットリストに記述されたパケット番号及びコンテンツＩＤと、バッファメモリ２３に蓄積されているデータパケットのパケット番号及びコンテンツＩＤとを突きあわせて判別）し、当該データパケットを有していると判別した場合、データパケット返信手段として、上記補完要求情報の送信元のノード装置２対して当該データパケットを補完用のデータパケットとして通信部２９ａを通じて返信するようになっている。
【００７０】
そして、制御部２１は、欠落パケットリスト更新手段として、当該返信に係る補完用のデータパケットに対応するパケット番号を当該欠落パケットリストから削除して当該欠落パケットリストを更新し、更に、パケット識別情報有無判別手段として、更新後の欠落パケットリストにデータパケットのパケット番号が未だ記述されているか否かを判別し、未だ記述されていると判別した場合（例えば、欠落パケットリストに複数のデータパケットに対応するパケット番号及びコンテンツＩＤが記述されており、そのうちの何れか一部のデータパケットのみが送信元のノード装置２に対して返信された場合）、補完要求転送手段として、上述したように、自己の下流に位置するノード装置２以外のノード装置２に対して上記補完要求情報を通信部２９ａを通じて転送するようになっている。
【００７１】
[４．接続先紹介（照会）サーバの構成等] 
次に、図６を参照して、接続先紹介（照会）サーバ３の構成及び機能について説明する。
【００７２】
図６は、接続先紹介（照会）サーバ３の概要構成例を示す図である。
【００７３】
接続先紹介（照会）サーバ３は、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラム（ＯＳ（オペレーティングシステム）及び各種アプリケーションを含む）を記憶するＲＯＭ等から構成された制御部３５と、各種データ等を記憶保存するためのＨＤＤ等から構成された記憶部３６と、ネットワーク１０を通じてノード装置２等との間の情報の通信制御を行うための通信部３７と、を備えて構成され、これらの構成要素は、バス３８を介して相互に接続されている。
【００７４】
記憶部３６には、ツリー型コンテンツ配信システムＳに参加している放送局装置１及びノード装置２の所在情報と、ツリー型コンテンツ配信システムＳにおける放送局装置１とノード装置２及び各ノード装置２間のトポロジー情報と、が記憶されたデータベースが構築されている。
【００７５】
制御部３５は、ＣＰＵが記憶部３６等に記憶されたプログラムを実行することにより接続先紹介（照会）サーバ３全体を統括制御し、未参加のノード装置からの参加要求があった場合に、上述した認証、例えば、参加要求に付加されたデジタル証明書の有効性の判定を行い、有効であれば、当該ノード装置の所在情報とデジタル証明書のダイジェスト（例えば、デジタル証明書を所定のハッシュ関数でハッシュ化したハッシュ値）を上記データベースに記憶するようになっている。なお、以降に、ノード装置における受信不良等の要因で当該ノード装置から接続先の問い合わせがあった場合に、デジタル証明書のダイジェストはセッションキーとして使用される（これにより、認証を行わなくて済む）。
【００７６】
また、制御部３５は、上記認証が有効であった場合に、参加要求を行ったノード装置に対して、接続先候補となる複数の上流ノード装置の所在情報及び階層レベル情報（つまり、当該上流ノード装置が、第何階層に存在するかを示す情報）と、遠方ノード装置の所在情報及び階層レベル情報（つまり、当該遠方ノード装置が、第何階層に存在するかを示す情報）とを通信部３７を通じて送信するようになっている。当該所在情報を受信したノード装置においては、接続先候補となる複数の上流ノード装置のネットワーク１０上での物理的近接度が比較され、最も近い位置に存在する上流ノード装置が選定されて、当該上流ノード装置に対して接続要求が行われ接続が確立されることになり、接続が確立された上流ノード装置の所在情報が接続先紹介（照会）サーバ３に対して送信（返信）される。これに対して、制御部３５は、当該ノード装置に関するトポロジー情報を上記データベースに記憶することになる。
【００７７】
[５．ツリー型コンテンツ配信システムの動作]
次に、図７乃至図１１等を参照して、欠落したデータパケットが補完される場合おけるツリー型コンテンツ配信システムＳの動作について説明する。
【００７８】
図７は、補完要求情報の送信元のノード装置２の制御部２１における処理を示すフローチャートであり、図８は、図７におけるパケット補完処理の詳細を示すフローチャートであり、図９及び図１０は、補完要求情報を受信したノード装置２の制御部２１における処理を示すフローチャートであり、図１１は、補完要求情報を受信した放送局装置１の制御部１１における処理を示すフローチャートである。
【００７９】
図７に示す処理は、未参加のノード装置が、接続先紹介（照会）サーバ３に対して参加要求を行って、接続先候補となる複数の上流ノード装置の所在情報及び階層レベル情報と、遠方ノード装置の所在情報及び階層レベル情報とを取得し、上流ノード装置との接続を確立することにより開始され（当該ノード装置が何階層にあるかが認識される）、制御部２１は、上流ノード装置から送信されてきたコンテンツデータに係るデータパケットを通信部２９ａを通じて受信し（ステップＳ１）、受信したデータパケットが補完要求情報に応じて他のノード装置２から送信された補完用のデータパケットであるか否かを、例えば当該パケットのペイロード部に記述されたパケット種別情報を参照して判別する（ステップＳ２）。
【００８０】
そして、受信したデータパケットが補完用のデータパケットでない場合には（ステップＳ２：Ｎ）、制御部２１は、当該受信したデータパケットが以前に受信したことがあるパケットであるか否かを判別、例えば、当該受信したデータパケットのパケット番号と、バッファメモリ２３に蓄積されたデータパケットのパケット番号とが一致しているか否かを判別する（ステップＳ３）。
【００８１】
そして、受信したデータパケットが以前に受信したことがあるパケットでない場合（例えば、当該受信したデータパケットと、パケット番号が一致するデータパケットがバッファメモリ２３に蓄積されていない場合）には（ステップＳ３：Ｎ）、制御部２１は、当該受信したデータパケットをバッファメモリ２３に挿入して書き込む（ステップＳ４）。
【００８２】
次いで、制御部２１は、現在設定されている装置のモード（状態）が、補完モード（購入モード）であるか否かを判別する（ステップＳ５）。
【００８３】
ここで、補完モードとは、コンテンツデータを購入するためのモードであり、例えば、ユーザが入力部２９ｂを操作してコンテンツ購入指示を入力（例えば、購入ボタンを押下）することにより補完モードが制御部２１により設定される。
【００８４】
そして、現在設定されている装置のモードが補完モードでない場合には（ステップＳ５：Ｎ）、制御部２１は、バッファメモリ２３に蓄積されているデータパケット（上流に位置するノード装置の脱退等によりストリームが途絶した場合を考慮し、この影響を受けないように一定時間過去に受信されたデータパケット）を読み出して通信部２９ａを通じて下流のノード装置２に送信（転送）する（ステップＳ６）。
【００８５】
次いで、制御部２１は、再生ポインタにより示されるバッファメモリ２３の記憶領域に蓄積されている所定量のデータパケットを読み出し、予めＩＣカード２９ｅから取得しておいた復号鍵を用いて復号化アクセラレータ２４により復号化させデコーダ部２５に出力する（ステップＳ７）。デコーダ部２５に出力された所定量のデータパケットは、再生され、そのビデオデータ等は、映像処理部２６を介して表示部２７に表示され、オーディオデータは、音声処理部２８を介してスピーカ２９から音波として出力される。
【００８６】
ステップＳ８では、制御部２１は、コンテンツデータの受信を中止するか否かを判別する。そして、コンテンツデータの受信を中止しない場合には（ステップＳ８：Ｎ）、制御部２１は、ステップＳ１に戻り、上記と同様の処理を繰り返す。一方、コンテンツデータの受信を中止する場合（ステップＳ８：Ｙ）、例えば、コンテンツの単位（例えば、映画１本、或いは、楽曲１曲）の配信（放送）が終了した場合、或いは、ユーザから入力部２９ｂを介してコンテンツデータの受信中止指示等があった場合には、当該処理を終了する。
【００８７】
一方、上記ステップＳ２において、受信したデータパケットが補完用のデータパケットである場合には（ステップＳ２：Ｙ）、制御部２１は、ステップＳ９に移行する。
【００８８】
ステップＳ９では、制御部２１は、現在設定されている装置のモード（状態）が、上述した補完モードであるか否かを判別し、補完モードである場合には（ステップＳ９：Ｙ）、受信した補完用のデータパケットをバッファメモリ２３における補完用のバッファ（通常のデータパケット用とは別のバッファ）に挿入して書き込み（ステップＳ１０）、ステップＳ１に戻る。一方、補完モードでない場合には（ステップＳ９：Ｎ）、制御部２１は、受信した補完用のデータパケットを破棄し（ステップＳ１１）、ステップＳ１に戻る。つまり、補完モードでない場合、補完用のデータパケットは必要がないので、当該パケットは破棄され、これにより、バッファメモリ２３の容量を確保することができる。
【００８９】
また、上記ステップＳ３において、受信したデータパケットが以前に受信したことがあるパケットである場合には（ステップＳ３：Ｙ）、制御部２１は、当該重複したデータパケットを破棄し（ステップＳ１１）、ステップＳ１に戻る。
【００９０】
また、上記ステップＳ５において、現在設定されている装置のモードが補完モードである場合には（ステップＳ５：Ｎ）、制御部２１は、データパケットの欠落（欠損）を検査し、欠落があれば（例えば、今回受信したデータパケットが、前回受信したデータパケットの次に受信すべきデータパケットでなければ）、当該コンテンツデータの欠落パケットリストに、欠落したデータパケットのパケット番号を記述（つまり、欠落したデータパケットを欠落パケットリストに登録）する（ステップＳ１２）。かかるデータパケットの欠落の検査は、例えば、受信したデータパケットのパケット番号（ペイロード部中の）と、当該ノード装置２が保持しているシーケンスカウンタ（次に受信すべきデータパケットのパケット番号が表すカウンタ）とを比較することによって行われる。
【００９１】
次いで、制御部２１は、欠落パケットリストに所定数（例えば、１０個）以上のデータパケットのパケット番号が記述（登録）されているか否かを判別し（ステップＳ１３）、所定数以上のデータパケットのパケット番号が記述されていない場合には（ステップＳ１３：Ｎ）、ステップＳ６に移行し、所定数以上のデータパケットのパケット番号が記述されている場合（つまり、所定数以上のデータパケットが欠落した場合）には（ステップＳ１４：Ｙ）、ステップＳ１４のパケット補完処理を行う。
【００９２】
当該パケット補完処理においては、図８に示すように、先ず、制御部２１は、予め設定されていた確率の閾値βを調整する（ステップＳ１１１）。より具体的には、制御部２１は、接続先紹介（照会）サーバ３から取得した遠方ノード装置の階層レベル情報を参照し、自己のノード装置２と階層と、遠方ノード装置の階層とを比較して、自己のノード装置２の階層よりも遠方ノード装置の階層が下（下流）の場合には、閾値βを一時的に下げる（上流が選ばれやすくする）ように調整する。なお、自己のノード装置２の階層よりも遠方ノード装置の階層が下（下流）でない場合には、閾値βはそのまま維持される。
【００９３】
次いで、制御部２１は、乱数発生器にて発生された乱数値Ｒを取得し（ステップＳ１１２）、乱数値Ｒは閾値β以上であるか否かを判別し（ステップＳ１１３）、乱数値Ｒが閾値β以上である場合には（ステップＳ１１３：Ｙ）、上流ノード装置を選択して上記欠落パケットリストが含まれる補完要求情報を通信部２９ａを通じて当該上流ノード装置に送信し（ステップＳ１１４）、図７の処理に戻る。一方、乱数値Ｒが閾値β以上でない場合には（ステップＳ１１３：Ｎ）、遠方ノード装置を選択して上記欠落パケットリストが含まれる補完要求情報を通信部２９ａを通じて当該遠方ノード装置に送信し（ステップＳ１１５）、図７の処理に戻る。
【００９４】
以上のように、補完モードが設定されている場合には、補完要求情報が他のノード装置２に送信され、補完要求情報に応じて送信されてきた補完用のデータパケットは、バッファメモリ２３における補完用のバッファに蓄積されることになる。そして、他のノード装置２又は放送局装置１から送信されてきた補完完了情報（後述するステップＳ２５，Ｓ４５，及びＳ５３の処理により）が受信されると、制御部１２は、バッファメモリ２３に蓄積された複数のデータパケット（通常のデータパケット）と補完用のデータパケット（補完用バッファに蓄積されたデータパケット）を抽出して（使って）完全なコンテンツデータを復元し、記録手段として、これを他の記録媒体としての記憶部２２におけるＨＤへ記録（例えば、コンテンツデータの購入のため）する。
【００９５】
次に、図９に示す処理は、補完要求情報を受信した上流ノード装置又は遠方ノード装置において開始される。なお、図９に示す処理は、放送局装置１に直接接続されていないノード装置２の制御部２１における処理である。
【００９６】
図９の処理において、制御部２１は、補完要求情報に含まれる欠落パケットリストにて示されるデータパケットを有しているか（補完可能なデータパケットがあるか）否かを判別（例えば、欠落パケットリストに記述されたパケット番号及びコンテンツＩＤと、バッファメモリ２３に蓄積されているデータパケットのパケット番号及びコンテンツＩＤとを突きあわせて判別）し（ステップＳ２１）、補完可能なデータパケットがない場合には（ステップＳ２１：Ｎ）、ステップＳ２４に移行する。なお、ステップＳ２１において、補完可能なデータパケットがバッファメモリ２３にない場合、当該データパケットに係るコンテンツデータが記憶部２２におけるＨＤに記録されているか否かが判別され、記録されている場合には、当該記録されているコンテンツデータがパケット化され、その中から上記補完用のデータパケットが抽出され、上記補完要求情報の送信元のノード装置２に送信（返信）されるように構成しても良い。
【００９７】
一方、補完可能なデータパケットがある場合には（ステップＳ２１：Ｙ）、制御部２１は、当該補完用のデータパケットをバッファメモリ２３から読み出して通信部２９ａを通じて、上記補完要求情報の送信元のノード装置２に送信（返信）する（ステップＳ２２）。そして、制御部２１は、当該返信に係るデータパケットに対応するパケット番号を当該欠落パケットリストから削除して当該欠落パケットリストを更新し（ステップＳ２３）、ステップＳ２４に移行する。
【００９８】
ステップＳ２４では、制御部２１は、更新後の欠落パケットリストにデータパケットのパケット番号が未だ記述されているか否かを判別する。そして、欠落パケットリストにデータパケットのパケット番号が記述されていない場合には（ステップＳ２４：Ｎ）、全ての欠落したデータパケットが送信されたことになるので、制御部２１は、データパケットの補完完了情報を通信部２９ａを通じて、上記補完要求情報の送信元のノード装置２に送信して（ステップＳ２５）、当該処理を終了する。
【００９９】
一方、更新後の欠落パケットリストにデータパケットのパケット番号が未だ記述されている場合には（ステップＳ２４：Ｙ）、制御部２１は、上記ステップＳ１１１と同様、予め設定されていた確率の閾値βを調整し（ステップＳ２６）、続いて、乱数発生器にて発生された乱数値Ｒを取得し（ステップＳ２７）、乱数値Ｒは閾値β以上であるか否かを判別する（ステップＳ２８）。そして、乱数値Ｒが閾値β以上である場合には（ステップＳ２８：Ｙ）、制御部２１は、上流ノード装置を選択して上記欠落パケットリスト（更新されている場合、更新後の欠落パケットリスト）が含まれる補完要求情報を通信部２９ａを通じて当該上流ノード装置に送信（転送）し（ステップＳ２９）、当該処理を終了する。一方、乱数値Ｒが閾値β以上でない場合には（ステップＳ２８：Ｎ）、遠方ノード装置を選択して上記欠落パケットリスト（更新されている場合、更新後の欠落パケットリスト）が含まれる補完要求情報を通信部２９ａを通じて当該遠方ノード装置に送信し（ステップＳ２９ａ）、当該処理を終了する。
【０１００】
なお、図９に示す処理は、上記補完要求情報の転送経路に存在するノード装置２において行われることになる。
【０１０１】
ところで、補完要求情報を受信した上流ノード装置又は遠方ノード装置が、放送局装置１に直接接続されているノード装置２である場合、図１０に示す処理が行われる。
【０１０２】
図１０の処理において、ステップＳ４１からＳ４５までの処理は、図９に示すステップＳ２１からＳ２５までの処理と同様である。そして、ステップＳ４６では、制御部２１は、放送局装置１に上記欠落パケットリスト（更新されている場合、更新後の欠落パケットリスト）が含まれる補完要求情報を通信部２９ａを通じて送信し、当該処理を終了する。
【０１０３】
次に、図１１に示す処理は、補完要求情報を受信した放送局装置１において開始され、制御部１１は、欠落パケットリストに記述されたパケット番号及びコンテンツＩＤに基づき、マスタのコンテンツデータから補完用のデータパケットを取得し（ステップＳ５１）、当該補完用のデータパケットを通信部２９ａを通じて、上記補完要求情報の送信元のノード装置２に送信（返信）し（ステップＳ５２）、更に、データパケットの補完完了情報を上記補完要求情報の送信元のノード装置２に送信して（ステップＳ５３）、当該処理を終了する。
【０１０４】
なお、上記実施形態における図７に示す処理においては、１つの単位のコンテンツに係るコンテンツデータの配信中に、データパケットの欠落検査が行われ、所定数以上のデータパケットが欠落した場合に補完要求情報が他のノード装置２に送信される場合の例を説明したが、別の例として、１つの単位のコンテンツに係るコンテンツデータが最後まで受信（言い換えれば、バッファリングが完了）された場合に、補完要求情報が他のノード装置２に送信されるように構成しても良い。
【０１０５】
図１２は、この場合の、補完要求情報の送信元のノード装置２の制御部２１における処理を示すフローチャートである。
【０１０６】
図１２に示す処理は、例えば、１つの単位のコンテンツに係るコンテンツデータが最後までバッファリングされた後、例えば、ユーザが入力部２９ｂを操作してコンテンツ購入指示を入力（例えば、購入ボタンを押下）することにより開始される。
【０１０７】
制御部２１は、先ず、バッファメモリ２３に蓄積されているコンテンツデータを構成する複数のデータパケットのうち欠落したデータパケットがあるか否かを判別（検査）する（ステップＳ６２）。そして、欠落したデータパケットがある場合（ステップＳ６２：Ｙ）、例えば、パケット番号の連続性が途切れる箇所がある場合、制御部２１は、欠落したデータパケットを特定し、そのパケット番号と、当該コンテンツデータのコンテンツＩＤが記述された欠落パケットリストを作成し（ステップＳ６３）、ステップＳ６４のパケット補完処理を行う。
【０１０８】
なお、ステップＳ６４のパケット補完処理（詳細は、図８参照）は、上述したステップＳ１４のパケット補完処理と同様であるので、重複した説明は省略する。また、図１２の処理で補完要求情報が送信された場合における、他のノード装置２等の処理については、図９乃至図１１に示す処理と同様である。
【０１０９】
次に、制御部２１は、上記補完要求情報に対して他のノード装置２等から送信（返信）されてきた補完用のデータパケットを受信し（ステップＳ６５）、これをバッファメモリ２３における補完用のバッファに挿入し、バッファメモリ２３に蓄積された複数のデータパケットと、当該補完用のデータパケット（補完パケット）を使って完全なコンテンツデータを復元して、記録手段として、これを他の記録媒体としての記憶部２２におけるＨＤへ記録（例えば、コンテンツデータの購入のため）する（ステップＳ６６）。
【０１１０】
なお、上記ステップＳ６２において、欠落したデータパケットがない場合（ステップＳ６２：Ｙ）、バッファメモリ２３に蓄積された複数のデータパケットを使って完全なコンテンツデータを復元して、記録手段として、これを他の記録媒体としての記憶部２２におけるＨＤへ記録（例えば、コンテンツデータの購入のため）する。
【０１１１】
次いで、制御部２１は、当該記録されたコンテンツデータを再生するためのライセンス証を例えば、ライセンスサーバ（図示せず）から取得し（ステップＳ６７）、当該コンテンツデータの購入完了した旨をユーザに対して報知（例えば、表示又は音声出力により）して（ステップＳ６８）、当該処理を終了する。これにより、配信されたコンテンツデータに欠落したデータパケットがある場合にも、ユーザは当該欠落したデータパケットを補完して完全な形で購入することができる。
【０１１２】
なお、このように記録（購入）されたコンテンツデータは、例えば、ユーザから入力部２９ｂを介して再生指示があった場合に、制御部２１の制御の下、復号化アクセラレータ２４により復号化され、デコーダ部２５によりデコード、再生され、そのビデオデータ等は、映像処理部２６を介して表示部２７に表示され、オーディオデータは、音声処理部２８を介してスピーカ２９から音波として出力されることになる。
【０１１３】
以上説明したように、上記実施形態によれば、欠落したデータパケットを補完するノード装置から発信された補完要求情報が、これに示されるデータパケットを有しているノード装置２に辿り着くまで転送されるので、より効率的にデータパケットを補完することができる。しかも、補完要求情報は、各ノード装置において、上流ノード装置と、遠方ノード装置との何れか一方のノード装置を予め設定された確率で選択されて送信又は転送されるので、放送局装置１及び上流のノード装置２への負担を抑えつつ、幅広い範囲で、より効率的にデータパケットを補完することができる。
【０１１４】
なお、上記実施形態において、補完要求情報の送信元のノード装置２が、接続する上流ノード装置を変更し、階層レベルを上げた（例えば、第４階層から第２階層に上げた）場合、例えば、当初から認識している遠方ノード装置に対して補完要求情報を送信すると、当該遠方ノード装置は自己よりも下流の階層の場合があるので、補完要求情報の転送がループする可能性（図３参照）がある。これを回避するためのノード装置２の動作について説明する。
【０１１５】
図１３は、補完要求情報の送信元のノード装置２が、接続する上流ノード装置を変更し、階層レベルを上げた場合における、補完要求情報の転送のループを回避するための動作の様子を示す図である。
【０１１６】
図１３の例では、補完要求情報の送信元のノード装置２ｒは、階層レベルを上げた場合に、自己が当初から認識している遠方ノード装置２ｗに対して、補完要求情報の代わりに紹介要求情報（自己の所在情報及び階層レベル情報を含む）を送信しており、紹介要求情報を受信した遠方ノード装置２ｗは、自己の上流ノード装置２ｋに対して当該紹介要求情報を転送し、当該上流ノード装置２ｋは、自己の階層と、送信元のノード装置２ｒの階層を比較して同じ階層でないので、更に上流の上流ノード装置２ｅに対して、当該紹介要求情報を転送し、当該上流ノード装置２ｅは、自己の階層と、送信元のノード装置２ｒの階層を比較して同じ階層であるので、送信元のノード装置２ｒに対して、自己の所在情報及び階層レベル情報を含む紹介応答情報を送信するようになっている。これにより、補完要求情報の送信元のノード装置２ｒが、接続する上流ノード装置を変更し、階層レベルを上げた場合においても、当該送信元のノード装置２は、新たな遠方ノード装置の所在情報等を効率よく取得でき、新たな遠方ノード装置に対して補完要求情報を送信することができる。
【０１１７】
なお、上記実施形態においては、第１ノード装置の一例として、自己が直接接続する上流のノード装置としたが、自己から放送局装置１に至るまでの通信経路上に位置する何れかの上流のノード装置としてもよい。
【図面の簡単な説明】
【０１１８】
【図１】本実施形態に係るツリー型コンテンツ配信システムにおける各装置の接続態様の一例を示す図である。
【図２】補完要求情報が放送局装置１方向に向かって転送されていく様子を示す図である。
【図３】補完要求情報の転送がループする様子を示す図である。
【図４】放送局装置１の概要構成例を示す図である。
【図５】ノード装置２の概要構成例を示す図である。
【図６】接続先紹介（照会）サーバ３の概要構成例を示す図である。
【図７】補完要求情報の送信元のノード装置２の制御部２１における処理を示すフローチャートである。
【図８】図７におけるパケット補完処理の詳細を示すフローチャートである。
【図９】補完要求情報を受信したノード装置２の制御部２１における処理を示すフローチャートである。
【図１０】補完要求情報を受信した放送局装置１の下流に位置するノード装置２の制御部２１における処理を示すフローチャートである。
【図１１】補完要求情報を受信した放送局装置１の制御部１１における処理を示すフローチャートである。
【図１２】この場合の、補完要求情報の送信元のノード装置２の制御部２１における処理を示すフローチャートである。
【図１３】補完要求情報の送信元のノード装置２が、接続する上流ノード装置を変更し、階層レベルを上げた場合における、補完要求情報の転送のループを回避するための動作の様子を示す図である。
【符号の説明】
【０１１９】
１  放送局装置
２  ノード装置
３  接続先紹介（照会）サーバ
４  通信経路
１０  ネットワーク
１１  制御部
１２  記憶部
１３  暗号化用アクセラレータ
１５  通信部
１６  入力部
１７  バス
２１  制御部
２２  記憶部
２３  バッファメモリ
２４  復号化アクセラレータ
２５  デコーダ部
２６  映像処理部
２７  表示部
２８  音声処理部
２９  スピーカ
２９ａ  通信部
２９ｂ  入力部
２９ｃ  ＩＣカードスロット
２９ｄ  バス
３５  制御部
３６  記憶部
３７  通信部
３８  バス
Ｓ  ツリー型コンテンツ配信システム
【図１】
2006319495.tif 000003
【図２】
2006319495.tif 000004
【図３】
2006319495.tif 000005
【図４】
2006319495.tif 000006
【図５】
2006319495.tif 000007
【図６】
2006319495.tif 000008
【図７】
2006319495.tif 000009
【図８】
2006319495.tif 000010
【図９】
2006319495.tif 000011
【図１０】
2006319495.tif 000012
【図１１】
2006319495.tif 000013
【図１２】
2006319495.tif 000014
【図１３】
2006319495.tif 000015