説明

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

【課題】 本発明は、IPv4とIPv6とが共存するネットワーク環境であっても、P2Pシステムを動作させることが可能な情報通信システム、ノード装置、情報通信方法及びプログラム等を提供することを目的とする。
【課題を解決するための手段】
参加ノード装置Bから参加メッセージを受信したコンタクトノード装置は、コンタクトノード装置が記憶する第1ノード装置のノード情報を参加ノード装置Bへ送信する。第1ノード装置のノード情報を受信した参加ノード装置Bは、第1ノードへ接続する。第1ノード装置のノード情報が含むIPアドレスに基づいて、参加ノード装置Bは第1ノード装置に接続する。このとき、参加ノード装置Bと、第1ノード装置との間にセッションを確立する。

【発明の詳細な説明】
【技術分野】
【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システムに接続するノード装置に、夫々異なるプロトコルが割り当てられる。例えば、あるノード装置AにIPv4が割り当てられ、ノード装置Aと異なるノード装置BにIPv6が割り当てられる。この場合、ノード装置Aとノード装置BとがP2Pによりデータ通信を行うと、プロトコルが異なるため通信できず、P2Pシステムを動作させることができなかった。
【0005】
本発明は、以上の点に鑑みてなされたものである。本発明は、IPv4とIPv6とが共存するネットワーク環境であっても、P2Pシステムを動作させることが可能な情報通信システム、ノード装置、情報通信方法及びプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信する情報通信システムであって、前記複数のノード装置のいずれかの前記ノード装置が、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段と、前記複数のノード装置のいずれかであって、前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段と、前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信手段と、前記情報通信システムに参加する参加ノード装置から、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信手段と、前記受信手段により受信された参加メッセージが含む前記プロトコル情報が、前記第1記憶手段により記憶されたルーティングテーブルのプロトコルと一致するかを判定する判定手段と、前記判定手段により一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、前記判定手段により一致すると判定されなかったとき、前記参加ノード装置へ、前記第2記憶手段に記憶された前記第1ノード装置の前記所在情報を送信する送信手段と、を備えることを特徴とする情報通信システムである。
【0007】
請求項2に記載の発明によれば、前記参加ノード装置は、前記送信手段により送信された前記第1ノード装置の前記所在情報を取得する第1取得手段と、前記第1取得手段により取得された前記所在情報が示す前記第1ノード装置へ、前記参加ノード装置で通信可能なプロトコルを用いてセッションを生成する第1生成手段と、を備え、前記第1ノード装置は、前記第1生成手段によりセッションを生成された前記参加ノード装置から、所定の前記データの要求を受信する要求受信手段と、前記要求受信手段により要求された前記データを、前記第2記憶手段が記憶する前記オーバーレイネットワークへ要求する第2要求手段と、前記第2要求手段により要求された前記データを、前記オーバーレイネットワークに接続するノード装置のいずれかから取得する第2取得手段と、前記データ取得手段により取得された前記データを、前記参加ノード装置へ中継する中継手段と、を備えることを特徴とする。
【0008】
請求項3に記載の発明によれば、前記参加ノード装置は、前記データを記憶する第3記憶手段と、前記第3記憶手段に記憶されたデータを、前記オーバーレイネットワークで公開する公開手段と、前記公開手段により前記データを公開する前に、前記公開手段により公開される前記データを、前記オーバーレイネットワークを用いて検索する検索手段と、
を備え、前記検索手段により前記公開されるデータが検索されなかったとき、前記公開手段は、前記データを公開することを特徴とする。
【0009】
請求項4に記載の発明によれば、前記受信手段により受信された前記参加メッセージが含む前記プロトコル情報が、IPv4とIPv6との両方で通信可能なことを示す場合、前記第2記憶手段は、前記参加ノード装置を前記第1ノード装置として、前記参加ノード装置の前記所在情報を記憶することを特徴とする。
【0010】
請求項5に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信する情報通信システムが含む前記複数のノード装置のいずれかの前記ノード装置であって、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段と、前記複数のノード装置のいずれかであって、前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段と、前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信手段と、前記情報通信システムに参加する参加ノード装置から、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信手段と、前記受信手段により受信された参加メッセージが含む前記プロトコル情報が、前記第1記憶手段により記憶されたルーティングテーブルのプロトコルと一致するかを判定する判定手段と、前記判定手段により一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、前記判定手段により一致すると判定されなかったとき、前記参加ノード装置へ、前記第2記憶手段に記憶された前記第1ノード装置の前記所在情報を送信する送信手段と、を備えることを特徴とするノード装置である。
【0011】
請求項6に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信し、前記複数のノード装置のいずれかの前記ノード装置により実行される情報通信方法であって、前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信ステップと、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段により記憶されたルーティングテーブルのプロトコルと、前記受信ステップにより受信された参加メッセージが含む前記プロトコル情報とが一致するかを判定する判定ステップと、前記判定ステップにより一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、前記判定ステップにより一致すると判定されなかったとき、前記複数のノード装置のいずれかであって前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段に記憶された前記第1ノード装置の前記所在情報を、前記参加ノード装置へ送信する送信ステップと、を含む情報通信方法である。
【0012】
請求項7に記載の発明によれば、複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信し、前記複数のノード装置のいずれかの前記ノード装置のコンピュータに、前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信ステップと、IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段により記憶されたルーティングテーブルのプロトコルと、前記受信ステップにより受信された参加メッセージが含む前記プロトコル情報とが一致するかを判定する判定ステップと、前記判定ステップにより一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、前記判定ステップにより一致すると判定されなかったとき、前記複数のノード装置のいずれかであって前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段に記憶された前記第1ノード装置の前記所在情報を、前記参加ノード装置へ送信する送信ステップと、を実行させることを特徴とするプログラムである。
【発明の効果】
【0013】
請求項1に記載の発明によれば、判定手段は、受信手段により受信された参加メッセージが含むプロトコル情報が、第1記憶手段により記憶されたルーティングテーブルのプロトコルと一致するかを判定する。判定手段により一致すると判定されたとき、参加ノード装置へ、送信手段は、一致すると判定されたルーティングテーブルの少なくとも一部を送信する。そして、判定手段により一致すると判定されなかったとき、送信手段は、参加ノード装置へ、第2記憶手段に記憶された第1ノード装置の所在情報を送信する。従って、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致した場合、参加ノード装置は取得したルーティングテーブルでオーバーレイネットワークを用いて参加することができる。また、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致しなかった場合、IPv4またはIPv6との両方で通信可能なノード装置の所在情報を取得することができる。この結果、IPv4とIPv6のいずれかでしか通信できないノード装置であっても、IPv4とIPv6とが共存するネットワーク環境で2Pシステムを動作させることが可能になる。
【0014】
請求項2に記載の発明によれば、第1ノード装置は、第2要求手段により要求されたデータを、オーバーレイネットワークに接続するノード装置のいずれかから取得する第2取得手段を備える。また。第1ノード装置は、データ取得手段により取得されたデータを、参加ノード装置へ中継する中継手段を備える。従って、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致しなかった場合であっても、IPv4またはIPv6との両方で通信可能なノード装置とセッションを生成して、通信を行うことができる。この結果、IPv4とIPv6との両方で通信可能なノード装置が、IPv4とIPv6のいずれかでしか通信できないノード装置にデータを中継することができる。そのため、IPv4とIPv6とが共存するネットワーク環境で2Pシステムを動作させることが可能になる。
【0015】
参加ノード装置は、IPv4またはIPv6の何れかでしか通信できないノード装置である場合がある。そのため、参加ノード装置へデータを中継する必要がある。データを安定的に通信するために、参加ノード装置はできる限り、データのアップロードを控えた方が良い。請求項3に記載の発明によれば、参加ノード装置は、第3記憶手段に記憶されたデータを、オーバーレイネットワークで公開する公開手段を備える。また、検索手段により公開されるデータが検索されなかったとき、公開手段は、データを公開する。この結果、検索手段によりデータが検索できなかった場合に、データを公開するため、参加ノード装置は、できる限りデータのアップロードを控え、中継処理の発生を防ぎ、効率良く通信することができる。
【0016】
請求項4に記載の発明によれば、受信手段により受信された参加メッセージが含むプロトコル情報が、IPv4とIPv6との両方で通信可能なことを示す場合、第2記憶手段は、参加ノード装置を第1ノード装置として、参加ノード装置の所在情報を記憶する。この結果、ノード装置が情報通信システムに参加する時に、IPv4とIPv6との両方で通信可能なノード装置を知ることができる。
【0017】
請求項5に記載の発明によれば、判定手段は、受信手段により受信された参加メッセージが含むプロトコル情報が、第1記憶手段により記憶されたルーティングテーブルのプロトコルと一致するかを判定する。判定手段により一致すると判定されたとき、参加ノード装置へ、送信手段は、一致すると判定されたルーティングテーブルの少なくとも一部を送信する。そして、判定手段により一致すると判定されなかったとき、送信手段は、参加ノード装置へ、第2記憶手段に記憶された第1ノード装置の所在情報を送信する。従って、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致した場合、参加ノード装置は取得したルーティングテーブルでオーバーレイネットワークを用いて参加することができる。また、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致しなかった場合、IPv4またはIPv6との両方で通信可能なノード装置の所在情報を取得することができる。この結果、IPv4とIPv6のいずれかでしか通信できないノード装置であっても、IPv4とIPv6とが共存するネットワーク環境で2Pシステムを動作させることが可能になる。
【0018】
請求項6に記載の発明によれば、送信ステップは、判定ステップにより一致すると判定されたとき、参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信する。また、送信ステップは、判定ステップにより一致すると判定されなかったとき、複数のノード装置のいずれかであって、ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段に記憶された第1ノード装置の所在情報を、参加ノード装置へ送信する。従って、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致した場合、参加ノード装置は取得したルーティングテーブルでオーバーレイネットワークを用いて参加することができる。また、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致しなかった場合、IPv4またはIPv6との両方で通信可能なノード装置の所在情報を取得することができる。この結果、IPv4とIPv6のいずれかでしか通信できないノード装置であっても、IPv4とIPv6とが共存するネットワーク環境で2Pシステムを動作させることが可能になる。
【0019】
請求項7に記載の発明によれば、送信ステップは、判定ステップにより一致すると判定されたとき、参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信する。また、送信ステップは、判定ステップにより一致すると判定されなかったとき、複数のノード装置のいずれかであって、ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段に記憶された第1ノード装置の所在情報を、参加ノード装置へ送信する。従って、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致した場合、参加ノード装置は取得したルーティングテーブルでオーバーレイネットワークを用いて参加することができる。また、ルーティングテーブルで通信可能なプロトコルと、参加ノード装置のプロトコルとが一致しなかった場合、IPv4またはIPv6との両方で通信可能なノード装置の所在情報を取得することができる。この結果、IPv4とIPv6のいずれかでしか通信できないノード装置であっても、IPv4とIPv6とが共存するネットワーク環境で2Pシステムを動作させることが可能になる。
【図面の簡単な説明】
【0020】
【図1】本実施形態における情報通信システムSにおける各ノード装置Tm−nの接続態様の一例を示す図である。
【図2】参加ノード装置A及び参加ノード装置Bの参加処理の説明を示す説明図である。
【図3】参加ノード装置Cの参加処理の説明を示す説明図である。
【図4】本実施形態のコンタクトノードの電気的構成を示すブロック図である。
【図5】本実施形態のノード装置及び第1ノード装置の電気的構成を示すブロック図である。
【図6】コンタクトノードにおけるコンタクトノードメイン動作の処理手順を示すフローチャートである。
【図7】ノード装置及び第1ノード装置におけるノード装置メイン動作の処理手順を示すフローチャートである。
【図8】参加メッセージ処理の処理手順を示すフローチャートである。
【図9】パブリッシュ処理の処理手順を示すフローチャートである。
【発明を実施するための最良の形態】
【0021】
[最良の実施形態]
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、ピアツーピア型の情報通信システムに本発明を適用した場合の実施形態である。
【0022】
[情報通信システムの概要構成]
始めに、図1を参照して、本実施形態における情報通信システムSの概要構成について説明する。図1は、本実施形態における情報通信システムSにおける各ノード装置の接続態様の一例を示す図である。
【0023】
図1に示すように、情報通信システムSは、複数のノード装置Tm−n(n=1,2,3・・・の何れか)から構成されている。複数のノード装置Tm−nは、ネットワークNWを介して互いに通信可能である。このネットワークNWは、現実世界の通信ネットワークである。例えば、インターネットである。
【0024】
ネットワークNWは、各拠点ネットワークNLm(m=1,2,3・・・の何れか)を相互接続するためのネットワークである。このネットワークNWは、例えば、インターネットやWAN(Wide Area Network)等である。そして、ネットワークNWは、例えば、
IX(Internet Exchange)、ISP(Internet Service Provider)、DSL(Digital Subscriber Line)回線事業者の装置、FTTH(Fiber To The Home)回線事業者の装置、及び通信回線等によって構築されている。なお、ネットワークNWは、情報通信システムS専用のネットワークであっても良い。
【0025】
本実施形態では、ネットワークNW内に、1つ以上の各拠点ネットワークNLmが形成される。また、各拠点ネットワークNLmには、複数のノード装置Tm−n(n=1,2,3・・・の何れか)が接続されている。各拠点ネットワークNLmは、夫々拠点mの敷地内に構築されたネットワークである。拠点としては、例えば、会社、学校、病院、塾、カラオケボックス等がある。この拠点ネットワークNLmは、例えば、LAN等により構築されている。或いは、拠点ネットワークNLmは、複数のLANが相互接続して構築されたネットワークであっても良い。この場合、複数のLANは、ルータ等のネットワーク機器を介して接続される。複数のLANが相互接続されたネットワークとしては、例えば、CAN(Campus Area Network)等がある。各拠点ネットワークNLmには、ファイアウォールFW又はブロードバンドルータBRが接続されている。ファイアウォールFW又はブロードバンドルータBRは、拠点内に接続されるノード装置Tm−nと、その拠点に接続されるノード装置Tm−n以外のノード装置Tm−nとを通信可能にする通信機器である。ファイアウォールFW又はブロードバンドルータBRは、公知であるので詳細な説明は省略する。ファイアウォールFW又はブロードバンドルータBRの何れが拠点に設置されるかは、拠点毎に任意に決定される。本実施形態の拠点ネットワークNLmは、例えば、LAN(Local Area Network)である。
【0026】
また、ネットワークNWには、センターサーバと投入サーバとが接続されている。センターサーバと投入サーバとは特に図示していない。センターサーバは、後述するオーバーレイネットワークOLで送受信されるコンテンツデータのオリジナルを記憶する。また、センターサーバは、コンテンツカタログ情報をノード装置Tm−nに送信する。コンテンツカタログ情報の詳細については後述する。投入サーバは、後述するオーバーレイネットワークOLにコンテンツデータを投入するサーバ装置である。ここで、コンテンツデータの投入とは、コンテンツデータをノード装置Tm−nから取得可能な状態におくことをいう。なお、コンテンツデータを、「コンテンツ」という。
【0027】
各ノード装置Tm−nには、固有の製造番号及びIP(Internet Protocol)アドレスが割り当てられている。本実施形態では、ノード装置Tm−nは、IPv4のみで通信可能なノード装置と、IPv6のみで通信可能なノード装置と、IPv4とIPv6との双方で通信可能なノード装置とが存在する。
【0028】
また、情報通信システムSに接続されている各ノード装置Tm−nには、所定桁数からなる固有の識別情報であるノードIDが割り当てられている。本実施形態の情報通信システムSでは、コンテンツ配信のためのオーバーレイネットワークOLが構築されている。オーバーレイネットワークOLは、ネットワークNW上に構築されたオーバーレイネットワークである。言い換えれば、オーバーレイネットワークOLは、物理的なネットワーク上に生成される論理的なネットワークである。また、オーバーレイネットワークOLは、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。分散ハッシュテーブルを、以下、「DHT(Distributed Hash Table)」という。なお、DHTを用いたルーティングテーブルについては、特開2006−197400号公報等で公知である。
【0029】
本実施形態では、各ノード装置Tm−nがピアツーピア方式で通信を行えるよう、ブロードバンドルータBRやファイアウォールFWにおいてポートフォワーディングの設定が行われる場合がある。例えば、ブロードバンドルータBRであれば、UPnP(Universal Plug and Play)機能等を利用して自動的にポートフォワーディングの設定が行われるようにしておくと良い。以下ノード装置Tm−nを、単にノード装置と呼ぶ。
【0030】
[オーバーレイネットワークOLへの参加方法について]
オーバーレイに参加するノード装置は、夫々、DHTを用いたルーティングテーブルを記憶している。このルーティングテーブルは、情報通信システムS上における各種制御メッセージの転送先を規定している。制御メッセージは、P2Pの情報通信システムの運用を制御するメッセージである。言い換えれば、制御メッセージは、P2Pの情報通信システムで、コンテンツの検索又はコンテンツの取得に用いるためのメッセージである。また、制御メッセージは、DHTのルーティングテーブルに従って送受信されるメッセージである。具体的に、このルーティングテーブルには、ID空間内で適度に離れたノード装置のノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。情報通信システムSに接続している1台のノード装置は、必要最低限のノード装置のノード情報をルーティングテーブルとして記憶している。各ノード装置間で互いに制御メッセージが転送されることで、ノード情報を記憶していないノード装置についてのノード情報が取得される。また、制御メッセージが、各ノード装置により送受信されることで、情報通信システムSは、ピアツーピア型の情報通信システムとして動作可能である。
【0031】
本実施形態では、IPv4で通信可能なノード装置の参加により、オーバーレイネットワークOLは形成される。そのため、IPv6のみで通信可能なノード装置は、オーバーレイネットワークOLに参加することができない。本実施形態では、IPv4で通信可能なノード装置でオーバーレイネットワークOLが形成されたが、これに限定されるものではない。例えば、IPv6で通信可能なノード装置により、オーバーレイネットワークOLが形成されても良い。この場合、IPv4のみで通信可能なノード装置は、オーバーレイネットワークOLに参加することができない。また、情報通信システムSに参加するノード装置の中で、IPv4よりもIPv6が付与されたノード装置が多い場合、IPv6で通信可能なノード装置によりオーバーレイネットワークOLが形成されても良い。また、情報通信システムSに参加するノード装置の中で、IPv6よりもIPv4が付与されたノード装置が多い場合、IPv4で通信可能なノード装置によりオーバーレイネットワークOLが形成されても良い。
【0032】
なお情報通信システムSへの接続は、情報通信システムSへ接続していないノード装置が、接続している任意のノード装置に対して情報通信システムSへの参加要求を示す参加メッセージを送信することによって行われる。情報通信システムSへの参加とは、ノード装置が情報通信システムSに接続され、情報通信システムSからコンテンツデータを取得可能になることである。任意のノード装置は、例えば、情報通信システムSに常時接続しているコンタクトノードである。情報通信システムSへ参加するノード装置が、コンタクトノードへ参加メッセージを送信することで、ノード装置は、DHTのルーティングテーブルをコンタクトノードから取得することができる。以下、本実施形態の参加処理の概要について説明する。
【0033】
[参加処理の概要について]
図2及び図3は、本実施形態の参加処理を説明する説明図である。本実施形態では、オーバーレイネットワークOLに新たに参加するノード装置を参加ノード装置と呼ぶ。本実施形態の参加ノード装置は、IPv4のみで通信可能なノード装置と、IPv6のみで通信可能なノード装置と、IPv4とIPv6との双方で通信可能なノード装置とが存在する。まず、IPv4のみで通信可能なノード装置の参加処理について説明する。以下、図2に示すように、IPv4のみで通信可能な参加ノード装置を参加ノード装置Aと呼ぶ。
【0034】
(参加ノード装置Aの参加処理)
まず、参加ノード装置AがオーバーレイネットワークOLに参加するために、参加ノード装置Aは、コンタクトノードへ参加メッセージを送信する(図2:矢印(1))。本実施形態の参加メッセージには、参加ノード装置Aのノード情報と、参加メッセージを送信したノード装置Tm−nのバージョン情報が含まれる。バージョン情報は、ノード装置のプロトコルを示す情報である。例えば、参加ノード装置Aは、IPv4のみで通信可能なノード装置である。この場合、参加ノード装置Aのバージョン情報は、IPv4を示す情報である。また、参加ノード装置Bは、IPv6のみで通信可能なノード装置である。この場合、参加ノード装置Bのバージョン情報は、IPv6を示す情報である。また、参加ノード装置Cは、IPv4とIPv6との両方で通信可能なノード装置である。このため、参加ノード装置Cのバージョン情報は、IPV4とIPv6とを示す情報である。これらバージョン情報が参加メッセージに含まれることで、コンタクトノードは、参加ノード装置が通信可能なプロトコルを把握することができる。参加ノード装置Aのバージョン情報は、IPv4を示す。そのため、コンタクトノード装置は、IPv4を示すバージョン情報が含まれた参加メッセージを参加ノード装置Aから受信する。なお、本実施形態のコンタクトノードは、IPv4とIPv6との両方で通信可能なノード装置である。本実施形態のバージョン情報は、本発明のプロトコル情報の一例である。
【0035】
そして、参加メッセージを受信したコンタクトノードは、参加メッセージが含むバージョン情報の中で、オーバーレイネットワークOLを形成するノード装置のバージョン情報と一致する情報があるかを判定する。具体的には、本実施形態では、オーバーレイネットワークOLは、IPv4で通信可能なノード装置により形成されている。そのため、参加メッセージが含むバージョン情報の中で、IPv4と一致する情報があるかが判定される。バージョン情報の中で、IPv4と一致する情報があると判定されたとき、コンタクトノードが記憶するDHTのルーティングテーブルが、参加ノード装置Aに送信される。本実施形態では、参加ノード装置AはIPv4のみで通信可能なノード装置のため、コンタクトノード装置から参加ノード装置AへDHTのルーティングテーブルが送信される(図2:矢印(2))。なお、本実施形態では、参加ノード装置Aは、コンタクトノードからDHTのルーティングテーブルを受信しているがこれに限定されるものではない。例えば、参加ノード装置Aは、コンタクトノードからDHTのルーティングテーブルの一部を受信しても良い。この場合、受信した一部のDHTのルーティングテーブルに基づいて、参加ノード装置Aは、他のノード装置から、残りのDHTのルーティングテーブルを取得しても良い。
【0036】
そして、DHTのルーティングテーブルに基づいて、参加ノード装置AはオーバーレイネットワークOLに参加する(図3:矢印(3))。なお、オーバーレイネットワークOLに参加するとは、DHTを用いたルーティングテーブルに基づいてオーバーレイネットワークOLを介して他のノード装置との間で各種メッセージを送受信できる状態に稼動することをいう。
【0037】
(参加ノード装置Bの参加処理)
次に、参加ノード装置Bの参加処理の概要について説明する。図2に示す参加ノード装置BがオーバーレイネットワークOLに参加するために、参加ノード装置Bは、コンタクトノードへ参加メッセージを送信する(図2:矢印(4))。参加ノード装置Bのバージョン情報は、IPv6を示す。そのため、コンタクトノードは、IPv6を示すバージョン情報が含まれた参加メッセージを参加ノード装置Bから受信する。
【0038】
そして、参加メッセージを受信したコンタクトノードは、参加メッセージが含むバージョン情報の中で、オーバーレイネットワークOLを形成するノード装置のバージョン情報と一致する情報があるかを判定する。具体的には、本実施形態では、オーバーレイネットワークOLは、IPv4で通信可能なノード装置により形成されている。そのため、参加メッセージが含むバージョン情報の中に、IPv4と一致する情報があるかが判定される。本実施形態では、参加ノード装置BはIPv6のみで通信可能なノード装置のため、参加ノード装置Bは、オーバーレイネットワークOLに参加することができない。このとき、コンタクトノードは、第1ノード装置のノード情報を参加ノード装置Bへ送信する。本実施形態の第1ノード装置は、IPv4とIPv6との両方で通信可能なノード装置である。コンタクトノードは、第1ノード装置のノード情報を記憶している。参加ノード装置Bから参加メッセージを受信したコンタクトノードは、コンタクトノードが記憶する第1ノード装置のノード情報を参加ノード装置Bへ送信する。(図2:矢印(5))。
【0039】
第1ノード装置のノード情報を受信した参加ノード装置Bは、第1ノードへ接続する(図2:矢印(6))。第1ノード装置のノード情報が含むIPアドレスに基づいて、参加ノード装置Bは第1ノード装置に接続する。このとき、参加ノード装置Bと、第1ノード装置との間にセッションを確立する(図2:矢印(7))。
【0040】
以下、具体的に本実施形態のセッション確立について説明する。セッションを確立した参加ノード装置Bは、セッションが確立された第1ノード装置との間でP2Pの制御メッセージの送受信を行う。そして、一旦、セッションが確立された場合、制御メッセージの受信後又は送信後も、参加ノード装置Bと第1ノード装置とはセッションを保持するようになっている。セッションの保持は、第1ノード装置の所定の記憶領域に備えられたソケットテーブルに、セッション情報が登録されることにより行われる。セッション情報は、例えば、ソケットテーブルを記憶する第1ノード装置自身のノード情報と、接続先の参加ノード装置Bのノード情報と、ソケット識別子とが含まれても良い。なお、ここでの「ソケットテーブル」は公知のものではなく、本実施形態のために実装されたものである。ソケットテーブルは、IPアドレスとノードIDとを対応付けた情報である。
【0041】
また、ソケットテーブルには、複数のセッション情報を登録することができる。これにより、複数のノード装置とのセッションを保持することができる。但し、ソケットの数には限りがある。例えば、60〜120程度である。そのため、ソケットテーブルに登録されたセッション情報の数が所定数以上になった場合、最も利用されていないセッション情報から削除される。例えば、LRU(Last Recently Used)方式により、セッション情報がソケットテーブルから削除される。
【0042】
具体的には、第1ノード装置では、ソケットテーブルが設定される。第1ノード装置は、参加ノード装置Bが送信元のメッセージを受信した場合、送信元の参加ノード装置BのノードIDと、参加ノード装置BのIPアドレス及びポート番号とを対応付けてソケットテーブルに登録する。例えば、第1ノード装置が参加ノード装置Bからのセッション開始を受け付け、セッションが確立されたとする。このとき、参加ノード装置Bを送信元とする制御メッセージあって、第1ノード装置以外のノード装置宛ての制御メッセージが、第1ノード装置により受信されたとする。この場合、第1ノード装置は、参加ノード装置BのノードIDと、参加ノード装置BとのIPアドレス及びポート番号とを対応付けてソケットテーブルに登録する。
【0043】
そして、第1ノード装置は、制御メッセージに含まれる送信元である参加ノード装置Bのノード情報が含むIPアドレスを、第1ノード装置のIPアドレスに書き換える。つまり、第1ノード装置は、制御メッセージに含まれる送信元のノード装置のIPアドレスを第1ノードのIPアドレスにする。このようにIPアドレスを書き換えることで、中継された制御メッセージを受信したノード装置は、第1ノード装置へ向けて制御メッセージを返信することができる。
【0044】
また、オーバーレイネットワークOLに参加するノード装置のいずれかのノード装置を送信元とする制御メッセージを、第1ノード装置が受信する場合がある。このとき、第1ノードは、受信した制御メッセージが、第1ノード装置とセッション保持状態にある参加ノード装置Bに送信される制御メッセージであるか否かを判定する。まず、受信した制御メッセージの宛先を示すノードIDが、第1ノード装置のノードIDと一致するかが判定される。一致しなかった場合、受信した制御メッセージの宛先を示すノードIDが、ソケットテーブルに登録されているか否かが判定される。ソケットテーブルに登録されていた場合、受信したメッセージは、参加ノード装置B宛のメッセージであると判定される。そして、ソケットテーブルに登録されているIPアドレスが示す参加ノード装置Bへ、第1ノード装置は制御メッセージを中継する。一方、ソケットテーブルに登録されていなかった場合、DHTのルーティングテーブルに基づいて、受信した制御メッセージは、他のノード装置へ転送される。
【0045】
このように、制御メッセージの宛先が、第1ノード装置により、参加ノード装置BのノードIDと対応付けられてソケットテーブルに登録されている参加ノード装置Bのノード情報に書き換えられる。これにより、参加ノード装置Bを宛先として送信された制御メッセージが、第1ノード装置により中継されて、参加ノード装置Bに送信される。
【0046】
なお、このように登録された参加ノード装置BのノードIDと、IPアドレス及びポート番号とは、参加ノード装置Bとのセッションが切断された場合、第1ノード装置は参加ノード装置Bとのセッション情報をソケットテーブルから削除する。セッションが切断されたとは、第1ノード装置の記憶部からセッション情報が削除されたことである。このように、オーバーレイネットワークOLで通信可能なIPv4では通信できないノード装置であっても、第1ノード装置とセッションを形成することで、オーバーレイネットワークOLと通信することができる。
【0047】
(参加ノード装置Cの参加処理の概要)
図3は、参加ノード装置Cの参加処理の概要を示す説明図である。まず、参加ノード装置CがオーバーレイネットワークOLに参加するために、参加ノード装置Cは、コンタクトノードへ参加メッセージを送信する(図2:矢印(8))。本実施形態の参加メッセージには、参加ノード装置Cのノード情報と、参加メッセージを送信したノード装置のバージョン情報が含まれる。参加ノード装置Cのバージョン情報は、IPv4とIPv6とを示す。そのため、コンタクトノード装置は、IPv4とIPv6とを示すバージョン情報が含まれた参加メッセージを参加ノード装置Cから受信する。
【0048】
そして、参加メッセージを受信したコンタクトノードは、参加メッセージが含むバージョン情報の中で、オーバーレイネットワークOLを形成するノード装置のバージョン情報と一致する情報があるかを判定する。具体的には、本実施形態では、オーバーレイネットワークOLは、IPv4で通信可能なノード装置により形成されている。そのため、参加メッセージが含むバージョン情報の中で、IPv4と一致する情報があるかが判定される。バージョン情報の中で、IPv4と一致する情報があると判定されたとき、コンタクトノードが記憶するDHTのルーティングテーブルが、参加ノード装置Cに送信される。本実施形態では、参加ノード装置CはIPv4とIPv6との両方で通信可能なノード装置のため、コンタクトノード装置から参加ノード装置CへDHTのルーティングテーブルが送信される(図2:矢印(9))。また、参加メッセージを受信したコンタクトノードは、バージョン情報が、IPv4とIPv6との両方を示すか否かを判定する。バージョン情報が、IPv4とIPv6との両方を示すと判定された場合、コンタクトノードは、参加ノード装置Cを、第1ノード装置として登録する。具体的には、コンタクトノードが、参加メッセージに含まれる参加ノード装置Cのノード情報を第1ノード装置として記憶する。このようにして、コンタクトノード装置は第1ノード装置のノード情報を、参加ノード装置Bへ送信することができる。
【0049】
そして、DHTのルーティングテーブルに基づいて、参加ノード装置CはオーバーレイネットワークOLに参加する(図3:矢印(10))。
【0050】
[コンテンツ取得動作の概要について]
情報通信システムSにおいては、内容の異なる様々なコンテンツデータが複数のノード装置に分散して保存される。各コンテンツデータには、それぞれコンテンツ名及びコンテンツデータ毎に固有の識別情報であるコンテンツIDが付与されている。各コンテンツのコンテンツ名及びコンテンツID等の属性情報は、コンテンツカタログ情報に記述されている。コンテンツカタログ情報は、センターサーバにより作成されて、全てのノード装置に配信される。また、各コンテンツは、複数のデータに分割されている。この分割されたデータを、「チャンク」という。各チャンクは、例えば、センターサーバにより、コンテンツを所定のデータサイズで分割することにより生成される。本実施形態では、チャンクの最小データサイズは、2MB(Mega Byte)である。また、チャンクの最大データサイズは、128MBである。ただし、チャンクに分割した結果、一部のチャンクが、2MBよりも小さくなってしまう場合もある。また、チャンクに分割する前のデータサイズがもともと2MBより小さい場合、2MB未満のデータサイズのチャンクとなる場合がある。本実施形態では、コンテンツデータが複数のチャンクに分割されている。本実施形態に記載のように、コンテンツデータが複数のチャンクに分割されなくても良い。分割されていないコンテンツデータが本実施形態に適用されても良い。
【0051】
各チャンクは、複数のノード装置に分散されて保存される。これにより、元となるコン テンツが複数のノード装置に分散して保存されることになる。各チャンクのオリジナルは、センターサーバに保存されている。各チャンクには、それぞれシーケンス番号及びチャンクIDが付与されている。シーケンス番号は、例えば、分割された複数のチャンクを、元となるコンテンツを構成するように並べたときの並び順に相当する。チャンクIDは、チャンク毎に固有の識別情報である。
【0052】
各ノード装置は、あるコンテンツのコンテンツIDを取得すると、そのコンテンツを構成する各チャンクのチャンクIDを、そのシーケンス番号と対応付けて取得することができる。コンテンツを構成する各チャンクのチャンクIDは、例えば、コンテンツカタログ情報において、元となるコンテンツの属性情報中に、シーケンス番号と対応付けて記述されていても良い。
【0053】
チャンクを保存しているノード装置を、「コンテンツ保持ノード」という。また、チャンクの所在は、インデックス情報として、チャンクの所在を管理(記憶)しているノノード装置により記憶される。以下、チャンクの所在を管理しているノード装置を、「ルートノード」という。インデックス情報は、チャンクを保存したノード装置のノード情報と、チャンクのチャンクIDと等の組を含む。このようなルートノードは、例えば、チャンクIDと最も近いノードIDを有するノードNnであるように定められる。チャンクIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。
【0054】
あるノード装置のユーザが、所望のコンテンツを取得したい場合、ノード装置は、所望されたコンテンツを構成する各チャンクを保存するコンテンツ保持ノードをそれぞれ検索する。以下、ユーザによりチャンクの取得を望むノード装置を、「ユーザノード」という。具体的に、ユーザノードは、検索メッセージを送信する。この検索メッセージは、取得を望むチャンクのチャンクID及びユーザノードのノードIDを含む。この検索メッセージが、ユーザノードが記憶するDHTのルーティングテーブルに従って、他のノード装置に対して送信される。つまり、ユーザノードは、検索メッセージを、ルートノードに向けて送信する。これにより、検索メッセージは、チャンクIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。なお、DHTルーティングについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
【0055】
検索メッセージを受信したルートノードは、これに含まれるチャンクIDに対応するインデックス情報をインデックス情報キャッシュから1または複数取得する。取得されたインデックス情報は、検索メッセージの送信元であるユーザノードに対して返信される。こうしてインデックス情報を取得したユーザノードは、インデックス情報に基づいてチャンクを取得(ダウンロード)する。具体的に、ユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのIPアドレス及びポート番号等に基づいて、チャンク要求メッセージをコンテンツ保持ノードに送信する。チャンク要求メッセージには、ユーザノードのノード情報、所望するコンテンツのコンテンツID及び取得を望むチャンクのチャンクIDが含まれている。チャンク要求メッセージを受信したコンテンツ保持ノードは、チャンク要求メッセージに含まれるチャンクIDに対応するチャンクをユーザノードに送信(アップロード)する。一方、所望するチャンクを保存するコンテンツ保持ノードが存在しないとき、ユーザノードは、コンテンツ保持ノードのインデックス情報を取得することができない。この場合、ユーザノードは、センターサーバからチャンクを取得する。
【0056】
あるいは、ルートノードは、インデックス情報に含まれるIPアドレス等に示されたコンテンツ保持ノードに対してチャンク送信要求メッセージを送信する。チャンク送信要求メッセージは、チャンク送信要求メッセージの送信元のノード情報を含む。チャンク送信要求メッセージを受信したコンテンツ保持ノードは、受信したチャンク送信要求メッセージが含むノード情報が示す ユーザノードへコンテンツデータの送信(アップロード)を開始する。これにより、ユーザノードは、コンテンツ保持ノードからコンテンツデータを取得することが可能になる。
【0057】
そして、ユーザノードは、コンテンツ保持ノードからチャンクを取得して保存したとき、チャンクを公開する。チャンクの公開とは、ユーザノードがコンテンツ保持ノードとしてチャンクを保存したことをルートノードへ知らせることをいう。チャンクの公開により、公開したコンテンツ保持ノードから、公開されたチャンクを他のノード装置が取得可能になる。具体的に、チャンクを保存したユーザノードは、パブリッシュメッセージを送信する。パブリッシュメッセージは、チャンクのチャンクID及びチャンクを保存したユーザノードのノード情報を含む。パブリッシュメッセージは、ルートノードに向けて送出される。これにより、パブリッシュメッセージは、検索メッセージと同じように、チャンクIDをキーとするDHTルーティングによってルートノードに到着することになる。ルートノードは、受信したパブリッシュメッセージに含まれるノード情報及びチャンクIDの組を含むインデックス情報をインデックス情報キャッシュに記憶する。こうして、上記ユーザノードは、新たに、上記チャンクを保存するコンテンツ保持ノードとなる。以上説明したように、本実施形態では、制御メッセージは、制御メッセージの送信元のノード情報を含む。
【0058】
[コンテンツデータの中継方法について]
次に、参加ノード装置Bへのコンテンツデータ中継方法を説明する。本実施形態の参加ノード装置A及び参加ノード装置Cは、上述したコンテンツ取得動作によりコンテンツを取得する。一方、参加ノード装置Bがコンテンツを取得するとき、参加ノード装置Bは検索メッセージを第1ノード装置宛に送信する。検索メッセージを受信した第1ノード装置は、第1ノード装置が記憶するDHTのルーティングテーブルに基づいて、検索メッセージを転送する。第1ノード装置は、参加ノード装置BのノードIDと、参加ノード装置BとのIPアドレス及びポート番号とを対応付けてソケットテーブルに登録する。
【0059】
そして、第1ノード装置は、検索メッセージに含まれる送信元である参加ノード装置Bのノード情報が含むIPアドレスを、第1ノード装置のIPアドレスに書き換える。つまり、第1ノード装置は、検索メッセージに含まれる送信元のノード装置のIPアドレスを第1ノードのIPアドレスにして、検索メッセージを送信する。そして、検索メッセージを受信したルートノードは、これに含まれるチャンクIDに対応するインデックス情報をインデックス情報キャッシュから1または複数取得する。取得されたインデックス情報は、検索メッセージの送信元に設定された第1ノード装置に対して返信される。返信されたインデックス情報を受け取った第1ノード装置は、まず、受信したインデックス情報の宛先を示すノードIDが、第1ノード装置のノードIDと一致するかが判定される。一致しなかった場合、受信したインデックス情報の宛先を示すノードIDが、ソケットテーブルに登録されているか否かが判定される。ソケットテーブルに登録されていた場合、受信したインデックス情報は、参加ノード装置B宛のインデックス情報であると判定される。そして、第1ノード装置が、ソケットテーブルに登録されている参加ノード装置Bへインデックス情報を中継する。これは、制御メッセージの中継と同様である。
【0060】
そして、インデックス情報を取得した参加ノード装置Bは、インデックス情報に基づいてチャンクを取得(ダウンロード)する。ダウンロードの際も、制御メッセージや検索メッセージと同様に、第1ノード装置が中継することになる。参加ノード装置Bが、インデックス情報に基づいてチャンクを取得するとき、参加ノード装置Bはチャンク要求メッセージを第1ノード装置宛に送信する。チャンク要求メッセージを受信した第1ノード装置は、チャンク要求メッセージの送信先であるコンテンツ保持ノードへ、チャンク要求メッセージを転送する。第1ノード装置は、参加ノード装置BのノードIDと、参加ノード装置BのIPアドレス及びポート番号とを対応付けてソケットテーブルに登録する。そして、第1ノード装置は、チャンク要求メッセージに含まれる送信元である参加ノード装置Bのノード情報が含むIPアドレスを、第1ノード装置のIPアドレスに書き換える。つまり、第1ノード装置は、チャンク要求メッセージに含まれる送信元のノード装置のIPアドレスを第1ノードのIPアドレスにして、チャンク要求メッセージを送信する。そして、チャンク要求メッセージを受信したコンテンツ保持ノードは、これに含まれるチャンクIDに対応するチャンクを、チャンク要求メッセージの送信元に設定された第1ノード装置に対して返信する。返信されたチャンクを受け取った第1ノード装置は、まず、受信したチャンクの宛先を示すノードIDが、第1ノード装置のノードIDと一致するかが判定される。一致しなかった場合、受信したチャンクの宛先を示すノードIDが、ソケットテーブルに登録されているか否かが判定される。ソケットテーブルに登録されていた場合、受信したチャンクは、参加ノード装置B宛のチャンクであると判定される。そして、第1ノード装置が、ソケットテーブルに登録されているIPアドレスが示す参加ノード装置Bへチャンクを中継する。これは、制御メッセージ及び検索メッセージの中継と同様である。また、チャンク送信要求メッセージについても同様の中継を行う。なお、本実施形態で中継される制御メッセージは、上述した検索メッセージとインデックス情報とチャンク要求メッセージとチャンク送信要求メッセージとチャンクとを含む。
【0061】
[ノード装置及び第1ノード装置の電気的構成]
次に、図4を参照して、ノード装置及び第1ノード装置の電気的構成ついて説明する。図4は、本実施形態のノード装置及び第1ノード装置の電気的構成を示すブロック図である。図4に示すように、本実施形態のノード装置及び第1ノード装置には、ノード装置及び第1ノード装置を制御するCPU1が備えられている。CPU1には、HDD2とRAM3とデコーダ部4と通信部9とがそれぞれ電気的に接続されている。HDD2、RAM3、などの記憶手段とCPU1とは、ノード装置及び第1ノード装置のコンピュータを構成している。CPU1、HDD2、RAM3、デコーダ部4、及び通信部9はバスを介して相互に接続されている。なお、ノード装置及び第1ノード装置としては、パーソナルコンピュータ、又はSTB(Set Top Box)等を適用可能である。
【0062】
HDD2は、プログラム記憶領域21と、ルーティングテーブル記憶領域25とを含む。プログラム記憶領域21は、ノード装置メイン動作処理プログラム22と、参加メッセージ処理プログラム記憶領域23と、中継処理プログラム記憶領域24とを含む。
【0063】
ノード装置メイン動作処理プログラム記憶領域22は、ノード装置メイン動作処理プログラムを記憶する。ノード装置メイン動作処理プログラムは、ノード装置にメイン動作処理を実行させるプログラムである。
【0064】
参加メッセージ処理プログラム記憶領域23は、参加メッセージ処理プログラムを記憶する。参加メッセージ処理プログラムは、ノード装置に参加処理を実行させるプログラムである。
【0065】
中継処理プログラム記憶領域24は、中継処理プログラムを記憶する。中継処理プログラムは、ノード装置に中継処理動作を実行させるプログラムである。なお、上記ノード装置メイン動作処理プログラムと参加処理プログラムと中継処理プログラムとは、例えば、ネットワークNW上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしても良い。
【0066】
ルーティングテーブル記憶領域25は、DHTのルーティングテーブルと、DHTのルーティングテーブルのバージョン情報とを記憶する。本実施形態では、IPv4で通信可能なノード装置によりオーバーレイネットワークOLが構築されている。このため、ルーティングテーブル記憶領域25には、DHTのルーティングテーブルとともに、IPv4を示すバージョン情報が記憶される。本実施形態のルーティングテーブル記憶領域25は、本発明の第1記憶手段の一例である。
【0067】
RAM3は、コンテンツデータ一時記憶領域31と中継メッセージ一時記憶領域32とソケットテーブル一時記憶領域33と第1ノード装置情報一時記憶領域34とバージョン情報一時記憶領域35とアドレス情報一時記憶領域36とを含む。
【0068】
コンテンツデータ一時記憶領域31は、オーバーレイネットワークOLで送受信されるコンテンツを一時記憶する。また、コンテンツデータ一時記憶領域31は、参加ノード装置Bへ中継するコンテンツを一時記憶する。本実施形態のコンテンツデータ一時記憶領域31は、第3記憶手段の一例である。
【0069】
中継メッセージ一時記憶領域32は、参加ノード装置Bへ中継する制御メッセージ、または、参加ノード装置Bから他のノード装置へ中継する制御メッセージを一時記憶する。
【0070】
ソケットテーブル一時記憶領域33は、ソケットテーブルを一時記憶する。情報通信システムSに接続される複数のノード装置の中で、第1ノード装置に決定された場合、ソケットテーブル一時記憶領域33にソケットテーブルを一時記憶する。
【0071】
第1ノード装置情報一時記憶領域34は、第1ノード装置のノード情報を一時記憶する。コンタクトノードから送信された第1ノード装置のノード情報が、第1ノード装置情報一時記憶領域34に一時記憶される。本実施形態の第1ノード情報一時記憶領域34は、本発明の第2記憶手段の一例である。
【0072】
バージョン情報一時記憶領域35は、バージョン情報を一時記憶する。バージョン情報は、ノード装置が通信可能なプロトコルである。ノード装置が、IPv4とIPv6との両方で通信可能な場合、IPv4とIPv6とを示すバージョン情報がバージョン情報一時記憶領域35に一時記憶される。また、ノード装置が、IPv4のみで通信可能な場合、IPv4を示すバージョン情報がバージョン情報一時記憶領域35に記憶される。また、ノード装置が、IPv6のみで通信可能な場合、IPv6を示すバージョン情報がバージョン情報一時記憶領域35に記憶される。本実施形態のバージョン情報は、予め各ノード装置に設定されていても良いし、別機器から直接接続されて取得されても良い。また、別機器からネットワークNWを介してバージョン情報が取得されても良い。
【0073】
アドレス情報一時記憶領域36は、コンタクトノードのIPアドレスが記憶される。例えば、P2Pソフトウェアプログラムがノード装置によりダウンロードされたときに、コンタクトノードのIPアドレスは取得される。取得されたコンタクトノードのIPアドレスが、アドレス情報一時記憶領域36に一時記憶される。
【0074】
通信部9は、ネットワークNWを通じてノード装置または外部装置と情報の通信制御を行う。
【0075】
ノード装置及び第1ノード装置は、通信部9を介して要求に応じて送信されてきたコンテンツを受信する受信処理を行う。本実施形態のコンテンツはパケット化されて送信されるようになっている。各パケットは、通信部9を通じて受信され、RAM3に一時記憶される。このように一時記憶されたコンテンツは、RAM3から読み出されてデコーダ部4と、映像処理部5と、音声処理部7と、ディスプレイ6と、スピーカ8とを通じて再生出力される。或いは、RAM3に記憶されたコンテンツは、RAM3から読み出されてHDD2に記憶されても良い。または、コンテンツがRAM3を介さず、直接HDD2に記憶されても良い。その後、ユーザからの操作指示にしたがって、HDD2からコンテンツが読み出される。読み出されたコンテンツは、デコーダ部4と、映像処理部5と、音声処理部7と、ディスプレイ6と、スピーカ8とを通じて再生出力される。これにより、ユーザはコンテンツの視聴を行うことができる。
【0076】
[コンタクトノードの電気的構成]
次に、図5を参照して、コンタクトノードの電気的構成ついて説明する。図5は、本実施形態のコンタクトノードの電気的構成を示すブロック図である。基本的には、コンタクトノードの電気的構成は、ノード装置及び第1ノード装置の電気的構成と同じである。そのため、異なる点についてのみ説明する。
【0077】
コンタクトノードのHDD2は、ノード装置及び第1ノード装置と同様に、プログラム記憶領域21とルーティングテーブル記憶領域25とを含む。コンタクトノードのプログラム記憶領域21は、ノード装置及び第1ノード装置と異なり、コンタクトノードメイン動作処理プログラム記憶領域26を含む。コンタクトノードメイン動作処理プログラム記憶領域26は、コンタクトノードメイン動作処理プログラムを記憶する。コンタクトノードメイン動作処理プログラムは、コンタクトノード装置にメイン動作を実行させるプログラムである。なお、上記コンタクトノードメイン動作処理プログラムは、例えば、ネットワークNW上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしても良い。
【0078】
コンタクトノードのRAM3は、参加メッセージ一時記憶領域37と、第1ノード情報一時記憶領域34とを含む。参加メッセージ一時記憶領域37は、参加メッセージを一時記憶する。参加ノード装置により送信された参加メッセージが、コンタクトノードにより受信される。受信された参加メッセージが、参加メッセージ一時記憶領域37に一時記憶される。なお、コンタクトノードの第1ノード装置情報一時記憶領域34は、第1ノード装置のノード情報として、参加ノード装置から送信されたノード情報が一時記憶される。具体的には、コンタクトノード装置が受信した参加メッセージが含むバージョン情報が、IPv4とIPv6との両方で通信可能であることを示す場合、その参加メッセージを送信した参加ノード装置のノード情報が、第1ノード装置のノード情報として、第1ノード装置情報一時記憶領域34に一時記憶される。本実施形態の第1ノード情報一時記憶領域34は、本発明の第2記憶手段の一例である。
【0079】
[コンタクトノードメイン動作処理の説明]
以上説明した構成からなる本実施形態のコンタクトノードの動作及び作用について、添付図面を参照して説明する。図6は、コンタクトノードにおけるコンタクトノードメイン動作処理の処理手順を示すフローチャートである。コンタクトノード装置のコンタクトノードメイン動作処理は、電源またはコンセントを介して商用電源などの外部電源とノード装置とが接続され、コンタクトノード装置として決定されたことにより、遂行される。以下に示す処理は、CPU1により処理される。
【0080】
ステップS101では、参加ノード装置から、参加メッセージを受信したか否かが判定される。参加メッセージが受信されたと判定された場合(ステップS101:YES)、ステップS102が実行される。参加メッセージが受信されたと判定されなかった場合(ステップS101:NO)、ステップS107が実行される。なお、参加メッセージが受信された場合、受信された参加メッセージは、参加メッセージ情報一時記憶領域37に一時記憶される。本実施形態のコンピュータとステップS101とは、本発明の受信手段の一例である。また、本実施形態のステップS101は、本発明の受信ステップの一例である。
【0081】
ステップS102では、参加ノード装置のバージョン情報の中で、ルーティングテーブルのバージョン情報と一致する情報があるか否かが判定される。具体的には、ルーティングテーブル記憶領域25に記憶されたバージョン情報と、参加メッセージが含むバージョン情報とが比較される。なお、参加メッセージのバージョン情報は、参加メッセージ一時記憶領域37に一時記憶されている。比較した結果、参加ノード装置のバージョン情報の中で、ルーティングテーブルのバージョン情報と一致する情報があると判定された場合(ステップS102:YES)、ステップS103が実行される。参加ノード装置のバージョン情報の中で、ルーティングテーブルのバージョン情報と一致する情報がある判定されなかった場合(ステップS102:NO)、ステップS104が実行される。本実施形態のコンピュータとステップS102とは、本発明の判定手段の一例である。また、本実施形態のステップS102は、本発明の判定ステップの一例である。
【0082】
ステップS103では、参加処理が実行される。具体的には、ルーティングテーブル記憶領域25に記憶されているDHTのルーティングテーブルが参加ノード装置へ送信される。本実施形態のコンピュータとステップS103とは、本発明の送信手段の一例である。また、本実施形態のステップS103は、本発明の送信ステップの一例である。
【0083】
ステップS104では、第1ノード装置情報一時記憶領域34に一時記憶された第1ノード装置のノード情報が、参加ノード装置へ送信される。本実施形態のコンピュータとステップS104とは、本発明の送信手段の一例である。また、本実施形態のステップS103は、本発明の送信ステップの一例である。
【0084】
ステップS105では、参加ノード装置がIPv4とIPv6との両方で通信可能か否かが判定される。参加ノード装置がIPv4とIPv6との両方で通信可能かは、参加メッセージ情報一時記憶領域32に記憶されるバージョン情報に基づいて判定される。バージョン情報がIPv4とIPv6とを示す場合、参加ノード装置がIPv4とIPv6との両方で通信可能と判定される。参加ノード装置がIPv4とIPv6との両方で通信可能と判定された場合(ステップS105:YES)、ステップS106が実行される。参加ノード装置がIPv4とIPv6との両方で通信可能と判定されなかった場合(ステップS105:NO)、ステップS107が実行される。
【0085】
ステップS106では、参加メッセージ情報一時記憶領域37に記憶された参加メッセージが含むノード情報が、第1ノード装置のノード情報として第1ノード装置情報一時記憶領域34に一時記憶される。
【0086】
ステップS107では、コンタクトノードの電源がオフにされたか否かが判定される。電源がオフにされたと判定された場合(ステップS107:YES)、コンタクトノードのコンタクトノードメイン動作処理は終了される。電源がオフにされたと判定されなかった場合(ステップS107:NO)、ステップS101が再度実行される。
【0087】
[ノード装置メイン動作処理の説明]
図7を参照して、本実施形態のノード装置及び第1ノード装置の動作及び作用について、添付図面を参照して説明する。図7は、ノード装置及び第1ノード装置におけるノード装置メイン動作処理の処理手順を示すフローチャートである。ノード装置及び第1ノード装置のノード装置メイン動作処理は、電源またはコンセントを介して商用電源などの外部電源とノード装置及び第1ノード装置とが接続され、インストールされたP2PソフトウェアプログラムがCPU1により実行されたことにより、遂行される。
【0088】
ステップS201では、参加メッセージが送信されるか否かが判定される。参加メッセージが送信されると判定された場合(ステップS201:YES)、ステップS202が実行される。参加メッセージが送信されると判定されなかった場合(ステップS201:NO)、ステップS203が実行される。
【0089】
ステップS202では、参加メッセージ処理が実行される。参加メッセージ処理の詳細は後述する。
【0090】
ステップS203では、制御メッセージが送信されるか否かが判定される。制御メッセージが送信されると判定された場合(ステップS203:YES)、ステップS204が実行される。制御メッセージが送信されると判定されなかった場合(ステップS203:NO)、ステップS207が実行される。
【0091】
ステップS204では、ステップS204を実行するノード装置が、オーバーレイネットワークOLに参加しているか否かが判定される。オーバーレイネットワークに参加しているか否かは、例えば、ルーティングテーブル記憶領域25にDHTのルーティングテーブルが記憶されているか否かにより判定される。ルーティングテーブル記憶領域25にDHTのルーティングテーブルが記憶されている場合、オーバーレイネットワークOLに参加していると判定される。ルーティングテーブル記憶領域25にDHTのルーティングテーブルが記憶されていない場合、オーバーレイネットワークOLに参加していないと判定される。ステップS204を実行するノード装置が、オーバーレイネットワークOLに参加していると判定された場合(ステップS204:YES)、ステップS205が実行される。ステップS204を実行するノード装置が、オーバーレイネットワークOLに参加していると判定されなかった場合(ステップS204:NO)、ステップS206が実行される。
【0092】
ステップS205では、DHTのルーティングテーブルに登録されたノード装置へ、制御メッセージが送信される。
【0093】
ステップS206では、制御メッセージが、第1ノード装置へ送信される。具体的には、第1ノード装置情報一時記憶領域34に記憶されたノード情報が含むIPアドレスに基づいて、制御メッセージが第1ノード装置へ送信される。
【0094】
ステップS207では、制御メッセージを受信したか否かが判定される。ステップS207で受信される制御メッセージには、チャンク要求メッセージが含まれる。制御メッセージを受信したと判定された場合(ステップS207:YES)、ステップS208が実行される。制御メッセージを受信したと判定されなかった場合(ステップS207:NO)、ステップS215が実行される。チャンク要求メッセージを含む制御メッセージを受信するステップS207と、本実施形態のコンピュータとは、本発明の要求受信手段の一例である。
【0095】
ステップS208では、ステップS208を実行するノード装置が、第1ノード装置であるか否かが判定される。具体的には、バージョン情報一時記憶領域35に記憶されるバージョン情報に基づいて、ステップS208を実行するノード装置が、第1ノード装置であるか否かが判定される。バージョン情報一時記憶領域35に一時記憶されるバージョン情報が、IPv4とIPv6との両方で通信可能であることを示す場合、第1ノード装置であると判定される。ステップS208を実行するノード装置が第1ノード装置であると判定された場合(ステップS208:YES)、ステップS209が実行される。ステップS208を実行するノード装置が第1ノード装置であると判定されなかった場合(ステップS208:NO)、ステップS214が実行される。
【0096】
ステップS209では、ステップS207で受信した制御メッセージの送信元が、中継が必要なノード装置であるか否かが判定される。具体的には、受信した制御メッセージがノード情報のノードIDが、ソケットテーブルに登録されているか否かが判定される。ソケットテーブルに登録されていると判定された場合、中継が必要なノード装置と判定される。一方、ソケットテーブルに登録されていると判定されなかった場合、中継が不要なノード装置と判定される。ステップS207で受信した制御メッセージの送信元が、中継が必要なノード装置であると判定された場合(ステップS209:YES)、ステップS210が実行される。ステップS207で受信した制御メッセージの送信元が、中継が必要なノード装置であると判定されなかった場合(ステップS209:NO)、ステップS211が実行される。
【0097】
ステップS210では、中継処理が実行される。具体的には、ステップS207で受信された制御メッセージが含むノード情報のIPアドレスが、ステップS210を実行するノード装置のIPアドレスに書き換えられる。そして、制御メッセージの送信元のノード装置のノードIDと、制御メッセージの送信元のIPアドレス及びポート番号とが、対応付けられてソケットテーブルに登録される。
【0098】
ステップS211では、ステップS207で受信した制御メッセージの宛先が、中継が必要なノード装置であるか否かが判定される。中継が必要なノード装置であるか否かは、制御メッセージが含むノードIDに基づいて決定される。参加メッセージが含むノードIDが、ソケットテーブル一時記憶領域33に記憶されている場合、ステップS207で受信した制御メッセージが、中継が必要なノード装置宛のメッセージであると判定される。ステップS207で受信した制御メッセージの宛先が、中継が必要なノード装置であると判定された場合(ステップS211:YES)、ステップS212が実行される。ステップS207で受信した制御メッセージの宛先が、中継が必要なノード装置であると判定されなかった場合(ステップS211:NO)、ステップS213が実行される。ステップS207で受信した制御メッセージの宛先が、中継が必要なノード装置であると判定された場合、ステップS207で受信された制御メッセージが中継メッセージ一時記憶領域32に一時記憶される。また、ステップS207で受信した制御メッセージがチャンクであった場合、ステップS207で受信されたチャンクが、コンテンツデータ一時記憶領域31に一時記憶されても良い。本実施形態のコンピュータとステップS211とは、本発明の第2取得手段の一例である。
【0099】
ステップS212では、ステップS207で受信した制御メッセージが、中継が必要なノード装置へ中継される。具体的には、ステップS211で、ソケットテーブルに登録されたノードIDの中で、ステップS207で受信した制御メッセージに付加されるノードIDと一致するノードIDが登録されているか否かが判定される。一致するノードIDが登録されていると判定された場合、ステップS212では、ソケットテーブルに登録されたノード情報の中から、一致すると判定されたノードIDに対応するIPアドレスが取得される。そして、取得されたIPアドレスが示すノード装置へ、制御メッセージが中継される。本実施形態のコンピュータとステップS212とは、本発明の中継手段の一例である。
【0100】
ステップS213では、DHTのルーティングテーブルに登録されたノード装置へ、制御メッセージが送信される。
【0101】
ステップS214では、ステップS207で受信された制御メッセージに対応する処理が実行される。例えば、制御メッセージの宛先が、ステップS207で制御メッセージを受信したノード装置ではなかった場合、制御メッセージが転送される。また、制御メッセージの宛先が、ステップS207で制御メッセージを受信したノード装置である場合、制御メッセージに対応する処理が実行される。
【0102】
ステップS215では、ノード装置または第1ノード装置の電源がオフにされたか否か、または、離脱処理が実行されたか否かが判定される。離脱処理とは、オーバーレイネットワークOLからノード装置または第1ノード装置が離脱することである。具体的には、離脱処理は、ノード装置または第1ノード装置にインストールされたP2Pソフトウェアプログラムの起動が停止された場合である。電源がオフにされた、または、離脱処理が実行されたと判定された場合(ステップS215:YES)、ノード装置及び第1ノード装置のメイン動作処理は終了される。電源がオフにされた、または、離脱処理が実行されたと判定されなかった場合(ステップS215:NO)、ステップS201が再度実行される。
【0103】
[参加メッセージ処理の説明]
次に図8を用いて、本実施形態の参加メッセージ処理動作の処理手順について説明する。図8は、本実施形態の参加メッセージ処理動作を示すフローチャートである。まず、ステップS301では、コンタクトノードへの接続が実行される。アドレス情報一時記憶領域36に記憶されたIPアドレスに基づいて、コンタクトノードへの接続が実行される。
【0104】
ステップS302では、コンタクトノードからDHTのルーティングテーブルが受信されたか否かが判定される。DHTのルーティングテーブルが受信されたと判定された場合(ステップS302:YES)、ステップS303が実行される。DHTのルーティングテーブルが受信されたと判定されなかった場合(ステップS302:NO)、ステップS304が実行される。
【0105】
ステップS303では、オーバーレイネットワークOLへの参加処理が実行される。具体的には、ステップS302で受信したDHTのルーティングテーブルをルーティングテーブル記憶領域25に記憶する。そして、オーバーレイネットワークOLを用いて通信が可能な状態になる。ステップS302で、DHTのルーティングテーブルの一部が受信された場合、ステップS303で、受信した一部のDHTのルーティングテーブルに基づいて、他のノード装置から、残りのDHTのルーティングテーブルが取得されても良い。
【0106】
ステップS304では、第1ノード装置のノード情報が受信されたか否かが判定される。第1ノード装置のノード情報が受信されたと判定された場合(ステップS304:YES)、ステップS305が実行される。第1ノード装置のノード情報が受信されたと判定されなかった場合(ステップS304:NO)、ステップS302が実行される。なお、ステップS304で第1ノード装置のノード情報が受信された場合、第1ノード装置情報一時記憶領域34に受信されたノード情報が一時記憶される。本実施形態のコンピュータとステップS304とは、本発明の第1取得手段の一例である。
【0107】
ステップS305では、第1ノード装置とのセッションが生成される。具体的には、ステップS304で受信したノード情報に基づいて、第1ノード装置とのセッションが生成される。本実施形態のコンピュータとステップS305とは、本発明の第1生成手段の一例である。
【0108】
以下、本実施形態の変形例について説明する。変形例として、本実施形態において、中継が必要なノード装置は、必ずしもパブリッシュメッセージを送信しなくても良い。図9は、本実施形態の変形例のパブリッシュ処理のフローチャートである。パブリッシュ処理は、本実施形態において、中継が必要なノード装置により定期的に実行される処理である。ノード装置が備えるタイマーにより所定の時刻ごとに、パブリッシュ処理は開始される。また、パブリッシュ処理は、ノード装置がコンテンツデータ一時記憶領域31にコンテンツが記憶されたときに開始される。
【0109】
ステップS501では、コンテンツデータ一時記憶領域31に記憶されたコンテンツの中で、パブリッシュする必要があるコンテンツIDを決定する。そして、決定されたコンテンツIDの検索メッセージが送信される。なお、パブリッシュする必要があるコンテンツIDとは、例えば、公開開始時期の近いコンテンツである。公開開始時期が近いとは、現在の時刻とコンテンツの公開開始時期との時刻差または日時差が、所定の期間以内になったことを示す。また、パブリッシュする必要があるコンテンツIDとは、コンテンツデータ一時記憶領域31に新たにコンテンツが記憶されたコンテンツである。また、ステップS501では、ノード装置に備えられたタイマーにより計時動作が開始される。本実施形態のコンピュータとステップS501とは、本発明の検索手段の一例である。
【0110】
ステップS502では、ステップS501で送信された検索メッセージに対応するインデックスキャッシュが受信されたか否かが判定される。インデックスキャッシュが受信されたと判定された場合(ステップS502:YES)、パブリッシュ処理は終了される。インデックスキャッシュが受信されたと判定されなかった場合(ステップS502:NO)、ステップS503が実行される。
【0111】
ステップS503では、ステップS501で計時動作が開始されてから、所定の時間が経過したか否かが判定される。所定の時間が経過されたと判定された場合(ステップS503:YES)、ステップS504が実行される。所定の時間が経過されたと判定されなかった場合(ステップS503:NO)、ステップS502が実行される。
【0112】
ステップS504では、ステップS501で決定されたコンテンツIDを含むパブリッシュメッセージが送信される。本実施形態のコンピュータとステップS504とは、本発明の公開手段の一例である。
【0113】
本変形例では、中継が必要なノード装置へは、コンテンツを中継する必要がある。コンテンツを安定的に通信するために、中継が必要なノード装置はできる限り、データのアップロードを控えた方が良い。中継が必要なノード装置がコンテンツをパブリッシュするときに、オーバーレイネットワークOLによりコンテンツのインデックスキャッシュが検索される。検索できなかった場合に、パブリッシュメッセージが送信されるため、中継が必要なノード装置がコンテンツをアップロードすることができる限り控えることができる。この結果、中継処理の発生を防ぎ、効率良く通信することができる。なお、本変形例では、インデックスキャッシュが検索または受信できなかった場合に、パブリッシュメッセージを送信したがこれに限定されるものではない。インデックスキャッシュが検索または受信されても良い。検索または受信されたインデックスキャッシュが含むコンテンツ保持ノードの数が所定数以下の場合に、パブリッシュメッセージが送信されても良い。
【0114】
本実施形態においては、オーバーレイネットワークOLに、DHTのルーティングテーブルを利用したピアツーピアの通信システムが適用されていたが、これに限られるものではない。他のピアツーピアの通信システム、または、オーバーレイネットワークを用いたシステムに、本発明が適用されても良い。例えば、DHT以外のルーティングテーブルが用いられる通信システムまたはピアツーピアの通信システムに本発明が適用されても良い。DHTを利用しないピアツーピアの通信システムとしては、例えば、ハイブリッド型のピアツーピアの通信システムがある。ハイブリッド型のピアツーピアの通信システム、または、ピュア型のピアツーピアの通信システムに本発明が適用されても良い。
【0115】
また、本実施形態では、オーバーレイネットワークOLが、IPv4により通信可能なノード装置により構成されているが、これに限定されるものではない。例えば、オーバーレイネットワークOLが、IPv6により通信可能なノード装置により構成されても良い。この場合、IPv4でしか通信できないノード装置と、第1ノード装置との間で、セッションが生成されることになる。また、IPv6で通信可能なノード装置のノード情報が登録されたDHTのルーティングテーブルが生成され、ルーティングテーブル記憶領域に記憶される。
【符号の説明】
【0116】
1 CPU
2 HDD
3 RAM
4 デコーダ部
5 映像処理部
6 ディスプレイ
7 音声処理部
8 スピーカ
9 通信部
Tm−n ノード装置
NW ネットワーク
FW ファイアウォール
BR ブロードバンドルータ
S 情報通信システム
OL オーバーレイネットワーク
NLm 拠点ネットワーク
21 プログラム記憶領域
22 ノード装置メイン動作処理プログラム記憶領域
23 参加メッセージ処理プログラム記憶領域
25 ルーティングテーブル記憶領域
26 コンタクトノードメイン動作処理プログラム記憶領域
31 コンテンツデータ一時記憶領域
32 中継メッセージ一時記憶領域
33 ソケットテーブル一時記憶領域
34 第1ノード装置情報一時記憶領域
35 バージョン情報一時記憶領域
36 アドレス情報一時記憶領域
37 参加メッセージ一時記憶領域

【特許請求の範囲】
【請求項1】
複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信する情報通信システムであって、
前記複数のノード装置のいずれかの前記ノード装置が、
IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段と、
前記複数のノード装置のいずれかであって、前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段と、
前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信手段と、
前記受信手段により受信された参加メッセージが含む前記プロトコル情報が、前記第1記憶手段により記憶されたルーティングテーブルのプロトコルと一致するかを判定する判定手段と、
前記判定手段により一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、
前記判定手段により一致すると判定されなかったとき、前記参加ノード装置へ、前記第2記憶手段に記憶された前記第1ノード装置の前記所在情報を送信する送信手段と、
を備えることを特徴とする情報通信システム。
【請求項2】
前記参加ノード装置は、
前記送信手段により送信された前記第1ノード装置の前記所在情報を取得する第1取得手段と、
前記第1取得手段により取得された前記所在情報が示す前記第1ノード装置へ、前記参加ノード装置で通信可能なプロトコルを用いてセッションを生成する第1生成手段と、
を備え、
前記第1ノード装置は、
前記第1生成手段によりセッションを生成された前記参加ノード装置から、所定の前記データの要求を受信する要求受信手段と、
前記要求受信手段により要求された前記データを、前記オーバーレイネットワークに接続されるノード装置のいずれかから取得する第2取得手段と、
前記第2取得手段により取得された前記データを、前記参加ノード装置へ中継する中継手段と、
を備えることを特徴とする請求項1に記載の情報通信システム。
【請求項3】
前記参加ノード装置は、
前記データを記憶する第3記憶手段と、
前記第3記憶手段に記憶されたデータを、前記オーバーレイネットワークで公開する公開手段と、
前記公開手段により前記データを公開する前に、前記公開手段により公開される前記データを、前記オーバーレイネットワークを用いて検索する検索手段と、
を備え、
前記検索手段により前記公開されるデータが検索されなかったとき、前記公開手段は、前記データを公開することを特徴とする請求項2に記載の情報通信システム。
【請求項4】
前記受信手段により受信された前記参加メッセージが含む前記プロトコル情報が、IPv4とIPv6との両方で通信可能なことを示す場合、前記第2記憶手段は、前記参加ノード装置を前記第1ノード装置として、前記参加ノード装置の前記所在情報を記憶することを特徴とする請求項1から請求項3のいずれか一項に記載の情報通信システム。
【請求項5】
複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信する情報通信システムが含む前記複数のノード装置のいずれかの前記ノード装置であって、
IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段と、
前記複数のノード装置のいずれかであって、前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段と、
前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信手段と、
前記受信手段により受信された参加メッセージが含む前記プロトコル情報が、前記第1記憶手段により記憶されたルーティングテーブルのプロトコルと一致するかを判定する判定手段と、
前記判定手段により一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、
前記判定手段により一致すると判定されなかったとき、前記参加ノード装置へ、前記第2記憶手段に記憶された前記第1ノード装置の前記所在情報を送信する送信手段と、
を備えることを特徴とするノード装置。
【請求項6】
複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信し、前記複数のノード装置のいずれかの前記ノード装置により実行される情報通信方法であって、
前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信ステップと、
IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段により記憶されたルーティングテーブルのプロトコルと、前記受信ステップにより受信された参加メッセージが含む前記プロトコル情報とが一致するかを判定する判定ステップと、
前記判定ステップにより一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、
前記判定ステップにより一致すると判定されなかったとき、前記複数のノード装置のいずれかであって前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第1ノード装置のネットワークにおける所在を示す所在情報を記憶する第2記憶手段に記憶された前記第1ノード装置の前記所在情報を、前記参加ノード装置へ送信する送信ステップと、
を含む情報通信方法。
【請求項7】
複数のノード装置により構成されるオーバーレイネットワークにより、分散して保存される複数のデータを送受信し、前記複数のノード装置のいずれかの前記ノード装置のコンピュータに、
前記情報通信システムに参加する参加ノード装置から送信され、前記情報通信システムへの参加を示す参加メッセージであって、前記参加ノード装置が通信可能なプロトコルであるIPv4またはIPv6を示すプロトコル情報を含む前記参加メッセージを受信する受信ステップと、
IPv4で通信可能なノード装置の少なくとも一部のノード装置により構成される第1オーバーレイネットワークであって、前記第1オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が登録された第1ルーティングテーブル、または、IPv6で通信可能なノード装置の少なくとも一部のノード装置により構成される第2オーバーレイネットワークであって、前記第2オーバーレイネットワークに参加するノード装置の前記所在情報が登録された第2ルーティングテーブルのいずれかのルーティングテーブルを記憶する第1記憶手段により記憶されたルーティングテーブルのプロトコルと、前記受信ステップにより受信された参加メッセージが含む前記プロトコル情報とが一致するかを判定する判定ステップと、
前記判定ステップにより一致すると判定されたとき、前記参加ノード装置へ、一致すると判定されたルーティングテーブルの少なくとも一部を送信し、
前記判定ステップにより一致すると判定されなかったとき、前記複数のノード装置のいずれかであって前記ノード装置が通信可能なプロトコルであるIPv4とIPv6との両方で通信可能な第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


【公開番号】特開2012−80168(P2012−80168A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−220663(P2010−220663)
【出願日】平成22年9月30日(2010.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】