(57)【要約】      （修正有）【課題】ローカリティが考慮されたオーバーレイネットワークを構築することが可能で、ネットワークへの不必要な負荷を軽減するノード装置等を提供する。【解決手段】オーバーレイネットワークに参加するノード装置は、参加要求情報を送信すべきノード装置を検索する検索情報を情報処理装置に送信する検索情報送信手段と、情報処理装置によって転送された検索情報を受信したオーバーレイネットワークに参加している複数のノード装置からの返信情報を受信する返信情報受信手段と、返信情報を返信した夫々のノード装置と自己との間の通信経路の通信負荷情報を取得する通信負荷情報取得手段と、各通信経路の通信負荷情報を比較する通信負荷比較手段と、比較結果に基づいて、返信した複数のノード装置のうちから参加要求情報を送信すべきノード装置を選定するノード装置選定手段と、選定されたノード装置に参加要求情報を送信する参加要求情報送信手段と、を備える。【選択図】  図１
2006191489.tif 000002
【特許請求の範囲】
【請求項１】
通信手段を介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに参加するノード装置であって、
前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべきノード装置を検索するための検索情報を前記通信手段に接続された情報処理装置に対して送信する検索情報送信手段と、
前記オーバーレイネットワークに参加している複数のノード装置であって、前記情報処理装置によって転送された前記検索情報を受信した当該複数のノード装置から返信されてきた返信情報を夫々受信する返信情報受信手段と、
前記受信された夫々の返信情報から、当該夫々の返信情報を返信した夫々の前記ノード装置と自己との間の通信経路における通信負荷に関する情報を取得する通信負荷情報取得手段と、
各前記通信経路における通信負荷に関する情報を比較する通信負荷比較手段と、
前記通信負荷比較手段による比較結果に基づいて、前記返信情報を返信した前記複数のノード装置のうちから前記参加要求情報を送信すべきノード装置を選定するノード装置選定手段と、
前記選定されたノード装置に対して前記参加要求情報を送信する参加要求情報送信手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記ノード装置選定手段は、前記返信情報を返信した前記複数のノード装置のうちから、自己との間の通信経路上における前記通信負荷が最も小さいノード装置を選定することを特徴とするノード装置。
【請求項３】
請求項１又は２に記載のノード装置において、
互いに異なる複数の識別情報を生成する識別情報生成手段を更に備え、
前記検索情報送信手段は、前記検索情報に対して、前記生成された複数の識別情報を付加して前記情報処理装置に対して送信し、
前記検索情報は、夫々の前記識別情報に従って、前記情報処理装置から夫々の前記識別情報の管理元であるノード装置に至るまで転送され、
前記返信情報受信手段は、前記検索情報を受信した前記夫々の識別情報の管理元であるノード装置から返信されてきた返信情報を夫々受信することを特徴とするノード装置。
【請求項４】
請求項１又は２に記載のノード装置において、
前記検索情報は、前記情報処理装置によって生成された互いに異なる複数の識別情報に従って、当該情報処理装置から夫々の前記識別情報の管理元であるノード装置に至るまで転送され、
前記返信情報受信手段は、前記検索情報を受信した前記夫々の識別情報の管理元であるノード装置から返信されてきた返信情報を夫々受信することを特徴とするノード装置。
【請求項５】
請求項１乃至４の何れか一項に記載のノード装置において、
前記参加要求情報送信手段は、前記選定されたノード装置に対して、自己に固有の識別情報を前記参加要求情報に付加して送信し、
前記参加要求情報は、前記固有の識別情報に従って、当該参加要求情報を受信した前記ノード装置から当該固有の識別情報の管理元であるノード装置に至るまで転送され、
当該参加要求情報を転送する夫々のノード装置から送信されてきた当該識別情報の転送先を含む転送先情報を受信する転送先情報受信手段と、
前記受信された夫々の転送先情報に基づいて、新たな転送先情報を生成する転送先情報生成手段と、
を更に備えることを特徴とするノード装置。
【請求項６】
請求項１乃至５の何れか一項に記載のノード装置において、
前記通信負荷情報取得手段は、前記受信された夫々の返信情報から、前記通信負荷に関する情報として、ＴＴＬ（Time To Live）を取得し、
前記通信負荷比較手段は、前記取得されたＴＴＬを比較することを特徴とするノード装置。
【請求項７】
通信手段を介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに新たに参加するノード装置に含まれるコンピュータを、
前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべきノード装置を検索するための検索情報を前記通信手段に接続された情報処理装置に対して送信する検索情報送信手段、
前記オーバーレイネットワークに参加している複数のノード装置であって、前記情報処理装置によって転送された前記検索情報を受信した当該複数のノード装置から返信されてきた返信情報を夫々受信する返信情報受信手段、
前記受信された夫々の返信情報から、当該夫々の返信情報を返信した夫々の前記ノード装置と自己との間の通信経路における通信負荷に関する情報を取得する通信負荷情報取得手段、
各前記通信経路における通信負荷に関する情報を比較する通信負荷比較手段、
前記通信負荷比較手段による比較結果に基づいて、前記返信情報を返信した前記複数のノード装置のうちから前記参加要求情報を送信すべきノード装置を選定するノード装置選定手段、及び、
前記選定されたノード装置に対して前記参加要求情報を送信する参加要求情報送信手段として機能させることを特徴とするネットワーク参加処理プログラム。
【請求項８】
請求項７に記載のネットワーク参加処理プログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【請求項９】
通信手段を介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに新たにノード装置が参加するためのネットワーク参加処理方法であって、
前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべきノード装置を検索するための検索情報を前記通信手段に接続された情報処理装置に対して送信する工程と、
前記オーバーレイネットワークに参加している複数のノード装置であって、前記情報処理装置によって転送された前記検索情報を受信した当該複数のノード装置から返信されてきた返信情報を夫々受信する工程と、
前記受信された夫々の返信情報から、当該夫々の返信情報を返信した夫々の前記ノード装置と自己との間の通信経路における通信負荷に関する情報を取得する工程と、
各前記通信経路における通信負荷に関する情報を比較する工程と、
前記通信負荷比較手段による比較結果に基づいて、前記返信情報を返信した前記複数のノード装置のうちから前記参加要求情報を送信すべきノード装置を選定する工程と、
前記選定されたノード装置に対して前記参加要求情報を送信する工程と、
を備えることを特徴とするネットワーク参加処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の情報配信システム及び方法等に関し、特に、上記複数のノード装置のうちの全部又は一部のノード装置の参加により形成されているオーバーレイネットワークに未参加のノード装置が参加するための技術分野に関する。
【背景技術】
【０００２】
ピアツーピア型の情報配信システムにおいて、例えば、分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して論理的に構築されたオーバーレイネットワークでは、各ノード装置が、当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報（例えば、ＩＰアドレス）を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持しており、かかるリンク情報に基づき、データの問い合わせ等を行うようになっている。
【０００３】
このようなオーバーレイネットワークにおいては、ノード装置の参加及び脱退（離脱）が頻繁に行われても、負荷分散が適切に行われる必要があり、非特許文献１には、オーバーレイネットワークにおいて、参加及び脱退（離脱）が頻繁に行われる場合であっても、適切に負荷分散を行うための技術が開示されている。
【０００４】
【非特許文献１】「分散ハッシュテーブルの軽量な負荷分散手法の検討」  社団法人  電子情報通信学会  信学技報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術においては、各ノード装置のリンク情報は、ローカリティ（地域性）、言い換えれば、実際のネットワーク（実ネットワーク）上の近さが考慮されていないため、実際のネットワークに対して余分な負荷を与えることが考えられる。
【０００６】
本発明は、以上の問題等に鑑みてなされたものであり、ローカリティ（地域性）が考慮されたオーバーレイネットワークを構築することが可能で、実際のネットワークへの余分な負荷を軽減することが可能なノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、通信手段を介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに参加するノード装置であって、前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべきノード装置を検索するための検索情報を前記通信手段に接続された情報処理装置に対して送信する検索情報送信手段と、前記オーバーレイネットワークに参加している複数のノード装置であって、前記情報処理装置によって転送された前記検索情報を受信した当該複数のノード装置から返信されてきた返信情報を夫々受信する返信情報受信手段と、前記受信された夫々の返信情報から、当該夫々の返信情報を返信した夫々の前記ノード装置と自己との間の通信経路における通信負荷に関する情報を取得する通信負荷情報取得手段と、各前記通信経路における通信負荷に関する情報を比較する通信負荷比較手段と、前記通信負荷比較手段による比較結果に基づいて、前記返信情報を返信した前記複数のノード装置のうちから前記参加要求情報を送信すべきノード装置を選定するノード装置選定手段と、前記選定されたノード装置に対して前記参加要求情報を送信する参加要求情報送信手段と、を備えることを特徴とする。
【０００８】
請求項１に記載の発明によれば、オーバーレイネットワークへの参加を希望をするノード装置が、オーバーレイネットワークに参加している複数のノード装置からの夫々の返信情報から、当該夫々の返信情報を返信した夫々のノード装置と自己との間の通信経路における通信負荷に関する情報、例えば、ＴＴＬ（Time To Live）を取得して互いに比較し、自己との間の通信経路における通信負荷が最も小さい、言い換えれば、ネットワーク的に近いノード装置を選定して、これに対して参加要求を行ってオーバーレイネットワークに参加するように構成したので、実際のネットワーク上のローカリティ（地域性）が考慮されたオーバーレイネットワークを構築することが可能となり、実際のネットワークへの不必要な負荷を軽減することができる。
【０００９】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記ノード装置選定手段は、前記返信情報を返信した前記複数のノード装置のうちから、自己との間の通信経路上における前記通信負荷が最も小さいノード装置を選定することを特徴とする。
【００１０】
請求項３に記載の発明は、請求項１又は２に記載のノード装置において、互いに異なる複数の識別情報を生成する識別情報生成手段を更に備え、前記検索情報送信手段は、前記検索情報に対して、前記生成された複数の識別情報を付加して前記情報処理装置に対して送信し、前記検索情報は、夫々の前記識別情報に従って、前記情報処理装置から夫々の前記識別情報の管理元であるノード装置に至るまで転送され、前記返信情報受信手段は、前記検索情報を受信した前記夫々の前記識別情報の管理元であるノード装置から返信されてきた返信情報を夫々受信することを特徴とする。
【００１１】
請求項４に記載の発明は、請求項１又は２に記載のノード装置において、前記検索情報は、前記情報処理装置によって生成された互いに異なる複数の識別情報に従って、当該情報処理装置から夫々の前記識別情報の管理元であるノード装置に至るまで転送され、前記返信情報受信手段は、前記検索情報を受信した前記夫々の前記識別情報の管理元であるノード装置から返信されてきた返信情報を夫々受信することを特徴とする。
【００１２】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載のノード装置において、前記参加要求情報送信手段は、前記選定されたノード装置に対して、自己に固有の識別情報を前記参加要求情報に付加して送信し、前記参加要求情報は、前記固有の識別情報に従って、当該参加要求情報を受信した前記ノード装置から当該固有の識別情報の管理元であるノード装置に至るまで転送され、当該参加要求情報を転送する夫々のノード装置から送信されてきた当該識別情報の転送先を含む転送先情報を受信する転送先情報受信手段と、前記受信された夫々の転送先情報に基づいて、新たな転送先情報を生成する転送先情報生成手段と、を更に備えることを特徴とする。
【００１３】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載のノード装置において、前記通信負荷情報取得手段は、前記受信された夫々の返信情報から、前記通信負荷に関する情報として、ＴＴＬ（Time To Live）を取得し、前記通信負荷比較手段は、前記取得されたＴＴＬを比較することを特徴とする。
【００１４】
請求項６に記載の発明によれば、ＴＴＬを用いて、簡単に通信効果を判断できる。
【００１５】
請求項７に記載の発明は、通信手段を介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに新たに参加するノード装置に含まれるコンピュータを、前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべきノード装置を検索するための検索情報を前記通信手段に接続された情報処理装置に対して送信する検索情報送信手段、前記オーバーレイネットワークに参加している複数のノード装置であって、前記情報処理装置によって転送された前記検索情報を受信した当該複数のノード装置から返信されてきた返信情報を夫々受信する返信情報受信手段、前記受信された夫々の返信情報から、当該夫々の返信情報を返信した夫々の前記ノード装置と自己との間の通信経路における通信負荷に関する情報を取得する通信負荷情報取得手段、各前記通信経路における通信負荷に関する情報を比較する通信負荷比較手段、前記通信負荷比較手段による比較結果に基づいて、前記返信情報を返信した前記複数のノード装置のうちから前記参加要求情報を送信すべきノード装置を選定するノード装置選定手段、及び、前記選定されたノード装置に対して前記参加要求情報を送信する参加要求情報送信手段として機能させることを特徴とする。
【００１６】
請求項８に記載の発明は、請求項７に記載のネットワーク参加処理プログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【００１７】
請求項９に記載の発明は、通信手段を介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに新たにノード装置が参加するためのネットワーク参加処理方法であって、前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべきノード装置を検索するための検索情報を前記通信手段に接続された情報処理装置に対して送信する工程と、前記オーバーレイネットワークに参加している複数のノード装置であって、前記情報処理装置によって転送された前記検索情報を受信した当該複数のノード装置から返信されてきた返信情報を夫々受信する工程と、前記受信された夫々の返信情報から、当該夫々の返信情報を返信した夫々の前記ノード装置と自己との間の通信経路における通信負荷に関する情報を取得する工程と、各前記通信経路における通信負荷に関する情報を比較する工程と、前記通信負荷比較手段による比較結果に基づいて、前記返信情報を返信した前記複数のノード装置のうちから前記参加要求情報を送信すべきノード装置を選定する工程と、前記選定されたノード装置に対して前記参加要求情報を送信する工程と、を備えることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、実際のネットワーク上のローカリティ（地域性）が考慮されたオーバーレイネットワークを構築することが可能となり、実際のネットワークへの余分な負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００２０】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、コンテンツ配信システムの概要構成等について説明する。
【００２１】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００２２】
図１の下部枠１０１内に示すように、ＩＸ（Internet eXchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。なお、図１の例におけるネットワーク８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００２３】
コンテンツ配信システムＳは、通信手段としてのこのようなネットワーク８を介して相互に接続された複数のノード装置ｎ１，ｎ２・・・ｎ２１を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている（なお、実際には、これ以上のノード装置が存在することになる）。また、各ノード装置ｎ１〜ｎ２１には、ノード装置を示す情報として固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数のノード装置１間で重複しないものである。
【００２４】
そして、このコンテンツ配信システムＳにおいては、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワーク（論理的なネットワーク）を意味する。
【００２５】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９（図１の上部枠１００内）に配置されたノード装置ｎ１〜ｎ１５を、オーバーレイネットワーク９に参加しているノード装置（以下、このようなノード装置ｎ１〜ｎ１５を「参加ノードｎｎ」と総称する）という。言い換えれば、オーバーレイネットワーク９は、参加ノードｎｎの参加により形成されている。このようなオーバーレイネットワーク９への参加は、参加していないノード装置ｎ１６〜ｎ２１（以下、「未参加ノードｎｍ」と総称する）が、任意の参加ノードｎｎに対して参加要求を示す参加要求情報を送信することによって行われる。
【００２６】
また、各参加ノードｎｎは、識別情報としてのノードＩＤを有しており、当該ノードＩＤは、例えば、ＩＰアドレスあるいは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をノードＩＤとする。
【００２７】
また、各参加ノードｎｎは、夫々、ＤＨＴを保持している。このＤＨＴには、ノードＩＤや後述するコンテンツＩＤの転送先を含む転送先情報（言い換えれば、他の参加ノードｎｎへの経路情報）、すなわち、ノードＩＤ空間内で適度に離れた他の参加ノードｎｎのノードＩＤとそのＩＰアドレスの組が複数登録されたルーティングテーブルが含まれている。このようなＤＨＴは、未参加ノードｎｍがオーバーレイネットワーク９に参加する際に与えられることになる。
【００２８】
また、コンテンツ配信システムＳにおいては、未参加ノードｎｍによるオーバーレイネットワーク９への参加、若しくは参加ノードｎｎによるオーバーレイネットワーク９からの脱退が頻繁に行われるため、定期的に（例えば数十分から数時間間隔で）ＤＨＴの更新が必要かどうかが確認されると共に、その更新情報がＤＨＴのルーティングテーブルに従って他の参加ノードｎｎに伝達されるようになっている。これにより、ＤＨＴを最新の状態に保つことが可能となる。
【００２９】
更に、オーバーレイネットワーク９においては、様々なコンテンツ（例えば、映画や音楽等）データが複数の参加ノードｎｎに分散して保存（格納）されている。例えば、参加ノードｎ１には、タイトルがＸＸＸの映画のコンテンツデータが保存されており、一方、参加ノードｎ２には、タイトルがＹＹＹの映画のコンテンツデータが保存されるというように、互いに異なるコンテンツデータが、複数の参加ノードｎｎに分散されて保存される。
【００３０】
また、あるコンテンツデータは、１つの参加ノードｎｎに保存されているとは限らず、複数の参加ノードｎｎに同じコンテンツデータが保存されうる。これらのコンテンツデータには、夫々、コンテンツ名（タイトル）等が付与されている。
【００３１】
そして、このように分散保存されているコンテンツデータの所在を示す所在情報（例えば、コンテンツデータが保存されている参加ノードｎｎのＩＰアドレス及び製造番号）もまた、複数の参加ノードｎｎに分散して保存されている。例えば、あるコンテンツデータのコンテンツ名（或いは、当該コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、参加ノードｎｎのＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値（当該ハッシュ値がコンテンツＩＤとなる）と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する参加ノードｎｎ（当該ハッシュ値の管理元となる）に、当該コンテンツデータの所在情報が保存されることになる。つまり、同一のコンテンツデータ（コンテンツＩＤが同一）が、夫々、複数の参加ノードｎｎに保存されている場合であっても、かかるコンテンツデータの所在を示す所在情報（複数の参加ノードｎｎのＩＰアドレス等）は、１つの参加ノードｎｎで管理することができる（このようにコンテンツデータの所在を管理する参加ノードを、以下、「ルートノード」という）。なお、本実施形態においては、１のルートノードでは、１のコンテンツＩＤに対応するコンテンツデータの所在情報が保存される（つまり、ルートノードと上記所在情報とは１対１の関係にある）が、これに限定されるものではない）。
【００３２】
これにより、あるコンテンツデータを取得（ダウンロード）したいユーザが使用する例えば参加ノードｎ４は、当該コンテンツデータのコンテンツＩＤが付加されたクエリ（問合せ情報）を他の参加ノードｎｎに対して送出することにより、当該コンテンツＩＤが付加されたクエリは、いくつかの参加ノードｎｎを経由されて（各中継ノードにおいて、上記ＤＨＴのルーティングテーブルが参照されてコンテンツＩＤが転送される）そのコンテンツデータの所在を示す所在情報を保存しているルートノードｎ１０に辿り着き、当該ルートノードｎ１０から当該所在情報を取得（受信）することが可能となり、取得した所在情報に基づいて上記コンテンツデータを保存している例えば参加ノードｎ５に接続し、そこから当該コンテンツデータを取得（受信）することが可能になる。
【００３３】
なお、コンテンツＩＤがルートノードｎ１０に辿り着くまでの間に当該ルートノードｎ１０と同じ所在情報をキャッシュしている参加ノードｎｎから当該所在情報を取得（受信）されるようにしてもよい。
【００３４】
図２は、ＤＨＴのノードＩＤ空間において、参加ノードｎ４から送出されたクエリがルートノードｎ１０まで転送される様子の一例を示す図である。図２の例において、各中継ノードは、受信したクエリに付加されたコンテンツＩＤと、ＤＨＴのルーティングテーブルに登録されているノードＩＤとを比較して、次に転送すべき参加ノードｎｎを特定（例えば、コンテンツＩＤの上位数桁が一致するノードＩＤに対応する参加ノードｎｎのＩＰアドレスを特定）し、そこにクエリを転送することになる。
【００３５】
ここで、上記ＤＨＴのルーティングテーブルの一般的な考え方の一例について以下に説明する。
【００３６】
図３は、参加ノードｎ１が保持するＤＨＴのルーティングテーブルの一例を示す図であり、図４は、ＤＨＴのノードＩＤ空間の一例を示す概念図である。なお、図３及び図４の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとし、各桁を４進数（０〜４の整数）で表している（実際には、もっと長いｂｉｔ長を用い、各桁も例えば４ｂｉｔに区切って０〜ｆの１６進数で表現する）。
【００３７】
図３の例において、ＤＨＴのルーティングテーブルは、レベル１〜レベル３のテーブルからなり、各レベルのテーブルには、エリア毎に、ノードＩＤとこれに対応する参加ノードｎｎのＩＰアドレスが対応付けられて登録されている。各レベルのテーブルにおける各エリアは、ＤＨＴのノードＩＤ空間を分割することにより得られるエリアである。例えば、図４に示すように、レベル１では、ＤＨＴのノードＩＤ空間全体が４分割され、“０００”〜“０３３”のノードＩＤが存在するエリアを０ＸＸのエリア、“１００”〜“１３３” のノードＩＤが存在するエリアを１ＸＸのエリア、“２００”〜“２３３” のノードＩＤが存在するエリアを２ＸＸのエリア、“３００”〜“３３３” のノードＩＤが存在するエリアを３ＸＸのエリアとする。また、レベル２では、レベル１のエリア（つまり、０ＸＸ〜３ＸＸのエリア）が更に４分割、例えば１ＸＸのエリアが４分割され、“１００”〜“１０３” のノードＩＤが存在するエリアを１０Ｘのエリア、“１１０”〜“１１３” のノードＩＤが存在するエリアを１１Ｘのエリア、“１２０”〜“１２３” のノードＩＤが存在するエリアを１２Ｘのエリア、“１３０”〜“１３３” のノードＩＤが存在するエリアを１３Ｘのエリアとする。
【００３８】
そして、例えば、参加ノードｎ１のノードＩＤが“１２３”とすると、図３に示すように、かかる参加ノードｎ１のレベル１における１ＸＸのエリア（自己が存在するエリア）のテーブルには、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）が登録され、自己が存在しないエリア（つまり、０ＸＸのエリア、２ＸＸのエリア、及び３ＸＸのエリア）には、夫々、他の任意の参加ノードｎｎのノードＩＤ及びＩＰアドレスが登録されている。
【００３９】
また、かかる参加ノードｎ１のレベル２における１２Ｘのエリア（自己が存在するエリア）のテーブルには、図３に示すように、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）が登録され、自己が存在しないエリア（つまり、１０Ｘのエリア、１１Ｘのエリア、及び１３Ｘのエリア）には、夫々、他の任意の参加ノードｎｎのノードＩＤ及びＩＰアドレスが登録されている。
【００４０】
更に、かかる参加ノードｎ１のレベル３には、図３に示すように、１２Ｘのエリアに存在する全ての参加ノードｎｎのノードＩＤ及びＩＰアドレスが登録される。
【００４１】
なお、図３及び図４の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔとしたので、レベル１〜３の３レベル分のテーブルで網羅できるが、ノードＩＤのｂｉｔ長が増せば、その分のテーブルが必要となる（例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる）。
【００４２】
このように、本実施形態におけるＤＨＴのルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっており、このように構成されたルーティングテーブルにより、例えば参加ノードｎ１から送出されたクエリがルートノードまで効率良く転送されることになる。
【００４３】
そして、このようなＤＨＴのルーティングテーブルは、未参加ノードｎｍが、オーバーレイネットワーク９に参加するために、任意の参加ノードｎｎに対して、自己のノードＩＤを付加した参加要求情報を送信することによって生成されることになる。
【００４４】
このようなＤＨＴのルーティングテーブルが生成されるまでの流れについて以下に説明する。
【００４５】
図５は、ＤＨＴのルーティングテーブルが生成されるまでの流れの一例を示す概念図である。
【００４６】
例えば、図５に示すように、未参加ノードｎ１６は、自己のＩＰアドレスを上記ハッシュ関数によりハッシュ化してノードＩＤ（例えば、“３３３”とする）を生成し、当該ノードＩＤ及び自己（未参加ノードｎ１６）のＩＰアドレスが付加された参加要求情報を参加ノードｎ１に送信する。
【００４７】
これに対して、参加ノードｎ１は、当該参加要求情報を受信し、ＤＨＴのルーティングテーブル５１を参照して、参加要求情報に付加されたノードＩＤ“３３３”と最も近いノードＩＤ“３０１”を有する参加ノードｎ１１のＩＰアドレスを取得し、これに基づき、ノードＩＤ“３３３” 及び未参加ノードｎ１６のＩＰアドレス が付加された参加要求情報を参加ノードｎ１１に転送する。
【００４８】
これに対して、参加ノードｎ１１は、当該参加要求情報を受信し、ＤＨＴのルーティングテーブル５２を参照して、参加要求情報に付加されたノードＩＤ“３３３”と最も近いノードＩＤ“３３２”を有する参加ノードｎ９のＩＰアドレスを取得し、これに基づき、ノードＩＤ“３３３”及び未参加ノードｎ１６のＩＰアドレスが付加された参加要求情報を参加ノードｎ９に転送する。
【００４９】
これに対して、参加ノードｎ９は、当該参加要求情報を受信し、ＤＨＴのルーティングテーブル５３におけるレベル３のテーブルにおけるノードＩＤ“３３３”に対応付けて、未参加ノードｎ１６のＩＰアドレスを登録する。つまり、参加ノードｎ９は、当該ノードＩＤ“３３３”の管理元となる。
【００５０】
以上の流れの過程において、図５に示すように、当該参加要求情報を受信した参加ノードｎ１、参加ノードｎ１１、及び参加ノードｎ９は、未参加ノードｎ１６に対して、ＤＨＴのルーティングテーブルの一部を（参加ノードｎ１はレベル１のテーブル５１ａを、参加ノードｎ１１はレベル２のテーブル５２ａを、参加ノードｎ９はレベル３のテーブル５３ａを）、夫々送信する。
【００５１】
これに対して、未参加ノードｎ１６は、送信されてきた各ＤＨＴのルーティングテーブルの一部を受信して、これらに基づいて自己のＤＨＴのルーティングテーブル５４を生成（例えば、参加ノードｎ１におけるレベル１のテーブル５１ａ（ノードＩＤ“３０１”及びこれに対応するＩＰアドレスについては、自己のノードＩＤ“３３３”及びこれに対応するＩＰアドレスと入れ替える）と、参加ノードｎ１１におけるレベル２のテーブル５２ａ（ノードＩＤ“３３２”及びこれに対応するＩＰアドレスについては、自己のノードＩＤ“３３３”及びこれに対応するＩＰアドレスと入れ替える）と、参加ノードｎ９におけるレベル３のテーブル５３ａと、を有するルーティングテーブル５４を生成）する。
【００５２】
こうして生成されたＤＨＴのルーティングテーブル５４を得た未参加ノードｎ１６は、参加ノードｎ１６としてオーバーレイネットワーク９に加わるのである。
【００５３】
ところで、このように生成されるＤＨＴのルーティングテーブルは、極力、ネットワーク８への負荷（ノードＩＤを含む情報がネットワーク８上を伝送されることによる負荷）を軽減するものであることが望ましい。本実施形態においては、ネットワーク８への負荷の軽減可能なＤＨＴのルーティングテーブルを生成するために、複数の参加ノードｎｎのうちから、ネットワーク８上のローカリティ（地域性）が考慮された、参加要求情報を送信するべき参加ノードｎｎが選定されることを特徴とする。
【００５４】
例えば、図１の下部枠１０１内において、同一の回線事業者（例えば、回線事業者５ａ）に属する（符号１０１ａ内の）参加ノードｎ１と未参加ノードｎ１６は、ローカリティ（地域性）があるということができ、一方、当該参加ノードｎ１と、異なる回線業者（例えば、回線事業者５ｂ）に属する（符号１０１ｂ内の）未参加ノードｎ２１は、ローカリティ（地域性）がない（つまり、一旦、ＩＳＰ４ａ、ＩＸ３、及びＩＳＰ４ｂを経由することになる）ということができる。なお、図１の例では、同一の回線事業者に属する参加ノードｎ１と未参加ノードｎ１６には同一の地域番号（Ａ１，Ａ２，Ａ３）が付されている。
【００５５】
そして、ネットワーク８上のローカリティ（地域性）が考慮された参加ノードｎｎとは、未参加ノードｎｍとローカリティ（地域性）がある参加ノードｎｎを意味し、つまり、未参加ノードｎｍとネットワーク的に近い（言い換えれば、未参加ノードｎｍとの間の通信経路上における通信負荷が相対的に小さい）参加ノードｎｎを意味することなる。未参加ノードｎｍが、このような参加ノードｎｎを選定して、これに参加要求情報を送信し、図４にて説明したように、ＤＨＴのルーティングテーブルを生成していけば、例えばネットワーク的に互いに近い関係にある参加ノードｎｎ間でコンテンツＩＤ及びノードＩＤが転送されるようになり、その結果、ネットワーク８全体に与える負荷を低減することが可能となる。なお、このような参加ノードｎｎの具体的な選定方法については後述する。
【００５６】
なお、上記流れは、未参加ノードｎ１６が、新たにオーバーレイネットワーク９に参加する場合ばかりでなく、一度脱退した後、再度参加する場合にも適用できる。
【００５７】
次に、図６を参照して、参加ノードｎｎ及び未参加ノードｎｍの構成及び機能について説明する。
【００５８】
図６は、参加ノードｎｎ及び未参加ノードｎｍの概要構成例を示す図である。
【００５９】
参加ノードｎｎ及び未参加ノードｎｍは、夫々、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、コンテンツデータ、所在情報、ＤＨＴ）及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶部１２と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他の参加ノードｎｎ又は未参加ノードｎｍとの間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０は、バス２２を介して相互に接続されている。
【００６０】
このような構成において、未参加ノードｎｍにおける制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明のネットワーク参加処理プログラムを含む）を読み出して実行することにより、全体を統括制御すると共に、本発明の検索情報送信手段、返信情報受信手段、通信負荷情報取得手段、通信負荷比較手段、ノード装置選定手段、参加要求情報送信手段、識別情報生成手段、転送先情報受信手段、及び転送先情報生成手段として機能し、後述する各種処理を行うようになっている。
【００６１】
また、参加ノードｎｎにおける制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、全体を統括制御すると共に、オーバーレイネットワーク９においてノードＩＤ及びコンテンツＩＤの送受信、コンテンツデータの送受信、所在情報の送受信等の各種処理を行い、更には、未参加ノードｎｍ等からの検索情報、参加要求情報等を受信し、後述する各種処理を行うようになっている。
【００６２】
なお、ネットワーク参加処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【００６３】
[２．コンテンツ配信システムの動作]
次に、未参加ノードｎｍがオーバーレイネットワーク９に新たに参加する場合におけるコンテンツ配信システムＳの動作について、実施例１と実施例２に分けて夫々説明する。
【００６４】
（実施例１）
先ず、図７乃至図９を参照して、実施例１におけるコンテンツ配信システムＳの動作について説明する。
【００６５】
この実施例１は、全ての参加ノードｎｎへのリンク情報（例えば、全ての参加ノードｎｎのＩＰアドレス）が記述された参加ノードリストを管理する情報処理装置としての管理サーバＳＡがネットワーク８に接続されている場合の動作例である。
【００６６】
図７（Ａ）は、実施例１において、未参加ノードｎｍにおける制御部１１の処理の一例を示すフローチャートであり、図７（Ｂ）及び（Ｅ）は、実施例1において、管理サーバにおける処理の一例を示すフローチャートであり、図７（Ｃ）及び（Ｄ）は、実施例１において、参加ノードｎｎにおける制御部１１の処理の一例を示すフローチャートである。また、図８及び図９における（Ａ）乃至（Ｆ）は、実施例１において、未参加ノードｎｍがオーバーレイネットワーク９に新たに参加する場合の様子の一例を示す概念図である。
【００６７】
先ず、図７（Ａ）の処理において、例えば未参加ノードｎ１６の制御部１１は、管理サーバＳＡへのリンク情報（例えば、管理サーバＳＡのＩＰアドレス、若しくはＩＰアドレスに対応付けられた固有ＩＤ等）を取得する（ステップＳ１）。かかる管理サーバＳＡへのリンク情報は、例えば、予め未参加ノードｎ１６内に記憶しておいても良いし（例えば、製品出荷時に設定しておく）、入力部２１を介して入力されるようにしても良い。
【００６８】
次いで、未参加ノードｎ１６の制御部１１は、オーバーレイネットワーク９への参加要求を示す参加要求情報（以下、「参加要求パケット」という）を送信すべき参加ノードｎｎを検索するための検索情報（以下、「検索パケット」という）であって自己（未参加ノードｎ１６）のＩＰアドレスを送り元アドレス及び管理サーバＳＡのＩＰアドレスを宛先アドレスとした検索パケットを生成し、検索情報送信手段として、当該検索パケットを通信部２０及びネットワーク８を介して管理サーバＳＡに対して送信する（ステップＳ２：図８（Ａ））。こうして、未参加ノードｎ１６の制御部１１は、任意の参加ノードｎｎからの返信情報の受信待ちとなる。
【００６９】
次に、図７（Ｂ）の処理において、管理サーバＳＡは、未参加ノードｎ１６から送信されてきた検索パケットを受信し（ステップＳ３）、参加ノードリストから所定数（例えば、５〜１０個）の参加ノードｎｎを例えばランダムに選定（選択）する（ステップＳ４）。
【００７０】
そして、未参加ノードｎ１６のＩＰアドレスを含み、かつ、管理サーバＳＡのＩＰアドレスを送り元アドレス及び上記選定した参加ノードｎｎのＩＰアドレスを宛先アドレスとした検索パケットを、上記所定数（例えば、図８（Ａ）の例では５個）生成し、当該検索パケットを、ネットワーク８を介して上記選定した夫々の参加ノードｎｎに対して送信（転送）し（ステップＳ５：図８（Ａ））、当該処理を終了する。
【００７１】
なお、管理サーバＳＡにて選定される参加ノードｎｎの数については、多いほど精度が向上するが、ネットワーク８全体へ与える負荷も増大するため、システム環境に応じて適正値に設定することが望ましい。例えば、１０個程度に設定すれば、ネットワーク８全体へ与える負荷は少なく、かつ、上記精度も期待できる。
【００７２】
また、オーバーレイネットワーク９に参加しているノード数に応じて動的に変動させても良い。
【００７３】
次に、図７（Ｃ）の処理において、参加ノードｎｎの制御部１１は、管理サーバＳＡから送信（転送）されてきた検索パケットを受信すると（ステップＳ６）、自己（参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び未参加ノードｎ１６のＩＰアドレスを宛先アドレスとした返信情報（以下、「返信パケット」という）を生成し、当該返信パケットを、通信部２０及びネットワーク８を介して未参加ノードｎ１６に対して送信（返信）し（ステップＳ７：図８（Ｂ））、当該処理を終了する。
【００７４】
なお、返信パケット等には、パケットの有効期間を示す値であるＴＴＬが含まれている。当該ＴＴＬは、最大“２５５”までの整数値で表され、パケットがルータ等を１回経由（転送）する度に１減少するようになっている。なお、ＴＴＬが“０”になったパケットはその時点で廃棄され、廃棄通知がパケットの送信元に届くようになっている。従って、受信されたパケットのＴＴＬが大きいほど、それだけ転送回数（ＨＯＰ数）が少ないということになるので、ネットワーク８の通信経路における通信負荷に与える影響も少なくなる。
【００７５】
次に、図７（Ａ）の処理において、未参加ノードｎ１６の制御部１１は、参加ノードｎｎから送信されてきた夫々の返信パケットを、返信情報受信手段として受信し（ステップＳ８）、例えば所定時間経過した場合、或いは、所定数（当該所定数は、未参加ノードｎ１６から管理サーバＳＡに指定されるようにしても良い）のパケットを受信した場合には、ステップＳ９に移行する。
【００７６】
ステップＳ９では、未参加ノードｎ１６の制御部１１は、通信負荷情報取得手段として、上記受信された夫々の返信パケットから、当該夫々の返信パケットを返信した夫々の参加ノードｎｎと自己との間の通信経路における通信負荷に関する情報、例えば、ＴＴＬを取得する。
【００７７】
次いで、未参加ノードｎ１６の制御部１１は、通信負荷比較手段として、各通信経路における通信負荷に関する情報、例えばＴＴＬを比較し、ノード装置選定手段として、当該比較結果に基づいて、返信パケットを返信した複数の参加ノードｎｎのうちから、参加要求パケットを送信すべき参加ノードｎｎを選定する（ステップＳ１０）。例えば、複数の参加ノードｎｎのうちから、自己との間の通信経路における通信負荷が最も小さい（例えば、ＴＴＬが最も大きい（ＨＯＰ数が最も小さい））参加ノードｎｎが選定される。これにより、ネットワーク８上のローカリティ（地域性）が考慮された（未参加ノードｎｍとネットワーク的に近い）参加ノードｎｎが選定されることになる。
【００７８】
なお、上記自己との間の通信経路における通信負荷に関する情報として、ＴＴＬを例にとったがこれに限定されるものではなく、例えば、通信経路の有効帯域の広さ（データ転送速度）や、参加ノードｎｎからの返信パケットの到達時間等を適用しても良い。通信経路の有効帯域の広さを適用する場合、各参加ノードｎｎと自己との間の通信経路における帯域の広さが比較され、当該帯域が最も広い（広いほど、通信負荷が小さいため）参加ノードｎｎが選定されることになる。
【００７９】
次いで、未参加ノードｎ１６の制御部１１は、自己（未参加ノードｎ１６）のＩＰアドレスを上記ハッシュ関数によりハッシュ化してノードＩＤを生成すると共に、自己のＩＰアドレスを送り元アドレス及び上記選定された参加ノードｎｎのＩＰアドレスを宛先アドレスとした参加要求パケットを生成して、当該参加要求パケットに対して当該自己のノードＩＤを付加し、参加要求情報送信手段として、当該参加要求パケットを、通信部２０及びネットワーク８を介して上記選定された参加ノードｎｎに対して送信する（ステップＳ１１：図８（Ｃ））。
【００８０】
次に、図７（Ｄ）の処理において、参加ノードｎｎの制御部１１は、未参加ノードｎ１６から送信されてきた参加要求パケットを受信すると（ステップＳ１２）、ＤＨＴのルーティングテーブルを参照して、転送先があるか否かを判別（ステップＳ１３）、例えば、自己（参加ノードｎｎ）が、上記参加要求パケットに付加されたノードＩＤと最も近いノードＩＤを有するか否かを判別し、最も近いノードＩＤを有する（つまり、自己が参加要求パケットに付加されたノードＩＤの管理元である）場合には、転送先がないと判別（ステップＳ１３：Ｎ）し、ステップＳ１５に移行する。一方、最も近いノードＩＤを有しない（つまり、最も近いノードＩＤを有する参加ノードｎｎが他にある）場合には、参加ノードｎｎの制御部１１は、転送先があると判別（ステップＳ１３：Ｙ）し、参加要求パケットに付加されたノードＩＤと最も近いノードＩＤに対応するＩＰアドレスをＤＨＴのルーティングテーブルから取得し、自己（参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び当該ルーティングテーブルから取得されたＩＰアドレスを宛先アドレスとした参加要求パケットを生成し、これを、通信部２０及びネットワーク８を介して、上記ルーティングテーブルから取得したＩＰアドレスに対応する参加ノードｎｎに対して送信（転送）し（ステップＳ１４：図９（Ｄ））、ステップＳ１５に移行する。こうして、転送された参加要求パケットは、図５を用いて上述したように、参加要求パケットに付加されたノードＩＤの管理元である参加ノードｎｎに至るまで順次転送されることになる。
【００８１】
そして、ステップＳ１５では、参加ノードｎｎの制御部１１は、ＤＨＴのルーティングテーブルの一部を含み、かつ、自己（参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び未参加ノードｎ１６のＩＰアドレスを宛先アドレスとした転送先情報（以下、「転送先パケット」という）を生成し、当該転送先パケットを、通信部２０及びネットワーク８を介して未参加ノードｎ１６に対して送信し（図９（Ｅ））、当該処理を終了する。
【００８２】
なお、上記参加要求パケットが参加要求パケットに付加されたノードＩＤの管理元である参加ノードｎｎに至るまでに、参加要求パケットを受信した参加ノードｎｎにおいても図７（Ｄ）の処理が行われることになる。
【００８３】
次に、図７（Ａ）の処理において、未参加ノードｎ１６の制御部１１は、転送先情報受信手段として、参加ノードｎｎから送信されてきた夫々の転送先パケットを受信し（ステップＳ１６）、例えば所定時間経過した場合には、ステップＳ１７に移行する。
【００８４】
ステップＳ１７では、未参加ノードｎ１６の制御部１１は、転送先情報生成手段として、受信した夫々の転送先パケットからＤＨＴのルーティングテーブルの一部を取得し、これに基づき、図５を用いて上述したように、新たなルーティングテーブルを生成し、これを記憶する。これにより、未参加ノードｎ１６のオーバーレイネットワーク９への参加が完了する（図９（Ｆ））。
【００８５】
次いで、未参加ノードｎ１６の制御部１１は、自己のＩＰアドレスを送り元アドレス及び管理サーバＳＡのＩＰアドレスを宛先アドレスとした参加完了パケット（オーバーレイネットワーク９への参加完了を示す参加完了情報）を生成し、当該参加完了パケットを通信部２０及びネットワーク８を介して管理サーバＳＡに対して送信し（ステップＳ１８）、当該処理を終了する。
【００８６】
次に、図７（Ｅ）の処理において、管理サーバＳＡは、未参加ノードｎ１６から送信されてきた参加完了パケットを受信すると（ステップＳ１９）、当該参加完了パケットに含まれるＩＰアドレスを参加ノードリストに追加記述して（ステップＳ２０）、当該処理を終了する。
【００８７】
以上説明したように、上記実施例１によれば、未参加ノードｎｍが、オーバーレイネットワーク９に参加している複数の参加ノードｎｎからの夫々の返信パケットから、当該夫々の返信パケットを返信した夫々の参加ノードｎｎと自己との間の通信経路における通信負荷に関する情報、例えば、ＴＴＬを取得して互いに比較し、自己との間の通信経路における通信負荷が最も小さい（例えば、ＴＴＬが最も大きい（ＨＯＰ数が最も小さい））、言い換えれば、ネットワーク的に近い参加ノードｎｎを選定して、これに対して参加要求を行ってオーバーレイネットワーク９に参加するようにしたので、ネットワーク８上のローカリティ（地域性）が考慮されたオーバーレイネットワーク９を構築することが可能となり、ネットワーク８への余分な負荷を軽減することができる（第１の効果）。
【００８８】
また、管理サーバＳＡは、全ての参加ノードｎｎへのリンク情報（例えば、全ての参加ノードｎｎのＩＰアドレス）が記述された参加ノードリストだけを管理し、複数の参加ノードｎｎをランダムに選定して参加要求パケットを転送するだけで、当該複数の参加ノードｎｎから返信パケットが未参加ノードｎｍに返信され、これにより、未参加ノードｎｍとネットワーク的に近い参加ノードｎｎが選定されるので、管理サーバＳＡが未参加ノードｎｍにネットワーク的に近い参加ノードｎｎを認識しておく必要がなく、したがって、管理サーバＳＡの管理コストを低減することができる。
【００８９】
（実施例２）
先ず、図１０を参照して、実施例２におけるコンテンツ配信システムＳの動作について説明する。
【００９０】
この実施例２は、実施例１とは異なり、全ての参加ノードｎｎへのリンク情報を管理する管理サーバがネットワーク８に接続されていない場合の動作例である。
【００９１】
図１０（Ａ）は、実施例２において、未参加ノードｎｍにおける制御部１１の処理の一例を示すフローチャートであり、図１０（Ｂ）乃至（Ｄ）は、実施例２において、参加ノードｎｎにおける制御部１１の処理の一例を示すフローチャートである。
【００９２】
先ず、図１０（Ａ）の処理において、例えば未参加ノードｎ１６の制御部１１は、任意の参加ノードｎｎのリンク情報（例えば、任意の参加ノードｎｎのＩＰアドレス、若しくはＩＰアドレスに対応付けられた固有ＩＤ等）を取得する（ステップＳ３１）。かかる任意の参加ノードｎｎへのリンク情報は、例えば、予め未参加ノードｎ１６内に記憶しておいても良いし（例えば、製品出荷時に設定しておく）、入力部２１を介して入力されるようにしても良い。
【００９３】
次いで、未参加ノードｎ１６の制御部１１は、識別情報生成手段として、所定数（例えば、５〜１０個）のランダムな数値を上記ハッシュ関数によりハッシュ化して互いに異なるランダムなＩＤ（以下、「ランダムＩＤ」という）を当該所定数生成する（ステップＳ３２）。
【００９４】
次いで、未参加ノードｎ１６の制御部１１は、自己（未参加ノードｎ１６）のＩＰアドレスを送り元アドレス及び上記任意の参加ノードｎｎのＩＰアドレスを宛先アドレスとした検索パケットを生成し、当該検索パケットに対して上記生成された所定数のランダムＩＤを付加して、当該検索パケットを通信部２０及びネットワーク８を介して情報処理装置の一例としての上記任意の参加ノードｎｎに対して送信する（ステップＳ３３）。こうして、未参加ノードｎ１６の制御部１１は、任意の参加ノードｎｎからの返信パケットの受信待ちとなる。
【００９５】
次に、図１０（Ｂ）の処理において、上記任意の参加ノードｎｎの制御部１１は、未参加ノードｎ１６から送信されてきた検索パケットを受信し（ステップＳ３４）、検索パケットに付加された所定数のランダムＩＤのうち、ランダムＩＤを１つ特定する（ステップＳ３５）。
【００９６】
次いで、上記任意の参加ノードｎｎの制御部１１は、ＤＨＴのルーティングテーブルを参照して、転送先があるか否かを判別（ステップＳ３６）、例えば、自己（任意の参加ノードｎｎ）が、上記特定されたランダムＩＤと最も近いノードＩＤを有するか否かを判別し、最も近いノードＩＤを有する（つまり、当該ランダムＩＤの管理元である）場合には、転送先がないと判別する（ステップＳ３６：Ｎ）。そして、上記任意の参加ノードｎｎの制御部１１は、自己（任意の参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び未参加ノードｎ１６のＩＰアドレスを宛先アドレスとした返信パケットを生成し、当該返信パケットを、通信部２０及びネットワーク８を介して未参加ノードｎ１６に対して送信（返信）し（ステップＳ３７）、ステップＳ３９に移行する。
【００９７】
一方、最も近いノードＩＤを有しない（つまり、最も近いノードＩＤを有する参加ノードｎｎが他にある）場合には、上記任意の参加ノードｎｎの制御部１１は、転送先があると判別し（ステップＳ３６：Ｙ）、上記特定されたランダムＩＤと最も近いノードＩＤに対応するＩＰアドレスをＤＨＴのルーティングテーブルから取得し、当該ランダムＩＤ及び未参加ノードｎ１６のＩＰアドレスを含み、かつ、自己（任意の参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び当該ルーティングテーブルから取得されたＩＰアドレスを宛先アドレスとした検索パケットを生成し、当該検索パケットを、通信部２０及びネットワーク８を介して、上記ルーティングテーブルから取得したＩＰアドレスに対応する参加ノードｎｎに対して送信（転送）し（ステップＳ３８）、ステップＳ３９に移行する。
【００９８】
次いで、ステップＳ３９では、上記任意の参加ノードｎｎの制御部１１は、検索パケットに含まれる所定数のランダムＩＤのうちで、未だステップＳ３５で特定されていないランダムＩＤがあるか否かを判別し、未だ特定されていないランダムＩＤがある場合には（ステップＳ３９：Ｙ）、ステップＳ３５に戻り、未だ特定されていないランダムＩＤを特定し、上記と同様の処理（ステップＳ３６〜３９）を繰り返す。一方、ステップＳ３５で特定されていないランダムＩＤがない場合（ステップＳ３９：Ｎ）、つまり、所定数のランダムＩＤの全てが特定された場合には、当該処理が終了される。
【００９９】
次に、図１０（Ｃ）の処理において、参加ノードｎｎの制御部１１は、上記任意の参加ノードｎｎから送信されてきた検索パケットを受信し（ステップＳ４０）、ＤＨＴのルーティングテーブルを参照して、転送先があるか否かを判別（ステップＳ４１）、例えば、自己（参加ノードｎｎ）が、上記検索パケットに含まれるランダムＩＤと最も近いノードＩＤを有するか否かを判別し、最も近いノードＩＤを有する場合には、転送先がないと判別する（ステップＳ４１：Ｎ）。そして、参加ノードｎｎの制御部１１は、自己（参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び未参加ノードｎ１６のＩＰアドレスを宛先アドレスとした返信パケットを生成し、当該返信パケットを、通信部２０及びネットワーク８を介して未参加ノードｎ１６に対して送信（返信）し（ステップＳ４２）、当該処理を終了する。
【０１００】
一方、最も近いノードＩＤを有しない（つまり、最も近いノードＩＤを有する参加ノードｎｎが他にある）場合には、参加ノードｎｎの制御部１１は、転送先があると判別し（ステップＳ４１：Ｙ）、上記検索パケットに含まれるランダムＩＤと最も近いノードＩＤに対応するＩＰアドレスをＤＨＴのルーティングテーブルから取得し、当該ランダムＩＤ及び未参加ノードｎ１６のＩＰアドレスを含み、かつ、自己（参加ノードｎｎ）のＩＰアドレスを送り元アドレス及び当該ルーティングテーブルから取得されたＩＰアドレスを宛先アドレスとした検索パケットを生成し、当該検索パケットを、通信部２０及びネットワーク８を介して、上記ルーティングテーブルから取得したＩＰアドレスに対応する参加ノードｎｎに対して送信（転送）し（ステップＳ４３）、当該処理を終了する。ステップＳ４３にて転送された検索パケットは、これに含まれるランダムＩＤの管理元である参加ノードｎｎに至るまで順次転送されることになり、転送先の参加ノードｎｎにおいても、当該図１０（Ｃ）の処理が実行されることになる。
【０１０１】
次に、図１０（Ａ）の処理において、未参加ノードｎ１６の制御部１１は、参加ノードｎｎから送信されてきた夫々の返信パケットを受信し（ステップＳ４４）、例えば所定時間経過した場合、或いは、所定数のパケットを受信した場合には、ステップＳ４５に移行する。
【０１０２】
なお、ステップＳ４５〜Ｓ５３の処理は、上述した実施例１におけるステップＳ９〜Ｓ１７と同様であるので、重複した説明は省略する。
【０１０３】
以上説明したように、上記実施例２によれば、上記実施例１の第１の効果を奏することに加えて、管理サーバＳＡを設けなくとも、未参加ノードｎｍとネットワーク的に近い参加ノードｎｎを選定することができるので、管理サーバＳＡに対して多数の未参加ノードｎｍからの検索パケットが集中（負荷集中）することを回避できると共に、管理サーバＳＡの設置コストを低減することができる。
【０１０４】
なお、上記実施例２では、未参加ノードｎ１６の制御部１１が、ステップＳ３２にてランダムＩＤを生成するように構成したが、これに限定されるものではなく、例えば、ランダムＩＤの生成を情報処理装置の一例としての上記任意の参加ノードｎｎの制御部１１が行うように構成しても良い。この場合、未参加ノードｎ１６の制御部１１は、ステップＳ３３にて、自己（未参加ノードｎ１６）のＩＰアドレスを送り元アドレス及び上記任意の参加ノードｎｎのＩＰアドレスを宛先アドレスとした検索パケットを生成し、当該検索パケットを通信部２０及びネットワーク８を介して上記任意の参加ノードｎｎに対して送信する。そして、上記任意の参加ノードｎｎの制御部１１は、ステップＳ３４にて、未参加ノードｎ１６から送信されてきた検索パケットを受信し、ステップＳ３５にて、所定数（例えば、５〜１０個）のランダムな数値を上記ハッシュ関数によりハッシュ化してランダムＩＤを当該所定数生成し、当該所定数のランダムＩＤのうち、１つのランダムＩＤを特定して、ステップＳ３６に移行するように構成する。
【０１０５】
また、上記実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１０６】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＤＨＴのノードＩＤ空間において、参加ノードｎ４から送出されたクエリがルートノードｎ１０まで転送される様子の一例を示す図である。
【図３】参加ノードｎ１が保持するＤＨＴのルーティングテーブルの一例を示す図である。
【図４】ＤＨＴのノードＩＤ空間の一例を示す概念図である。
【図５】ＤＨＴのルーティングテーブルが生成されるまでの流れの一例を示す概念図である。
【図６】参加ノードｎｎ及び未参加ノードｎｍの概要構成例を示す図である。
【図７】（Ａ）は、実施例１において、未参加ノードｎｍにおける制御部１１の処理の一例を示すフローチャートであり、（Ｂ）及び（Ｅ）は、実施例1において、管理サーバにおける処理の一例を示すフローチャートであり、（Ｃ）及び（Ｄ）は、実施例１において、参加ノードｎｎにおける制御部１１の処理の一例を示すフローチャートである。
【図８】実施例１において、未参加ノードｎｍがオーバーレイネットワーク９に新たに参加する場合の様子の一例を示す概念図である。
【図９】実施例１において、未参加ノードｎｍがオーバーレイネットワーク９に新たに参加する場合の様子の一例を示す概念図である。
【図１０】（Ａ）は、実施例２において、未参加ノードｎｍにおける制御部１１の処理の一例を示すフローチャートであり、（Ｂ）乃至（Ｄ）は、実施例２において、参加ノードｎｎにおける制御部１１の処理の一例を示すフローチャートである。
【符号の説明】
【０１０７】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
【図１】
2006191489.tif 000003
【図２】
2006191489.tif 000004
【図３】
2006191489.tif 000005
【図４】
2006191489.tif 000006
【図５】
2006191489.tif 000007
【図６】
2006191489.tif 000008
【図７】
2006191489.tif 000009
【図８】
2006191489.tif 000010
【図９】
2006191489.tif 000011
【図１０】
2006191489.tif 000012