JP5907132B2 - 中継装置、プログラム及び通信システム - Google Patents

中継装置、プログラム及び通信システム Download PDF

Info

Publication number
JP5907132B2
JP5907132B2 JP2013180239A JP2013180239A JP5907132B2 JP 5907132 B2 JP5907132 B2 JP 5907132B2 JP 2013180239 A JP2013180239 A JP 2013180239A JP 2013180239 A JP2013180239 A JP 2013180239A JP 5907132 B2 JP5907132 B2 JP 5907132B2
Authority
JP
Japan
Prior art keywords
network
content
terminal device
router
commander
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013180239A
Other languages
English (en)
Other versions
JP2015049642A (ja
Inventor
雅司 武市
雅司 武市
和博 原田
和博 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2013180239A priority Critical patent/JP5907132B2/ja
Publication of JP2015049642A publication Critical patent/JP2015049642A/ja
Application granted granted Critical
Publication of JP5907132B2 publication Critical patent/JP5907132B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

複数のノード装置により構成されるオーバーレイネットワークにノード装置として参加するルータ等の技術分野に関する。
従来、カラオケコンテンツを再生する複数のコマンダを備えるカラオケシステムが知られている。例えば特許文献1に開示されたカラオケシステムは、各拠点に構築されたLAN(Local Area Network)に接続された複数のコマンダと、LAN及びWAN(Wide Area Network)に接続されたルータと、を備えている。このカラオケシステムでは、複数のコマンダの中から決定された代表コマンダがオーバーレイネットワークに参加可能になっている。オーバーレイネットワークに参加した代表コマンダは、他の拠点の代表コマンダへルータ及びWANを介してカラオケコンテンツを要求することでカラオケコンテンツを取得するように構成されている。
特開2011−64975号公報
ところで、特許文献1では、ルータはカラオケコンテンツを保存しないため、ルータのメモリ容量を低減することができる。しかしながら、各拠点の代表コマンダは、他の代表コマンダからWANを介してカラオケコンテンツの要求を受け付けるためのポートを開いている。そのため、代表コマンダがWAN側から攻撃される恐れがあり、システムのセキュリティ上、好ましくない。
本発明は、以上の点に鑑みてなされたものであり、ルータのメモリ容量を低減し、且つシステムのセキュリティを向上させることが可能な中継装置、プログラム及び通信システムを提供する。
上記課題を解決するために、請求項1に記載の発明は、第1のネットワークと第2のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置において、前記中継装置が接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得する第1取得手段と、前記第1取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第1記憶手段と、前記第1記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第1送信手段と、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークに接続されている端末装置から前記第2のネットワークを介して受信する第1受信手段と、前記第1受信手段により受信された前記識別情報が前記第1記憶手段に記憶されているかを判定する判定手段と、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第2送信手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信する第2受信手段と、前記第2受信手段により受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第3送信手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継手段と、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継手段と、を備え、前記第2中継手段は、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする。
請求項2に記載の発明は、請求項1に記載の中継装置において、前記識別情報が前記第1記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを提供可能なノード装置の所在を示す所在情報として前記中継装置の所在を示す所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第4送信手段を更に備えることを特徴とする。
請求項に記載の発明は、請求項1または2に記載の中継装置において、前記コンテンツの識別情報が送信された前記端末装置の前記所在情報を前記第1記憶手段から取得する第2取得手段と、前記第2取得手段により取得された前記所在情報に従って、前記端末装置の状態を確認するための確認要求を、前記第2のネットワークを介して前記端末装置へ送信する第5送信手段と、前記確認要求の送信から所定時間以内に前記確認要求に対する応答が前記端末装置から受信されない場合、前記端末装置の前記所在情報を前記第1記憶手段から削除する削除手段と、を備えることを特徴とする。
請求項に記載の発明は、第1のネットワークと第2のネットワークとの間でデータを中継する中継機能を備え、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加するコンピュータに、前記コンピュータが接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得するステップと、前記取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶手段に記憶させるステップと、前記記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信するステップと、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークに接続されている端末装置から前記第2のネットワークを介して受信するステップと、前記受信された前記識別情報が前記記憶手段に記憶されているかを判定するステップと、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ転送するステップと、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信するステップと、前記受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信するステップと、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継ステップと、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継ステップと、を実行し、前記第2中継ステップでは、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする。
請求項に記載の発明は、第1のネットワークと第2のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置と、前記第2のネットワークに接続された端末装置と、を備える通信システムにおいて、前記中継装置は、前記中継装置が接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得する第1取得手段と、前記第1取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第1記憶手段と、前記第1記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第1送信手段と、を備え、前記端末装置は、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークを介して前記中継装置へ送信する第6送信手段を備え、前記中継装置は、前記端末装置から送信された前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを前記第2のネットワークを介して受信する第1受信手段と、前記第1受信手段により受信された前記識別情報が前記第1記憶手段に記憶されているかを判定する判定手段と、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第2送信手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信する第2受信手段と、前記第2受信手段により受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第3送信手段と、を備え、前記端末装置は、前記中継装置から送信された前記所在情報を前記第2のネットワークを介して受信する第3受信手段と、前記中継装置に接続するために一時的にポートを開き、セッションが完了するとポートを閉じるポート開閉手段と、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求を送信する第9送信手段と、を備え、前記中継装置は、前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継手段と、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継手段と、を備え、前記第2中継手段は、前記セッション中に一時的に開かれた前記送信要求の送信元の端末装置の前記ポートに対して前記コンテンツを中継し、前記ポート開閉手段は、前記セッションが完了すると前記ポートを閉じることを特徴とする。
請求項に記載の発明は、請求項に記載の通信システムにおいて、前記端末装置は、前記オーバーレイネットワークに参加する参加手段と、前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを、前記オーバーレイネットワークに参加する前記ノード装置へ前記第2ネットワークを介して送信する第7送信手段と、前記検索対象のコンテンツを提供可能な前記ノード装置の所在を示す所在情報を、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第4受信手段と、前記第4受信手段により受信された前記所在情報に従って、前記検索対象のコンテンツの送信要求を、前記第2のネットワーク及び前記中継装置を介して前記検索対象の前記コンテンツを提供可能な前記ノード装置へ送信する第8送信手段と、前記送信要求されたコンテンツを、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第5受信手段と、前記第5受信手段により受信されたコンテンツを記憶する第2記憶手段と、前記第2記憶手段に記憶されたコンテンツの識別情報と、前記端末装置の所在を示す所在情報を前記コンテンツの所在を管理するノード装置に送信する機能をロックする制御手段と、を備えることを特徴とする。
請求項1、またはに記載の発明によれば、中継装置のメモリ容量を低減し、且つシステムのセキュリティを向上させることができる。
請求項2に記載の発明によれば、前記識別情報が前記第1記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを検索要求の送信元の端末装置へ迅速に送信することができる。
請求項に記載の発明によれば、中継装置が接続される第2のネットワークに接続されている端末装置を正確に管理することができる。
請求項に記載の発明によれば、端末装置が第1のネットワーク側から攻撃を受けるリスクを抑制することができる。
本実施形態のコンテンツ配信システムSのネットワーク構成例を示す図である。 (A)は、ルータRの概要構成例を示す図である。(B)は、キャッシュリストに登録された情報の一例を示す図である。(C)は、コマンダCの概要構成例を示すブロック図である。 (A)は、ルータRの起動時の処理例を示すフローチャートである。(B)は、ルータRにおけるメイン処理例を示すフローチャートである。 (A)は、ルータRにおけるコマンダCの追加処理例を示すフローチャートである。(B)は、ルータRにおけるコマンダCの削除処理例を示すフローチャートである。 (A)は、ルータRにおけるパブリシュ処理例を示すフローチャートである。(B)は、ルータRにおけるコマンダCの生死確認処理例を示すフローチャートである。 (A)は、ルータRにおけるコンテンツの検索処理例を示すフローチャートである。(B)は、ルータRにおけるコンテンツのアップロード処理例を示すフローチャートである。 (A)は、コマンダCにおけるコンテンツのダウンロード処理例を示すフローチャートである。(B)は、ルータRにおける許可通知処理例を示すフローチャートである。(C)は、ルータRにおけるダウンロード完了処理例を示すフローチャートである。
以下、本発明の一実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して、本発明を適用した場合の実施形態である。
1.コンテンツ配信システムの構成及び動作概要
始めに、図1を参照して、本実施形態のコンテンツ配信システムの構成及び動作概要について説明する。図1は、本実施形態のコンテンツ配信システムSのネットワーク構成例を示す図である。コンテンツ配信システムSは、本発明の通信システムの一例である。本実施形態のコンテンツ配信システムSは、図1に示すように、複数のルータR1〜R5、複数のコマンダC1〜C11、及びセンターサーバSAを含んで構成される。なお、図1に示すルータR1〜R5の数、コマンダC1〜C11の数、及びセンターサーバSAの数は例示であり、これらの数に限定されるものではない。以下の説明では、説明の便宜上、ルータR1〜R5を、ルータRという場合がある。また、コマンダC1〜C11を、コマンダCという場合がある。ルータRは、本発明の中継装置の一例である。コマンダCは、本発明の端末装置の一例である。コマンダCは、例えば、カラオケコンテンツ等のコンテンツを再生する再生装置である。ルータR及びコマンダCは、拠点P1〜P6の何れかに設置される。例えば、ルータR1及びコマンダC1は、拠点1に設置される。また、例えば、ルータR2、コマンダC2及びC3は、拠点P2に設置される。以下の説明では、説明の便宜上、拠点P1〜P6を、拠点Pという場合がある。拠点Pの例として、カラオケ店舗がある。拠点Pは、学校、会社、住宅、又はその他の施設等であってもよい。
拠点P1〜P5には、それぞれ、拠点ネットワークNL1〜NL5が構築される。なお、拠点P6のように、拠点ネットワークが構築されない場合もある。以下の説明では、説明の便宜上、拠点ネットワークNL1〜NL6を、拠点ネットワークNLという場合がある。拠点ネットワークNLは、本発明の第2のネットワークの一例である。拠点ネットワークNLは、例えば、LAN(Local Area Network)から構成される。拠点ネットワークNLには、ルータR及びコマンダCが接続される。例えば、拠点ネットワークNL1には、ルータR1及びコマンダC1に接続される。また、例えば、拠点ネットワークNL2には、ルータR2、コマンダC2及びC3が接続される。それぞれの拠点ネットワークNLは、ルータRを介して基幹ネットワークNWに接続される。基幹ネットワークNWは、本発明の第1のネットワークの一例である。基幹ネットワークNWは、例えば、インターネット等のWAN(Wide Area Network)から構成される。基幹ネットワークNWには、センターサーバSAが接続されている。センターサーバSAは、例えば、コンテンツ配信システムSにおいて利用可能な全てのコンテンツを保存する。
ルータRは、拠点ネットワークNL及び基幹ネットワークNWに接続される。そして、ルータRは、拠点ネットワークNLと基幹ネットワークNWとの間でデータを中継する中継機能を備える。ルータRは、この中継機能により、基幹ネットワークNWにおける通信経路の選択、つまり、ルーティングを行う。また、ルータRは、例えば、コマンダリスト及びキャッシュリストを記憶部に記憶する。コマンダリストは、ルータRが接続される拠点ネットワークNLに接続されているコマンダCのうち、起動中のコマンダCのアドレス情報を登録するリストである。ここで、起動中とは、例えば、コマンダCが拠点ネットワークNLを介してルータRと通信可能状態にあることをいう。また、アドレス情報には、IPアドレスが含まれる。なお、アドレス情報には、IPアドレス及びポート番号が含まれてもよい。コマンダCのアドレス情報は、コマンダCの所在を示す所在情報の一例である。例えば、図1に示す拠点P2において、コマンダC2が起動中の場合、ルータR2のコマンダリストには、コマンダC2のアドレス情報が登録される。
一方、キャッシュリストは、ルータRが接続される拠点ネットワークNLに接続されているコマンダCのうち、起動中のコマンダCが記憶するコンテンツのコンテンツIDと、このコマンダCのアドレス情報とを対応付けて登録するリストである。言い換えれば、キャッシュリストには、コマンダリストに登録されているコマンダCが記憶部に記憶するコンテンツのコンテンツIDと、このコマンダCのアドレス情報とが対応付けられて登録される。ルータRは、コンテンツを記憶しないが、このルータRの配下にあるコマンダCが記憶するコンテンツのコンテンツIDを管理する。ここで、ルータRの配下にあるとは、ルータRと同じ拠点ネットワークNLに接続されていることを意味する。なお、コンテンツのコンテンツIDは、コンテンツ配信システムSにおいてコンテンツを他のコンテンツから識別する識別情報である。コンテンツIDは、例えば、コンテンツのコンテンツ名等を基に、例えばSHA1等の所定のハッシュ関数によりハッシュ値として生成される。
また、コンテンツ配信システムSにおいて、少なくとも基幹ネットワークNWに接続された複数のノードN1〜N9によりオーバーレイネットワークONが構成される。オーバーレイネットワークONは、仮想的なリンクを構成する論理的なネットワークである。オーバーレイネットワークONは、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現されるピアツーピアネットワークである。このような分散ハッシュテーブルを、以下、「DHT(Distributed Hash Table)」という。なお、図1に示すノードN1〜N9の数は例示であり、この数に限定されるものではない。以下の説明では、説明の便宜上、ノードN1〜N9を、ノードNという場合がある。ノードNは、本発明のノード装置の一例である。図1の例では、基幹ネットワークNWに接続された全てのルータRと、拠点ネットワークNLに接続された一部のコマンダCとがノードNとしてオーバーレイネットワークONに参加している。オーバーレイネットワークONに参加するとは、DHTを用いたルーティングテーブルに基づいて他のノードNとの間で各種メッセージを送受信できる状態に稼動することをいう。これにより、それぞれのノードNは、他のノードNとの間でオーバーレイネットワークONを介してメッセージを送受信することが可能となる。
オーバーレイネットワークONにノードNとして参加するルータR及びコマンダCには、それぞれ、ノードIDが付与される。ノードIDは、オーバーレイネットワークONに参加しているノードNを他のノードNから識別する識別情報である。ノードIDは、例えば、ルータRまたはコマンダCのアドレス情報等を基に、所定のハッシュ関数によりハッシュ値として生成される。このハッシュ関数は、コンテンツIDの生成に用いられるハッシュ関数と同一である。また、オーバーレイネットワークONにノードNとして参加するルータR及びコマンダCは、それぞれ、DHTを用いたルーティングテーブル(以下、「DHTルーティングテーブル」という)を記憶する。DHTルーティングテーブルには、各種メッセージの送信先候補となるノードNのノードIDとアドレス情報の組が複数登録される。DHTルーティングテーブルの詳細については、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
なお、コマンダCがノードNである場合、DHTルーティングテーブルには、コマンダCのアドレス情報の代わりにコマンダCが拠点ネットワークNLを介して接続されるルータRのアドレス情報が登録される。また、コマンダCは、オーバーレイネットワークONに参加しているか否かに関わらず、基幹ネットワークNW側からのアクセスされないようにポートを閉じている。
オーバーイネットワークONにノードNとして参加したルータRは、このルータRが提供可能なコンテンツの所在を管理するノードNへオーバーレイネットワークONを介してパブリッシュメッセージを送信する。パブリッシュメッセージをルートノードへ送信する処理を「パブリッシュ処理」という。ここで、コンテンツの所在を管理するノードNを「ルートノード」という。パブリッシュメッセージは、ルータRの配下にあるコマンダCが記憶するコンテンツを提供可能であることを他のノードNに公開するためのメッセージである。パブリッシュメッセージには、このパブリッシュメッセージを送信するルータRのアドレス情報と、このルータRが記憶するキャッシュリストに登録されたコンテンツIDと、が含まれる。ルートノードは、例えば、コンテンツIDと最も値の近いノードIDが付与されたノードNである。最も値の近いとは、例えば、IDの上位桁が最も多く一致することを意味する。そして、パブリッシュメッセージは、このパブリッシュメッセージに含まれるコンテンツIDをキーとしてDHTルーティングによりルートノードへ送信される。DHTルーティングは、例えば特開2007−053662号公報等で公知であるので、詳しい説明を省略する。パブリッシュメッセージを受信したルートノードは、このパブリッシュメッセージに含まれる「ルータRのアドレス情報」と「コンテンツのコンテンツID」とを対応付けてインデックス情報として記憶する。そして、ルートノードは、他のノードNからのコンテンツの検索要求に応じて、このコンテンツのコンテンツIDに対応付けられたルータRのアドレス情報を提供することになる。
例えば、拠点P3に設置されたコマンダC5が、例えばユーザにより指定されたコンテンツを記憶していない場合がある。この場合、オーバーレイネットワークONに参加していないコマンダC5は、このコンテンツの検索要求を示す検索要求メッセージを、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へ送信する。この検索要求メッセージには、検索対象のコンテンツのコンテンツIDが含まれる。ノードN6であるルータR3は、コマンダC5から送信された検索要求メッセージを、拠点ネットワークNL3を介して受信する。そして、ルータR3は、受信された検索要求メッセージに含まれるコンテンツIDが記憶部に記憶されているかを判定する。つまり、受信された検索要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されているか否かが判定される。
ルータR3は、検索要求メッセージに含まれるコンテンツIDが記憶されていないと判定した場合、検索対象のコンテンツの所在を管理するルートノードへオーバーレイネットワークONを介して送信する。つまり、検索要求メッセージは、この検索要求メッセージに含まれるコンテンツIDをキーとしてDHTルーティングによりルートノードへ送信される。そして、ルートノードは、受信した検索要求メッセージに応じて、検索結果メッセージを、基幹ネットワークNWを介してルータR3へ送信する。この検索結果メッセージには、検索要求メッセージに含まれるコンテンツIDに対応付けられた、例えばルータR5のアドレス情報が含まれる。検索結果メッセージに含まれるルータR5のアドレス情報は、検索対象のコンテンツを提供可能な他のノードNのアドレス情報である。ルータR3は、基幹ネットワークNWを介してルートノードから検索結果メッセージを受信する。そして、ルータR3は、受信した検索結果メッセージを、拠点ネットワークNL3を介して検索要求の送信元のコマンダC5へ送信する。
コマンダC5は、ルータR3から送信された検索結果メッセージを、拠点ネットワークNL3を介して受信する。そして、コマンダC5は、受信した検索結果メッセージに含まれるアドレス情報に対応するルータR5にアクセスする。つまり、コマンダC5は、例えばTCPクライアントとして、拠点ネットワークNL3、ルータR3及び基幹ネットワークNWを介してルータR5にTCP接続する。コマンダC5は、このTCP接続のセッションにおいて、コンテンツの送信要求を示す送信要求メッセージをルータR5へ送信する。この送信要求メッセージには、要求対象のコンテンツのコンテンツIDが含まれる。ルータR5は、コマンダC5から受信した送信要求メッセージに含まれるコンテンツIDに対応するコンテンツを例えばコマンダC10から取得する。そして、ルータR5は、コマンダC10から取得したコンテンツを送信要求元のコマンダC5へ送信する。なお、コマンダC5は、TCP接続用に一時的にランダムポートを開き、セッションが完了すればポートを閉じることになる。このセッションにおいて、ルータR3は、コマンダC5からルータR5宛てのコンテンツの送信要求メッセージを拠点ネットワークNL3と基幹ネットワークNWとの間で中継する。また、このセッションにおいて、ルータR3は、ルータR5からコマンダC5宛てのコンテンツを、基幹ネットワークNWと拠点ネットワークNL3との間で中継する。これにより、ルータRは中継機能によりデータを中継すればよいので、メモリ容量を低減することができる。
一方、ルータR3は、コマンダC5から受信された検索要求メッセージに含まれるコンテンツIDが記憶されていると判定する場合がある。例えば、コマンダC5と同じ拠点P3内のコマンダC6が検索対象のコンテンツを記憶している場合がある。この場合、ルータR3は、検索対象のコンテンツを提供可能なノードNのアドレス情報としてルータR3のアドレス情報を含む検索結果メッセージを、拠点ネットワークNL3を介して検索要求の送信元のコマンダC6へ送信する。コマンダC6は、ルータR3のアドレス情報を含む検索結果メッセージを受信すると、コンテンツの送信要求を示す送信要求メッセージをルータR3へ送信する。ルータR3は、コマンダC5から受信した送信要求メッセージに含まれるコンテンツIDに対応するコンテンツを例えばコマンダC6から取得する。そして、ルータR3は、コマンダC6から取得したコンテンツを送信要求元のコマンダC5へ送信する。これにより、検索対象のコンテンツをコマンダC5へ迅速に送信することができる。
そして、コンテンツを受信したコマンダC5は、このコンテンツを記憶部に記憶する。コマンダC5は、コンテンツを記憶したとき、パブリッシュメッセージをルートノードへ送信する機能を備える。このパブリッシュメッセージは、記憶されたコンテンツのコンテンツIDと、コマンダC5のアドレス情報を含む。しかしながら、本実施形態では、コマンダC5は、パブリッシュメッセージをルートノードへ送信する機能をロックしている。そのため、基幹ネットワークNW側からコマンダC5には直接アクセスされない。
なお、オーバーレイネットワークONに参加しているコマンダCは、オーバーレイネットワークONを介して検索要求メッセージをルートノードへ送信することもできる。この場合、コマンダCは、検索要求メッセージに応じてルートノードから送信された検索結果メッセージをルータR及び拠点ネットワークNLを介して受信する。コマンダCは、受信された検索結果メッセージに含まれるアドレス情報に従って、拠点ネットワークNL等を介して、コンテンツを提供可能なルータRへアクセスする。そして、コマンダCは、コンテンツの送信要求を示す送信要求メッセージを、アクセスしたルータRへ送信する。これにより、コマンダCは、ルータRからコンテンツを受信して記憶部に記憶する。この場合も、パブリッシュメッセージをルートノードへ送信する機能がロックされているので、パブリッシュメッセージの送信が行われない。
2.ルータRの構成及び機能
次に、図2(A)を参照して、ルータRの構成及び機能について説明する。図2(A)は、ルータRの概要構成例を示す図である。ルータRは、図2(A)に示すように、制御部1、記憶部2、ネットワークインターフェース3a、及びネットワークインターフェース3b等を備えて構成される。制御部1、記憶部2、ネットワークインターフェース3a、及びネットワークインターフェース3bは、バス4を介して相互に接続されている。
記憶部2は、本発明の第1記憶手段の一例である。記憶部2は、例えば不揮発性メモリ等から構成される。記憶部2には、オペレーティングシステム、ルータ処理プログラム、及びノード処理プログラムが記憶される。ルータ処理プログラムは、コンピュータとしての制御部1に、拠点ネットワークNLと基幹ネットワークNWとの間でデータ(IPパケット)を中継するルータRとしての処理を実行させるプログラムである。ノード処理プログラムは、制御部1に、オーバーレイネットワークONを構成するノードNとしての処理を実行させるP2Pプログラムである。ルータ処理プログラム及びノード処理プログラムは、例えば基幹ネットワークNWに接続された所定のサーバからダウンロードされる。或いは、ルータ処理プログラム、及びノード処理プログラムは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。
また、記憶部2には、上述したコマンダリスト及びキャッシュリストが記憶される。図2(B)は、キャッシュリストに登録された情報の一例を示す図である。図2(B)に示すキャッシュリストには、コンテンツのコンテンツID、コンテンツのサイズ、コンテンツの更新日時、及び所有コマンダ情報が対応付けられて登録されている。所有コマンダ情報には、コンテンツを記憶するコマンダCのアドレス情報が含まれる。コンテンツを記憶するコマンダCが複数ある場合、図2(B)に示すように、それぞれのコマンダCのアドレス情報が所有コマンダ情報に含まれることになる。なお、キャッシュリストにおいて、図2(B)に示すように、コンテンツのコンテンツID、コンテンツのサイズ、コンテンツの更新日時、及び所有コマンダ情報が対応付けられた一行(一レコード)を、このコンテンツのエントリという。一方、コマンダリストに登録された一アドレス情報を、コマンダのエントリという。また、オーバーレイネットワークONに参加したルータRの記憶部2には、上述したDHTルーティングテーブルが記憶される。また、オーバーレイネットワークONにおいてルートノードとして動作するルータRの記憶部2には、上述したインデックス情報が記憶される。
ネットワークインターフェース3aは、基幹ネットワークNWに接続される。ネットワークインターフェース3bは、拠点ネットワークNLに接続される。
制御部1は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部1は、本発明の第1取得手段、第2取得手段、第1送信手段、第2送信手段、第3送信手段、第4送信手段、第5送信手段、判定手段、第1受信手段、第2受信手段、第1中継手段、第2中継手段、及び削除手段の一例である。また、制御部1は時計機能及びタイマ機能を備える。制御部1は、ルータ処理プログラムに従ってルータRとしての処理を実行する。また、制御部1は、ノード処理プログラムに従ってノードNとしての処理を実行する。
3.コマンダCの構成及び機能等
次に、図2(C)を参照して、コマンダCの構成及び機能について説明する。図2(C)は、コマンダCの概要構成例を示すブロック図である。コマンダCは、図2(C)に示すように、制御部11、記憶部12、デコーダ部13、映像処理部14、音声処理部15、ネットワークインターフェース16、及び入力部17等を備えて構成される。制御部11、記憶部12、デコーダ部13、映像処理部14、音声処理部15、ネットワークインターフェース16、及び入力部17は、バス18を介して相互に接続されている。
記憶部12は、本発明の第2記憶手段の一例である。記憶部12は、例えばハードディスクドライブ(HDD)等から構成される。記憶部12には、オペレーティングシステム、コマンダ処理プログラム、及びノード処理プログラム等が記憶されている。コマンダ処理プログラムは、制御部11に、コマンダCとしての処理を実行させるプログラムである。コマンダCとしての処理には、例えば、コンテンツのダウンロード処理、コンテンツの再生処理などが含まれる。ノード処理プログラムは、制御部11に、オーバーレイネットワークONを構成するノードNとしての処理を実行させるP2Pプログラムである。コマンダ処理プログラム、及びノード処理プログラムは、例えば、基幹ネットワークNWに接続された所定のサーバからダウンロードされる。或いは、コマンダ処理プログラム、及びノード処理プログラムは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。
また、記憶部12には、コンテンツが記憶される。コンテンツは、例えば、映像データと音声データの少なくとも何れか一方により構成される。なお、コンテンツがカラオケコンテンツの場合がある。この場合、コンテンツは、映像データ、音声データ、及び字幕データにより構成される。また、記憶部12には、キャッシュリストが記憶される。このキャッシュリストには、記憶部12に記憶されているコンテンツのコンテンツID、コンテンツのサイズ、コンテンツの更新日時、及び記憶部12におけるコンテンツの所在を示すパスが対応付けられて登録される。また、記憶部12には、センターサーバSAのアドレス情報が記憶される。また、オーバーレイネットワークONに参加したコマンダCの記憶部12には、DHTルーティングテーブルが記憶される。
デコーダ部13は、制御部11による再生制御に従って、コンテンツに含まれる映像データ及び音声データ等のデータ伸張や復号化等のデコード処理を行う。映像処理部14は、デコーダ部13によりデコードされた映像データ等に対して所定の描画処理を施し映像信号としてディスプレイ(図示せず)へ出力する。これにより、ディスプレイには映像が表示される。音声処理部15は、デコーダ部13によりデコードされた音声データをアナログ音声信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅してスピーカ(図示せず)へ出力する。これにより、スピーカから音声が出力される。ネットワークインターフェース16は、拠点ネットワークNLに接続される。入力部17は、コマンダCのユーザからコンテンツの指定等の指示を入力する。
制御部11は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部11は、本発明の参加手段、第6送信手段、第7送信手段、第8送信手段、第3受信手段、第4受信手段、第5受信手段、及び制御手段の一例である。制御部11は、コマンダ処理プログラムに従ってコマンダCとしての処理を実行する。また、制御部11は、ノード処理プログラムに従ってノードNとしての処理を実行する。ただし、制御部11により実行されるノードNとしての処理の中で、パブリッシュメッセージをルートノードへ送信するパブリッシュ処理はロックされている。
4.コンテンツ配信システムSの動作
次に、本実施形態のコンテンツ配信システムSの動作について説明する。
(4−1.ルータRの起動時の処理)
先ず、図3を参照して、ルータRの起動時の処理について説明する。図3(A)は、ルータRの起動時の処理例を示すフローチャートである。図3(B)は、ルータRにおけるメイン処理例を示すフローチャートである。なお、以下の説明では、ルータR3を例にとるものとする。図3(A)に示す処理は、例えばルータR3の電源オンにより開始される。
図3(A)に示す処理が開始されると、ルータR3の制御部1は、タイマ機能によりパブリッシュタイマT1及び生死監視タイマT2のカウントをそれぞれ開始する。パブリッシュタイマT1は、上述したパブリッシュ処理の開始時間を設定するものである。生死監視タイマT2は、コマンダCの生死を確認する生死確認処理の開始時間を設定するものである。そして、ルータR3の制御部1は、コマンダ検索用のブロードキャストパケットまたはマルチキャストパケットを、拠点ネットワークNL3を介してコマンダCへ送信する(ステップS1)。なお、ルータR3の制御部1は、ブロードキャストパケットまたはマルチキャストパケットを送信した時に、応答待機タイマT3のカウントを開始する。応答待機タイマT3は、ブロードキャストパケットまたはマルチキャストパケットに対する応答のタイムアウト時間を設定するものである。ブロードキャストパケットまたはマルチキャストパケットを受信したコマンダCは、拠点ネットワークNL3を介してルータR3へ応答メッセージを送信することになる。この応答メッセージには、このメッセージを送信したコマンダCのアドレス情報が含まれる。
次いで、ルータR3の制御部1は、タイムアウトになったか否かを判定する(ステップS2)。応答待機タイマT3のカウント値が、設定されたタイムアウト時間になった場合、タイムアウトになったと判定される。タイムアウトになっていないと判定された場合(ステップS2:NO)、ステップS3へ進む。一方、タイムアウトになったと判定された場合(ステップS2:YES)、図3(B)に示すメイン処理へ進む。メイン処理の詳細は後述する。
ステップS3では、ルータR3の制御部1は、コマンダCからの応答メッセージが受信されたか否かを判定する。コマンダCからの応答メッセージが受信されていないと判定された場合(ステップS3:NO)、ステップS2に戻る。一方、コマンダCからの応答メッセージが受信されたと判定された場合(ステップS3:YES)、ステップS4へ進む。
ステップS4では、ルータR3の制御部1は、応答メッセージを送信したコマンダCのアドレス情報をコマンダリストに登録する。次いで、ルータR3の制御部1は、応答メッセージを送信したコマンダCから拠点ネットワークNL3を介してキャッシュリストを取得する(ステップS5)。次いで、ルータR3の制御部1は、コマンダCから取得したキャッシュリストに基づいて、ルータR3の記憶部2に記憶されているキャッシュリストを更新し(ステップS6)、ステップS2に戻る。つまり、ルータR3の記憶部2に記憶されているキャッシュリストに、応答メッセージを送信したコマンダCが記憶するコンテンツのコンテンツID、及びこのコマンダCのアドレス情報等が登録される。
次に、図3(B)に示すメイン処理では、ルータR3の制御部1は、コマンダCからの参加要求メッセージが受信されたか否かを判定する。コマンダCからの参加要求メッセージが受信されたと判定された場合(ステップS101:YES)、ステップS102へ進む。ステップS102では、ルータR3の制御部1は、コマンダCの追加処理を実行する。コマンダCの追加処理の詳細は後述する。一方、コマンダCからの参加要求メッセージが受信されていないと判定された場合(ステップS101:NO)、ステップS103へ進む。
ステップS103では、ルータR3の制御部1は、コマンダCからの離脱要求メッセージが受信されたか否かを判定する。コマンダCからの離脱要求メッセージが受信されたと判定された場合(ステップS103:YES)、ステップS104へ進む。ステップS104では、ルータR3の制御部1は、コマンダCの削除処理を実行する。コマンダCの削除処理の詳細は後述する。一方、コマンダCからの離脱要求メッセージが受信されていないと判定された場合(ステップS103:NO)、ステップS105へ進む。
ステップS105では、ルータR3の制御部1は、パブリッシュタイマT1がカウントアップしたか否かを判定する。つまり、パブリッシュタイマT1のカウント値が、設定された開始時間になったか否かが判定される。パブリッシュタイマT1がカウントアップしたと判定された場合(ステップS105:YES)、ステップS106へ進む。ステップS106では、ルータR3の制御部1は、パブリッシュ処理を実行する。パブリッシュ処理の詳細は後述する。一方、パブリッシュタイマT1がカウントアップしていないと判定された場合(ステップS105:NO)、ステップS107へ進む。
ステップS107では、ルータR3の制御部1は、生死監視タイマT2がカウントアップしたか否かを判定する。つまり、生死監視タイマT2のカウント値が、設定された開始時間になったか否かが判定される。生死監視タイマT2がカウントアップしたと判定された場合(ステップS107:YES)、ステップS108へ進む。ステップS108では、ルータR3の制御部1は、コマンダCの生死確認処理を実行する。コマンダCの生死確認処理の詳細は後述する。一方、生死監視タイマT2がカウントアップしていないと判定された場合(ステップS107:NO)、ステップS109へ進む。
ステップS109では、ルータR3の制御部1は、コマンダCからの検索要求メッセージが受信されたか否かを判定する。コマンダCからの検索要求メッセージが受信されたと判定された場合(ステップS109:YES)、ステップS110へ進む。ステップS110では、ルータR3の制御部1は、コンテンツの検索処理を実行する。コンテンツの検索処理の詳細は後述する。一方、コマンダCからの検索要求メッセージが受信されていないと判定された場合(ステップS109:NO)、ステップS111へ進む。
ステップS111では、ルータR3の制御部1は、コマンダCからの送信要求メッセージが受信されたか否かを判定する。コマンダCからの送信要求メッセージが受信されたと判定された場合(ステップS111:YES)、ステップS112へ進む。ステップS112では、ルータR3の制御部1は、コンテンツのアップロード処理を実行する。コンテンツのアップロード処理の詳細は後述する。一方、コマンダCからの送信要求メッセージが受信されていないと判定された場合(ステップS111:NO)、ステップS113へ進む。
ステップS113では、ルータR3の制御部1は、コマンダCから、ルータR以外の宛先へのIPパケットを受信したか否かを判定する。ルータR以外の宛先へのIPパケットを受信したと判定した場合(ステップS113:YES)、制御部1は、受信されたIPパケットを宛先へ転送する(ステップS114)。このIPパケットの転送は、通常のルータによりIPパケットの転送処理と同様である。一方、ルータR以外の宛先へのIPパケットを受信していないと判定した場合(ステップS113:NO)、ステップS115へ進む。
ステップS115では、ルータR3の制御部1は、終了指示があったか否かを判定する。例えばユーザから終了指示があったと判定された場合(ステップS115:YES)、メイン処理が終了する。一方、終了指示がないと判定された場合(ステップS115:NO)、ステップS101に戻る。
(4−2.コマンダCの追加処理)
次に、図4(A)を参照して、コマンダCの追加処理について説明する。図4(A)は、ルータRにおけるコマンダCの追加処理例を示すフローチャートである。図4(A)に示す処理は、上述したメイン処理において、コマンダCから拠点ネットワークNL3を介して参加要求メッセージが受信された場合(ステップS101:YES)に開始される。この参加要求メッセージは、コンテンツ配信システムSへの参加要求を示すメッセージである。例えば、図3(A)に示す処理において、例えばコマンダC5が起動していなかった場合、このコマンダC5から応答メッセージは受信されずタイムアウトになる。しかし、その後、コマンダC5が起動すると、コマンダC5は拠点ネットワークNL3を介してルータR3へ参加要求メッセージを送信することになる。この参加要求メッセージには、このメッセージを送信したコマンダC5のアドレス情報が含まれる。
図4(A)に示す処理が開始されると、ルータR3の制御部1は、参加要求メッセージを送信したコマンダC5のアドレス情報がコマンダリストに登録されているか否かを判定する(ステップS11)。つまり、参加要求メッセージを送信したコマンダC5のエントリがコマンダリストにあるか否かが判定される。コマンダC5のアドレス情報がコマンダリストに登録されていると判定された場合(ステップS11:YES)、メイン処理に戻る。一方、コマンダC5のアドレス情報がコマンダリストに登録されていないと判定された場合(ステップS11:NO)、ステップS12へ進む。ステップS12では、ルータR3の制御部1は、参加要求メッセージを送信したコマンダC5のアドレス情報をコマンダリストに登録する。
次いで、ルータR3の制御部1は、参加要求メッセージを送信したコマンダC5から拠点ネットワークNL3を介してキャッシュリストを取得する(ステップS13)。次いで、ルータR3の制御部1は、コマンダC5から取得したキャッシュリストに基づいて、ルータR3の記憶部2に記憶されているキャッシュリストを更新し(ステップS14)、メイン処理に戻る。こうして、キャッシュリストには、コマンダC5のアドレス情報が追加される。
(4−3.コマンダCの削除処理)
次に、図4(B)を参照して、コマンダCの削除処理について説明する。図4(B)は、ルータRにおけるコマンダCの削除処理例を示すフローチャートである。図4(B)に示す処理は、上述したメイン処理において、例えばコマンダC6から拠点ネットワークNL3を介して離脱要求メッセージが受信された場合(ステップS103:YES)に開始される。この離脱要求メッセージは、コンテンツ配信システムSからの離脱要求を示すメッセージである。この離脱要求メッセージには、このメッセージを送信したコマンダC6のアドレス情報が含まれる。
図4(B)に示す処理が開始されると、ルータR3の制御部1は、離脱要求メッセージを送信したコマンダC6のアドレス情報がコマンダリストに登録されているか否かを判定する(ステップS21)。つまり、離脱要求メッセージを送信したコマンダC6のエントリがコマンダリストにあるか否かが判定される。コマンダC6のアドレス情報がコマンダリストに登録されていないと判定された場合(ステップS21:NO)、メイン処理に戻る。一方、コマンダC6のアドレス情報がコマンダリストに登録されていると判定された場合(ステップS21:YES)、ステップS22へ進む。ステップS22では、ルータR3の制御部1は、離脱要求メッセージを送信したコマンダC6のアドレス情報をコマンダリストから削除する。
次いで、ルータR3の制御部1は、キャッシュリストからコンテンツのエントリを一つ特定する(ステップS23)。ここで特定されたエントリには、特定されたことを示す情報が付与される。次いで、ルータR3の制御部1は、ステップS23で特定したエントリにおける所有コマンダ情報に、離脱要求メッセージを送信したコマンダC6のアドレス情報が含まれるか否かを判定する(ステップS24)。ステップS23で特定されたエントリにおける所有コマンダ情報にコマンダC6のアドレス情報が含まれないと判定された場合(ステップS24:NO)、ステップS29へ進む。一方、ステップS23で特定されたエントリにおける所有コマンダ情報にコマンダC6のアドレス情報が含まれると判定された場合(ステップS24:YES)、ステップS25へ進む。
ステップS25では、ルータR3の制御部1は、ステップS23で特定したエントリにおける所有コマンダ情報から、離脱要求メッセージを送信したコマンダC6のアドレス情報を削除する。次いで、ルータR3の制御部1は、ステップS23で特定したエントリにおける所有コマンダ情報が空であるか否かを判定する(ステップS26)。ここで、所有コマンダ情報が空であるとは、所有コマンダ情報に、アドレス情報が一つも含まれないことを意味する。ステップS23で特定されたエントリにおける所有コマンダ情報が空であると判定された場合(ステップS26:YES)、ステップS27へ進む。一方、ステップS23で特定されたエントリにおける所有コマンダ情報が空でないと判定された場合(ステップS26:NO)、ステップS29へ進む。
ステップS27では、ルータR3の制御部1は、ステップS23で特定したエントリをキャッシュリストから削除する。次いで、ルータR3の制御部1は、削除通知メッセージを、オーバーレイネットワークONを介してルートノードへ送信する(ステップS28)。このルートノードは、ステップS23で削除されたエントリに含まれるコンテンツIDが示すコンテンツの所在を管理するノードNである。この削除通知メッセージには、ステップS23で削除したエントリに含まれるコンテンツID、及びルータR3のアドレス情報が含まれる。削除通知メッセージは、この削除通知メッセージに含まれるコンテンツIDをキーとしてDHTルーティングによりルートノードへ送信される。そして、削除通知メッセージを受信したルートノードは、このメッセージ含まれるコンテンツID及びルータR3のアドレス情報をインデックス情報から削除することになる。
ステップS29では、ルータR3の制御部1は、キャッシュリストにおいてまだ特定していないエントリがあるか否かを判定する。まだ特定していないエントリがあると判定された場合(ステップS29:YES)、ステップS23に戻る。ステップS23に戻ると、ルータR3の制御部1は、キャッシュリストからまだ特定されていないエントリを一つ特定し、ステップS24以降の処理を行う。一方、特定していないエントリがないと判定された場合(ステップS29:NO)、メイン処理に戻る。
なお、上記ステップS23〜ステップS29の処理は実行されないように構成してもよい。これにより、処理時間を短縮することができる。
(4−4.パブリッシュ処理)
次に、図5(A)を参照して、パブリッシュ処理について説明する。図5(A)は、ルータRにおけるパブリシュ処理例を示すフローチャートである。図5(A)に示す処理は、上述したメイン処理において、パブリッシュタイマT1がカウントアップした場合(ステップS105:YES)に開始される。図5(A)に示す処理が開始されると、ルータR3の制御部1は、キャッシュリストのパブリッシュポインタがNULLであるか否かを判定する(ステップS31)。パブリッシュポインタとは、パブリッシュ処理の対象となるコンテンツのエントリを指し示すポインタである。パブリッシュポインタがキャシュリストにおける何れかのエントリを指す場合、パブリッシュポインタがNULLでないと判定され(ステップS31:NO)、ステップS33へ進む。一方、パブリッシュポインタがNULLであると判定された場合(ステップS31:YES)、ステップS32へ進む。ステップS32では、ルータR3の制御部1は、キャッシュリストにおける先頭のエントリをパブリッシュポインタに設定し、ステップS33へ進む。
ステップS33では、ルータR3の制御部1は、パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達したか否かを判定する。パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達していないと判定された場合(ステップS33:NO)、ステップS34へ進む。一方、パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達したと判定された場合(ステップS33:YES)、メイン処理に戻る。このように、1回のパブリッシュ処理で対象とするエントリ数を制限することで、ネットワークNWの負荷を低減することができる。
ステップS34では、ルータR3の制御部1は、パブリッシュポインタが指しているエントリからコンテンツIDを取得する。次いで、ルータR3の制御部1は、パブリッシュメッセージを、オーバーレイネットワークONを介してルートノードへ送信する(ステップS35)。このルートノードは、ステップS34で取得されたコンテンツIDが示すコンテンツの所在を管理するノードNである。このパブリッシュメッセージには、ステップS34で取得したコンテンツID、及びルータR3のアドレス情報が含まれる。これにより、パブリッシュメッセージに含まれるルータR3のアドレス情報及びコンテンツIDを含むインデックス情報がルートノードに記憶される。次いで、ルータR3の制御部1は、パブリッシュポインタをキャッシュリストの次のエントリに変更し(ステップS36)、ステップS33に戻る。
(4−5.コマンダCの生死確認処理)
次に、図5(B)を参照して、コマンダCの生死確認処理について説明する。図5(B)は、ルータRにおけるコマンダCの生死確認処理例を示すフローチャートである。図5(B)に示す処理は、上述したメイン処理において、生死監視タイマT2がカウントアップした場合(ステップS107:YES)に開始される。図5(B)に示す処理が開始されると、ルータR3の制御部1は、コマンダリストからコマンダのエントリを一つ特定する(ステップS41)。次いで、ルータR3の制御部1は、ステップS41で特定したエントリからコマンダCのアドレス情報を取得する(ステップS42)。
次いで、ルータR3の制御部1は、ステップS42で取得したアドレス情報に従って、ステータス要求パケットを、拠点ネットワークNL3を介してコマンダCへ送信する(ステップS43)。ステータス要求パケットは、コマンダCの状態を確認するための確認要求の一例である。なお、ルータR3の制御部1は、ステータス要求パケットを送信した時に、応答待機タイマT4のカウントを開始する。応答待機タイマT4は、ステータス要求パケットに対する応答のタイムアウト時間を設定するものである。このタイムアウト時間は所定時間の一例である。ステータス要求パケットを受信したコマンダCは、拠点ネットワークNL3を介してルータR3へ応答メッセージを送信することになる。この応答メッセージには、このメッセージを送信したコマンダCのアドレス情報が含まれる。
次いで、ルータR3の制御部1は、コマンダCからの応答メッセージが受信されたか否かを判定する(ステップS44)。コマンダCからの応答メッセージが受信されていないと判定された場合(ステップS44:NO)、ステップS45へ進む。一方、コマンダCからの応答メッセージが受信されたと判定された場合(ステップS44:YES)、ステップS47へ進む。
ステップS45では、ルータR3の制御部1は、タイムアウトになったか否かを判定する。応答待機タイマT4のカウント値が、設定されたタイムアウト時間になった場合、タイムアウトになったと判定される。タイムアウトになっていないと判定された場合(ステップS45:NO)、ステップS44に戻る。一方、タイムアウトになったと判定された場合(ステップS45:YES)、ステップS46へ進む。ステップS46では、ルータR3の制御部1は、図4(B)に示すコマンダCの削除処理を実行し、ステップS47へ進む。つまり、ルータR3の制御部1は、ステータス要求パケットの送信から、設定されたタイムアウト時間以内にステータス要求パケットに対する応答がコマンダCから受信されない場合、このコマンダCのアドレス情報をコマンダリストから削除する。これにより、ルータR3は、ルータR3の配下にあるコマンダCを正確に管理することができる。
ステップS47では、ルータR3の制御部1は、コマンダリストにおいてまだ特定していないエントリがあるか否かを判定する。まだ特定していないエントリがあると判定された場合(ステップS47:YES)、ステップS41に戻る。ステップS41に戻ると、ルータR3の制御部1は、コマンダリストからまだ特定されていないエントリを一つ特定し、ステップS42以降の処理を行う。一方、特定していないエントリがないと判定された場合(ステップS47:NO)、メイン処理に戻る。
(4−6.コンテンツの検索処理)
次に、図6(A)を参照して、コンテンツの検索処理について説明する。図6(A)は、ルータRにおけるコンテンツの検索処理例を示すフローチャートである。図6(A)に示す処理は、上述したメイン処理において、例えばコマンダC5から拠点ネットワークNL3を介してコンテンツTの検索要求メッセージが受信された場合(ステップS109:YES)に開始される。この検索要求メッセージには、検索対象のコンテンツTのコンテンツIDが含まれる。図6(A)に示す処理が開始されると、ルータR3の制御部1は、受信された検索要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されているか否かを判定する(ステップS51)。つまり、検索要求メッセージに含まれるコンテンツIDを含むエントリがキャッシュリストにあるか否かが判定される。検索要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されていると判定された場合(ステップS51:YES)、ステップS52へ進む。一方、検索要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されていないと判定された場合(ステップS51:NO)、ステップS53へ進む。
ステップS52では、ルータR3の制御部1は、ルータR3のアドレス情報を含む検索結果メッセージを、拠点ネットワークNL3を介してコマンダC5へ送信し、メイン処理に戻る。つまり、ルータR3のアドレス情報が、検索対象のコンテンツTを提供可能なノードNのアドレス情報として、検索要求の送信元のコマンダC5へ提供される。
ステップS53では、ルータR3の制御部1は、受信された検索要求メッセージを、オーバーレイネットワークONを介してルートノードへ送信する。このルートノードは、検索要求メッセージに含まれるコンテンツIDが示すコンテンツTの所在を管理するノードNである。そして、検索要求メッセージを受信したルートノードは、検索要求メッセージに含まれるコンテンツIDを含むインデックス情報を記憶部2から検索する。この検索によりインデックス情報が発見された場合、ルートノードは、発見されたインデックス情報を含む検索結果メッセージを、基幹ネットワークNWを介してルータR3へ返信する。このインデックス情報には、例えばルータR5のアドレス情報が含まれる。つまり、この場合、ルータR5のアドレス情報が、検索対象のコンテンツTを提供可能なノードNのアドレス情報として、検索要求の送信元のコマンダC5へ提供される。一方、上記検索によりインデックス情報が発見されない場合、ルートノードは、インデックス情報を発見できなかったことを示す検索結果メッセージを、基幹ネットワークNWを介してルータR3へ返信する。
ステップS54では、ルータR3の制御部1は、ルートノードから送信された検索結果メッセージを受信する。そして、ルータR3の制御部1は、受信した検索結果メッセージを、拠点ネットワークNL3を介して検索要求の送信元のコマンダC5へ送信し(ステップS55)、メイン処理に戻る。
(4−7.コンテンツのアップロード処理)
次に、図6(B)を参照して、コンテンツのアップロード処理について説明する。図6(B)は、ルータRにおけるコンテンツのアップロード処理例を示すフローチャートである。図6(B)に示す処理は、上述したメイン処理において、コマンダCからコンテンツTの送信要求メッセージが受信された場合(ステップS111:YES)に開始される。例えばコマンダC5は、ルータR3から受信した検索結果メッセージにアドレス情報が含まれるか否か判定する。検索結果メッセージに例えばルータR3のアドレス情報が含まれる場合がある。この場合、コマンダC5は、コンテンツTの送信要求メッセージを、拠点ネットワークNL3を介してルータR3へ送信する。或いは、検索結果メッセージに例えばルータR5のアドレス情報が含まれる場合がある。この場合、コマンダC5は、コンテンツTの送信要求メッセージを、拠点ネットワークNL3及びルータR3を介してルータR5へ送信する。つまり、この場合、コマンダC5からの送信要求メッセージは、ルータR3の中継機能により中継されることで基幹ネットワークNWを介してルータR5へ送信されることになる。或いは、検索結果メッセージがインデックス情報を発見できなかったことを示す場合がある。この場合、コマンダC5は、コンテンツTの送信要求メッセージを、拠点ネットワークNL3及びルータR3を介してセンターサーバSAへ送信する。これにより、送信要求されたコンテンツTは、センターサーバSAからコマンダC5にダウンロードされる。
例えばルータR3またはルータR5の制御部1は、図6(B)に示す処理を開始すると、送信要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されているか否かを判定する(ステップS61)。つまり、送信要求メッセージに含まれるコンテンツIDを含むエントリがキャッシュリストにあるか否かが判定される。送信要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されていないと判定された場合(ステップS61:NO)、ステップS62へ進む。一方、送信要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されていると判定された場合(ステップS61:YES)、ステップS64へ進む。
ステップS62では、ルータR3の制御部1は、コンテンツTを提供できないことを示すエラーメッセージを、拠点ネットワークNL3を介して送信要求元のコマンダC5へ送信する。或いは、ルータR5の制御部1は、上記エラーメッセージを、基幹ネットワークNW及びルータR3を介して送信要求元のコマンダC5へ送信する。次いで、ルータR3またはルータR5の制御部1は、削除通知メッセージを、オーバーレイネットワークONを介してルートノードへ送信し(ステップS63)、メイン処理に戻る。この削除通信メッセージを受信したルートノードは、このメッセージ含まれるコンテンツID及びルータR3またはルータR5のアドレス情報をインデックス情報から削除することになる。
ステップS64では、ルータR3またはルータR5の制御部1は、送信要求されたコンテンツTを記憶するコマンダCのリストLを作成する。例えば制御部1は、送信要求メッセージに含まれるコンテンツIDに対応付けられたアドレス情報をキャッシュリストから取得する。そして、制御部1は、取得したアドレス情報を登録するリストLを作成する。なお、コマンダCのリストLに複数のアドレス情報が登録される場合がある。この場合、リストLにおけるアドレス情報の順番は例えばランダムに決定される。
次いで、ルータR3またはルータR5の制御部1は、ステップS64で作成したリストLが空であるか否かを判定する(ステップS65)。ここで、リストLが空であるとは、リストLに、アドレス情報が一つも含まれないことを意味する。リストLが空であると判定された場合(ステップS65:YES)、ステップS62へ移行する。一方、リストLが空でないと判定された場合(ステップS65:NO)、ステップS66へ進む。
ステップS66では、ルータR3またはルータR5の制御部1は、リストLに登録されたアドレス情報のうち順番が先頭のアドレス情報を取得し、且つ取得したアドレス情報をリストLから削除する。次いで、ルータR3またはルータR5の制御部1は、取得したアドレス情報に従ってコンテンツTの送信要求メッセージを、拠点ネットワークNLを介して同じ拠点P内のコマンダCへ送信する(ステップS67)。コンテンツTの送信要求メッセージを受信したコマンダCは、送信要求されたコンテンツTが記憶部12に記憶されているか否かを判定する。コンテンツTが記憶部12に記憶されている場合、コマンダCは、記憶部12からコンテンツTを取得してルータR3またはルータR5へ送信する。一方、コンテンツTが記憶部12に記憶されていない場合、コマンダCは、コンテンツTを提供できないことを示すエラーメッセージを、拠点ネットワークNLを介してルータR3またはルータR5へ送信する。
次いで、ルータR3またはルータR5の制御部1は、コンテンツTの取得が成功したか否かを判定する(ステップS68)。コマンダCから拠点ネットワークNLを介してコマンダCからコンテンツTが受信された場合、制御部1は、コンテンツTの取得が成功したと判定し(ステップS68:YES)、ステップS69へ進む。一方、コマンダCからエラーメッセージが送信されコンテンツTが受信されない場合、制御部1は、コンテンツTの取得が成功しないと判定し(ステップS68:NO)、ステップS65に戻る。ステップS65に戻ると、上記と同様の処理が行われる。
ステップS69では、ルータR3の制御部1は、ステップS68でコマンダCから取得したコンテンツTを、拠点ネットワークNL3を介して送信要求元のコマンダC5へ送信し、メイン処理に戻る。或いは、ルータR5の制御部1は、コマンダCから取得したコンテンツTを、基幹ネットワークNW及びルータR3を介して送信要求元のコマンダC5へ送信し、メイン処理に戻る。つまり、この場合、ルータR5からのコンテンツは、ルータR3の中継機能により中継されることでコマンダC5へ送信される。
(4−8.コンテンツのアップロード処理の応用例)
次に、図7(A)〜(C)を参照して、コンテンツのアップロード処理の応用例について説明する。図7(A)は、コンテンツのアップロードを受けるコマンダCの処理例を示すフローチャートである。図7(B)は、ルータRにおける許可通知処理例を示すフローチャートである。図7(C)は、ルータRにおけるダウンロード完了処理例を示すフローチャートである。なお、アップロード処理の応用例では、図3に示すメイン処理に、コンテンツのダウンロードの開始許可要求メッセージの受信を判定する処理、及びダウンロード完了メッセージの受信を判定する処理が追加される。
先ず、図7(A)に示す処理は、例えばコマンダC5がルータR3から送信された検索結果メッセージが受信された場合に開始される。図7(A)に示す処理が開始されると、例えばコマンダC5の制御部11は、受信した検索結果メッセージにアドレス情報が含まれるか否か判定する(ステップS71)。検索結果メッセージにアドレス情報が含まれないと判定された場合(ステップS71:NO)、ステップS72へ進む。一方、検索結果メッセージにアドレス情報が含まれると判定された場合(ステップS71:YES)、ステップS76へ進む。
ステップS72では、コマンダC5の制御部11は、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へコンテンツTのダウンロードの開始許可要求メッセージを送信する。ダウンロードの開始許可要求メッセージは、同じ拠点P3内のルータRに対してダウンロードの開始許可要求を示すメッセージである。この開始許可要求メッセージには、コンテンツTのコンテンツIDが含まれる。次いで、コマンダC5の制御部11は、ダウンロードの開始許可メッセージを受信したか否かを判定する(ステップS73)。ダウンロードの開始許可メッセージを受信したと判定された場合(ステップS73:YES)、ステップS74へ進む。この開始許可メッセージには、コンテンツTのコンテンツIDが含まれる。一方、ダウンロードの開始許可メッセージを受信していないと判定された場合(ステップS73:NO)、コマンダC5の制御部11は、例えばタイムアウトになるまでステップS73の処理を所定時間間隔で繰り返す。そして、タイムアウトになった場合、例えば図7(A)に示す処理が終了する。
ステップS74では、コマンダC5の制御部11は、コンテンツTの送信要求メッセージをセンターサーバSAへ送信する。そして、コマンダC5の制御部11は、センターサーバSAから送信されたコンテンツTを受信する(ステップS75)。こうして、コンテンツTのダウンロードが完了すると、ステップS80へ進む。
ステップS76では、コマンダC5の制御部11は、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へコンテンツTのダウンロードの開始許可要求メッセージを送信する。次いで、コマンダC5の制御部11は、ダウンロードの開始許可メッセージを受信したか否かを判定する(ステップS77)。ダウンロードの開始許可メッセージを受信したと判定された場合(ステップS77:YES)、ステップS78へ進む。一方、ダウンロードの開始許可メッセージを受信していないと判定された場合(ステップS77:NO)、コマンダC5の制御部11は、例えばタイムアウトになるまでステップS77の処理を所定時間間隔で繰り返す。そして、タイムアウトになった場合、例えば図7(A)に示す処理が終了する。
ステップS78では、コマンダC5の制御部11は、検索結果メッセージに含まれる例えばルータR5のアドレス情報に従って、コンテンツTの送信要求メッセージをルータR5へ送信する。そして、コマンダC5の制御部11は、ルータR5から送信されたコンテンツTを受信する(ステップS79)。このように、コマンダC5は、ルータR5の許可を得てからダウンロード処理を行う。そのため、ルータR3は、ネットワークNWにおけるダウンロード帯域の制御と、ダウンロード中のコンテンツを優先する制御を実現することができる。こうして、コンテンツTのダウンロードが完了すると、ステップS80へ進む。
ステップS80では、コマンダC5の制御部11は、コンテンツTのダウンロード完了メッセージを、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へ送信する。このダウンロード完了メッセージには、コンテンツTのコンテンツIDが含まれる。
一方、図7(B)に示す処理は、上述したメイン処理において、例えばコマンダC5からダウンロードの開始許可要求メッセージが受信された場合に開始される。図7(B)に示す処理が開始されると、例えばルータR3の制御部11は、ダウンロード実行中のコマンダ数を参照する(ステップS81)。次いで、ルータR3の制御部11は、ダウンロード実行中のコマンダ数が所定数以下であるか否かを判定する(ステップS82)。ここで、所定数は、例えばネットワークNWの帯域に応じて決定される。これにより、コンテンツTのダウンロード速度を高めることができる。ダウンロード実行中のコマンダ数が所定数以下でないと判定された場合(ステップS82:NO)、ステップS81に戻る。一方、ダウンロード実行中のコマンダ数が所定数以下であると判定された場合(ステップS82:YES)、ステップS83へ進む。ステップS83では、ルータR3の制御部11は、ダウンロードの開始許可メッセージをコマンダC5へ送信する。このように構成することで、ルータR3は、ネットワークNWにおけるダウンロード帯域を一定量に制御することができる。また、ルータR3は、ダウンロード中のコンテンツを優先することができる。次いで、ルータR3の制御部11は、ダウンロード実行中のコマンダ数を更新し(ステップS84)、メイン処理に戻る。例えば、ダウンロード実行中のコマンダ数が1加算される。
一方、図7(C)に示す処理は、上述したメイン処理において、例えばコマンダC5からダウンロード完了メッセージが受信された場合に開始される。図7(C)に示す処理が開始されると、例えばルータR3の制御部11は、ダウンロード実行中のコマンダ数を更新する(ステップS91)。例えば、ダウンロード実行中のコマンダ数が1減算される。次いで、ルータR3の制御部11は、キャッシュリストにコンテンツTのエントリがあるか否かを判定する(ステップS92)。キャッシュリストにコンテンツTのエントリがないと判定された場合(ステップS92:NO)、ステップS93に進む。一方、キャッシュリストにコンテンツTのエントリがあると判定された場合(ステップS92:YES)、ステップS94へ進む。ステップS93では、ルータR3の制御部11は、キャッシュリストにコンテンツTのエントリを追加し、ステップS94へ進む。ステップS94では、ルータR3の制御部11は、コンテンツTのエントリにおける所有コマンダ情報に、コマンダC5のアドレス情報を追加する。つまり、コンテンツTをダウンロードしたコマンダC5のアドレス情報がキャッシュリストに登録される。次いで、ルータR3の制御部11は、パブリッシュメッセージを、オーバーレイネットワークONを介してコンテンツTの所在を管理するルートノードへ送信し(ステップS95)、メイン処理に戻る。このパブリッシュメッセージには、コンテンツTのコンテンツID、及びルータR3のアドレス情報が含まれる。これにより、パブリッシュメッセージに含まれるコンテンツID、及びルータR3のアドレス情報を含むインデックス情報がルートノードに記憶される。
以上説明したように、上記実施形態によれば、ネットワーク間でデータを中継する中継機能を有するルータRは、このルータRの配下にあるコマンダCが記憶するコンテンツを提供可能であることをオーバーレイネットワークON上でパブリッシュする。そして、ルータRは、コマンダCから検索要求されたコンテンツの所在をオーバーレイネットワークON上で検索し、その検索結果をコマンダCへ送信する。これにより、ルータRのメモリ容量を低減し、且つシステムのセキュリティを向上させることができる。つまり、ルータRがコンテンツのアップロードを行うためコマンダCは、基幹ネットワークNW側に常時ポート開放する必要がない。その結果、基幹ネットワークNW側から攻撃を受けるリスクを抑制することができる。また、コンテンツの保存先がコマンダCの記憶部12になるため、ルータRに大容量のHDD等の記憶装置を搭載する必要がなくなる。その結果、ルータRの部品コストを削減することができる。さらに、ルータRがコンテンツのアップロード数、ダウンロード数を集中管理することで安定した通信を実現することができる。
なお、上記実施形態においては、オーバーレイネットワークONに、DHTを利用したピアツーピアネットワークを適用したが、これに限られるものではない。例えば、他のオーバーレイネットワークを用いたシステムが適用されてもよい。DHTを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。
R ルータ
N ノード
NL 拠点ネットワーク
NW 基幹ネットワーク
ON オーバーレイネットワーク
S コンテンツ配信システム

Claims (6)

  1. 第1のネットワークと第2のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置において、
    前記中継装置が接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得する第1取得手段と、
    前記第1取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第1記憶手段と、
    前記第1記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第1送信手段と、
    コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークに接続されている端末装置から前記第2のネットワークを介して受信する第1受信手段と、
    前記第1受信手段により受信された前記識別情報が前記第1記憶手段に記憶されているかを判定する判定手段と、
    前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第2送信手段と、
    前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信する第2受信手段と、
    前記第2受信手段により受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第3送信手段と、
    前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継手段と、
    前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継手段と、
    を備え
    前記第2中継手段は、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする中継装置。
  2. 前記識別情報が前記第1記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを提供可能なノード装置の所在を示す所在情報として前記中継装置の所在を示す所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第4送信手段を更に備えることを特徴とする請求項1に記載の中継装置。
  3. 前記コンテンツの識別情報が送信された前記端末装置の前記所在情報を前記第1記憶手段から取得する第2取得手段と、
    前記第2取得手段により取得された前記所在情報に従って、前記端末装置の状態を確認するための確認要求を、前記第2のネットワークを介して前記端末装置へ送信する第5送信手段と、
    前記確認要求の送信から所定時間以内に前記確認要求に対する応答が前記端末装置から受信されない場合、前記端末装置の前記所在情報を前記第1記憶手段から削除する削除手段と、
    を備えることを特徴とする請求項1または2に記載の中継装置。
  4. 第1のネットワークと第2のネットワークとの間でデータを中継する中継機能を備え、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加するコンピュータに、
    前記コンピュータが接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得するステップと、
    前記取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶手段に記憶させるステップと、
    前記記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信するステップと、
    コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークに接続されている端末装置から前記第2のネットワークを介して受信するステップと、
    前記受信された前記識別情報が前記記憶手段に記憶されているかを判定するステップと、
    前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ転送するステップと、
    前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信するステップと、
    前記受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信するステップと、
    前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継ステップと、
    前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継ステップと、
    を実行し、
    前記第2中継ステップでは、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とするプログラム。
  5. 第1のネットワークと第2のネットワークとの間でデータを中継する中継装置であって、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加する中継装置と、前記第2のネットワークに接続された端末装置と、を備える通信システムにおいて、
    前記中継装置は、
    前記中継装置が接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得する第1取得手段と、
    前記第1取得手段により取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶する第1記憶手段と、
    前記第1記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信する第1送信手段と、
    を備え、
    前記端末装置は、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークを介して前記中継装置へ送信する第6送信手段を備え、
    前記中継装置は、
    前記端末装置から送信された前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを前記第2のネットワークを介して受信する第1受信手段と、
    前記第1受信手段により受信された前記識別情報が前記第1記憶手段に記憶されているかを判定する判定手段と、
    前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ送信する第2送信手段と、
    前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信する第2受信手段と、
    前記第2受信手段により受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第3送信手段と、
    を備え、
    前記端末装置は、
    前記中継装置から送信された前記所在情報を前記第2のネットワークを介して受信する第3受信手段と、
    前記中継装置に接続するために一時的にポートを開き、セッションが完了するとポートを閉じるポート開閉手段と、
    前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求を送信する第9送信手段と、
    を備え
    前記中継装置は、
    前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継手段と、
    前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継手段と、
    を備え
    前記第2中継手段は、前記セッション中に一時的に開かれた前記送信要求の送信元の端末装置の前記ポートに対して前記コンテンツを中継し、
    前記ポート開閉手段は、前記セッションが完了すると前記ポートを閉じることを特徴とする通信システム。
  6. 前記端末装置は、
    前記オーバーレイネットワークに参加する参加手段と、
    前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを、前記オーバーレイネットワークに参加する前記ノード装置へ前記第2ネットワークを介して送信する第7送信手段と、
    前記検索対象のコンテンツを提供可能な前記ノード装置の所在を示す所在情報を、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第4受信手段と、
    前記第4受信手段により受信された前記所在情報に従って、前記検索対象のコンテンツの送信要求を、前記第2のネットワーク及び前記中継装置を介して前記検索対象の前記コンテンツを提供可能な前記ノード装置へ送信する第8送信手段と、
    前記送信要求されたコンテンツを、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第5受信手段と、
    前記第5受信手段により受信されたコンテンツを記憶する第2記憶手段と、
    前記第2記憶手段に記憶されたコンテンツの識別情報と、前記端末装置の所在を示す所在情報を前記コンテンツの所在を管理するノード装置に送信する機能をロックする制御手段と、
    を備えることを特徴とする請求項に記載の通信システム。
JP2013180239A 2013-08-30 2013-08-30 中継装置、プログラム及び通信システム Active JP5907132B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013180239A JP5907132B2 (ja) 2013-08-30 2013-08-30 中継装置、プログラム及び通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013180239A JP5907132B2 (ja) 2013-08-30 2013-08-30 中継装置、プログラム及び通信システム

Publications (2)

Publication Number Publication Date
JP2015049642A JP2015049642A (ja) 2015-03-16
JP5907132B2 true JP5907132B2 (ja) 2016-04-20

Family

ID=52699626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013180239A Active JP5907132B2 (ja) 2013-08-30 2013-08-30 中継装置、プログラム及び通信システム

Country Status (1)

Country Link
JP (1) JP5907132B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898232B2 (en) * 2006-11-29 2014-11-25 Thomson Licensing Contribution aware peer-to-peer live streaming service
JP2009070172A (ja) * 2007-09-13 2009-04-02 Brother Ind Ltd コンテンツ分散保存システム、提供元サーバ装置登録方法、ノード装置、及びノード処理プログラム
JP5359728B2 (ja) * 2009-09-17 2013-12-04 ブラザー工業株式会社 カラオケシステム、カラオケ装置、ノード装置、カラオケプログラム、ノードプログラム、及びカラオケデータ送信方法
JP5218356B2 (ja) * 2009-09-24 2013-06-26 ブラザー工業株式会社 情報通信システム、情報通信方法、サポート装置及び情報通信処理プログラム
JP5136581B2 (ja) * 2010-03-23 2013-02-06 ブラザー工業株式会社 情報通信システム、情報処理装置、情報処理方法、及び情報処理プログラム

Also Published As

Publication number Publication date
JP2015049642A (ja) 2015-03-16

Similar Documents

Publication Publication Date Title
US8015269B2 (en) Node device, shared information update processing program, shared information update method, and information sharing system
US20070283043A1 (en) Information delivery system, delivery request program, transfer program, delivery program, and the like
JP5556104B2 (ja) 情報通信システム、情報通信方法及び情報通信プログラム
WO2007083531A1 (ja) コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラムを記録した記録媒体
JP2006191489A (ja) ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等
CN110557439B (zh) 一种网络内容管理方法及区块链内容网络平台
JP2013542681A (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
WO2007086250A1 (ja) 情報配信システム、再登録メッセージ送信方法、ノード装置、及びノード処理プログラムを記録した記録媒体
JP5293533B2 (ja) 情報通信システム及び情報通信方法
JP5136581B2 (ja) 情報通信システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP5532649B2 (ja) ノード装置、ノード処理プログラム及びコンテンツ保存方法
JP5272991B2 (ja) 情報通信システム、情報通信方法及びプログラム
EP2802108A9 (en) Data-oriented communication system, node, and data transfer method
JP5394704B2 (ja) 情報通信システム、及びソフトウェア更新方法
JP5212292B2 (ja) 情報通信システム、ノード装置、ノード装置確認方法及びプログラム
JP5907132B2 (ja) 中継装置、プログラム及び通信システム
US8312068B2 (en) Node device, information communication system, method for managing content data, and computer readable medium
JP5494550B2 (ja) 管理装置、管理システム、管理方法及び管理プログラム
JP5359728B2 (ja) カラオケシステム、カラオケ装置、ノード装置、カラオケプログラム、ノードプログラム、及びカラオケデータ送信方法
JP2009187101A (ja) コンテンツ分散保存システム、評価値加算方法、サーバ装置、ノード装置、及びノード処理プログラム
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
JP5434268B2 (ja) 分散保存システム、データファイル分散保存方法及びプログラム
JP2011008657A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム
JP5494361B2 (ja) 分散保存システム、代表ノード装置、通知方法及びプログラム
JP2010122925A (ja) ノード装置、ノード処理プログラム及びログ収集方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160307

R150 Certificate of patent or registration of utility model

Ref document number: 5907132

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150