(57)【要約】      （修正有）【課題】複数のコンテンツノードからコンテンツの配信を受けるべく、ノード情報を効率よく取得する情報配信システムを提供する。【解決手段】互いに接続された複数のノード装置を備えた情報配信システムにおいて、第１のノード装置は第２のノード装置に対して、装置間で共用されるべき共用情報のうち特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、固有の識別情報とノード情報の要求数を示す要求数情報要求情報を第２のノード装置に対して送信する手段を有し、第２のノード装置は、特定共用情報の要求を受けた場合には、識別情報に対応するノード情報であって、要求情報に含まれる要求数分のノード情報を検索する手段と、要求数分以上のノード情報が発見された場合には、第１のノード装置に要求数分のノード情報を送信し、発見されなかった場合には、発見されたノード情報を第１のノード装置に送信する手段とを有する。【選択図】図１
2006252532.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、
前記複数のノード装置に含まれる第１のノード装置は、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、
前記生成した要求情報を前記第２のノード装置に対して送信する要求情報送信手段と、
前記第２のノード装置から前記ノード情報を受信するノード情報受信手段と、
前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、
前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、
前記第２のノード装置は、
前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、
前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、
前記情報記憶ノード装置は、
前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、
を有することを特徴とする情報配信システム。
【請求項２】
請求項１に記載の情報配信システムにおいて、
第２のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする情報配信システム。
【請求項３】
請求項１又は請求項２に記載の情報配信システムにおいて、
前記第２のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、
前記第２のノード装置における前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする情報配信システム。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の情報配信システムにおいて、
前記第１のノード装置における前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、
前記第１のノード装置における前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする情報配信システム。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載の情報配信システムにおいて、
前記第２のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする情報配信システム。
【請求項６】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、
前記複数のノード装置に含まれる第２のノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、
前記複数のノード装置に含まれる第１のノード装置が、前記第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、
前記第１のノード装置が、前記生成した要求情報を前記第２のノード装置に対して送信する工程と、
前記第２のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶工程にて記憶したノード情報から、当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、
前記第２のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信工程と、
前記第２のノード装置が、当該第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信工程により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、
前記第１のノード装置が、前記第２のノード装置から前記ノード情報を受信するノード情報受信工程と、
前記第１のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、
前記情報記憶ノード装置が、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信工程と、
前記第１のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、
を有することを特徴とする情報配信方法。
【請求項７】
請求項６に記載の情報配信方法において、
前記第２のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索工程では、前記記憶工程にて記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする情報配信方法。
【請求項８】
請求項６又は請求項７に記載の情報配信方法において、
前記第２のノード装置が、前記ノード情報検索工程による検索の結果前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信工程にて前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新工程を有し、
前記転送工程では、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする情報配信方法。
【請求項９】
請求項５乃至請求項８のいずれか一項に記載の情報配信方法において、
前記配信要求工程では、前記ノード情報受信工程により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、
前記特定共用情報受信工程は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする情報配信方法。
【請求項１０】
請求項５乃至請求項９のいずれか一項に記載の情報配信方法において、
前記第２のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答工程を有することを特徴とする情情報配信方法。
【請求項１１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置において、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、
前記生成した要求情報を前記第２のノード装置に対して送信する要求情報送信手段と、
前記第２のノード装置から前記ノード情報を受信するノード情報受信手段と、
前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、
前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、
を有することを特徴とする第１のノード装置。
【請求項１２】
請求項１１に記載の第１のノード装置において、
前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、
前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする第１のノード装置。
【請求項１３】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、
前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、
前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、
を有することを特徴とする第２のノード装置。
【請求項１４】
請求項１３に記載の第２のノード装置において、
前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする第２のノード装置。
【請求項１５】
請求項１３又は請求項１４に記載の第２のノード装置において、
前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、
前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする第２のノード装置。
【請求項１６】
請求項１３乃至請求項１５のいずれか一項に記載の第２のノード装置において、
前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする第２のノード装置。
【請求項１７】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置に含まれるコンピュータを、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段、
前記生成した要求情報を前記第２のノード装置に対して送信する要求情報送信手段、
前記第２のノード装置から前記ノード情報を受信するノード情報受信手段、
前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段、
前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段、
として機能させることを特徴とする配信要求プログラム。
【請求項１８】
請求項１７に記載の配信要求プログラムにおいて、
前記配信要求手段を、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求するよう機能させ、
前記特定共用情報受信手段を、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信するよう機能させることを特徴とする配信要求プログラム。
【請求項１９】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、
前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、
前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、
前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、
前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする転送プログラム。
【請求項２０】
請求項１９に記載の転送プログラムにおいて、
前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索するよう機能させることを特徴とする転送プログラム。
【請求項２１】
請求項１９又は請求項２０に記載の転送プログラムにおいて、
前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段として機能させ、かつ、
前記転送手段を、当該更新された要求数を新たな要求数情報とした前記要求情報を転送するよう機能させることを特徴とする転送プログラム。
【請求項２２】
請求項１９乃至請求項２１のいずれか一項に記載の転送プログラムにおいて、
前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段として更に機能させることを特徴とする転送プログラム。
【請求項２３】
請求項１７乃至請求項２２のいずれか一項に記載の配信要求プログラム又は転送プログラムの何れかのプログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【請求項２４】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、
前記複数のノード装置に含まれる第１のノード装置は、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、
前記生成した要求情報を、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第２のノード装置に対して送信する要求情報送信手段と、
前記第２のノード装置から前記ノード情報を受信するノード情報受信手段と、
前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、
前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、
前記第２のノード装置は、
前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から前記要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、
前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、
前記情報記憶ノード装置は、
前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、
を有することを特徴とする情報配信システム。
【請求項２５】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、
前記複数のノード装置に含まれる第２のノード装置が、前記複数のノード装置の何れかのノード装置から、前記複数のノード装置間で共用されるべき共用情報に対応する固有の識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶工程と、
前記複数のノード装置に含まれる第１のノード装置が、前記第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、
前記第１のノード装置が、前記生成した要求情報を前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第２のノード装置に対して送信する工程と、
前記第２のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶工程にて記憶したノード情報であって、かつ、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、
前記第２のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信工程と、
前記第２のノード装置が、当該第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、
前記第１のノード装置が、前記第２のノード装置から前記ノード情報を受信するノード情報受信工程と、
前記第１のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、
前記情報記憶ノード装置が、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信工程と、
前記第１のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、
を有することを特徴とする情報配信方法。
【請求項２６】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、
前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、
前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、
を有することを特徴とする第２のノード装置。
【請求項２７】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、
前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段、
前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、
前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段及び、
前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、１のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存された情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する所在情報（例えば、コンテンツデータのタイトル等の補助情報を指定することにより、コンテンツデータを保存しているノード装置のＩＰアドレス等が特定できる情報：以下ではインデックス情報と呼ぶ。）が記述されたリストを有しており、当該リストに記述されたインデックス情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
【０００３】
例えば、非特許文献１には、管理サーバを用いない方法として、分散ハッシュテーブル（ＤＨＴ）を用いた技術が開示されているが、このシステムでは、コンテンツの配信を希望するリクエストノードは、コンテンツ情報を管理するノード装置からコンテンツ情報を記憶するノード装置の所在を聞いて、当該ノード装置にアクセスするようになっている。
【非特許文献１】「分散ハッシュテーブルの軽量な負荷分散手法の検討」  社団法人  電子情報通信学会  信学技報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、分散ハッシュテーブル（ＤＨＴ）を用いたコンテンツ配信システムにおいて、コンテンツの配信を希望するリクエストノードが、所望のコンテンツを記憶する複数のノード装置と接続して夫々のノード装置からコンテンツ情報を受信し、所望のコンテンツをできるだけ早く取得したいという場合がある。
【０００５】
このような場合には、リクエストノードがコンテンツ情報を記憶するノード装置の所在を複数個要求して要求数分のコンテンツ情報を記憶するノード装置の所在を有するノード装置から、コンテンツ情報を記憶するノード装置の所在を受信することが考えられるが、このように複数のコンテンツノード装置の所在を問われたノード装置では、要求された数を満足する数のノード装置の所在を自己が有するリストに記載されていない限り、リクエストノードに応答しないので、リクエストノードは、要求した数のノード装置の所在をリストに有するノード装置まで問い合わせが到達し、当該ノード装置から要求された数を満足する数のノード装置の所在の回答が送信されるまでの間、上流からの応答を待機しなければならないという問題が懸念される。
【０００６】
本発明は、以上の問題等に鑑みてなされたものであり、リクエストノードが、所望のコンテンツを記憶する複数のノード装置から当該コンテンツを効率よく取得することを可能とした情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、前記複数のノード装置に含まれる第１のノード装置は、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、前記生成した要求情報を前記第２のノード装置に対して送信する要求情報送信手段と、前記第２のノード装置から前記ノード情報を受信するノード情報受信手段と、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、前記第２のノード装置は、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、前記情報記憶ノード装置は、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、を有することを特徴とする。
【０００８】
これによれば、第１のノード装置としてのリクエストノードから特定共用情報としてのコンテンツデータの所在の問い合わせを行なう際に、リクエストノードは情報記憶ノード装置としてのコンテンツノードのノード情報を要求する数を要求数情報として要求情報としてのクエリに含んで送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、より早くコンテンツデータを取得することが可能になる。さらに、第２のノード装置がルートノードで無い場合に、当該第２のノード装置が、クエリを上流のノード装置に転送する際には、既に送信済みのノード情報を送信済ノード情報として要求数情報と併せて送信するよう構成したので、これを受けた上流のノード装置に送信済ノード情報を認識させることが可能になる。
【０００９】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載の情報配信システムにおいて、第２のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする。
【００１０】
これによれば、送信済ノード情報を検索対象から除外することにより、第１のノード装置としてのリクエストノードに同一のノード情報を重複して送信することを防ぐことができる。
【００１１】
上記課題を解決するために、請求項３に記載の発明は、請求項１又は請求項２に記載の情報配信システムにおいて、前記第２のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、前記第２のノード装置における前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする。
【００１２】
これによれば、当該要求情報を転送する際に、ルートノード或いはキャッシュノード等の第２のノード装置では、既にリクエストノードなどの第１のノード装置にノード情報を送信した数を減算して要求数を更新して転送することができるため、当該第１のノード装置は、第１のノード装置が要求する数のノード情報を確実かつ効率的に取得することが可能になる。
【００１３】
上記課題を解決するために、請求項４に記載の発明は請求項１乃至請求項３のいずれか一項に記載の情報配信システムにおいて、前記第１のノード装置における前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、前記第１のノード装置における前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする。
【００１４】
これによれば、リクエストノード等の第１のノード装置では、要求数分のノード情報を全部受信しなくても、ルートノード或いはキャッシュノード等の第２のノード装置からノード情報を受信するたびに当該ノード情報に基づいてコンテンツノード等の情報記憶ノード装置に配信要求を行って、順次特定共用情報としての所望のコンテンツの受信を受けるよう構成することができ、更に複数のコンテンツノードと接続すると、夫々のコンテンツノードからコンテンツを並列して受信することができるため、より迅速に所望のコンテンツを取得することが可能になる。
【００１５】
上記課題を解決するために、請求項５に記載の発明は、請求項１乃至請求項４のいずれか一項に記載の情報配信システムにおいて、前記第２のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする。
【００１６】
これによれば、管理ノード装置としてのルートノードに要求情報が転送されてもなお要求数分のノード情報を発見できない場合には、リクエストノード等の第１のノード装置に対してエラー回答を送信するよう構成したので、第１のノード装置では要求数分のノード情報が無いことを容易に把握することが可能になる。
【００１７】
上記課題を解決するために、請求項６に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、前記複数のノード装置に含まれる第２のノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、前記複数のノード装置に含まれる第１のノード装置が、前記第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、前記第１のノード装置が、前記生成した要求情報を前記第２のノード装置に対して送信する工程と、前記第２のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶工程にて記憶したノード情報から、当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、前記第２のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信工程と、前記第２のノード装置が、当該第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信工程により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、前記第１のノード装置が、前記第２のノード装置から前記ノード情報を受信するノード情報受信工程と、前記第１のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、前記情報記憶ノード装置が、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信工程と、前記第１のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、を有することを特徴とする。
【００１８】
上記課題を解決するために、請求項７に記載の発明は請求項６に記載の情報配信方法において、前記第２のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索工程では、前記記憶工程にて記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする。
【００１９】
上記課題を解決するために、請求項８に記載の発明は請求項６又は請求項７に記載の情報配信方法において、前記第２のノード装置が、前記ノード情報検索工程による検索の結果前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信工程にて前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新工程を有し、前記転送工程では、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする。
【００２０】
上記課題を解決するために、請求項９に記載の発明は請求項５乃至請求項８のいずれか一項に記載の情報配信方法において、前記配信要求工程では、前記ノード情報受信工程により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、前記特定共用情報受信工程は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする。
【００２１】
上記課題を解決するために、請求項１０に記載の発明は請求項５乃至請求項９のいずれか一項に記載の情報配信方法において、前記第２のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答工程を有することを特徴とする。
【００２２】
上記課題を解決するために、請求項１１に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置において、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、前記生成した要求情報を前記第２のノード装置に対して送信する要求情報送信手段と、前記第２のノード装置から前記ノード情報を受信するノード情報受信手段と、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有することを特徴とする。
【００２３】
上記課題を解決するために、請求項１２に記載の発明は請求項１１に記載の第１のノード装置において、前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする。
【００２４】
上記課題を解決するために、請求項１３に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有することを特徴とする。
【００２５】
上記課題を解決するために、請求項１４に記載の発明は請求項１３に記載の第２のノード装置において、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする。
【００２６】
上記課題を解決するために、請求項１５に記載の発明は請求項１３又は請求項１４に記載の第２のノード装置において、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする。
【００２７】
上記課題を解決するために、請求項１６に記載の発明は請求項１３乃至請求項１５のいずれか一項に記載の第２のノード装置において、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする。
【００２８】
上記課題を解決するために、請求項１７に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置に含まれるコンピュータを、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段、前記生成した要求情報を前記第２のノード装置に対して送信する要求情報送信手段、前記第２のノード装置から前記ノード情報を受信するノード情報受信手段、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段、として機能させることを特徴とする。
【００２９】
上記課題を解決するために、請求項１８に記載の発明は請求項１７に記載の配信要求プログラムにおいて、前記配信要求手段を、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求するよう機能させ、前記特定共用情報受信手段を、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信するよう機能させることを特徴とする。
【００３０】
上記課題を解決するために、請求項１９に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第１のノード装置に送信したノード情報である送信済ノード情報と、を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする。
【００３１】
上記課題を解決するために、請求項２０に記載の発明は請求項１９に記載の転送プログラムにおいて、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索するよう機能させることを特徴とする。
【００３２】
上記課題を解決するために、請求項２１に記載の発明は請求項１９又は請求項２０に記載の転送プログラムにおいて、前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第１のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段として機能させ、かつ、前記転送手段を、当該更新された要求数を新たな要求数情報とした前記要求情報を転送するよう機能させることを特徴とする。
【００３３】
上記課題を解決するために、請求項２２に記載の発明は、請求項１９乃至請求項２１のいずれか一項に記載の転送プログラムにおいて、前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第２のノード装置自身が、前記管理ノード装置である場合には、前記第１のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段として更に機能させることを特徴とする。
【００３４】
上記課題を解決するために、請求項２３に記載の発明は、請求項１７乃至請求項２２のいずれか一項に記載の配信要求プログラム又は転送プログラムの何れかのプログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【００３５】
上記課題を解決するために、請求項２４に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、前記複数のノード装置に含まれる第１のノード装置は、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、前記生成した要求情報を、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第２のノード装置に対して送信する要求情報送信手段と、前記第２のノード装置から前記ノード情報を受信するノード情報受信手段と、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、前記第２のノード装置は、前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、前記情報記憶ノード装置は、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、を有することを特徴とする。
【００３６】
これによれば、第１のノード装置としてのリクエストノードから特定共用情報としてのコンテンツデータの所在の問い合わせを行なう際に、リクエストノードは情報記憶ノード装置としてのコンテンツノードのノード情報を要求する数を要求数情報としてクエリに含んで送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、より早くコンテンツデータを取得することが可能になる。さらに、識別情報をキーとするルーティングテーブルによってコンテンツノードのノード情報を受信すると、その中継送信元のノード情報をバックポインタとして記憶手段に対応付けて記憶し、かつ、当該コンテンツノードのノード情報を記憶したときと同じように、識別情報をキーとするルーティングテーブルによってクエリが転送されるので、既に送信済みのノード情報を認識することが可能になる。
【００３７】
上記課題を解決するために、請求項２５に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、前記複数のノード装置に含まれる第２のノード装置が、前記複数のノード装置の何れかのノード装置から、前記複数のノード装置間で共用されるべき共用情報に対応する固有の識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶工程と、前記複数のノード装置に含まれる第１のノード装置が、前記第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、前記第１のノード装置が、前記生成した要求情報を前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第２のノード装置に対して送信する工程と、前記第２のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶工程にて記憶したノード情報であって、かつ、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、前記第２のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信工程と、前記第２のノード装置が、当該第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、前記第１のノード装置が、前記第２のノード装置から前記ノード情報を受信するノード情報受信工程と、前記第１のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、前記情報記憶ノード装置が、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信工程と、前記第１のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、を有することを特徴とする。
【００３８】
上記課題を解決するために、請求項２６に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段と、前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有することを特徴とする。
【００３９】
上記課題を解決するために、請求項２７に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第１のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第１のノード装置に送信するノード情報送信手段及び、前記第２のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする。
【発明の効果】
【００４０】
本発明によれば、リクエストノードからコンテンツデータの所在の問い合わせを行なう際に、コンテンツノードのノード情報を要求する数を要求数情報として要求情報としてのクエリに含んで送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、迅速かつ効率的にコンテンツデータを取得することが可能になる。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００４２】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００４３】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００４４】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００４５】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ノード装置を示す情報（ノード情報）としての固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数のノード装置１間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００４６】
［１−１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用したアルゴリズムについて説明する。
【００４７】
上述したコンテンツ配信システムＳにおいて、当該ノード装置１が、他のノード装置１の持つ情報にアクセスする際には、その情報を持つノード装置１のノード情報としてのＩＰアドレスを知っていなければならない。
【００４８】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノード装置１が互いにネットワーク８に参加している全てのノード装置１のＩＰアドレスと各装置が持つ情報の索引を知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置１にて記
憶している当該任意のノード装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００４９】
そこで、１台のノード装置１では、ネットワーク８に参加している全てのノード装置１のうち、必要最低限のノード装置１のＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノード装置１については、各ノード装置１間で互いに情報を転送し合って（情報を中継して）届けてもらうというシステムが考案されている。
【００５０】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバレイネットワーク９が構築されることになる。つまり、このオーバレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００５１】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバレイネットワーク９を前提としており、このオーバレイネットワーク９上に配置されたノード装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバレイネットワーク９に参加）しているノード装置１という。なお、コンテンツ配信システムＳへの参加は、未だ参加していないノード装置が、既に参加している任意のノード装置１に対して参加要求を送ることによって行われる。
【００５２】
コンテンツ配信システムＳに参加している各ノード装置１のノードＩＤは、それぞれのノード装置毎にユニーク（固有）な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128=340×10＾36台のノード装置を運用できる。
【００５３】
より具体的には、各ノード装置１のノードＩＤは、それぞれのノード装置のＩＰアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をノードＩＤとする。
【００５４】
また、コンテンツ配信システムＳに参加している複数のノード装置１には、１のノード装置１から他のノード装置1に配信される共用情報としてのコンテンツ（例えば、映画や音楽等）データが分散して保存（格納）されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク（固有）な番号（以下、コンテンツＩＤという。）を付与する。
【００５５】
そして、当該コンテンツＩＤは、ノードＩＤと同様の長さ（例えば、１２８ｂｉｔ等）とし、例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードが、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、ノード装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１が、当該コンテンツデータを保存するか、あるいは、その所在情報を管理する。これにより、コンテンツデータを偏りなくコンテンツ配信システムＳ上に分散させることが可能となる。なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等）の組合せとすればよい。
【００５６】
このように、各ノード装置１及び各コンテンツデータに付与されたノードＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成したため、図２に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は３２ｂｉｔでノードＩＤ及びコンテンツＩＤを付与し、図示したものである。図中黒点はノードＩＤを、黒ひし形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００５７】
次に、どのノード装置１に、どのコンテンツデータが保存されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤとノードＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置１に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツＩＤａは、ノードＩＤａを有するノード装置に管理され、コンテンツＩＤｂは、ノードＩＤｂを有するノード装置に管理され、コンテンツＩＤｃは、ノードＩＤｃを有するノード装置１に管理される。なお、あるノード装置は複数の異なるコンテンツデータを管理することもある。
【００５８】
なお、ここで「管理」というのは、コンテンツデータを保存／保持していることを意味するのではなく、「コンテンツデータが何れのノード装置１に保存されているかを知っている」ことを言う。すなわち、図２において、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータが何れのノード装置１に保存されているかを知っており、ノードＩＤｂを有するノード装置１及びノードＩＤｃを有するノード装置１も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータ及びコンテンツＩＤｃを有するコンテンツデータが何れのノード装置１に保存されているかを知っている、ということになる。このように、あるコンテンツデータが何れのノード装置１に保存されているかを知っているノード装置を、そのコンテンツデータのルートノードと言う。つまり、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータのルートノードであって、ノードＩＤｂを有するノード装置１は、コンテンツＩＤｂを有するコンテンツデータのルートノードであって、ノードＩＤｃを有するノード装置１は、コンテンツＩＤｃを有するコンテンツデータのルートノードである。
【００５９】
また、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則の下にコンテンツデータとルートノードの対が作成された場合であっても、あるコンテンツデータのルートノードが突然機能停止したり、或いはコンテンツデータが保存されているノード装置（以下、単に「コンテンツノード」という。）にて当該コンテンツデータが消滅してしまう場合が考えられる。このような場合であっても、ルートノードが、コンテンツデータの生存を確認し、自己のインデックス情報等を更新しない限り、ルートノードの管理するコンテンツデータの情報はいつまでも残ることになる。そして、当該コンテンツデータが一旦は消滅したものの、再度同一コンテンツデータを登録する際には、改めて上記規則の下に再度ルートノードが選び出されることとなり、新しいノード装置の参加等によって以前のルートノードとは異なるノード装置が新しいルートノードとして選び出されることもありうる。
【００６０】
従って、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則の下にコンテンツデータとルートノードの対が作成された場合であっても、コンテンツ配信システムＳが何百台何千台・・・と膨大なネットワークを構築していくに従って、ノード装置のコンテンツ配信システムＳからの脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、あるコンテンツデータの保存元であるコンテンツノードを知っているノード装置は１つではなく、現実的には多数のノード装置が存在することとなる。
【００６１】
また、あるコンテンツデータを保持するノード装置（コンテンツノード）は１台とは限らない。多数のノード装置が同一のコンテンツを保持してコンテンツ配信システムＳにそれぞれ参加する場合がある。このような場合も、各ノード装置が当該コンテンツ配信システムＳに参加する夫々のタイミングの状況下によってルートノードとなるべきノード装置が別々に決定されることもあるため、結果としてあるノート装置が同一のコンテンツデータを保持しているノード装置（コンテンツノード）を２つ以上知っている場合もある。
【００６２】
［１−２．ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。
【００６３】
図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００６４】
まず、図３（Ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長１６Ｂｉｔの４進数で表すこととした。そして、ノード装置１ＮのノードＩＤを「10230210」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００６５】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」（Xは０から３の
自然数、以下同様。）で分けられる。ノード装置１Ｎは、当該ノード装置１Ｎ自身のノードＩＤが「10230210」であるため、図中左下「1XXXXXXX」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「1XXXXXXX」のエリア）以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ａ）がレベル１のテーブルの一例である。２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００６６】
（レベル２のルーティング）
次に、図３（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル２のテーブルに記憶する。図４（Ｂ）がレベル２のテーブルの一例である。１列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００６７】
（レベル３のルーティング）
さらに、図３（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ｃ）がレベル３のテーブルの一例である。３列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無く、２列目、４列目はそのエリアにノード装置が存在しないため空白となる。
【００６８】
このようにして、レベル４以下レベル８まで同様にルーティングテーブル図４（Ｄ）に示す如く作成することにより、１６ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００６９】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置１が夫々作成して所有することになる。
【００７０】
［１−３．コンテンツデータの検索方法］
次に、図５を参照して、本実施形態におけるコンテンツデータの保存元であるノード装置１（以下、「コンテンツノード」と言う。）の検索方法の一例について説明する。
【００７１】
図５は、ＤＨＴによりコンテンツノードが検索される様子の一例を示す図である。
【００７２】
ここでは、ノードＩＤ「12003030」のノード装置１−１（以下、「リクエストノード」と言う。）が、コンテンツＩＤ「31330012」を有するコンテンツデータを保持するコンテンツノードを探す際の手順について説明する。なお、同図に示す如くコンテンツＩＤ「31330012」を保持するコンテンツノードのノードＩＤは「00213000」と「02223230」である。
【００７３】
図５において、リクエストノードからコンテンツＩＤ「31330012」を有するコンテンツデータを管理するノード装置１−５（すなわちルートノード）に至る経路を実線矢印で表すが、この経路の途中のノード装置1−４を、当該ルートノードが記憶しているインデックス情報をキャッシュとして保持するキャッシュノードとする。
【００７４】
まず、リクエストノードは、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対してコンテンツ問い合わせ情報（以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。）を送信する。
【００７５】
ここで、リクエストノードが送信するクエリについて説明する。
【００７６】
クエリには、所望のコンテンツを示すコンテンツＩＤ「31330012」だけでなく、コンテンツノードのノード情報をいくつ要求するかを示す要求数情報も含まれる。すなわち、同一のコンテンツを保持するコンテンツノードがコンテンツ配信システムＳの中に複数個存在する場合が考えられるが、このような場合、リクエストノードは、コンテンツ配信を要求する際に、所望のコンテンツを保持する複数のコンテンツノードに対して配信を要求するよう構成されている。
【００７７】
このとき、コンテンツノードのノード情報としてのＩＰアドレスの要求数を多く設定すれば、多くのコンテンツノードからコンテンツの配信を並列して受けることができ、より早くコンテンツを取得することが可能になるという利点がある。また、１つのノード装置で接続可能なコンテンツノードの数は限られているため、その上限数が「１０」であるとすれば、コンテンツノードのＩＰアドレスの要求数をそれより若干多い「１５」等とすることが考えられる。上限数より若干多く要求する理由は、接続に失敗した場合の保険である。すなわち、コンテンツノードに配信要求をしたときに当該コンテンツノードの電源が断とされていてアクセス不可能であったり、或いは所望のコンテンツが何らかの原因で配信不可能な状態となっていて要求数だけのコンテンツノードと接続できないことが考えられるからである。一方、人気のないコンテンツは当該コンテンツ自体がシステム中に僅かしか存在していなかったり、当該コンテンツに対応するキャッシュノードが多く存在しないため、要求数を少なく設定することにより、クエリがルートノードへ転送されることなく、コンテンツノードのノード情報が短時間で揃うという利点があるので、リクエストノードのユーザが用途に応じて設定を変えることができる。
【００７８】
このように、リクエストノードは、所望のコンテンツを示すコンテンツＩＤだけでなく、コンテンツノードのノード情報を要求する数を示す要求数情報も一緒にクエリに含めて送信し、リクエストノードや各キャッシュノードから受信した当該要求数に応じた数の複数のコンテンツノードのノード情報に基づいて、当該複数のコンテンツノードにアクセスしてコンテンツの配信を要求するよう構成する。
【００７９】
なお、以下に図５を用いて説明するコンテンツデータの検索手法においては、ネットワーク上をクエリが転送されることでコンテンツデータを見つけ出すことができることをわかりやすく説明するため、上記要求数は「２」であって、発見されたコンテンツデータが何れも配信可能に各コンテンツノードに保持されているものとして説明する。
【００８０】
まず、リクエストノードは、自己が保持しているルーティングテーブルのレベル１のテーブルを参照して、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対して要求数を「２」とする要求数情報を含むクエリを送信する。つまり、コンテンツＩＤ「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）ノード装置１−２に対してクエリを送信する。
【００８１】
図５に示す例に拠れば、ノードＩＤが「30100000」であるノード装置１−２のＩＰアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードＩＤが「30100000」であるノード装置１−２に対してクエリを送信する。
【００８２】
次に、クエリを受信したノード装置１−２は、当該ノード装置１−２自身が保持しているインデックス情報を参照して、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認し、無い場合には、当該ノード装置１−２自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１−３（ノードＩＤ「31012001」）に対してクエリを転送（中継）する。
【００８３】
このように、上流のノード装置、すなわち自己とルートノードの中間に介在するノード装置に対してクエリを転送し、コンテンツＩＤの桁を上から順に適合していく要領でルートノードへ近づいていく。
【００８４】
そして、ノード装置１−２からクエリを受信したノード装置１−３は、当該ノード装置１−３自身が保持しているインデックス情報を参照して、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認する。無い場合には、当該ノード装置１−３自身が保持しているルーティングテーブルのレベル３のテーブルを参照して、「313XXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１−４（ノードＩＤ「31320100」）に対してクエリを転送（中継）する。
【００８５】
そして、ノード装置１−３からクエリを受信したノード装置１−４は、当該ノード装置１−４自身が保持しているインデックス情報を参照して、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認する。ノード装置１−４は、上記キャッシュノードであるため、コンテンツノードの情報を少なくとも一つは取得することができる。そして、当該コンテンツノード（ノード装置１−６）のノード情報をリクエストノードに送信し、クエリに含まれる要求数情報を要求数が「２」から「１」となるように更新する。
【００８６】
そして、コンテンツノード（ノード装置１−６）のノード情報を受信したリクエストノードは、コンテンツノード（ノード装置１−６）に対してコンテンツの配信を要求する配信要求を図５中破線矢印で示す如く送信する。そして、配信要求を受信した各コンテンツノード（ノード装置１−６）は、図５中一点鎖線で示す如くコンテンツデータをリクエストノードに配信するようになっている。
【００８７】
また、コンテンツノード（ノード装置１−６）のノード情報をリクエストノードに送信したノード装置１−４は、当該ノード装置１−４自身が保持しているルーティングテーブルのレベル４のテーブルを参照して、「3133XXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１−５（ノードＩＤ「31330000」）すなわちルートノードに対して更新後の要求数情報を含むクエリを転送（中継）する。そして、既に送信したノード情報を送信済ノード情報としてクエリと共に上流のノード装置に送信することによって、更新を経験したクエリであるか否かがわかる。また、他の方法として、要求数情報は、要求数の他に、更新履歴として、クエリ転送済みコンテンツノードのＩＰアドレス、大元のリクエスタが出した要求数（これは更新されない）を含むよう構成することもできる。この場合には、元の要求数と現在の要求数が異なっていれば、更新を経験したクエリであることが分かる。
【００８８】
最終的に当該コンテンツデータを管理するノード装置1−５、すなわちルートノードに辿り着くと、当該ルートノードは、クエリに含まれるコンテンツＩＤ「31330012」を元に自身が管理しているインデックス情報を検索し、未だクエリが送信されていないコンテンツノードであって、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認する。そして、コンテンツノード（ノード装置１−７）を発見すると、当該コンテンツノード（ノード装置１−７）のノード情報をリクエストノードに送信する。
【００８９】
そして、コンテンツノード（ノード装置１−７）のノード情報をそれぞれ受信したリクエストノードは、上記記載と同様にしてコンテンツノード（ノード装置１−７）に対してコンテンツの配信を要求する配信要求を図５中破線矢印で示す如く送信し、配信要求を受けたコンテンツノード（ノード装置１−７）は、図５中一点鎖線で示す如くリクエストノードにコンテンツデータを配信する。
【００９０】
すなわち、リクエストノードは複数のコンテンツノードからコンテンツを配信してもらうことにより、1つのコンテンツノードから配信を受ける場合に比べて、迅速にコンテンツを構成する全てのデータを取得することができる。この場合には、例えば、１つのコンテンツを複数のデータ構成で区分させ、最初に接続するコンテンツノード（ノード装置１−６）からはコンテンツを構成するデータのうち前半のデータの配信を受け、後に接続するコンテンツノード（ノード装置１−７）からはコンテンツを構成するデータのうち後半のデータの配信を受けるよう構成したり、或いは、並列して同時に配信を受けるよう構成すればよい。なお、並列して同時に配信を受ける場合には、実際には、各コンテンツノードから順次配信されるパケットを送信された順に順次受け取り、後に説明するリクエストノードの通信部におけるプレゼンテーション層（いわゆるＯＳＩ参照モデルにおける第６層であるプレゼンテーション層）等にてパケットを並べ替えて元のコンテンツを再構成するよう制御させればよい。
【００９１】
［１−４．コンテンツデータの登録方法］
このような構成のコンテンツ配信システムＳの中で、例えば、あるノード装置１が新しいコンテンツデータを、コンテンツ配信システムＳ上の他のノード装置に見えるように公開する際の手法について述べる。このノード装置１がコンテンツを保持する（記憶する）情報記憶ノード装置としてのコンテンツノードとなる。
【００９２】
当該コンテンツノードは、コンテンツのタイトル等からコンテンツＩＤを求め、当該コンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）公開メッセージを送信する。そして、この公開メッセージも、上記クエリと同様にルーティングテーブルに従って、次々とノード装置１同士で中継して転送されていき、当該公開メッセージに含まれるコンテンツＩＤに最も近いノードＩＤを有するノード装置１まで転送されたところで、そのノード装置１はもはや送信先のノード装置が他にないと判断すると、当該ノード装置１自身がそのコンテンツのルートノードとなるべきだと判断し、当該コンテンツＩＤ、補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）及びノード情報としてのコンテンツノードのＩＰアドレスをインデックス情報として記憶する。
【００９３】
［２．ノード装置の構成等］
次に、図６を参照して、ノード装置１の構成及び機能について説明する。尚、各ノード装置１は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第1のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第２のノード装置としてのキャッシュノード、当該コンテンツを管理する第２のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
【００９４】
図６は、ノード装置１の概要構成例を示す図である。
【００９５】
各ノード装置１は、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、上記コンテンツデータ、上記インデックス情報、上記ＤＨＴ及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０はバス２２を介して相互に接続されている。
【００９６】
そして、制御部１１におけるＣＰＵが記憶部１２等に記憶された各種プログラムを実行することにより、第１のノード装置としてのリクエストノード、第２のノード装置としてのキャッシュノード、第２のノード装置及び管理ノード装置としてのルートノード、情報記憶ノード装置としてのコンテンツノードとしてノード装置１全体を統括制御するようになっている。
【００９７】
そして、ノード装置１がリクエストノードとして機能する際には、当該制御部１１は、要求情報生成手段、要求情報送信手段、ノード情報受信手段、配信要求手段及び特定共用情報受信手段として機能し、ノード装置１がキャッシュノード或いはルートノードとして機能する際には、当該制御部１１は、記憶手段、ノード情報検索手段、ノード情報送信手段及び更新手段として機能し、ノード装置１がコンテンツノードとして機能する際には、当該制御部１１は、配信手段として機能する。
【００９８】
[３．コンテンツ配信システムの動作]
次に、コンテンツ配信システムＳの各ノード装置の動作について説明する。
【００９９】
ここでは、リクエストノードがコンテンツ配信要求を行なう際のそれぞれのノードで行なわれる処理について詳細に説明するが、上述したように、コンテンツ配信システムＳに含まれる全てのノード装置１は、リクエストノード、キャッシュノード、ルートノード、コンテンツノード、或いは経路上のノード等、その他のノード等、何れのノード装置にもなり得る。
【０１００】
例えば、ユーザがノード装置１に備えられた入力部２１を操作することによって、特定共用情報としての所望のコンテンツデータの所在の問い合わせが指示されると、当該ノード装置１が第１のノード装置としてのリクエストノードとして機能する。また、当該リクエストノードや中間に介在するノード装置からクエリを受信してコンテンツデータの所在の問い合わせがされたノード装置１は、キャッシュノード、ルートノード等として機能し、また、リクエストノードからコンテンツの配信要求を受けたノード装置１は、コンテンツノードとして機能する。
【０１０１】
以下に、それぞれのノードとして機能する際にノード装置１で行なわれる処理について図７乃至図１１を用いて詳細に説明する。
【０１０２】
[３−１．リクエストノードの処理]
先ず、図７乃至図９を用いてリクエストノードの処理について説明する。
【０１０３】
図７及び図８は各ノードのリクエストノードがコンテンツ配信要求を行なう際の、各ノードの間の各種情報の授受の一例をスパニングツリー状に表した説明図である。この図で、中間ノードとは、注目しているコンテンツに対して有効なインデックス情報を持たないノードであり、キャッシュノードとはそれを持つノードである。また、図７において、各コンテンツノードの情報は、コンテンツを登録する際に、公開メッセージとしてキャッシュノードＫａ及びキャッシュノードＫｂを経由してルートノードへ辿り着く。従って、キャッシュノードＫａの記憶部１２のインデックス情報に存在するコンテンツノードの情報は、キャッシュノードＫｂの記憶部１２のインデックス情報にも存在し、さらに、ルートノードは全てのコンテンツノードの情報を持っている。なお、実際には各ノードのインデックス情報はそのコンテンツノードの生存確認ができなかった場合等種々のタイミングで上書きされ更新されるが、ここでは説明の簡略化のため上書き更新の説明は省略する。
【０１０４】
図９は、リクエストノードの制御部１１に記憶された配信要求プログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートであり、図９（Ａ）に示される処理において、スレッド起動が行われると（後に説明するステップＳ５の処理）、それ以降行われる図９（Ａ）の処理動作と並行して図９（Ｂ）に示すコンテンツ受信処理が行われる。
【０１０５】
まず、ユーザが入力部２１を操作することにより、特定共用情報としての所望のコンテンツのタイトル等を入力して当該コンテンツを保持するコンテンツノードのノード情報を要求する。この際、要求するノード情報の要求数も共に入力される。
【０１０６】
要求数は、ユーザが所望の数を入力しても良いが、コンテンツのタイトルや人気度が記載されたカタログリストを参照して、当該人気度に応じた要求数を入力したり、或いは人気度に応じた要求数が自動設定されるよう構成してもよい。カタログリストには、各コンテンツ毎に、コンテンツのタイトル、コンテンツのあらすじ、監督名、歌手名、原作者名等と共に、当該コンテンツの配信要求の頻度に基づいて決定された人気度が夫々対応付けられて記載されている。このカタログリストは、コンテンツ配信システムＳ中の任意のノード装置１を、コンテンツを統括管理する管理サーバとして機能させ、当該管理サーバから各ノード装置１に定期的に配布されるよう構成する。
【０１０７】
このように、所望のコンテンツデータの所在の問い合わせが行われると、制御部１１は識別情報送信手段として機能し、当該コンテンツのタイトル等をハッシュ化して当該コンテンツデータを示すコンテンツＩＤ（特定共用情報に対応する固有の識別情報）を生成すると共に、当該生成されたコンテンツＩＤと、リクエストノードのＩＰアドレス情報と、上記入力部２１によって入力された要求数を示す要求数情報と、を含むクエリを、記憶部１２に記憶したルーティングテーブルを参照して他のノード装置１に送信する（ステップＳ１）。当該他のノード装置１の選択手法は、上述した「１．３コンテンツデータの検索方法」にて詳細に説明した手法に拠る。図７及び図８に示す例によれば、先ずキャッシュノードでもルートノードでもない中間ノードにクエリが送信されている。なお、この例では所望のコンテンツを示すコンテンツＩＤが「30001012」であって、要求数は「４」とした。
【０１０８】
続いて、装置内に具備する内蔵時計等を使用して、時間測定を開始する（ステップＳ２）。
【０１０９】
その後、他のノード装置から何らかの情報を受信したか否かを判定（ステップＳ３）し、受信していない場合（ステップＳ３：受信なし）には、ステップＳ４に移行して所定の待機時間（例えば、１０秒など）が経過したか否かを判定し、経過している場合（ステップＳ４：Ｙｅｓ）にはステップＳ７に移行して所定のコンテンツノード発見不可処理を行ない（ステップＳ７）処理を終了する。他方、所定の待機時間が経過していない場合（ステップＳ４：Ｎｏ）には、ステップＳ３に移行して、情報の受信を待機する。
【０１１０】
一方、ステップＳ３にて受信した情報がルートノードからのエラー回答である場合（ステップＳ３：ルートノードからエラー回答受信）には、所定のコンテンツノード発見不可処理を行ない（ステップＳ７）処理を終了する。なお、ステップＳ７におけるコンテンツノード発見不可処理では、ノード情報を１つも受信していないときには、コンテンツ配信システムＳ内に所望のコンテンツが全く存在しない場合と考えられるので「指定のコンテンツは登録されていません。」等のメッセージを表示部１６に表示させ、ノード情報を少なくとも１つは受信したが要求数には満たない場合には、「要求数分のノード情報は見つかりません。」等のメッセージを表示部１６に表示させる。
【０１１１】
他方、ステップＳ３にて受信した情報がコンテンツノードのノード情報である場合（すなわち、制御部１１はノード情報受信手段として機能した場合）（ステップＳ３：ノード情報）には、スレッドを起動し、図９（Ｂ）に示すコンテンツ受信処理を開始する（ステップＳ５）。
【０１１２】
そして、ステップＳ１でクエリを送信する際に入力した要求数分だけノード情報を受信したか否かを判定（ステップＳ６）し、ノード情報が要求数に満たない場合（ステップＳ６：Ｎｏ）には、ステップＳ４に移行して応答待機時間内である間（すなわち、ステップＳ４：Ｎｏ）は情報の受信を待機し、ノード情報が要求数分ある場合（ステップＳ６：Ｙｅｓ）には、処理を終了する。
【０１１３】
他方、ステップＳ５にてスレッドの起動が行われると、ステップＳ３にて受信したノード情報に基づいてコンテンツノードに対して配信要求を行なう（ステップＳ８）。
【０１１４】
図８を用いて具体的に説明すると、ノード情報としてのコンテンツノードのＩＰアドレスを実線矢印で示す如くキャッシュノードＫａ（又はキャッシュノードＫｂ、又はルートノード）から取得すると、当該ＩＰアドレスを宛先として、コンテンツノードＣａ（又はコンテンツノードＣｂ、又はコンテンツノードＣｃ、又はコンテンツノードＣｄ）に対して配信要求を行なう（破線矢印）。
【０１１５】
そして、同図中一点鎖線矢印で示す如く、配信要求を行ったコンテンツノードから配信されたコンテンツデータを受信（ステップＳ９）して処理を終了する。
【０１１６】
なお、ステップＳ３にてノード情報を受信すると、その都度ステップＳ５の処理にてスレッドを起動し、図９（Ｂ）に示すコンテンツ受信処理を行なうが、図８に示す如く複数のコンテンツノードからコンテンツの配信を受ける場合には、コンテンツを受信する受信ソフトに相当するアプリケーションソフトがコンテンツを受信する処理単位（ここでは「スレッド」と言う。）を複数生成することにより、並行して複数の処理を行なうように構成する。ここで、厳密に時間的に同時に並行して処理すると言うことは考えにくいが、ＣＰＵの処理時間を極短い単位に分割し、複数のスレッドに順番に割り当てることによって、複数の処理を同時に行い、各コンテンツノードからコンテンツを同時に並列して受信しているかのように構成することができる。（さらに正確に言うなら、各スレッドでのＩＰプロトコル上の待ち時間に、別のスレッドの処理が実行できるので、同時動作をしているのと同等の動きになるということである。）図８の例に示す場合で説明すると、リクエストノードがキャッシュノードＫａ及びＫｂ及びルートノードからノード情報を受信して、各コンテンツノードＣａ乃至コンテンツノードＣｄに対して順次配信要求を行ない、最終的には当該コンテンツノードＣａ乃至コンテンツノードＣｄの数のスレッドが起動し、ＣＰＵが当該各スレッドに対して順番に処理を行なうことで各コンテンツノードから並列してコンテンツの配信を受けるように構成する。このような構成により、リクエストノードはコンテンツを早く取得することが可能になる。
【０１１７】
[３−２．キャッシュノード及びルートノードの処理]
次に、図７、図８及び図１０を用いてキャッシュノード及びルートノードの処理について説明する。図１０は、キャッシュノード或いはルートノードの制御部１１に記憶された転送プログラムが当該制御部１１により実行されることにより行われる転送処理を示すフローチャートである。当該処理はリクエストノードや、キャッシュノードを含むコンテンツ配信システムＳ内の他のノード装置から送信されたクエリを受信したことにより開始される。
【０１１８】
まず、制御部１１は、ノード情報検索手段として機能し、受信したクエリに含まれる識別情報としてのコンテンツＩＤを認識して、当該コンテンツＩＤに対応するコンテンツノードのノード情報（コンテンツノードのＩＰアドレス）を、自己の記憶部１２に記憶したインデックス情報の中から検索する（ステップＳ２１）。なお、クエリと共に送信済ノード情報を受信している場合には、当該送信済ノード情報と同じノード情報は検索対象から除く。
【０１１９】
そして、コンテンツＩＤに対応するコンテンツノードの情報が発見されたか否かを判定（ステップＳ２１）し、発見されなかった場合（ステップＳ２１：Ｎｏ）には、自身がルートノードであるか否かを判定（ステップＳ２３）し、自身がルートノードでない場合（ステップＳ２３：Ｎｏ）には、クエリを上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送（ステップＳ２４）して処理を終了する。なお、中間に介在するノード装置が無い場合にはルートノードへ転送する。
【０１２０】
図７に示す例に拠れば、リクエストノードからのクエリは先ず中間ノードに送信され、その後中間ノードからキャッシュノードＫａへとクエリが転送されている。
【０１２１】
一方、ステップＳ２３の判定において、自身がルートノードである場合（ステップＳ２３：Ｙｅｓ）には、リクエストノードから、クエリが転送されて来る間に、１つでもノード情報がリクエストノードに送信されているか否かを判定（ステップＳ２５）する。１つでもノード情報がリクエストノードに送信されているか否かはクエリと共に送信済みノード情報を受信しているか否かで判別できる。
【０１２２】
また、他の方法として、ノード情報が１つでも送信されている場合には、後のステップＳ３２の処理にて説明するように、クエリに含まれる要求数情報が更新されるため、当該要求数情報の更新を行なう際に、当該要求数情報に更新履歴の有無がわかる情報を付加する。この目的のために、要求数情報には、要求数の他に、大元のリクエストノードが出した要求数（これは更新されない）が含まれており、元の要求数と現在の要求数が異なっていれば、過去に更新があったクエリであることが分かる。
【０１２３】
そして、受信したクエリに含まれる要求数情報に更新履歴が無く、１つもリクエストノードにノード情報が送信されていないと判定した場合（ステップＳ２５：Ｙｅｓ）には、制御部１１はエラー回答手段として機能し、エラー回答をリクエストノードに送信（ステップＳ２６）して処理を終了する。他方、少なくとも１つはリクエストノードにノード情報が送信されている場合（ステップＳ２５：Ｎｏ）には処理を終了する。
【０１２４】
また、ステップＳ２２の処理において、コンテンツＩＤに対応するコンテンツノードのノード情報を発見した場合には（ステップＳ２２：Ｙｅｓ）、クエリに含まれる要求数情報によって示される要求数以上発見されたか否かを判定（ステップＳ２７）し、要求数以上発見された場合（ステップＳ２７：Ｙｅｓ）には、制御部１１はノード情報送信手段として機能し、要求数分のノード情報をリクエストノードに送信する（ステップＳ２８）。尚、要求数より多く発見された場合（ステップＳ２７：Ｙｅｓ）には、発見した数全てのノード情報をリクエストノードに送信してもよいが、この場合、特定のノード情報が高頻度に送信されると、そのコンテンツノードの負荷が大きくなるため、発見されたノード情報の中から、ランダムに要求数分だけノード情報を選んで送信することとする。
【０１２５】
他方、クエリに含まれる要求数情報によって示される要求数以上発見されなかった場合（ステップＳ２７：Ｎｏ）には、制御部１１は発見したノード情報をリクエストノードに送信する（ステップＳ２９）。
【０１２６】
図７に示す例に基づいて具体的に説明すると、キャッシュノードＫａは、コンテンツＩＤが「30001012」であって、要求数を「４」とするクエリを受けると、当該キャッシュノードＫａは、記憶部１２に記憶されたインデックス情報を参照してコンテンツＩＤ「30001012」に対応するコンテンツノードのノード情報を検索する。そして、同図に示す如くコンテンツＩＤ「30001012」に対応するノード情報が２つ発見される。この場合には要求数を満足しないので、発見されたコンテンツノードＣａのノード情報（ＩＰアドレス「121.43.154.65」）とコンテンツノードＣｂのノード情報（ＩＰアドレス「243.5.154.65」）が、図８に示す如くキャッシュノードＫａからリクエストノードに送信されることになる。
【０１２７】
続いて、自身がルートノードであるか否かを判定（ステップＳ３０）し、自身がルートノードでない場合（ステップＳ３０：Ｎｏ）には、制御部１１は更新手段及び転送手段として機能し、クエリに含まれる要求数情報によって示される要求数から「１」を引いた値を新たな要求数とするよう要求数情報を更新（ステップＳ３１）した後に、当該更新後の要求数を新たな要求数情報としてクエリに含み、更にステップＳ２９にて送信したノード情報を、送信済ノード情報としてクエリと共に上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送（ステップＳ３２）して処理を終了する。なお、中間に介在するノード装置が無い場合にはルートノードへ転送する。
【０１２８】
すなわち、送信済ノード情報を上流のノード装置に送信することにより、上流のノード装置に対して送信済ノード情報と同じノード情報を有するコンテンツノードを検索対象から除外するよう指示するためである。図７を用いて具体的に説明すると、キャッシュノードＫａは、元の要求数である「４」からキャッシュノードＫａで発見されたノード情報の数「２」を減算して要求数情報を更新して新たな要求数情報としてクエリに含ませると共に、既に発見済みのノード情報のＩＰアドレス「121.43.154.65」とＩＰアドレス「243.5.154.65」を送信済ノード情報としてクエリと共にキャッシュノードＫｂに送信する。
【０１２９】
そして、このクエリを受けたキャッシュノードＫｂでは、ステップＳ２２において、自身の記憶部１２に記憶されたインデックス情報を参照してコンテンツＩＤ「30001012」に対応するノード情報であって、送信済ノード情報と異なるノード情報を検索することになる。図７に示す例によれば、キャッシュノードＫｂの記憶部１２に記憶されたインデックス情報には、コンテンツＩＤに対応するノード情報として、ＩＰアドレス「132.122.11.12」とＩＰアドレス「243.5.154.65」とＩＰアドレス「121.43.154.65」が記憶されているが、ＩＰアドレス「243.5.154.65」とＩＰアドレス「121.43.154.65」は既にキャッシュノードＫａで送信している。すなわち、当該ＩＰアドレス「243.5.154.65」とＩＰアドレス「121.43.154.65」を送信済ノード情報としてクエリと共に受信しているため、キャッシュノードＫｂでは、送信済ノード情報を除き、かつコンテンツＩＤに対応するノード情報として、コンテンツノードＣｃのノード情報（ＩＰアドレス「132.122.11.12」）がリクエストノードに送信されることになる。そして、キャッシュノードＫａから受信したクエリに含まれていた要求数情報から更に１を引いて（減算して）更新した要求数情報を再びクエリに含み、更に送信済ノード情報にＩＰアドレス「132.122.11.12」を付加して、すなわち、送信済ノード情報を“ＩＰアドレス「121.43.154.65」及びＩＰアドレス「243.5.154.65」及びＩＰアドレス「132.122.11.12」”としてルートノードに送信するようになっている。
【０１３０】
そして、このクエリを受けたルートノードでは、自身の記憶部１２に記憶されたインデックス情報を参照してコンテンツＩＤ「30001012」に対応し、かつ送信済ノード情報と異なるノード情報を検索し、その結果コンテンツノードＣｄのノード情報（ＩＰアドレス「125.15.35.42」）が発見されてリクエストノードに送信されることになる。
【０１３１】
なお、ステップＳ３０の処理において、自身がルートノードである場合（ステップＳ３０：Ｙｅｓ）には、エラー回答をリクエストノードに送信（ステップＳ３３）して処理を終了する。
【０１３２】
以上説明したように、リクエストノードから複数のコンテンツノードのノード情報の要求がされた場合には、各キャッシュノードでノード情報が発見される都度リクエストノードに送信し、さらに、クエリを上流に転送（中継）する際には当該キャッシュノードで発見され、既にリクエストノードに送信したノード情報を送信済ノード情報としてクエリと共に上流に転送するので、上流のリクエストノードでは送信済ノード情報を除いてノード情報を検索することが可能になる。
【０１３３】
また、各キャッシュノード或いはルートノードにて要求数を更新しながら上記処理が行なわれるため、リクエストノードに要求数分のノード情報を確実に送信することができ、さらにクエリが上流に転送されながらノード情報が発見されるとその都度リクエストノードにノード情報が送信されるので、リクエストノードは受信したノード情報に基づいて順次コンテンツノードにアクセスして配信要求を行うことが可能になる。
【０１３４】
[３−３．コンテンツノードの処理]
次に、図７、図８及び図１１を用いてコンテンツノードの処理について説明する。図１１は、コンテンツノードの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１３５】
そして、当該処理はリクエストノードから送信された配信要求を受信したことにより開始される。
【０１３６】
まず、クエリに含まれるコンテンツＩＤに対応するコンテンツデータを記憶部１２から取得する（ステップＳ４１）。
【０１３７】
そして、制御部１１は配信手段として機能し、取得したコンテンツデータをリクエストノードに配信する（ステップＳ４２）。
【０１３８】
以上説明したように、本実施形態によれば、リクエストノードからコンテンツデータの所在の問い合わせを行なう際に、リクエストノードはコンテンツノードのノード情報を要求する数を要求数情報として送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、より迅速に所望のコンテンツを取得することが可能になる。
【０１３９】
また、クエリを上流のノード装置に転送（中継）する際には、既に送信済みのノード情報を送信済ノード情報として要求数情報と併せて送信するよう構成したので、これを受けた上流のノード装置では、送信済ノード情報を自身の処理における検索対象から除外することが可能になる。従って、リクエストノードに同じノード情報を重複して送信することを防ぐことができる。
【０１４０】
更に、クエリに要求数情報を付加して当該要求数情報を更新するよう構成したので、リクエストノードが要求するノード情報の数に確実に応じることが可能になる。
【０１４１】
更に、ルートノードまでクエリが転送されたにもかかわらず、コンテンツを発見できない場合には、リクエストノードに対してエラー回答を送信するよう構成したので、リクエストノードではコンテンツ配信システムＳ上に所望のコンテンツが要求数分無いことを容易に把握することが可能になる。
【０１４２】
また、リクエストノードにて要求数を設定してコンテンツＩＤを含むクエリに含んで送信するよう構成したので、当該クエリを転送する際に、ルートノード或いはキャッシュノードでは、既にリクエストノードに送信したノード情報の数を減算して要求数を更新して転送することができるため、リクエストノードは、要求数分のコンテンツノードのノード情報を確実に取得することが可能になる。従って、ノード情報の要求数を多く設定すれば、多くのコンテンツノードからコンテンツの配信を並列して受けることができ、より早くコンテンツを取得することが可能になる等の利点があり、ノード情報の要求数を少なく設定すれば、要求数分のコンテンツノードのノード情報を短時間で揃えることができる等の利点があるので、リクエストノードのユーザが用途に応じて、或いはコンテンツの人気度に応じて設定を変えることができる。
【０１４３】
[４．変形形態]
上記［１−４.コンテンツデータの登録］にて説明したように、各コンテンツは、公開メッセージを送信することによりコンテンツ配信システムＳに登録されるが、ノード装置が、公開メッセージを受信して、当該公開メッセージに含まれるコンテンツＩＤ等をインデックス情報として自己の記憶部１２に記憶する際、ＤＨＴルーティングテーブルに従って自身に当該公開メッセージを送信してきたノード装置を中継送信元のノード装置として、当該中継送信元のノード装置のノード情報をバックポインタとして対応付けて記憶する。これにより、公開メッセージと同様の流れで各ノード装置クエリを受信したキャッシュノードでは、送信したノード情報（送信済みノード情報）を上流のノード装置へ転送する処理（ステップＳ３２参照。）が不要になる。
【０１４４】
以下、図を用いて具体的に説明する。
【０１４５】
図１２は、公開メッセージの流れをスパニングツリー状に表した説明図である。
【０１４６】
コンテンツＩＤ「30001011」のコンテンツを有するコンテンツノードＣｇ，Ｃｈ、Ｃｉが、当該コンテンツをコンテンツ配信システムＳに登録するために、識別情報としてのコンテンツＩＤをキーとして公開メッセージをルーティングテーブルに従ってルートノードに向けて送信する。
【０１４７】
コンテンツノードＣｇから公開メッセージを受信したノード装置はキャッシュノードｋｇとなり、自己の記憶部１２に記憶されたインデックス情報に、公開メッセージに含まれるコンテンツＩＤ、補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）、ノード情報としてのコンテンツノードＣｇのＩＰアドレス、更に、バックポインタとして、当該公開メッセージを送信したノード装置のノード情報を対応付けて記憶する。図１２の場合、キャッシュノードｋｇは、公開メッセージの中継送信元のノード装置であるコンテンツノードＣｇのノード情報：ＩＰアドレス“132.122.11.5”をバックポインタとして記憶する。
【０１４８】
そして、当該キャッシュノードＫｇから公開メッセージを転送されたノード装置もキャッシュノードＫｈとなり、同様にして、自己の記憶部１２に記憶されたインデックス情報に、公開メッセージに含まれるコンテンツＩＤ、補助情報及びノード情報と共にバックポインタとして、当該公開メッセージを転送した中継送信元のノード装置のノード情報を対応付けて記憶する。図１２の場合、キャッシュノードｋｈは、公開メッセージの中継送信元のノード装置であるキャッシュノードＫｇのノード情報：ＩＰアドレス“132.122.11.7”をバックポインタとして記憶する。
【０１４９】
また、キャッシュノードＫｈは、コンテンツノードＣｈからも公開メッセージを受信しているので、当該公開メッセージに含まれるコンテンツＩＤ、補助情報及びノード情報と共に、当該公開メッセージを転送した中継送信元のノード装置であるコンテンツノードＣｈのノード情報：ＩＰアドレス“132.122.11.6”をバックポインタとして対応付けて記憶する。
【０１５０】
そして、キャッシュノードＫｈからコンテンツノードＣｇ，Ｃｈに係る公開メッセージを夫々受信したルートノードでも、自己の記憶部１２に記憶されたインデックス情報に、各公開メッセージに含まれるコンテンツＩＤ等の情報と、当該公開メッセージを転送した中継送信元のノード装置である各キャッシュノードＫｈのノード情報をバックポインタとして夫々対応付けて記憶する。また、ルートノードは、コンテンツノードＣｉから公開メッセージを受信して、当該公開メッセージに含まれるコンテンツＩＤ、補助情報及びノード情報と共に、当該公開メッセージの中継送信元のノード装置であるコンテンツノードＣｉのノード情報：ＩＰアドレス“132.122.11.9”をバックポインタとして対応付けて記憶する。
【０１５１】
図１３は、クエリ（コンテンツ問合せ情報）の転送の様子と、当該クエリに応じてコンテンツノードのノード情報が返信される様子をスパニングツリー状に表した説明図である。
【０１５２】
先ず、リクエストノードは、コンテンツＩＤ「30001011」、要求数「３」とするクエリを送信する。このクエリは、コンテンツＩＤをキーとしてルーティングテーブルに従って送信され、キャッシュノードＫｇにて受信される。
【０１５３】
そしてキャッシュノードＫｇは、受信したクエリに含まれる識別情報としてのコンテンツＩＤを認識して、当該コンテンツＩＤに対応するコンテンツノードのノード情報を、自己の記憶部１２に記憶したインデックス情報の中から検索し、当該ノード情報をリクエストノードに送信する。この時点で要求数が「３」から「２」に更新され、更にクエリが転送される。
【０１５４】
キャッシュノードＫｈは、クエリを受信すると、受信したクエリに含まれる識別情報としてのコンテンツＩＤを認識して、当該コンテンツＩＤに対応するコンテンツノードのノード情報を、自己の記憶部１２に記憶したインデックス情報の中から検索し、当該ノード情報をリクエストノードに送信する。この時点で要求数が「２」から「１」に更新され、更にクエリが転送される。
【０１５５】
ルートノードは、クエリを受信すると、受信したクエリに含まれる識別情報としてのコンテンツＩＤを認識して、当該コンテンツＩＤに対応するコンテンツノードのノード情報を、自己の記憶部１２に記憶したインデックス情報の中から検索し、当該ノード情報をリクエストノードに送信する。
【０１５６】
各キャッシュノード及びルートノードにおける検索の際、インデックス情報に記憶されたバックポインタとして記憶されたノード情報を参照して、クエリの中継送信元のノード装置のノード情報と異なるコンテンツノードのノード情報をリクエストノードに送信するよう構成する。クエリの中継送信元のノード装置のノード情報は、各ノード装置が自身のノード情報をクエリに含んで送信するよう構成すればよい。
【０１５７】
図１２、図１３に示す例の場合、リクエストノードからクエリを受けたキャッシュノードＫｇは、クエリの中継送信元であるリクエストノードのノード情報：ＩＰアドレス“132.122.11.10”が、バックポインタとして対応付けられていないコンテンツノードＣｇのノード情報を、リクエストノードに送信する。
【０１５８】
キャッシュノードＫｇからクエリを受けたキャッシュノードＫｈは、インデックス情報にあるコンテンツＩＤ「30001011」のコンテンツノードのノード情報のうち、クエリの中継送信元であるキャッシュノードＫｇのノード情報：ＩＰアドレス“132.122.11.7”が、バックポインタとして対応付けられていないコンテンツノードＣｈのノード情報を、リクエストノードに送信する。クエリの中継送信元のキャッシュノードＫｇのノード情報と同じノード情報を、バックポインタとして記憶するコンテンツノードのノード情報（“132.122.11.5”）は、既にリクエストノードに送信済みであるためである。
【０１５９】
また、キャッシュノードＫｈからクエリを受けたルートノードは、インデックス情報にあるコンテンツＩＤ「30001011」のコンテンツノードのノード情報のうち、クエリの中継送信元であるキャッシュノードＫｈのノード情報：ＩＰアドレス“132.122.11.8”が、バックポインタとして対応付けられていないコンテンツノードＣｉのノード情報を、リクエストノードに送信する。クエリの中継送信元のキャッシュノードＫｈのノード情報と同じノード情報を、バックポインタとして記憶するコンテンツノードのノード情報（“132.122.11.5”、“132.122.11.6”）は、既にリクエストノードに送信済みであるためである。
【０１６０】
これは、クエリも公開メッセージも何れもコンテンツＩＤをキーとするルーティングテーブルに従って転送されるため、同じ転送経路でルートノードに辿り着く性質を利用しているのであって、クエリを受けたキャッシュノード又はルートノードは、公開メッセージを受信して、コンテンツノードの情報を記憶する際に、その中継送信元を記憶しておくことにより、ある中継送信元からのクエリに対しては、別の中継ノード装置経由で記憶しておいたコンテンツノードのノード情報を送信することが可能となり、同じノード情報を重複してリクエストノードに送信することを防いで、未だ送信されていないノード情報のみを誤りなく送信することができる。こうすれば、先の実施例のステップＳ３２で行ったような、クエリと共に送信済みのノード情報を転送するという動作が必要なくなる。
【０１６１】
なお、上述したようにバックポインタを使用して送信済みノード情報を判断する場合、要求数情報の更新を行なう際に、当該要求数情報に更新履歴の有無がわかる情報として、更新履歴フラグを付加するよう構成する。更新履歴フラグは、例えば更新履歴無しを「０」、更新履歴有りを「１」とする。
【０１６２】
そして、上記ステップＳ２５において、更新履歴フラグが「１」である場合には１つでもノード情報がリクエストノードに送信されていると判定し、更新履歴フラグが「０」である場合には１つもリクエストノードにノード情報が送信されていないと判定すればよい。
【図面の簡単な説明】
【０１６３】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図５】本実施形態におけるＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図６】ノード装置１の概要構成例を示す図である。
【図７】各ノード間の各種情報の授受をスパニングツリー状に表した説明図である。
【図８】各ノード間の各種情報の授受をスパニングツリー状に表した説明図である。
【図９】リクエストノードの制御部１１における処理を示すフローチャートである。
【図１０】キャッシュノード或いはルートノードの制御部１１における処理を示すフローチャートである。
【図１１】コンテンツノードの制御部１１における処理を示すフローチャートである。
【図１２】公開メッセージの流れをスパニングツリー状に表した説明図である。
【図１３】クエリの転送の様子と、コンテンツノードのノード情報が返信される様子をスパニングツリー状に表した説明図である。
【符号の説明】
【０１６４】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
Ｃａ、Ｃｂ、Ｃｃ、Ｃｄ、Ｃｇ、Ｃｈ、Ｃｉ  コンテンツノード
Ｋａ、Ｋｂ、Ｋｇ、Ｋｈ  キャッシュノード
【図１】
2006252532.tif 000003
【図２】
2006252532.tif 000004
【図３】
2006252532.tif 000005
【図４】
2006252532.tif 000006
【図５】
2006252532.tif 000007
【図６】
2006252532.tif 000008
【図７】
2006252532.tif 000009
【図８】
2006252532.tif 000010
【図９】
2006252532.tif 000011
【図１０】
2006252532.tif 000012
【図１１】
2006252532.tif 000013
【図１２】
2006252532.tif 000014
【図１３】
2006252532.tif 000015