(57)【要約】      （修正有）【課題】リクエストノードが、所望のコンテンツの配信に適したコンテンツノードに対して配信要求を行ない当該コンテンツの配信を受けることを可能とした情報配信システム等を提供する。【解決手段】ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、リクエストノードがコンテンツを記憶するコンテンツノード等の情報記憶ノード装置に対してコンテンツの配信要求をする際に、リクエストノードは、複数の情報記憶ノード装置から当該情報記憶ノード装置に関する関連情報を受信し、当該複数の情報記憶ノード装置からの関連情報に基づいて配信に最適な情報記憶ノード装置選定して、当該情報記憶ノード装置に対して配信要求を行い、適切な情報記憶ノード装置から共用情報の配信を受ける。【選択図】図１
2006195744.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、
前記複数のノード装置に含まれる第１のノード装置は、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段と、
前記情報記憶ノード装置から当該情報記憶ノード装置に関する前記関連情報を受信する関連情報受信手段と、
前記情報記憶ノード装置のうち、前記受信した関連情報に基づいて選定した情報記憶ノード装置に前記特定共用情報の配信を要求する配信要求手段と、を有し、
前記第２のノード装置は、
前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、
前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記関連情報を前記第１のノード装置に送信するよう指示すべく前記識別情報を転送する識別情報転送手段と、を有し、
前記情報記憶ノード装置は、
前記第２のノード装置から前記識別情報を受信して前記関連情報の送信の指示を受けると、当該受信した識別情報によって示される前記特定共用情報を前記第１のノード装置に送信可能か否かを判定する判定手段と、
当該判定の結果、送信可能である場合には、前記第１のノード装置に対して当該情報記憶ノード装置に関する前記関連情報を送信する関連情報送信手段と、
前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、
を有することを特徴とする情報配信システム。
【請求項２】
請求項１に記載の情報配信システムにおいて、
前記第２のノード装置における前記識別情報転送手段は、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置でない場合には、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記受信した識別情報を転送することを特徴とする情報配信システム。
【請求項３】
請求項１に記載の情報配信システムにおいて、
前記第２のノード装置は、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置である場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする情報配信システム。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の情報配信システムにおいて、
前記情報記憶ノード装置は、
前記判定手段により送信可能であると判定された場合には可情報を、前記送信不可能であると判定された場合には不可情報を、前記識別情報の送信元である前記第２のノード装置に対してそれぞれ判定情報として返信する判定情報返信手段を有し、
前記第２のノード装置は、
前記情報記憶ノード装置から前記判定情報として前記不可情報を受信した場合であって、
当該第２のノード装置自身が前記管理ノード装置でない場合には、前記識別情報転送手段は、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記識別情報を転送し、
前記第２のノード装置自身が前記管理ノード装置である場合には、前記エラー回答手段は、前記第１のノード装置に対して前記特定共用情報が無いことを回答することを特徴とする情報配信システム。
【請求項５】
請求項４に記載の情報配信システムにおいて、
前記識別情報は、前記関連情報の要求数を示す要求数情報を含み、
前記第２のノード装置は、前記要求数から前記情報記憶ノード装置から受信した前記可情報の数を減算して前記要求数を更新する更新手段を有し、かつ前記識別情報転送手段は、前記更新の結果、前記要求数が１以上である場合にのみ前記更新された要求数を新たな要求数情報として前記識別情報に含んで当該識別情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送することを特徴とする情報配信システム。
【請求項６】
請求項４又は請求項５に記載の情報配信システムにおいて、
前記第２のノード装置は、前記情報記憶ノード装置から前記判定情報を受信するための待機時間を設定する待機時間設定手段を有し、
前記識別情報転送手段及び前記エラー回答手段は、前記待機時間を経過してもなお前記判定情報の返信が無い前記情報記憶ノード装置からは、前記不可情報が受信されたと判断することを特徴とする情報配信システム。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載の情報配信システムにおいて、
前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含み、
前記第１のノード装置における前記配信要求手段は、複数の前記情報記憶ノード装置から前記関連情報を受信した場合には、当該関連情報に含まれる前記通信負荷情報に基づいて通信負荷を比較し、前記通信負荷が相対的に小さい前記通信経路を介して接続された前記情報記憶ノード装置を選定し、当該選定した情報記憶ノード装置に前記特定共用情報の配信を要求することを特徴とする情報配信システム。
【請求項８】
請求項７に記載の情報配信システムにおいて、
前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする情報配信システム。
【請求項９】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける前記複数のノード装置に含まれる第１のノード装置において、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段と、
前記情報記憶ノード装置から当該情報記憶ノード装置に関する前記関連情報を受信する関連情報受信手段と、
前記情報記憶ノード装置のうち、前記受信した関連情報に基づいて選定した情報記憶ノード装置に前記特定共用情報の配信を要求する配信要求手段を有することを特徴とする第１のノード装置。
【請求項１０】
請求項９に記載の第１のノード装置において、
前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含み、
前記配信要求手段は、複数の前記情報記憶ノード装置から前記関連情報を受信した場合には、当該関連情報に含まれる前記通信負荷情報に基づいて通信負荷を比較し、前記通信負荷が相対的に小さい前記通信経路を介して接続された前記情報記憶ノード装置を選定し、当該選定した情報記憶ノード装置に前記特定共用情報の配信を要求することを特徴とする第１のノード装置。
【請求項１１】
請求項１０に記載の第１のノード装置において、
前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする第１のノード装置。
【請求項１２】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、
前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記識別情報を受信して前記特定共用情報の要求を受けると、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、
前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記関連情報を前記第１のノード装置に送信するよう指示すべく前記識別情報を転送する識別情報転送手段と、
を有することを特徴とする第２のノード装置。
【請求項１３】
請求項１２に記載の第２のノード装置において、
前記識別情報転送手段は、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置でない場合には、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記受信した識別情報を転送することを特徴とする第２のノード装置。
【請求項１４】
請求項１２に記載の第２のノード装置において、
前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置である場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする第２のノード装置。
【請求項１５】
請求項１２乃至請求項１４のいずれか一項に記載の第２のノード装置において、
前記情報記憶ノード装置から前記特定共用情報を送信可能か否かを示す判定情報として、送信不可能であることを示す不可情報を受信した場合であって、
当該第２のノード装置自身が前記管理ノード装置でない場合には、前記識別情報転送手段は、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記識別情報を転送し、
前記第２のノード装置自身が前記管理ノード装置である場合には、前記エラー回答手段は、前記第１のノード装置に対して前記特定共用情報が無いことを回答することを特徴とする第２のノード装置。
【請求項１６】
請求項１５に記載の第２のノード装置において、
前記識別情報は、前記関連情報の要求数を示す要求数情報を含み、
前記要求数から前記情報記憶ノード装置から受信した前記可情報の数を減算して前記要求数を更新する更新手段を有し、かつ前記識別情報転送手段は、前記更新の結果、前記要求数が１以上である場合にのみ前記更新された要求数を新たな要求数情報として前記識別情報に含んで、当該識別情報を、前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送することを特徴とする第２のノード装置。
【請求項１７】
請求項１５又は請求項１６に記載の第２のノード装置において、
前記情報記憶ノード装置から前記判定情報を受信するための待機時間を設定する待機時間設定手段を有し、
前記識別情報転送手段及び前記エラー回答手段は、前記待機時間を経過してもなお前記判定情報の返信が無い前記情報記憶ノード装置からは、前記不可情報が受信されたと判断することを特徴とする第２のノード装置。
【請求項１８】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムに含まれる情報記憶ノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち、前記複数のノード装置に含まれる第１のノード装置によって特定された共用情報である特定共用情報を記憶する前記情報記憶ノード装置において、
前記第１のノード装置から、前記複数のノード装置に含まれる第２のノード装置を介して前記特定共用情報に対応する固有の識別情報を受信して当該情報記憶ノード装置に関する関連情報の送信の指示を受けると、当該受信した識別情報によって示される前記特定共用情報を前記第１のノード装置に送信可能か否かを判定する判定手段と、
当該判定の結果、送信可能である場合には、前記第１のノード装置に対して前記関連情報を送信する関連情報送信手段と、
前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、
を有することを特徴とする情報記憶ノード装置。
【請求項１９】
請求項１８に記載の情報記憶ノード装置において、
前記判定手段により送信可能であると判定された場合には可情報を、前記送信不可能であると判定された場合には不可情報を、前記識別情報の送信元である前記第２のノード装置に対してそれぞれ判定情報として返信する判定情報返信手段を有することを特徴とする情報記憶ノード装置。
【請求項２０】
請求項１８又は請求項１９に記載の情報記憶ノード装置において、
前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含むことを特徴とする情報記憶ノード装置。
【請求項２１】
請求項２０に記載の情報記憶ノード装置において、
前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする情報記憶ノード装置。
【請求項２２】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける前記複数のノード装置に含まれる第１のノード装置（リクエストノード）に含まれるコンピュータを、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段、
前記情報記憶ノード装置から当該情報記憶ノード装置に関する前記関連情報を受信する関連情報受信手段、
前記情報記憶ノード装置のうち、前記受信した関連情報に基づいて選定した情報記憶ノード装置に前記特定共用情報の配信を要求する配信要求手段として機能させることを特徴とする配信要求プログラム。
【請求項２３】
請求項２２に記載の配信要求プログラムにおいて、
前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含むものであって、
前記配信要求手段を、複数の前記情報記憶ノード装置から前記関連情報を受信した場合には、当該関連情報に含まれる前記通信負荷情報に基づいて通信負荷を比較し、前記通信負荷が相対的に小さい前記通信経路を介して接続された前記情報記憶ノード装置を選定し、当該選定した情報記憶ノード装置に前記特定共用情報の配信を要求するよう機能させることを特徴とする配信要求プログラム。
【請求項２４】
請求項１０に記載の配信要求プログラムにおいて、
前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする配信要求プログラム。
【請求項２５】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、
前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、をそれぞれ対応付けて記憶する記憶手段、
前記識別情報を受信して前記特定共用情報の要求を受けると、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段、
前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記関連情報を前記第１のノード装置に送信するよう指示すべく前記識別情報を転送する識別情報転送手段として機能させることを特徴とする転送プログラム。
【請求項２６】
請求項２５に記載の転送プログラムにおいて、
前記識別情報転送手段を、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置でない場合には、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記受信した識別情報を転送するよう機能させることを特徴とする転送プログラム。
【請求項２７】
請求項２５に記載の転送プログラムにおいて、
前記コンピュータを、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置である場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段として更に機能させることを有することを特徴とする転送プログラム。
【請求項２８】
請求項２５乃至請求項２７のいずれか一項に記載の転送プログラムにおいて、
前記コンピュータを、前記情報記憶ノード装置から前記特定共用情報を送信可能か否かを示す判定情報を受信する判定情報受信手段として機能させ、前記判定情報が送信不可能であることを示す不可情報を受信した場合であって、
前記第２のノード装置が前記管理ノード装置でない場合には、前記識別情報転送手段を、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記識別情報を転送するよう機能させ、
前記第２のノード装置が前記管理ノード装置である場合には、前記エラー回答手段を、前記第１のノード装置に対して前記特定共用情報が無いことを回答するよう機能させることを特徴とする転送プログラム。
【請求項２９】
請求項２８に記載の転送プログラムにおいて、
前記識別情報は、前記関連情報の要求数を示す要求数情報を含み、
前記コンピュータを、前記要求数から前記情報記憶ノード装置から受信した前記可情報の数を減算して前記要求数を更新する更新手段として機能させ、
前記識別情報転送手段を、前記更新の結果、前記要求数が１以上である場合にのみ前記更新された要求数を新たな要求数情報として前記識別情報に含んで、当該識別情報を、前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送するよう機能させることを特徴とする転送プログラム。
【請求項３０】
請求項２８又は請求項２９に記載の転送プログラムにおいて、
前記コンピュータを、前記情報記憶ノード装置から前記判定情報を受信するための待機時間を設定する待機時間設定手段として機能させ、
前記識別情報転送手段及び前記エラー回答手段を前記待機時間を経過してもなお前記判定情報の返信が無い前記情報記憶ノード装置からは、前記不可情報が受信されたと判断するよう機能させることを特徴とする転送プログラム。
【請求項３１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムに含まれる情報記憶ノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち、前記複数のノード装置に含まれる第１のノード装置によって特定された共用情報である特定共用情報を記憶する前記情報記憶ノード装置に含まれるコンピュータを、
前記第１のノード装置から、前記複数のノード装置に含まれる第２のノード装置を介して前記特定共用情報に対応する固有の識別情報を受信して当該情報記憶ノード装置に関する関連情報の送信の指示を受けると、当該受信した識別情報によって示される前記特定共用情報を前記第１のノード装置に送信可能か否かを判定する判定手段、
当該判定の結果、送信可能である場合には、前記第１のノード装置に対して前記関連情報を送信する関連情報送信手段、
前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段として機能させることを特徴とする配信プログラム。
【請求項３２】
請求項３１に記載の配信プログラムにおいて、
前記コンピュータを、前記判定手段により送信可能であると判定された場合には可情報を、前記送信不可能であると判定された場合には不可情報を、前記識別情報の送信元である前記第２のノード装置に対してそれぞれ判定情報として返信する判定情報返信手段として機能させることを特徴とする配信プログラム。
【請求項３３】
請求項３２又は請求項３３に記載の配信プログラムにおいて、
前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含むことを特徴とする配信プログラム。
【請求項３４】
請求項３３に記載の配信プログラムにおいて、
前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする配信プログラム。
【請求項３５】
請求項２２乃至請求項３４に記載の配信要求プログラム、転送プログラム又は配信プログラムの何れかのプログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、１のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存された情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する所在情報（例えば、コンテンツデータのタイトル等の補助情報を指定することにより、コンテンツデータを保存しているノード装置のＩＰアドレス等が特定できる情報：以下ではインデックス情報と呼ぶ。）が記述されたリストを有しており、当該リストに記述されたインデックス情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
【０００３】
例えば、特許文献１には、この種の管理サーバとして、最上位に存在し、コンテンツ配信管理システム内の全てのコンテンツ情報を管理するインデックスサーバが開示されている。
【特許文献１】特開２００２−３１８７２０号公報
【０００４】
また、特許文献２に開示されているように、管理サーバを用いない方法として、分散ハッシュテーブル（ＤＨＴ）を用いた技術が開示されているが、このシステムでは、コンテンツの配信を希望するリクエストノード装置は、コンテンツ情報を管理するノード装置からコンテンツ情報を記憶するノード装置の所在を聞いて、当該ノード装置にアクセスするようになっている。
【特許文献２】特開２００４−１２７１８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ピアツーピア型のコンテンツ配信システムにおいては、ノード装置の脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、上述したようなリストの更新を頻繁に行なわなくてはならず、従って、当該リストを常に最新の状態に保つために、上述したような管理サーバは必要であると考えられる。
【０００６】
しかしながら、管理サーバが上記リストの管理を行なうコンテンツ配信システムにおいては、ノード装置の数が増せば増すほど、例えば当該リストの更新時にサーバ負荷が増大すると共に、ネットワーク負荷が一箇所に集中し配信可能なリストも制限されてしまうという問題が生じ好ましくない。また、管理サーバが機能停止（例えば、停電や故障等により）すると、当該リストの更新ができなくなってしまうという問題もある。更に、管理サーバによるリスト管理のための管理コストもかかってしまうという問題もある。
【０００７】
また、管理サーバを用いない方法であっても、コンテンツを保持しているコンテンツノード装置は常に稼動状態にあるわけではないため、リクエストノードから配信を所望するコンテンツを記憶するコンテンツノード装置の所在を問われた管理ノード装置が、自己が有するリストに記載された情報に基づいてコンテンツノード装置の所在をリクエストノードに通知しても、リクエストノードが当該コンテンツノード装置にコンテンツの配信を要求してみると、既にそのコンテンツノード装置は脱退していたり、機能停止（例えば、停電や故障等により）している場合もあり、また既に所望のコンテンツが消滅している場合もあった。このような場合には、リクエストノードは改めてコンテンツノード装置の所在を探さねばならない。これが頻繁に行われると、コンテンツが膨大なシステム、また、参加する装置数が膨大なシステムにおいては、大量の通信が各装置間で行われることとなり、システム全体に多大な負荷が生じてしまうという問題があった。
【０００８】
本発明は、以上の問題等に鑑みてなされたものであり、リクエストノードが、所望のコンテンツの配信に適したコンテンツノードに対して配信要求を行ない当該コンテンツの配信を受けることを可能とした情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、前記複数のノード装置に含まれる第１のノード装置は、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段と、前記情報記憶ノード装置から当該情報記憶ノード装置に関する前記関連情報を受信する関連情報受信手段と、前記情報記憶ノード装置のうち、前記受信した関連情報に基づいて選定した情報記憶ノード装置に前記特定共用情報の配信を要求する配信要求手段と、を有し、前記第２のノード装置は、前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記関連情報を前記第１のノード装置に送信するよう指示すべく前記識別情報を転送する識別情報転送手段と、を有し、前記情報記憶ノード装置は、前記第２のノード装置から前記識別情報を受信して前記関連情報の送信の指示を受けると、当該受信した識別情報によって示される前記特定共用情報を前記第１のノード装置に送信可能か否かを判定する判定手段と、当該判定の結果、送信可能である場合には、前記第１のノード装置に対して当該情報記憶ノード装置に関する前記関連情報を送信する関連情報送信手段と、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段とを有することを特徴とする。
【００１０】
これによれば、リクエストノード等の第１のノード装置からコンテンツ等の特定共用情報を記憶するコンテンツノード等の情報記憶ノード装置から関連情報の要求をおこなう際に、第１のノード装置は、複数個の情報記憶ノード装置の関連情報を受信し、当該複数の情報記憶ノード装置からの関連情報に基づいて配信に最適な情報記憶ノード装置を選定して、当該選定された情報記憶ノード装置に対して配信要求を行なうよう構成したので、情報記憶ノード装置が確実に存在していることを関連情報を受信して確認した上で配信要求を行なうことができ、更に複数の情報記憶ノード装置から関連情報を受信した場合には、複数の情報記憶ノード装置の中から関連情報を比較してより適切な情報記憶ノード装置から共用情報の配信を受けることが可能になる。
【００１１】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載の情報配信システムにおいて、前記第２のノード装置における前記識別情報転送手段は、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置でない場合には、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記受信した識別情報を転送することを特徴とする。
【００１２】
これによれば、コンテンツＩＤ等の識別情報が、ルートノード等の管理ノード装置に辿り着くまでノード装置間を転送されるよう構成したので、所望のコンテンツ等の特定共用情報の検索を確実に行なうことができる。
【００１３】
上記課題を解決するために、請求項３に記載の発明は、請求項１に記載の情報配信システムにおいて、前記第２のノード装置は、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置である場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする。
【００１４】
これによれば、ルートノード等の第２のノード装置で特定共用情報を発見できない場合には、リクエストノード等の第１のノード装置に対してエラー回答を送信するよう構成したので、第１のノード装置では特定共用情報が無いことを容易に把握することが可能になる。
【００１５】
上記課題を解決するために、請求項４に記載の発明は、請求項１乃至請求項３のいずれか一項に記載の情報配信システムにおいて、前記情報記憶ノード装置は、前記判定手段により送信可能であると判定された場合には可情報を、前記送信不可能であると判定された場合には不可情報を、前記識別情報の送信元である前記第２のノード装置に対してそれぞれ判定情報として返信する判定情報返信手段を有し、前記第２のノード装置は、前記情報記憶ノード装置から前記判定情報として前記不可情報を受信した場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記識別情報転送手段は、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記識別情報を転送し、前記第２のノード装置自身が前記管理ノード装置である場合には、前記エラー回答手段は、前記第１のノード装置に対して前記特定共用情報が無いことを回答することを特徴とする。
【００１６】
これによれば、コンテンツノード等の情報記憶ノード装置にて、所望のコンテンツ等の特定共用情報を配信できるか否かを判定するよう判定手段を設け、配信できない場合には、配信不可情報等の不可情報をコンテンツＩＤ等の識別情報の送信元であるルートノード或いはキャッシュノード等の第２のノード装置に送信するよう構成したので、識別情報の送信元である第２のノード装置が、情報記憶ノード装置が特定共用情報を配信できないことを認識できるため、識別情報の送信元がルートノード等の管理ノード装置であれば、リクエストノード等の第１のノード装置にエラー回答を送信することにより第１のノード装置では特定共用情報が無いことを容易に把握することが可能になり、他方、識別情報の送信元が管理ノード装置で無い場合には、更に上流のノード装置すなわち、管理ノード装置との間に介在するノード装置に対して識別情報を転送することができ特定共用情報の検索を続行することが可能になる。
【００１７】
上記課題を解決するために、請求項５に記載の発明は、請求項４に記載の情報配信システムにおいて、前記識別情報は、前記関連情報の要求数を示す要求数情報を含み、前記第２のノード装置は、前記要求数から前記情報記憶ノード装置から受信した前記可情報の数を減算して前記要求数を更新する更新手段を有し、かつ前記識別情報転送手段は、前記更新の結果、前記要求数が１以上である場合にのみ前記更新された要求数を新たな要求数情報として前記識別情報に含んで当該識別情報を前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送することを特徴とする。
【００１８】
これによれば、リクエストノード等の第１のノード装置にて要求数を自由に設定してコンテンツＩＤ等の識別情報に含んで送信するよう構成したので、当該識別情報を転送する際に、ルートノード或いはキャッシュノード等の第２のノード装置では、コンテンツノード等の情報記憶ノード装置から配信可能情報等の可情報を受信した数を減算して要求数を更新して転送することができるため、第１のノード装置は、第１のノード装置が要求する数の関連情報を取得することが可能になる。従って、関連情報の要求数を多く設定すれば、検索範囲が広がり、より適切な情報記憶ノード装置を選定できるという利点があり、関連情報の要求数を少なく設定すれば、検索範囲が狭くなるので、より迅速に１つの情報記憶ノード装置を選定できるという利点があるので、第１のノード装置のユーザが自在に設定可能となる。
【００１９】
上記課題を解決するために、請求項６に記載の発明は、請求項４又は請求項５に記載の情報配信システムにおいて、前記第２のノード装置は、前記情報記憶ノード装置から前記判定情報を受信するための待機時間を設定する待機時間設定手段を有し、前記識別情報転送手段及び前記エラー回答手段は、前記待機時間を経過してもなお前記判定情報の返信が無い前記情報記憶ノード装置からは、前記不可情報が受信されたと判断することを特徴とする。
【００２０】
これによれば、ルートノード或いはキャッシュノード等の第２のノード装置は、待機時間を設定し、一定の時間が経過すると、コンテンツノード等の情報記憶ノード装置から配信不可情報等の不可情報を受信したものと同様の処理を行なうよう構成したので、情報記憶ノード装置が完全にダウンしている場合など、何らかのトラブルが生じた場合でも適切に処理を行なうことができる。
【００２１】
上記課題を解決するために、請求項７に記載の発明は、請求項１乃至請求項６のいずれか一項に記載の情報配信システムにおいて、前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含み、前記第１のノード装置における前記配信要求手段は、複数の前記情報記憶ノード装置から前記関連情報を受信した場合には、当該関連情報に含まれる前記通信負荷情報に基づいて通信負荷を比較し、前記通信負荷が相対的に小さい前記通信経路を介して接続された前記情報記憶ノード装置を選定し、当該選定した情報記憶ノード装置に前記特定共用情報の配信を要求することを特徴とする。
【００２２】
これによれば、コンテンツノード等の情報記憶ノード装置では、関連情報としてネットワークにおける通信経路の負荷に関するＴＴＬ等の通信負荷情報をリクエストノード等の第１のノード装置に送信するため、第１のノード装置で当該通信負荷情報に基づいて各情報記憶ノード装置の通信負荷を比較し、通信負荷が相対的に小さい通信経路を介して接続された情報記憶ノード装置を選定することが可能になり、情報記憶ノード装置から第１のノード装置にコンテンツ当の共用情報を配信する際に小さい負荷で配信でき、かつ、システム全体の通信負荷の低減を図ることが可能になる。
【００２３】
上記課題を解決するために、請求項８に記載の発明は、請求項７に記載の情報配信システムにおいて、前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする。
【００２４】
これによれば、通信負荷情報としてＴＴＬ（Time To Live）情報を利用することができ、容易にコンテンツノード等の情報記憶ノード装置とリクエストノード等の第１のノード装置の間の通信負荷に関する情報を取得することができる。
【００２５】
上記課題を解決するために、請求項９に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける前記複数のノード装置に含まれる第１のノード装置において、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段と、前記情報記憶ノード装置から当該情報記憶ノード装置に関する前記関連情報を受信する関連情報受信手段と、前記情報記憶ノード装置のうち、前記受信した関連情報に基づいて選定した情報記憶ノード装置に前記特定共用情報の配信を要求する配信要求手段を有することを特徴とする。
【００２６】
上記課題を解決するために、請求項１０に記載の発明は、請求項９に記載の第１のノード装置において、前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含み、前記配信要求手段は、複数の前記情報記憶ノード装置から前記関連情報を受信した場合には、当該関連情報に含まれる前記通信負荷情報に基づいて通信負荷を比較し、前記通信負荷が相対的に小さい前記通信経路を介して接続された前記情報記憶ノード装置を選定し、当該選定した情報記憶ノード装置に前記特定共用情報の配信を要求することを特徴とする。
【００２７】
上記課題を解決するために、請求項１１に記載の発明は、請求項１０に記載の第１のノード装置において、前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする。
【００２８】
上記課題を解決するために、請求項１２に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、をそれぞれ対応付けて記憶する記憶手段と、前記識別情報を受信して前記特定共用情報の要求を受けると、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記関連情報を前記第１のノード装置に送信するよう指示すべく前記識別情報を転送する識別情報転送手段と、を有することを特徴とする。
【００２９】
上記課題を解決するために、請求項１３に記載の発明は、請求項１２に記載の第２のノード装置において、前記識別情報転送手段は、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置でない場合には、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記受信した識別情報を転送することを特徴とする。
【００３０】
上記課題を解決するために、請求項１４に記載の発明は、請求項１２に記載の第２のノード装置において、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置である場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする。
【００３１】
上記課題を解決するために、請求項１５に記載の発明は、請求項１２乃至請求項１４のいずれか一項に記載の第２のノード装置において、前記情報記憶ノード装置から前記特定共用情報を送信可能か否かを示す判定情報として、送信不可能であることを示す不可情報を受信した場合であって、当該第２のノード装置自身が前記管理ノード装置でない場合には、前記識別情報転送手段は、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記識別情報を転送し、前記第２のノード装置自身が前記管理ノード装置である場合には、前記エラー回答手段は、前記第１のノード装置に対して前記特定共用情報が無いことを回答することを特徴とする。
【００３２】
上記課題を解決するために、請求項１６に記載の発明は、請求項１５に記載の第２のノード装置において、前記識別情報は、前記関連情報の要求数を示す要求数情報を含み、前記要求数から前記情報記憶ノード装置から受信した前記可情報の数を減算して前記要求数を更新する更新手段を有し、かつ前記識別情報転送手段は、前記更新の結果、前記要求数が１以上である場合にのみ前記更新された要求数を新たな要求数情報として前記識別情報に含んで、当該識別情報を、前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送することを特徴とする。
【００３３】
上記課題を解決するために、請求項１７に記載の発明は、請求項１５又は請求項１６に記載の第２のノード装置において、前記情報記憶ノード装置から前記判定情報を受信するための待機時間を設定する待機時間設定手段を有し、前記識別情報転送手段及び前記エラー回答手段は、前記待機時間を経過してもなお前記判定情報の返信が無い前記情報記憶ノード装置からは、前記不可情報が受信されたと判断することを特徴とする。
【００３４】
上記課題を解決するために、請求項１８に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムに含まれる情報記憶ノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち、前記複数のノード装置に含まれる第１のノード装置によって特定された共用情報である特定共用情報を記憶する前記情報記憶ノード装置において、前記第１のノード装置から、前記複数のノード装置に含まれる第２のノード装置を介して前記特定共用情報に対応する固有の識別情報を受信して当該情報記憶ノード装置に関する関連情報の送信の指示を受けると、当該受信した識別情報によって示される前記特定共用情報を前記第１のノード装置に送信可能か否かを判定する判定手段と、当該判定の結果、送信可能である場合には、前記第１のノード装置に対して当該情報記憶ノード装置に関する前記関連情報を送信する関連情報送信手段と、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段と、を有することを特徴とする。
【００３５】
上記課題を解決するために、請求項１９に記載の発明は、請求項１８に記載の情報記憶ノード装置において、前記判定手段により送信可能であると判定された場合には可情報を、前記送信不可能であると判定された場合には不可情報を、前記識別情報の送信元である前記第２のノード装置に対してそれぞれ判定情報として返信する判定情報返信手段を有することを特徴とする。
【００３６】
上記課題を解決するために、請求項２０に記載の発明は、請求項１８又は請求項１９に記載の情報記憶ノード装置において、前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含むことを特徴とする。
【００３７】
上記課題を解決するために、請求項２１に記載の発明は、請求項２０に記載の情報記憶ノード装置において、前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする。
【００３８】
上記課題を解決するために、請求項２２に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける前記複数のノード装置に含まれる第１のノード装置に含まれるコンピュータを、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段、前記情報記憶ノード装置から当該情報記憶ノード装置に関する前記関連情報を受信する関連情報受信手段、前記情報記憶ノード装置のうち、前記受信した関連情報に基づいて選定した情報記憶ノード装置に前記特定共用情報の配信を要求する配信要求手段として機能させることを特徴とする。
【００３９】
上記課題を解決するために、請求項２３に記載の発明は、請求項２２に記載の配信要求プログラムにおいて、前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含むものであって、前記配信要求手段を、複数の前記情報記憶ノード装置から前記関連情報を受信した場合には、当該関連情報に含まれる前記通信負荷情報に基づいて通信負荷を比較し、前記通信負荷が相対的に小さい前記通信経路を介して接続された前記情報記憶ノード装置を選定し、当該選定した情報記憶ノード装置に前記特定共用情報の配信を要求するよう機能させることを特徴とする。
【００４０】
上記課題を解決するために、請求項２４に記載の発明は、請求項１０に記載の配信要求プログラムにおいて、前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする。
【００４１】
上記課題を解決するために、請求項２５に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関する関連情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、をそれぞれ対応付けて記憶する記憶手段、前記識別情報を受信して前記特定共用情報の要求を受けると、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段、前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記関連情報を前記第１のノード装置に送信するよう指示すべく前記識別情報を転送する識別情報転送手段として機能させることを特徴とする。
【００４２】
上記課題を解決するために、請求項２６に記載の発明は、請求項２５に記載の転送プログラムにおいて、前記識別情報転送手段を、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置でない場合には、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記受信した識別情報を転送するよう機能させることを特徴とする。
【００４３】
上記課題を解決するために、請求項２７に記載の発明は、請求項２５に記載の転送プログラムにおいて、前記コンピュータを、前記ノード情報検索手段による検索の結果、前記記憶手段に前記識別情報に対応するノード情報が無い場合であって、かつ当該第２のノード装置自身が、前記特定共用情報の管理元である管理ノード装置である場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段として更に機能させることを有することを特徴とする。
【００４４】
上記課題を解決するために、請求項２８に記載の発明は、請求項２５乃至請求項２７のいずれか一項に記載の転送プログラムにおいて、前記コンピュータを、前記情報記憶ノード装置から前記特定共用情報を送信可能か否かを示す判定情報を受信する判定情報受信手段として機能させ、前記判定情報が送信不可能であることを示す不可情報を受信した場合であって、前記第２のノード装置が前記管理ノード装置でない場合には、前記識別情報転送手段を、当該第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して前記識別情報を転送するよう機能させ、前記第２のノード装置が前記管理ノード装置である場合には、前記エラー回答手段を、前記第１のノード装置に対して前記特定共用情報が無いことを回答するよう機能させることを特徴とする。
【００４５】
上記課題を解決するために、請求項２９に記載の発明は、請求項２８に記載の転送プログラムにおいて、前記識別情報は、前記関連情報の要求数を示す要求数情報を含み、前記コンピュータを、前記要求数から前記情報記憶ノード装置から受信した前記可情報の数を減算して前記要求数を更新する更新手段として機能させ、前記識別情報転送手段を、前記更新の結果、前記要求数が１以上である場合にのみ前記更新された要求数を新たな要求数情報として前記識別情報に含んで、当該識別情報を、前記第２のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送するよう機能させることを特徴とする。
【００４６】
上記課題を解決するために、請求項３０に記載の発明は、請求項２８又は請求項２９に記載の転送プログラムにおいて、前記コンピュータを、前記情報記憶ノード装置から前記判定情報を受信するための待機時間を設定する待機時間設定手段として機能させ、前記識別情報転送手段及び前記エラー回答手段を前記待機時間を経過してもなお前記判定情報の返信が無い前記情報記憶ノード装置からは、前記不可情報が受信されたと判断するよう機能させることを特徴とする。
【００４７】
上記課題を解決するために、請求項３１に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムに含まれる情報記憶ノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち、前記複数のノード装置に含まれる第１のノード装置によって特定された共用情報である特定共用情報を記憶する前記情報記憶ノード装置に含まれるコンピュータを、前記第１のノード装置から、前記複数のノード装置に含まれる第２のノード装置を介して前記特定共用情報に対応する固有の識別情報を受信して当該情報記憶ノード装置に関する関連情報の送信の指示を受けると、当該受信した識別情報によって示される前記特定共用情報を前記第１のノード装置に送信可能か否かを判定する判定手段、当該判定の結果、送信可能である場合には、前記第１のノード装置に対して当該情報記憶ノード装置に関する前記関連情報を送信する関連情報送信手段、前記第１のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第１のノード装置に対して前記特定共用情報を配信する配信手段として機能させることを特徴とする。
【００４８】
上記課題を解決するために、請求項３２に記載の発明は、請求項３１に記載の配信プログラムにおいて、前記コンピュータを、前記判定手段により送信可能であると判定された場合には可情報を、前記送信不可能であると判定された場合には不可情報を、前記識別情報の送信元である前記第２のノード装置に対してそれぞれ判定情報として返信する判定情報返信手段として機能させることを特徴とする。
【００４９】
上記課題を解決するために、請求項３３に記載の発明は、請求項３２又は請求項３３に記載の配信プログラムにおいて、前記関連情報は、前記ネットワークにおける通信経路の負荷に関する通信負荷情報を含むことを特徴とする。
【００５０】
上記課題を解決するために、請求項３４に記載の発明は、請求項３３に記載の配信プログラムにおいて、前記通信負荷情報は、ＩＰパケット中のＴＴＬ（Time To Live）フィールドであることを特徴とする。
【００５１】
上記課題を解決するために、請求項３５に記載の発明は、請求項２２乃至請求項３４に記載の配信要求プログラム、転送プログラム又は配信プログラムの何れかのプログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【発明の効果】
【００５２】
本発明によれば、リクエストノードがコンテンツを記憶するコンテンツノード等の情報記憶ノード装置に対してコンテンツの配信要求をする際に、リクエストノードは、複数の情報記憶ノード装置から当該情報記憶ノード装置に関する関連情報を受信し、当該複数の情報記憶ノード装置からの関連情報に基づいて配信に最適な情報記憶ノード装置を選定して、当該選定された情報記憶ノード装置に対して配信要求を行なうよう構成したので、適切な情報記憶ノード装置から共用情報の配信を受けることが可能になる。
【発明を実施するための最良の形態】
【００５３】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００５４】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００５５】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００５６】
図１の下部枠１０１内に示すように、ＩＸ（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」である。
【００８５】
図５において、リクエストノードからコンテンツＩＤ「31330012」を有するコンテンツデータを管理するノード装置１−５（すなわちルートノード）に至る経路を実線矢印で表すが、この経路の途中のノード装置1−４を、当該ルートノードが記憶しているインデックス情報をキャッシュとして保持するキャッシュノードとする。
【００８６】
まず、リクエストノードは、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対してコンテンツ問い合わせ情報（以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。）を送信する。
【００８７】
ここで、リクエストノードが送信するクエリについて説明する。
【００８８】
クエリには、所望のコンテンツを示すコンテンツＩＤ「31330012」だけでなく、当該リクエストノードのＩＰアドレス情報と、コンテンツノードの関連情報をいくつ要求するかを示す要求数情報も含まれる。すなわち、同一のコンテンツデータがコンテンツ配信システムＳの中に複数個存在する場合が考えられるが、このような場合、リクエストノードは、コンテンツ配信を要求する際に、所望のコンテンツを保持する複数のコンテンツノードの中から配信に最適な１つのコンテンツノードを選び出し（選定）、当該選定された１つのコンテンツノードに対して配信を要求するよう構成されている。
【００８９】
このとき、リクエストノードにて１つのコンテンツノードを選び出す際の基準となるものが、コンテンツノードの関連情報に含まれる通信負荷情報である。この通信負荷情報は、一例としてリクエストノードとコンテンツノードとの間の通信経路（ネットワーク）のネットワーク的距離の近さを示す情報（例えばＩＰパケット中のＴＴＬ（Time To Live）フィールドが元の値からいくつ減るか等）が挙げられる。
【００９０】
このように、リクエストノードは、所望のコンテンツを示すコンテンツＩＤだけでなく、リクエストノードのＩＰアドレス情報と、コンテンツノードの関連情報を要求する数を示す要求数情報も一緒にクエリに含めて送信し、当該要求数に応じた数の複数のコンテンツノードから受信した関連情報に基づいて、より具体的には、関連情報に含まれるＴＴＬ減少量等の通信負荷情報に基づいて選定した１つのコンテンツノードに対してコンテンツの配信を要求するよう構成する。
【００９１】
なお、以下に図５を用いて説明するコンテンツデータの検索手法においては、ネットワーク上をクエリが転送されることでコンテンツデータを見つけ出すことができることをわかりやすく説明するため、上記要求数は「２」であって、発見されたコンテンツデータが何れも配信可能に各コンテンツノードに保持されているものとして説明する。
【００９２】
まず、リクエストノードは、自己が保持しているルーティングテーブルのレベル１のテーブルを参照して、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対して要求数を「２」とする要求数情報を含むクエリを送信する。つまり、コンテンツＩＤ「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）ノード装置１-２に対してクエリを送信する。
【００９３】
図５に示す例に拠れば、ノードＩＤが「30100000」であるノード装置１-２のＩＰアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードＩＤが「30100000」であるノード装置１-２に対してクエリを送信する。
【００９４】
次に、クエリを受信したノード装置１-２は、当該ノード装置１-２自身が保持しているインデックス情報を参照して、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認し、無い場合には、当該ノード装置１-２自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１-３（ノードＩＤ「31012001」）に対してクエリを転送する。
【００９５】
このように、上流のノード装置、すなわち自己とルートノードの中間に介在するノード装置に対してクエリを転送し、コンテンツＩＤの桁を上から順に適合していく要領でルートノードへ近づいていく。
【００９６】
そして、ノード装置１-２からクエリを受信したノード装置１-３は、当該ノード装置１-３自身が保持しているインデックス情報を参照して、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認する。無い場合には、当該ノード装置１-３自身が保持しているルーティングテーブルのレベル３のテーブルを参照して、「313XXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１-４（ノードＩＤ「31320100」）に対してクエリを転送する。
【００９７】
そして、ノード装置１-３からクエリを受信したノード装置１-４は、当該ノード装置１-４自身が保持しているインデックス情報を参照して、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認する。ノード装置１−４は、上記キャッシュノードであるため、コンテンツノードの情報を少なくとも一つは取得することができる。そして、当該コンテンツノード（ノード装置１-６）に対してリクエストノードに関連情報を送信するよう指示する指示情報を付加したクエリを転送し、当該コンテンツノードから配信可能情報を受信した上で、クエリに含まれる要求数情報を要求数が「２」から「１」となるように更新する。そして、当該ノード装置１-４自身が保持しているルーティングテーブルのレベル４のテーブルを参照して、「3133XXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１-５すなわちルートノードに対して更新後の要求数情報を含むクエリを転送する。なお、要求数情報は、要求数の他に、更新履歴として、クエリ転送済みコンテンツノードのＩＰアドレス情報、大元のリクエスタが出した要求数（これは更新されない）を含む。元の要求数と現在の要求数が異なっていれば、更新を経験したクエリであることが分かる。
【００９８】
最終的に当該コンテンツデータを管理するノード装置1−５、すなわちルートノードに辿り着くと、当該ルートノードは、クエリに含まれるコンテンツＩＤ「31330012」を元に自身が管理しているインデックス情報を検索し、未だクエリが送信されていないコンテンツノードであって、コンテンツＩＤ「31330012」に対応するコンテンツノードの情報の有無を確認する。そして、コンテンツノード（ノード装置１-７）を発見すると、当該コンテンツノードに対してリクエストノードに関連情報を送信するよう指示する指示情報を付加したクエリを転送する。
【００９９】
そして、クエリを受信したコンテンツノード（ノード装置１-６及びノード装置１-７）のそれぞれからリクエストノードに向けて関連情報が図５中一点鎖線で示す如く送信する。リクエストノードでは、受信した関連情報に含まれるＩＰパケット中のＴＴＬ（Time To Live）フィールドの減少量等の通信負荷情報に基づいてコンテンツノードを選定し、該コンテンツノード（図５に示す例に拠ればノード装置１-６）に対してコンテンツの配信を要求する配信要求を図５中破線矢印で示す如く送信する。
【０１００】
このように、確実に存在していることを、関連情報を受信することで確認した上で配信要求を行なうことができ、更にコンテンツ配信システムＳ中に任意のコンテンツを有するコンテンツノードが複数存在している場合にも適用できる。
【０１０１】
更には、複数のコンテンツノードの関連情報を要求することで（要求数を複数とする）、当該複数のコンテンツノードの中から送信された各関連情報を比較してより適切なコンテンツノードを１つ選択して送信することができる。
【０１０２】
［１−４．コンテンツデータの登録方法］
このような構成のコンテンツ配信システムＳの中で、例えば、あるノード装置１が新しいコンテンツデータを、コンテンツ配信システムＳ上の他のノード装置に見えるように公開する際の手法について述べる。このノード装置１がコンテンツを保持する（記憶する）情報記憶ノード装置としてのコンテンツノードとなる。
【０１０３】
当該コンテンツノードは、コンテンツのタイトル等からコンテンツＩＤを求め、当該コンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）公開メッセージを送信する。そして、この公開メッセージも、上記クエリと同様にルーティングテーブルに従って、次々と転送されていき、当該公開メッセージに含まれるコンテンツＩＤに最も近いノードＩＤを有するノード装置１まで転送されたところで、そのノード装置１はもはや送信先のノード装置が他にないと判断すると、当該ノード装置１自身がそのコンテンツのルートノードとなるべきだと判断し、当該コンテンツＩＤ、補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）及びコンテンツノードのＩＰアドレスをインデックス情報として記憶する。
【０１０４】
［２．ノード装置の構成等］
次に、図６を参照して、ノード装置１の構成及び機能について説明する。尚、各ノード装置１は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第1のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第２のノード装置としてのキャッシュノード、当該コンテンツを管理する第２のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
【０１０５】
図６は、ノード装置１の概要構成例を示す図である。
【０１０６】
各ノード装置１は、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、上記コンテンツデータ、上記インデックス情報、上記ＤＨＴ及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０はバス２２を介して相互に接続されている。
【０１０７】
そして、制御部１１におけるＣＰＵが記憶部１２等に記憶された各種プログラムを実行することにより、第１のノード装置としてのリクエストノード、第２のノード装置としてのキャッシュノード、第２のノード装置及び管理ノード装置としてのルートノード、情報記憶ノード装置としてのコンテンツノードとしてノード装置１全体を統括制御するようになっている。
【０１０８】
そして、ノード装置１がリクエストノードとして機能する際には、当該制御部１１は、識別情報送信手段、関連情報受信手段及び配信要求手段として機能し、ノード装置１がキャッシュノード或いはルートノードとして機能する際には、当該制御部１１は、記憶手段、ノード情報検索手段、識別情報転送手段及び待機時間設定手段として機能し、ノード装置１がコンテンツノードとして機能する際には、当該制御部１１は、判定手段、関連情報送信手段、配信手段及び判定情報返信手段として機能する。
【０１０９】
［３．コンテンツ配信システムの動作］
次に、コンテンツ配信システムＳの各ノード装置の動作について説明する。
【０１１０】
ここでは、リクエストノードがコンテンツ配信要求を行なう際のそれぞれのノードで行なわれる処理について詳細に説明するが、上述したように、コンテンツ配信システムＳに含まれる全てのノード装置１は、リクエストノード、キャッシュノード、ルートノード、コンテンツノード、或いは経路上のノード等、その他のノード等、何れのノード装置にもなり得る。
【０１１１】
例えば、ユーザがノード装置１に備えられた入力部２１を操作することによって、特定共用情報としての所望のコンテンツデータの所在の問い合わせが指示されると、当該ノード装置１が第1のノード装置としてのリクエストノードとして機能する。また、当該リクエストノードや中間に介在するノード装置からクエリを受信してコンテンツデータの所在の問い合わせがされたノード装置１は、キャッシュノード、ルートノード等として機能し、また、ルートノード又はキャッシュノードから関連情報をリクエストノードに送信するよう指示する指示情報を付加したクエリを受信した場合にはコンテンツノードとして機能する。
【０１１２】
以下に、それぞれのノードとして機能する際にノード装置１で行なわれる処理について図７乃至図１２を用いて詳細に説明する。
【０１１３】
［３−１．リクエストノードの処理］
先ず、図７及び図８を用いてリクエストノードの処理について説明する。
【０１１４】
図７は各ノードのリクエストノードがコンテンツ配信要求を行なう際の、各ノードの間の各種情報の授受の一例をスパニングツリー状に表した説明図である。この図で、中間ノードとは、注目しているコンテンツに対して有効なインデックス情報を持たないノードであり、キャッシュノードとはそれを持つノードである。
【０１１５】
図８は、リクエストノードの制御部１１に記憶された配信要求プログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１１６】
まず、ユーザが入力部２１を操作することにより、特定共用情報としての所望のコンテンツのタイトル等を入力して当該コンテンツを保持するコンテンツノードの関連情報を要求する。この際、要求する関連情報の要求数も共に入力される。
【０１１７】
このように、所望のコンテンツデータの所在の問い合わせが行われると、制御部１１は識別情報送信手段として機能し、当該コンテンツのタイトル等をハッシュ化して当該コンテンツデータを示すコンテンツＩＤ（特定共用情報に対応する固有の識別情報）を生成すると共に、当該生成されたコンテンツＩＤと、リクエストノードのＩＰアドレス情報と、上記入力部２１によって入力された要求数を示す要求数情報と、を含むクエリを、記憶部１２に記憶したルーティングテーブルを参照して他のノード装置１に送信する（ステップＳ１）。当該他のノード装置１の選択手法は、上述した「１．３コンテンツデータの検索方法」にて詳細に説明した手法に拠る。図７に示す例によれば、先ずキャッシュノードでもルートノードでもない中間ノードにクエリが送信されている。なお、この例では要求数は３とした。
【０１１８】
また、ステップＳ１にてクエリが送信されると、後に各コンテンツノードから送信される関連情報を記憶すべく、記憶部１２に候補リストの準備をする。なお、候補リストについては、ステップＳ９の処理において詳細に説明する。
【０１１９】
続いて、装置内に具備する内蔵時計等を使用して、時間測定を開始する（ステップＳ２）。
【０１２０】
その後、他のノード装置から何らかの情報を受信したか否かを判定（ステップＳ３）し、受信していない場合（ステップＳ３：受信なし）には、ステップＳ４に移行して所定の待機時間（例えば、１０秒など）が経過したか否かを判定し、経過している場合（ステップＳ４：Ｙｅｓ）にはステップＳ８に移行し、経過していない場合（ステップＳ４：Ｎｏ）には、ステップＳ３に移行して、情報の受信を待機する。
【０１２１】
一方、ステップＳ３にて受信した情報がルートノードからのエラー回答である場合（ステップＳ３：ルートノードからエラー回答）には、「指定のコンテンツは見つかりませんでした」等のメッセージを表示部１６に表示させる等、所定のコンテンツノード発見不可処理を行ない（ステップＳ５）処理を終了する。
【０１２２】
他方、ステップＳ３にて受信した情報がコンテンツノードからの関連情報である場合（すなわち、制御部１１は関連情報受信手段として機能した場合）（ステップＳ３：コンテンツノードから関連情報）、には、当該関連情報を記憶部１２の候補リストに追加（ステップＳ６）する。図７に示す例によれば、コンテンツノードＢ、コンテンツノードＣ及びコンテンツノードＤからそれぞれ関連情報を受信している。
【０１２３】
そして、記憶部１２に記憶した候補リストを参照して、当該候補リストに記憶された関連情報がステップＳ１でクエリを送信する際に入力した要求数分だけ存在するか否かを判定（ステップＳ７）し、関連情報が要求数に満たない場合（ステップＳ７：Ｎｏ）には、ステップＳ４に移行して応答待機時間内である間（すなわち、ステップＳ４：Ｎｏ）は情報の受信を待機し、関連情報が要求数以上ある場合（ステップＳ７：Ｙｅｓ）には、ステップＳ８に移行する。
【０１２４】
そして、ステップＳ８において、記憶部１２の候補リストに一つでも関連情報があるか否かを判定（ステップＳ８）し、候補リストに一つも関連情報が無い場合（ステップＳ８：Ｎｏ）には、ステップＳ５に移行して所定のコンテンツノード発見不可処理を行ない（ステップＳ５）処理を終了する。なお、このような事態は、ステップＳ３にてルートノード及びコンテンツノードの双方から何も情報を受信することなく所定の応答待機時間が経過した場合に生じる。
【０１２５】
また、ステップＳ８において、候補リストに一つでも関連情報がある場合（ステップＳ８：Ｙｅｓ）には、当該候補リストに記憶されている関連情報を比較して最も適切なコンテンツノードを選定（ステップＳ９）する。
【０１２６】
ここで、リクエストノードの記憶部１２に記憶されている候補リストの一例を図９に示す。同図は、図７に示す例のように、コンテンツＢ乃至コンテンツＤの３つのコンテンツノードから関連情報を受信した場合に記憶部１２に生成された候補リストである。
【０１２７】
コンテンツノードは、ＩＰパケット中のＴＴＬフィールドに初期値として２５６を設定して送信するという規則にしておく。図７の例では、コンテンツノードＢから受信した関連情報ｂに含まれる通信負荷情報としてのＴＴＬが「７９」まで減少しており、コンテンツノードＣの関連情報ｃに含まれる通信負荷情報としてのＴＴＬは「３２」にまで減少しており、コンテンツノードＤの関連情報ｄに含まれる通信負荷情報としてのＴＴＬが「１５６」までしか減少していないため、リクエストノードとの間で最もルータ等の中継数が少ないコンテンツノードは、関連情報ｃで示されるコンテンツノードＣであることがわかる。
【０１２８】
従って、コンテンツノードＢ乃至Ｄのうち、ネットワーク的に通信負荷が小さいコンテンツノードは関連情報ｃで示すコンテンツノードＣであると判断でき、ステップＳ９の処理において、リクエストノードは、コンテンツノードＣを選定することとなる。
【０１２９】
そして、制御部１１は配信要求手段として機能し、当該選定されたコンテンツノードに対して配信要求を行ない（ステップＳ１０）処理を終了する。より具体的には、関連情報ｃに含まれるコンテンツノードＣのＩＰアドレス「131．31．75．100」を取得して当該ＩＰアドレスを宛先として図７に破線矢印で示す如くコンテンツノードＣに対して配信要求を行なう。
【０１３０】
［３−２．キャッシュノード及びルートノードの処理］
次に、図７、図１０及び図１１を用いてキャッシュノード及びルートノードの処理について説明する。図１０は、キャッシュノード或いはルートノードの制御部１１に記憶された転送プログラムが当該制御部１１により実行されることにより行われる転送処理を示すフローチャートである。図１１は、記憶部１２に記憶されたインデックス情報の一例である。
【０１３１】
そして、当該処理はリクエストノードや、キャッシュノードを含むコンテンツ配信システムＳ内の他のノード装置から送信されたクエリを受信したことにより開始される。なお、このクエリは、関連情報をリクエストノードに送信するよう指示する指示情報が付加されていないクエリであって、当該指示情報が付加されている場合には、コンテンツノードであるため次に説明する「３−３．コンテンツノードの処理」に従う。
【０１３２】
まず、制御部１１は、ノード情報検索手段として機能し、受信したクエリに含まれる識別情報としてのコンテンツＩＤを認識して、当該コンテンツＩＤに対応するコンテンツノードの情報（ノード情報としてのコンテンツノードのＩＰアドレスやタイトル等の補助情報）を、自己の記憶部１２に記憶したインデックス情報の中から検索する（ステップＳ２１）。
【０１３３】
そして、コンテンツＩＤに対応するコンテンツノードの情報が発見されたか否かを判定（ステップＳ２１）し、発見されなかった場合（ステップＳ２２：Ｎｏ）には、自身がルートノードであるか否かを判定（ステップＳ２３）し、自身がルートノードでない場合（ステップＳ２３：Ｙｅｓ）には、クエリを上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送（ステップＳ２４）して処理を終了する。なお、クエリを転送する際には、関連情報をリクエストノードに送信するよう指示する指示情報は付加しない。図７に示す例に拠れば、中間ノードからキャッシュノードへとクエリが転送されている。
【０１３４】
一方、ステップＳ２３の判定において、自身がルートノードである場合（ステップＳ２３：Ｎｏ）には、リクエストノードから、クエリが転送されて来る間に、１つでも関連情報がリクエストノードに送信されているか否かを判定（ステップＳ２５）する。
【０１３５】
例えば、関連情報が１つでも送信されている場合には、後のステップＳ３０の処理にて説明するように、クエリに含まれる要求数情報が更新されるため、当該要求数情報の更新を行なう際に、当該要求数情報に更新履歴の有無がわかる情報を付加する。この目的のために、要求数情報には、要求数の他に、大元のリクエスタが出した要求数（これは更新されない）が含まれており、元の要求数と現在の要求数が異なっていれば、過去に更新があったクエリであることが分かる。ステップＳ２５において、受信したクエリに含まれる要求数情報に更新履歴が無く、１つもリクエストノードに関連情報が送信されていないと判定した場合（ステップＳ２５：Ｙｅｓ）には、制御部１１はエラー回答手段として機能し、エラー回答をリクエストノードに送信（ステップＳ２６）して処理を終了する。他方、受信したクエリに含まれる要求数情報に更新履歴が有る場合、すなわち、少なくとも１つはリクエストノードに関連情報が送信されている場合（ステップＳ２５：Ｎｏ）には処理を終了する。
【０１３６】
また、ステップＳ２２の処理において、コンテンツＩＤに対応するコンテンツノードの情報が記憶部１２のインデックス情報からｎ個発見された場合（ステップＳ２２：Ｙｅｓ）には、制御部１１は識別情報転送手段として機能し、ｎ個のコンテンツノードに当該コンテンツノードにクエリを転送する（ステップＳ２７）。このとき、記憶部１２から要求数以下のコンテンツノードの情報が見つかった場合は、見つかった全てのコンテンツノードにクエリ転送を行なう。要求数より多くのコンテンツノードの情報が見つかった場合は、任意のノードを要求数分選んでクエリ転送を行なう。
【０１３７】
図１１に示す例に基づいて具体的に説明すると、クエリに含まれるコンテンツＩＤが「12021101」である場合には、記憶部１２のインデックス情報から当該コンテンツＩＤに対応するコンテンツノードに係る情報（コンテンツノードのＩＰアドレスやタイトル等の補助情報）が２つ発見される。要求数が２以上である場合は、ステップＳ２７において当該発見されたコンテンツノードのノード情報としてのＩＰアドレス「131．31．75．100」と「255．62．14．102」の双方に対してクエリが転送されることとなる。もし要求数が１である場合は、任意に選んだ１つのノードにクエリを転送する。なお、コンテンツノードにクエリを転送する際には、関連情報をリクエストノードに送信するよう指示する指示情報が付加した後に転送を行なうものとする。コンテンツノードに対して、自己がコンテンツノードとしてクエリを受信したということを確実に認識させるためである。（代わりに、リクエストノードが出すクエリと、キャッシュノード及びルートノードがコンテンツノードに対して出すクエリで、メッセージ種別を変えても良い。）図１１と図７に示す例に拠れば、要求数が３なので、ＩＰアドレスが「255．62．14．102」であるコンテンツノードＡと、ＩＰアドレスが「131．31．75．100」であるコンテンツノードＢに対してクエリが転送される。
【０１３８】
続いて、制御部１１は待機時間設定手段として機能し、コンテンツノードからの判定情報（可情報としての配信可能情報又は不可情報としての配信不可情報）を待機する待機時間を設定すると共に装置内に具備する内蔵時計等を使用して、時間測定を開始する（ステップＳ２８）。
【０１３９】
その後、コンテンツノードから判定情報を受信したか否かを判定し（ステップＳ２９）、可情報としての配信可能情報を受信した場合（ステップＳ２９：配信可能情報）には、制御部１１は更新手段として機能し、クエリに含まれる要求数情報によって示される要求数から「１」を引いた値を新たな要求数とするよう要求数情報を更新（ステップＳ３０）し、ステップＳ３１に移行する。
【０１４０】
そして、ステップＳ２９にてコンテンツノードから配信不可情報を受信した場合、或いはステップＳ３０における更新が行われた後に、ステップＳ２７でクエリを転送したｎ個のコンテンツノード全てから何らかの返答があったか否かを確認するため、情報をｎ個受信したか否かを判定する（ステップＳ３１）。そして、判定の結果まだｎ個の情報を受信していない場合（ステップＳ３１：Ｎｏ）には、ステップＳ３３に移行し、他方、ｎ個の情報を受信済みである場合（ステップＳ３１：Ｙｅｓ）には、ステップＳ３２に移行してステップＳ３０における更新の結果、要求数が１以上か否かを判定（ステップＳ３２）し、要求数が１以上で無い場合（すなわち要求数が０である。）（ステップＳ３２：Ｎｏ）には処理を終了する。
【０１４１】
他方、ステップＳ３０の更新の結果、要求数が１以上である場合（ステップＳ３２：Ｙｅｓ）には、当該更新後の要求数を新たな要求数情報としてクエリに含んだ後にステップＳ３４に移行する。なお、更新の際には配信可能情報の送信元であるコンテンツノードのＩＰアドレス等のノード情報を要求数情報に付加するものとする。すなわち、クエリを上流のノード装置に転送する際に、上流のノード装置に対して同一のコンテンツノードを検索対象から除外するよう指示するためである。図７に示す例に拠れば、コンテンツノードＢはキャッシュノードに対して配信可能情報を送信しているが、コンテンツノードＡはキャッシュノードに対して配信不可情報を送信しているので、キャッシュノードは要求数から「１」を引いて、要求数情報を更新すると共に、配信可能情報を送信した送信元であるコンテンツノードＢのＩＰアドレス「131．31．75．100」を付加して送信する。
【０１４２】
一方、ステップＳ２９にてコンテンツノードから配信可能情報又は配信不可情報のうちいずれの情報も受信していない場合（ステップＳ２８：受信なし）、及びステップＳ３１でｎ個の情報をまだ受信していないと判定された場合（ステップＳ３１：Ｎｏ）には、ステップＳ３３に移行して所定の待機時間（例えば、５秒など）が経過したか否かを判定し、経過している場合（ステップＳ３３：Ｙｅｓ）にはステップＳ３４に移行し、経過していない場合（ステップＳ３３：Ｎｏ）には、ステップＳ２９に移行して、情報の受信を待機する。
【０１４３】
そして、ステップＳ３２にて要求数がまだ１以上あると判定された場合、或いはステップＳ３３にて待機時間が経過してしまった場合には、自身がルートノードであるか否かを判定（ステップＳ３４）し、ルートノードでない場合（ステップＳ３４：Ｎｏ）には、クエリを上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送（ステップＳ３５）して処理を終了する。この際には、関連情報をリクエストノードに送信するよう指示する指示情報は付加しない。
【０１４４】
他方、自身がルートノードである場合（ステップＳ３４：Ｙｅｓ）には、リクエストノードから、クエリが転送されて来る間に、１つでも関連情報がリクエストノードに送信されているか否かを、クエリに含まれる要求数情報の更新履歴の有無の情報等に基づいて判定（ステップＳ３６）する。そして、少なくとも１つはリクエストノードに関連情報が送信されている場合（ステップＳ３６：Ｎｏ）には処理を終了し、他方、１つもリクエストノードに関連情報が送信されていないと判定した場合（ステップＳ３６：Ｙｅｓ）には、エラー回答をリクエストノードに送信（ステップＳ３７）して処理を終了する。
【０１４５】
［３−３．コンテンツノードの処理］
次に、図７及び図１２を用いてコンテンツノードの処理について説明する。図１２は、コンテンツノードの制御部１１に記憶された配信プログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１４６】
そして、当該処理はルートノードやキャッシュノードから送信されたクエリを受信したことにより開始される。なお、このクエリは、関連情報をリクエストノードに送信するよう指示する指示情報が付加されているクエリであって、当該指示情報が付加されていない場合には、前述した「３−２．ルートノード及びキャッシュノードの処理」に従う。
【０１４７】
まず、クエリに含まれるコンテンツＩＤに対応するコンテンツデータを配信可能であるか否かを確認する（ステップＳ４１）。より具体的には、自己の記憶部１２に受信したクエリに含まれるコンテンツＩＤに対応するコンテンツデータが在るか否かを先ず確認する。コンテンツが既に消滅している場合も考えられるからである。次に、コンテンツデータがあれば、更に当該コンテンツデータをリクエストノードに配信可能か否かを確認する。当該コンテンツを他のノード装置に配信中であるなどの場合には、当該コンテンツノードの性能が低いと、リクエストノードに円滑に配信することが困難な場合も考えられるからである。
【０１４８】
そして、制御部１１は判定手段として機能し、コンテンツデータを配信可能か否かを判定し（ステップＳ４２）、判定の結果、コンテンツデータを配信不可と判定した場合（ステップＳ４２：Ｎｏ）には、制御部１１は判定情報返信手段として機能し、クエリを当該コンテンツノードに送信してきた送信元であるルートノード或いはキャッシュノードに不可情報としての配信不可情報を送信（返信）（ステップＳ４３）して処理を終了する。図７に示す例に拠れば、コンテンツノードＡはキャッシュノードに配信不可情報を送信している。
【０１４９】
一方、ステップＳ４２の判定の結果、コンテンツデータを配信可能と判定した場合（ステップＳ４２：Ｙｅｓ）には、制御部１１は判定情報返信手段として機能し、クエリを当該コンテンツノードに送信してきた送信元であるルートノード或いはキャッシュノードに可情報としての配信可能情報を送信（返信）（ステップＳ４４）する。図７に示す例に拠れば、コンテンツノードＢはキャッシュノードに配信可能情報を送信し、コンテンツノードＣ及びＤはルートノードに配信可能情報を送信（返信）している。
【０１５０】
すなわち、クエリを当該コンテンツノードに送信してきた送信元であるルートノード或いはキャッシュノードに対して判定情報としての配信不可情報或いは配信可能情報を返信することで、当該送信元であるルートノード或いはキャッシュノードに後のステップＳ４６の処理にてコンテンツノードから関連情報がリクエストノードに送られたか否かを認識させることができる。
【０１５１】
続いてステップＳ４５の処理において、コンテンツノード自身のＩＰアドレス情報に基づいてリクエストノードに送信する関連情報を生成（ステップＳ４５）する。
【０１５２】
そして、制御部１１は関連情報送信手段として機能し、生成した関連情報を、ＴＴＬの値を既定値（例えば２５６）にして、リクエストノードに送信（ステップＳ４６）する。図７に示す例に拠れば、コンテンツノードＢ乃至コンテンツノードＤがリクエストノードに関連情報を送信している。
【０１５３】
続いて、リクエストノードから、配信要求を受信したか否かを判定し（ステップＳ４７）、配信要求を受信した場合（ステップＳ４７：Ｙｅｓ）には、制御部１１は配信手段として機能し、コンテンツＩＤに対応するコンテンツデータをリクエストノードに配信（ステップＳ４８）して処理を終了し、他方、配信要求を受信していない場合（ステップＳ４７：Ｎｏ）には、リクエストノードに選定されなかったと判断できるため、処理を終了する。
【０１５４】
なお、ステップＳ４６において関連情報をリクエストノードに送信した後に、待機時間を設定し、所定の時間が経過してもなおリクエストノードから、配信要求を受信していない場合には、ステップＳ４７で配信要求を受信していないものとすればよい。
【０１５５】
以上説明したように、本実施形態によれば、リクエストノードからコンテンツデータの所在の問い合わせを行なう際に、リクエストノードは、複数のコンテンツノードの関連情報を受信し、それから当該複数のコンテンツノードからの関連情報に基づいて配信に最適な１のコンテンツノードを選定して、当該選定されたコンテンツノードに対して配信要求を行なうよう構成したので、コンテンツノードが確実に存在していることを、関連情報を受信して確認した上で配信要求を行なうことができる。
【０１５６】
更に、複数のコンテンツノードがある場合であっても適用することができ、特に要求数を複数設定した場合には、複数のコンテンツノードの中から関連情報を比較してより適切なコンテンツノードから配信を受けることができる。
【０１５７】
また、ルートノードでコンテンツを発見できない場合には、リクエストノードに対してエラー回答を送信するよう構成したので、リクエストノードではコンテンツ配信システムＳ上に所望のコンテンツが無いことを容易に把握することが可能になる。
【０１５８】
さらに、コンテンツノードにて、所望のコンテンツを配信できるか否かを判定するよう構成し、配信できない場合には、配信不可情報をクエリの送信元であるルートノード或いはキャッシュノードに送信するよう構成したので、クエリの送信元であるルートノード或いはキャッシュノードが、コンテンツノードがコンテンツを配信できないことを認識できるため、クエリの送信元がルートノードであれば、リクエストノードにエラー回答を送信することによりリクエストノードではコンテンツ配信システムＳ上に所望のコンテンツが無いことを容易に把握することが可能になり、他方、クエリの送信元がキャッシュノードであれば、更に上流のノード装置すなわち、ルートノードとの間に介在するノード装置に対してクエリを転送することができコンテンツの検索を続行することが可能になる。
【０１５９】
また、リクエストノードにて要求数を自由に設定してコンテンツＩＤを含むクエリに含んで送信するよう構成したので、当該クエリを転送する際に、ルートノード或いはキャッシュノードでは、コンテンツノードから配信可能情報を受信した数を減算して要求数を更新して転送することができるため、リクエストノードは、リクエストノードが要求する数の関連情報を取得することが可能になる。従って、関連情報の要求数を多く設定すれば、検索範囲が広がり、より適切なコンテンツノードを選定できるという利点があり、関連情報の要求数を少なく設定すれば、検索範囲が狭くなるので、より迅速に１つのコンテンツノードを選定できるという利点があるので、リクエストノードのユーザが用途に応じて設定を変えることができる。
【０１６０】
また、ルートノード或いはキャッシュノードの処理におけるステップＳ２８及びＳ３２において、待機時間を設定し、一定の時間が経過すると、コンテンツノードから配信不可情報を受信したものと同様の処理を行なうよう構成したので、コンテンツノードが完全にダウンしている場合など、何らかのトラブルが生じた場合でも適切に処理を行なうことができる。
【０１６１】
さらに、コンテンツノードでは、関連情報としてネットワークにおける通信経路の負荷を判断するためのＴＴＬ等の通信負荷情報をリクエストノードに送信するため、リクエストノードで当該通信負荷情報に基づいて各コンテンツノードの通信負荷を比較し、通信負荷が相対的に小さい通信経路を介して接続されたコンテンツノードを選定することが可能になり、コンテンツノードからリクエストノードにコンテンツを配信する際に小さい負荷で配信でき、かつ、システム全体の通信負荷の低減を図ることが可能になる。
【図面の簡単な説明】
【０１６２】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図５】本実施形態におけるＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図６】ノード装置１の概要構成例を示す図である。
【図７】各ノード間の各種情報の授受をスパニングツリー状に表した説明図である。
【図８】リクエストノードの制御部１１における処理を示すフローチャートである。
【図９】リクエストノードの記憶部１２に記憶されている候補リストの一例である。
【図１０】キャッシュノード或いはルートノードの制御部１１における処理を示すフローチャートである。
【図１１】キャッシュノードの記憶部１２に記憶されたインデックス情報の一例である。
【図１２】コンテンツノードの制御部１１における処理を示すフローチャートである。
【符号の説明】
【０１６３】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
Ａ，Ｂ、Ｃ、Ｄ  コンテンツノード
ｂ、ｃ、ｄ  関連情報
【図１】
2006195744.tif 000003
【図２】
2006195744.tif 000004
【図３】
2006195744.tif 000005
【図４】
2006195744.tif 000006
【図５】
2006195744.tif 000007
【図６】
2006195744.tif 000008
【図７】
2006195744.tif 000009
【図８】
2006195744.tif 000010
【図９】
2006195744.tif 000011
【図１０】
2006195744.tif 000012
【図１１】
2006195744.tif 000013
【図１２】
2006195744.tif 000014