説明

ノード装置、情報通信システム、情報通信方法及びプログラム

【課題】本発明は、IPv4とIPv6とが共存するネットワーク環境であっても、P2Pシステムを動作させることを目的とする。
【解決手段】
本実施形態では、オーバーレイネットワークが2種類ある。図2に示すように、第1オーバーレイネットワークPWと、第2オーバーレイネットワークPLである。第1オーバーレイネットワークPWは、IPv4により通信可能なノード装置のいずれかから構成される。また、第2オーバーレイネットワークPLは、IPv6により通信可能なノード装置のいずれかから構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))方式の通信システムの技術分野に関する。
【背景技術】
【0002】
近年、特許文献1に開示されているようなピアツーピア方式の通信システムが注目されている。ピアツーピア方式の通信システムは、現在のコンテンツ配信における主流形態であるサーバクライアント方式に変わる新しい形態として注目されている。このピアツーピア方式の通信システムでは、センターのサーバ装置に対するコンテンツの要求が集中しない。そのため、サーバクライアント方式に比して、短時間でコンテンツを取得することが可能となる。具体的には、特許文献1には、ソフトウェアを単位としたグループごとに、複数のDHT(Distributed Hash Table)ルーティングテーブルが生成される技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−217135号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、IPv4(Internet Protocol Version 4)のアドレス資源の枯渇に伴い、IPv6(Internet Protocol Version 6)への移行が進みつつある。IPv4からIPv6へ移行する過程において、IPv4とIPv6との両方のプロトコルが、ネットワークに共存することが考えられる。IPv4とIPv6とが共存するネットワーク環境でP2P(Peer to Peer)型のシステムが動作する場合、P2Pシステムに接続するノード装置に、夫々異なるプロトコルが割り当てられる。例えば、ある第1ノード装置にIPv4が割り当てられ、第1ノード装置と異なる第2ノード装置にIPv6が割り当てられる。この場合、第1ノード装置と第2ノード装置とがP2Pによりデータ通信を行うと、プロトコルが異なるため通信できず、P2Pシステムを動作させることができなかった。
【0005】
本発明は、以上の点に鑑みてなされたものである。本発明は、IPv4とIPv6とが共存するネットワーク環境であっても、P2Pシステムを動作させることが可能なノード装置、情報通信システム、情報通信方法及びプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムであって、前記ノード装置は、前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との少なくとも何れか一方を取得するプロトコル取得部と、前記プロトコル取得手段により取得されたプロトコルが、IPv4であるか、IPv6であるかを判定する判定部と、前記判定部により、前記プロトコル取得部により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する第1テーブル取得部と、前記判定部により、前記プロトコル取得手段により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを取得する第2テーブル取得部と、前記プロトコル取得部により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れか一方に登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信部と、を備えることを特徴とする情報通信システムである。
【0007】
請求項2に記載の発明によれば、前記情報通信システムは、IPv4により通信可能であり、且つ、前記情報通信システムへ参加する際に前記ノード装置から送信される参加メッセージを受信する第1ノード装置と、IPv6により通信可能であり、且つ、前記情報通信システムへ参加する際に前記ノード装置から送信される参加メッセージを受信する第2ノード装置と、を備え、前記ノード装置の前記第1送信部は、前記プロトコル取得部により取得されたプロトコルで通信可能な前記第1ノード装置、または、前記第2ノード装置へ前記参加メッセージを送信する第2送信部を備え、前記第2送信部により送信された前記参加メッセージに基づいて、前記第1テーブル取得部または前記第テーブル取得部は、前記第1ノード装置または前記第2ノード装置が記憶するルーティングテーブルの少なくとも一部を、前記第1ノード装置または前記第2ノード装置から取得することを特徴とする。
【0008】
請求項3に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムのノード装置であって、前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との少なくとも何れか一方を取得するプロトコル取得部と、前記プロトコル取得手段により取得されたプロトコルが、IPv4であるか、IPv6であるかを判定する判定部と、前記判定部により、前記プロトコル取得部により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する第1テーブル取得部と、前記判定部により、前記プロトコル取得手段により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを取得する第2テーブル取得部と、前記プロトコル取得部により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れか一方に登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信部と、を備えることを特徴とするノード装置である。
【0009】
請求項4に記載の発明によれば、前記複数のノード装置のいずれかから取得したデータを記憶する記憶部を備え、前記ノード装置が前記記憶部にデータを記憶したことを前記複数のノード装置に通知する通知メッセージであって、データを記憶した前記ノード装置の前記所在情報を含む前記通知メッセージを、前記プロトコル取得部により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れか一方に登録された前記ノード装置へ、前記第1送信部は送信することを特徴とする。
【0010】
請求項5に記載の発明によれば、前記第1送信部は、前記複数のノード装置の中から所望のコンテンツを保持する1以上のコンテンツ保持ノード装置の前記ネットワーク上における所在を示す所在情報を検索する検索メッセージをさらに送信し、前記判定部により、IPv4とIPv6との両方で通信可能であると判定し、且つ、前記第1送信部が前記検索メッセージを送信する場合、前記第1送信部は、前記第1ルーティングテーブルよりも前記第2ルーティングテーブルに登録された前記所在情報を優先して、前記検索メッセージを送信することを特徴とする。
【0011】
請求項6に記載の発明によれば、前記プロトコル取得部は、IPv4とIPv6との両方を取得し、前記ノード装置は、前記情報通信システムを制御するメッセージを受信する受信部を備え、前記受信部により制御メッセージを受信したノード装置が、IPv4とIPv6との両方で通信可能な場合、前記第1送信部は、前記受信部により受信されたメッセージを、前記受信されたメッセージの送信元のノード装置が通信可能なプロトコルと異なるプロトコルへ送信することを特徴とする。
【0012】
請求項7に記載の発明によれば、前記受信部が、前記複数のノード装置の中から所望のコンテンツを保持する1以上のコンテンツ保持ノード装置の前記ネットワーク上における所在を示す所在情報を検索する検索メッセージを受信し、且つ、 前記受信部により制御メッセージを受信したノード装置が、IPv4とIPv6との両方で通信可能な場合、前記第1送信部は、前記受信部により受信された検索メッセージを、前記受信されたメッセージの送信元のノード装置が通信可能なプロトコルと異なるプロトコルへ送信し、前記ノード装置は、前記異なるプロトコルを介して、前記検索メッセージに対応するコンテンツを取得する取得部と、前記取得部により取得されたコンテンツを、前記受信部により受信されたメッセージの送信元のノード装置へ中継する中継部と、を備えることを特徴とする。
【0013】
請求項8に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムの情報通信方法であって、前記ノード装置により取得されたプロトコルに基づいて、前記ノード装置により通信可能なプロトコルが、IPv4であるか、IPv6であるかを前記ノード装置が判定する判定ステップと、前記判定ステップにより、前記ノード装置により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを前記ノード装置が取得する第1テーブル取得ステップと、前記判定ステップにより、前記ノード装置により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを前記ノード装置が取得する第2テーブル取得ステップと、前記ノード装置により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れかに登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信ステップと、を含む情報通信方法である。
【0014】
請求項9に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムのノード装置のコンピュータに、
前記ノード装置により取得されたプロトコルに基づいて、前記ノード装置により通信可能なプロトコルが、IPv4であるか、IPv6であるかを判定する判定ステップと、前記判定ステップにより、前記ノード装置により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する第1テーブル取得ステップと、前記判定ステップにより、前記ノード装置により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを取得する第2テーブル取得ステップと、前記ノード装置により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れかに登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信ステップと、を実行させることを特徴とするプログラムである。
【発明の効果】
【0015】
請求項1に記載の発明によれば、第1テーブル取得部は、判定部により、プロトコル取得部により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、第1オーバーレイネットワークに参加するノード装置のネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する。第2テーブル取得部は、判定部により、プロトコル取得手段により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、第2オーバーレイネットワークに参加するノード装置の所在情報が登録された第2ルーティングテーブルを取得する。第1送信部は、プロトコル取得部により取得されたプロトコルに対応した第1ルーティングテーブルまたは第2ルーティングテーブルの少なくとも何れか一方に登録されたノード装置へ、情報通信システムを制御するメッセージを送信する。この結果、IPv4とIPv6とが共存するネットワーク環境であっても、第1ルーティングテーブルと、第2ルーティングテーブルとを用いて、P2Pシステムを動作させることができる。
【0016】
請求項2に記載の発明によれば、情報通信システムは、IPv4により通信可能であり、且つ、前記情報通信システムへ参加する際に前記ノード装置から送信される参加メッセージを受信する第1ノード装置と、IPv6により通信可能であり、且つ、前記情報通信システムへ参加する際に前記ノード装置から送信される参加メッセージを受信する第2ノード装置と、を備える。第2送信部により送信された参加メッセージに基づいて、第1テーブル取得部または第2テーブル取得部は、前記第1ノード装置または前記第2ノード装置が記憶するルーティングテーブルの少なくとも一部を、前記第1ノード装置または前記第2ノード装置から取得する。この結果、IPv4の第1ルーティングテーブルは、第1ノード装置から取得し、IPv6の第2ルーティングテーブルは、第2ノード装置から取得することができる。
【0017】
請求項3に記載の発明によれば、第1テーブル取得部は、判定部により、プロトコル取得部により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、第1オーバーレイネットワークに参加するノード装置のネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する。第2テーブル取得部は、判定部により、プロトコル取得手段により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、第2オーバーレイネットワークに参加するノード装置の所在情報が登録された第2ルーティングテーブルを取得する。第1送信部は、プロトコル取得部により取得されたプロトコルに対応した第1ルーティングテーブルまたは第2ルーティングテーブルの少なくとも何れか一方に登録されたノード装置へ、情報通信システムを制御するメッセージを送信する。この結果、IPv4とIPv6とが共存するネットワーク環境であっても、第1ルーティングテーブルと、第2ルーティングテーブルとを用いて、P2Pシステムを動作させることができる。
【0018】
請求項4に記載の発明によれば、ノード装置が記憶部にデータを記憶したことを複数のノード装置に通知する通知メッセージであって、データを記憶したノード装置の所在情報を含む通知メッセージを、プロトコル取得部により取得されたプロトコルに対応した第1ルーティングテーブルまたは第2ルーティングテーブルの少なくとも何れか一方に登録されたノード装置へ、第1送信部は送信する。この結果、ノード装置が通信可能なプロトコルに対応したオーバーレイネットワークから、データを取得することができる。
【0019】
IPv4は、アドレスの数が不足しているため、グローバルアドレスとプライベートアドレスとの両方が使用される。プライベートアドレスを通信に用いる場合、NAT越え等の処理が必要である。一方で、IPv6は、アドレスの数が豊富なため、グローバルアドレスとプライベートのアドレスの両方が使用される可能性が低い。請求項5に記載の発明によれば、判定部により、IPv4とIPv6との両方で通信可能であると判定し、且つ、第1送信部が検索メッセージを送信する場合、第1送信部は、第1ルーティングテーブルよりも第2ルーティングテーブルに登録された所在情報を優先して、検索メッセージを送信する。この結果、アドレスの数が豊富でNAT越えの処理が不要なIPv6のルーティングテーブルへ優先して、検索メッセージが送信されることで、データ取得の処理工数を軽減することができる。
【0020】
請求項6に記載の発明によれば、プロトコル取得部は、IPv4とIPv6との両方を取得する。受信部により制御メッセージを受信したノード装置が、IPv4とIPv6との両方で通信可能な場合、第1送信部は、受信部により受信されたメッセージを、受信されたメッセージの送信元のノード装置が通信可能なプロトコルと異なるプロトコルへ送信する。この結果、IPv4またはIPv6のいずれか一方でしか通信可能なノード装置であっても、IPv4とIPv6との両方で通信可能なノード装置により、情報通信システムを制御するメッセージを中継することができる。
【0021】
請求項7に記載の発明によれば、ノード装置は、異なるプロトコルを介して、検索メッセージに対応するコンテンツを取得する取得部を備える。また、ノード装置は、取得部により取得されたコンテンツを、受信部により受信されたメッセージの送信元のノード装置へ中継する中継部を備える。この結果、IPv4またはIPv6のいずれか一方のみに通信可能なノード装置であっても、IPv4とIPv6との両方で通信可能なノード装置とで、データを中継して取得することができる。
【0022】
請求項8に記載の発明によれば、第1テーブル取得ステップは、判定ステップにより、ノード装置により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、第1オーバーレイネットワークに参加するノード装置のネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルをノード装置が取得する。第2テーブル取得ステップは、判定ステップにより、ノード装置により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、第2オーバーレイネットワークに参加するノード装置の所在情報が登録された第2ルーティングテーブルをノード装置が取得する。第1送信ステップは、ノード装置により取得されたプロトコルに対応した第1ルーティングテーブルまたは第2ルーティングテーブルの少なくとも何れかに登録されたノード装置へ、情報通信システムを制御するメッセージを送信する。この結果、IPv4とIPv6とが共存するネットワーク環境であっても、第1ルーティングテーブルと、第2ルーティングテーブルとを用いて、P2Pシステムを動作させることができる。
【0023】
請求項9に記載の発明によれば、第1テーブル取得ステップは、判定ステップにより、ノード装置により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、第1オーバーレイネットワークに参加するノード装置のネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルをノード装置が取得する。第2テーブル取得ステップは、判定ステップにより、ノード装置により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、第2オーバーレイネットワークに参加するノード装置の所在情報が登録された第2ルーティングテーブルをノード装置が取得する。第1送信ステップは、ノード装置により取得されたプロトコルに対応した第1ルーティングテーブルまたは第2ルーティングテーブルの少なくとも何れかに登録されたノード装置へ、情報通信システムを制御するメッセージを送信する。この結果、IPv4とIPv6とが共存するネットワーク環境であっても、第1ルーティングテーブルと、第2ルーティングテーブルとを用いて、P2Pシステムを動作させることができる。
【図面の簡単な説明】
【0024】
【図1】本実施形態におけるコンテンツ分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。
【図2】ノード装置が記憶する第1ルーティングテーブルの一例である。
【図3】DHTのID空間の一例を示す概念図である。
【図4】コンテンツ分散保存システムSへの参加時における第1ルーティングテーブルの生成手順の一例を示す概念図である。
【図5】第1ルーティングテーブル作成手順における参加メッセージの転送概要を示す概念図である。
【図6】本実施形態のノード装置Tm−nの電気的構成を示すブロック図である。
【図7】ノード装置Tm−nにおけるメイン動作の処理手順を示すフローチャートである。
【図8】ノード装置Tm−nにおけるルーティングテーブル生成処理の処理手順を示すフローチャートである。
【図9】ノード装置Tm−nにおける第1メッセージ処理の処理手順を示すフローチャートである。
【図10】ノード装置Tm−nにおけるダウンロード処理の処理手順を示すフローチャートである。
【図11】ノード装置Tm−nにおける第2メッセージ処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0025】
[最良の実施形態]
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【0026】
[コンテンツ分散保存システムの概要構成]
始めに、図1を参照して、本実施形態におけるコンテンツ分散保存システムSの概要構成について説明する。図1は、本実施形態におけるコンテンツ分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。
【0027】
図1に示すように、コンテンツ分散保存システムSは、複数のノード装置Tm−n(n=1,2,3・・・の何れか)から構成されている。複数のノード装置Tm−nは、ネットワークNWを介して互いに通信可能である。このネットワークNWは、現実世界の通信ネットワークである。例えば、インターネットである。
【0028】
ネットワークNWは、各拠点ネットワークNLmを相互接続するためのネットワークである。このネットワークNWは、例えば、インターネットやWAN(Wide Area Network
)等である。そして、ネットワークNWは、例えば、IX(Internet Exchange)、IS
P(Internet Service Provider)、DSL(Digital Subscriber Line)回線事業者の装置、FTTH(Fiber To The Home)回線事業者の装置、及び通信回線等によって構築されている。なお、ネットワークNWは、コンテンツ分散保存システムS専用のネットワークであっても良い。
【0029】
本実施形態では、ネットワークNW内に、1つ以上の各拠点ネットワークNLmが形成される。また、各拠点ネットワークNLmには、複数のノード装置Tm−nが接続されている。各拠点ネットワークNLmは、夫々拠点mの敷地内に構築されたネットワークである。拠点としては、例えば、会社、学校、病院、塾等がある。この拠点ネットワークNLmは、例えば、LAN等により構築されている。或いは、拠点ネットワークNLmは、複数のLANが相互接続して構築されたネットワークであっても良い。この場合、複数のLANは、ルータ等のネットワーク機器を介して接続される。複数のLANが相互接続されたネットワークとしては、例えば、CAN(Campus Area Network)等がある。各拠点ネットワークNLmには、ファイアーウォールFW又はブロードバンドルータBRが接続されている。ファイアーウォールFW又はブロードバンドルータBRは、拠点内に接続されるノード装置と、その拠点に接続されるノード装置以外のノード装置とを通信可能にする通信機器である。ファイアーウォールFW又はブロードバンドルータBRは、公知であるので詳細な説明は省略する。ファイアーウォールFW又はブロードバンドルータBRの何れが拠点に設置されるかは、拠点毎に任意に決定される。本実施形態の拠点ネットワークNLmは、例えば、LAN(Local Area Network)である。
【0030】
また、ネットワークNWには、投入サーバ及びポータルサーバ等のサーバ装置等が接続されている。投入サーバとポータルサーバとは特に図示していない。
【0031】
このような構成のコンテンツ分散保存システムSにおいて、構成要素たる各装置の機能概要は以下の通りである。投入サーバは、後述する第1オーバーレイネットワークPW、または、第2オーバーレイネットワークPLにコンテンツデータを投入するサーバ装置である。なお、投入サーバは図示していない。ここで、コンテンツデータの投入とは、コンテンツデータをノード装置Tm−nから取得可能な状態におくことをいう。なお、コンテンツデータを、「コンテンツ」という。
【0032】
ポータルサーバは、ノード装置Tm−nからのリクエストに応じてWebページをノード装置Tm−nに送信する。ポータルサーバにより送信されるWebページは、コンテンツの一例として動画データを配信するWebサイトを構成する。なお、ポータルサーバは図示していない。
【0033】
ノード装置Tm−nは、拠点mにいるユーザにより使用される端末装置である。ノード装置Tm−nは、ポータルサーバ等のWebサーバからWebページを取得し、取得したWebページを画面表示する。ノード装置Tm−nは、他のノード装置Tm−n又からコンテンツを取得し保存する。更に、ノード装置Tm−nは、動画データ等のコンテンツを再生する。
【0034】
本実施形態のコンテンツ分散保存システムSでは、コンテンツ配信のためのオーバーレイネットワークが構築されている。オーバーレイネットワークは、ネットワークNW上に構築されたオーバーレイネットワークである。言い換えれば、オーバーレイネットワークは、物理的なネットワーク上に生成される論理的なネットワークである。また、オーバーレイネットワークは、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。分散ハッシュテーブルを、以下、「DHT(Distributed Hash Table)」という。なお、DHTを用いたルーティングテーブルについては、特開2006−197400号公報等で公知である。
【0035】
本実施形態では、このオーバーレイネットワークが2種類ある。図2に示すように、第1オーバーレイネットワークPWと、第2オーバーレイネットワークPLである。第1オーバーレイネットワークPWは、IPv4により通信可能なノード装置のいずれかから構成される。また、第2オーバーレイネットワークPLは、IPv6により通信可能なノード装置のいずれかから構成される。本実施形態のノード装置には、IPv4のみで通信可能なノード装置と、IPv6のみで通信可能なノード装置と、IPv4とIPv6との双方で通信可能なノード装置とが存在する。図1の例では、ノード装置T1−1と、ノード装置T1−2と、ノード装置T2−1と、ノード装置T3−1と、ノード装置T4−1と、ノード装置T5−1とが、IPv4により通信可能である。そのため、第1オーバーレイネットワークPWは、ノード装置T1−1、ノード装置T1−2、ノード装置T2−1と、ノード装置T3−1、ノード装置T4−1、ノード装置T5−1等のIPv4により通信可能なノード装置により構成される。また、図1の例では、ノード装置T1−4と、ノード装置T2−4と、ノード装置T2−5と、ノード装置T3−1と、ノード装置T4−1とが、IPv6により通信可能である。そのため、第2オーバーレイネットワークPLは、ノード装置T1−4、ノード装置T2−4、ノード装置T2−5、ノード装置T3−1、ノード装置T4−1等のIPv6により通信可能なノード装置により構成される。
【0036】
第1オーバーレイネットワークPW、または、第2オーバーレイネットワークPLの生成方法の詳細については、後述する。第1オーバーレイネットワークPW、または、第2オーバーレイネットワークPLを用いて、各ノード装置Tm−nがピアツーピア方式で通信を行えるよう、ブロードバンドルータBRやファイアーウォールFWにおいてポートフォワーディングの設定が行われる。例えば、ブロードバンドルータBRであれば、UPnP(Universal Plug and Play)機能等を利用して自動的にポートフォワーディングの設定が行われるようにしておくと良い。
【0037】
[第1オーバーレイネットワーク及び第2オーバーレイネットワークの生成方法]
以下、第1オーバーレイネットワークPW及び第2オーバーレイネットワークPLの生成方法について説明する。第1オーバーレイネットワークPWでは、DHTの第1ルーティングテーブルが用いられる。また、第2オーバーレイネットワークPLでは、DHTの第2ルーティングテーブルが用いられる。
【0038】
本実施形態では、コンテンツ分散保存システムSには、IPv4により通信可能な第1コンタクトノードと、IPv6により通信可能な第2コンタクトノードとが備えられる。コンタクトノードは、各ノード装置Tm−nが、オーバーレイネットワークに参加する際に、最初にメッセージを送信するノード装置である。例えば、IPv4により通信可能なノード装置Tm−nは、第1コンタクトノードに参加メッセージを送信する。また、Ipv6により通信可能なノード装置Tm−nは、第2コンタクトノードに参加メッセージを送信する。参加メッセージを受信した第1コンタクトノード及び第2コンタクトノードは、参加処理を実行する。まず、本実施形態のルーティングテーブルについて詳しく説明する。
【0039】
図2は、ノード装置Tm−nが記憶する第1ルーティングテーブルの一例である。図3は、DHTのID空間の一例を示す概念図である。なお、図2及び図3の例においては、説明の便宜上、ノードIDのbit長を2bit×3桁=6bitとしている。そのため、各桁は、2bitで表された4進数(0〜3の整数)で表されている。各桁を2bitよりも長いbit長を用いても良い。例えば、各桁を4bitで表して、0〜fの16進数で表現しても良い。
【0040】
図2に示すように、第1ルーティングテーブルは、レベル1(一段目)〜レベル3(三段目)の複数レベルから構成される。各エリアには、ノード情報が登録される。ノード情報は、ノードIDと、ノードIDに対応するノード装置のIPアドレス及びポート番号と、を含む。図2の例の場合、レベル1の0XXのエリアには、ノードID「002」と、ノードID「002」に対応するノード装置T2−1のIPアドレス及びポート番号とが、対応付けられてノード情報として登録されている。
【0041】
図2に示すレベル1〜レベル3の各レベルにおける各エリアは、ノードID空間を分割することにより決定されるエリアである。図3は、ノードIDを用いて各エリアが決定される概念図である。ノードID空間は、各桁が4進数(0〜3の整数)で表される3桁の数字により構成される。図3に示すように、レベル1のエリアとして、ノードID空間が4つ(4進数のため)に分割される。具体的にレベル1のエリアは、0XXのエリアと、1XXのエリアと、2XXのエリアと、3XXとに分割される。0XXのエリアは、'0
00'〜'033'のノードIDが存在するエリアである。1XXのエリアは、'100'〜'133'のノードIDが存在するエリアである。2XXのエリアは、'200'〜'233'
のノードIDが存在するエリアである。3XXのエリアは、'300'〜'333'のノードIDが存在するエリアである。
【0042】
また、レベル2では、レベル1のエリアが更に4つ(4進数のため)に分割される。つまり、0XX〜3XXの各エリアが更に4つに分割される。0XXのエリアと1XXのエリアと2XXのエリアと3XXのエリアとが夫々4分割される。例えば、1XXのエリアの場合、'100'〜'103'のノードIDが存在するエリアが10Xのエリアとして分割される。また、11Xのエリアの場合、'110'〜'113'のノードIDが存在するエリアが11Xのエリアとして分割される。また、12Xのエリアの場合、'120'〜'12
3'のノードIDが存在するエリアが12Xのエリアとして分割される。また、13Xの
エリアの場合、'130'〜'133'のノードIDが存在するエリアが13Xのエリアとして分割される。
【0043】
以降、ノード装置Tm−nのノードIDが「122」の場合を例として説明する。図2に示すように、ルーティングテーブルのレベル1における1XXのエリアは、ノード装置T1−2のノードIDが存在するエリアである。そのため、レベル1の1XXのエリアには、図2の例では、ノード装置T1−2自身のノードIDと、IPアドレスまたはポート番号とが登録される。本実施形態では、ノード装置T1−2自身のノードIDとIPアドレスまたはポート番号とを登録したが、ノードIDとIPアドレスまたはポート番号とはノード装置T1−2自身のものであるので登録されなくてもよい。ノード装置T1−2のノードIDが存在しないエリアには、夫々、他の任意のノード装置のノードIDと、IPアドレスまたはポート番号とが登録されている。ノード装置T1−2のノードIDが「122」の場合、ノード装置T1−2のノードIDが存在しないエリアは、0XXのエリアと、2XXのエリアと、3XXのエリアとである。
【0044】
また、ルーティングテーブルのレベル2における12Xのエリアは、ノード装置T1−2のノードIDが存在するエリアである。そのため、レベル2の12Xのエリアには、ノード装置T1−2自身のノードIDと、IPアドレスまたはポート番号とが登録される。ノード装置T1−2のノードIDが存在しないエリアには、レベル1と同様に、他の任意のノード装置のノードIDと、IPアドレスまたはポート番号とが登録されている。
【0045】
更に、ルーティングテーブルのレベル3には、図2に示すように、ノードIDが'12
0'〜'123'である。そのため、レベル3の122のエリアには、ノード装置T1−2
自身のノードIDと、IPアドレスまたはポート番号とが登録される。本実施形態では、ノード装置T1−2自身のノードIDとIPアドレスまたはポート番号とを登録したが、IPアドレスまたはポート番号はノード装置T1−2自身のものであるので、登録されなくても良い。
【0046】
なお、図2及び図3の例では、ノードIDのbit長を3桁×2bitである。例えば、ノードIDのbit長を16桁×4bitとした場合、16レベル分のテーブルが必要となる。図2および図3に示すように、本実施形態における第1ルーティングテーブルでは、レベルの数値が大きくなるほど、エリアが狭くなっていく。そして、このような第1ルーティングテーブルは、例えば、未参加のノード装置がコンテンツ分散保存システムSに参加する際に生成される。本実施形態では、オーバーレイネットワークに参加するとは、DHTを用いたルーティングテーブルに基づいて他のノード装置との間で各種メッセージを送受信できる状態に稼動することをいう。これにより、各ノード装置は、他のノード装置との間でオーバーレイネットワークを介してメッセージを送受信することが可能となる。ここで、オーバーレイネットワークを介したメッセージの送受信とは、オーバーレイネットワークに参加しているノード装置間のメッセージの送受信を意味する。なお、DHTのルーティングテーブルは、例えば特開2007−053662号公報等で公知であるので、詳しい説明を省略する。ここで、図4を参照して、コンテンツ分散保存システムSへの参加時における第1ルーティングテーブルの生成手順について詳しく説明する。
【0047】
図4は、コンテンツ分散保存システムSへの参加時における第1ルーティングテーブルの生成手順の一例を示す概念図である。具体的には、図4は、各ノード装置Tm−n間を参加メッセージが転送される概要を示す概念図である。また、図5は、第1ルーティングテーブル作成手順における参加メッセージの転送概要を示す概念図である。以降、未参加のノード装置T8−1がコンテンツ分散保存システムSに参加する例を用いて説明する。なお、図4及び図5に示すノード装置1−4とノード装置T8−1とノード装置9−1とノード装置10−1とは、IPv4により通信可能なノード装置である。以下未参加のノード装置T8−1のノードIDは、「123」とする。また、図4及び図5では、ノード装置の略称として、「ノード」と記載している。また、参加メッセージの略称として、「JOIN」と記載している。
【0048】
図4及び図5に示すように、未参加のノード装置T8−1がコンテンツ分散保存システムSに参加する場合、第1コンタクトノード装置であるノード装置T9−1のIPアドレスを用いて、ノード装置T9−1に参加メッセージが送信される。図5に示すように、参加メッセージは、未参加のノード装置T8−1のノードIDを含む。第1コンタクト装置であるノード装置T9−1にメッセージを送信するためのIPアドレスを、未参加のノード装置T8−1が事前に知っているものとする。例えば、第1オーバーレイネットワークPWまたは第2オーバーレイネットワークPLに参加するために必要なソフトウェアをダウンロードするときに、第1コンタクトノードであるノード装置T9−1のIPアドレスは取得される。
【0049】
参加メッセージを受信したノード装置T9−1は、ノード装置T9−1の第1ルーティングテーブルを参照する。具体的には、第1ルーティングテーブルにおけるレベル1のテーブルに登録されているノード情報が参照される。レベル1に登録されているノード情報を含む返信メッセージを、ノード装置T9−1はノード装置T8−1へ返信する。さらにノード装置T9−1は、受信された参加メッセージに含まれるノードIDと、第1ルーティングテーブルに登録された他のノード装置Tm−nのノードIDと比較する。比較結果に基づいて第1ルーティングテーブルから、一つのノード装置Tm−nが選定される。なお、第1ルーティングテーブルに登録されるノード装置Tm−nは、IPv4により通信可能なノード装置である。ノード装置T9−1は、例えば、参加メッセージに含まれるノードID123と最も近いノードIDであるノード装置T10−1を、第1ルーティングテーブルから選定する。このとき、ノード装置T9−1からノード装置T10−1へ送信される参加メッセージには、次に返信させるテーブルの段数を示す情報が含められる。ノード装置T9−1からノード装置T10−1へ送信される参加メッセージには、レベル2が含められる。また、参加メッセージを受信したノード装置T10−1は、ノード装置T9−1の場合と同様に、参加メッセージに含まれるノードID123と最も近いノードIDであるノード装置T1−4を、第1ルーティングテーブルから選定する。このとき、ノード装置T10−1からノード装置T1−4へ送信される参加メッセージには、次に返信させるテーブルの段数を示す情報が含められる。ノード装置T10−1からノード装置T1−4へ送信される参加メッセージには、レベル3が含められる。
【0050】
選定されたノード装置が、ノード装置T10−1である例を用いて説明する。このとき、参加メッセージには、次に返信させるテーブルの段数を示す情報が含められる。上記例では、レベル2が参加メッセージに含められる。
【0051】
参加メッセージを受信したノード装置T10−1は、ノード装置T10−1の第1ルーティングテーブルのレベル2に登録されているノード情報を含む返信メッセージを、ノード装置T8−1に対して返信する。さらに、ノード装置T10−1は、第1ルーティングテーブルから選定されたノード装置T1−4へ、上記参加メッセージを転送する。このとき、参加メッセージには、次に返信させるべきテーブルの段数として、レベル3を示す情報が含められる。
【0052】
参加メッセージを受信したノード装置T1−4は、ノード装置T1−4の第1ルーティングテーブルにおけるレベル3に登録されているノード情報を含む返信メッセージを、ノード装置T8−1に対して返信する。以上のようにして参加メッセージは、ノードIDをキーとして第1ルーティングテーブルに基づいて転送される。そのため、未参加のノード装置T8−1のノードIDに一番近いノードIDを有するノード装置Tm−nまで転送される。例えば、最も近いノードIDは、上位桁がより多く一致するID、または、比較されるノードIDとの差が最も小さいノードIDである。
【0053】
そして、ノード装置T8−1は、各ノード装置から受信した返信メッセージに含まれるノード情報を用いて第1ルーティングテーブルを生成する。具体的には、ノード装置T9−1から送信されたノード情報が、ノード装置T8−1の第1ルーティングテーブルのレベル1に登録される。ノード装置T10−1から送信されたノード情報が、ノード装置T8−1の第1ルーティングテーブルのレベル2に登録される。ノード装置T1−4から送信されたノード情報が、ノード装置T8−1の第1ルーティングテーブルのレベル3に登録される。
【0054】
こうして、ノード装置T8−1は、第1ルーティングテーブルを取得し、ノード装置T8−1の記憶手段に記憶する。これにより、コンテンツ分散保存システムSへの参加が完了することになる。本実施形態では、上述したような参加メッセージや、後述する検索要求メッセージ等の各種メッセージは、メッセージの送信元、または、転送元のノード装置のノード情報を含む。そのため、メッセージを受信したノード装置は、ノード装置の第1ルーティングテーブルに、ノード情報を登録及び更新する。
【0055】
各ノード装置Tm−n間を転送するメッセージは、メッセージ送信元のノードIDと、メッセージの内容と、送信元または転送元のノード情報とを含む。メッセージ送信元のノードIDは、メッセージを送信した送信元のノード装置Tm−nのノードIDである。メッセージの内容は、メッセージの目的を表す「参加(JOIN)」、「パブリッシュ」、「クエリ」等である。「参加」は、参加メッセージを示す。「パブリッシュ」は、パブリッシュメッセージを示す。「クエリ」は、検索要求メッセージを示す。パブリッシュメッセージ及び検索要求メッセージの詳細は、後述する。ノード情報は、送信元または転送元のノード装置Tm−nのノードIDと、IPアドレスまたはポート番号とを含んで構成される。なお、'メッセージの内容'は、参加メッセージの場合、テーブルのノード情報の返信を要求する旨の情報等が含まれている。また、パブリッシュ(登録)メッセージまたはクエリの場合、パブリッシュ(登録)やクエリ(要求)の対象となるコンテンツのコンテンツIDが含まれている。
【0056】
図4に示す例の場合、ノード装置T10−1は、第1コンタクトノードであるノード装置T9−1から参加メッセージを受信する。そして、ノード装置T10−1は、参加メッセージに含まれる送信元または転送元の第1コンタクトノード装置T9−1のノード情報をノード装置T10−1の第1ルーティングテーブルに登録する。このとき、ノード装置T10−1のルーティングテーブルに第1コンタクトノード装置T9−1のノード情報が既に登録されている場合、登録済み第1コンタクトノード装置T9−1のノード情報は、受信したノード情報に基づいて更新される。
【0057】
同様に、ノード装置T10−1から参加メッセージを受信したノード装置T1−4は、参加メッセージに含まれる送信元または転送元のノード装置T10−1のノード情報をノード装置T1−4の第1ルーティングテーブルに登録、或いは更新する。以上の手順に従い、ルーティングテーブルは、ノード情報を登録、または、更新される。
【0058】
また、第2ルーティングテーブルは、第1ルーティングテーブルと同様の方法により生成される。具体的には、未参加のノード装置T8−1がコンテンツ分散保存システムSに参加する場合、第2コンタクトノード装置のIPアドレスを用いて第2コンタクトノード装置に参加メッセージが送信される。参加メッセージを受信した第2コンタクトノードは、第1コンタクトノードの処理と同様の処理を実行する。なお、第2コンタクトノードは、IPv6により通信可能なノード装置のノード情報により構成される第2ルーティングテーブルを記憶している。この第2ルーティングテーブルを用いて、第2コンタクトノードは、第1コンタクトノードと同様の方法で、未参加ノード装置に第2ルーティングテーブルを取得させる。
【0059】
[コンテンツ取得動作の説明]
コンテンツ分散保存システムSは、内容の異なる様々なコンテンツデータのレプリカを所定のファイル形式で複数のノード装置Tm−nに分散して保存する。以下、コンテンツデータを、「コンテンツ」という。そして、各ノード装置Tm−n間でレプリカが利用可能になっている。各コンテンツのオリジナルは、WANに接続されているセンターサーバ(不図示)に保存されている。以下、コンテンツのレプリカが保存されるノード装置Tm−nは、「コンテンツ保持ノード」という。以下の説明においては、オリジナルのコンテンツとレプリカとを特に区別することなく、コンテンツと称する。上述のコンテンツには、夫々、コンテンツ名及びコンテンツ毎に固有の識別情報であるコンテンツID等の情報が付加されている。
【0060】
分散保存されているコンテンツの所在は、インデックス情報として、コンテンツの所在を記憶しているノード装置Tm−n等により記憶される。以下、コンテンツの所在を記憶しているノード装置Tm−nを、「ルートノード」という。インデックス情報は、レプリカを保存したノード装置Tm−nのノード情報と、コンテンツのコンテンツIDと等の組を含む。このようなルートノードは、例えば、コンテンツIDと最も近いノードIDを有するノード装置Tm−nであるように定められる。コンテンツIDと最も近いノードIDとは、例えば、コンテンツIDと上位桁がより多く一致するノードIDである。
【0061】
そして、或るノード装置Tm−nのユーザが、所望するコンテンツを取得したい場合、このコンテンツの取得を望むノード装置Tm−nは、メッセージを生成する。以下、ユーザによりコンテンツの取得を望むノード装置Tm−nを、「ユーザノード」という。このメッセージは、取得を望むコンテンツのコンテンツID、ユーザノードのノード情報等を含む検索要求メッセージである。検索要求メッセージは、コンテンツ保持ノードを検索するためのメッセージでもある。上述の検索要求メッセージが、ユーザノードが記憶するDHTの第1ルーティングテーブルまたは第2ルーティングテーブルに従って、他のノード装置Tm−nに対して送出される。つまり、ユーザノードは、検索要求メッセージを、コンテンツのルートノードに向けて送出する。これにより、検索要求メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到達することになる。本実施形態では、検索要求メッセージとして、第1検索要求メッセージと第2検索要求メッセージとがある。第1検索要求メッセージと第2検索要求メッセージの詳細は後述する。
【0062】
上記検索要求メッセージを受信したルートノードは、これに含まれるコンテンツIDに対応するインデックス情報をインデックス情報キャッシュから取得する。そして、ルートノードは、取得したインデックス情報を含む検索応答メッセージを、検索要求メッセージの送信元であるユーザノードに対して返信する。インデックス情報を取得したユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのIPアドレス及びポート番号等に基づいて、コンテンツ要求メッセージをコンテンツ保持ノードに送信する。コンテンツ要求メッセージには、取得を望むコンテンツのコンテンツIDが含まれている。コンテンツ要求メッセージを受信したコンテンツ保持ノードは、コンテンツ要求メッセージに含まれるコンテンツIDに対応するコンテンツを、コンテンツキャッシュエリアから取得する。そして、コンテンツ保持ノードは、取得したコンテンツを含むコンテンツ要求応答メッセージをユーザノードに送信する。このようにして、ユーザノードは、コンテンツをダウンロード(取得)することが可能になる。
【0063】
また、ユーザノードは、コンテンツ保持ノードからコンテンツを取得して保存したとき、保存したユーザノードは、パブリッシュメッセージを生成する。パブリッシュメッセージは、コンテンツを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、コンテンツのコンテンツID、コンテンツを保存したノード装置Tm−nのノード情報を含む。パブリッシュメッセージは、ルートノードに向けて送出される。これにより、パブリッシュメッセージは、検索要求メッセージと同じように、コンテンツIDをキーとするDHTの第1ルーティングテーブルまたは第2ルーティングテーブルによってルートノードに到達することになる。そして、ルートノードは、パブリッシュメッセージを受信する。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツIDの組を含むインデックス情報をインデックス情報キャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツのコンテンツを保持するコンテンツ保持ノードとなる。
【0064】
本実施形態では、ノード装置Tm−nがIPv4とIPv6との双方で通信可能な場合、パブリッシュメッセージは、第1ルーティングテーブルと第2ルーティングテーブルとに記載された宛先へ送信される。一方、ノード装置Tm−nがIPv4のみにより通信可能な場合、第1ルーティングテーブルに記載された宛先へ、パブリッシュメッセージが送信される。また、ノード装置Tm−nがIPv6のみにより通信可能な場合、第2ルーティングテーブルに記載された宛先へ、パブリッシュメッセージが送信される。
【0065】
本実施形態では、検索要求メッセージは、第1検索要求メッセージと第2検索要求メッセージの2種類がある。第1検索要求メッセージは、IPv4とIPv6との双方で通信可能なノード装置により送信される検索要求メッセージである。一方、第2検索要求メッセージは、IPv4とIPv6とのいずれか一方で通信可能なノード装置により送信される検索要求メッセージである。
【0066】
本実施形態の第1検索要求メッセージは、ノード情報と、コンテンツIDと、バージョン情報とを含む。第1検索要求メッセージが含むノード情報は、第1検索要求メッセージの送信元のノード装置のノード情報である。第1検索要求メッセージが含むコンテンツIDは、第1検索要求メッセージにより検索を要求したコンテンツのコンテンツIDである。第1検索要求メッセージが含むバージョン情報は、第1検索要求メッセージの送信元のノード装置で通信可能なプロトコルであるIPv4とIPv6とを示すバージョン情報である。
【0067】
本実施形態の第2検索要求メッセージは、ノード情報と、コンテンツIDと、バージョン情報とを含む。第2検索要求メッセージが含むノード情報は、第2検索要求メッセージの送信元のノード装置のノード情報である。第2検索要求メッセージが含むコンテンツIDは、第2検索要求メッセージにより検索を要求したコンテンツのコンテンツIDである。第2検索要求メッセージが含むバージョン情報は、第2検索要求メッセージの送信元のノード装置で通信可能なプロトコルであるIPv4かIPv6かのいずれか一方を示すバージョン情報である。
【0068】
以下、第1検索要求メッセージの送信方法について説明する。第1検索要求メッセージが送信される場合、最初に第2ルーティングテーブルに記載の宛先へ送信される。そして、所定期間の間に検索応答メッセージが受信されなかった場合、次に第1ルーティングテーブルに記載の宛先へ第1検索要求メッセージが送信される。これは、コンテンツの取得先を、IPv4で通信可能なノード装置よりも、IPv6で通信可能なノード装置を優先させるためである。この処理により、NAT(Network Adress Translation)越えの問題が発生しないIPv6により通信可能なノード装置から、コンテンツのダウンロード及びアップロードを行うことができる。また、第1検索要求メッセージが、第1ルーティングテーブルと第2ルーティングテーブルとの両方に送信され、受信した応答メッセージの中から、IPv6により通信可能なノード装置が選択されてコンテンツがダウンロード及びアップロードされても良い。
【0069】
以下、第2検索要求メッセージの送信方法について説明する。第2検索要求メッセージは、IPv4またはIPv6のいずれか一方により通信可能なノード装置により送信される。第2検索要求メッセージを受信したノード装置がIPv4またはIPv6のいずれか一方により通信可能な場合がある。この場合、第2検索要求メッセージを受信したノード装置が通信可能なプロトコルに基づいて、第2検索要求メッセージを送信するために使用される第1ルーティングテーブルまたは第2ルーティングテーブルが決定される。決定された第1ルーティングテーブルまたは第2ルーティングテーブルに登録されたノード装置へ、第2検索要求メッセージが送信または転送される。
【0070】
一方、第2検索要求メッセージを受信したノード装置がIPv4またはIPv6の双方により通信可能なノード装置の場合がある。この場合、第2検索要求メッセージの送信元のノード装置が通信可能なプロトコルと異なるプロトコルで通信可能なノード装置へ、第2検索要求メッセージが送信または転送される。
【0071】
具体的には、第2検索要求メッセージの送信元がIPv4により通信可能なノード装置である場合、IPv4とIPv6との双方により通信可能なノード装置により、第2検索要求メッセージが、第2ルーティングテーブルの宛先へ中継される。つまり、IPv6により通信可能なノード装置へ第2検索要求メッセージが送信または転送される。また、第2検索要求メッセージがIPv6により通信可能なノード装置により送信された場合、IPv4とIPv6との双方により通信可能なノード装置により、第2検索要求メッセージが、第1ルーティングテーブルの宛先へ中継される。つまり、IPv4により通信可能なノード装置へ第2検索要求メッセージが送信または転送される。これにより、第2検索要求メッセージにより、所望のコンテンツが検索できなかった場合であっても、第2検索要求メッセージが送信されたノード装置が通信可能なプロトコルとは異なるプロトコルで通信可能なノード装置へ、第2検索要求メッセージを転送することができる。この結果、第2検索要求メッセージが送信されたノード装置が通信可能なプロトコルとは異なるプロトコルで通信可能なノード装置から、コンテンツを取得することが可能になる。
【0072】
本実施形態では、IPv4とIPv6との両方に通信可能なノード装置により、第2検索要求メッセージが送信されたとき、転送される第2検索要求メッセージに、転送フラグが含まれても良い。転送フラグは、IPv4とIPv6との両方に通信可能なノード装置により、第2検索要求メッセージが異なるプロトコルへ転送されたことを示すフラグである。転送フラグ以外に、第2検索要求メッセージが異なるプロトコルへ転送されたことを示す情報が用いられても良い。IPv4とIPv6との両方に通信可能なノード装置が、転送フラグが含まれているメッセージを受信した場合、第2検索要求メッセージを受信したノード装置は、第2検索要求メッセージを異なるプロトコルへ転送しなくても良い。これは、第2検索要求メッセージが異なるプロトコルへ転送され続けてしまい、第1ルーティングテーブルまたは第2ルーティングテーブルを用いて、十分に検索できないことを避けるためである。第2検索要求メッセージに転送フラグが含まれることで、異なるプロトコル間で不要な第2検索要求メッセージの転送を防ぐことができる。
【0073】
[ノード装置の電気的構成]
次に、図6を参照して、ノード装置Tm−nの電気的構成ついて説明する。図6は、本実施形態のノード装置Tm−nの電気的構成を示すブロック図である。図6に示すように、本実施形態のノード装置Tm−nには、ノード装置Tm−nを制御するCPU1が備えられている。CPU1には、HDD2とRAM3とデコーダ部4と通信部9とがそれぞれ電気的に接続されている。HDD2、RAM3、などの記憶手段とCPU1とは、ノード装置Tm−nのコンピュータを構成している。CPU1、HDD2、RAM3、デコーダ部4、及び通信部9はバスを介して相互に接続されている。なお、ノード装置Tm−nとしては、パーソナルコンピュータ、又はSTB(Set Top Box)等を適用可能である。
【0074】
HDD2は、プログラム記憶領域21と、アドレス情報記憶領域27と、第1ルーティングテーブル記憶領域28と第2ルーティングテーブル記憶領域29とバージョン情報記憶領域30とを含む。プログラム記憶領域21は、メイン動作プログラム記憶領域22とルーティングテーブル生成プログラム記憶領域23と、第1メッセージ処理プログラム記憶領域24と、第2メッセージ処理プログラム記憶領域25と、ダウンロード処理プログラム記憶領域26とを含む。
【0075】
メイン動作プログラム記憶領域22は、ノード装置Tm−nのメイン動作プログラムを記憶する。メイン動作プログラムは、ノード装置Tm−nのメイン動作処理を行う。ルーティングテーブル生成プログラム記憶領域23は、ルーティングテーブル生成プログラムを記憶する。ルーティングテーブル生成プログラムは、ノード装置Tm−nが第1ルーティングテーブルまたは第2ルーティングテーブルを生成するプログラムである。第1メッセージ処理プログラム記憶領域24は、第1メッセージ処理プログラムを記憶する。第1メッセージ処理プログラムは、ノード装置Tm−nが第1メッセージを処理するプログラムである。第2メッセージ処理プログラム記憶領域25は、第2メッセージ処理プログラムを記憶する。第2メッセージ処理プログラムは、ノード装置Tm−nが第2メッセージを処理するプログラムである。ダウンロード処理プログラム記憶領域26は、ダウンロード処理プログラムを記憶する。ダウンロード処理プログラムは、ノード装置Tm−nのダウンロード処理を行う。
【0076】
なお、上記メイン動作プログラム及びルーティングテーブル生成プログラム及び第1メッセージ処理プログラム及び第2メッセージ処理プログラム及びダウンロード処理プログラムは、例えば、ネットワークNW上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【0077】
アドレス情報記憶領域27は、第1コンタクトノードまたは第2コンタクトノードのIPアドレスが記憶される。ノード装置Tm−nにより取得された第1コンタクトノードと第2コンタクトノードとの少なくともいずれか一方のIPアドレスが、アドレス情報記憶領域27に記憶される。
【0078】
第1ルーティングテーブル記憶領域28には、生成された第1ルーティングテーブルが記憶される。第2ルーティングテーブル記憶領域29は、生成された第2ルーティングテーブルが記憶される。
【0079】
バージョン情報記憶領域30は、バージョン情報を記憶する。バージョン情報は、ノード装置Tm−nが通信可能なプロトコルである。ノード装置Tm−nが、IPv4とIPv6との両方で通信可能な場合、IPv4とIPv6とを示すバージョン情報がバージョン情報記憶領域30に記憶される。また、ノード装置Tm−nが、IPv4で通信可能な場合、IPv4を示すバージョン情報がバージョン情報記憶領域30に記憶される。また、ノード装置Tm−nが、IPv6で通信可能な場合、IPv6を示すバージョン情報がバージョン情報記憶領域30に記憶される。本実施形態のバージョン情報は、予め各ノード装置Tm−nに設定されていても良いし、別機器から直接接続されて取得されても良い。また、別機器からネットワークNWを介してバージョン情報が取得されても良い。本実施形態のバージョン情報記憶領域30は、本発明のプロトコル取得部の一例である。
【0080】
RAM3は、コンテンツデータ一時記憶領域31を含む。コンテンツデータ一時記憶領域31は、ノード装置Tm−n間で送受信されるコンテンツデータが一時記憶される。本実施形態のコンテンツデータ一時記憶領域31は、本発明の取得部の一例である。なお、コンテンツ分散保存システムSで送受信されるコンテンツデータは、HDD2またはRAM3のいずれかに保存されればよい。本実施形態のHDD2とRAM3とは、本発明の記憶部の一例である。通信部9は、ネットワークNWを通じてノード装置Tm−nまたは外部装置と情報の通信制御を行う。
【0081】
ノード装置Tm−nは、通信部9を介して要求に応じて送信されてきたコンテンツデータを受信する受信処理を行う。本実施形態のコンテンツデータはパケット化されて送信されるようになっている。各パケットは、通信部9を通じて受信され、RAM3のコンテンツデータ一時記憶領域31に一時記憶される。このように一時記憶されたコンテンツデータは、コンテンツデータ一時記憶領域31から読み出されてデコーダ部4と、映像処理部5と、音声処理部7と、ディスプレイ6と、スピーカ8とを通じて再生出力される。或いは、コンテンツデータ一時記憶領域31に記憶されたコンテンツデータは、コンテンツデータ一時記憶領域31から読み出されてHDD2に記憶されても良い。または、コンテンツデータがRAM3を介さず、直接HDD2に記憶されても良い。その後、入力部10を介してユーザからの操作指示にしたがって、HDD2からコンテンツデータが読み出される。読み出されたコンテンツデータは、デコーダ部4と、映像処理部5と、音声処理部7と、ディスプレイ6と、スピーカ8とを通じて再生出力される。これにより、ユーザはコンテンツの視聴を行うことができる。
【0082】
[本実施形態のノード装置Tm−nの動作の説明]
以上説明した構成からなる本実施形態のノード装置Tm−nの動作及び作用について、添付図面を参照して説明する。まず、ノード装置Tm−nの動作及び作用について、添付図面を参照して説明する。図7は、ノード装置Tm−nにおけるメイン動作の処理手順を示すフローチャートである。メイン動作は、電源またはコンセントを介して商用電源などの外部電源とノード装置Tm−nとが接続され、インストールされたP2PソフトウェアプログラムがCPU1により実行されたことにより、遂行される。以下に示す処理は、CPU1により処理される。
【0083】
ステップS101では、ルーティングテーブル生成処理が実行される。ルーティングテーブル生成処理では、メイン動作処理を実行するノード装置Tm−nが通信可能なプロトコルに基づいて、第1ルーティングテーブルと第2ルーティングテーブルの少なくともいずれか一方が生成される。
【0084】
ステップS102では、メイン動作処理を実行するノード装置Tm−nが、IPv4とIPv6との両方に接続可能であるか否かが判定される。バージョン情報記憶領域30に記憶されるバージョン情報に基づいて、IPv4とIPv6との両方に接続可能か否かが判定される。IPv4とIPv6との両方に接続可能と判定された場合(ステップS102:Yes)、ステップS103が実行される。IPv4とIPv6との両方に接続可能と判定されなかった場合(ステップS103:No)、ステップS104が実行される。本実施形態のコンピュータとステップS102とは、本発明の判定部の一例である。また、本実施形態のステップS102は、判定ステップの一例である。
【0085】
ステップS103では、第1メッセージ処理が実行される。第1メッセージ処理の詳細は後述する。
【0086】
ステップS104では、第2メッセージ処理が実行される。第2メッセージ処理の詳細は後述する。
【0087】
ステップS105では、ユーザにより電源スイッチがオフにされたか否かが判定される。電源スイッチがオフにされなかった場合(ステップS105:No)、再度ステップS102が実行される。電源スイッチがオフにされた場合(ステップS105:Yes)、メイン動作処理が終了される。
【0088】
(ルーティングテーブル生成処理)
図8は、ルーティングテーブル生成処理動作を示すフローチャートである。ステップS201では、ノード装置Tm−nが、IPv4で通信可能か否かが判定される。IPv4で通信可能か否かは、バージョン情報記憶領域30にIPv4と接続可能なことを示すバージョン情報が記憶されているか否かにより判定される。IPv4と接続可能なことを示すバージョン情報が記憶されている場合、IPv4で通信可能と判定される。IPv4と接続可能なことを示すバージョン情報が記憶されていると判定されなかった場合、IPv4で通信可能と判定されない。IPv4で通信可能と判定された場合(ステップS201:Yes)、ステップS202が実行される。IPv4で通信可能と判定されなかった場合(ステップS201:No)、ステップS204が実行される。
【0089】
ステップS202では、第1コンタクトノードへ参加メッセージが送信される。第1コンタクトノードのIPアドレスは、アドレス情報記憶領域27に記憶されている。本実施形態のコンピュータとステップS202とは、本発明の第2送信部の一例である。
【0090】
ステップS203では、第1ルーティングテーブルが生成される。ステップS202で送信された参加メッセージを受信したノード装置が、第1ルーティングテーブルに登録可能なノード情報を送信する。送信されたノード情報がステップS203では受信される。ステップS203で受信されたノード情報に基づいて、第1ルーティングテーブルが生成される。生成された第1ルーティングテーブルは、第1ルーティングテーブル記憶領域28に記憶される。本実施形態のコンピュータとステップS203とは、本発明の第1テーブル取得部の一例である。また、本実施形態のステップS203は、本発明の第1テーブル取得ステップの一例である。
【0091】
ステップS204では、ノード装置Tm−nが、IPv6で通信可能か否かが判定される。IPv6で通信可能か否かは、バージョン情報記憶領域30にIPv6と接続可能なことを示すバージョン情報が記憶されているか否かにより判定される。IPv6と接続可能なことを示すバージョン情報が記憶されている場合、IPv6で通信可能と判定される。IPv6と接続可能なことを示すバージョン情報が記憶されていると判定されなかった場合、IPv6で通信可能と判定されない。IPv6で通信可能と判定された場合(ステップS204:Yes)、ステップS205が実行される。IPv6で通信可能と判定されなかった場合(ステップS204:No)、ルーティングテーブル生成処理は終了される。
【0092】
ステップS205では、第2コンタクトノードへ参加メッセージが送信される。第2コンタクトノードのIPアドレスは、アドレス情報記憶領域27に記憶されている。本実施形態のコンピュータとステップS205とは、本発明の第2送信部の一例である。
【0093】
ステップS206では、第2ルーティングテーブルが生成される。ステップS205で送信された参加メッセージを受信したノード装置が、第2ルーティングテーブルに登録可能なノード情報を送信する。送信されたノード情報がステップS206では受信される。ステップS206で受信されたノード情報に基づいて、第2ルーティングテーブルが生成される。生成された第2ルーティングテーブルは第2ルーティングテーブル記憶領域29に記憶される。本実施形態のコンピュータとステップS206とは、本発明の第2テーブル取得部の一例である。また、本実施形態のステップS206は、本発明の第2テーブル取得ステップの一例である。
【0094】
(第1メッセージ処理)
図9は、第1メッセージ処理動作を示すフローチャートである。まず、ステップS301では、パブリッシュメッセージが送信されるか否かが判定される。ノード装置Tm−nにより送信されるメッセージがパブリッシュメッセージであるか否かが判定される。パブリッシュメッセージが送信されると判定された場合(ステップS301:Yes)、ステップS302が実行される。パブリッシュメッセージが送信されると判定されなかった場合(ステップS301:No)、ステップS304が実行される。
【0095】
ステップS302では、第1ルーティングテーブルに従って、パブリッシュメッセージが送信される。第1ルーティングテーブルに登録されたノード装置に向けて、パブリッシュメッセージが送信される。本実施形態のコンピュータとステップS302とは、本発明の第1送信部の一例である。また、本実施形態のステップS302は、本発明の第1送信ステップの一例である。
【0096】
ステップS303では、第2ルーティングテーブルに従って、パブリッシュメッセージが送信される。第2ルーティングテーブルに登録されたノード装置に向けて、パブリッシュメッセージが送信される。本実施形態のコンピュータとステップS303とは、本発明の第1送信部の一例である。また、本実施形態のステップS303は、本発明の第1送信ステップの一例である。
【0097】
ステップS304では、第1検索要求メッセージが送信されるか否かが判定される。ノード装置Tm−nにより送信されるメッセージが第1検索要求メッセージであるか否かが判定される。第1検索要求メッセージが送信されると判定された場合(ステップS304:Yes)、ステップS305が実行される。第1検索要求メッセージが送信されると判定されなかった場合(ステップS304:No)、ステップS306が実行される。
【0098】
ステップS305では、ステップS304で送信された第1検索要求メッセージに基づいて、ダウンロード処理が実行される。ダウンロード処理の詳細は後述する。
【0099】
ステップS306では、第1検索要求メッセージが受信されたか否かが判定される。他のノード装置から第1検索要求メッセージが受信されたか否かが判定される。第1検索要求メッセージが受信されたと判定された場合(ステップS306:Yes)、ステップS307が実行される。第1検索要求メッセージが受信されたと判定されなかった場合(ステップS306:No)、ステップS310が実行される。
【0100】
ステップS307では、第1検索要求メッセージに対応するコンテンツを記憶しているか否かが判定される。第1検索要求メッセージは、検索対象のコンテンツIDを含む。第1検索要求メッセージを受信したノード装置Tm−nが検索対象のコンテンツIDに対応するコンテンツを記憶しているか否かが判定される。第1検索要求メッセージに対応するコンテンツが記憶されていると判定された場合(ステップS307:Yes)、ステップS308が実行される。第1検索要求メッセージに対応するコンテンツが記憶されていると判定されなかった場合(ステップS307:No)、ステップS309が実行される。
【0101】
ステップS308では、ステップS307で記憶していると判定されたコンテンツが、第1検索要求メッセージの送信元へ送信される。第1検索要求メッセージは、第1検索要求メッセージの送信元のノード装置のIPアドレスを含んでいる。そのため、第1検索要求メッセージに対応するコンテンツが、第1検索要求メッセージの送信元へ送信される。
【0102】
ステップS309では、ステップS306で受信した第1検索要求メッセージが転送される。具体的には、第1ルーティングテーブルと第2ルーティングテーブルとに登録されたノード装置に向けて、第1検索要求メッセージが転送される。
【0103】
ステップS310では、第2検索要求メッセージが受信されたか否かが判定される。他のノード装置から第2検索要求メッセージが受信されたか否かが判定される。第2検索要求メッセージが受信されたと判定された場合(ステップS310:Yes)、ステップS311が実行される。第1検索要求メッセージが受信されたと判定されなかった場合(ステップS310:No)、第1メッセージ処理が終了される。本実施形態のコンピュータとステップS310とは、本発明の受信部の一例である。
【0104】
ステップS311では、第2検索要求メッセージが、異なるプロトコルのノード装置へ送信される。本実施形態の第2検索要求メッセージは、第2検索要求メッセージの送信元のノード装置のバージョン情報を含んでいる。また、ステップS311を実行するノード装置はIPv4とIPv6との双方で通信可能なノード装置である。そのため、ステップS311では、第2検索要求メッセージがIPv4で通信可能なノード装置により送信された場合、第2ルーティングテーブルに登録されたノード装置へ第2検索要求メッセージが送信される。つまり、IPv6で通信可能なノード装置へ第2検索要求メッセージが送信される。一方、第2検索要求メッセージがIPv6で通信可能なノード装置により送信された場合、第1ルーティングテーブルに登録されたノード装置へ第2検索要求メッセージが送信される。つまり、IPv4で通信可能なノード装置へ第2検索要求メッセージが送信される。ステップS311の場合、第2検索要求メッセージの送信元のノード装置のノード情報が、ステップS311を実行したノード装置のノード情報に変更される。また、ステップS311で変更された後のノード情報と、変更される前のノード情報とが対応付けられてRAM3の所定の記憶領域に一時記憶される。また、第2検索要求メッセージに、転送フラグが含まれる場合、ステップS311では、受信した第2検索要求メッセージに転送フラグが含まれているか否かが判定される。転送フラグが含まれていると判定された場合、ステップS311で異なるプロトコルへ、第2検索要求メッセージは送信されない。一方、転送フラグが含まれていると判定されなかった場合、ステップS311で異なるプロトコルへ、第2検索要求メッセージは送信される。ステップS311で第2検索要求メッセージが異なるプロトコルへ送信されるとき、第2検索要求メッセージに転送フラグが含まれる。
【0105】
ステップS312では、ステップS311が実行されてから所定の期間以内に、検索応答メッセージが受信されたか否かが判定される。所定の期間は、ノード装置Tm−nに備えられたタイマーにより計時される。なお、タイマーは図示していない。所定の期間以内に検索応答メッセージが受信されたと判定された場合(ステップS312:Yes)、ステップS313が実行される。所定の期間以内に検索応答メッセージが受信されたと判定されなかった場合(ステップS312:No)、第1メッセージ処理が終了される。
【0106】
ステップS313では、コンテンツが中継される。具体的には、ステップS311で異なるプロトコルへ送信された第2検索要求メッセージに対応するコンテンツが受信され、取得される。例えば、ステップS310で受信された第2検索要求メッセージがIPv4で通信可能なノード装置により送信された場合、IPv6により通信可能なノード装置からコンテンツが受信される。受信されたコンテンツは、コンテンツデータ一時記憶領域31に一時記憶される。そして、ステップS311でRAM3の所定の記憶領域に記憶された変更前のノード情報と、変更後のノード情報とに基づいて、第2検索要求メッセージの送信元のノード装置へ受信されたコンテンツが中継される。中継されるコンテンツは、ステップS313でコンテンツデータ一時記憶領域31に一時記憶されたコンテンツである。これにより、IPv6で通信可能なノード装置により保存されたコンテンツが、IPv4で通信可能なノード装置へ中継することができる。一方、ステップS310で受信された第2検索要求メッセージがIPv6で通信可能なノード装置により送信された場合、IPv4により通信可能なノード装置からコンテンツが受信される。そして、ステップS311でRAM3の所定の記憶領域に記憶された変更前のノード情報と、変更後のノード情報とに基づいて、第2検索要求メッセージの送信元のノード装置へ受信されたコンテンツが中継される。これにより、IPv4で通信可能なノード装置により保存されたコンテンツが、IPv6で通信可能なノード装置へ中継することができる。本実施形態のコンピュータとステップS313とは、本発明の中継部の一例である。
【0107】
(ダウンロード処理)
図10は、ダウンロード処理動作を示すフローチャートである。ステップS401では、第2ルーティングテーブルに基づいて、第1検索要求メッセージが送信される。第2ルーティングテーブルに登録されたノード装置に向けて、第1検索要求メッセージが送信される。本実施形態のコンピュータとステップS401とは、本発明の第1送信部の一例である。また、本実施形態のステップS401は、本発明の第1送信ステップの一例である。
【0108】
ステップS402では、所定期間以内に、検索応答メッセージが受信されたか否かが判定される。検索応答メッセージは、ステップS401で送信された第1検索要求メッセージに応答するメッセージである。第1検索要求メッセージにより検索されたコンテンツが発見されたとき、検索応答メッセージが受信される。所定期間以内に検索応答メッセージが受信されたと判定された場合(ステップS402:Yes)、ステップS405が実行される。所定期間以内に検索応答メッセージが受信されたと判定されなかった場合(ステップS402:No)、ステップS403が実行される。
【0109】
ステップS403では、第1ルーティングテーブルに基づいて、第1検索要求メッセージが送信される。第1ルーティングテーブルに登録されたノード装置に向けて、第1検索要求メッセージが送信される。本実施形態のコンピュータとステップS403とは、本発明の第1送信部の一例である。また、本実施形態のステップS403は、本発明の第1送信ステップの一例である。
【0110】
ステップS404では、所定期間以内に、検索応答メッセージが受信されたか否かが判定される。検索応答メッセージは、ステップS403で送信された第1検索要求メッセージに応答するメッセージである。第1検索要求メッセージにより検索されたコンテンツが発見されたとき、検索応答メッセージが受信される。所定期間以内に検索応答メッセージが受信されたと判定された場合(ステップS404:Yes)、ステップS405が実行される。所定期間以内に検索応答メッセージが受信されたと判定されなかった場合(ステップS404:No)、ステップS407が実行される。
【0111】
ステップS405では、ステップS402またはステップS404で受信された検索応答メッセージに基づいて、コンテンツの取得先が決定される。検索応答メッセージには、コンテンツ保持ノード装置のノード情報が含まれる。つまり、検索応答メッセージには、上述したインデックス情報が含まれる。検索応答メッセージが含むコンテンツ保持ノードのノード情報に基づいて、コンテンツの取得先が決定される。
【0112】
ステップS406では、ステップS405で決定された取得先から、コンテンツがダウンロードされる。
【0113】
ステップS407では、エラーが通知される。これは、第1検索要求メッセージに対応するコンテンツが検索できなかったことを表す通知である。
【0114】
(第2メッセージ処理)
図11は、第2メッセージ処理を示すフローチャートである。まず、ステップS501では、パブリッシュメッセージが送信されるか否かが判定される。ノード装置Tm−nにより送信されるメッセージがパブリッシュメッセージであるか否かが判定される。パブリッシュメッセージが送信されると判定された場合(ステップS501:Yes)、ステップS502が実行される。パブリッシュメッセージが送信されると判定されなかった場合(ステップS501:No)、ステップS503が実行される。
【0115】
ステップS502では、ノード装置Tm−nのバージョン情報に対応するルーティングテーブルが決定される。そして、決定されたルーティングテーブルに登録されたノード装置Tm−nへ、パブリッシュメッセージが送信される。例えば、ノード装置Tm−nのバージョン情報がIPv4の場合、第1ルーティングテーブルが決定される。一方、ノード装置Tm−nのバージョン情報がIPv6の場合、第2ルーティングテーブルが決定される。決定された第1ルーティングテーブルまたは第2ルーティングテーブルに登録されたノード装置へ、パブリッシュメッセージが送信される。本実施形態のコンピュータとステップS502とは、本発明の第1送信部の一例である。また、本実施形態のステップS502は、本発明の第1送信ステップの一例である。
【0116】
ステップS503では、第2検索要求メッセージが送信されるか否かが判定される。ノード装置Tm−nにより送信されるメッセージが第2検索要求メッセージであるか否かが判定される。第2検索要求メッセージが送信されると判定された場合(ステップS503:Yes)、ステップS504が実行される。第2検索要求メッセージが送信されると判定されなかった場合(ステップS503:No)、ステップS508が実行される。
【0117】
ステップS504では、ステップS503で第2検索要求メッセージが送信されてから所定の期間以内に、検索応答メッセージが受信されたか否かが判定される。所定の期間は、ノード装置Tm−nに備えられたタイマーにより計時される。なお、タイマーは図示していない。所定の期間以内に検索応答メッセージが受信されたと判定された場合(ステップS504:Yes)、ステップS505が実行される。所定の期間以内に検索応答メッセージが受信されたと判定されなかった場合(ステップS504:No)、ステップS507が実行される。
【0118】
ステップS505では、ステップS504で受信された検索応答メッセージに基づいて、コンテンツの取得先が決定される。検索応答メッセージには、コンテンツ保持ノード装置のノード情報が含まれる。つまり、検索応答メッセージには、上述したインデックス情報が含まれる。検索応答メッセージが含むコンテンツ保持ノードのノード情報に基づいて、コンテンツの取得先が決定される。
【0119】
ステップS506では、ステップS505で決定された取得先から、コンテンツがダウンロードされる。
【0120】
ステップS507では、エラーが通知される。これは、第2検索要求メッセージに対応するコンテンツが検索できなかったことを表す通知である。
【0121】
ステップS508では、その他メッセージが送信されるか否かが判定される。その他メッセージは、例えば、コンテンツ分散保存システムSを制御する制御メッセージである。その他メッセージが送信されると判定された場合(ステップS508:Yes)、ステップS509が実行される。その他メッセージが送信されると判定されなかった場合(ステップS508:No)、ステップS510が実行される。
【0122】
ステップS509では、ノード装置Tm−nのバージョン情報に対応するルーティングテーブルが決定される。そして、決定されたルーティングテーブルに登録されたノード装置Tm−nへ、その他メッセージが送信される。例えば、ノード装置Tm−nのバージョン情報がIPv4の場合、第1ルーティングテーブルが決定される。一方、ノード装置Tm−nのバージョン情報がIPv6の場合、第2ルーティングテーブルが決定される。決定された第1ルーティングテーブルまたは第2ルーティングテーブルに登録されたノード装置へ、その他メッセージが送信される。本実施形態のコンピュータとステップS509とは、本発明の第1送信部の一例である。また、本実施形態のステップS509は、本発明の第1送信ステップの一例である。
【0123】
ステップS510では、第2検索要求メッセージが受信されたか否かが判定される。他のノード装置から第2検索要求メッセージが受信されたか否かが判定される。第2検索要求メッセージが受信されたと判定された場合(ステップS510:Yes)、ステップS511が実行される。第1検索要求メッセージが受信されたと判定されなかった場合(ステップS510:No)、第2メッセージ処理が終了される。
【0124】
ステップS511では、第2検索要求メッセージに対応するコンテンツが記憶されているか否かが判定される。第2検索要求メッセージが含むコンテンツIDに対応するコンテンツが、ノード装置Tm−nの記憶手段に記憶されているか否かが判定される。第2検索要求メッセージに対応するコンテンツが記憶されていると判定された場合(ステップS511:Yes)、ステップS512が実行される。第2検索要求メッセージに対応するコンテンツが記憶されていると判定されなかった場合(ステップS511:No)、ステップS513が実行される。
【0125】
ステップS512では、ステップS511で記憶していると判定されたコンテンツが、第2検索要求メッセージの送信元へ送信される。第2検索要求メッセージは、第2検索要求メッセージの送信元のノード装置のIPアドレスを含んでいる。そのため、第2検索要求メッセージに対応するコンテンツが、第2検索要求メッセージの送信元へ送信される。
【0126】
ステップS513では、ステップS510で受信したと判定された第2検索要求メッセージが転送される。本実施形態の第2検索要求メッセージは、第2検索要求メッセージの送信元のノード装置のバージョン情報を含んでいる。そのため、第2検索要求メッセージが含むバージョン情報に対応するルーティングテーブルが選択される。ステップS513を実行するノード装置はIPv4とIPv6とのいずれか一方でのみ通信可能なノード装置である。そのため、ステップS513では、第2検索要求メッセージがIPv4で通信可能なノード装置により送信された場合、第1ルーティングテーブルに登録されたノード装置へ第2検索要求メッセージが送信される。つまり、IPv4で通信可能なノード装置へ第2検索要求メッセージが送信される。一方、第2検索要求メッセージがIPv6で通信可能なノード装置により送信された場合、第2ルーティングテーブルに登録されたノード装置へ第2検索要求メッセージが送信される。つまり、IPv6で通信可能なノード装置へ第2検索要求メッセージが送信される。
【0127】
上記実施形態においては、オーバーレイネットワークに、DHTのルーティングテーブルを利用したピアツーピアの通信システムが適用されていたが、これに限られるものではない。他のピアツーピアの通信システム、または、オーバーレイネットワークを用いたシステムに、本発明が適用されても良い。例えば、DHT以外のルーティングテーブルが用いられる通信システムまたはピアツーピアの通信システムに本発明が適用されても良い。DHTを利用しないピアツーピアの通信システムとしては、例えば、ハイブリッド型のピアツーピアの通信システムがある。ハイブリッド型のピアツーピアの通信システム、または、ピュア型のピアツーピアの通信システムに本発明が適用されても良い。
【符号の説明】
【0128】
1 CPU
2 HDD
3 RAM
4 デコーダ部
5 映像処理部
6 ディスプレイ
7 音声処理部
8 スピーカ
9 通信部
21 プログラム記憶領域
22 メイン動作処理プログラム記憶領域
23 ルーティングテーブル生成プログラム記憶領域
24 第1メッセージ処理プログラム記憶領域
25 第2メッセージ処理プログラム記憶領域
26 ダウンロード処理プログラム記憶領域
27 アドレス情報記憶領域
28 第1ルーティングテーブル記憶領域
29 第2ルーティングテーブル記憶領域
30 バージョン情報記憶領域
31 コンテンツデータ一時記憶領域
Tm−n ノード装置
NW ネットワーク
FW ファイアーウォール
BR ブロードバンドルータ
S コンテンツ分散保存システム
PW 第1オーバーレイネットワーク
PL 第2オーバーレイネットワーク

【特許請求の範囲】
【請求項1】
複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムであって、
前記ノード装置は、
前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との少なくとも何れか一方を取得するプロトコル取得部と、
前記プロトコル取得手段により取得されたプロトコルが、IPv4であるか、IPv6であるかを判定する判定部と、
前記判定部により、前記プロトコル取得部により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する第1テーブル取得部と、
前記判定部により、前記プロトコル取得部により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを取得する第2テーブル取得部と、
前記プロトコル取得部により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れか一方に登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信部と、
を備えることを特徴とする情報通信システム。
【請求項2】
前記情報通信システムは、
IPv4により通信可能であり、且つ、前記情報通信システムへ参加する際に前記ノード装置から送信される参加メッセージを受信する第1ノード装置と、
IPv6により通信可能であり、且つ、前記情報通信システムへ参加する際に前記ノード装置から送信される参加メッセージを受信する第2ノード装置と、
を備え、
前記ノード装置の前記第1送信部は、前記プロトコル取得部により取得されたプロトコルで通信可能な前記第1ノード装置、または、前記第2ノード装置へ前記参加メッセージを送信する第2送信部を備え、
前記第2送信部により送信された前記参加メッセージに基づいて、前記第1テーブル取得部または前記第2テーブル取得部は、前記第1ノード装置または前記第2ノード装置が記憶するルーティングテーブルの少なくとも一部を、前記第1ノード装置または前記第2ノード装置から取得することを特徴とする請求項1に記載の情報通信システム。
【請求項3】
複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムのノード装置であって、
前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との少なくとも何れか一方を取得するプロトコル取得部と、
前記プロトコル取得手段により取得されたプロトコルが、IPv4であるか、IPv6であるかを判定する判定部と、
前記判定部により、前記プロトコル取得部により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する第1テーブル取得部と、
前記判定部により、前記プロトコル取得部により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを取得する第2テーブル取得部と、
前記プロトコル取得部により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れか一方に登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信部と、
を備えることを特徴とするノード装置。
【請求項4】
前記複数のノード装置のいずれかから取得したデータを記憶する記憶部を備え、
前記ノード装置が前記記憶部にデータを記憶したことを前記複数のノード装置に通知する通知メッセージであって、データを記憶した前記ノード装置の前記所在情報を含む前記通知メッセージを、前記プロトコル取得部により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れか一方に登録された前記ノード装置へ、前記第1送信部は送信することを特徴とする請求項3に記載のノード装置。
【請求項5】
前記第1送信部は、前記複数のノード装置の中から所望のコンテンツを保持する1以上のコンテンツ保持ノード装置の前記ネットワーク上における所在を示す所在情報を検索する検索メッセージをさらに送信し、
前記判定部により、IPv4とIPv6との両方で通信可能であると判定し、且つ、前記第1送信部が前記検索メッセージを送信する場合、前記第1送信部は、前記第1ルーティングテーブルよりも前記第2ルーティングテーブルに登録された前記所在情報を優先して、前記検索メッセージを送信することを特徴とする請求項3または請求項4に記載のノード装置。
【請求項6】
前記プロトコル取得部は、IPv4とIPv6との両方を取得し、
前記ノード装置は、
前記情報通信システムを制御するメッセージを受信する受信部を備え、
前記受信部により制御メッセージを受信したノード装置が、IPv4とIPv6との両方で通信可能な場合、前記第1送信部は、前記受信部により受信されたメッセージを、前記受信されたメッセージの送信元のノード装置が通信可能なプロトコルと異なるプロトコルへ送信することを特徴とする請求項3から請求項5のいずれか一項に記載のノード装置。
【請求項7】
前記受信部が、前記複数のノード装置の中から所望のコンテンツを保持する1以上のコンテンツ保持ノード装置の前記ネットワーク上における所在を示す所在情報を検索する検索メッセージを受信し、且つ、前記受信部により制御メッセージを受信したノード装置が、IPv4とIPv6との両方で通信可能な場合、前記第1送信部は、前記受信部により受信された検索メッセージを、前記受信されたメッセージの送信元のノード装置が通信可能なプロトコルと異なるプロトコルへ送信し、
前記ノード装置は、
前記異なるプロトコルを介して、前記検索メッセージに対応するコンテンツを取得する取得部と、
前記取得部により取得されたコンテンツを、前記受信部により受信されたメッセージの送信元のノード装置へ中継する中継部と、
を備えることを特徴とする請求項6に記載のノード装置。
【請求項8】
複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムの情報通信方法であって、
前記ノード装置により取得されたプロトコルに基づいて、前記ノード装置により通信可能なプロトコルが、IPv4であるか、IPv6であるかを前記ノード装置が判定する判定ステップと、
前記判定ステップにより、前記ノード装置により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを前記ノード装置が取得する第1テーブル取得ステップと、
前記判定ステップにより、前記ノード装置により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを前記ノード装置が取得する第2テーブル取得ステップと、
前記ノード装置により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れかに登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信ステップと、
を含む情報通信方法。
【請求項9】
複数のノード装置により構成されるオーバーレイネットワークによりデータを送受信する情報通信システムのノード装置のコンピュータに、
前記ノード装置により取得されたプロトコルに基づいて、前記ノード装置により通信可能なプロトコルが、IPv4であるか、IPv6であるかを判定する判定ステップと、
前記判定ステップにより、前記ノード装置により取得されたプロトコルがIPv4であると判定された場合、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブルを取得する第1テーブル取得ステップと、
前記判定ステップにより、前記ノード装置により取得されたプロトコルが、IPv6であると判定された場合、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルを取得する第2テーブル取得ステップと、
前記ノード装置により取得されたプロトコルに対応した前記第1ルーティングテーブルまたは前記第2ルーティングテーブルの少なくとも何れかに登録された前記ノード装置へ、情報通信システムを制御するメッセージを送信する第1送信ステップと、
を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−54648(P2012−54648A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−193509(P2010−193509)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】