(57)【特許請求の範囲】
【請求項１】
第１のネットワークと第２のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第１のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置において、
前記中継装置が接続される前記第２のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第２のネットワークを介して取得する第１取得手段と、
前記第１取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第１記憶手段と、
前記第１記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第１送信手段と、
コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第２のネットワークに接続されている端末装置から前記第２のネットワークを介して受信する第１受信手段と、
前記第１受信手段により受信された前記識別情報が前記第１記憶手段に記憶されているかを判定する判定手段と、
前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第２送信手段と、
前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第１のネットワークを介して他の前記ノード装置から受信する第２受信手段と、
前記第２受信手段により受信された前記所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信する第３送信手段と、
前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第２のネットワークを介して送信された前記送信要求を前記第２のネットワークと前記第１のネットワークとの間で中継する第１中継手段と、
前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第１のネットワークを介して送信された前記コンテンツを前記第１のネットワークと前記第２のネットワークとの間で中継する第２中継手段と、
を備え、
前記第２中継手段は、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする中継装置。
【請求項２】
前記識別情報が前記第１記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを提供可能なノード装置の所在を示す所在情報として前記中継装置の所在を示す所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信する第４送信手段を更に備えることを特徴とする請求項１に記載の中継装置。
【請求項３】
前記コンテンツの識別情報が送信された前記端末装置の前記所在情報を前記第１記憶手段から取得する第２取得手段と、
前記第２取得手段により取得された前記所在情報に従って、前記端末装置の状態を確認するための確認要求を、前記第２のネットワークを介して前記端末装置へ送信する第５送信手段と、
前記確認要求の送信から所定時間以内に前記確認要求に対する応答が前記端末装置から受信されない場合、前記端末装置の前記所在情報を前記第１記憶手段から削除する削除手段と、
を備えることを特徴とする請求項１または２に記載の中継装置。
【請求項４】
第１のネットワークと第２のネットワークとの間でデータを中継する中継機能を備え、少なくとも前記第１のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加するコンピュータに、
前記コンピュータが接続される前記第２のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第２のネットワークを介して取得するステップと、
前記取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶手段に記憶させるステップと、
前記記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信するステップと、
コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第２のネットワークに接続されている端末装置から前記第２のネットワークを介して受信するステップと、
前記受信された前記識別情報が前記記憶手段に記憶されているかを判定するステップと、
前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ転送するステップと、
前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第１のネットワークを介して他の前記ノード装置から受信するステップと、
前記受信された前記所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信するステップと、
前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第２のネットワークを介して送信された前記送信要求を前記第２のネットワークと前記第１のネットワークとの間で中継する第１中継ステップと、
前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第１のネットワークを介して送信された前記コンテンツを前記第１のネットワークと前記第２のネットワークとの間で中継する第２中継ステップと、
を実行し、
前記第２中継ステップでは、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とするプログラム。
【請求項５】
第１のネットワークと第２のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第１のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置と、前記第２のネットワークに接続された端末装置と、を備える通信システムにおいて、
前記中継装置は、
前記中継装置が接続される前記第２のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第２のネットワークを介して取得する第１取得手段と、
前記第１取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第１記憶手段と、
前記第１記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第１送信手段と、
を備え、
前記端末装置は、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第２のネットワークを介して前記中継装置へ送信する第６送信手段を備え、
前記中継装置は、
前記端末装置から送信された前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを前記第２のネットワークを介して受信する第１受信手段と、
前記第１受信手段により受信された前記識別情報が前記第１記憶手段に記憶されているかを判定する判定手段と、
前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第２送信手段と、
前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第１のネットワークを介して他の前記ノード装置から受信する第２受信手段と、
前記第２受信手段により受信された前記所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信する第３送信手段と、
を備え、
前記端末装置は、
前記中継装置から送信された前記所在情報を前記第２のネットワークを介して受信する第３受信手段と、
前記中継装置に接続するために一時的にポートを開き、セッションが完了するとポートを閉じるポート開閉手段と、
前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求を送信する第９送信手段と、
を備え、
前記中継装置は、
前記端末装置から前記第２のネットワークを介して送信された前記送信要求を前記第２のネットワークと前記第１のネットワークとの間で中継する第１中継手段と、
前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第１のネットワークを介して送信された前記コンテンツを前記第１のネットワークと前記第２のネットワークとの間で中継する第２中継手段と、
を備え、
前記第２中継手段は、前記セッション中に一時的に開かれた前記送信要求の送信元の端末装置の前記ポートに対して前記コンテンツを中継し、
前記ポート開閉手段は、前記セッションが完了すると前記ポートを閉じることを特徴とする通信システム。
【請求項６】
前記端末装置は、
前記オーバーレイネットワークに参加する参加手段と、
前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを、前記オーバーレイネットワークに参加する前記ノード装置へ前記第２のネットワークを介して送信する第７送信手段と、
前記検索対象のコンテンツを提供可能な前記ノード装置の所在を示す所在情報を、前記中継装置及び前記第２のネットワークを介して前記ノード装置から受信する第４受信手段と、
前記第４受信手段により受信された前記所在情報に従って、前記検索対象のコンテンツの送信要求を、前記第２のネットワーク及び前記中継装置を介して前記検索対象の前記コンテンツを提供可能な前記ノード装置へ送信する第８送信手段と、
前記送信要求されたコンテンツを、前記中継装置及び前記第２のネットワークを介して前記ノード装置から受信する第５受信手段と、
前記第５受信手段により受信されたコンテンツを記憶する第２記憶手段と、
前記第２記憶手段に記憶されたコンテンツの識別情報と、前記端末装置の所在を示す所在情報を前記コンテンツの所在を管理するノード装置に送信する機能をロックする制御手段と、
を備えることを特徴とする請求項５に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のノード装置により構成されるオーバーレイネットワークにノード装置として参加するルータ等の技術分野に関する。
【背景技術】
【０００２】
従来、カラオケコンテンツを再生する複数のコマンダを備えるカラオケシステムが知られている。例えば特許文献１に開示されたカラオケシステムは、各拠点に構築されたＬＡＮ（Local Area Network）に接続された複数のコマンダと、ＬＡＮ及びＷＡＮ（Wide Area Network）に接続されたルータと、を備えている。このカラオケシステムでは、複数のコマンダの中から決定された代表コマンダがオーバーレイネットワークに参加可能になっている。オーバーレイネットワークに参加した代表コマンダは、他の拠点の代表コマンダへルータ及びＷＡＮを介してカラオケコンテンツを要求することでカラオケコンテンツを取得するように構成されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−６４９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１では、ルータはカラオケコンテンツを保存しないため、ルータのメモリ容量を低減することができる。しかしながら、各拠点の代表コマンダは、他の代表コマンダからＷＡＮを介してカラオケコンテンツの要求を受け付けるためのポートを開いている。そのため、代表コマンダがＷＡＮ側から攻撃される恐れがあり、システムのセキュリティ上、好ましくない。
【０００５】
本発明は、以上の点に鑑みてなされたものであり、ルータのメモリ容量を低減し、且つシステムのセキュリティを向上させることが可能な中継装置、プログラム及び通信システムを提供する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、第１のネットワークと第２のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第１のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置において、前記中継装置が接続される前記第２のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第２のネットワークを介して取得する第１取得手段と、前記第１取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第１記憶手段と、前記第１記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第１送信手段と、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第２のネットワークに接続されている端末装置から前記第２のネットワークを介して受信する第１受信手段と、前記第１受信手段により受信された前記識別情報が前記第１記憶手段に記憶されているかを判定する判定手段と、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第２送信手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第１のネットワークを介して他の前記ノード装置から受信する第２受信手段と、前記第２受信手段により受信された前記所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信する第３送信手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第２のネットワークを介して送信された前記送信要求を前記第２のネットワークと前記第１のネットワークとの間で中継する第１中継手段と、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第１のネットワークを介して送信された前記コンテンツを前記第１のネットワークと前記第２のネットワークとの間で中継する第２中継手段と、を備え、前記第２中継手段は、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の中継装置において、前記識別情報が前記第１記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを提供可能なノード装置の所在を示す所在情報として前記中継装置の所在を示す所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信する第４送信手段を更に備えることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の中継装置において、前記コンテンツの識別情報が送信された前記端末装置の前記所在情報を前記第１記憶手段から取得する第２取得手段と、前記第２取得手段により取得された前記所在情報に従って、前記端末装置の状態を確認するための確認要求を、前記第２のネットワークを介して前記端末装置へ送信する第５送信手段と、前記確認要求の送信から所定時間以内に前記確認要求に対する応答が前記端末装置から受信されない場合、前記端末装置の前記所在情報を前記第１記憶手段から削除する削除手段と、を備えることを特徴とする。
【００１０】
請求項４に記載の発明は、第１のネットワークと第２のネットワークとの間でデータを中継する中継機能を備え、少なくとも前記第１のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加するコンピュータに、前記コンピュータが接続される前記第２のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第２のネットワークを介して取得するステップと、前記取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶手段に記憶させるステップと、前記記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信するステップと、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第２のネットワークに接続されている端末装置から前記第２のネットワークを介して受信するステップと、前記受信された前記識別情報が前記記憶手段に記憶されているかを判定するステップと、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ転送するステップと、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第１のネットワークを介して他の前記ノード装置から受信するステップと、前記受信された前記所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信するステップと、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第２のネットワークを介して送信された前記送信要求を前記第２のネットワークと前記第１のネットワークとの間で中継する第１中継ステップと、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第１のネットワークを介して送信された前記コンテンツを前記第１のネットワークと前記第２のネットワークとの間で中継する第２中継ステップと、を実行し、前記第２中継ステップでは、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする。
【００１１】
請求項５に記載の発明は、第１のネットワークと第２のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第１のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置と、前記第２のネットワークに接続された端末装置と、を備える通信システムにおいて、前記中継装置は、前記中継装置が接続される前記第２のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第２のネットワークを介して取得する第１取得手段と、前記第１取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第１記憶手段と、前記第１記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第１送信手段と、を備え、前記端末装置は、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第２のネットワークを介して前記中継装置へ送信する第６送信手段を備え、前記中継装置は、前記端末装置から送信された前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを前記第２のネットワークを介して受信する第１受信手段と、前記第１受信手段により受信された前記識別情報が前記第１記憶手段に記憶されているかを判定する判定手段と、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第２送信手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第１のネットワークを介して他の前記ノード装置から受信する第２受信手段と、前記第２受信手段により受信された前記所在情報を、前記第２のネットワークを介して前記検索要求の送信元の端末装置へ送信する第３送信手段と、を備え、前記端末装置は、前記中継装置から送信された前記所在情報を前記第２のネットワークを介して受信する第３受信手段と、前記中継装置に接続するために一時的にポートを開き、セッションが完了するとポートを閉じるポート開閉手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求を送信する第９送信手段と、を備え、前記中継装置は、前記端末装置から前記第２のネットワークを介して送信された前記送信要求を前記第２のネットワークと前記第１のネットワークとの間で中継する第１中継手段と、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第１のネットワークを介して送信された前記コンテンツを前記第１のネットワークと前記第２のネットワークとの間で中継する第２中継手段と、を備え、前記第２中継手段は、前記セッション中に一時的に開かれた前記送信要求の送信元の端末装置の前記ポートに対して前記コンテンツを中継し、前記ポート開閉手段は、前記セッションが完了すると前記ポートを閉じることを特徴とする。
【００１２】
請求項６に記載の発明は、請求項５に記載の通信システムにおいて、前記端末装置は、前記オーバーレイネットワークに参加する参加手段と、前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを、前記オーバーレイネットワークに参加する前記ノード装置へ前記第２のネットワークを介して送信する第７送信手段と、前記検索対象のコンテンツを提供可能な前記ノード装置の所在を示す所在情報を、前記中継装置及び前記第２のネットワークを介して前記ノード装置から受信する第４受信手段と、前記第４受信手段により受信された前記所在情報に従って、前記検索対象のコンテンツの送信要求を、前記第２のネットワーク及び前記中継装置を介して前記検索対象の前記コンテンツを提供可能な前記ノード装置へ送信する第８送信手段と、前記送信要求されたコンテンツを、前記中継装置及び前記第２のネットワークを介して前記ノード装置から受信する第５受信手段と、前記第５受信手段により受信されたコンテンツを記憶する第２記憶手段と、前記第２記憶手段に記憶されたコンテンツの識別情報と、前記端末装置の所在を示す所在情報を前記コンテンツの所在を管理するノード装置に送信する機能をロックする制御手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
請求項１、４または５に記載の発明によれば、中継装置のメモリ容量を低減し、且つシステムのセキュリティを向上させることができる。
【００１４】
請求項２に記載の発明によれば、前記識別情報が前記第１記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを検索要求の送信元の端末装置へ迅速に送信することができる。
【００１６】
請求項３に記載の発明によれば、中継装置が接続される第２のネットワークに接続されている端末装置を正確に管理することができる。
【００１７】
請求項６に記載の発明によれば、端末装置が第１のネットワーク側から攻撃を受けるリスクを抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態のコンテンツ配信システムＳのネットワーク構成例を示す図である。
【図２】（Ａ）は、ルータＲの概要構成例を示す図である。（Ｂ）は、キャッシュリストに登録された情報の一例を示す図である。（Ｃ）は、コマンダＣの概要構成例を示すブロック図である。
【図３】（Ａ）は、ルータＲの起動時の処理例を示すフローチャートである。（Ｂ）は、ルータＲにおけるメイン処理例を示すフローチャートである。
【図４】（Ａ）は、ルータＲにおけるコマンダＣの追加処理例を示すフローチャートである。（Ｂ）は、ルータＲにおけるコマンダＣの削除処理例を示すフローチャートである。
【図５】（Ａ）は、ルータＲにおけるパブリシュ処理例を示すフローチャートである。（Ｂ）は、ルータＲにおけるコマンダＣの生死確認処理例を示すフローチャートである。
【図６】（Ａ）は、ルータＲにおけるコンテンツの検索処理例を示すフローチャートである。（Ｂ）は、ルータＲにおけるコンテンツのアップロード処理例を示すフローチャートである。
【図７】（Ａ）は、コマンダＣにおけるコンテンツのダウンロード処理例を示すフローチャートである。（Ｂ）は、ルータＲにおける許可通知処理例を示すフローチャートである。（Ｃ）は、ルータＲにおけるダウンロード完了処理例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して、本発明を適用した場合の実施形態である。
【００２０】
［１．コンテンツ配信システムの構成及び動作概要］
始めに、図１を参照して、本実施形態のコンテンツ配信システムの構成及び動作概要について説明する。図１は、本実施形態のコンテンツ配信システムＳのネットワーク構成例を示す図である。コンテンツ配信システムＳは、本発明の通信システムの一例である。本実施形態のコンテンツ配信システムＳは、図１に示すように、複数のルータＲ１〜Ｒ５、複数のコマンダＣ１〜Ｃ１１、及びセンターサーバＳＡを含んで構成される。なお、図１に示すルータＲ１〜Ｒ５の数、コマンダＣ１〜Ｃ１１の数、及びセンターサーバＳＡの数は例示であり、これらの数に限定されるものではない。以下の説明では、説明の便宜上、ルータＲ１〜Ｒ５を、ルータＲという場合がある。また、コマンダＣ１〜Ｃ１１を、コマンダＣという場合がある。ルータＲは、本発明の中継装置の一例である。コマンダＣは、本発明の端末装置の一例である。コマンダＣは、例えば、カラオケコンテンツ等のコンテンツを再生する再生装置である。ルータＲ及びコマンダＣは、拠点Ｐ１〜Ｐ６の何れかに設置される。例えば、ルータＲ１及びコマンダＣ１は、拠点１に設置される。また、例えば、ルータＲ２、コマンダＣ２及びＣ３は、拠点Ｐ２に設置される。以下の説明では、説明の便宜上、拠点Ｐ１〜Ｐ６を、拠点Ｐという場合がある。拠点Ｐの例として、カラオケ店舗がある。拠点Ｐは、学校、会社、住宅、又はその他の施設等であってもよい。
【００２１】
拠点Ｐ１〜Ｐ５には、それぞれ、拠点ネットワークＮＬ１〜ＮＬ５が構築される。なお、拠点Ｐ６のように、拠点ネットワークが構築されない場合もある。以下の説明では、説明の便宜上、拠点ネットワークＮＬ１〜ＮＬ６を、拠点ネットワークＮＬという場合がある。拠点ネットワークＮＬは、本発明の第２のネットワークの一例である。拠点ネットワークＮＬは、例えば、ＬＡＮ（Local Area Network）から構成される。拠点ネットワークＮＬには、ルータＲ及びコマンダＣが接続される。例えば、拠点ネットワークＮＬ１には、ルータＲ１及びコマンダＣ１に接続される。また、例えば、拠点ネットワークＮＬ２には、ルータＲ２、コマンダＣ２及びＣ３が接続される。それぞれの拠点ネットワークＮＬは、ルータＲを介して基幹ネットワークＮＷに接続される。基幹ネットワークＮＷは、本発明の第１のネットワークの一例である。基幹ネットワークＮＷは、例えば、インターネット等のＷＡＮ（Wide Area Network）から構成される。基幹ネットワークＮＷには、センターサーバＳＡが接続されている。センターサーバＳＡは、例えば、コンテンツ配信システムＳにおいて利用可能な全てのコンテンツを保存する。
【００２２】
ルータＲは、拠点ネットワークＮＬ及び基幹ネットワークＮＷに接続される。そして、ルータＲは、拠点ネットワークＮＬと基幹ネットワークＮＷとの間でデータを中継する中継機能を備える。ルータＲは、この中継機能により、基幹ネットワークＮＷにおける通信経路の選択、つまり、ルーティングを行う。また、ルータＲは、例えば、コマンダリスト及びキャッシュリストを記憶部に記憶する。コマンダリストは、ルータＲが接続される拠点ネットワークＮＬに接続されているコマンダＣのうち、起動中のコマンダＣのアドレス情報を登録するリストである。ここで、起動中とは、例えば、コマンダＣが拠点ネットワークＮＬを介してルータＲと通信可能状態にあることをいう。また、アドレス情報には、ＩＰアドレスが含まれる。なお、アドレス情報には、ＩＰアドレス及びポート番号が含まれてもよい。コマンダＣのアドレス情報は、コマンダＣの所在を示す所在情報の一例である。例えば、図１に示す拠点Ｐ２において、コマンダＣ２が起動中の場合、ルータＲ２のコマンダリストには、コマンダＣ２のアドレス情報が登録される。
【００２３】
一方、キャッシュリストは、ルータＲが接続される拠点ネットワークＮＬに接続されているコマンダＣのうち、起動中のコマンダＣが記憶するコンテンツのコンテンツＩＤと、このコマンダＣのアドレス情報とを対応付けて登録するリストである。言い換えれば、キャッシュリストには、コマンダリストに登録されているコマンダＣが記憶部に記憶するコンテンツのコンテンツＩＤと、このコマンダＣのアドレス情報とが対応付けられて登録される。ルータＲは、コンテンツを記憶しないが、このルータＲの配下にあるコマンダＣが記憶するコンテンツのコンテンツＩＤを管理する。ここで、ルータＲの配下にあるとは、ルータＲと同じ拠点ネットワークＮＬに接続されていることを意味する。なお、コンテンツのコンテンツＩＤは、コンテンツ配信システムＳにおいてコンテンツを他のコンテンツから識別する識別情報である。コンテンツＩＤは、例えば、コンテンツのコンテンツ名等を基に、例えばＳＨＡ１等の所定のハッシュ関数によりハッシュ値として生成される。
【００２４】
また、コンテンツ配信システムＳにおいて、少なくとも基幹ネットワークＮＷに接続された複数のノードＮ１〜Ｎ９によりオーバーレイネットワークＯＮが構成される。オーバーレイネットワークＯＮは、仮想的なリンクを構成する論理的なネットワークである。オーバーレイネットワークＯＮは、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現されるピアツーピアネットワークである。このような分散ハッシュテーブルを、以下、「ＤＨＴ（Distributed Hash Table）」という。なお、図１に示すノードＮ１〜Ｎ９の数は例示であり、この数に限定されるものではない。以下の説明では、説明の便宜上、ノードＮ１〜Ｎ９を、ノードＮという場合がある。ノードＮは、本発明のノード装置の一例である。図１の例では、基幹ネットワークＮＷに接続された全てのルータＲと、拠点ネットワークＮＬに接続された一部のコマンダＣとがノードＮとしてオーバーレイネットワークＯＮに参加している。オーバーレイネットワークＯＮに参加するとは、ＤＨＴを用いたルーティングテーブルに基づいて他のノードＮとの間で各種メッセージを送受信できる状態に稼動することをいう。これにより、それぞれのノードＮは、他のノードＮとの間でオーバーレイネットワークＯＮを介してメッセージを送受信することが可能となる。
【００２５】
オーバーレイネットワークＯＮにノードＮとして参加するルータＲ及びコマンダＣには、それぞれ、ノードＩＤが付与される。ノードＩＤは、オーバーレイネットワークＯＮに参加しているノードＮを他のノードＮから識別する識別情報である。ノードＩＤは、例えば、ルータＲまたはコマンダＣのアドレス情報等を基に、所定のハッシュ関数によりハッシュ値として生成される。このハッシュ関数は、コンテンツＩＤの生成に用いられるハッシュ関数と同一である。また、オーバーレイネットワークＯＮにノードＮとして参加するルータＲ及びコマンダＣは、それぞれ、ＤＨＴを用いたルーティングテーブル（以下、「ＤＨＴルーティングテーブル」という）を記憶する。ＤＨＴルーティングテーブルには、各種メッセージの送信先候補となるノードＮのノードＩＤとアドレス情報の組が複数登録される。ＤＨＴルーティングテーブルの詳細については、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００２６】
なお、コマンダＣがノードＮである場合、ＤＨＴルーティングテーブルには、コマンダＣのアドレス情報の代わりにコマンダＣが拠点ネットワークＮＬを介して接続されるルータＲのアドレス情報が登録される。また、コマンダＣは、オーバーレイネットワークＯＮに参加しているか否かに関わらず、基幹ネットワークＮＷ側からのアクセスされないようにポートを閉じている。
【００２７】
オーバーイネットワークＯＮにノードＮとして参加したルータＲは、このルータＲが提供可能なコンテンツの所在を管理するノードＮへオーバーレイネットワークＯＮを介してパブリッシュメッセージを送信する。パブリッシュメッセージをルートノードへ送信する処理を「パブリッシュ処理」という。ここで、コンテンツの所在を管理するノードＮを「ルートノード」という。パブリッシュメッセージは、ルータＲの配下にあるコマンダＣが記憶するコンテンツを提供可能であることを他のノードＮに公開するためのメッセージである。パブリッシュメッセージには、このパブリッシュメッセージを送信するルータＲのアドレス情報と、このルータＲが記憶するキャッシュリストに登録されたコンテンツＩＤと、が含まれる。ルートノードは、例えば、コンテンツＩＤと最も値の近いノードＩＤが付与されたノードＮである。最も値の近いとは、例えば、ＩＤの上位桁が最も多く一致することを意味する。そして、パブリッシュメッセージは、このパブリッシュメッセージに含まれるコンテンツＩＤをキーとしてＤＨＴルーティングによりルートノードへ送信される。ＤＨＴルーティングは、例えば特開２００７−０５３６６２号公報等で公知であるので、詳しい説明を省略する。パブリッシュメッセージを受信したルートノードは、このパブリッシュメッセージに含まれる「ルータＲのアドレス情報」と「コンテンツのコンテンツＩＤ」とを対応付けてインデックス情報として記憶する。そして、ルートノードは、他のノードＮからのコンテンツの検索要求に応じて、このコンテンツのコンテンツＩＤに対応付けられたルータＲのアドレス情報を提供することになる。
【００２８】
例えば、拠点Ｐ３に設置されたコマンダＣ５が、例えばユーザにより指定されたコンテンツを記憶していない場合がある。この場合、オーバーレイネットワークＯＮに参加していないコマンダＣ５は、このコンテンツの検索要求を示す検索要求メッセージを、拠点ネットワークＮＬ３を介して同じ拠点Ｐ３内のルータＲ３へ送信する。この検索要求メッセージには、検索対象のコンテンツのコンテンツＩＤが含まれる。ノードＮ６であるルータＲ３は、コマンダＣ５から送信された検索要求メッセージを、拠点ネットワークＮＬ３を介して受信する。そして、ルータＲ３は、受信された検索要求メッセージに含まれるコンテンツＩＤが記憶部に記憶されているかを判定する。つまり、受信された検索要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されているか否かが判定される。
【００２９】
ルータＲ３は、検索要求メッセージに含まれるコンテンツＩＤが記憶されていないと判定した場合、検索対象のコンテンツの所在を管理するルートノードへオーバーレイネットワークＯＮを介して送信する。つまり、検索要求メッセージは、この検索要求メッセージに含まれるコンテンツＩＤをキーとしてＤＨＴルーティングによりルートノードへ送信される。そして、ルートノードは、受信した検索要求メッセージに応じて、検索結果メッセージを、基幹ネットワークＮＷを介してルータＲ３へ送信する。この検索結果メッセージには、検索要求メッセージに含まれるコンテンツＩＤに対応付けられた、例えばルータＲ５のアドレス情報が含まれる。検索結果メッセージに含まれるルータＲ５のアドレス情報は、検索対象のコンテンツを提供可能な他のノードＮのアドレス情報である。ルータＲ３は、基幹ネットワークＮＷを介してルートノードから検索結果メッセージを受信する。そして、ルータＲ３は、受信した検索結果メッセージを、拠点ネットワークＮＬ３を介して検索要求の送信元のコマンダＣ５へ送信する。
【００３０】
コマンダＣ５は、ルータＲ３から送信された検索結果メッセージを、拠点ネットワークＮＬ３を介して受信する。そして、コマンダＣ５は、受信した検索結果メッセージに含まれるアドレス情報に対応するルータＲ５にアクセスする。つまり、コマンダＣ５は、例えばＴＣＰクライアントとして、拠点ネットワークＮＬ３、ルータＲ３及び基幹ネットワークＮＷを介してルータＲ５にＴＣＰ接続する。コマンダＣ５は、このＴＣＰ接続のセッションにおいて、コンテンツの送信要求を示す送信要求メッセージをルータＲ５へ送信する。この送信要求メッセージには、要求対象のコンテンツのコンテンツＩＤが含まれる。ルータＲ５は、コマンダＣ５から受信した送信要求メッセージに含まれるコンテンツＩＤに対応するコンテンツを例えばコマンダＣ１０から取得する。そして、ルータＲ５は、コマンダＣ１０から取得したコンテンツを送信要求元のコマンダＣ５へ送信する。なお、コマンダＣ５は、ＴＣＰ接続用に一時的にランダムポートを開き、セッションが完了すればポートを閉じることになる。このセッションにおいて、ルータＲ３は、コマンダＣ５からルータＲ５宛てのコンテンツの送信要求メッセージを拠点ネットワークＮＬ３と基幹ネットワークＮＷとの間で中継する。また、このセッションにおいて、ルータＲ３は、ルータＲ５からコマンダＣ５宛てのコンテンツを、基幹ネットワークＮＷと拠点ネットワークＮＬ３との間で中継する。これにより、ルータＲは中継機能によりデータを中継すればよいので、メモリ容量を低減することができる。
【００３１】
一方、ルータＲ３は、コマンダＣ５から受信された検索要求メッセージに含まれるコンテンツＩＤが記憶されていると判定する場合がある。例えば、コマンダＣ５と同じ拠点Ｐ３内のコマンダＣ６が検索対象のコンテンツを記憶している場合がある。この場合、ルータＲ３は、検索対象のコンテンツを提供可能なノードＮのアドレス情報としてルータＲ３のアドレス情報を含む検索結果メッセージを、拠点ネットワークＮＬ３を介して検索要求の送信元のコマンダＣ６へ送信する。コマンダＣ６は、ルータＲ３のアドレス情報を含む検索結果メッセージを受信すると、コンテンツの送信要求を示す送信要求メッセージをルータＲ３へ送信する。ルータＲ３は、コマンダＣ５から受信した送信要求メッセージに含まれるコンテンツＩＤに対応するコンテンツを例えばコマンダＣ６から取得する。そして、ルータＲ３は、コマンダＣ６から取得したコンテンツを送信要求元のコマンダＣ５へ送信する。これにより、検索対象のコンテンツをコマンダＣ５へ迅速に送信することができる。
【００３２】
そして、コンテンツを受信したコマンダＣ５は、このコンテンツを記憶部に記憶する。コマンダＣ５は、コンテンツを記憶したとき、パブリッシュメッセージをルートノードへ送信する機能を備える。このパブリッシュメッセージは、記憶されたコンテンツのコンテンツＩＤと、コマンダＣ５のアドレス情報を含む。しかしながら、本実施形態では、コマンダＣ５は、パブリッシュメッセージをルートノードへ送信する機能をロックしている。そのため、基幹ネットワークＮＷ側からコマンダＣ５には直接アクセスされない。
【００３３】
なお、オーバーレイネットワークＯＮに参加しているコマンダＣは、オーバーレイネットワークＯＮを介して検索要求メッセージをルートノードへ送信することもできる。この場合、コマンダＣは、検索要求メッセージに応じてルートノードから送信された検索結果メッセージをルータＲ及び拠点ネットワークＮＬを介して受信する。コマンダＣは、受信された検索結果メッセージに含まれるアドレス情報に従って、拠点ネットワークＮＬ等を介して、コンテンツを提供可能なルータＲへアクセスする。そして、コマンダＣは、コンテンツの送信要求を示す送信要求メッセージを、アクセスしたルータＲへ送信する。これにより、コマンダＣは、ルータＲからコンテンツを受信して記憶部に記憶する。この場合も、パブリッシュメッセージをルートノードへ送信する機能がロックされているので、パブリッシュメッセージの送信が行われない。
【００３４】
［２．ルータＲの構成及び機能］
次に、図２（Ａ）を参照して、ルータＲの構成及び機能について説明する。図２（Ａ）は、ルータＲの概要構成例を示す図である。ルータＲは、図２（Ａ）に示すように、制御部１、記憶部２、ネットワークインターフェース３ａ、及びネットワークインターフェース３ｂ等を備えて構成される。制御部１、記憶部２、ネットワークインターフェース３ａ、及びネットワークインターフェース３ｂは、バス４を介して相互に接続されている。
【００３５】
記憶部２は、本発明の第１記憶手段の一例である。記憶部２は、例えば不揮発性メモリ等から構成される。記憶部２には、オペレーティングシステム、ルータ処理プログラム、及びノード処理プログラムが記憶される。ルータ処理プログラムは、コンピュータとしての制御部１に、拠点ネットワークＮＬと基幹ネットワークＮＷとの間でデータ（ＩＰパケット）を中継するルータＲとしての処理を実行させるプログラムである。ノード処理プログラムは、制御部１に、オーバーレイネットワークＯＮを構成するノードＮとしての処理を実行させるＰ２Ｐプログラムである。ルータ処理プログラム及びノード処理プログラムは、例えば基幹ネットワークＮＷに接続された所定のサーバからダウンロードされる。或いは、ルータ処理プログラム、及びノード処理プログラムは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。
【００３６】
また、記憶部２には、上述したコマンダリスト及びキャッシュリストが記憶される。図２（Ｂ）は、キャッシュリストに登録された情報の一例を示す図である。図２（Ｂ）に示すキャッシュリストには、コンテンツのコンテンツＩＤ、コンテンツのサイズ、コンテンツの更新日時、及び所有コマンダ情報が対応付けられて登録されている。所有コマンダ情報には、コンテンツを記憶するコマンダＣのアドレス情報が含まれる。コンテンツを記憶するコマンダＣが複数ある場合、図２（Ｂ）に示すように、それぞれのコマンダＣのアドレス情報が所有コマンダ情報に含まれることになる。なお、キャッシュリストにおいて、図２（Ｂ）に示すように、コンテンツのコンテンツＩＤ、コンテンツのサイズ、コンテンツの更新日時、及び所有コマンダ情報が対応付けられた一行（一レコード）を、このコンテンツのエントリという。一方、コマンダリストに登録された一アドレス情報を、コマンダのエントリという。また、オーバーレイネットワークＯＮに参加したルータＲの記憶部２には、上述したＤＨＴルーティングテーブルが記憶される。また、オーバーレイネットワークＯＮにおいてルートノードとして動作するルータＲの記憶部２には、上述したインデックス情報が記憶される。
【００３７】
ネットワークインターフェース３ａは、基幹ネットワークＮＷに接続される。ネットワークインターフェース３ｂは、拠点ネットワークＮＬに接続される。
【００３８】
制御部１は、演算機能を有するＣＰＵ，作業用ＲＡＭ，及びＲＯＭ等から構成される。制御部１は、本発明の第１取得手段、第２取得手段、第１送信手段、第２送信手段、第３送信手段、第４送信手段、第５送信手段、判定手段、第１受信手段、第２受信手段、第１中継手段、第２中継手段、及び削除手段の一例である。また、制御部１は時計機能及びタイマ機能を備える。制御部１は、ルータ処理プログラムに従ってルータＲとしての処理を実行する。また、制御部１は、ノード処理プログラムに従ってノードＮとしての処理を実行する。
【００３９】
［３．コマンダＣの構成及び機能等］
次に、図２（Ｃ）を参照して、コマンダＣの構成及び機能について説明する。図２（Ｃ）は、コマンダＣの概要構成例を示すブロック図である。コマンダＣは、図２（Ｃ）に示すように、制御部１１、記憶部１２、デコーダ部１３、映像処理部１４、音声処理部１５、ネットワークインターフェース１６、及び入力部１７等を備えて構成される。制御部１１、記憶部１２、デコーダ部１３、映像処理部１４、音声処理部１５、ネットワークインターフェース１６、及び入力部１７は、バス１８を介して相互に接続されている。
【００４０】
記憶部１２は、本発明の第２記憶手段の一例である。記憶部１２は、例えばハードディスクドライブ（ＨＤＤ）等から構成される。記憶部１２には、オペレーティングシステム、コマンダ処理プログラム、及びノード処理プログラム等が記憶されている。コマンダ処理プログラムは、制御部１１に、コマンダＣとしての処理を実行させるプログラムである。コマンダＣとしての処理には、例えば、コンテンツのダウンロード処理、コンテンツの再生処理などが含まれる。ノード処理プログラムは、制御部１１に、オーバーレイネットワークＯＮを構成するノードＮとしての処理を実行させるＰ２Ｐプログラムである。コマンダ処理プログラム、及びノード処理プログラムは、例えば、基幹ネットワークＮＷに接続された所定のサーバからダウンロードされる。或いは、コマンダ処理プログラム、及びノード処理プログラムは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。
【００４１】
また、記憶部１２には、コンテンツが記憶される。コンテンツは、例えば、映像データと音声データの少なくとも何れか一方により構成される。なお、コンテンツがカラオケコンテンツの場合がある。この場合、コンテンツは、映像データ、音声データ、及び字幕データにより構成される。また、記憶部１２には、キャッシュリストが記憶される。このキャッシュリストには、記憶部１２に記憶されているコンテンツのコンテンツＩＤ、コンテンツのサイズ、コンテンツの更新日時、及び記憶部１２におけるコンテンツの所在を示すパスが対応付けられて登録される。また、記憶部１２には、センターサーバＳＡのアドレス情報が記憶される。また、オーバーレイネットワークＯＮに参加したコマンダＣの記憶部１２には、ＤＨＴルーティングテーブルが記憶される。
【００４２】
デコーダ部１３は、制御部１１による再生制御に従って、コンテンツに含まれる映像データ及び音声データ等のデータ伸張や復号化等のデコード処理を行う。映像処理部１４は、デコーダ部１３によりデコードされた映像データ等に対して所定の描画処理を施し映像信号としてディスプレイ（図示せず）へ出力する。これにより、ディスプレイには映像が表示される。音声処理部１５は、デコーダ部１３によりデコードされた音声データをアナログ音声信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅してスピーカ（図示せず）へ出力する。これにより、スピーカから音声が出力される。ネットワークインターフェース１６は、拠点ネットワークＮＬに接続される。入力部１７は、コマンダＣのユーザからコンテンツの指定等の指示を入力する。
【００４３】
制御部１１は、演算機能を有するＣＰＵ，作業用ＲＡＭ，及びＲＯＭ等から構成される。制御部１１は、本発明の参加手段、第６送信手段、第７送信手段、第８送信手段、第３受信手段、第４受信手段、第５受信手段、及び制御手段の一例である。制御部１１は、コマンダ処理プログラムに従ってコマンダＣとしての処理を実行する。また、制御部１１は、ノード処理プログラムに従ってノードＮとしての処理を実行する。ただし、制御部１１により実行されるノードＮとしての処理の中で、パブリッシュメッセージをルートノードへ送信するパブリッシュ処理はロックされている。
【００４４】
［４．コンテンツ配信システムＳの動作］
次に、本実施形態のコンテンツ配信システムＳの動作について説明する。
【００４５】
（４−１．ルータＲの起動時の処理）
先ず、図３を参照して、ルータＲの起動時の処理について説明する。図３（Ａ）は、ルータＲの起動時の処理例を示すフローチャートである。図３（Ｂ）は、ルータＲにおけるメイン処理例を示すフローチャートである。なお、以下の説明では、ルータＲ３を例にとるものとする。図３（Ａ）に示す処理は、例えばルータＲ３の電源オンにより開始される。
【００４６】
図３（Ａ）に示す処理が開始されると、ルータＲ３の制御部１は、タイマ機能によりパブリッシュタイマＴ１及び生死監視タイマＴ２のカウントをそれぞれ開始する。パブリッシュタイマＴ１は、上述したパブリッシュ処理の開始時間を設定するものである。生死監視タイマＴ２は、コマンダＣの生死を確認する生死確認処理の開始時間を設定するものである。そして、ルータＲ３の制御部１は、コマンダ検索用のブロードキャストパケットまたはマルチキャストパケットを、拠点ネットワークＮＬ３を介してコマンダＣへ送信する（ステップＳ１）。なお、ルータＲ３の制御部１は、ブロードキャストパケットまたはマルチキャストパケットを送信した時に、応答待機タイマＴ３のカウントを開始する。応答待機タイマＴ３は、ブロードキャストパケットまたはマルチキャストパケットに対する応答のタイムアウト時間を設定するものである。ブロードキャストパケットまたはマルチキャストパケットを受信したコマンダＣは、拠点ネットワークＮＬ３を介してルータＲ３へ応答メッセージを送信することになる。この応答メッセージには、このメッセージを送信したコマンダＣのアドレス情報が含まれる。
【００４７】
次いで、ルータＲ３の制御部１は、タイムアウトになったか否かを判定する（ステップＳ２）。応答待機タイマＴ３のカウント値が、設定されたタイムアウト時間になった場合、タイムアウトになったと判定される。タイムアウトになっていないと判定された場合（ステップＳ２：ＮＯ）、ステップＳ３へ進む。一方、タイムアウトになったと判定された場合（ステップＳ２：ＹＥＳ）、図３（Ｂ）に示すメイン処理へ進む。メイン処理の詳細は後述する。
【００４８】
ステップＳ３では、ルータＲ３の制御部１は、コマンダＣからの応答メッセージが受信されたか否かを判定する。コマンダＣからの応答メッセージが受信されていないと判定された場合（ステップＳ３：ＮＯ）、ステップＳ２に戻る。一方、コマンダＣからの応答メッセージが受信されたと判定された場合（ステップＳ３：ＹＥＳ）、ステップＳ４へ進む。
【００４９】
ステップＳ４では、ルータＲ３の制御部１は、応答メッセージを送信したコマンダＣのアドレス情報をコマンダリストに登録する。次いで、ルータＲ３の制御部１は、応答メッセージを送信したコマンダＣから拠点ネットワークＮＬ３を介してキャッシュリストを取得する（ステップＳ５）。次いで、ルータＲ３の制御部１は、コマンダＣから取得したキャッシュリストに基づいて、ルータＲ３の記憶部２に記憶されているキャッシュリストを更新し（ステップＳ６）、ステップＳ２に戻る。つまり、ルータＲ３の記憶部２に記憶されているキャッシュリストに、応答メッセージを送信したコマンダＣが記憶するコンテンツのコンテンツＩＤ、及びこのコマンダＣのアドレス情報等が登録される。
【００５０】
次に、図３（Ｂ）に示すメイン処理では、ルータＲ３の制御部１は、コマンダＣからの参加要求メッセージが受信されたか否かを判定する。コマンダＣからの参加要求メッセージが受信されたと判定された場合（ステップＳ１０１：ＹＥＳ）、ステップＳ１０２へ進む。ステップＳ１０２では、ルータＲ３の制御部１は、コマンダＣの追加処理を実行する。コマンダＣの追加処理の詳細は後述する。一方、コマンダＣからの参加要求メッセージが受信されていないと判定された場合（ステップＳ１０１：ＮＯ）、ステップＳ１０３へ進む。
【００５１】
ステップＳ１０３では、ルータＲ３の制御部１は、コマンダＣからの離脱要求メッセージが受信されたか否かを判定する。コマンダＣからの離脱要求メッセージが受信されたと判定された場合（ステップＳ１０３：ＹＥＳ）、ステップＳ１０４へ進む。ステップＳ１０４では、ルータＲ３の制御部１は、コマンダＣの削除処理を実行する。コマンダＣの削除処理の詳細は後述する。一方、コマンダＣからの離脱要求メッセージが受信されていないと判定された場合（ステップＳ１０３：ＮＯ）、ステップＳ１０５へ進む。
【００５２】
ステップＳ１０５では、ルータＲ３の制御部１は、パブリッシュタイマＴ１がカウントアップしたか否かを判定する。つまり、パブリッシュタイマＴ１のカウント値が、設定された開始時間になったか否かが判定される。パブリッシュタイマＴ１がカウントアップしたと判定された場合（ステップＳ１０５：ＹＥＳ）、ステップＳ１０６へ進む。ステップＳ１０６では、ルータＲ３の制御部１は、パブリッシュ処理を実行する。パブリッシュ処理の詳細は後述する。一方、パブリッシュタイマＴ１がカウントアップしていないと判定された場合（ステップＳ１０５：ＮＯ）、ステップＳ１０７へ進む。
【００５３】
ステップＳ１０７では、ルータＲ３の制御部１は、生死監視タイマＴ２がカウントアップしたか否かを判定する。つまり、生死監視タイマＴ２のカウント値が、設定された開始時間になったか否かが判定される。生死監視タイマＴ２がカウントアップしたと判定された場合（ステップＳ１０７：ＹＥＳ）、ステップＳ１０８へ進む。ステップＳ１０８では、ルータＲ３の制御部１は、コマンダＣの生死確認処理を実行する。コマンダＣの生死確認処理の詳細は後述する。一方、生死監視タイマＴ２がカウントアップしていないと判定された場合（ステップＳ１０７：ＮＯ）、ステップＳ１０９へ進む。
【００５４】
ステップＳ１０９では、ルータＲ３の制御部１は、コマンダＣからの検索要求メッセージが受信されたか否かを判定する。コマンダＣからの検索要求メッセージが受信されたと判定された場合（ステップＳ１０９：ＹＥＳ）、ステップＳ１１０へ進む。ステップＳ１１０では、ルータＲ３の制御部１は、コンテンツの検索処理を実行する。コンテンツの検索処理の詳細は後述する。一方、コマンダＣからの検索要求メッセージが受信されていないと判定された場合（ステップＳ１０９：ＮＯ）、ステップＳ１１１へ進む。
【００５５】
ステップＳ１１１では、ルータＲ３の制御部１は、コマンダＣからの送信要求メッセージが受信されたか否かを判定する。コマンダＣからの送信要求メッセージが受信されたと判定された場合（ステップＳ１１１：ＹＥＳ）、ステップＳ１１２へ進む。ステップＳ１１２では、ルータＲ３の制御部１は、コンテンツのアップロード処理を実行する。コンテンツのアップロード処理の詳細は後述する。一方、コマンダＣからの送信要求メッセージが受信されていないと判定された場合（ステップＳ１１１：ＮＯ）、ステップＳ１１３へ進む。
【００５６】
ステップＳ１１３では、ルータＲ３の制御部１は、コマンダＣから、ルータＲ以外の宛先へのＩＰパケットを受信したか否かを判定する。ルータＲ以外の宛先へのＩＰパケットを受信したと判定した場合（ステップＳ１１３：ＹＥＳ）、制御部１は、受信されたＩＰパケットを宛先へ転送する（ステップＳ１１４）。このＩＰパケットの転送は、通常のルータによりＩＰパケットの転送処理と同様である。一方、ルータＲ以外の宛先へのＩＰパケットを受信していないと判定した場合（ステップＳ１１３：ＮＯ）、ステップＳ１１５へ進む。
【００５７】
ステップＳ１１５では、ルータＲ３の制御部１は、終了指示があったか否かを判定する。例えばユーザから終了指示があったと判定された場合（ステップＳ１１５：ＹＥＳ）、メイン処理が終了する。一方、終了指示がないと判定された場合（ステップＳ１１５：ＮＯ）、ステップＳ１０１に戻る。
【００５８】
（４−２．コマンダＣの追加処理）
次に、図４（Ａ）を参照して、コマンダＣの追加処理について説明する。図４（Ａ）は、ルータＲにおけるコマンダＣの追加処理例を示すフローチャートである。図４（Ａ）に示す処理は、上述したメイン処理において、コマンダＣから拠点ネットワークＮＬ３を介して参加要求メッセージが受信された場合（ステップＳ１０１：ＹＥＳ）に開始される。この参加要求メッセージは、コンテンツ配信システムＳへの参加要求を示すメッセージである。例えば、図３（Ａ）に示す処理において、例えばコマンダＣ５が起動していなかった場合、このコマンダＣ５から応答メッセージは受信されずタイムアウトになる。しかし、その後、コマンダＣ５が起動すると、コマンダＣ５は拠点ネットワークＮＬ３を介してルータＲ３へ参加要求メッセージを送信することになる。この参加要求メッセージには、このメッセージを送信したコマンダＣ５のアドレス情報が含まれる。
【００５９】
図４（Ａ）に示す処理が開始されると、ルータＲ３の制御部１は、参加要求メッセージを送信したコマンダＣ５のアドレス情報がコマンダリストに登録されているか否かを判定する（ステップＳ１１）。つまり、参加要求メッセージを送信したコマンダＣ５のエントリがコマンダリストにあるか否かが判定される。コマンダＣ５のアドレス情報がコマンダリストに登録されていると判定された場合（ステップＳ１１：ＹＥＳ）、メイン処理に戻る。一方、コマンダＣ５のアドレス情報がコマンダリストに登録されていないと判定された場合（ステップＳ１１：ＮＯ）、ステップＳ１２へ進む。ステップＳ１２では、ルータＲ３の制御部１は、参加要求メッセージを送信したコマンダＣ５のアドレス情報をコマンダリストに登録する。
【００６０】
次いで、ルータＲ３の制御部１は、参加要求メッセージを送信したコマンダＣ５から拠点ネットワークＮＬ３を介してキャッシュリストを取得する（ステップＳ１３）。次いで、ルータＲ３の制御部１は、コマンダＣ５から取得したキャッシュリストに基づいて、ルータＲ３の記憶部２に記憶されているキャッシュリストを更新し（ステップＳ１４）、メイン処理に戻る。こうして、キャッシュリストには、コマンダＣ５のアドレス情報が追加される。
【００６１】
（４−３．コマンダＣの削除処理）
次に、図４（Ｂ）を参照して、コマンダＣの削除処理について説明する。図４（Ｂ）は、ルータＲにおけるコマンダＣの削除処理例を示すフローチャートである。図４（Ｂ）に示す処理は、上述したメイン処理において、例えばコマンダＣ６から拠点ネットワークＮＬ３を介して離脱要求メッセージが受信された場合（ステップＳ１０３：ＹＥＳ）に開始される。この離脱要求メッセージは、コンテンツ配信システムＳからの離脱要求を示すメッセージである。この離脱要求メッセージには、このメッセージを送信したコマンダＣ６のアドレス情報が含まれる。
【００６２】
図４（Ｂ）に示す処理が開始されると、ルータＲ３の制御部１は、離脱要求メッセージを送信したコマンダＣ６のアドレス情報がコマンダリストに登録されているか否かを判定する（ステップＳ２１）。つまり、離脱要求メッセージを送信したコマンダＣ６のエントリがコマンダリストにあるか否かが判定される。コマンダＣ６のアドレス情報がコマンダリストに登録されていないと判定された場合（ステップＳ２１：ＮＯ）、メイン処理に戻る。一方、コマンダＣ６のアドレス情報がコマンダリストに登録されていると判定された場合（ステップＳ２１：ＹＥＳ）、ステップＳ２２へ進む。ステップＳ２２では、ルータＲ３の制御部１は、離脱要求メッセージを送信したコマンダＣ６のアドレス情報をコマンダリストから削除する。
【００６３】
次いで、ルータＲ３の制御部１は、キャッシュリストからコンテンツのエントリを一つ特定する（ステップＳ２３）。ここで特定されたエントリには、特定されたことを示す情報が付与される。次いで、ルータＲ３の制御部１は、ステップＳ２３で特定したエントリにおける所有コマンダ情報に、離脱要求メッセージを送信したコマンダＣ６のアドレス情報が含まれるか否かを判定する（ステップＳ２４）。ステップＳ２３で特定されたエントリにおける所有コマンダ情報にコマンダＣ６のアドレス情報が含まれないと判定された場合（ステップＳ２４：ＮＯ）、ステップＳ２９へ進む。一方、ステップＳ２３で特定されたエントリにおける所有コマンダ情報にコマンダＣ６のアドレス情報が含まれると判定された場合（ステップＳ２４：ＹＥＳ）、ステップＳ２５へ進む。
【００６４】
ステップＳ２５では、ルータＲ３の制御部１は、ステップＳ２３で特定したエントリにおける所有コマンダ情報から、離脱要求メッセージを送信したコマンダＣ６のアドレス情報を削除する。次いで、ルータＲ３の制御部１は、ステップＳ２３で特定したエントリにおける所有コマンダ情報が空であるか否かを判定する（ステップＳ２６）。ここで、所有コマンダ情報が空であるとは、所有コマンダ情報に、アドレス情報が一つも含まれないことを意味する。ステップＳ２３で特定されたエントリにおける所有コマンダ情報が空であると判定された場合（ステップＳ２６：ＹＥＳ）、ステップＳ２７へ進む。一方、ステップＳ２３で特定されたエントリにおける所有コマンダ情報が空でないと判定された場合（ステップＳ２６：ＮＯ）、ステップＳ２９へ進む。
【００６５】
ステップＳ２７では、ルータＲ３の制御部１は、ステップＳ２３で特定したエントリをキャッシュリストから削除する。次いで、ルータＲ３の制御部１は、削除通知メッセージを、オーバーレイネットワークＯＮを介してルートノードへ送信する（ステップＳ２８）。このルートノードは、ステップＳ２３で削除されたエントリに含まれるコンテンツＩＤが示すコンテンツの所在を管理するノードＮである。この削除通知メッセージには、ステップＳ２３で削除したエントリに含まれるコンテンツＩＤ、及びルータＲ３のアドレス情報が含まれる。削除通知メッセージは、この削除通知メッセージに含まれるコンテンツＩＤをキーとしてＤＨＴルーティングによりルートノードへ送信される。そして、削除通知メッセージを受信したルートノードは、このメッセージ含まれるコンテンツＩＤ及びルータＲ３のアドレス情報をインデックス情報から削除することになる。
【００６６】
ステップＳ２９では、ルータＲ３の制御部１は、キャッシュリストにおいてまだ特定していないエントリがあるか否かを判定する。まだ特定していないエントリがあると判定された場合（ステップＳ２９：ＹＥＳ）、ステップＳ２３に戻る。ステップＳ２３に戻ると、ルータＲ３の制御部１は、キャッシュリストからまだ特定されていないエントリを一つ特定し、ステップＳ２４以降の処理を行う。一方、特定していないエントリがないと判定された場合（ステップＳ２９：ＮＯ）、メイン処理に戻る。
【００６７】
なお、上記ステップＳ２３〜ステップＳ２９の処理は実行されないように構成してもよい。これにより、処理時間を短縮することができる。
【００６８】
（４−４．パブリッシュ処理）
次に、図５（Ａ）を参照して、パブリッシュ処理について説明する。図５（Ａ）は、ルータＲにおけるパブリシュ処理例を示すフローチャートである。図５（Ａ）に示す処理は、上述したメイン処理において、パブリッシュタイマＴ１がカウントアップした場合（ステップＳ１０５：ＹＥＳ）に開始される。図５（Ａ）に示す処理が開始されると、ルータＲ３の制御部１は、キャッシュリストのパブリッシュポインタがＮＵＬＬであるか否かを判定する（ステップＳ３１）。パブリッシュポインタとは、パブリッシュ処理の対象となるコンテンツのエントリを指し示すポインタである。パブリッシュポインタがキャシュリストにおける何れかのエントリを指す場合、パブリッシュポインタがＮＵＬＬでないと判定され（ステップＳ３１：ＮＯ）、ステップＳ３３へ進む。一方、パブリッシュポインタがＮＵＬＬであると判定された場合（ステップＳ３１：ＹＥＳ）、ステップＳ３２へ進む。ステップＳ３２では、ルータＲ３の制御部１は、キャッシュリストにおける先頭のエントリをパブリッシュポインタに設定し、ステップＳ３３へ進む。
【００６９】
ステップＳ３３では、ルータＲ３の制御部１は、パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達したか否かを判定する。パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達していないと判定された場合（ステップＳ３３：ＮＯ）、ステップＳ３４へ進む。一方、パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達したと判定された場合（ステップＳ３３：ＹＥＳ）、メイン処理に戻る。このように、１回のパブリッシュ処理で対象とするエントリ数を制限することで、ネットワークＮＷの負荷を低減することができる。
【００７０】
ステップＳ３４では、ルータＲ３の制御部１は、パブリッシュポインタが指しているエントリからコンテンツＩＤを取得する。次いで、ルータＲ３の制御部１は、パブリッシュメッセージを、オーバーレイネットワークＯＮを介してルートノードへ送信する（ステップＳ３５）。このルートノードは、ステップＳ３４で取得されたコンテンツＩＤが示すコンテンツの所在を管理するノードＮである。このパブリッシュメッセージには、ステップＳ３４で取得したコンテンツＩＤ、及びルータＲ３のアドレス情報が含まれる。これにより、パブリッシュメッセージに含まれるルータＲ３のアドレス情報及びコンテンツＩＤを含むインデックス情報がルートノードに記憶される。次いで、ルータＲ３の制御部１は、パブリッシュポインタをキャッシュリストの次のエントリに変更し（ステップＳ３６）、ステップＳ３３に戻る。
【００７１】
（４−５．コマンダＣの生死確認処理）
次に、図５（Ｂ）を参照して、コマンダＣの生死確認処理について説明する。図５（Ｂ）は、ルータＲにおけるコマンダＣの生死確認処理例を示すフローチャートである。図５（Ｂ）に示す処理は、上述したメイン処理において、生死監視タイマＴ２がカウントアップした場合（ステップＳ１０７：ＹＥＳ）に開始される。図５（Ｂ）に示す処理が開始されると、ルータＲ３の制御部１は、コマンダリストからコマンダのエントリを一つ特定する（ステップＳ４１）。次いで、ルータＲ３の制御部１は、ステップＳ４１で特定したエントリからコマンダＣのアドレス情報を取得する（ステップＳ４２）。
【００７２】
次いで、ルータＲ３の制御部１は、ステップＳ４２で取得したアドレス情報に従って、ステータス要求パケットを、拠点ネットワークＮＬ３を介してコマンダＣへ送信する（ステップＳ４３）。ステータス要求パケットは、コマンダＣの状態を確認するための確認要求の一例である。なお、ルータＲ３の制御部１は、ステータス要求パケットを送信した時に、応答待機タイマＴ４のカウントを開始する。応答待機タイマＴ４は、ステータス要求パケットに対する応答のタイムアウト時間を設定するものである。このタイムアウト時間は所定時間の一例である。ステータス要求パケットを受信したコマンダＣは、拠点ネットワークＮＬ３を介してルータＲ３へ応答メッセージを送信することになる。この応答メッセージには、このメッセージを送信したコマンダＣのアドレス情報が含まれる。
【００７３】
次いで、ルータＲ３の制御部１は、コマンダＣからの応答メッセージが受信されたか否かを判定する（ステップＳ４４）。コマンダＣからの応答メッセージが受信されていないと判定された場合（ステップＳ４４：ＮＯ）、ステップＳ４５へ進む。一方、コマンダＣからの応答メッセージが受信されたと判定された場合（ステップＳ４４：ＹＥＳ）、ステップＳ４７へ進む。
【００７４】
ステップＳ４５では、ルータＲ３の制御部１は、タイムアウトになったか否かを判定する。応答待機タイマＴ４のカウント値が、設定されたタイムアウト時間になった場合、タイムアウトになったと判定される。タイムアウトになっていないと判定された場合（ステップＳ４５：ＮＯ）、ステップＳ４４に戻る。一方、タイムアウトになったと判定された場合（ステップＳ４５：ＹＥＳ）、ステップＳ４６へ進む。ステップＳ４６では、ルータＲ３の制御部１は、図４（Ｂ）に示すコマンダＣの削除処理を実行し、ステップＳ４７へ進む。つまり、ルータＲ３の制御部１は、ステータス要求パケットの送信から、設定されたタイムアウト時間以内にステータス要求パケットに対する応答がコマンダＣから受信されない場合、このコマンダＣのアドレス情報をコマンダリストから削除する。これにより、ルータＲ３は、ルータＲ３の配下にあるコマンダＣを正確に管理することができる。
【００７５】
ステップＳ４７では、ルータＲ３の制御部１は、コマンダリストにおいてまだ特定していないエントリがあるか否かを判定する。まだ特定していないエントリがあると判定された場合（ステップＳ４７：ＹＥＳ）、ステップＳ４１に戻る。ステップＳ４１に戻ると、ルータＲ３の制御部１は、コマンダリストからまだ特定されていないエントリを一つ特定し、ステップＳ４２以降の処理を行う。一方、特定していないエントリがないと判定された場合（ステップＳ４７：ＮＯ）、メイン処理に戻る。
【００７６】
（４−６．コンテンツの検索処理）
次に、図６（Ａ）を参照して、コンテンツの検索処理について説明する。図６（Ａ）は、ルータＲにおけるコンテンツの検索処理例を示すフローチャートである。図６（Ａ）に示す処理は、上述したメイン処理において、例えばコマンダＣ５から拠点ネットワークＮＬ３を介してコンテンツＴの検索要求メッセージが受信された場合（ステップＳ１０９：ＹＥＳ）に開始される。この検索要求メッセージには、検索対象のコンテンツＴのコンテンツＩＤが含まれる。図６（Ａ）に示す処理が開始されると、ルータＲ３の制御部１は、受信された検索要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されているか否かを判定する（ステップＳ５１）。つまり、検索要求メッセージに含まれるコンテンツＩＤを含むエントリがキャッシュリストにあるか否かが判定される。検索要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されていると判定された場合（ステップＳ５１：ＹＥＳ）、ステップＳ５２へ進む。一方、検索要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されていないと判定された場合（ステップＳ５１：ＮＯ）、ステップＳ５３へ進む。
【００７７】
ステップＳ５２では、ルータＲ３の制御部１は、ルータＲ３のアドレス情報を含む検索結果メッセージを、拠点ネットワークＮＬ３を介してコマンダＣ５へ送信し、メイン処理に戻る。つまり、ルータＲ３のアドレス情報が、検索対象のコンテンツＴを提供可能なノードＮのアドレス情報として、検索要求の送信元のコマンダＣ５へ提供される。
【００７８】
ステップＳ５３では、ルータＲ３の制御部１は、受信された検索要求メッセージを、オーバーレイネットワークＯＮを介してルートノードへ送信する。このルートノードは、検索要求メッセージに含まれるコンテンツＩＤが示すコンテンツＴの所在を管理するノードＮである。そして、検索要求メッセージを受信したルートノードは、検索要求メッセージに含まれるコンテンツＩＤを含むインデックス情報を記憶部２から検索する。この検索によりインデックス情報が発見された場合、ルートノードは、発見されたインデックス情報を含む検索結果メッセージを、基幹ネットワークＮＷを介してルータＲ３へ返信する。このインデックス情報には、例えばルータＲ５のアドレス情報が含まれる。つまり、この場合、ルータＲ５のアドレス情報が、検索対象のコンテンツＴを提供可能なノードＮのアドレス情報として、検索要求の送信元のコマンダＣ５へ提供される。一方、上記検索によりインデックス情報が発見されない場合、ルートノードは、インデックス情報を発見できなかったことを示す検索結果メッセージを、基幹ネットワークＮＷを介してルータＲ３へ返信する。
【００７９】
ステップＳ５４では、ルータＲ３の制御部１は、ルートノードから送信された検索結果メッセージを受信する。そして、ルータＲ３の制御部１は、受信した検索結果メッセージを、拠点ネットワークＮＬ３を介して検索要求の送信元のコマンダＣ５へ送信し（ステップＳ５５）、メイン処理に戻る。
【００８０】
（４−７．コンテンツのアップロード処理）
次に、図６（Ｂ）を参照して、コンテンツのアップロード処理について説明する。図６（Ｂ）は、ルータＲにおけるコンテンツのアップロード処理例を示すフローチャートである。図６（Ｂ）に示す処理は、上述したメイン処理において、コマンダＣからコンテンツＴの送信要求メッセージが受信された場合（ステップＳ１１１：ＹＥＳ）に開始される。例えばコマンダＣ５は、ルータＲ３から受信した検索結果メッセージにアドレス情報が含まれるか否か判定する。検索結果メッセージに例えばルータＲ３のアドレス情報が含まれる場合がある。この場合、コマンダＣ５は、コンテンツＴの送信要求メッセージを、拠点ネットワークＮＬ３を介してルータＲ３へ送信する。或いは、検索結果メッセージに例えばルータＲ５のアドレス情報が含まれる場合がある。この場合、コマンダＣ５は、コンテンツＴの送信要求メッセージを、拠点ネットワークＮＬ３及びルータＲ３を介してルータＲ５へ送信する。つまり、この場合、コマンダＣ５からの送信要求メッセージは、ルータＲ３の中継機能により中継されることで基幹ネットワークＮＷを介してルータＲ５へ送信されることになる。或いは、検索結果メッセージがインデックス情報を発見できなかったことを示す場合がある。この場合、コマンダＣ５は、コンテンツＴの送信要求メッセージを、拠点ネットワークＮＬ３及びルータＲ３を介してセンターサーバＳＡへ送信する。これにより、送信要求されたコンテンツＴは、センターサーバＳＡからコマンダＣ５にダウンロードされる。
【００８１】
例えばルータＲ３またはルータＲ５の制御部１は、図６（Ｂ）に示す処理を開始すると、送信要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されているか否かを判定する（ステップＳ６１）。つまり、送信要求メッセージに含まれるコンテンツＩＤを含むエントリがキャッシュリストにあるか否かが判定される。送信要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されていないと判定された場合（ステップＳ６１：ＮＯ）、ステップＳ６２へ進む。一方、送信要求メッセージに含まれるコンテンツＩＤがキャッシュリストに登録されていると判定された場合（ステップＳ６１：ＹＥＳ）、ステップＳ６４へ進む。
【００８２】
ステップＳ６２では、ルータＲ３の制御部１は、コンテンツＴを提供できないことを示すエラーメッセージを、拠点ネットワークＮＬ３を介して送信要求元のコマンダＣ５へ送信する。或いは、ルータＲ５の制御部１は、上記エラーメッセージを、基幹ネットワークＮＷ及びルータＲ３を介して送信要求元のコマンダＣ５へ送信する。次いで、ルータＲ３またはルータＲ５の制御部１は、削除通知メッセージを、オーバーレイネットワークＯＮを介してルートノードへ送信し（ステップＳ６３）、メイン処理に戻る。この削除通信メッセージを受信したルートノードは、このメッセージ含まれるコンテンツＩＤ及びルータＲ３またはルータＲ５のアドレス情報をインデックス情報から削除することになる。
【００８３】
ステップＳ６４では、ルータＲ３またはルータＲ５の制御部１は、送信要求されたコンテンツＴを記憶するコマンダＣのリストＬを作成する。例えば制御部１は、送信要求メッセージに含まれるコンテンツＩＤに対応付けられたアドレス情報をキャッシュリストから取得する。そして、制御部１は、取得したアドレス情報を登録するリストＬを作成する。なお、コマンダＣのリストＬに複数のアドレス情報が登録される場合がある。この場合、リストＬにおけるアドレス情報の順番は例えばランダムに決定される。
【００８４】
次いで、ルータＲ３またはルータＲ５の制御部１は、ステップＳ６４で作成したリストＬが空であるか否かを判定する（ステップＳ６５）。ここで、リストＬが空であるとは、リストＬに、アドレス情報が一つも含まれないことを意味する。リストＬが空であると判定された場合（ステップＳ６５：ＹＥＳ）、ステップＳ６２へ移行する。一方、リストＬが空でないと判定された場合（ステップＳ６５：ＮＯ）、ステップＳ６６へ進む。
【００８５】
ステップＳ６６では、ルータＲ３またはルータＲ５の制御部１は、リストＬに登録されたアドレス情報のうち順番が先頭のアドレス情報を取得し、且つ取得したアドレス情報をリストＬから削除する。次いで、ルータＲ３またはルータＲ５の制御部１は、取得したアドレス情報に従ってコンテンツＴの送信要求メッセージを、拠点ネットワークＮＬを介して同じ拠点Ｐ内のコマンダＣへ送信する（ステップＳ６７）。コンテンツＴの送信要求メッセージを受信したコマンダＣは、送信要求されたコンテンツＴが記憶部１２に記憶されているか否かを判定する。コンテンツＴが記憶部１２に記憶されている場合、コマンダＣは、記憶部１２からコンテンツＴを取得してルータＲ３またはルータＲ５へ送信する。一方、コンテンツＴが記憶部１２に記憶されていない場合、コマンダＣは、コンテンツＴを提供できないことを示すエラーメッセージを、拠点ネットワークＮＬを介してルータＲ３またはルータＲ５へ送信する。
【００８６】
次いで、ルータＲ３またはルータＲ５の制御部１は、コンテンツＴの取得が成功したか否かを判定する（ステップＳ６８）。コマンダＣから拠点ネットワークＮＬを介してコマンダＣからコンテンツＴが受信された場合、制御部１は、コンテンツＴの取得が成功したと判定し（ステップＳ６８：ＹＥＳ）、ステップＳ６９へ進む。一方、コマンダＣからエラーメッセージが送信されコンテンツＴが受信されない場合、制御部１は、コンテンツＴの取得が成功しないと判定し（ステップＳ６８：ＮＯ）、ステップＳ６５に戻る。ステップＳ６５に戻ると、上記と同様の処理が行われる。  
【００８７】
ステップＳ６９では、ルータＲ３の制御部１は、ステップＳ６８でコマンダＣから取得したコンテンツＴを、拠点ネットワークＮＬ３を介して送信要求元のコマンダＣ５へ送信し、メイン処理に戻る。或いは、ルータＲ５の制御部１は、コマンダＣから取得したコンテンツＴを、基幹ネットワークＮＷ及びルータＲ３を介して送信要求元のコマンダＣ５へ送信し、メイン処理に戻る。つまり、この場合、ルータＲ５からのコンテンツは、ルータＲ３の中継機能により中継されることでコマンダＣ５へ送信される。
【００８８】
（４−８．コンテンツのアップロード処理の応用例）
次に、図７（Ａ）〜（Ｃ）を参照して、コンテンツのアップロード処理の応用例について説明する。図７（Ａ）は、コンテンツのアップロードを受けるコマンダＣの処理例を示すフローチャートである。図７（Ｂ）は、ルータＲにおける許可通知処理例を示すフローチャートである。図７（Ｃ）は、ルータＲにおけるダウンロード完了処理例を示すフローチャートである。なお、アップロード処理の応用例では、図３に示すメイン処理に、コンテンツのダウンロードの開始許可要求メッセージの受信を判定する処理、及びダウンロード完了メッセージの受信を判定する処理が追加される。
【００８９】
先ず、図７（Ａ）に示す処理は、例えばコマンダＣ５がルータＲ３から送信された検索結果メッセージが受信された場合に開始される。図７（Ａ）に示す処理が開始されると、例えばコマンダＣ５の制御部１１は、受信した検索結果メッセージにアドレス情報が含まれるか否か判定する（ステップＳ７１）。検索結果メッセージにアドレス情報が含まれないと判定された場合（ステップＳ７１：ＮＯ）、ステップＳ７２へ進む。一方、検索結果メッセージにアドレス情報が含まれると判定された場合（ステップＳ７１：ＹＥＳ）、ステップＳ７６へ進む。
【００９０】
ステップＳ７２では、コマンダＣ５の制御部１１は、拠点ネットワークＮＬ３を介して同じ拠点Ｐ３内のルータＲ３へコンテンツＴのダウンロードの開始許可要求メッセージを送信する。ダウンロードの開始許可要求メッセージは、同じ拠点Ｐ３内のルータＲに対してダウンロードの開始許可要求を示すメッセージである。この開始許可要求メッセージには、コンテンツＴのコンテンツＩＤが含まれる。次いで、コマンダＣ５の制御部１１は、ダウンロードの開始許可メッセージを受信したか否かを判定する（ステップＳ７３）。ダウンロードの開始許可メッセージを受信したと判定された場合（ステップＳ７３：ＹＥＳ）、ステップＳ７４へ進む。この開始許可メッセージには、コンテンツＴのコンテンツＩＤが含まれる。一方、ダウンロードの開始許可メッセージを受信していないと判定された場合（ステップＳ７３：ＮＯ）、コマンダＣ５の制御部１１は、例えばタイムアウトになるまでステップＳ７３の処理を所定時間間隔で繰り返す。そして、タイムアウトになった場合、例えば図７（Ａ）に示す処理が終了する。
【００９１】
ステップＳ７４では、コマンダＣ５の制御部１１は、コンテンツＴの送信要求メッセージをセンターサーバＳＡへ送信する。そして、コマンダＣ５の制御部１１は、センターサーバＳＡから送信されたコンテンツＴを受信する（ステップＳ７５）。こうして、コンテンツＴのダウンロードが完了すると、ステップＳ８０へ進む。
【００９２】
ステップＳ７６では、コマンダＣ５の制御部１１は、拠点ネットワークＮＬ３を介して同じ拠点Ｐ３内のルータＲ３へコンテンツＴのダウンロードの開始許可要求メッセージを送信する。次いで、コマンダＣ５の制御部１１は、ダウンロードの開始許可メッセージを受信したか否かを判定する（ステップＳ７７）。ダウンロードの開始許可メッセージを受信したと判定された場合（ステップＳ７７：ＹＥＳ）、ステップＳ７８へ進む。一方、ダウンロードの開始許可メッセージを受信していないと判定された場合（ステップＳ７７：ＮＯ）、コマンダＣ５の制御部１１は、例えばタイムアウトになるまでステップＳ７７の処理を所定時間間隔で繰り返す。そして、タイムアウトになった場合、例えば図７（Ａ）に示す処理が終了する。
【００９３】
ステップＳ７８では、コマンダＣ５の制御部１１は、検索結果メッセージに含まれる例えばルータＲ５のアドレス情報に従って、コンテンツＴの送信要求メッセージをルータＲ５へ送信する。そして、コマンダＣ５の制御部１１は、ルータＲ５から送信されたコンテンツＴを受信する（ステップＳ７９）。このように、コマンダＣ５は、ルータＲ５の許可を得てからダウンロード処理を行う。そのため、ルータＲ３は、ネットワークＮＷにおけるダウンロード帯域の制御と、ダウンロード中のコンテンツを優先する制御を実現することができる。こうして、コンテンツＴのダウンロードが完了すると、ステップＳ８０へ進む。
【００９４】
ステップＳ８０では、コマンダＣ５の制御部１１は、コンテンツＴのダウンロード完了メッセージを、拠点ネットワークＮＬ３を介して同じ拠点Ｐ３内のルータＲ３へ送信する。このダウンロード完了メッセージには、コンテンツＴのコンテンツＩＤが含まれる。
【００９５】
一方、図７（Ｂ）に示す処理は、上述したメイン処理において、例えばコマンダＣ５からダウンロードの開始許可要求メッセージが受信された場合に開始される。図７（Ｂ）に示す処理が開始されると、例えばルータＲ３の制御部１１は、ダウンロード実行中のコマンダ数を参照する（ステップＳ８１）。次いで、ルータＲ３の制御部１１は、ダウンロード実行中のコマンダ数が所定数以下であるか否かを判定する（ステップＳ８２）。ここで、所定数は、例えばネットワークＮＷの帯域に応じて決定される。これにより、コンテンツＴのダウンロード速度を高めることができる。ダウンロード実行中のコマンダ数が所定数以下でないと判定された場合（ステップＳ８２：ＮＯ）、ステップＳ８１に戻る。一方、ダウンロード実行中のコマンダ数が所定数以下であると判定された場合（ステップＳ８２：ＹＥＳ）、ステップＳ８３へ進む。ステップＳ８３では、ルータＲ３の制御部１１は、ダウンロードの開始許可メッセージをコマンダＣ５へ送信する。このように構成することで、ルータＲ３は、ネットワークＮＷにおけるダウンロード帯域を一定量に制御することができる。また、ルータＲ３は、ダウンロード中のコンテンツを優先することができる。次いで、ルータＲ３の制御部１１は、ダウンロード実行中のコマンダ数を更新し（ステップＳ８４）、メイン処理に戻る。例えば、ダウンロード実行中のコマンダ数が１加算される。
【００９６】
一方、図７（Ｃ）に示す処理は、上述したメイン処理において、例えばコマンダＣ５からダウンロード完了メッセージが受信された場合に開始される。図７（Ｃ）に示す処理が開始されると、例えばルータＲ３の制御部１１は、ダウンロード実行中のコマンダ数を更新する（ステップＳ９１）。例えば、ダウンロード実行中のコマンダ数が１減算される。次いで、ルータＲ３の制御部１１は、キャッシュリストにコンテンツＴのエントリがあるか否かを判定する（ステップＳ９２）。キャッシュリストにコンテンツＴのエントリがないと判定された場合（ステップＳ９２：ＮＯ）、ステップＳ９３に進む。一方、キャッシュリストにコンテンツＴのエントリがあると判定された場合（ステップＳ９２：ＹＥＳ）、ステップＳ９４へ進む。ステップＳ９３では、ルータＲ３の制御部１１は、キャッシュリストにコンテンツＴのエントリを追加し、ステップＳ９４へ進む。ステップＳ９４では、ルータＲ３の制御部１１は、コンテンツＴのエントリにおける所有コマンダ情報に、コマンダＣ５のアドレス情報を追加する。つまり、コンテンツＴをダウンロードしたコマンダＣ５のアドレス情報がキャッシュリストに登録される。次いで、ルータＲ３の制御部１１は、パブリッシュメッセージを、オーバーレイネットワークＯＮを介してコンテンツＴの所在を管理するルートノードへ送信し（ステップＳ９５）、メイン処理に戻る。このパブリッシュメッセージには、コンテンツＴのコンテンツＩＤ、及びルータＲ３のアドレス情報が含まれる。これにより、パブリッシュメッセージに含まれるコンテンツＩＤ、及びルータＲ３のアドレス情報を含むインデックス情報がルートノードに記憶される。
【００９７】
以上説明したように、上記実施形態によれば、ネットワーク間でデータを中継する中継機能を有するルータＲは、このルータＲの配下にあるコマンダＣが記憶するコンテンツを提供可能であることをオーバーレイネットワークＯＮ上でパブリッシュする。そして、ルータＲは、コマンダＣから検索要求されたコンテンツの所在をオーバーレイネットワークＯＮ上で検索し、その検索結果をコマンダＣへ送信する。これにより、ルータＲのメモリ容量を低減し、且つシステムのセキュリティを向上させることができる。つまり、ルータＲがコンテンツのアップロードを行うためコマンダＣは、基幹ネットワークＮＷ側に常時ポート開放する必要がない。その結果、基幹ネットワークＮＷ側から攻撃を受けるリスクを抑制することができる。また、コンテンツの保存先がコマンダＣの記憶部１２になるため、ルータＲに大容量のＨＤＤ等の記憶装置を搭載する必要がなくなる。その結果、ルータＲの部品コストを削減することができる。さらに、ルータＲがコンテンツのアップロード数、ダウンロード数を集中管理することで安定した通信を実現することができる。
【００９８】
なお、上記実施形態においては、オーバーレイネットワークＯＮに、ＤＨＴを利用したピアツーピアネットワークを適用したが、これに限られるものではない。例えば、他のオーバーレイネットワークを用いたシステムが適用されてもよい。ＤＨＴを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。
【符号の説明】
【００９９】
Ｒ  ルータ
Ｎ  ノード
ＮＬ  拠点ネットワーク
ＮＷ  基幹ネットワーク
ＯＮ  オーバーレイネットワーク
Ｓ  コンテンツ配信システム
【図１】
0005907132.tif 000002
【図２】
0005907132.tif 000003
【図３】
0005907132.tif 000004
【図４】
0005907132.tif 000005
【図５】
0005907132.tif 000006
【図６】
0005907132.tif 000007
【図７】
0005907132.tif 000008