(57)【要約】【課題】接続するネットワークが互いに異なるノード装置同士が通信を行う場合に、アドレス解決のための処理負荷を軽減させることを可能とする。【解決手段】情報処理システムは、プライベートネットワークと、プライベートネットワークとは異なる外部ネットワークとの間で、メッセージを中継する中継ノード装置を、複数のノード装置の中に含み、中継ノード装置は、中継ノード装置のアドレス情報として、プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得し、プライベートネットワークから外部ネットワークへメッセージを中継する場合には、取得されたグローバルアドレス情報を当該メッセージに含め、外部ネットワークから接続するプライベートネットワークへのメッセージを中継する場合には、取得されたプライベートアドレス情報を当該メッセージに含めて中継する。【選択図】図５
2011155513.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムであって、
前記情報通信システムは、
前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、
前記中継ノード装置は、
前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得手段と、
前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得手段により取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得手段により取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継手段と、
を備え、
前記プライベートネットワークに接続する前記ノード装置は、
前記外部ネットワークに接続する前記ノード装置宛のメッセージを、前記中継ノード装置を介して送信する送信手段を備えることを特徴とする情報通信システム。
【請求項２】
請求項１に記載の情報通信システムにおいて、
前記プライベートネットワークと前記外部ネットワークとを相互接続する通信機器を更に備え、
前記中継ノード装置の前記中継手段は、前記通信機器における前記外部ネットワークの側の複数のポートのうち、前記中継ノード装置のために割り当てられた所定数のポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を前記通信機器を介して行うことを特徴とする情報通信システム。
【請求項３】
請求項２に記載の情報通信システムにおいて、
前記中継ノード装置の前記中継手段は、前記通信機器において前記中継ノード装置のために割り当てられた前記外部ネットワークの側の所定の１つのポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を、前記通信機器を介して行うことを特徴とする情報通信システム。
【請求項４】
複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムにおいて、前記メッセージを中継する前記ノード装置である中継ノード装置であって、
前記情報通信システムは、
前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、
前記中継ノード装置は、
前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得手段と、
前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得手段により取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得手段により取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継手段と、
を備えることを特徴とする中継ノード装置。
【請求項５】
請求項４に記載の中継ノード装置において、
前記情報通信システムは、
前記プライベートネットワークと前記外部ネットワークとを相互接続する通信機器を備え、
前記中継手段は、前記通信機器における前記外部ネットワークの側の複数のポートのうち、前記中継ノード装置のために割り当てられた所定数のポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を前記通信機器を介して行うことを特徴とする中継ノード装置。
【請求項６】
請求項５に記載の情報通信システムにおいて、
前記中継手段は、前記通信機器において前記中継ノード装置のために割り当てられた前記外部ネットワークの側の所定の１つのポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を、前記通信機器を介して行うことを特徴とする中継ノード装置。
【請求項７】
請求項４乃至６の何れか１項に記載の中継ノード装置において、
前記メッセージは、当該メッセージの宛先として以外に付加される前記ノード装置のアドレス情報を含み、
前記中継手段は、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合、前記メッセージに付加されるアドレス情報として前記中継ノード装置のグローバルアドレス情報を前記メッセージに含めることを特徴とする中継ノード装置。
【請求項８】
請求項７に記載の中継ノード装置において、
前記メッセージは、前記アドレス情報を１つ以上含み、
前記中継手段は、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合、当該メッセージに含まれる各前記アドレス情報に、前記中継ノード装置のグローバルアドレス情報を追加することを特徴とする中継ノード装置。
【請求項９】
請求項７又は請求項８に記載の中継ノード装置において、
前記中継手段が中継するメッセージが、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであるか否かを判定する第１判定手段を更に備え、
前記第１判定手段により、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであると判定されたとき、前記中継手段は、前記メッセージに前記グローバルアドレス情報を含めることを特徴とする中継ノード装置。
【請求項１０】
請求項７乃至９の何れか１項に記載の中継ノード装置において、
前記中継手段が中継するメッセージが、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであるか否かを判定する第２判定手段を更に備え、
前記第２判定手段により、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであると判定されたとき、前記メッセージが含む前記アドレス情報から、前記中継ノード装置のグローバルアドレスを削除することを特徴とする中継ノード装置。
【請求項１１】
請求項７乃至１０の何れか１項に記載の中継ノード装置において、
前記中継手段は、
前記プライベートネットワークから前記外部ネットワークへ、前記メッセージを中継する場合、前記メッセージに前記中継ノード装置のプライベートアドレス情報が含まれているか否かを判定する第３判定手段を更に備え、
前記中継手段は、前記第３判定手段により前記中継ノード装置の前記プライベートアドレス情報が含まれていないと判定された場合に、前記メッセージに前記中継ノード装置のグローバルアドレス情報を追加し、前記第３判定手段により前記中継ノード装置のプライベートアドレス情報が含まれていると判定された場合に、前記メッセージから前記プライベートアドレス情報を削除することを特徴とする中継ノード装置。
【請求項１２】
請求項４乃至１１の何れか１項に記載の中継ノード装置において、
前記メッセージは、当該メッセージの宛先として以外に付加される前記ノード装置のアドレス情報を含み、
前記中継手段は、前記外部ネットワークから前記プライベートネットワークへ前記メッセージを中継する場合、前記メッセージに付加される前記アドレス情報として前記中継ノード装置のプライベートアドレス情報を前記メッセージに含めることを特徴とする中継ノード装置。
【請求項１３】
請求項１２に記載の中継ノード装置において、
前記メッセージは、前記アドレス情報を１つ以上含み、
前記中継手段は、前記外部ネットワークから前記プライベートネットワークへ前記メッセージを中継する場合、当該メッセージに含まれる各前記アドレス情報に、前記中継ノード装置のプライベートアドレス情報を追加することを特徴とする中継ノード装置。
【請求項１４】
請求項１２又は請求項１３に記載の中継ノード装置において、
前記中継手段が中継するメッセージが、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであるか否かを判定する第４判定手段を更に備え、
前記第４判定手段により、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであると判定されたとき、前記中継手段は、前記メッセージに前記プライベートアドレス情報を含めることを特徴とする中継ノード装置。
【請求項１５】
請求項１２乃至１４の何れか１項に記載の中継ノード装置において、
前記中継手段が中継するメッセージが、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであるか否かを判定する第５判定手段を更に備え、
前記第５判定手段により、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであると判定されたとき、前記メッセージが含む前記アドレス情報から、前記中継ノード装置のプライベートアドレスを削除することを特徴とする中継ノード装置。
【請求項１６】
請求項１２乃至１５の何れか１項に記載の中継ノード装置において、
前記中継手段は、
前記外部ネットワークから前記プライベートネットワークへ、前記メッセージを中継する場合、前記メッセージに前記中継ノード装置のグローバルアドレス情報が含まれているか否かを判定する第６判定手段を更に備え、
前記中継手段は、前記第６判定手段により前記中継ノード装置の前記グローバルアドレス情報が含まれていないと判定された場合に、前記メッセージに前記中継ノード装置のプライベートアドレス情報を追加し、前記第３判定手段により前記中継ノード装置のグローバルアドレス情報が含まれていると判定された場合に、前記メッセージから前記グローバルアドレス情報を削除することを特徴とする中継ノード装置。
【請求項１７】
複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムにおいて、前記メッセージを中継する前記ノード装置である中継ノード装置における情報通信方法であって、
前記情報通信システムは、
前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、
前記中継ノード装置が、前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得工程と、
前記中継ノード装置が、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得工程において取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得工程において取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継工程と、
を有することを特徴とする情報通信方法。
【請求項１８】
複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムにおいて、前記メッセージを中継する前記ノード装置である中継ノード装置における情報通信プログラムであって、
前記情報通信システムは、
前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、
前記中継ノード装置に含まれるコンピュータに、
前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得ステップと、
前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得ステップにおいて取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得ステップにおいて取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継ステップと、
を実行させることを特徴とする情報通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））方式の通信システムの技術分野に関する。
【背景技術】
【０００２】
近年、特許文献１に開示されているようなピアツーピア方式の通信システムが注目されている。ピアツーピア方式の通信システムは、現在のコンテンツ配信における主流形態であるクライアントサーバ方式に変わる新しい形態として注目されている。このピアツーピア方式の通信システムでは、通信の負荷が複数のノード装置に分散される。そのため、クライアントサーバ方式に比して、効率的な通信を行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１９７４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ピアツーピア方式の通信システムに参加するノード装置は、ＬＡＮ（Local Area Network）等のプライベートなアドレス空間を有するネットワークに接続している場合がある。この場合、ノード装置がピアツーピア方式でＬＡＮ外のノード装置と通信するためには、ＮＡＴ（Network Address Translation）越え（NAT traversal）が必要となる。そのため、ノード装置のグローバルアドレス及びポート番号をノード装置が取得するため等のアドレス解決を行う専用のサーバ装置が必要となる場合がある。
【０００５】
しかしながら、専用のサーバ装置を設けると、ノード装置が増加するにつれて、このサーバ装置にアドレス解決のためのアクセスが集中する。そうすると、ピアツーピア方式の通信システムを採用したことによる効果が十分に得られない場合があった。
【０００６】
そこで、本発明は、以上の点に鑑みてなされたものである。本発明は、接続するネットワークが互いに異なるノード装置同士が通信を行う場合に、アドレス解決のための処理負荷を軽減させることを可能とする情報通信システム、中継ノード装置及び情報通信方法等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムであって、前記情報通信システムは、前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、前記中継ノード装置は、前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得手段と、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得手段により取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得手段により取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継手段と、を備え、前記プライベートネットワークに接続する前記ノード装置は、前記外部ネットワークに接続する前記ノード装置宛のメッセージを、前記中継ノード装置を介して送信する送信手段を備えることを特徴とする。
【０００８】
この発明によれば、中継ノード装置からメッセージを受信したノード装置は、受信したメッセージに含まれていたアドレス情報に基づいて、中継ノード装置にメッセージを送信することができる。そして、中継ノード装置は、受信したメッセージを中継することができる。このように、中継ノード装置を介してプライベートネットワーク内とプライベートネットワーク外とのメッセージの送受信が行われるので、アドレス解決のための処理負荷を軽減させることができる。
【０００９】
請求項２に記載の発明は、請求項１に記載の情報通信システムにおいて、前記プライベートネットワークと前記外部ネットワークとを相互接続する通信機器を更に備え、前記中継ノード装置の前記中継手段は、前記通信機器における前記外部ネットワークの側の複数のポートのうち、前記中継ノード装置のために割り当てられた所定数のポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を前記通信機器を介して行うことを特徴とする。
【００１０】
この発明によれば、通信機器においては、中継ノード装置がプライベートネットワーク外との通信を行うために必要なポートを開放する。そうしておけば、プライベートネットワーク内のノード装置とプライベートネットワーク外のノード装置とが中継ノード装置を介してメッセージを送受信することができる。よって、ノード装置毎にポートを開放する必要が無いので、プライベートネットワーク外からの不正通信等に対する安全性を高めることができる。また、通信機器において、アドレス変換に必要なテーブルが埋まってしまうことを防止することができる。
【００１１】
請求項３に記載の発明は、請求項２に記載の情報通信システムにおいて、前記中継ノード装置の前記中継手段は、前記通信機器において前記中継ノード装置のために割り当てられた前記外部ネットワークの側の所定の１つのポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を、前記通信機器を介して行うことを特徴とする。
【００１２】
この発明によれば、通信機器において、中継ノード装置のために１つのポートを開放しておけば良いので、安全性をより高めることができる。
【００１３】
請求項４に記載の発明は、複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムにおいて、前記メッセージを中継する前記ノード装置である中継ノード装置であって、前記情報通信システムは、前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、前記中継ノード装置は、前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得手段と、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得手段により取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得手段により取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継手段と、を備えることを特徴とする。
【００１４】
この発明によれば、中継ノード装置からメッセージを受信したノード装置は、受信したメッセージに含まれていたアドレス情報に基づいて、中継ノード装置にメッセージを送信することができる。そして、中継ノード装置は、プライベートネットワーク外のノード装置にメッセージを中継することができる。このように、中継ノード装置を介してプライベートネットワーク内とプライベートネットワーク外とのメッセージの送受信が行われるので、アドレス解決のための処理負荷を軽減させることができる。
【００１５】
請求項５に記載の発明は、請求項４に記載の中継ノード装置において、前記情報通信システムは、前記プライベートネットワークと前記外部ネットワークとを相互接続する通信機器を備え、前記中継手段は、前記通信機器における前記外部ネットワークの側の複数のポートのうち、前記中継ノード装置のために割り当てられた所定数のポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を前記通信機器を介して行うことを特徴とする。
【００１６】
この発明によれば、通信機器においては、中継ノード装置がプライベートネットワーク外との通信を行うために必要なポートを開放する。そうしておけば、プライベートネットワーク内のノード装置とプライベートネットワーク外のノード装置とが中継ノード装置を介してメッセージを送受信することができる。よって、ノード装置毎にポートを開放する必要が無いので、プライベートネットワーク外からの不正通信等に対する安全性を高めることができる。また、通信機器において、アドレス変換に必要なテーブルが埋まってしまうことを防止することができる。
【００１７】
請求項６に記載の発明は、請求項５に記載の情報通信システムにおいて、前記中継手段は、前記通信機器において前記中継ノード装置のために割り当てられた前記外部ネットワークの側の所定の１つのポートに基づき、前記外部ネットワークに対する前記メッセージの送受信を、前記通信機器を介して行うことを特徴とする。
【００１８】
この発明によれば、通信機器において、中継ノード装置のために１つのポートを開放しておけば良いので、安全性をより高めることができる。
【００１９】
請求項７に記載の発明は、請求項４乃至６の何れか１項に記載の中継ノード装置において、前記メッセージは、当該メッセージの宛先として以外に付加される前記ノード装置のアドレス情報を含み、前記中継手段は、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合、前記メッセージに付加されるアドレス情報として前記中継ノード装置のグローバルアドレス情報を前記メッセージに含めることを特徴とする。
【００２０】
この発明によれば、中継ノード装置からメッセージを受信したプライベートネットワーク外のノード装置は、受信したメッセージに含まれていたアドレス情報を、送信するメッセージに、宛先のアドレス情報として設定してメッセージを送信することができる。そうすることで、このメッセージが中継ノード装置に送信される。
【００２１】
請求項８に記載の発明は、請求項７に記載の中継ノード装置において、前記メッセージは、前記アドレス情報を１つ以上含み、前記中継手段は、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合、当該メッセージに含まれる各前記アドレス情報に、前記中継ノード装置のグローバルアドレス情報を追加することを特徴とする。
【００２２】
この発明によれば、中継ノード装置からメッセージを受信したプライベートネットワーク外のノード装置は、受信したメッセージに含まれていたアドレス情報を、送信するメッセージに、宛先のアドレス情報として設定してメッセージを送信することができる。そうすることで、このメッセージが中継ノード装置に送信される。そして、中継ノード装置が、例えば、受信したメッセージに含まれている宛先のアドレス情報に含まれているアドレス情報のうち、中継ノード装置のグローバルアドレス情報以外のアドレス情報に基づいて、メッセージを転送すれば良い。そうすることで、他のノード装置にメッセージを中継することができる。
【００２３】
請求項９に記載の発明は、請求項７又は請求項８に記載の中継ノード装置において、前記中継手段が中継するメッセージが、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであるか否かを判定する第１判定手段を更に備え、前記第１判定手段により、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであると判定されたとき、前記中継手段は、前記メッセージに前記グローバルアドレス情報を含めることを特徴とする。
【００２４】
この発明によれば、中継ノード装置のグローバルアドレス情報を追加すべきメッセージであるか否かを的確に判断することができる。
【００２５】
請求項１０に記載の発明は、請求項７乃至９の何れか１項に記載の中継ノード装置において、前記中継手段が中継するメッセージが、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであるか否かを判定する第２判定手段を更に備え、前記第２判定手段により、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであると判定されたとき、前記メッセージが含む前記アドレス情報から、前記中継ノード装置のグローバルアドレスを削除することを特徴とする。
【００２６】
この発明によれば、中継ノード装置からメッセージを受信したプライベートネットワーク内のノード装置が応答する場合、応答のメッセージは中継ノード装置により中継されず、プライベートネットワーク内のノード装置間で送受信される。従って、中継ノード装置の中継負荷を軽減させることができる。
【００２７】
請求項１１に記載の発明は、請求項７乃至１０の何れか１項に記載の中継ノード装置において、前記中継手段は、前記プライベートネットワークから前記外部ネットワークへ、前記メッセージを中継する場合、前記メッセージに前記中継ノード装置のプライベートアドレス情報が含まれているか否かを判定する第３判定手段を更に備え、前記中継手段は、前記第３判定手段により前記中継ノード装置の前記プライベートアドレス情報が含まれていないと判定された場合に、前記メッセージに前記中継ノード装置のグローバルアドレス情報を追加し、前記第３判定手段により前記中継ノード装置のプライベートアドレス情報が含まれていると判定された場合に、前記メッセージから前記プライベートアドレス情報を削除することを特徴とする。
【００２８】
この発明によれば、プライベートネットワーク内からプライベートネットワーク外へメッセージを中継する際の、中継ノード装置のアドレス情報の追加又は削除の制御を的確に行うことができる。
【００２９】
請求項１２に記載の発明は、請求項４乃至１１の何れか１項に記載の中継ノード装置において、前記メッセージは、当該メッセージの宛先として以外に付加される前記ノード装置のアドレス情報を含み、前記中継手段は、前記外部ネットワークから前記プライベートネットワークへ前記メッセージを中継する場合、前記メッセージに付加される前記アドレス情報として前記中継ノード装置のプライベートアドレス情報を前記メッセージに含めることを特徴とする。
【００３０】
この発明によれば、中継ノード装置からメッセージを受信したプライベートネットワーク内のノード装置は、受信したメッセージに含まれていたアドレス情報を、送信するメッセージに、宛先のアドレス情報として設定してメッセージを送信することができる。そうすることで、このメッセージが中継ノード装置に送信される。
【００３１】
請求項１３に記載の発明は、請求項１２に記載の中継ノード装置において、前記メッセージは、前記アドレス情報を１つ以上含み、前記中継手段は、前記外部ネットワークから前記プライベートネットワークへ前記メッセージを中継する場合、当該メッセージに含まれる各前記アドレス情報に、前記中継ノード装置のプライベートアドレス情報を追加することを特徴とする。
【００３２】
この発明によれば、中継ノード装置からメッセージを受信したプライベートネットワーク内のノード装置は、受信したメッセージに含まれていたアドレス情報を、送信するメッセージに、宛先のアドレス情報として設定してメッセージを送信することができる。そうすることで、このメッセージが中継ノード装置に送信される。そして、中継ノード装置が、例えば、受信したメッセージに含まれている宛先のアドレス情報に含まれているアドレス情報のうち、中継ノード装置のプライベートアドレス情報以外のアドレス情報に基づいて、メッセージを転送すれば良い。そうすることで、他のノード装置にメッセージを中継することができる。
【００３３】
請求項１４に記載の発明は、請求項１２又は請求項１３に記載の中継ノード装置において、前記中継手段が中継するメッセージが、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであるか否かを判定する第４判定手段を更に備え、前記第４判定手段により、前記外部ネットワークから前記プライベートネットワークへ送信されるメッセージであると判定されたとき、前記中継手段は、前記メッセージに前記プライベートアドレス情報を含めることを特徴とする。
【００３４】
この発明によれば、中継ノード装置のプライベートアドレス情報を追加すべきメッセージであるか否かを的確に判断することができる。
【００３５】
請求項１５に記載の発明は、請求項１２乃至１４の何れか１項に記載の中継ノード装置において、前記中継手段が中継するメッセージが、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであるか否かを判定する第５判定手段を更に備え、前記第５判定手段により、前記プライベートネットワークから前記外部ネットワークへ送信されるメッセージであると判定されたとき、前記メッセージが含む前記アドレス情報から、前記中継ノード装置のプライベートアドレスを削除することを特徴とする。
【００３６】
この発明によれば、中継ノード装置からメッセージを受信したプライベートネットワーク外のノード装置が応答する場合、応答のメッセージは中継ノード装置により中継されず、プライベートネットワーク外のノード装置間で送受信される。従って、中継ノード装置の中継負荷を軽減させることができる。
【００３７】
請求項１６に記載の発明は、請求項１２乃至１５の何れか１項に記載の中継ノード装置において、前記中継手段は、前記外部ネットワークから前記プライベートネットワークへ、前記メッセージを中継する場合、前記メッセージに前記中継ノード装置のグローバルアドレス情報が含まれているか否かを判定する第６判定手段を更に備え、前記中継手段は、前記第６判定手段により前記中継ノード装置の前記グローバルアドレス情報が含まれていないと判定された場合に、前記メッセージに前記中継ノード装置のプライベートアドレス情報を追加し、前記第３判定手段により前記中継ノード装置のグローバルアドレス情報が含まれていると判定された場合に、前記メッセージから前記グローバルアドレス情報を削除することを特徴とする。
【００３８】
この発明によれば、プライベートネットワーク外からプライベートネットワーク内へメッセージを中継する際の、中継ノード装置のアドレス情報の追加又は削除の制御を的確に行うことができる。
【００３９】
請求項１７に記載の発明は、複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムにおいて、前記メッセージを中継する前記ノード装置である中継ノード装置における情報通信方法であって、前記情報通信システムは、前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、前記中継ノード装置が、前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得工程と、前記中継ノード装置が、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得工程において取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得工程において取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継工程と、を有することを特徴とする。
【００４０】
請求項１８に記載の発明は、複数のノード装置が、少なくとも１つのプライベートネットワークを含むネットワークを介して互いにメッセージを送受信する情報通信システムにおいて、前記メッセージを中継する前記ノード装置である中継ノード装置における情報通信プログラムであって、前記情報通信システムは、前記プライベートネットワークに接続し、前記プライベートネットワークと、前記プライベートネットワークとは異なる外部ネットワークとの間で、前記メッセージを中継する中継ノード装置を、前記複数のノード装置の中に含み、前記中継ノード装置に含まれるコンピュータに、前記中継ノード装置のアドレス情報として、前記プライベートネットワークにおけるアドレス情報であるプライベートアドレス情報と、前記外部ネットワークにおけるアドレス情報であるグローバルアドレス情報と、を取得する取得ステップと、前記プライベートネットワークから前記外部ネットワークへ前記メッセージを中継する場合には、前記取得ステップにおいて取得された前記グローバルアドレス情報を当該メッセージに含め、前記外部ネットワークから前記接続するプライベートネットワークへの前記メッセージを中継する場合には、前記取得ステップにおいて取得された前記プライベートアドレス情報を当該メッセージに含めて中継する中継ステップと、を実行させることを特徴とする。
【発明の効果】
【００４１】
本発明によれば、メッセージを受信したノード装置は、受信したメッセージに含まれていたアドレス情報に基づいて、中継ノード装置にメッセージを送信することができる。そして、中継ノード装置は、プライベートネットワーク外のノード装置にメッセージを中継することができる。このように、中継ノード装置を介してプライベートネットワーク内とプライベートネットワーク外とのメッセージの送受信が行われるので、アドレス解決のための処理負荷を軽減させることができる。
【図面の簡単な説明】
【００４２】
【図１】一実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノードＮｎの概要構成例を示す図である。
【図３】ネットワーク及びノードＮｎの接続例を示す図である。
【図４】一実施形態に係る非中継ノードの制御部１１における処理例を示すフローチャートである。
【図５】一実施形態に係る中継ノードの制御部１１における処理例を示すフローチャートである。
【発明を実施するための形態】
【００４３】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００４４】
［１．コンテンツ分散保存システムの概要構成］
始めに、図１を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成について説明する。
【００４５】
図１は、本実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００４６】
図１に示すように、コンテンツ分散保存システムＳは、複数のノード装置Ｎｎがネットワーク５を介して接続されることで構成される。ネットワーク５は、現実世界の通信ネットワークである。例えば、ネットワーク５は、インターネットで等ある。このネットワーク５は、複数のＬＡＮｍ（ｍ＝１，２，３の何れか）と、ＷＡＮ（Wide Area Network）４とにより構成されている。また、ネットワーク５には、ＬＡＮｍとＬＡＮｍ、又は、ＬＡＮｍとＷＡＮ４とを相互接続するためのルータＲＴが挿入されている。ルータＲＴは、例えば、ブロードバンドルータであったり、ファイアーウォールであったりする。
【００４７】
各ノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）は、ネットワーク５を構成するＬＡＮｍ又はＷＡＮ４に接続されている。以下、ノード装置を、「ノード」という。なお、ＷＡＮ４に接続するノードＮｎの中には、例えば、他のノードＮｎが接続していないＬＡＮに単独で接続し、且つＮＡＴ越えが可能なノードＮｎも含まれる。つまり、後述する中継ノードＮｎを介さなくてもＬＡＮ外に対するメッセージの送受信が可能であり、且つ、後述する中継を行う必要が無いノードＮｎも、ＷＡＮ４に接続するノードＮｎとして図１には示されている。各ノードＮｎには、固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツコンテンツ分散保存システムＳは、これらのノードＮｎのうち、何れか複数のノードＮｎの接続により形成されるピアツーピア方式のネットワークシステムとなっている。
【００４８】
このピアツーピア方式のネットワークは、図１に示すネットワーク６である。このネットワーク６は、既存のネットワーク５を用いて形成された仮想的なリンクを構成するオーバーレイネットワークである。論理的なネットワークであるネットワーク６は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムＳに接続されている各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。
【００４９】
なお、コンテンツ分散保存システムＳへの接続は、接続していないノードＮｎ、例えば、ノードＮ８が、接続している任意のノードＮｎに対してコンテンツ分散保存システムへの参加要求を示す参加メッセージを送信することによって行われる。コンテンツ分散保存システムＳへの参加とは、ノードＮｎが分散保存システムＳに接続され、コンテンツ分散保存システムＳからコンテンツデータを取得可能になることである。任意のノードＮｎは、例えば、コンテンツ分散保存システムシステムＳに常時接続しているコンタクトノードである。
【００５０】
また、各ノードＮｎは、夫々、ＤＨＴ（Distributed Hash Table）を用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。なお、ＩＰアドレスとポート番号との組を、「アドレス情報」という。
【００５１】
コンテンツ分散保存システムＳに接続している１台のノードＮｎは、必要最低限のノードＮｎのノード情報をルーティングテーブルとして記憶している。各ノードＮｎ間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノードＮｎについてのノード情報が取得される。
【００５２】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００５３】
コンテンツ分散保存システムＳは、内容の異なる様々なコンテンツデータのレプリカを所定のファイル形式で複数のノードＮｎに分散して保存する。以下、コンテンツデータを、「コンテンツ」という。そして、各ノードＮｎ間でレプリカが利用可能になっている。各コンテンツのオリジナルはセンターサーバＳＡに保存されている。以下、コンテンツのレプリカが保存されるノードＮは、「コンテンツ保持ノード」という。以下の説明においては、オリジナルのコンテンツとレプリカとを特に区別することなく、コンテンツと称する。
【００５４】
上述のコンテンツには、夫々、コンテンツ名及びコンテンツ毎に固有の識別情報であるコンテンツＩＤ等の情報が付加されている。
【００５５】
分散保存されているコンテンツの所在は、インデックス情報として、コンテンツの所在を管理（記憶）しているノードＮｎ等により記憶される。以下、コンテンツの所在を管理（記憶）しているノードＮｎを、「ルートノード」という。インデックス情報は、レプリカを保存したノードＮｎのノード情報と、コンテンツのコンテンツＩＤと等の組を含む。このようなルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤである。
【００５６】
そして、或るノードＮｎのユーザが、所望するコンテンツを取得したい場合、このコンテンツの取得を望むノードＮｎは、メッセージを生成する。以下、ユーザによりコンテンツの取得を望むノードＮｎを、「ユーザノード」という。このメッセージは、取得を望むコンテンツのコンテンツＩＤ及びユーザノードのノード情報等を含む検索要求メッセージである。検索要求メッセージは、コンテンツ保持ノードを検索するためのメッセージでもある。上述の検索要求メッセージが、ユーザノードが取得するＤＨＴのルーティングテーブルに従って、他のノードＮｎに対して送出される。つまり、ユーザノードは、検索要求メッセージを、ルートノードに向けて送出する。これにより、検索要求メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００５７】
各ノードＮｎにおいて、コンテンツのコンテンツ名及びコンテンツＩＤ等の属性情報は、コンテンツカタログ情報に記述されている。コンテンツカタログ情報は、センターサーバＳＡにより作成されて、全てのノードＮｎに配信される。
【００５８】
また、上記検索要求メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００５９】
上記検索要求メッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックス情報キャッシュから取得する。ルートノードは、このインデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対して、コンテンツ送信要求メッセージを送信する。コンテンツ送信要求メッセージを受信したコンテンツ保持ノードは、保存しているコンテンツを含むコンテンツ送信メッセージを、ユーザノードに送信する。これにより、ユーザノードは、上記コンテンツ保持ノードからコンテンツをダウンロード（取得）することができる。
【００６０】
なお、ルートノードは、インデックス情報を、検索要求メッセージの送信元であるユーザノードに対して返信しても良い。この場合、インデックス情報を取得したユーザノードは、インデックス情報に基づいてコンテンツをダウンロードすることができる。インデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス等に基づいて、ユーザノードはコンテンツ保持ノードにアクセスする。アクセスしたコンテンツ保持ノードから、コンテンツをダウンロードすることもできる。また、上記ユーザノードは、検索要求メッセージがルートノードに辿り着くまでの間に、このルートノードと同じインデックス情報をキャッシュしているキャッシュノードからこのインデックス情報を取得することもできる。
【００６１】
また、ユーザノードは、コンテンツ保持ノードからコンテンツを取得して保存したとき、保存したユーザノードは、パブリッシュメッセージを生成する。パブリッシュメッセージは、コンテンツを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、コンテンツのコンテンツＩＤ及びコンテンツを保存したノードＮｎのノード情報を含む。パブリッシュメッセージは、ルートノードに向けて送出される。これにより、パブリッシュメッセージは、検索要求メッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、ルートノードは、パブリッシュメッセージを受信する。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報をインデックス情報キャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツのコンテンツを保持するコンテンツ保持ノードとなる。
【００６２】
以上のように構成されたコンテンツ分散保存システムＳにおいて、ＬＡＮｍに接続するノードＮｎが接続するＬＡＮｍ以外のＬＡＮｍ又はＷＡＮに接続するノードＮｎとピアツーピア方式でメッセージを送受信するためには、予めＮＡＴ越えの設定をしておく必要がある。しかしながら、全てのノードＮｎが、ＮＡＴ越えできるようにするには、ルータＲＴにおいて、ノードＮｎの台数に比例する個数のポートを開放しておく必要がある。しかしながら、多数のポートを開放すると、安全性の面等で問題が生じる場合がある。また、ルータＲＴにおいてＮＡＴによるアドレス変換のためのテーブルが全て埋まり、ネットワーク間に通信に支障を来す場合がある。そこで、コンテンツ分散保存システムＳにおいては、ＮＡＴ越えができるノードＮｎをＬＡＮｍ毎に少なくとも１台ずつ定める。そして、ＮＡＴ越えができるノードＮｎが、接続するＬＡＮｍから接続するＬＡＮｍ以外のネットワークへのメッセージの中継と、接続するＬＡＮｍ以外のネットワークから接続するＬＡＮｍへのメッセージの中継とを行う。
【００６３】
このようなメッセージの中継を行うノードＮｎを、「中継ノード」という。また、中継ノード以外のノードを、「非中継ノード」という。また、或るノードＮｎを基準とした場合に、基準となるノードＮｎが接続するＬＡＮｍを、「ＬＡＮ内」と称する。また、基準とするノードＮｎが接続するＬＡＮｍに接続する他のノードＮｎを、「ＬＡＮ内のノード」と称する。また、ＬＡＮ内以外のネットワークを、「ＬＡＮ外」と称する。また、ＬＡＮ内以外のネットワークに接続するノードＮｎを、「ＬＡＮ外のノード」と称する。なお、メッセージの中継に関する詳細な説明は後述する。
【００６４】
ＮＡＴ越えの設定としては、例えば、ルータＲＴの１つのポートが、中継ノードの予め決定しておいたポートにポートフォワーディングされるように、ルータＲＴの設定が行われる。一方、非中継ノードに対してはポートフォワーディングが行われない。このように、各ＬＡＮｍにおいて、中継ノードのためのポートを１つだけ開放させるだけで、ＬＡＮ内のノードＮｎとＬＡＮ外のノードＮｎとの通信が可能となる。ＮＡＴ越えの設定としては、例えば、ルータＲＴの所定数のポートが、中継ノードの予め決定しておいたポートにポートフォワーディングされるように、ルータＲＴの設定が行われても良い。また、中継ノード装置が複数ある場合、それぞれの中継ノードに対してルータＲＴの１つのポートが、各中継ノードの予め決定しておいたポートにポートフォワーディングされるように、ルータＲＴの設定が行われても良い。
【００６５】
［２．ノードの構成］
次に、図２を参照して、ノードＮｎの構成について説明する。
【００６６】
図２は、ノードＮｎの概要構成例を示す図である。ノードＮｎは、図２に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１を備えている。また、ノードＮｎは、各種データ及び各種プログラム等を記憶保存するためのＨＤ（ハードディスク）等から構成された記憶部１２と、受信されたコンテンツ等を一時蓄積するバッファメモリ１３とを備えている。更に、ノードＮｎは、コンテンツに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコードするデコーダ部１４を備えている。また更に、ノードＮｎは、上記デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、この映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、を備えている。更にまた、ノードＮｎは、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、この音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、を備えている。また更に、ノードＮｎは、ネットワーク５を通じてセンターサーバＳＡ、及び他のノードＮｎとの間の情報の通信制御を行うための通信部１９を備えている。更にまた、ノードＮｎは、ユーザからの指示を受け付けこの指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、リモコンや操作パネル等）２０を備えている。そして、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部１９、及び入力部２０はバス２１を介して相互に接続されている。
【００６７】
なお、中継ノードの場合、ノードＮｎの構成としてルータＲＴを備えていても良い。つまり、中継ノードは、中継ノードが接続するＬＡＮｍのルータＲＴの機能を有していても良い。
【００６８】
記憶部１２には、ＤＨＴを用いたルーティングテーブル、インデックス情報、並びに、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノードのアドレス情報、及びセンターサーバＳＡのアドレス情報等が記憶されている。
【００６９】
また、記憶部１２には、ノードＮｎ自身のノードＩＤが記憶されている。更に、記憶部１２には、ノードＮｎ自身のアドレス情報が記憶されている。ＬＡＮｍに接続されている非中継ノードのアドレス情報は、ＬＡＮ内のアドレス情報である。ＬＡＮ内のアドレス情報とは、ＬＡＮ内でのメッセージの送受信に用いられるアドレス情報である。そして、ＬＡＮ内のＩＰアドレスは、ＬＡＮ内で割り当てられるプライベートＩＰアドレスである。
【００７０】
ＷＡＮ４に接続されている非中継ノードのアドレス情報は、ＷＡＮ内のアドレス情報である。ＷＡＮ内のアドレス情報とは、ＷＡＮ４内でのメッセージの送受信に用いられるアドレス情報である。そして、ＷＡＮ内のＩＰアドレスは、ＷＡＮ４内で割り当てられるグローバルＩＰアドレスである。
【００７１】
中継ノードの場合は、アドレス情報として、ＬＡＮ側のアドレス情報と、ＷＡＮ側のアドレス情報とが記憶部１２に記憶されている。ＬＡＮ側のアドレス情報は、ＬＡＮ内のアドレス情報である。また、ＷＡＮ側のアドレス情報は、ＬＡＮ内のルータＲＴの接続先のネットワークがＷＡＮ４である場合、ＷＡＮ内のアドレス情報である。一方、ＬＡＮ内のルータＲＴの接続先のネットワークが他のＬＡＮｍである場合、ＷＡＮ側のアドレス情報が記憶されるべき領域には、他のＬＡＮｍにおけるＬＡＮ内のアドレス情報が記憶される。何れの場合も、ＷＡＮ側のＩＰアドレスは、ＬＡＮ内のルータＲＴのグローバルＩＰアドレスである。また、ＷＡＮ側のポート番号は、ＬＡＮ内のルータＲＴのポート番号である。中継ノードは、ＮＡＴ越えによって、ＬＡＮ外のノードとメッセージの送受信を行う場合、１又は複数のポートを用いる。つまり、ルータＲＴは、中継ノードがＬＡＮ外のノードとメッセージを送受信するためのポートを、１又は複数開放するように設定される。なお、ＬＡＮ側のアドレス情報は、プライベートアドレス情報の一例である。また、ＷＡＮ側のアドレス情報は、グローバルアドレス情報の一例である。
【００７２】
ＬＡＮ側のＩＰアドレスは、例えば、ユーザによって設定される。或いは、ＬＡＮ側のＩＰアドレスは、ＬＡＮ内のルータＲＴによって割り当てられ、ルータＲＴからノードＮｎに通知される。また、ＬＡＮ側のポート番号は、例えば、Ｐ２Ｐソフトウェアの初期設定時に、制御部１１により自動的に設定される。ＷＡＮ側のＩＰアドレス及びポート番号は、例えば、静的ポートフォワーディングを用いた場合、ユーザによって設定される。また、ブロードバンドルータのＵＰｎＰ（Universal Plug and play）機能を用いた場合、ＷＡＮ側のＩＰアドレス及びポート番号は、ＬＡＮ内のルータＲＴによって割り当てられ、ルータＲＴからノードＮｎに通知される。また、サーバ装置を用いた、例えばＳＴＵＮ（Simple Traversal of UDP through NATs）等のＮＡＴ越え技術を用いた場合、ＷＡＮ側のＩＰアドレス及びポート番号は、例えば、ＬＡＮ内のルータＲＴによって割り当てられ、サーバ装置からノードＮｎに通知される。
【００７３】
記憶部１２には、更に、オペレーティングシステム、Ｐ２Ｐソフトウェア等の各種プログラムが記憶されている。Ｐ２Ｐソフトウェアは、非中継ノードに対しては非中継ノード用のソフトウェアが記憶され、中継ノードに対しては中継ノード用のソフトウェアが記憶される。或いは、非中継ノードと中継ノードとでＰ２Ｐソフトウェアは同一であっても良い。この場合、例えば、Ｐ２Ｐソフトウェアの初期設定時に、ユーザが非中継ノードであるか又は中継ノードであるかを設定すると、この設定情報に応じて制御部１１の処理内容が変わるように、Ｐ２Ｐソフトウェアがプログラミングされる。なお、これらのプログラムは、例えば、センターサーバＳＡ等からダウンロードされるようにしても良い。また、これらのプログラムは、例えば、記録媒体に記録されて当該記録媒体からドライブを介して読み込まれるようにしても良い。
【００７４】
制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、ノード全体を統括制御する。また、中継ノードにおいて、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、本発明における取得手段、中継手段、第１判定手段、第２判定手段、第３判定手段、第４判定手段、第５判定手段、及び第６判定手段として機能する。また、非中継ノードにおいて、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、本発明における送信手段として機能する。
【００７５】
［３．メッセージの中継］
次に、中継ノードによるメッセージの中継方法について説明する。
【００７６】
［３．１  メッセージが含むノード情報の種類］
コンテンツ分散保存システムＳにおいてノードＮｎ間で送受信されるメッセージには、１つ以上のノード情報が含まれている。このノード情報は、例えば、メッセージの宛先のノードＮｎの情報であったり、メッセージの送信元のノードＮｎの情報であったりする。メッセージの種類によって、どのノードＮｎのノード情報がメッセージに含まれるべきかが定められている。中継ノードによるメッセージの中継は、このメッセージに含まれているノード情報を中継ノードが変更することにより行われる。代表的なメッセージには、参加メッセージと、参加応答メッセージと、検索要求メッセージと、コンテンツ送信要求メッセージと、コンテンツ送信メッセージと、パブリッシュメッセージとがある。
【００７７】
上述した各種メッセージは、基本的には、メッセージの送信元を示すノード情報と、メッセージの送信先を示すノード情報とを含む。メッセージの種類によっては、メッセージが、メッセージの送信元を示すノード情報を含まない場合もある。ここで、送信元のノード情報を、送信元ノード情報という。また、送信先のノード情報を、宛先ノード情報という。
【００７８】
本実施形態のコンテンツ分散保存システムＳでは、メッセージによっては、宛先ノード情報と送信元ノード情報と以外に、メッセージに付加される付加ノード情報を含む場合がある。例えば、コンテンツ保持ノードが記載されたコンテンツ保持リストが付加されてメッセージが送信される場合、付加ノード情報は、コンテンツ保持リストに含まれるノード情報である。また、パブリッシュメッセージにコンテンツを保持したコンテンツ保持ノードのノード情報（アドレス情報）が含まれてメッセージが送信される場合、付加ノード情報は、コンテンツ保持ノードのノード情報である。また、例えば、検索要求メッセージには、送信元ノード情報として、ユーザノードのノード情報が含まれている。また、コンテンツ送信要求メッセージには、付加ノード情報として、ユーザノードのノード情報が含まれている。この送信元ノード情報又は付加ノード情報としてのユーザノードのノード情報を、ユーザノード情報という。なお、送信元ノード情報又は付加ノード情報に含まれるアドレス情報は、メッセージの宛先以外にメッセージに付加されるアドレス情報の一例である。
【００７９】
［３．２  ノード情報が含むアドレスリストについて］
ノード情報には、ノードＩＤと、１つ又は複数のアドレス情報を含むアドレスリストとが含まれている。アドレスリストに含まれるアドレス情報には、アドレス情報１、アドレス情報２、アドレス情報３・・・というように、それぞれ番号が割り当てられる。前述したように、アドレス情報は、ＩＰアドレスとポート番号との組である。最も基本的なノード情報は、宛先や送信元等のノードＮｎのノードＩＤと、宛先や送信元等のノードＮｎのアドレス情報を含む。アドレスリストに複数のアドレス情報が含まれている場合、それは、中継ノードのアドレス情報が追加されたことを示している。例えば、アドレスリストに３個のアドレス情報が含まれている場合、アドレス情報１とアドレス情報２は、夫々中継ノードのアドレス情報である。そして、アドレス情報３が、ノードＩＤに対応するノード情報、すなわち、本来の宛先や送信元等のノードＮｎのアドレス情報である。また、番号が小さいアドレス情報ほど、後から追加されたアドレス情報であることを示す。例えば、アドレスリストに３個のアドレス情報が含まれている場合、アドレス情報１の方が、アドレス情報２よりも後に追加されたアドレス情報である。そして、アドレス情報の番号は、メッセージの送信先のノードの順番を示す。例えば、アドレスリストには、アドレス情報と、前記の順番を示す情報とが対応付けて設定される。或いは、アドレスリストは、例えば、複数のアドレス情報を格納可能な配列である。この場合、メッセージの送信先のノードの順番が、配列のインデックスとなる。なお、メッセージの送信先のノードの順番が１番目であるアドレス情報１を、「先頭のアドレス情報」という。上述した宛先ノード情報、送信元ノード情報、付加ノード情報は夫々、上述したノードＩＤとアドレスリストとを含む。
【００８０】
或るメッセージとして第１のメッセージを受信したノードＮｎが、第１のメッセージに対して応答する場合に、応答のメッセージとして第２のメッセージを送信するとする。この場合、第１のメッセージを受信したノードＮｎは、第１のメッセージに含まれていた送信元ノード情報又は付加ノード情報を、第２のメッセージの宛先ノード情報として第２のメッセージに含ませる。これにより、第１のメッセージを送信したノードＮｎが、第２のメッセージを受信する。例えば、コンテンツ送信要求メッセージを受信したコンテンツ保持ノードは、当該コンテンツ送信要求メッセージに含まれているユーザノード情報を、送信するコンテンツ送信メッセージに含ませる。
【００８１】
［３．３  中継ノードの機能］
中継ノードは、ＬＡＮ内からＬＡＮ外へ、又は、ＬＡＮ外からＬＡＮ内へメッセージを中継する場合、メッセージに含まれる送信元ノード情報と、付加ノード情報とに、中継ノード自身のアドレス情報を追加する。そうすると、中継された第１のメッセージを受信したノードＮｎが応答する場合、前述したように、第１のメッセージに含まれていた送信元ノード情報又は付加ノード情報を、第２のメッセージの宛先ノード情報として、第２のメッセージに含ませる。そして、中継された第１のメッセージを受信したノードＮｎは、宛先ノード情報の先頭のアドレス情報のノードＮｎに対して第２のメッセージを送信する。従って、第２のメッセージは必ず中継ノードに送信されることになる。各ノードＮｎが受信するメッセージに含まれる宛先ノード情報の先頭のアドレス情報は、必ずメッセージを受信したノードＮｎ自身のアドレス情報となっている。そこで、メッセージを受信したノードＮｎは、受信したメッセージの宛先ノード情報から先頭のアドレス情報を削除する。この処理に関しては、中継ノードも同様である。中継ノードが中継する第２のメッセージの宛先ノード情報から先頭のアドレス情報を削除すると、第１のメッセージを中継ノードに送信したノードＮｎのアドレス情報が、宛先ノード情報の先頭のアドレス情報となる。
【００８２】
具体的に、宛先ノード情報には、複数のノードＮｎのアドレス情報を含むことができる。宛先ノード情報にアドレス情報が追加されるのは、第１のメッセージが中継ノードを経由して他のネットワークへ出て行く場合である。他のネットワークへ出て行った第１のメッセージは、目的のノードＮｎまで到達する。そして、目的のノードＮｎが、返答として第２のメッセージを送信しようとするとき、第２のメッセージの宛先ノード情報には、中継ノードのアドレス情報と、第１のメッセージの本来の送信元のノードＮｎのアドレス情報との２つが含まれている。これらうち、追加された中継ノードのアドレス情報の方が先頭にあるため、返答を送信するノードＮｎは、第１のメッセージの送信元は中継ノードであるとして、中継ノードにメッセージを送信する。中継ノードは、第２のメッセージの宛先ノード情報から中継ノード自身のアドレスを削除して、本来の送信元のノードＮｎにメッセージを中継する。従って、中継ノードが、この先頭のアドレス情報に基づいて、第２のメッセージを中継すると、第１のメッセージを中継ノードに送信したノードＮｎが、第２のメッセージを受信することになる。
【００８３】
こうして、中継ノードによるメッセージの中継により、ＮＡＴ越えができないノードＮｎが、ＬＡＮ外のノードとメッセージの送受信を行うことができる。以下に、中継ノードがメッセージを中継する場合の処理を示す。
【００８４】
ＬＡＮ内からＬＡＮ外への中継の場合、
（１−１）中継ノードが、送信元ノード情報又は付加ノード情報のアドレスリストに、中継ノードのＷＡＮ側のアドレス情報を追加する。
（１−２）ただし、送信元ノード情報又は付加ノード情報のアドレスリストに、中継ノードのＬＡＮ側のアドレス情報が設定されている場合には、送信元ノード情報又は付加ノード情報のアドレスリストから当該ＬＡＮ側のアドレス情報を削除し、中継ノードのＷＡＮ側のアドレス情報を追加しない。
【００８５】
ＬＡＮ外からＬＡＮ内への中継の場合、
（２−１）中継ノードが、送信元ノード情報又は付加ノード情報のアドレスリストに、中継ノードのＬＡＮ側のアドレス情報を追加する。
（２−２）ただし、送信元ノード情報又は付加ノード情報のアドレスリストに、中継ノードのＷＡＮ側のアドレス情報が設定されている場合には、送信元ノード情報又は付加ノード情報のアドレスリストから当該ＷＡＮ側のアドレス情報を削除し、中継ノードのＬＡＮ側のアドレス情報を追加しない。
【００８６】
上記（１−１）及び（２−１）においては、中継先のネットワークでのメッセージ送受信に用いられるアドレス情報が、送信元ノード情報又は付加ノード情報に追加される。
【００８７】
上記（１−２）及び（２−２）は、中継ノードによる不要なメッセージの中継を減らすための処理である。例えば、ＬＡＮ外からＬＡＮ内へ中継されたメッセージが、再びＬＡＮ外へ中継される場合がある。ここで、１回目の中継の際に、送信元ノード情報又は付加ノード情報に中継ノードのＬＡＮ側のアドレス情報が追加され、２回目の中継の際に、送信元ノード情報又は付加ノード情報に中継ノードのＷＡＮ側のアドレス情報が追加されるとする。そうすると、中継されたメッセージの送信元ノード情報又は付加ノード情報のアドレスリストには、中継ノードのＷＡＮ側のアドレス情報、中継ノードのＬＡＮ側のアドレス情報、及び中継ノードにメッセージを送信したＬＡＮ外のノードのアドレス情報が設定される。そして、このノード情報が、中継されたメッセージに対する応答のメッセージの宛先ノード情報となる。従って、この宛先ノード情報に従ってメッセージが送信されると、中継ノードによるメッセージの中継が更に２回行われることになる。しかしながら、このメッセージは、本来であれば、ＬＡＮ外のノードからＬＡＮ外のノードへ直接送信されても良いメッセージである。そうであるならば、ＬＡＮ外のノードからＬＡＮ外のノードへ直接メッセージが送信されるように、中継ノードが送信元ノード情報又は付加ノード情報を変更すれば良い。つまり、２回目の中継の際に、送信元ノード情報又は付加ノード情報から中継ノードのアドレス情報が削除されれば、この送信元ノード情報又は付加ノード情報の先頭のアドレス情報は、中継ノードにメッセージを送信したＬＡＮ外のノードのアドレス情報となる。そして、このアドレス情報が、中継されたメッセージに対する応答のメッセージの宛先ノード情報の先頭のアドレス情報となる。従って、このアドレス情報に従ってメッセージが送信されると、ＬＡＮ外のノードからＬＡＮ外のノードへ直接メッセージが送信される。
【００８８】
中継ノードは、ＬＡＮ内のノードに対して参加応答メッセージを送信する場合、送信元ノード情報又は付加ノード情報のアドレス情報として、当該中継ノードのＬＡＮ側のアドレス情報を設定する。一方、中継ノードは、ＬＡＮ外のノードに対して参加応答メッセージを送信する場合、送信元ノード情報又は付加ノード情報のアドレス情報として、当該中継ノードのＷＡＮ側のアドレス情報を設定する。参加するノードＮｎは、受信した参加応答メッセージに含まれる送信元ノード情報又は付加ノード情報をルーティングテーブルに設定する。これにより、ルーティングテーブルが作成される。
【００８９】
ここで、参加するノードＮｎが接続するネットワークとは異なるネットワークに接続するノードＮｎが、参加応答メッセージを返信した場合、この参加応答メッセージは、中継ノードにより中継される。従って、参加するノードＮｎが受信した参加応答メッセージに含まれる送信元ノード情報又は付加ノード情報には、中継ノードのアドレス情報が追加される。そのため、ルーティングテーブルを記憶するノードＮｎと異なるネットワークに接続するノードＮｎのノード情報には、中継ノードのアドレス情報が追加されているのである。
【００９０】
中継ノードがコンテンツ分散保存システムＳに参加する場合には、当該中継ノード自身がメッセージの中継を行うＬＡＮ内のコンタクトノードとＬＡＮ外のコンタクトノードに対して夫々参加メッセージを送信する。そして、中継ノードは、ＬＡＮ内とＬＡＮ外とから参加応答メッセージを受信して、ルーティングテーブルを作成する。なお、ルートノードが記憶するインデックス情報に含まれるノード情報も、ルーティングテーブルに含まれるノード情報と同様である。つまり、コンテンツ保持ノードがパブリッシュメッセージを送信する場合、送信元ノード情報又は付加ノード情報としてコンテンツ保持ノード自身のノード情報をパブリッシュメッセージに含める。パブリッシュメッセージを受信したルートノードは、このパブリッシュメッセージに含まれる送信元ノード情報又は付加ノード情報を、インデックス情報に追加する。パブリッシュメッセージが中継ノードによって中継される場合、このパブリッシュメッセージに含まれる送信元ノード情報又は付加ノード情報に、中継ノードのアドレス情報が追加される。
【００９１】
このように、各ノードＮｎが記憶するルーティングテーブルやインデックス情報に設定されているノード情報は、中継ノードによるメッセージの中継が必要となる場合、その中継ノードのアドレス情報が追加されている。従って、各ノードＮｎは、メッセージを送信、転送、返信等する際、中継が必要なメッセージであるのか否かを判断する必要が無い。各ノードＮｎは、メッセージに含まれる宛先ノード情報の先頭のアドレス情報が示すノードＮｎに対してメッセージを送信すれば良い。そうすれば、必要に応じて中継ノードがメッセージを中継するようになっている。
【００９２】
非中継ノードは、他のノードＮｎが中継ノードであるか又は非中継ノードであるかを区別して処理を行ってはいない。非中継ノードは、どのノードＮｎに対しても、同じように動作する。そのため、非中継ノードは、中継ノードのアドレス情報を、非中継ノードのアドレス情報の場合と同様に様々な通信の過程で取得する。例えば、中継ノードのアドレス情報は、コンタクトノードから通知されたりする。
【００９３】
［３．４  具体例］
次に、中継ノードのメッセージの中継に関する動作を、具体例を用いて説明する。図３は、ネットワーク及びノードＮｎの接続例を示す図である。例えば、図３に示すように、ＬＡＮ１とＬＡＮ２とが、ルータＲＴを介して接続されている。また、ＬＡＮ２とＷＡＮ４とが、ルータＲＴを介して接続されている。更に、ＬＡＮ３とＷＡＮ４とが、ルータＲＴを介して接続されている。そして、ＬＡＮ１には、ノードＮ１及びＮ２が接続されている。また、ＬＡＮ２には、ノードＮ３及びＮ６が接続されている。また、ＬＡＮ３には、ノードＮ４及びＮ５が接続されている。また、ＷＡＮ４には、ノードＮ７が接続されている。ここで、ノードＮ２が、ＬＡＮ１とＬＡＮ２との間のメッセージを中継する中継ノードである。また、ノードＮ３が、ＬＡＮ２とＷＡＮ４との間のメッセージを中継する中継ノードである。また、ノードＮ４が、ＬＡＮ３とＷＡＮ４との間のメッセージを中継する中継ノードである。
【００９４】
中継ノードであるノードＮ２、Ｎ３及びＮ４は、夫々ＷＡＮ側のアドレス情報と、ＬＡＮ側のアドレス情報とを有する。ノードＮ２のＬＡＮ側のアドレス情報は、ＬＡＮ１側のアドレス情報であり、ノードＮ２のＷＡＮ側のアドレス情報は、ＬＡＮ２側のアドレス情報である。また、ノードＮ３のＬＡＮ側のアドレス情報は、ＬＡＮ２側のアドレス情報であり、ノードＮ３のＷＡＮ側のアドレス情報は、ＷＡＮ４側のアドレス情報である。また、ノードＮ４のＬＡＮ側のアドレス情報は、ＬＡＮ３側のアドレス情報であり、ノードＮ４のＷＡＮ側のアドレス情報は、ＷＡＮ４側のアドレス情報である。
【００９５】
例えば、ノードＮ７からノードＮ５へのメッセージ、すなわち、ＷＡＮ４からＬＡＮ３へのメッセージをノードＮ４が中継する場合、ノードＮ４は、中継するメッセージに含まれる送信元ノード情報又は付加ノード情報に、ノードＮ４のＬＡＮ側のアドレス情報を追加する。また、ＬＡＮ３からＷＡＮ４へのメッセージをノードＮ４が中継する場合、ノードＮ４は、中継するメッセージに含まれる送信元ノード情報又は付加ノード情報に、ノードＮ４のＷＡＮ側のアドレス情報を追加する。
【００９６】
ただし、一度ＷＡＮ４からＬＡＮ３に中継したメッセージを、ノードＮ４がＷＡＮ４に中継する場合、ノードＮ４は、中継するメッセージに含まれる送信元ノード情報又は付加ノード情報から、ノードＮ４のＬＡＮ側のアドレス情報を削除する。また、一度ＬＡＮ１からＷＡＮ４に中継したメッセージを、ノードＮ４がＬＡＮ１に中継する場合、ノードＮ４は、中継するメッセージに含まれる送信元ノード情報又は付加ノード情報から、ノードＮ４のＷＡＮ側のアドレス情報を削除する。
【００９７】
また、例えば、ノードＮ１からノードＮ５へのメッセージ、すなわち、ＬＡＮ１からＬＡＮ３へのメッセージは、ノードＮ２、ノードＮ３及びノードＮ４の順で、中継ノードにより中継される。このとき、中継されるメッセージに含まれる送信元ノード情報又は付加ノード情報には、ノードＮ２のＷＡＮ側のアドレス情報、ノードＮ３のＷＡＮ側のアドレス情報、及び、ノードＮ４のＬＡＮ側のアドレス情報が、順次追加される。また、例えば、ＬＡＮ３からＬＡＮ１へのメッセージに含まれる送信元ノード情報又は付加ノード情報には、ノードＮ４、ノードＮ３及びノードＮ２の順で、中継ノードにより中継される。このとき、中継されるメッセージには、ノードＮ４のＷＡＮ側のアドレス情報、ノードＮ３のＬＡＮ側のアドレス情報、及び、ノードＮ２のＬＡＮ側のアドレス情報が、順次追加される。
【００９８】
ただし、一度ＬＡＮ１からＬＡＮ３へ中継されたメッセージが、ＬＡＮ１に中継される場合、中継されるメッセージに含まれる送信元ノード情報又は付加ノード情報から、ノードＮ４のＬＡＮ側のアドレス情報、ノードＮ３のＷＡＮ側のアドレス情報、及び、ノードＮ２のＷＡＮ側のアドレス情報が順次削除される。また、一度ＬＡＮ３からＬＡＮ１へ中継されたメッセージが、ＬＡＮ３に中継される場合、中継されるメッセージに含まれる送信元ノード情報又は付加ノード情報から、ノードＮ２のＬＡＮ側のアドレス情報、ノードＮ３のＬＡＮ側のアドレス情報、及び、ノードＮ４のＷＡＮ側のアドレス情報が順次削除される。
【００９９】
［４．コンテンツ分散保存システムの動作］
次に、図４及び図５を参照して、本実施形態に係るコンテンツ分散保存システムＳの動作について説明する。図４は、本実施形態に係る非中継ノードの制御部１１における処理例を示すフローチャートである。
【０１００】
図４の処理は、例えば非中継ノードの電源がＯＮとされた場合に開始される。先ず、制御部１１は、ユーザから電源ＯＦＦの要求がされたか否かを判定する（ステップＳ１）。このとき、制御部１１は、ユーザから電源ＯＦＦの要求がされなかった場合には（ステップＳ１：ＮＯ）、他のノードＮｎからメッセージを受信したか否かを判定する（ステップＳ２）。このとき、制御部１１は、他のノードＮｎからメッセージを受信しなかった場合には（ステップＳ２：ＮＯ）、ステップＳ１に移行する。
【０１０１】
一方、制御部１１は、他のノードＮｎからメッセージを受信した場合には（ステップＳ２：ＹＥＳ）、受信したメッセージの宛先ノード情報のノードＩＤが、当該メッセージを受信したノードＮｎ自身のノードＩＤであるか否かを判定する（ステップＳ３）。このとき、制御部１１は、受信したメッセージの宛先ノード情報のノードＩＤが、当該メッセージを受信したノードＮｎ自身のノードＩＤである場合には（ステップＳ３：ＹＥＳ）、ステップＳ４に移行する。そして、制御部１１は、受信したメッセージに対応する処理を実行する（ステップＳ４）。例えば、受信したメッセージが検索要求メッセージである場合、制御部１１は、メッセージを受信したノードＮｎ自身がルートノードであるか否かを判定する。そして、制御部１１は、メッセージを受信したノードＮｎ自身がルートノードである場合には、コンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信する。一方、制御部１１は、メッセージを受信したノードＮｎ自身がルートノードではない場合には、ルーティングテーブルに従って検索要求メッセージを転送する。また、例えば、受信したメッセージがコンテンツ送信要求メッセージである場合、制御部１１は、要求されたコンテンツを含むコンテンツ送信メッセージを送信する。制御部１１は、ステップＳ４の処理を終えると、ステップＳ１に移行する。
【０１０２】
ステップＳ３において、制御部１１は、受信したメッセージの宛先ノード情報のノードＩＤが、当該メッセージを受信したノードＮｎ自身のノードＩＤではない場合には（ステップＳ３：ＮＯ）、受信したメッセージを転送する。具体的に、制御部１１は、受信したメッセージの宛先ノード情報のアドレスリストから先頭のアドレス情報を削除する（ステップＳ５）。次いで、制御部１１は、記憶部１２に記憶されているルーティングテーブルに基づいて、受信したメッセージの転送先を示すことになるノード情報を選択する（ステップＳ６）。次いで、制御部１１は、選択したノード情報を転送すべきメッセージの宛先ノード情報として設定する（ステップＳ７）。つまり、制御部１１は、宛先ノード情報を書き換える。次いで、制御部１１は、設定した宛先ノード情報のアドレスリストの先頭のアドレス情報に基づいてメッセージを送信する（ステップＳ８）。具体的に、制御部１１は、先頭のアドレス情報のＩＰアドレスを、メッセージのパケットのＩＰヘッダの宛先アドレスに設定する。また、制御部１１は、先頭のアドレス情報のポート番号を、メッセージのパケットのＵＤＰ（User Datagram Protocol）ヘッダ又はＴＣＰ（Transmission Control Protocol）ヘッダの宛先ポート番号に設定する。そして、制御部１１は、ヘッダの設定をしたパケットを順次送信する。制御部１１は、ステップＳ８の処理を終えると、ステップＳ１に移行する。
【０１０３】
ステップＳ１において、制御部１１は、ユーザから電源ＯＦＦの要求がされた場合には（ステップＳ１：ＹＥＳ）、図４に示す処理を終了させる。
【０１０４】
図５は、本実施形態に係る中継ノードの制御部１１における処理例を示すフローチャートである。
【０１０５】
図５の処理は、例えば中継ノードの電源がＯＮとされた場合に開始される。先ず、制御部１１は、ユーザから電源ＯＦＦの要求がされたか否かを判定する（ステップＳ２１）。このとき、制御部１１は、ユーザから電源ＯＦＦの要求がされなかった場合には（ステップＳ２１：ＮＯ）、他のノードＮｎからメッセージを受信したか否かを判定する（ステップＳ２２）。このとき、制御部１１は、他のノードＮｎからメッセージを受信しなかった場合には（ステップＳ２２：ＮＯ）、ステップＳ２１に移行する。
【０１０６】
一方、制御部１１は、他のノードＮｎからメッセージを受信した場合には（ステップＳ２２：ＹＥＳ）、受信したメッセージの宛先ノード情報のノードＩＤが、当該メッセージを受信したノードＮｎ自身のノードＩＤであるか否かを判定する（ステップＳ２３）。このとき、制御部１１は、受信したメッセージの宛先ノード情報のノードＩＤが、当該メッセージを受信したノードＮｎ自身のノードＩＤである場合には（ステップＳ２３：ＹＥＳ）、受信したメッセージに対応する処理を実行する（ステップＳ２４）。ステップＳ２４の処理内容は、図４に示すステップＳ４の処理と同様である。そして制御部１１は、ステップＳ２１に移行する。
【０１０７】
ステップＳ２３において、制御部１１は、受信したメッセージの宛先ノード情報のノードＩＤが、当該メッセージを受信したノードＮｎ自身のノードＩＤではない場合には（ステップＳ２３：ＮＯ）、受信したメッセージの宛先ノード情報のアドレスリストから先頭のアドレス情報を削除する（ステップＳ２５）。次いで、制御部１１は、受信したメッセージの宛先ノード情報のアドレスリストが空（から）であるか否かを判定する（ステップＳ２６）。このとき、制御部１１は、受信したメッセージの宛先ノード情報のアドレスリストが空である場合には（ステップＳ２６：ＹＥＳ）、メッセージを転送するための前処理を行う。具体的に、制御部１１は、記憶部１２に記憶されているルーティングテーブルに基づいて、受信したメッセージの転送先を示すことになるノード情報を選択する（ステップＳ２７）。次いで、制御部１１は、選択したノード情報を転送すべきメッセージの宛先ノード情報として設定する（ステップＳ２８）。
【０１０８】
ステップＳ２６において、制御部１１は、受信したメッセージの宛先ノード情報のアドレスリストが空ではない場合（ステップＳ２６：ＮＯ）、又は、ステップＳ２８の処理を終えた場合には、第１判定手段及び第５判定手段として、受信したメッセージが、ＬＡＮ内からＬＡＮ外へ中継すべきメッセージであるか否かを判定する（ステップＳ２９）。例えば、ＩＰアドレスは、ネットワークを区別するためのネットワークアドレスと、ネットワーク内でホストを区別するためのホストアドレスとにより構成されている。そこで、制御部１１は、受信したメッセージのＩＰヘッダに設定されている送信元アドレスのネットワークアドレス部分と、記憶部１２に記憶されている中継ノード自身のＬＡＮ側のＩＰアドレスのネットワークアドレス部分とを比較する。そして、ネットワークアドレスが一致した場合、受信したメッセージはＬＡＮ内から送信されたメッセージであり、ネットワークアドレスが一致しない場合、受信したメッセージはＬＡＮ外から送信されたメッセージである。ＩＰアドレスから当該ＩＰアドレスのクラスを特定することができる。そして、当該クラスにより、ＩＰアドレスの最上位ビットから何ビット目までがネットワークアドレスを示すかを判断することができる。或いは、記憶部１２にサブネットマスクが記憶されていれば、当該サブネットマスクにより、ＩＰアドレスの最上位ビットから何ビット目までがネットワークアドレスとサブネットアドレスを示すかを判断することができる。この場合、ネットワークアドレスとサブネットアドレスの両方が一致しているか否かが判定される。また、制御部１１は、宛先ノード情報のアドレスリストの先頭のアドレス情報のＩＰアドレスのネットワークアドレスと、記憶部１２に記憶されている中継ノード自身のＬＡＮ側のＩＰアドレスのネットワークアドレスとを比較する。そして、ネットワークアドレスが一致した場合、受信したメッセージはＬＡＮ内へ送信すべきメッセージであり、ネットワークアドレスが一致しない場合、受信したメッセージはＬＡＮ外へ送信すべきメッセージである。
【０１０９】
制御部１１は、受信したメッセージが、ＬＡＮ内からＬＡＮ外へ中継すべきメッセージではない場合には（ステップＳ２９：ＮＯ）、第２判定手段及び第４判定手段として、受信したメッセージが、ＬＡＮ外からＬＡＮ内へ中継すべきメッセージであるか否かを判定する（ステップＳ３０）。ここで、受信したメッセージが、ＬＡＮ外からＬＡＮ内へ中継すべきメッセージではない場合（ステップＳ３０：ＮＯ）、受信したメッセージは、ＬＡＮ内からＬＡＮ内、又は、ＬＡＮ外からＬＡＮ外に単に転送すべきメッセージである。従って、この場合、制御部１１は、宛先ノード情報のアドレスリストの先頭のアドレス情報に基づいてメッセージを送信して（ステップＳ３２）、ステップＳ１に移行する。
【０１１０】
制御部１１は、受信したメッセージが、ＬＡＮ内からＬＡＮ外へ中継すべきメッセージであるか（ステップＳ２９：ＹＥＳ）、又は、ＬＡＮ外からＬＡＮ内へ中継すべきメッセージである場合には（ステップＳ３０：ＹＥＳ）、中継手段として、メッセージの中継を行う。
【０１１１】
具体的に、制御部１１は、受信したメッセージが宛先ノード情報以外のノード情報、すなわち、送信元ノード情報又は付加ノード情報の少なくとも何れか一方を有するか否かを判定する（ステップＳ３１）。このとき、制御部１１は、受信したメッセージが送信元ノード情報及び付加ノード情報の何れも有さない場合には（ステップＳ３１：ＮＯ）、ステップＳ３２のメッセージ送信を行うことにより、メッセージを中継する。
【０１１２】
一方、制御部１１は、受信したメッセージが送信元ノード情報又は付加ノード情報の少なくとも何れか一方を有する場合には（ステップＳ３１：ＹＥＳ）、送信元ノード情報又は付加ノード情報のうちまだ選択されていないノード情報が存在するか否かを判定する（ステップＳ３３）。このとき、制御部１１は、まだ選択されていないノード情報が存在する場合には（ステップＳ３３：ＹＥＳ）、まだ選択されていないノード情報のうち１つを選択する（ステップＳ３４）。次いで、制御部１１は、第３判定手段及び第６判定手段として、選択したノード情報のアドレスリストの先頭のアドレス情報が、中継ノード自身のアドレス情報であるか否かを判定する（ステップＳ３５）。具体的に、制御部１１は、選択したノード情報のアドレスリストの先頭のアドレス情報のＩＰアドレスと、記憶部１２に記憶されている中継ノードのＬＡＮ側のＩＰアドレス及びＷＡＮ側のＩＰアドレスとを比較する。そして、先頭のアドレス情報のＩＰアドレスが、ＬＡＮ側のＩＰアドレス又はＷＡＮ側のＩＰアドレスの何れか一方と一致する場合、選択したノード情報のアドレスリストの先頭のアドレス情報は、中継ノード自身のアドレス情報である。一方、先頭のアドレス情報のＩＰアドレスが、ＬＡＮ側のＩＰアドレス及びＷＡＮ側のＩＰアドレスの何れとも一致しない場合、選択したノード情報のアドレスリストの先頭のアドレス情報は、中継ノード自身のアドレス情報ではない。
【０１１３】
制御部１１は、選択したノード情報のアドレスリストの先頭のアドレス情報が、中継ノード自身のアドレス情報である場合には（ステップＳ３５：ＹＥＳ）、選択したノード情報のアドレスリストから先頭のアドレス情報を削除する（ステップＳ３６）。制御部１１は、この処理を終えると、ステップＳ３３に移行する。
【０１１４】
制御部１１は、選択したノード情報のアドレスリストの先頭のアドレス情報が、中継ノード自身のアドレス情報ではない場合には（ステップＳ３５：ＮＯ）、選択したノード情報のアドレスリストの先頭のアドレス情報が、ＬＡＮ内のノードのアドレス情報であるか否かを判定する（ステップＳ３７）。このとき、制御部１１は、選択したノード情報のアドレスリストの先頭のアドレス情報が、ＬＡＮ内のノードのアドレス情報である場合には（ステップＳ３７：ＹＥＳ）、取得手段として記憶部１２に記憶されている中継ノード自身のＬＡＮ側のアドレス情報を取得し、選択したノード情報のアドレスリストに取得したＬＡＮ側のアドレス情報を追加する（ステップＳ３８）。一方、制御部１１は、選択したノード情報のアドレスリストの先頭のアドレス情報が、ＬＡＮ外のノードのアドレス情報である場合には（ステップＳ３７：ＮＯ）、取得手段として記憶部１２に記憶されている中継ノード自身のＷＡＮ側のアドレス情報を取得し、選択したノード情報のアドレスリストに取得したＷＡＮ側のアドレス情報を追加する（ステップＳ３９）。制御部１１は、ステップＳ３８又はＳ３９の処理を終えると、ステップＳ３３に移行する。
【０１１５】
ステップＳ３３において、制御部１１は、送信元ノード情報又は付加ノード情報のうち選択されていないノード情報がない場合には（ステップＳ３３：ＮＯ）、ステップＳ３２のメッセージ送信を行うことにより、メッセージを中継する。
【０１１６】
ステップＳ２１において、制御部１１は、ユーザから電源ＯＦＦの要求がされた場合には（ステップＳ２１：ＹＥＳ）、図５に示す処理を終了させる。
【０１１７】
以上説明したように、本実施形態によれば、中継ノードの制御部１１が、ＬＡＮ内からＬＡＮ外へメッセージを中継する場合には、取得されたＷＡＮ側のアドレス情報を当該メッセージに含め、ＬＡＮ外からＬＡＮ内へのメッセージを中継する場合には、取得されたＬＡＮ側のアドレス情報を当該メッセージに含める。従って、中継ノードからメッセージを受信したノードＮｎは、受信したメッセージに含まれていたアドレス情報に基づいて、中継ノードにメッセージを送信することができる。そして、中継ノードは、ＬＡＮ外のノードにメッセージを中継することができる。このように、中継ノードを介してＬＡＮ内とＬＡＮ外とのメッセージの送受信が行われるので、アドレス解決のための処理負荷を軽減させることができる。
【０１１８】
また、中継ノードの制御部１１が、ルータＲＴにおけるＷＡＮ側の複数のポートのうち、中継ノードのために割り当てられた所定数のポートに基づき、ＬＡＮ外に対するメッセージの送受信をルータＲＴを介して行う。従って、ルータＲＴにおいては、中継ノードがＬＡＮ外との通信を行うために必要なポートを開放する。そうしておけば、ＬＡＮ内のノードとＬＡＮ外のノードとが中継ノードを介してメッセージを送受信することができる。よって、ノードＮｎ毎にポートを開放する必要がないので、ＬＡＮ外からの不正通信等に対する安全性を高めることができる。また、ルータＲＴにおいて、アドレス変換に必要なテーブルが埋まってしまうことを防止することができる。
【０１１９】
或いは、中継ノードの制御部１１が、ルータＲＴにおいて中継ノードのために割り当てられたＷＡＮ側の所定の１つのポートに基づき、ＬＡＮ外に対するメッセージの送受信を、ルータＲＴを介して行っても良い。この場合、ルータＲＴにおいて、中継ノードのために１つのポートを開放しておけば良いので、安全性をより高めることができる。
【０１２０】
また、中継ノードの制御部１１が、ＬＡＮ内からＬＡＮ外へメッセージを中継する場合、メッセージの送信元ノード情報又は付加ノード情報のアドレス情報として、中継ノードのＷＡＮ側のアドレス情報を含める。従って、中継ノードからメッセージを受信したＬＡＮ外のノードは、受信したメッセージに含まれていた送信元ノード情報又は付加ノード情報のアドレス情報を、送信するメッセージの宛先ノード情報のアドレス情報として設定してメッセージを送信することができる。そうすることで、このメッセージが中継ノードに送信される。そして、中継ノードは、ＬＡＮ内のノードにメッセージを中継することができる。
【０１２１】
また、中継ノードの制御部１１が、ＬＡＮ内からＬＡＮ外へメッセージを中継する場合、当該メッセージに含まれる各送信元ノード情報又は付加ノード情報のアドレスリストに、中継ノードのＷＡＮ側のアドレス情報を追加する。従って、中継ノードからメッセージを受信したＬＡＮ外のノードは、受信したメッセージに含まれていた送信元ノード情報又は付加ノード情報アドレス情報を、送信するメッセージの宛先ノード情報のアドレス情報として設定してメッセージを送信することができる。そうすることで、このメッセージが中継ノードに送信される。そうすることで、ＬＡＮ内のノードにメッセージを中継することができる。
【０１２２】
また、中継ノードの制御部１１が、中継するメッセージが、ＬＡＮ外からＬＡＮ内へ送信されるメッセージであるか否かを判定する。そして、ＬＡＮ外からＬＡＮ内へ送信されるメッセージであると判定されたとき、中継ノードの制御部１１が、メッセージが含む送信元ノード情報又は付加ノード情報のアドレスリストから、中継ノードのＷＡＮ側のアドレス情報を削除する。従って、中継ノードからメッセージを受信したＬＡＮ内のノードＮｎが応答する場合、応答のメッセージは中継ノードにより中継されず、ＬＡＮ内のノード間で送受信される。従って、中継ノードの中継負荷を軽減させることができる。
【０１２３】
また、中継ノードの制御部１１が、ＬＡＮ内からＬＡＮ外へメッセージを中継する場合、メッセージに中継ノードのＬＡＮ側のアドレス情報が含まれているか否かを判定する。そして、中継ノードの制御部１１が、中継ノードのＬＡＮ側のアドレス情報が含まれていないと判定された場合に、メッセージに中継ノードのＷＡＮ側のアドレス情報を追加し、中継ノードのＬＡＮ側のアドレス情報が含まれていると判定された場合に、メッセージからＬＡＮ側のアドレス情報を削除する。従って、ＬＡＮ内からＬＡＮ外へメッセージを中継する際の、中継ノードのアドレス情報の追加又は削除の制御を的確に行うことができる。
【０１２４】
なお、図５のフローチャートにおいて、ステップＳ３３〜Ｓ３９の処理は、メッセージに送信元ノード情報又は付加ノード情報が複数含まれていることを想定した処理になっている。従って、メッセージに送信元ノード情報又は付加ノード情報が複数含まれるようにしても良い。上記実施形態においては、ルートノードが、コンテンツを送信させるコンテンツ保持ノードを選択し、選択したコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信していた。しかしながら、例えば、ルートノードが、インデックス情報から複数のコンテンツ保持ノードのノード情報を選択し、選択した複数のノード情報を夫々送信元ノード情報又は付加ノード情報とする検索応答メッセージをユーザノードに対して送信しても良い。ユーザノードは、受信した検索応答メッセージに含まれる送信元ノード情報又は付加ノード情報から任意のノード情報を選択し、選択したノード情報に基づいてコンテンツ保持ノードに対してコンテンツを要求する。この場合において、図５にも示したように、中継ノードは、検索応答メッセージに含まれる各送信元ノード情報又は付加ノード情報に対して、中継ノードのアドレス情報の追加又は削除を行う。
【０１２５】
また、上記実施形態において、中継ノードは、メッセージを中継する際に、中継ノードのアドレス情報を送信元ノード情報又は付加ノード情報に追加していた。しかしながら、中継ノードは、アドレス情報の変換のためのテーブルを記憶することにより、送信元ノード情報又は付加ノード情報のアドレス情報を、中継ノードのアドレス情報に書き換えても良い。この場合において、中継ノードは、例えば、中継すべきメッセージを受信したときに、識別情報を生成し、メッセージの送信元ノード情報又は付加ノード情報のアドレス情報と識別情報とを対応付けてテーブルに記憶させる。また、中継ノードは、メッセージの送信元ノード情報又は付加ノード情報のアドレス情報を、中継ノードのアドレス情報に書き換える。更に、中継ノードは、メッセージの送信元ノード情報又は付加ノード情報に、生成した識別情報を追加する。そして、中継ノードは、メッセージを中継する。その後、中継ノードは、中継すべきメッセージを受信したときに、メッセージの宛先ノード情報に識別情報が含まれている場合、当該識別情報とテーブルに記憶されている識別情報とが一致するか否かを判定する。ここで、中継ノードは、識別情報が一致する場合には、識別情報に対応するアドレス情報をテーブルから取得する。そして、中継ノードは、メッセージの宛先ノード情報のアドレス情報を、取得したアドレス情報に書き換えて、メッセージを中継する。
【０１２６】
また、上記実施形態においては、ＬＡＮが複数存在していたが、ＬＡＮが１つのみ存在しても良い。また、ＷＡＮが複数存在しても良い。
【０１２７】
また、上記実施形態においては、オーバーレイネットワークに、ＤＨＴを利用したピアツーピアネットワークが適用されていたが、これに限られるものではない。例えば、他のピアツーピアシステム、又は、オーバーレイネットワークを用いたシステムが適用されても良い。ＤＨＴを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。
【符号の説明】
【０１２８】
１、２、３  ＬＡＮ
４  ＷＡＮ
５、６  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
１９  通信部
２０  入力部
２１  バス
Ｎｎ  ノード
ＳＡ  センターサーバ
ＲＴ  ルータ
Ｓ  コンテンツ分散保存システム
【図１】
2011155513.tif 000003
【図２】
2011155513.tif 000004
【図３】
2011155513.tif 000005
【図４】
2011155513.tif 000006
【図５】
2011155513.tif 000007