JP5907132B2 - Relay device, program, and communication system - Google Patents

Relay device, program, and communication system 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
Japanese (ja)
Other versions
JP2015049642A (en
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/en
Publication of JP2015049642A publication Critical patent/JP2015049642A/en
Application granted granted Critical
Publication of JP5907132B2 publication Critical patent/JP5907132B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)

Description

複数のノード装置により構成されるオーバーレイネットワークにノード装置として参加するルータ等の技術分野に関する。   The present invention relates to a technical field such as a router that participates in an overlay network composed of a plurality of node devices as node devices.

従来、カラオケコンテンツを再生する複数のコマンダを備えるカラオケシステムが知られている。例えば特許文献1に開示されたカラオケシステムは、各拠点に構築されたLAN(Local Area Network)に接続された複数のコマンダと、LAN及びWAN(Wide Area Network)に接続されたルータと、を備えている。このカラオケシステムでは、複数のコマンダの中から決定された代表コマンダがオーバーレイネットワークに参加可能になっている。オーバーレイネットワークに参加した代表コマンダは、他の拠点の代表コマンダへルータ及びWANを介してカラオケコンテンツを要求することでカラオケコンテンツを取得するように構成されている。   Conventionally, a karaoke system including a plurality of commanders for reproducing karaoke contents is known. For example, a karaoke system disclosed in Patent Document 1 includes a plurality of commanders connected to a LAN (Local Area Network) constructed at each base, and a router connected to a LAN and a WAN (Wide Area Network). ing. In this karaoke system, representative commanders determined from a plurality of commanders can participate in the overlay network. The representative commander participating in the overlay network is configured to obtain karaoke content by requesting karaoke content from the representative commander at another base via the router and the WAN.

特開2011−64975号公報JP 2011-64975 A

ところで、特許文献1では、ルータはカラオケコンテンツを保存しないため、ルータのメモリ容量を低減することができる。しかしながら、各拠点の代表コマンダは、他の代表コマンダからWANを介してカラオケコンテンツの要求を受け付けるためのポートを開いている。そのため、代表コマンダがWAN側から攻撃される恐れがあり、システムのセキュリティ上、好ましくない。   By the way, in Patent Document 1, since the router does not store karaoke content, the memory capacity of the router can be reduced. However, the representative commander at each base opens a port for receiving a request for karaoke content from another representative commander via the WAN. Therefore, the representative commander may be attacked from the WAN side, which is not preferable in terms of system security.

本発明は、以上の点に鑑みてなされたものであり、ルータのメモリ容量を低減し、且つシステムのセキュリティを向上させることが可能な中継装置、プログラム及び通信システムを提供する。   The present invention has been made in view of the above points, and provides a relay device, a program, and a communication system capable of reducing the memory capacity of a router and improving the security of the system.

上記課題を解決するために、請求項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中継手段は、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする。 In order to solve the above problem, the invention according to claim 1 is a relay device that relays data between a first network and a second network, and is connected to at least the first network. In a relay device that participates in an overlay network composed of a plurality of node devices as the node device, content identification information stored in a terminal device connected to the second network to which the relay device is connected, Corresponding to the first acquisition means acquired from the terminal device via the second network, the identification information acquired by the first acquisition means, and the location information indicating the location of the terminal device that transmitted the identification information First storage means for storing information, the identification information stored in the first storage means, and location information indicating the location of the relay device; First transmission means for transmitting to the node device that manages the location of the content via the overlay network, a content search request, and identification information of the content to be searched are connected to the second network. First receiving means for receiving from the terminal device via the second network, determining means for determining whether the identification information received by the first receiving means is stored in the first storage means, A second transmission unit configured to transmit the search request and the identification information of the content to be searched to another node device via the overlay network when it is determined that identification information is not stored; The location information indicating the location of the other node device that can provide the content of the other is transmitted to the other node device via the first network. Second receiving means for receiving from the terminal device, and third transmitting means for transmitting the location information received by the second receiving means to the terminal device that is the transmission source of the search request via the second network. And a transmission request for the content addressed to another node device capable of providing the search target content, the transmission request transmitted from the terminal device via the second network to the second network. First relay means for relaying between the first network and the first network, and the content addressed to the terminal device that is the transmission source of the transmission request and transmitted from the other node device via the first network Second relay means for relaying the content between the first network and the second network , wherein the second relay means It characterized that you relays the content to the port of the transmission source terminal device temporarily opened the transmission request.

請求項2に記載の発明は、請求項1に記載の中継装置において、前記識別情報が前記第1記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを提供可能なノード装置の所在を示す所在情報として前記中継装置の所在を示す所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第4送信手段を更に備えることを特徴とする。   According to a second aspect of the present invention, in the relay device according to the first aspect, when it is determined that the identification information is stored in the first storage unit, the node device capable of providing the search target content And further comprising: fourth transmission means for transmitting the location information indicating the location of the relay device as location information indicating the location of the search request to the terminal device that is the transmission source of the search request via the second network. .

請求項に記載の発明は、請求項1または2に記載の中継装置において、前記コンテンツの識別情報が送信された前記端末装置の前記所在情報を前記第1記憶手段から取得する第2取得手段と、前記第2取得手段により取得された前記所在情報に従って、前記端末装置の状態を確認するための確認要求を、前記第2のネットワークを介して前記端末装置へ送信する第5送信手段と、前記確認要求の送信から所定時間以内に前記確認要求に対する応答が前記端末装置から受信されない場合、前記端末装置の前記所在情報を前記第1記憶手段から削除する削除手段と、を備えることを特徴とする。 According to a third aspect of the present invention, in the relay device according to the first or second aspect, the second acquisition unit acquires the location information of the terminal device to which the content identification information has been transmitted from the first storage unit. And a fifth transmission means for transmitting a confirmation request for confirming the state of the terminal device to the terminal device via the second network according to the location information acquired by the second acquisition means; A deletion unit that deletes the location information of the terminal device from the first storage unit when a response to the confirmation request is not received from the terminal device within a predetermined time from the transmission of the confirmation request. To do.

請求項に記載の発明は、第1のネットワークと第2のネットワークとの間でデータを中継する中継機能を備え、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加するコンピュータに、前記コンピュータが接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得するステップと、前記取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶手段に記憶させるステップと、前記記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信するステップと、コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークに接続されている端末装置から前記第2のネットワークを介して受信するステップと、前記受信された前記識別情報が前記記憶手段に記憶されているかを判定するステップと、前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ転送するステップと、前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信するステップと、前記受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信するステップと、前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継ステップと、前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継ステップと、を実行し、前記第2中継ステップでは、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする。 According to a fourth aspect of the present invention, there is provided an overlay comprising a relay function for relaying data between a first network and a second network, and comprising at least a plurality of node devices connected to the first network Content identification information stored in a terminal device connected to the second network to which the computer is connected is transmitted from the terminal device via the second network to a computer that participates in the network as the node device. A step of acquiring, a step of associating and storing the acquired identification information and location information indicating the location of the terminal device that transmitted the identification information in a storage unit, and the identification stored in the storage unit Information and location information indicating the location of the relay device via the overlay network. The step of transmitting to the node device managing the location of the content, the search request for the content, and the identification information of the content to be searched are transmitted from the terminal device connected to the second network via the second network. Receiving the identification request, determining whether the received identification information is stored in the storage means, and determining that the identification information is not stored, the search request and the search target Transferring the content identification information to another node device via the overlay network, and location information indicating the location of the other node device capable of providing the search target content to the first network And receiving the location information received from the other node device via the second network. Steps and the search said a target transmission request of the content of the other said node device addressed that can provide content terminal from said device second to be transmitted to the transmission source terminal device of the search request via the workpiece A first relay step of relaying the transmission request transmitted via the second network between the second network and the first network, and the content addressed to the terminal device that is the transmission request source. Te running, and a second relay step of relaying between said the content transmitted over the first network and the first network second network from another said node device, wherein the the second relay step, Turkey to relay the contents to the port of the transmission source terminal device temporarily opened the transmission request during a session And features.

請求項に記載の発明は、第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中継手段は、前記セッション中に一時的に開かれた前記送信要求の送信元の端末装置の前記ポートに対して前記コンテンツを中継し、前記ポート開閉手段は、前記セッションが完了すると前記ポートを閉じることを特徴とする。 The invention according to claim 5 is a relay device that relays data between the first network and the second network, and is configured by at least a plurality of node devices connected to the first network. In a communication system comprising: a relay device that participates in an overlay network as the node device; and a terminal device connected to the second network, the relay device is connected to the second network to which the relay device is connected. A first acquisition unit configured to acquire identification information of content stored in a connected terminal device from the terminal device via the second network; the identification information acquired by the first acquisition unit; First storage means for storing location information indicating the location of the terminal device that has transmitted the identification information in association with the first storage means; First terminal means for transmitting the stored identification information and the location information indicating the location of the relay device to a node device that manages the location of the content via the overlay network, the terminal device comprising: , Further comprising sixth transmission means for transmitting the content search request and the identification information of the content to be searched to the relay device via the second network, wherein the relay device is transmitted from the terminal device. First receiving means for receiving the search request for the content and identification information of the content to be searched via the second network, and the identification information received by the first receiving means is the first storage means. Determining means for determining whether the identification information is stored, and if it is determined that the identification information is not stored, the search request and the content of the search target Second transmitting means for transmitting the identification information to the other node device via the overlay network, and location information indicating the location of the other node device capable of providing the search target content, Second receiving means for receiving from the other node device via the network of the terminal, and the location information received by the second receiving means for the terminal device that is the transmission source of the search request via the second network A third transmission unit configured to transmit to the relay device, wherein the terminal device is connected to the relay device and a third reception unit configured to receive the location information transmitted from the relay device via the second network. In order to open the port temporarily, the port opening / closing means for closing the port when the session is completed, and the address to the other node device capable of providing the search target content Ninth transmission means for transmitting a content transmission request , wherein the relay device transmits the transmission request transmitted from the terminal device via the second network to the second network and the first network. First relay means for relaying to and from the network, and the content addressed to the terminal device that is the transmission source of the transmission request and transmitted from the other node device via the first network. Second relay means for relaying between the first network and the second network , wherein the second relay means is a source of the transmission request temporarily opened during the session The content is relayed to the port of the terminal device, and the port opening / closing means closes the port when the session is completed .

請求項に記載の発明は、請求項に記載の通信システムにおいて、前記端末装置は、前記オーバーレイネットワークに参加する参加手段と、前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを、前記オーバーレイネットワークに参加する前記ノード装置へ前記第2ネットワークを介して送信する第7送信手段と、前記検索対象のコンテンツを提供可能な前記ノード装置の所在を示す所在情報を、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第4受信手段と、前記第4受信手段により受信された前記所在情報に従って、前記検索対象のコンテンツの送信要求を、前記第2のネットワーク及び前記中継装置を介して前記検索対象の前記コンテンツを提供可能な前記ノード装置へ送信する第8送信手段と、前記送信要求されたコンテンツを、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第5受信手段と、前記第5受信手段により受信されたコンテンツを記憶する第2記憶手段と、前記第2記憶手段に記憶されたコンテンツの識別情報と、前記端末装置の所在を示す所在情報を前記コンテンツの所在を管理するノード装置に送信する機能をロックする制御手段と、を備えることを特徴とする。 According to a sixth aspect of the present invention, in the communication system according to the fifth aspect , the terminal device comprises: a joining unit that participates in the overlay network; a search request for the content; and identification information for the content to be searched. a seventh transmitting means for transmitting via said second network to the node devices participating in the overlay network, the location information indicating the location of the can provide the node device content of the search target, the relay device And a fourth receiving means for receiving from the node device via the second network, and a transmission request for the search target content in accordance with the location information received by the fourth receiving means. And transmitting the content to be searched to the node device that can provide the content via the relay device 8 transmitting means, fifth receiving means for receiving the content requested to be transmitted from the node device via the relay device and the second network, and storing the content received by the fifth receiving means A second storage means; a control means for locking the function of transmitting the content identification information stored in the second storage means and the location information indicating the location of the terminal device to a node device managing the location of the content; It is characterized by providing.

請求項1、またはに記載の発明によれば、中継装置のメモリ容量を低減し、且つシステムのセキュリティを向上させることができる。 According to the invention described in claim 1, 4 or 5 , the memory capacity of the relay device can be reduced and the security of the system can be improved.

請求項2に記載の発明によれば、前記識別情報が前記第1記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを検索要求の送信元の端末装置へ迅速に送信することができる。   According to the second aspect of the present invention, when it is determined that the identification information is stored in the first storage unit, the search target content is quickly transmitted to the terminal device that is the source of the search request. be able to.

請求項に記載の発明によれば、中継装置が接続される第2のネットワークに接続されている端末装置を正確に管理することができる。 According to invention of Claim 3 , the terminal device connected to the 2nd network to which a relay apparatus is connected can be managed correctly.

請求項に記載の発明によれば、端末装置が第1のネットワーク側から攻撃を受けるリスクを抑制することができる。 According to the invention described in claim 6 , it is possible to suppress a risk that the terminal device is attacked from the first network side.

本実施形態のコンテンツ配信システムSのネットワーク構成例を示す図である。It is a figure which shows the network structural example of the content delivery system S of this embodiment. (A)は、ルータRの概要構成例を示す図である。(B)は、キャッシュリストに登録された情報の一例を示す図である。(C)は、コマンダCの概要構成例を示すブロック図である。FIG. 2A is a diagram illustrating a schematic configuration example of a router R. (B) is a figure showing an example of information registered in a cache list. (C) is a block diagram illustrating a schematic configuration example of the commander C. FIG. (A)は、ルータRの起動時の処理例を示すフローチャートである。(B)は、ルータRにおけるメイン処理例を示すフローチャートである。(A) is a flowchart showing a processing example when the router R is activated. (B) is a flowchart showing an example of a main process in the router R. (A)は、ルータRにおけるコマンダCの追加処理例を示すフローチャートである。(B)は、ルータRにおけるコマンダCの削除処理例を示すフローチャートである。FIG. 6A is a flowchart illustrating an example of processing for adding a commander C in the router R. FIG. 6B is a flowchart illustrating an example of a deletion process of the commander C in the router R. (A)は、ルータRにおけるパブリシュ処理例を示すフローチャートである。(B)は、ルータRにおけるコマンダCの生死確認処理例を示すフローチャートである。(A) is a flowchart showing an example of publish processing in the router R. (B) is a flowchart showing an example of a life / death confirmation process of the commander C in the router R. (A)は、ルータRにおけるコンテンツの検索処理例を示すフローチャートである。(B)は、ルータRにおけるコンテンツのアップロード処理例を示すフローチャートである。(A) is a flowchart showing an example of content search processing in the router R. (B) is a flowchart showing an example of content upload processing in the router R. (A)は、コマンダCにおけるコンテンツのダウンロード処理例を示すフローチャートである。(B)は、ルータRにおける許可通知処理例を示すフローチャートである。(C)は、ルータRにおけるダウンロード完了処理例を示すフローチャートである。(A) is a flowchart showing an example of content download processing in the commander C. (B) is a flowchart showing an example of permission notification processing in the router R. (C) is a flowchart showing an example of a download completion process in the router R.

以下、本発明の一実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して、本発明を適用した場合の実施形態である。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiment described below is an embodiment when the present invention is applied to a content distribution system.

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は、学校、会社、住宅、又はその他の施設等であってもよい。
[ 1. Content distribution system configuration and operation overview ]
First, the configuration and operation outline of the content distribution system of the present embodiment will be described with reference to FIG. FIG. 1 is a diagram showing a network configuration example of the content distribution system S of the present embodiment. The content distribution system S is an example of a communication system according to the present invention. As shown in FIG. 1, the content distribution system S according to the present embodiment includes a plurality of routers R1 to R5, a plurality of commanders C1 to C11, and a center server SA. In addition, the number of routers R1 to R5, the number of commanders C1 to C11, and the number of center servers SA illustrated in FIG. 1 are examples, and are not limited to these numbers. In the following description, the routers R1 to R5 may be referred to as a router R for convenience of description. In addition, the commanders C1 to C11 may be referred to as commanders C. The router R is an example of the relay device of the present invention. Commander C is an example of the terminal device of the present invention. The commander C is a playback device that plays back content such as karaoke content. The router R and the commander C are installed at any of the bases P1 to P6. For example, the router R1 and the commander C1 are installed at the base 1. Further, for example, the router R2 and the commanders C2 and C3 are installed at the site P2. In the following description, the bases P1 to P6 may be referred to as the bases P for convenience of explanation. An example of the base P is a karaoke store. The base P may be a school, a company, a house, or other facilities.

拠点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において利用可能な全てのコンテンツを保存する。   Base networks NL1 to NL5 are constructed at the bases P1 to P5, respectively. In some cases, the base network may not be constructed like the base P6. In the following description, for convenience of explanation, the base networks NL1 to NL6 may be referred to as the base network NL. The base network NL is an example of a second network of the present invention. The base network NL is composed of, for example, a LAN (Local Area Network). A router R and a commander C are connected to the base network NL. For example, the base network NL1 is connected to the router R1 and the commander C1. Further, for example, a router R2 and commanders C2 and C3 are connected to the base network NL2. Each base network NL is connected to the backbone network NW via the router R. The backbone network NW is an example of the first network of the present invention. The backbone network NW is composed of, for example, a WAN (Wide Area Network) such as the Internet. A center server SA is connected to the backbone network NW. For example, the center server SA stores all the contents that can be used in the content distribution system 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のアドレス情報が登録される。   The router R is connected to the base network NL and the backbone network NW. The router R has a relay function for relaying data between the base network NL and the backbone network NW. With this relay function, the router R selects a communication path in the backbone network NW, that is, performs routing. Further, the router R stores, for example, a commander list and a cache list in the storage unit. The commander list is a list for registering address information of the active commander C among the commanders C connected to the base network NL to which the router R is connected. Here, “being activated” means, for example, that the commander C is in a communicable state with the router R via the base network NL. The address information includes an IP address. The address information may include an IP address and a port number. The address information of the commander C is an example of location information indicating the location of the commander C. For example, when the commander C2 is active at the site P2 shown in FIG. 1, the address information of the commander C2 is registered in the commander list of the router R2.

一方、キャッシュリストは、ルータRが接続される拠点ネットワークNLに接続されているコマンダCのうち、起動中のコマンダCが記憶するコンテンツのコンテンツIDと、このコマンダCのアドレス情報とを対応付けて登録するリストである。言い換えれば、キャッシュリストには、コマンダリストに登録されているコマンダCが記憶部に記憶するコンテンツのコンテンツIDと、このコマンダCのアドレス情報とが対応付けられて登録される。ルータRは、コンテンツを記憶しないが、このルータRの配下にあるコマンダCが記憶するコンテンツのコンテンツIDを管理する。ここで、ルータRの配下にあるとは、ルータRと同じ拠点ネットワークNLに接続されていることを意味する。なお、コンテンツのコンテンツIDは、コンテンツ配信システムSにおいてコンテンツを他のコンテンツから識別する識別情報である。コンテンツIDは、例えば、コンテンツのコンテンツ名等を基に、例えばSHA1等の所定のハッシュ関数によりハッシュ値として生成される。   On the other hand, the cache list associates the content ID of the content stored by the active commander C among the commanders C connected to the base network NL to which the router R is connected with the address information of the commander C. It is a list to register. In other words, the content ID of the content stored in the storage unit by the commander C registered in the commander list and the address information of the commander C are registered in the cache list in association with each other. The router R does not store the content, but manages the content ID of the content stored by the commander C under the router R. Here, being under the router R means being connected to the same base network NL as the router R. The content ID of the content is identification information that identifies the content from other content in the content distribution system S. The content ID is generated as a hash value by a predetermined hash function such as SHA1, for example, based on the content name of the content.

また、コンテンツ配信システム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を介してメッセージを送受信することが可能となる。   In the content distribution system S, the overlay network ON is configured by a plurality of nodes N1 to N9 connected to at least the backbone network NW. The overlay network ON is a logical network that forms a virtual link. The overlay network ON is a peer-to-peer network realized by an algorithm using a distributed hash table, for example. Such a distributed hash table is hereinafter referred to as “DHT (Distributed Hash Table)”. The number of nodes N1 to N9 shown in FIG. 1 is an example, and the number is not limited to this number. In the following description, the nodes N1 to N9 may be referred to as a node N for convenience of description. The node N is an example of the node device of the present invention. In the example of FIG. 1, all routers R connected to the backbone network NW and some commanders C connected to the base network NL are participating in the overlay network ON as nodes N. Participating in the overlay network ON means operating in a state where various messages can be transmitted to and received from other nodes N based on a routing table using DHT. As a result, each node N can send and receive messages to and from other nodes N via the overlay network 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号公報等で公知であるので、詳しい説明を省略する。   A node ID is assigned to each of the router R and the commander C that participates as a node N in the overlay network ON. The node ID is identification information for identifying the node N participating in the overlay network ON from other nodes N. The node ID is generated as a hash value by a predetermined hash function based on the address information of the router R or the commander C, for example. This hash function is the same as the hash function used for generating the content ID. Further, the router R and the commander C participating as the node N in the overlay network ON each store a routing table using DHT (hereinafter referred to as “DHT routing table”). In the DHT routing table, a plurality of pairs of node IDs and address information of node N, which are transmission destination candidates for various messages, are registered. Details of the DHT routing table are known in Japanese Patent Application Laid-Open No. 2006-197400 and the like, and thus detailed description thereof is omitted.

なお、コマンダCがノードNである場合、DHTルーティングテーブルには、コマンダCのアドレス情報の代わりにコマンダCが拠点ネットワークNLを介して接続されるルータRのアドレス情報が登録される。また、コマンダCは、オーバーレイネットワークONに参加しているか否かに関わらず、基幹ネットワークNW側からのアクセスされないようにポートを閉じている。   When the commander C is the node N, the address information of the router R to which the commander C is connected via the base network NL is registered in the DHT routing table instead of the address information of the commander C. Further, the commander C closes the port so as not to be accessed from the backbone network NW side regardless of whether or not it participates in the overlay network ON.

オーバーイネットワーク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のアドレス情報を提供することになる。   The router R that has participated in the over network ON as the node N transmits a publish message to the node N that manages the location of the content that can be provided by the router R through the overlay network ON. The process of sending a publish message to the root node is called “publish process”. Here, the node N that manages the location of the content is referred to as a “root node”. The publish message is a message for disclosing to other nodes N that the content stored by the commander C under the router R can be provided. The publish message includes the address information of the router R that transmits the publish message and the content ID registered in the cache list stored in the router R. The root node is, for example, a node N to which a node ID having a value closest to the content ID is assigned. The closest value means, for example, that the upper digits of the ID match most frequently. The publish message is transmitted to the root node by DHT routing using the content ID included in the publish message as a key. Since DHT routing is well known in, for example, Japanese Patent Application Laid-Open No. 2007-053662, detailed description thereof is omitted. The root node that has received the publish message stores “address information of router R” and “content ID of content” included in the publish message in association with each other and stored as index information. Then, in response to a content search request from another node N, the root node provides the address information of the router R associated with the content ID of this content.

例えば、拠点P3に設置されたコマンダC5が、例えばユーザにより指定されたコンテンツを記憶していない場合がある。この場合、オーバーレイネットワークONに参加していないコマンダC5は、このコンテンツの検索要求を示す検索要求メッセージを、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へ送信する。この検索要求メッセージには、検索対象のコンテンツのコンテンツIDが含まれる。ノードN6であるルータR3は、コマンダC5から送信された検索要求メッセージを、拠点ネットワークNL3を介して受信する。そして、ルータR3は、受信された検索要求メッセージに含まれるコンテンツIDが記憶部に記憶されているかを判定する。つまり、受信された検索要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されているか否かが判定される。   For example, the commander C5 installed at the site P3 may not store content specified by the user, for example. In this case, the commander C5 not participating in the overlay network ON transmits a search request message indicating a search request for this content to the router R3 in the same base P3 via the base network NL3. This search request message includes the content ID of the content to be searched. The router R3, which is the node N6, receives the search request message transmitted from the commander C5 via the base network NL3. Then, the router R3 determines whether the content ID included in the received search request message is stored in the storage unit. That is, it is determined whether or not the content ID included in the received search request message is registered in the cache list.

ルータR3は、検索要求メッセージに含まれるコンテンツIDが記憶されていないと判定した場合、検索対象のコンテンツの所在を管理するルートノードへオーバーレイネットワークONを介して送信する。つまり、検索要求メッセージは、この検索要求メッセージに含まれるコンテンツIDをキーとしてDHTルーティングによりルートノードへ送信される。そして、ルートノードは、受信した検索要求メッセージに応じて、検索結果メッセージを、基幹ネットワークNWを介してルータR3へ送信する。この検索結果メッセージには、検索要求メッセージに含まれるコンテンツIDに対応付けられた、例えばルータR5のアドレス情報が含まれる。検索結果メッセージに含まれるルータR5のアドレス情報は、検索対象のコンテンツを提供可能な他のノードNのアドレス情報である。ルータR3は、基幹ネットワークNWを介してルートノードから検索結果メッセージを受信する。そして、ルータR3は、受信した検索結果メッセージを、拠点ネットワークNL3を介して検索要求の送信元のコマンダC5へ送信する。   When the router R3 determines that the content ID included in the search request message is not stored, the router R3 transmits the content to the root node that manages the location of the search target content via the overlay network ON. That is, the search request message is transmitted to the root node by DHT routing using the content ID included in the search request message as a key. Then, in response to the received search request message, the root node transmits a search result message to the router R3 via the backbone network NW. This search result message includes, for example, the address information of the router R5 associated with the content ID included in the search request message. The address information of the router R5 included in the search result message is address information of another node N that can provide the search target content. The router R3 receives the search result message from the root node via the backbone network NW. Then, the router R3 transmits the received search result message to the commander C5 that is the transmission source of the search request via the base network NL3.

コマンダ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は中継機能によりデータを中継すればよいので、メモリ容量を低減することができる。   The commander C5 receives the search result message transmitted from the router R3 via the base network NL3. Then, the commander C5 accesses the router R5 corresponding to the address information included in the received search result message. That is, the commander C5 makes a TCP connection to the router R5 via the base network NL3, the router R3, and the backbone network NW, for example, as a TCP client. The commander C5 transmits a transmission request message indicating a content transmission request to the router R5 in the TCP connection session. This transmission request message includes the content ID of the requested content. The router R5 acquires content corresponding to the content ID included in the transmission request message received from the commander C5, for example, from the commander C10. Then, the router R5 transmits the content acquired from the commander C10 to the commander C5 that is the transmission request source. The commander C5 temporarily opens a random port for TCP connection, and closes the port when the session is completed. In this session, the router R3 relays a content transmission request message addressed to the router R5 from the commander C5 between the base network NL3 and the backbone network NW. In this session, the router R3 relays the content addressed from the router R5 to the commander C5 between the backbone network NW and the base network NL3. Thereby, since the router R should just relay data by a relay function, memory capacity can be reduced.

一方、ルータR3は、コマンダC5から受信された検索要求メッセージに含まれるコンテンツIDが記憶されていると判定する場合がある。例えば、コマンダC5と同じ拠点P3内のコマンダC6が検索対象のコンテンツを記憶している場合がある。この場合、ルータR3は、検索対象のコンテンツを提供可能なノードNのアドレス情報としてルータR3のアドレス情報を含む検索結果メッセージを、拠点ネットワークNL3を介して検索要求の送信元のコマンダC6へ送信する。コマンダC6は、ルータR3のアドレス情報を含む検索結果メッセージを受信すると、コンテンツの送信要求を示す送信要求メッセージをルータR3へ送信する。ルータR3は、コマンダC5から受信した送信要求メッセージに含まれるコンテンツIDに対応するコンテンツを例えばコマンダC6から取得する。そして、ルータR3は、コマンダC6から取得したコンテンツを送信要求元のコマンダC5へ送信する。これにより、検索対象のコンテンツをコマンダC5へ迅速に送信することができる。   On the other hand, the router R3 may determine that the content ID included in the search request message received from the commander C5 is stored. For example, the commander C6 in the same base P3 as the commander C5 may store the search target content. In this case, the router R3 transmits a search result message including the address information of the router R3 as the address information of the node N that can provide the search target content to the commander C6 that is the source of the search request via the base network NL3. . When receiving the search result message including the address information of the router R3, the commander C6 transmits a transmission request message indicating a content transmission request to the router R3. The router R3 acquires content corresponding to the content ID included in the transmission request message received from the commander C5, for example, from the commander C6. Then, the router R3 transmits the content acquired from the commander C6 to the commander C5 that is the transmission request source. As a result, the search target content can be quickly transmitted to the commander C5.

そして、コンテンツを受信したコマンダC5は、このコンテンツを記憶部に記憶する。コマンダC5は、コンテンツを記憶したとき、パブリッシュメッセージをルートノードへ送信する機能を備える。このパブリッシュメッセージは、記憶されたコンテンツのコンテンツIDと、コマンダC5のアドレス情報を含む。しかしながら、本実施形態では、コマンダC5は、パブリッシュメッセージをルートノードへ送信する機能をロックしている。そのため、基幹ネットワークNW側からコマンダC5には直接アクセスされない。   The commander C5 that has received the content stores the content in the storage unit. The commander C5 has a function of transmitting a publish message to the root node when content is stored. This publish message includes the content ID of the stored content and the address information of the commander C5. However, in this embodiment, the commander C5 locks the function of transmitting a publish message to the root node. Therefore, the commander C5 is not directly accessed from the backbone network NW side.

なお、オーバーレイネットワークONに参加しているコマンダCは、オーバーレイネットワークONを介して検索要求メッセージをルートノードへ送信することもできる。この場合、コマンダCは、検索要求メッセージに応じてルートノードから送信された検索結果メッセージをルータR及び拠点ネットワークNLを介して受信する。コマンダCは、受信された検索結果メッセージに含まれるアドレス情報に従って、拠点ネットワークNL等を介して、コンテンツを提供可能なルータRへアクセスする。そして、コマンダCは、コンテンツの送信要求を示す送信要求メッセージを、アクセスしたルータRへ送信する。これにより、コマンダCは、ルータRからコンテンツを受信して記憶部に記憶する。この場合も、パブリッシュメッセージをルートノードへ送信する機能がロックされているので、パブリッシュメッセージの送信が行われない。   Note that the commander C participating in the overlay network ON can also send a search request message to the root node via the overlay network ON. In this case, the commander C receives the search result message transmitted from the root node in response to the search request message via the router R and the base network NL. The commander C accesses the router R that can provide the content via the base network NL or the like according to the address information included in the received search result message. Then, the commander C transmits a transmission request message indicating a content transmission request to the accessed router R. Thereby, the commander C receives the content from the router R and stores it in the storage unit. Also in this case, since the function of transmitting the publish message to the root node is locked, the publish message is not transmitted.

2.ルータRの構成及び機能
次に、図2(A)を参照して、ルータRの構成及び機能について説明する。図2(A)は、ルータRの概要構成例を示す図である。ルータRは、図2(A)に示すように、制御部1、記憶部2、ネットワークインターフェース3a、及びネットワークインターフェース3b等を備えて構成される。制御部1、記憶部2、ネットワークインターフェース3a、及びネットワークインターフェース3bは、バス4を介して相互に接続されている。
[ 2. Configuration and function of router R ]
Next, the configuration and function of the router R will be described with reference to FIG. FIG. 2A is a diagram illustrating a schematic configuration example of the router R. As shown in FIG. 2A, the router R includes a control unit 1, a storage unit 2, a network interface 3a, a network interface 3b, and the like. The control unit 1, the storage unit 2, the network interface 3 a, and the network interface 3 b are connected to each other via the bus 4.

記憶部2は、本発明の第1記憶手段の一例である。記憶部2は、例えば不揮発性メモリ等から構成される。記憶部2には、オペレーティングシステム、ルータ処理プログラム、及びノード処理プログラムが記憶される。ルータ処理プログラムは、コンピュータとしての制御部1に、拠点ネットワークNLと基幹ネットワークNWとの間でデータ(IPパケット)を中継するルータRとしての処理を実行させるプログラムである。ノード処理プログラムは、制御部1に、オーバーレイネットワークONを構成するノードNとしての処理を実行させるP2Pプログラムである。ルータ処理プログラム及びノード処理プログラムは、例えば基幹ネットワークNWに接続された所定のサーバからダウンロードされる。或いは、ルータ処理プログラム、及びノード処理プログラムは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。   The memory | storage part 2 is an example of the 1st memory | storage means of this invention. The storage unit 2 is composed of, for example, a nonvolatile memory. The storage unit 2 stores an operating system, a router processing program, and a node processing program. The router processing program is a program that causes the control unit 1 as a computer to execute processing as the router R that relays data (IP packets) between the base network NL and the backbone network NW. The node processing program is a P2P program that causes the control unit 1 to execute processing as the node N configuring the overlay network ON. The router processing program and the node processing program are downloaded from a predetermined server connected to the backbone network NW, for example. Alternatively, the router processing program and the node processing program may be recorded on a recording medium and read via a drive of the recording medium, for example.

また、記憶部2には、上述したコマンダリスト及びキャッシュリストが記憶される。図2(B)は、キャッシュリストに登録された情報の一例を示す図である。図2(B)に示すキャッシュリストには、コンテンツのコンテンツID、コンテンツのサイズ、コンテンツの更新日時、及び所有コマンダ情報が対応付けられて登録されている。所有コマンダ情報には、コンテンツを記憶するコマンダCのアドレス情報が含まれる。コンテンツを記憶するコマンダCが複数ある場合、図2(B)に示すように、それぞれのコマンダCのアドレス情報が所有コマンダ情報に含まれることになる。なお、キャッシュリストにおいて、図2(B)に示すように、コンテンツのコンテンツID、コンテンツのサイズ、コンテンツの更新日時、及び所有コマンダ情報が対応付けられた一行(一レコード)を、このコンテンツのエントリという。一方、コマンダリストに登録された一アドレス情報を、コマンダのエントリという。また、オーバーレイネットワークONに参加したルータRの記憶部2には、上述したDHTルーティングテーブルが記憶される。また、オーバーレイネットワークONにおいてルートノードとして動作するルータRの記憶部2には、上述したインデックス情報が記憶される。   The storage unit 2 stores the commander list and the cache list described above. FIG. 2B is a diagram illustrating an example of information registered in the cache list. In the cache list shown in FIG. 2B, the content ID of the content, the size of the content, the content update date and time, and the owned commander information are registered in association with each other. The owned commander information includes address information of the commander C that stores the content. When there are a plurality of commanders C that store content, as shown in FIG. 2B, the address information of each commander C is included in the owned commander information. In the cache list, as shown in FIG. 2B, a line (one record) in which the content ID of the content, the size of the content, the update date / time of the content, and the owned commander information are associated with each other is set as an entry of this content. That's it. On the other hand, one address information registered in the commander list is called a commander entry. Further, the above-described DHT routing table is stored in the storage unit 2 of the router R participating in the overlay network ON. Further, the above-described index information is stored in the storage unit 2 of the router R that operates as a root node in the overlay network ON.

ネットワークインターフェース3aは、基幹ネットワークNWに接続される。ネットワークインターフェース3bは、拠点ネットワークNLに接続される。   The network interface 3a is connected to the backbone network NW. The network interface 3b is connected to the base network NL.

制御部1は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部1は、本発明の第1取得手段、第2取得手段、第1送信手段、第2送信手段、第3送信手段、第4送信手段、第5送信手段、判定手段、第1受信手段、第2受信手段、第1中継手段、第2中継手段、及び削除手段の一例である。また、制御部1は時計機能及びタイマ機能を備える。制御部1は、ルータ処理プログラムに従ってルータRとしての処理を実行する。また、制御部1は、ノード処理プログラムに従ってノードNとしての処理を実行する。   The control unit 1 includes a CPU having a calculation function, a working RAM, a ROM, and the like. The control unit 1 includes the first acquisition unit, the second acquisition unit, the first transmission unit, the second transmission unit, the third transmission unit, the fourth transmission unit, the fifth transmission unit, the determination unit, and the first reception unit of the present invention. , Second receiving means, first relay means, second relay means, and deletion means. The control unit 1 has a clock function and a timer function. The control unit 1 executes processing as the router R according to the router processing program. Moreover, the control part 1 performs the process as the node N according to a node processing program.

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を介して相互に接続されている。
[ 3. Configuration and functions of commander C ]
Next, the configuration and function of the commander C will be described with reference to FIG. FIG. 2C is a block diagram illustrating a schematic configuration example of the commander C. As shown in FIG. 2C, the commander C includes a control unit 11, a storage unit 12, a decoder unit 13, a video processing unit 14, an audio processing unit 15, a network interface 16, an input unit 17, and the like. The The control unit 11, storage unit 12, decoder unit 13, video processing unit 14, audio processing unit 15, network interface 16, and input unit 17 are connected to each other via a bus 18.

記憶部12は、本発明の第2記憶手段の一例である。記憶部12は、例えばハードディスクドライブ(HDD)等から構成される。記憶部12には、オペレーティングシステム、コマンダ処理プログラム、及びノード処理プログラム等が記憶されている。コマンダ処理プログラムは、制御部11に、コマンダCとしての処理を実行させるプログラムである。コマンダCとしての処理には、例えば、コンテンツのダウンロード処理、コンテンツの再生処理などが含まれる。ノード処理プログラムは、制御部11に、オーバーレイネットワークONを構成するノードNとしての処理を実行させるP2Pプログラムである。コマンダ処理プログラム、及びノード処理プログラムは、例えば、基幹ネットワークNWに接続された所定のサーバからダウンロードされる。或いは、コマンダ処理プログラム、及びノード処理プログラムは、例えば、記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしてもよい。   The memory | storage part 12 is an example of the 2nd memory | storage means of this invention. The storage unit 12 includes, for example, a hard disk drive (HDD). The storage unit 12 stores an operating system, a commander processing program, a node processing program, and the like. The commander processing program is a program that causes the control unit 11 to execute processing as the commander C. The processing as the commander C includes, for example, content download processing, content playback processing, and the like. The node processing program is a P2P program that causes the control unit 11 to execute processing as the node N configuring the overlay network ON. The commander processing program and the node processing program are downloaded from, for example, a predetermined server connected to the backbone network NW. Alternatively, the commander processing program and the node processing program may be recorded on a recording medium and read via a drive of the recording medium, for example.

また、記憶部12には、コンテンツが記憶される。コンテンツは、例えば、映像データと音声データの少なくとも何れか一方により構成される。なお、コンテンツがカラオケコンテンツの場合がある。この場合、コンテンツは、映像データ、音声データ、及び字幕データにより構成される。また、記憶部12には、キャッシュリストが記憶される。このキャッシュリストには、記憶部12に記憶されているコンテンツのコンテンツID、コンテンツのサイズ、コンテンツの更新日時、及び記憶部12におけるコンテンツの所在を示すパスが対応付けられて登録される。また、記憶部12には、センターサーバSAのアドレス情報が記憶される。また、オーバーレイネットワークONに参加したコマンダCの記憶部12には、DHTルーティングテーブルが記憶される。   The storage unit 12 stores content. The content is composed of, for example, at least one of video data and audio data. The content may be karaoke content. In this case, the content is composed of video data, audio data, and caption data. The storage unit 12 stores a cache list. In this cache list, the content ID of the content stored in the storage unit 12, the size of the content, the update date and time of the content, and the path indicating the location of the content in the storage unit 12 are registered in association with each other. The storage unit 12 stores address information of the center server SA. In addition, the DHT routing table is stored in the storage unit 12 of the commander C participating in the overlay network ON.

デコーダ部13は、制御部11による再生制御に従って、コンテンツに含まれる映像データ及び音声データ等のデータ伸張や復号化等のデコード処理を行う。映像処理部14は、デコーダ部13によりデコードされた映像データ等に対して所定の描画処理を施し映像信号としてディスプレイ(図示せず)へ出力する。これにより、ディスプレイには映像が表示される。音声処理部15は、デコーダ部13によりデコードされた音声データをアナログ音声信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅してスピーカ(図示せず)へ出力する。これにより、スピーカから音声が出力される。ネットワークインターフェース16は、拠点ネットワークNLに接続される。入力部17は、コマンダCのユーザからコンテンツの指定等の指示を入力する。   The decoder unit 13 performs decoding processing such as data expansion and decoding of video data and audio data included in the content in accordance with playback control by the control unit 11. The video processing unit 14 performs a predetermined drawing process on the video data and the like decoded by the decoder unit 13 and outputs the result as a video signal to a display (not shown). Thereby, an image is displayed on the display. The audio processing unit 15 performs D (Digital) / A (Analog) conversion of the audio data decoded by the decoder unit 13 into an analog audio signal, and then amplifies this by an amplifier and outputs the amplified signal to a speaker (not shown). Thereby, sound is output from the speaker. The network interface 16 is connected to the base network NL. The input unit 17 inputs an instruction such as content specification from the commander C user.

制御部11は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部11は、本発明の参加手段、第6送信手段、第7送信手段、第8送信手段、第3受信手段、第4受信手段、第5受信手段、及び制御手段の一例である。制御部11は、コマンダ処理プログラムに従ってコマンダCとしての処理を実行する。また、制御部11は、ノード処理プログラムに従ってノードNとしての処理を実行する。ただし、制御部11により実行されるノードNとしての処理の中で、パブリッシュメッセージをルートノードへ送信するパブリッシュ処理はロックされている。   The control unit 11 includes a CPU having a calculation function, a working RAM, a ROM, and the like. The control unit 11 is an example of a participation unit, a sixth transmission unit, a seventh transmission unit, an eighth transmission unit, a third reception unit, a fourth reception unit, a fifth reception unit, and a control unit of the present invention. The control unit 11 executes processing as the commander C according to the commander processing program. Moreover, the control part 11 performs the process as the node N according to a node processing program. However, in the process as the node N executed by the control unit 11, the publish process for transmitting the publish message to the root node is locked.

4.コンテンツ配信システムSの動作
次に、本実施形態のコンテンツ配信システムSの動作について説明する。
[ 4. Operation of Content Distribution System S ]
Next, the operation of the content distribution system S of the present embodiment will be described.

(4−1.ルータRの起動時の処理)
先ず、図3を参照して、ルータRの起動時の処理について説明する。図3(A)は、ルータRの起動時の処理例を示すフローチャートである。図3(B)は、ルータRにおけるメイン処理例を示すフローチャートである。なお、以下の説明では、ルータR3を例にとるものとする。図3(A)に示す処理は、例えばルータR3の電源オンにより開始される。
(4-1. Processing at startup of router R)
First, with reference to FIG. 3, processing at the time of starting the router R will be described. FIG. 3A is a flowchart illustrating a processing example when the router R is activated. FIG. 3B is a flowchart illustrating an example of main processing in the router R. In the following description, the router R3 is taken as an example. The process shown in FIG. 3A is started, for example, when the router R3 is powered on.

図3(A)に示す処理が開始されると、ルータR3の制御部1は、タイマ機能によりパブリッシュタイマT1及び生死監視タイマT2のカウントをそれぞれ開始する。パブリッシュタイマT1は、上述したパブリッシュ処理の開始時間を設定するものである。生死監視タイマT2は、コマンダCの生死を確認する生死確認処理の開始時間を設定するものである。そして、ルータR3の制御部1は、コマンダ検索用のブロードキャストパケットまたはマルチキャストパケットを、拠点ネットワークNL3を介してコマンダCへ送信する(ステップS1)。なお、ルータR3の制御部1は、ブロードキャストパケットまたはマルチキャストパケットを送信した時に、応答待機タイマT3のカウントを開始する。応答待機タイマT3は、ブロードキャストパケットまたはマルチキャストパケットに対する応答のタイムアウト時間を設定するものである。ブロードキャストパケットまたはマルチキャストパケットを受信したコマンダCは、拠点ネットワークNL3を介してルータR3へ応答メッセージを送信することになる。この応答メッセージには、このメッセージを送信したコマンダCのアドレス情報が含まれる。   When the process shown in FIG. 3A is started, the control unit 1 of the router R3 starts counting the publish timer T1 and the life / death monitoring timer T2 by the timer function. The publish timer T1 sets the start time of the publish process described above. The life / death monitoring timer T2 sets the start time of the life / death confirmation process for confirming the life / death of the commander C. Then, the control unit 1 of the router R3 transmits a broadcast packet or multicast packet for commander search to the commander C through the base network NL3 (step S1). Note that the control unit 1 of the router R3 starts counting the response waiting timer T3 when transmitting a broadcast packet or a multicast packet. The response waiting timer T3 sets a timeout time for a response to a broadcast packet or a multicast packet. The commander C that has received the broadcast packet or the multicast packet transmits a response message to the router R3 via the base network NL3. This response message includes the address information of the commander C that transmitted this message.

次いで、ルータR3の制御部1は、タイムアウトになったか否かを判定する(ステップS2)。応答待機タイマT3のカウント値が、設定されたタイムアウト時間になった場合、タイムアウトになったと判定される。タイムアウトになっていないと判定された場合(ステップS2:NO)、ステップS3へ進む。一方、タイムアウトになったと判定された場合(ステップS2:YES)、図3(B)に示すメイン処理へ進む。メイン処理の詳細は後述する。   Next, the control unit 1 of the router R3 determines whether or not a timeout has occurred (step S2). When the count value of the response waiting timer T3 reaches the set timeout time, it is determined that a timeout has occurred. When it is determined that the timeout has not occurred (step S2: NO), the process proceeds to step S3. On the other hand, if it is determined that a timeout has occurred (step S2: YES), the process proceeds to the main process shown in FIG. Details of the main process will be described later.

ステップS3では、ルータR3の制御部1は、コマンダCからの応答メッセージが受信されたか否かを判定する。コマンダCからの応答メッセージが受信されていないと判定された場合(ステップS3:NO)、ステップS2に戻る。一方、コマンダCからの応答メッセージが受信されたと判定された場合(ステップS3:YES)、ステップS4へ進む。   In step S3, the control unit 1 of the router R3 determines whether or not a response message from the commander C has been received. When it is determined that the response message from the commander C has not been received (step S3: NO), the process returns to step S2. On the other hand, when it is determined that the response message from the commander C has been received (step S3: YES), the process proceeds to step S4.

ステップS4では、ルータR3の制御部1は、応答メッセージを送信したコマンダCのアドレス情報をコマンダリストに登録する。次いで、ルータR3の制御部1は、応答メッセージを送信したコマンダCから拠点ネットワークNL3を介してキャッシュリストを取得する(ステップS5)。次いで、ルータR3の制御部1は、コマンダCから取得したキャッシュリストに基づいて、ルータR3の記憶部2に記憶されているキャッシュリストを更新し(ステップS6)、ステップS2に戻る。つまり、ルータR3の記憶部2に記憶されているキャッシュリストに、応答メッセージを送信したコマンダCが記憶するコンテンツのコンテンツID、及びこのコマンダCのアドレス情報等が登録される。   In step S4, the control unit 1 of the router R3 registers the address information of the commander C that transmitted the response message in the commander list. Next, the control unit 1 of the router R3 acquires a cache list from the commander C that has transmitted the response message via the base network NL3 (step S5). Next, the control unit 1 of the router R3 updates the cache list stored in the storage unit 2 of the router R3 based on the cache list acquired from the commander C (step S6), and returns to step S2. That is, the content ID of the content stored by the commander C that transmitted the response message, the address information of the commander C, and the like are registered in the cache list stored in the storage unit 2 of the router R3.

次に、図3(B)に示すメイン処理では、ルータR3の制御部1は、コマンダCからの参加要求メッセージが受信されたか否かを判定する。コマンダCからの参加要求メッセージが受信されたと判定された場合(ステップS101:YES)、ステップS102へ進む。ステップS102では、ルータR3の制御部1は、コマンダCの追加処理を実行する。コマンダCの追加処理の詳細は後述する。一方、コマンダCからの参加要求メッセージが受信されていないと判定された場合(ステップS101:NO)、ステップS103へ進む。   Next, in the main process shown in FIG. 3B, the control unit 1 of the router R3 determines whether or not a participation request message from the commander C is received. When it is determined that the participation request message from the commander C has been received (step S101: YES), the process proceeds to step S102. In step S102, the control unit 1 of the router R3 executes commander C addition processing. Details of the commander C adding process will be described later. On the other hand, when it is determined that the participation request message from the commander C has not been received (step S101: NO), the process proceeds to step S103.

ステップS103では、ルータR3の制御部1は、コマンダCからの離脱要求メッセージが受信されたか否かを判定する。コマンダCからの離脱要求メッセージが受信されたと判定された場合(ステップS103:YES)、ステップS104へ進む。ステップS104では、ルータR3の制御部1は、コマンダCの削除処理を実行する。コマンダCの削除処理の詳細は後述する。一方、コマンダCからの離脱要求メッセージが受信されていないと判定された場合(ステップS103:NO)、ステップS105へ進む。   In step S103, the control unit 1 of the router R3 determines whether or not a leave request message from the commander C is received. When it is determined that a withdrawal request message from the commander C has been received (step S103: YES), the process proceeds to step S104. In step S104, the control unit 1 of the router R3 executes commander C deletion processing. Details of the deletion process of the commander C will be described later. On the other hand, when it is determined that the withdrawal request message from the commander C has not been received (step S103: NO), the process proceeds to step S105.

ステップS105では、ルータR3の制御部1は、パブリッシュタイマT1がカウントアップしたか否かを判定する。つまり、パブリッシュタイマT1のカウント値が、設定された開始時間になったか否かが判定される。パブリッシュタイマT1がカウントアップしたと判定された場合(ステップS105:YES)、ステップS106へ進む。ステップS106では、ルータR3の制御部1は、パブリッシュ処理を実行する。パブリッシュ処理の詳細は後述する。一方、パブリッシュタイマT1がカウントアップしていないと判定された場合(ステップS105:NO)、ステップS107へ進む。   In step S105, the control unit 1 of the router R3 determines whether or not the publish timer T1 has counted up. That is, it is determined whether or not the count value of the publish timer T1 has reached the set start time. When it is determined that the publish timer T1 has been counted up (step S105: YES), the process proceeds to step S106. In step S106, the control unit 1 of the router R3 executes a publishing process. Details of the publishing process will be described later. On the other hand, when it is determined that the publish timer T1 has not been counted up (step S105: NO), the process proceeds to step S107.

ステップS107では、ルータR3の制御部1は、生死監視タイマT2がカウントアップしたか否かを判定する。つまり、生死監視タイマT2のカウント値が、設定された開始時間になったか否かが判定される。生死監視タイマT2がカウントアップしたと判定された場合(ステップS107:YES)、ステップS108へ進む。ステップS108では、ルータR3の制御部1は、コマンダCの生死確認処理を実行する。コマンダCの生死確認処理の詳細は後述する。一方、生死監視タイマT2がカウントアップしていないと判定された場合(ステップS107:NO)、ステップS109へ進む。   In step S107, the control unit 1 of the router R3 determines whether or not the life / death monitoring timer T2 has been counted up. That is, it is determined whether or not the count value of the life / death monitoring timer T2 has reached the set start time. When it is determined that the life / death monitoring timer T2 has been counted up (step S107: YES), the process proceeds to step S108. In step S108, the control unit 1 of the router R3 executes the life / death confirmation process of the commander C. Details of the life / death confirmation process of the commander C will be described later. On the other hand, when it is determined that the life / death monitoring timer T2 has not been counted up (step S107: NO), the process proceeds to step S109.

ステップS109では、ルータR3の制御部1は、コマンダCからの検索要求メッセージが受信されたか否かを判定する。コマンダCからの検索要求メッセージが受信されたと判定された場合(ステップS109:YES)、ステップS110へ進む。ステップS110では、ルータR3の制御部1は、コンテンツの検索処理を実行する。コンテンツの検索処理の詳細は後述する。一方、コマンダCからの検索要求メッセージが受信されていないと判定された場合(ステップS109:NO)、ステップS111へ進む。   In step S109, the control unit 1 of the router R3 determines whether a search request message from the commander C is received. When it is determined that the search request message from the commander C has been received (step S109: YES), the process proceeds to step S110. In step S110, the control unit 1 of the router R3 executes a content search process. Details of the content search processing will be described later. On the other hand, when it is determined that the search request message from the commander C has not been received (step S109: NO), the process proceeds to step S111.

ステップS111では、ルータR3の制御部1は、コマンダCからの送信要求メッセージが受信されたか否かを判定する。コマンダCからの送信要求メッセージが受信されたと判定された場合(ステップS111:YES)、ステップS112へ進む。ステップS112では、ルータR3の制御部1は、コンテンツのアップロード処理を実行する。コンテンツのアップロード処理の詳細は後述する。一方、コマンダCからの送信要求メッセージが受信されていないと判定された場合(ステップS111:NO)、ステップS113へ進む。   In step S111, the control unit 1 of the router R3 determines whether a transmission request message from the commander C is received. When it is determined that the transmission request message from the commander C is received (step S111: YES), the process proceeds to step S112. In step S112, the control unit 1 of the router R3 executes content upload processing. Details of the content upload process will be described later. On the other hand, when it is determined that the transmission request message from the commander C has not been received (step S111: NO), the process proceeds to step S113.

ステップS113では、ルータR3の制御部1は、コマンダCから、ルータR以外の宛先へのIPパケットを受信したか否かを判定する。ルータR以外の宛先へのIPパケットを受信したと判定した場合(ステップS113:YES)、制御部1は、受信されたIPパケットを宛先へ転送する(ステップS114)。このIPパケットの転送は、通常のルータによりIPパケットの転送処理と同様である。一方、ルータR以外の宛先へのIPパケットを受信していないと判定した場合(ステップS113:NO)、ステップS115へ進む。   In step S113, the control unit 1 of the router R3 determines whether or not an IP packet destined for a destination other than the router R is received from the commander C. If it is determined that an IP packet destined for a destination other than the router R has been received (step S113: YES), the control unit 1 transfers the received IP packet to the destination (step S114). This IP packet transfer is the same as the IP packet transfer process by a normal router. On the other hand, if it is determined that an IP packet to a destination other than the router R has not been received (step S113: NO), the process proceeds to step S115.

ステップS115では、ルータR3の制御部1は、終了指示があったか否かを判定する。例えばユーザから終了指示があったと判定された場合(ステップS115:YES)、メイン処理が終了する。一方、終了指示がないと判定された場合(ステップS115:NO)、ステップS101に戻る。   In step S115, the control unit 1 of the router R3 determines whether or not there is an end instruction. For example, when it is determined that there is an end instruction from the user (step S115: YES), the main process ends. On the other hand, when it is determined that there is no termination instruction (step S115: NO), the process returns to step 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-2. Additional processing for Commander C)
Next, commander C addition processing will be described with reference to FIG. FIG. 4A is a flowchart illustrating an example of processing for adding a commander C in the router R. The process shown in FIG. 4A is started when a participation request message is received from the commander C through the base network NL3 in the main process described above (step S101: YES). This participation request message is a message indicating a participation request to the content distribution system S. For example, in the process shown in FIG. 3A, when the commander C5 is not activated, for example, a response message is not received from the commander C5 and a time-out occurs. However, after that, when the commander C5 is activated, the commander C5 transmits a participation request message to the router R3 via the base network NL3. This participation request message includes the address information of the commander C5 that transmitted this message.

図4(A)に示す処理が開始されると、ルータR3の制御部1は、参加要求メッセージを送信したコマンダC5のアドレス情報がコマンダリストに登録されているか否かを判定する(ステップS11)。つまり、参加要求メッセージを送信したコマンダC5のエントリがコマンダリストにあるか否かが判定される。コマンダC5のアドレス情報がコマンダリストに登録されていると判定された場合(ステップS11:YES)、メイン処理に戻る。一方、コマンダC5のアドレス情報がコマンダリストに登録されていないと判定された場合(ステップS11:NO)、ステップS12へ進む。ステップS12では、ルータR3の制御部1は、参加要求メッセージを送信したコマンダC5のアドレス情報をコマンダリストに登録する。   When the process shown in FIG. 4A is started, the control unit 1 of the router R3 determines whether or not the address information of the commander C5 that transmitted the participation request message is registered in the commander list (step S11). . That is, it is determined whether or not the entry of the commander C5 that transmitted the participation request message is in the commander list. When it is determined that the address information of the commander C5 is registered in the commander list (step S11: YES), the process returns to the main process. On the other hand, when it is determined that the address information of the commander C5 is not registered in the commander list (step S11: NO), the process proceeds to step S12. In step S12, the control unit 1 of the router R3 registers the address information of the commander C5 that transmitted the participation request message in the commander list.

次いで、ルータR3の制御部1は、参加要求メッセージを送信したコマンダC5から拠点ネットワークNL3を介してキャッシュリストを取得する(ステップS13)。次いで、ルータR3の制御部1は、コマンダC5から取得したキャッシュリストに基づいて、ルータR3の記憶部2に記憶されているキャッシュリストを更新し(ステップS14)、メイン処理に戻る。こうして、キャッシュリストには、コマンダC5のアドレス情報が追加される。   Next, the control unit 1 of the router R3 acquires a cache list from the commander C5 that has transmitted the participation request message via the base network NL3 (step S13). Next, the control unit 1 of the router R3 updates the cache list stored in the storage unit 2 of the router R3 based on the cache list acquired from the commander C5 (step S14), and returns to the main process. Thus, the address information of the commander C5 is added to the cache list.

(4−3.コマンダCの削除処理)
次に、図4(B)を参照して、コマンダCの削除処理について説明する。図4(B)は、ルータRにおけるコマンダCの削除処理例を示すフローチャートである。図4(B)に示す処理は、上述したメイン処理において、例えばコマンダC6から拠点ネットワークNL3を介して離脱要求メッセージが受信された場合(ステップS103:YES)に開始される。この離脱要求メッセージは、コンテンツ配信システムSからの離脱要求を示すメッセージである。この離脱要求メッセージには、このメッセージを送信したコマンダC6のアドレス情報が含まれる。
(4-3. Commander C Deletion Process)
Next, with reference to FIG. 4B, the deletion process of the commander C will be described. FIG. 4B is a flowchart illustrating an example of the deletion process of the commander C in the router R. The process shown in FIG. 4B is started when a leave request message is received from the commander C6 via the base network NL3 in the main process described above (step S103: YES). This leave request message is a message indicating a leave request from the content distribution system S. This leave request message includes the address information of the commander C6 that sent this message.

図4(B)に示す処理が開始されると、ルータR3の制御部1は、離脱要求メッセージを送信したコマンダC6のアドレス情報がコマンダリストに登録されているか否かを判定する(ステップS21)。つまり、離脱要求メッセージを送信したコマンダC6のエントリがコマンダリストにあるか否かが判定される。コマンダC6のアドレス情報がコマンダリストに登録されていないと判定された場合(ステップS21:NO)、メイン処理に戻る。一方、コマンダC6のアドレス情報がコマンダリストに登録されていると判定された場合(ステップS21:YES)、ステップS22へ進む。ステップS22では、ルータR3の制御部1は、離脱要求メッセージを送信したコマンダC6のアドレス情報をコマンダリストから削除する。   When the process shown in FIG. 4B is started, the control unit 1 of the router R3 determines whether or not the address information of the commander C6 that transmitted the leave request message is registered in the commander list (step S21). . That is, it is determined whether or not the entry of the commander C6 that transmitted the leave request message is in the commander list. If it is determined that the address information of the commander C6 is not registered in the commander list (step S21: NO), the process returns to the main process. On the other hand, when it is determined that the address information of the commander C6 is registered in the commander list (step S21: YES), the process proceeds to step S22. In step S22, the control unit 1 of the router R3 deletes the address information of the commander C6 that transmitted the leave request message from the commander list.

次いで、ルータR3の制御部1は、キャッシュリストからコンテンツのエントリを一つ特定する(ステップS23)。ここで特定されたエントリには、特定されたことを示す情報が付与される。次いで、ルータR3の制御部1は、ステップS23で特定したエントリにおける所有コマンダ情報に、離脱要求メッセージを送信したコマンダC6のアドレス情報が含まれるか否かを判定する(ステップS24)。ステップS23で特定されたエントリにおける所有コマンダ情報にコマンダC6のアドレス情報が含まれないと判定された場合(ステップS24:NO)、ステップS29へ進む。一方、ステップS23で特定されたエントリにおける所有コマンダ情報にコマンダC6のアドレス情報が含まれると判定された場合(ステップS24:YES)、ステップS25へ進む。   Next, the control unit 1 of the router R3 specifies one content entry from the cache list (step S23). Information indicating that the entry is specified is given to the entry specified here. Next, the control unit 1 of the router R3 determines whether or not the possessed commander information in the entry identified in step S23 includes the address information of the commander C6 that transmitted the leave request message (step S24). If it is determined that the address information of the commander C6 is not included in the owned commander information in the entry specified in step S23 (step S24: NO), the process proceeds to step S29. On the other hand, if it is determined that the owned commander information in the entry specified in step S23 includes the address information of the commander C6 (step S24: YES), the process proceeds to step S25.

ステップS25では、ルータR3の制御部1は、ステップS23で特定したエントリにおける所有コマンダ情報から、離脱要求メッセージを送信したコマンダC6のアドレス情報を削除する。次いで、ルータR3の制御部1は、ステップS23で特定したエントリにおける所有コマンダ情報が空であるか否かを判定する(ステップS26)。ここで、所有コマンダ情報が空であるとは、所有コマンダ情報に、アドレス情報が一つも含まれないことを意味する。ステップS23で特定されたエントリにおける所有コマンダ情報が空であると判定された場合(ステップS26:YES)、ステップS27へ進む。一方、ステップS23で特定されたエントリにおける所有コマンダ情報が空でないと判定された場合(ステップS26:NO)、ステップS29へ進む。   In step S25, the control unit 1 of the router R3 deletes the address information of the commander C6 that transmitted the leave request message from the owned commander information in the entry specified in step S23. Next, the control unit 1 of the router R3 determines whether the owned commander information in the entry specified in step S23 is empty (step S26). Here, the possessed commander information being empty means that no address information is included in the owned commander information. When it is determined that the owned commander information in the entry specified in step S23 is empty (step S26: YES), the process proceeds to step S27. On the other hand, when it is determined that the owned commander information in the entry specified in step S23 is not empty (step S26: NO), the process proceeds to step S29.

ステップS27では、ルータR3の制御部1は、ステップS23で特定したエントリをキャッシュリストから削除する。次いで、ルータR3の制御部1は、削除通知メッセージを、オーバーレイネットワークONを介してルートノードへ送信する(ステップS28)。このルートノードは、ステップS23で削除されたエントリに含まれるコンテンツIDが示すコンテンツの所在を管理するノードNである。この削除通知メッセージには、ステップS23で削除したエントリに含まれるコンテンツID、及びルータR3のアドレス情報が含まれる。削除通知メッセージは、この削除通知メッセージに含まれるコンテンツIDをキーとしてDHTルーティングによりルートノードへ送信される。そして、削除通知メッセージを受信したルートノードは、このメッセージ含まれるコンテンツID及びルータR3のアドレス情報をインデックス情報から削除することになる。   In step S27, the control unit 1 of the router R3 deletes the entry specified in step S23 from the cache list. Next, the control unit 1 of the router R3 transmits a deletion notification message to the root node via the overlay network ON (step S28). This root node is a node N that manages the location of the content indicated by the content ID included in the entry deleted in step S23. This deletion notification message includes the content ID included in the entry deleted in step S23 and the address information of the router R3. The deletion notification message is transmitted to the root node by DHT routing using the content ID included in the deletion notification message as a key. Then, the root node that has received the deletion notification message deletes the content ID and the address information of the router R3 included in the message from the index information.

ステップS29では、ルータR3の制御部1は、キャッシュリストにおいてまだ特定していないエントリがあるか否かを判定する。まだ特定していないエントリがあると判定された場合(ステップS29:YES)、ステップS23に戻る。ステップS23に戻ると、ルータR3の制御部1は、キャッシュリストからまだ特定されていないエントリを一つ特定し、ステップS24以降の処理を行う。一方、特定していないエントリがないと判定された場合(ステップS29:NO)、メイン処理に戻る。   In step S29, the control unit 1 of the router R3 determines whether there is an entry that has not yet been specified in the cache list. If it is determined that there is an entry that has not yet been identified (step S29: YES), the process returns to step S23. Returning to step S23, the control unit 1 of the router R3 identifies one entry that has not yet been identified from the cache list, and performs the processing from step S24. On the other hand, when it is determined that there is no unspecified entry (step S29: NO), the process returns to the main process.

なお、上記ステップS23〜ステップS29の処理は実行されないように構成してもよい。これにより、処理時間を短縮することができる。   In addition, you may comprise so that the process of said step S23-step S29 may not be performed. Thereby, processing time can be shortened.

(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へ進む。
(4-4. Publish process)
Next, the publishing process will be described with reference to FIG. FIG. 5A is a flowchart illustrating an example of publish processing in the router R. The process shown in FIG. 5A is started when the publish timer T1 counts up in the main process described above (step S105: YES). When the process shown in FIG. 5A is started, the control unit 1 of the router R3 determines whether or not the publish pointer of the cache list is NULL (step S31). The publish pointer is a pointer that points to an entry of content to be published. If the publish pointer points to any entry in the cache list, it is determined that the publish pointer is not NULL (step S31: NO), and the process proceeds to step S33. On the other hand, when it is determined that the publish pointer is NULL (step S31: YES), the process proceeds to step S32. In step S32, the control unit 1 of the router R3 sets the first entry in the cache list as a publish pointer, and proceeds to step S33.

ステップS33では、ルータR3の制御部1は、パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達したか否かを判定する。パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達していないと判定された場合(ステップS33:NO)、ステップS34へ進む。一方、パブリッシュ処理が行われたコンテンツのエントリの数が所定件数に達したと判定された場合(ステップS33:YES)、メイン処理に戻る。このように、1回のパブリッシュ処理で対象とするエントリ数を制限することで、ネットワークNWの負荷を低減することができる。   In step S33, the control unit 1 of the router R3 determines whether or not the number of content entries that have undergone publishing processing has reached a predetermined number. When it is determined that the number of content entries that have undergone publishing processing has not reached the predetermined number (step S33: NO), the process proceeds to step S34. On the other hand, when it is determined that the number of content entries for which the publish process has been performed has reached a predetermined number (step S33: YES), the process returns to the main process. In this way, by limiting the number of entries targeted in one publishing process, the load on the network NW can be reduced.

ステップS34では、ルータR3の制御部1は、パブリッシュポインタが指しているエントリからコンテンツIDを取得する。次いで、ルータR3の制御部1は、パブリッシュメッセージを、オーバーレイネットワークONを介してルートノードへ送信する(ステップS35)。このルートノードは、ステップS34で取得されたコンテンツIDが示すコンテンツの所在を管理するノードNである。このパブリッシュメッセージには、ステップS34で取得したコンテンツID、及びルータR3のアドレス情報が含まれる。これにより、パブリッシュメッセージに含まれるルータR3のアドレス情報及びコンテンツIDを含むインデックス情報がルートノードに記憶される。次いで、ルータR3の制御部1は、パブリッシュポインタをキャッシュリストの次のエントリに変更し(ステップS36)、ステップS33に戻る。   In step S34, the control unit 1 of the router R3 acquires the content ID from the entry pointed to by the publish pointer. Next, the control unit 1 of the router R3 transmits a publish message to the root node via the overlay network ON (step S35). This root node is a node N that manages the location of the content indicated by the content ID acquired in step S34. This publish message includes the content ID acquired in step S34 and the address information of the router R3. Thereby, the index information including the address information and the content ID of the router R3 included in the publish message is stored in the root node. Next, the control unit 1 of the router R3 changes the publish pointer to the next entry in the cache list (step S36), and returns to step 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)。
(4-5. Life confirmation process of Commander C)
Next, the life / death confirmation process of the commander C will be described with reference to FIG. FIG. 5B is a flowchart illustrating an example of a life / death confirmation process of the commander C in the router R. The process shown in FIG. 5B is started when the life / death monitoring timer T2 is counted up in the main process described above (step S107: YES). When the process shown in FIG. 5B is started, the control unit 1 of the router R3 identifies one commander entry from the commander list (step S41). Next, the control unit 1 of the router R3 acquires the address information of the commander C from the entry specified in step S41 (step S42).

次いで、ルータR3の制御部1は、ステップS42で取得したアドレス情報に従って、ステータス要求パケットを、拠点ネットワークNL3を介してコマンダCへ送信する(ステップS43)。ステータス要求パケットは、コマンダCの状態を確認するための確認要求の一例である。なお、ルータR3の制御部1は、ステータス要求パケットを送信した時に、応答待機タイマT4のカウントを開始する。応答待機タイマT4は、ステータス要求パケットに対する応答のタイムアウト時間を設定するものである。このタイムアウト時間は所定時間の一例である。ステータス要求パケットを受信したコマンダCは、拠点ネットワークNL3を介してルータR3へ応答メッセージを送信することになる。この応答メッセージには、このメッセージを送信したコマンダCのアドレス情報が含まれる。   Next, the control unit 1 of the router R3 transmits a status request packet to the commander C via the base network NL3 in accordance with the address information acquired in Step S42 (Step S43). The status request packet is an example of a confirmation request for confirming the state of the commander C. Note that when the status request packet is transmitted, the control unit 1 of the router R3 starts counting the response waiting timer T4. The response waiting timer T4 sets a timeout time for a response to the status request packet. This timeout time is an example of a predetermined time. The commander C that has received the status request packet transmits a response message to the router R3 via the base network NL3. This response message includes the address information of the commander C that transmitted this message.

次いで、ルータR3の制御部1は、コマンダCからの応答メッセージが受信されたか否かを判定する(ステップS44)。コマンダCからの応答メッセージが受信されていないと判定された場合(ステップS44:NO)、ステップS45へ進む。一方、コマンダCからの応答メッセージが受信されたと判定された場合(ステップS44:YES)、ステップS47へ進む。   Next, the control unit 1 of the router R3 determines whether or not a response message from the commander C has been received (step S44). When it is determined that the response message from the commander C has not been received (step S44: NO), the process proceeds to step S45. On the other hand, when it is determined that the response message from the commander C has been received (step S44: YES), the process proceeds to step 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を正確に管理することができる。   In step S45, the control unit 1 of the router R3 determines whether or not a timeout has occurred. When the count value of the response waiting timer T4 reaches the set timeout time, it is determined that a timeout has occurred. When it is determined that the time-out has not occurred (step S45: NO), the process returns to step S44. On the other hand, when it is determined that a time-out has occurred (step S45: YES), the process proceeds to step S46. In step S46, the control unit 1 of the router R3 executes the commander C deletion process shown in FIG. 4B, and proceeds to step S47. That is, when the response to the status request packet is not received from the commander C within the set timeout period from the transmission of the status request packet, the control unit 1 of the router R3 deletes the address information of the commander C from the commander list. As a result, the router R3 can accurately manage the commander C subordinate to the router R3.

ステップS47では、ルータR3の制御部1は、コマンダリストにおいてまだ特定していないエントリがあるか否かを判定する。まだ特定していないエントリがあると判定された場合(ステップS47:YES)、ステップS41に戻る。ステップS41に戻ると、ルータR3の制御部1は、コマンダリストからまだ特定されていないエントリを一つ特定し、ステップS42以降の処理を行う。一方、特定していないエントリがないと判定された場合(ステップS47:NO)、メイン処理に戻る。   In step S47, the control unit 1 of the router R3 determines whether there is an entry that has not yet been specified in the commander list. If it is determined that there is an entry that has not yet been identified (step S47: YES), the process returns to step S41. Returning to step S41, the control unit 1 of the router R3 specifies one entry that has not yet been specified from the commander list, and performs the processing after step S42. On the other hand, if it is determined that there is no unspecified entry (step S47: NO), the process returns to the main process.

(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へ進む。
(4-6. Content Search Process)
Next, content search processing will be described with reference to FIG. FIG. 6A is a flowchart illustrating an example of content search processing in the router R. The process shown in FIG. 6A is started when a search request message for content T is received from the commander C5 through the base network NL3 in the main process described above (step S109: YES). This search request message includes the content ID of the content T to be searched. When the process shown in FIG. 6A is started, the control unit 1 of the router R3 determines whether or not the content ID included in the received search request message is registered in the cache list (step S51). . That is, it is determined whether or not there is an entry including the content ID included in the search request message in the cache list. If it is determined that the content ID included in the search request message is registered in the cache list (step S51: YES), the process proceeds to step S52. On the other hand, when it is determined that the content ID included in the search request message is not registered in the cache list (step S51: NO), the process proceeds to step S53.

ステップS52では、ルータR3の制御部1は、ルータR3のアドレス情報を含む検索結果メッセージを、拠点ネットワークNL3を介してコマンダC5へ送信し、メイン処理に戻る。つまり、ルータR3のアドレス情報が、検索対象のコンテンツTを提供可能なノードNのアドレス情報として、検索要求の送信元のコマンダC5へ提供される。   In step S52, the control unit 1 of the router R3 transmits a search result message including the address information of the router R3 to the commander C5 via the base network NL3, and returns to the main process. That is, the address information of the router R3 is provided to the commander C5 that is the transmission source of the search request as the address information of the node N that can provide the content T to be searched.

ステップS53では、ルータR3の制御部1は、受信された検索要求メッセージを、オーバーレイネットワークONを介してルートノードへ送信する。このルートノードは、検索要求メッセージに含まれるコンテンツIDが示すコンテンツTの所在を管理するノードNである。そして、検索要求メッセージを受信したルートノードは、検索要求メッセージに含まれるコンテンツIDを含むインデックス情報を記憶部2から検索する。この検索によりインデックス情報が発見された場合、ルートノードは、発見されたインデックス情報を含む検索結果メッセージを、基幹ネットワークNWを介してルータR3へ返信する。このインデックス情報には、例えばルータR5のアドレス情報が含まれる。つまり、この場合、ルータR5のアドレス情報が、検索対象のコンテンツTを提供可能なノードNのアドレス情報として、検索要求の送信元のコマンダC5へ提供される。一方、上記検索によりインデックス情報が発見されない場合、ルートノードは、インデックス情報を発見できなかったことを示す検索結果メッセージを、基幹ネットワークNWを介してルータR3へ返信する。   In step S53, the control unit 1 of the router R3 transmits the received search request message to the root node via the overlay network ON. This root node is a node N that manages the location of the content T indicated by the content ID included in the search request message. Then, the root node that has received the search request message searches the storage unit 2 for index information including the content ID included in the search request message. When the index information is found by this search, the root node returns a search result message including the found index information to the router R3 via the backbone network NW. This index information includes, for example, address information of the router R5. That is, in this case, the address information of the router R5 is provided to the commander C5 that is the transmission source of the search request as the address information of the node N that can provide the content T to be searched. On the other hand, when the index information is not found by the above search, the root node returns a search result message indicating that the index information could not be found to the router R3 via the backbone network NW.

ステップS54では、ルータR3の制御部1は、ルートノードから送信された検索結果メッセージを受信する。そして、ルータR3の制御部1は、受信した検索結果メッセージを、拠点ネットワークNL3を介して検索要求の送信元のコマンダC5へ送信し(ステップS55)、メイン処理に戻る。   In step S54, the control unit 1 of the router R3 receives the search result message transmitted from the root node. Then, the control unit 1 of the router R3 transmits the received search result message to the commander C5 that is the transmission source of the search request via the base network NL3 (step S55), and returns to the main process.

(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にダウンロードされる。
(4-7. Content upload processing)
Next, content upload processing will be described with reference to FIG. FIG. 6B is a flowchart illustrating an example of content upload processing in the router R. The process shown in FIG. 6B is started when a transmission request message for the content T is received from the commander C in the main process described above (step S111: YES). For example, the commander C5 determines whether address information is included in the search result message received from the router R3. For example, the address information of the router R3 may be included in the search result message. In this case, the commander C5 transmits a transmission request message for the content T to the router R3 via the base network NL3. Alternatively, for example, the address information of the router R5 may be included in the search result message. In this case, the commander C5 transmits a transmission request message for the content T to the router R5 via the base network NL3 and the router R3. That is, in this case, the transmission request message from the commander C5 is transmitted to the router R5 via the backbone network NW by being relayed by the relay function of the router R3. Alternatively, the search result message may indicate that index information could not be found. In this case, the commander C5 transmits a content T transmission request message to the center server SA via the base network NL3 and the router R3. As a result, the requested content T is downloaded from the center server SA to the commander C5.

例えばルータR3またはルータR5の制御部1は、図6(B)に示す処理を開始すると、送信要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されているか否かを判定する(ステップS61)。つまり、送信要求メッセージに含まれるコンテンツIDを含むエントリがキャッシュリストにあるか否かが判定される。送信要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されていないと判定された場合(ステップS61:NO)、ステップS62へ進む。一方、送信要求メッセージに含まれるコンテンツIDがキャッシュリストに登録されていると判定された場合(ステップS61:YES)、ステップS64へ進む。   For example, when the processing shown in FIG. 6B is started, the control unit 1 of the router R3 or the router R5 determines whether or not the content ID included in the transmission request message is registered in the cache list (step S61). That is, it is determined whether or not there is an entry including the content ID included in the transmission request message in the cache list. When it is determined that the content ID included in the transmission request message is not registered in the cache list (step S61: NO), the process proceeds to step S62. On the other hand, when it is determined that the content ID included in the transmission request message is registered in the cache list (step S61: YES), the process proceeds to step S64.

ステップS62では、ルータR3の制御部1は、コンテンツTを提供できないことを示すエラーメッセージを、拠点ネットワークNL3を介して送信要求元のコマンダC5へ送信する。或いは、ルータR5の制御部1は、上記エラーメッセージを、基幹ネットワークNW及びルータR3を介して送信要求元のコマンダC5へ送信する。次いで、ルータR3またはルータR5の制御部1は、削除通知メッセージを、オーバーレイネットワークONを介してルートノードへ送信し(ステップS63)、メイン処理に戻る。この削除通信メッセージを受信したルートノードは、このメッセージ含まれるコンテンツID及びルータR3またはルータR5のアドレス情報をインデックス情報から削除することになる。   In step S62, the control unit 1 of the router R3 transmits an error message indicating that the content T cannot be provided to the commander C5 as a transmission request source via the base network NL3. Alternatively, the control unit 1 of the router R5 transmits the error message to the commander C5 that is the transmission request source via the backbone network NW and the router R3. Next, the control unit 1 of the router R3 or the router R5 transmits a deletion notification message to the root node via the overlay network ON (step S63), and returns to the main process. The root node that has received the delete communication message deletes the content ID and the address information of the router R3 or router R5 included in the message from the index information.

ステップS64では、ルータR3またはルータR5の制御部1は、送信要求されたコンテンツTを記憶するコマンダCのリストLを作成する。例えば制御部1は、送信要求メッセージに含まれるコンテンツIDに対応付けられたアドレス情報をキャッシュリストから取得する。そして、制御部1は、取得したアドレス情報を登録するリストLを作成する。なお、コマンダCのリストLに複数のアドレス情報が登録される場合がある。この場合、リストLにおけるアドレス情報の順番は例えばランダムに決定される。   In step S64, the control unit 1 of the router R3 or the router R5 creates a list L of commanders C that store the content T requested to be transmitted. For example, the control unit 1 acquires address information associated with the content ID included in the transmission request message from the cache list. Then, the control unit 1 creates a list L for registering the acquired address information. A plurality of address information may be registered in the list L of the commander C. In this case, the order of the address information in the list L is determined at random, for example.

次いで、ルータR3またはルータR5の制御部1は、ステップS64で作成したリストLが空であるか否かを判定する(ステップS65)。ここで、リストLが空であるとは、リストLに、アドレス情報が一つも含まれないことを意味する。リストLが空であると判定された場合(ステップS65:YES)、ステップS62へ移行する。一方、リストLが空でないと判定された場合(ステップS65:NO)、ステップS66へ進む。   Next, the control unit 1 of the router R3 or the router R5 determines whether or not the list L created in step S64 is empty (step S65). Here, the list L being empty means that the list L does not include any address information. When it is determined that the list L is empty (step S65: YES), the process proceeds to step S62. On the other hand, when it is determined that the list L is not empty (step S65: NO), the process proceeds to step 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へ送信する。   In step S66, the control unit 1 of the router R3 or the router R5 acquires the address information with the head among the address information registered in the list L, and deletes the acquired address information from the list L. Next, the control unit 1 of the router R3 or the router R5 transmits a transmission request message for the content T to the commander C in the same base P via the base network NL according to the acquired address information (step S67). The commander C that has received the transmission request message for the content T determines whether or not the content T requested to be transmitted is stored in the storage unit 12. When the content T is stored in the storage unit 12, the commander C acquires the content T from the storage unit 12 and transmits it to the router R3 or the router R5. On the other hand, when the content T is not stored in the storage unit 12, the commander C transmits an error message indicating that the content T cannot be provided to the router R3 or the router R5 via the base network NL.

次いで、ルータR3またはルータR5の制御部1は、コンテンツTの取得が成功したか否かを判定する(ステップS68)。コマンダCから拠点ネットワークNLを介してコマンダCからコンテンツTが受信された場合、制御部1は、コンテンツTの取得が成功したと判定し(ステップS68:YES)、ステップS69へ進む。一方、コマンダCからエラーメッセージが送信されコンテンツTが受信されない場合、制御部1は、コンテンツTの取得が成功しないと判定し(ステップS68:NO)、ステップS65に戻る。ステップS65に戻ると、上記と同様の処理が行われる。   Next, the control unit 1 of the router R3 or the router R5 determines whether or not the content T has been successfully acquired (step S68). When the content T is received from the commander C via the base network NL, the control unit 1 determines that the content T has been successfully acquired (step S68: YES), and proceeds to step S69. On the other hand, when the error message is transmitted from the commander C and the content T is not received, the control unit 1 determines that the acquisition of the content T is not successful (step S68: NO), and returns to step S65. When returning to step S65, the same processing as described above is performed.

ステップS69では、ルータR3の制御部1は、ステップS68でコマンダCから取得したコンテンツTを、拠点ネットワークNL3を介して送信要求元のコマンダC5へ送信し、メイン処理に戻る。或いは、ルータR5の制御部1は、コマンダCから取得したコンテンツTを、基幹ネットワークNW及びルータR3を介して送信要求元のコマンダC5へ送信し、メイン処理に戻る。つまり、この場合、ルータR5からのコンテンツは、ルータR3の中継機能により中継されることでコマンダC5へ送信される。   In step S69, the control unit 1 of the router R3 transmits the content T acquired from the commander C in step S68 to the transmission requesting commander C5 via the base network NL3, and returns to the main process. Alternatively, the control unit 1 of the router R5 transmits the content T acquired from the commander C to the commander C5 as a transmission request source via the backbone network NW and the router R3, and returns to the main process. That is, in this case, the content from the router R5 is transmitted to the commander C5 by being relayed by the relay function of the router R3.

(4−8.コンテンツのアップロード処理の応用例)
次に、図7(A)〜(C)を参照して、コンテンツのアップロード処理の応用例について説明する。図7(A)は、コンテンツのアップロードを受けるコマンダCの処理例を示すフローチャートである。図7(B)は、ルータRにおける許可通知処理例を示すフローチャートである。図7(C)は、ルータRにおけるダウンロード完了処理例を示すフローチャートである。なお、アップロード処理の応用例では、図3に示すメイン処理に、コンテンツのダウンロードの開始許可要求メッセージの受信を判定する処理、及びダウンロード完了メッセージの受信を判定する処理が追加される。
(4-8. Application example of content upload processing)
Next, an application example of the content upload process will be described with reference to FIGS. FIG. 7A is a flowchart illustrating a processing example of the commander C that receives content upload. FIG. 7B is a flowchart illustrating an example of permission notification processing in the router R. FIG. 7C is a flowchart illustrating an example of a download completion process in the router R. In the application example of the upload process, a process for determining reception of a content download start permission request message and a process for determining reception of a download completion message are added to the main process shown in FIG.

先ず、図7(A)に示す処理は、例えばコマンダC5がルータR3から送信された検索結果メッセージが受信された場合に開始される。図7(A)に示す処理が開始されると、例えばコマンダC5の制御部11は、受信した検索結果メッセージにアドレス情報が含まれるか否か判定する(ステップS71)。検索結果メッセージにアドレス情報が含まれないと判定された場合(ステップS71:NO)、ステップS72へ進む。一方、検索結果メッセージにアドレス情報が含まれると判定された場合(ステップS71:YES)、ステップS76へ進む。   First, the process shown in FIG. 7A is started when, for example, the commander C5 receives a search result message transmitted from the router R3. When the process shown in FIG. 7A is started, for example, the control unit 11 of the commander C5 determines whether or not address information is included in the received search result message (step S71). When it is determined that the address information is not included in the search result message (step S71: NO), the process proceeds to step S72. On the other hand, when it is determined that the address information is included in the search result message (step S71: YES), the process proceeds to step 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)に示す処理が終了する。   In step S72, the control unit 11 of the commander C5 transmits a start permission request message for downloading the content T to the router R3 in the same base P3 via the base network NL3. The download start permission request message is a message indicating a download start permission request to the router R in the same base P3. The start permission request message includes the content ID of the content T. Next, the control unit 11 of the commander C5 determines whether or not a download start permission message has been received (step S73). When it is determined that the download start permission message has been received (step S73: YES), the process proceeds to step S74. This start permission message includes the content ID of the content T. On the other hand, when it is determined that the download start permission message has not been received (step S73: NO), the control unit 11 of the commander C5 repeats the process of step S73 at predetermined time intervals until, for example, a timeout occurs. Then, when a timeout occurs, for example, the process illustrated in FIG. 7A ends.

ステップS74では、コマンダC5の制御部11は、コンテンツTの送信要求メッセージをセンターサーバSAへ送信する。そして、コマンダC5の制御部11は、センターサーバSAから送信されたコンテンツTを受信する(ステップS75)。こうして、コンテンツTのダウンロードが完了すると、ステップS80へ進む。   In step S74, the control unit 11 of the commander C5 transmits a transmission request message for the content T to the center server SA. Then, the control unit 11 of the commander C5 receives the content T transmitted from the center server SA (step S75). Thus, when the download of the content T is completed, the process proceeds to step S80.

ステップS76では、コマンダC5の制御部11は、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へコンテンツTのダウンロードの開始許可要求メッセージを送信する。次いで、コマンダC5の制御部11は、ダウンロードの開始許可メッセージを受信したか否かを判定する(ステップS77)。ダウンロードの開始許可メッセージを受信したと判定された場合(ステップS77:YES)、ステップS78へ進む。一方、ダウンロードの開始許可メッセージを受信していないと判定された場合(ステップS77:NO)、コマンダC5の制御部11は、例えばタイムアウトになるまでステップS77の処理を所定時間間隔で繰り返す。そして、タイムアウトになった場合、例えば図7(A)に示す処理が終了する。   In step S76, the control unit 11 of the commander C5 transmits a start permission request message for downloading the content T to the router R3 in the same base P3 via the base network NL3. Next, the control unit 11 of the commander C5 determines whether or not a download start permission message has been received (step S77). If it is determined that the download start permission message has been received (step S77: YES), the process proceeds to step S78. On the other hand, when it is determined that the download start permission message has not been received (step S77: NO), the control unit 11 of the commander C5 repeats the process of step S77 at predetermined time intervals until, for example, a timeout occurs. Then, when a timeout occurs, for example, the process illustrated in FIG. 7A ends.

ステップS78では、コマンダC5の制御部11は、検索結果メッセージに含まれる例えばルータR5のアドレス情報に従って、コンテンツTの送信要求メッセージをルータR5へ送信する。そして、コマンダC5の制御部11は、ルータR5から送信されたコンテンツTを受信する(ステップS79)。このように、コマンダC5は、ルータR5の許可を得てからダウンロード処理を行う。そのため、ルータR3は、ネットワークNWにおけるダウンロード帯域の制御と、ダウンロード中のコンテンツを優先する制御を実現することができる。こうして、コンテンツTのダウンロードが完了すると、ステップS80へ進む。   In step S78, the control unit 11 of the commander C5 transmits a content T transmission request message to the router R5 in accordance with, for example, the address information of the router R5 included in the search result message. Then, the control unit 11 of the commander C5 receives the content T transmitted from the router R5 (step S79). Thus, the commander C5 performs the download process after obtaining the permission of the router R5. Therefore, the router R3 can realize control of the download band in the network NW and control that gives priority to the content being downloaded. Thus, when the download of the content T is completed, the process proceeds to step S80.

ステップS80では、コマンダC5の制御部11は、コンテンツTのダウンロード完了メッセージを、拠点ネットワークNL3を介して同じ拠点P3内のルータR3へ送信する。このダウンロード完了メッセージには、コンテンツTのコンテンツIDが含まれる。   In step S80, the control unit 11 of the commander C5 transmits a download completion message of the content T to the router R3 in the same base P3 via the base network NL3. This download completion message includes the content ID of the content T.

一方、図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加算される。   On the other hand, the process shown in FIG. 7B is started when, for example, a download start permission request message is received from the commander C5 in the main process described above. When the process shown in FIG. 7B is started, for example, the control unit 11 of the router R3 refers to the number of commanders being downloaded (step S81). Next, the control unit 11 of the router R3 determines whether or not the number of commanders being downloaded is equal to or less than a predetermined number (step S82). Here, the predetermined number is determined according to the bandwidth of the network NW, for example. Thereby, the download speed of the content T can be increased. When it is determined that the number of commanders being downloaded is not less than the predetermined number (step S82: NO), the process returns to step S81. On the other hand, when it is determined that the number of commanders being downloaded is equal to or less than the predetermined number (step S82: YES), the process proceeds to step S83. In step S83, the control unit 11 of the router R3 transmits a download start permission message to the commander C5. With this configuration, the router R3 can control the download bandwidth in the network NW to a certain amount. The router R3 can prioritize the content being downloaded. Next, the control unit 11 of the router R3 updates the number of commanders being downloaded (step S84), and returns to the main process. For example, 1 is added to the number of commanders being downloaded.

一方、図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のアドレス情報を含むインデックス情報がルートノードに記憶される。   On the other hand, the process shown in FIG. 7C is started when, for example, a download completion message is received from the commander C5 in the main process described above. When the process shown in FIG. 7C is started, for example, the control unit 11 of the router R3 updates the number of commanders being downloaded (step S91). For example, 1 is subtracted from the number of commanders being downloaded. Next, the control unit 11 of the router R3 determines whether or not there is an entry for the content T in the cache list (step S92). If it is determined that there is no entry for the content T in the cache list (step S92: NO), the process proceeds to step S93. On the other hand, when it is determined that there is an entry for the content T in the cache list (step S92: YES), the process proceeds to step S94. In step S93, the control unit 11 of the router R3 adds an entry of content T to the cache list, and proceeds to step S94. In step S94, the control unit 11 of the router R3 adds the address information of the commander C5 to the owned commander information in the content T entry. That is, the address information of the commander C5 who downloaded the content T is registered in the cache list. Next, the control unit 11 of the router R3 transmits a publish message to the root node that manages the location of the content T via the overlay network ON (step S95), and returns to the main process. This publish message includes the content ID of the content T and the address information of the router R3. As a result, the content ID included in the publish message and the index information including the address information of the router R3 are stored in the root node.

以上説明したように、上記実施形態によれば、ネットワーク間でデータを中継する中継機能を有するルータRは、このルータRの配下にあるコマンダCが記憶するコンテンツを提供可能であることをオーバーレイネットワークON上でパブリッシュする。そして、ルータRは、コマンダCから検索要求されたコンテンツの所在をオーバーレイネットワークON上で検索し、その検索結果をコマンダCへ送信する。これにより、ルータRのメモリ容量を低減し、且つシステムのセキュリティを向上させることができる。つまり、ルータRがコンテンツのアップロードを行うためコマンダCは、基幹ネットワークNW側に常時ポート開放する必要がない。その結果、基幹ネットワークNW側から攻撃を受けるリスクを抑制することができる。また、コンテンツの保存先がコマンダCの記憶部12になるため、ルータRに大容量のHDD等の記憶装置を搭載する必要がなくなる。その結果、ルータRの部品コストを削減することができる。さらに、ルータRがコンテンツのアップロード数、ダウンロード数を集中管理することで安定した通信を実現することができる。   As described above, according to the above embodiment, the router R having a relay function for relaying data between networks can provide content stored by the commander C under the router R. Publish on ON. Then, the router R searches the overlay network ON for the location of the content requested to be searched by the commander C, and transmits the search result to the commander C. Thereby, the memory capacity of the router R can be reduced and the security of the system can be improved. That is, since the router R uploads the content, the commander C does not need to always open the port to the backbone network NW side. As a result, the risk of being attacked from the backbone network NW side can be suppressed. Further, since the storage destination of the content is the storage unit 12 of the commander C, it is not necessary to install a storage device such as a large capacity HDD in the router R. As a result, the component cost of the router R can be reduced. Furthermore, the router R can centrally manage the number of content uploads and downloads, thereby realizing stable communication.

なお、上記実施形態においては、オーバーレイネットワークONに、DHTを利用したピアツーピアネットワークを適用したが、これに限られるものではない。例えば、他のオーバーレイネットワークを用いたシステムが適用されてもよい。DHTを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。   In the above embodiment, the peer-to-peer network using DHT is applied to the overlay network ON, but the present invention is not limited to this. For example, a system using another overlay network may be applied. As a peer-to-peer system that does not use DHT, for example, there is a hybrid peer-to-peer system.

R ルータ
N ノード
NL 拠点ネットワーク
NW 基幹ネットワーク
ON オーバーレイネットワーク
S コンテンツ配信システム
R router N node NL base network NW backbone network ON overlay network S content distribution system

Claims (6)

第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中継手段は、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とする中継装置。
A relay device that relays data between a first network and a second network, and participates in an overlay network including at least a plurality of node devices connected to the first network as the node device In the relay device,
First acquisition means for acquiring content identification information stored in a terminal device connected to the second network to which the relay device is connected, from the terminal device via the second network;
First storage means for storing the identification information acquired by the first acquisition means and location information indicating the location of the terminal device that transmitted the identification information in association with each other;
First transmission means for transmitting the identification information stored in the first storage means and location information indicating the location of the relay device to a node device that manages the location of the content via the overlay network;
First receiving means for receiving a content search request and identification information of content to be searched from a terminal device connected to the second network via the second network;
Determining means for determining whether the identification information received by the first receiving means is stored in the first storage means;
A second transmission unit configured to transmit the search request and the identification information of the content to be searched to the other node devices via the overlay network when it is determined that the identification information is not stored;
Second receiving means for receiving location information indicating the location of the other node device capable of providing the search target content from the other node device via the first network;
Third transmitting means for transmitting the location information received by the second receiving means to the terminal device that is the transmission source of the search request via the second network;
The transmission request of the content addressed to another node device that can provide the search target content, the transmission request transmitted from the terminal device via the second network, and the second network First relay means for relaying to and from the first network;
The content addressed to the terminal device that is the transmission source of the transmission request and transmitted from another node device via the first network between the first network and the second network A second relay means for relaying with,
Equipped with a,
It said second relay means, the relay device characterized that you relays the content to the port of the transmission source terminal device temporarily opened the transmission request during the session.
前記識別情報が前記第1記憶手段に記憶されていると判定された場合、前記検索対象のコンテンツを提供可能なノード装置の所在を示す所在情報として前記中継装置の所在を示す所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信する第4送信手段を更に備えることを特徴とする請求項1に記載の中継装置。   When it is determined that the identification information is stored in the first storage unit, the location information indicating the location of the relay device as the location information indicating the location of the node device capable of providing the search target content, The relay apparatus according to claim 1, further comprising a fourth transmission unit configured to transmit to the terminal device that is the transmission source of the search request via a second network. 前記コンテンツの識別情報が送信された前記端末装置の前記所在情報を前記第1記憶手段から取得する第2取得手段と、
前記第2取得手段により取得された前記所在情報に従って、前記端末装置の状態を確認するための確認要求を、前記第2のネットワークを介して前記端末装置へ送信する第5送信手段と、
前記確認要求の送信から所定時間以内に前記確認要求に対する応答が前記端末装置から受信されない場合、前記端末装置の前記所在情報を前記第1記憶手段から削除する削除手段と、
を備えることを特徴とする請求項1または2に記載の中継装置。
Second acquisition means for acquiring from the first storage means the location information of the terminal device to which the content identification information has been transmitted;
Fifth transmission means for transmitting a confirmation request for confirming the state of the terminal device to the terminal device via the second network according to the location information acquired by the second acquisition means;
A deletion unit that deletes the location information of the terminal device from the first storage unit when a response to the confirmation request is not received from the terminal device within a predetermined time from the transmission of the confirmation request;
Relay apparatus according to claim 1 or 2, characterized in that it comprises a.
第1のネットワークと第2のネットワークとの間でデータを中継する中継機能を備え、少なくとも前記第1のネットワークに接続された複数のノード装置により構成されるオーバーレイネットワークに前記ノード装置として参加するコンピュータに、
前記コンピュータが接続される前記第2のネットワークに接続されている端末装置が記憶するコンテンツの識別情報を、前記端末装置から前記第2のネットワークを介して取得するステップと、
前記取得された前記識別情報と、前記識別情報を送信した端末装置の所在を示す所在情報とを対応付けて記憶手段に記憶させるステップと、
前記記憶手段に記憶された前記識別情報と、前記中継装置の所在を示す所在情報とを前記オーバーレイネットワークを介して前記コンテンツの所在を管理するノード装置へ送信するステップと、
コンテンツの検索要求と、検索対象のコンテンツの識別情報とを、前記第2のネットワークに接続されている端末装置から前記第2のネットワークを介して受信するステップと、
前記受信された前記識別情報が前記記憶手段に記憶されているかを判定するステップと、
前記識別情報が記憶されていないと判定された場合、前記検索要求と前記検索対象のコンテンツの識別情報とを前記オーバーレイネットワークを介して他の前記ノード装置へ転送するステップと、
前記検索対象のコンテンツを提供可能な他の前記ノード装置の所在を示す所在情報を、前記第1のネットワークを介して他の前記ノード装置から受信するステップと、
前記受信された前記所在情報を、前記第2のネットワークを介して前記検索要求の送信元の端末装置へ送信するステップと、
前記検索対象のコンテンツを提供可能な他の前記ノード装置宛ての前記コンテンツの送信要求であって前記端末装置から前記第2のネットワークを介して送信された前記送信要求を前記第2のネットワークと前記第1のネットワークとの間で中継する第1中継ステップと、
前記送信要求の送信元の端末装置宛ての前記コンテンツであって他の前記ノード装置から前記第1のネットワークを介して送信された前記コンテンツを前記第1のネットワークと前記第2のネットワークとの間で中継する第2中継ステップと、
を実行し、
前記第2中継ステップでは、セッション中に一時的に開かれた前記送信要求の送信元の端末装置のポートに対して前記コンテンツを中継することを特徴とするプログラム。
A computer having a relay function for relaying data between a first network and a second network, and participating as an node in an overlay network composed of at least a plurality of node devices connected to the first network In addition,
Acquiring identification information of content stored in a terminal device connected to the second network to which the computer is connected from the terminal device via the second network;
Storing the acquired identification information in association with location information indicating the location of the terminal device that transmitted the identification information in a storage unit;
Transmitting the identification information stored in the storage means and the location information indicating the location of the relay device to a node device that manages the location of the content via the overlay network;
Receiving a content search request and identification information of content to be searched from a terminal device connected to the second network via the second network;
Determining whether the received identification information is stored in the storage means;
When it is determined that the identification information is not stored, the search request and the identification information of the content to be searched are transferred to the other node device via the overlay network;
Receiving location information indicating the location of another node device capable of providing the search target content from the other node device via the first network;
Transmitting the received location information to the terminal device that is the transmission source of the search request via the second network;
The transmission request of the content addressed to another node device that can provide the search target content, the transmission request transmitted from the terminal device via the second network, and the second network A first relay step for relaying to and from the first network;
The content addressed to the terminal device that is the transmission source of the transmission request and transmitted from another node device via the first network between the first network and the second network A second relay step relaying at
The execution,
In the second relay step, the program characterized that you relays the content to the port of the transmission source terminal device temporarily opened the transmission request during the session.
第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中継手段は、前記セッション中に一時的に開かれた前記送信要求の送信元の端末装置の前記ポートに対して前記コンテンツを中継し、
前記ポート開閉手段は、前記セッションが完了すると前記ポートを閉じることを特徴とする通信システム。
A relay device that relays data between a first network and a second network, and participates in an overlay network including at least a plurality of node devices connected to the first network as the node device In a communication system comprising a relay device and a terminal device connected to the second network,
The relay device is
First acquisition means for acquiring content identification information stored in a terminal device connected to the second network to which the relay device is connected, from the terminal device via the second network;
First storage means for storing the identification information acquired by the first acquisition means and location information indicating the location of the terminal device that transmitted the identification information in association with each other;
First transmission means for transmitting the identification information stored in the first storage means and location information indicating the location of the relay device to a node device that manages the location of the content via the overlay network;
With
The terminal device includes sixth transmission means for transmitting a content search request and identification information of content to be searched to the relay device via the second network,
The relay device is
First receiving means for receiving, via the second network, a search request for the content transmitted from the terminal device and identification information of the content to be searched;
Determining means for determining whether the identification information received by the first receiving means is stored in the first storage means;
A second transmission unit configured to transmit the search request and the identification information of the content to be searched to the other node devices via the overlay network when it is determined that the identification information is not stored;
Second receiving means for receiving location information indicating the location of the other node device capable of providing the search target content from the other node device via the first network;
Third transmitting means for transmitting the location information received by the second receiving means to the terminal device that is the transmission source of the search request via the second network;
With
The terminal device
Third receiving means for receiving the location information transmitted from the relay device via the second network ;
A port opening and closing means for temporarily opening a port to connect to the relay device, and closing the port when the session is completed;
Ninth transmission means for transmitting a transmission request for the content addressed to another node device capable of providing the search target content;
Equipped with a,
The relay device is
First relay means for relaying the transmission request transmitted from the terminal device via the second network between the second network and the first network;
The content addressed to the terminal device that is the transmission source of the transmission request and transmitted from another node device via the first network between the first network and the second network A second relay means for relaying with,
Equipped with a,
The second relay means relays the content to the port of the terminal device of the transmission request that is temporarily opened during the session;
The port opening / closing means closes the port when the session is completed .
前記端末装置は、
前記オーバーレイネットワークに参加する参加手段と、
前記コンテンツの検索要求と前記検索対象のコンテンツの識別情報とを、前記オーバーレイネットワークに参加する前記ノード装置へ前記第2ネットワークを介して送信する第7送信手段と、
前記検索対象のコンテンツを提供可能な前記ノード装置の所在を示す所在情報を、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第4受信手段と、
前記第4受信手段により受信された前記所在情報に従って、前記検索対象のコンテンツの送信要求を、前記第2のネットワーク及び前記中継装置を介して前記検索対象の前記コンテンツを提供可能な前記ノード装置へ送信する第8送信手段と、
前記送信要求されたコンテンツを、前記中継装置及び前記第2のネットワークを介して前記ノード装置から受信する第5受信手段と、
前記第5受信手段により受信されたコンテンツを記憶する第2記憶手段と、
前記第2記憶手段に記憶されたコンテンツの識別情報と、前記端末装置の所在を示す所在情報を前記コンテンツの所在を管理するノード装置に送信する機能をロックする制御手段と、
を備えることを特徴とする請求項に記載の通信システム。
The terminal device
A joining means for joining the overlay network;
A seventh transmitting means for transmitting said identification information search request with the content of the search target content, through the second network to the node devices participating in the overlay network,
Fourth receiving means for receiving location information indicating the location of the node device capable of providing the search target content from the node device via the relay device and the second network;
In accordance with the location information received by the fourth receiving means, a transmission request for the search target content is sent to the node device capable of providing the search target content via the second network and the relay device. An eighth transmitting means for transmitting;
Fifth reception means for receiving the content requested to be transmitted from the node device via the relay device and the second network;
Second storage means for storing the content received by the fifth receiving means;
Control means for locking the function of transmitting the content identification information stored in the second storage means and the location information indicating the location of the terminal device to a node device that manages the location of the content;
The communication system according to claim 5 , further comprising:
JP2013180239A 2013-08-30 2013-08-30 Relay device, program, and communication system Active JP5907132B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013180239A JP5907132B2 (en) 2013-08-30 2013-08-30 Relay device, program, and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013180239A JP5907132B2 (en) 2013-08-30 2013-08-30 Relay device, program, and communication system

Publications (2)

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

Family

ID=52699626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013180239A Active JP5907132B2 (en) 2013-08-30 2013-08-30 Relay device, program, and communication system

Country Status (1)

Country Link
JP (1) JP5907132B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2090074A1 (en) * 2006-11-29 2009-08-19 THOMSON Licensing Contribution aware peer-to-peer live streaming service
JP2009070172A (en) * 2007-09-13 2009-04-02 Brother Ind Ltd Content distribution and storage system, provider server device registering method, node device, and node processing program
JP5359728B2 (en) * 2009-09-17 2013-12-04 ブラザー工業株式会社 Karaoke system, karaoke device, node device, karaoke program, node program, and karaoke data transmission method
JP5218356B2 (en) * 2009-09-24 2013-06-26 ブラザー工業株式会社 Information communication system, information communication method, support device, and information communication processing program
JP5136581B2 (en) * 2010-03-23 2013-02-06 ブラザー工業株式会社 Information communication system, information processing apparatus, information processing method, and information processing program

Also Published As

Publication number Publication date
JP2015049642A (en) 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
JP5556104B2 (en) Information communication system, information communication method, and information communication program
WO2007083531A1 (en) Content distribution system, node device, its information processing method, and recording medium containing the program
JP2006191489A (en) Node device, network participation processing program, and network participation processing method or the like
CN110557439B (en) Network content management method and block chain content network platform
JP2013542681A (en) Content sharing method and apparatus using group change information in content-centric network environment
WO2007086250A1 (en) Information distribution system, re-registration message transmission method, node device, and recording medium containing node processing program
JP5293533B2 (en) Information communication system and information communication method
JP5136581B2 (en) Information communication system, information processing apparatus, information processing method, and information processing program
JP5532649B2 (en) Node device, node processing program, and content storage method
JP5272991B2 (en) Information communication system, information communication method and program
EP2802108A9 (en) Data-oriented communication system, node, and data transfer method
JP5394704B2 (en) Information communication system and software update method
JP5212292B2 (en) Information communication system, node device, node device confirmation method and program
JP5907132B2 (en) Relay device, program, and communication system
US8312068B2 (en) Node device, information communication system, method for managing content data, and computer readable medium
JP5494550B2 (en) Management device, management system, management method, and management program
JP5359728B2 (en) Karaoke system, karaoke device, node device, karaoke program, node program, and karaoke data transmission method
JP2009232272A (en) Content distributive storage system, content playback method, node device, management apparatus, node-processing program, and management processing program
JP2009187101A (en) Content distribution storage system, evaluation value addition method, server device, node device and node processing program
JP5157770B2 (en) Node device, program, and storage instruction method
JP5434268B2 (en) Distributed storage system, data file distributed storage method and program
JP2011008657A (en) Content distribution system, node device, content distribution method, and node program
JP5338774B2 (en) Distribution system, information processing apparatus, information processing program, and content input method
JP5494361B2 (en) Distributed storage system, representative node device, notification method, and program

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