JP4770804B2 - Overlay network type communication system, overlay network type node device and program - Google Patents

Overlay network type communication system, overlay network type node device and program Download PDF

Info

Publication number
JP4770804B2
JP4770804B2 JP2007174735A JP2007174735A JP4770804B2 JP 4770804 B2 JP4770804 B2 JP 4770804B2 JP 2007174735 A JP2007174735 A JP 2007174735A JP 2007174735 A JP2007174735 A JP 2007174735A JP 4770804 B2 JP4770804 B2 JP 4770804B2
Authority
JP
Japan
Prior art keywords
node
participation request
node device
overlay network
information
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.)
Expired - Fee Related
Application number
JP2007174735A
Other languages
Japanese (ja)
Other versions
JP2009017069A (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 JP2007174735A priority Critical patent/JP4770804B2/en
Publication of JP2009017069A publication Critical patent/JP2009017069A/en
Application granted granted Critical
Publication of JP4770804B2 publication Critical patent/JP4770804B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、複数のノード装置の参加によって構築されるオーバレイネットワーク上で複数のノード装置が相互に通信を行うための技術に関するものであり、特に、各ノード装置のオーバレイネットワーク上における論理的位置を表すノードIDを各ノード装置が決定する技術に関するものである。   The present invention relates to a technique for a plurality of node devices to communicate with each other on an overlay network constructed by participation of a plurality of node devices, and in particular, to determine the logical position of each node device on the overlay network. The present invention relates to a technique in which each node device determines a node ID to be represented.

複数のノード装置(例えば、複数のパーソナルコンピュータ)間でコンテンツ(例えば、視聴覚コンテンツ)等の情報を共有するために、複数のノード装置の参加によってオーバレイネットワークを論理的に構築し、そのオーバレイネットワーク上で前記複数のノード装置が相互に通信を行うことを可能にする技術が既に実用化されている。   In order to share information such as contents (for example, audiovisual contents) among a plurality of node devices (for example, a plurality of personal computers), an overlay network is logically constructed by the participation of the plurality of node devices, and Thus, a technology that enables the plurality of node devices to communicate with each other has already been put into practical use.

そのような通信システムの一例が特許文献1にピアツーピア型コンテンツ配信システムとして開示されている。このオーバレイネットワーク型通信システムにおいては、複数のノード装置に、オーバレイネットワーク上における複数の論理的位置がそれぞれ割り当てられる。複数のノード装置にそれぞれ割り当てられる複数の論理的位置を、オーバレイネットワーク上において分散して記憶させるために、例えば、分散ハッシュテーブルDHT(Distributed Hash Table)が用いられる。   An example of such a communication system is disclosed in Patent Document 1 as a peer-to-peer type content distribution system. In this overlay network type communication system, a plurality of logical positions on the overlay network are assigned to a plurality of node devices, respectively. For example, a distributed hash table (DHT) is used in order to distribute and store a plurality of logical positions respectively assigned to a plurality of node devices on the overlay network.

各ノード装置のオーバレイネットワーク上における論理的位置を識別するためのデータは、一般に、ノードIDと称される。例えば、上述のDHTを用いる場合には、予め定められたハッシュ関数を各ノード装置ごとに固有な情報に適用し、その結果得られた値をノードIDとして採用する。
特開2006−197400号公報
Data for identifying a logical position of each node device on the overlay network is generally referred to as a node ID. For example, when the above-described DHT is used, a predetermined hash function is applied to information unique to each node device, and a value obtained as a result is adopted as the node ID.
JP 2006-197400 A

一般に、各ノード装置は、オーバレイネットワークに参加するのに先立ち、各ノード装置に固有の情報(例えば、各ノード装置に割り当てられたIPアドレス、MACアドレス、各ノード装置の製造番号、オーバレイネットワークに参加するときの日付時刻等)に基づき、予め定められた規則(例えば、固有情報に対して、複数のノード装置に共通のハッシュ関数を適用する)に従って、自ノード装置のノードIDを決定するように設計される。   In general, before each node device participates in the overlay network, information unique to each node device (eg, IP address, MAC address assigned to each node device, serial number of each node device, participation in the overlay network) The node ID of the own node device is determined in accordance with a predetermined rule (for example, a hash function common to a plurality of node devices is applied to the specific information) based on the date and time when Designed.

ノードIDは、それぞれのノード装置に固有であるように決定されるべきである。しかし、各ノード装置が前記予め定られた規則に従ってノードIDを決定する際、ハッシュ関数等の性質(2つの別々の値を同じハッシュ関数に与えても、2つの結果が同じになることがあり得る。)により、確率は非常に低いとはいえ、複数のノード装置に同一のノードIDが割り当てられてしまう可能性がある。   The node ID should be determined so as to be unique to each node device. However, when each node device determines the node ID according to the predetermined rule, the properties such as the hash function (the two results may be the same even if two separate values are given to the same hash function) Therefore, although the probability is very low, the same node ID may be assigned to a plurality of node devices.

複数のノード装置が、それらノード装置に同一のノードIDが割り当てられたまま、オーバレイネットワークに参加してしまうと、あるノード装置が新しいコンテンツを他のノード装置にも見えるように公開するための公開メッセージ(publishメッセージ)を他のノード装置に配信しても、その公開メッセージが、同一のノードIDが割り当てられた複数のノード装置のうちのいずれに到達するのかが分からない。   When a plurality of node devices participate in the overlay network with the same node ID assigned to the node devices, a disclosure is made so that a node device can make new contents visible to other node devices. Even if a message (publish message) is distributed to another node device, it is not known which of the plurality of node devices to which the same node ID is assigned the published message.

このように、新しいコンテンツのための公開メッセージの到達先が不明であると、他のノード装置が、そのコンテンツをオーバレイネットワーク上において見つけようとしても、オーバレイネットワーク上において正しいルーティングが行われない。正しいルーティングが行われないと、各ノード装置は、目標のコンテンツがオーバレイネットワーク上に存在するにもかかわらず、目標のコンテンツを保有するコンテンツホルダに到達することができず、目標のコンテンツを見つけることができない。   As described above, when the destination of the public message for new content is unknown, even if another node device tries to find the content on the overlay network, correct routing is not performed on the overlay network. If correct routing is not performed, each node device cannot reach the content holder that holds the target content even though the target content exists on the overlay network, and finds the target content. I can't.

一方、複数のノード装置に同一のノードIDが割り当てられてしまう可能性がある場合に、複数のノード装置に共通の管理サーバをオーバレイネットワークに設置してその管理サーバにノードIDを管理させれば、複数のノード装置に同一のノードIDが割り当てられてしまうことを防止することが容易である。しかし、そのような管理サーバを設置すると、新たなコストおよびメンテンナンスの必要性が発生するため、そのような管理サーバはできる限り省略することが望ましい。   On the other hand, when there is a possibility that the same node ID may be assigned to a plurality of node devices, if a management server common to the plurality of node devices is installed in the overlay network and the node ID is managed by the management server It is easy to prevent the same node ID from being assigned to a plurality of node devices. However, when such a management server is installed, new costs and maintenance are required. Therefore, it is desirable to omit such a management server as much as possible.

以上説明した事情を背景とし、本発明は、ノード装置のオーバレイネットワーク上における論理的位置を表すノードIDを管理する管理サーバの介入を不可欠とすることなく、複数のノード装置に同一のノードIDが割り当てられてしまうことがないように自ノード装置のノードIDを決定する技術を提供することを課題としてなされたものである。   Against the background described above, the present invention provides the same node ID to a plurality of node devices without requiring the intervention of a management server that manages the node ID representing the logical position of the node device on the overlay network. An object of the present invention is to provide a technique for determining the node ID of the own node device so that it is not assigned.

本発明によって下記の各態様が得られる。各態様は、項に区分し、各項には番号を付し、必要に応じて他の項の番号を引用する形式で記載する。これは、本発明が採用し得る技術的特徴の一部およびそれの組合せの理解を容易にするためであり、本発明が採用し得る技術的特徴およびそれの組合せが以下の態様に限定されると解釈すべきではない。すなわち、下記の態様には記載されていないが本明細書には記載されている技術的特徴を本発明の技術的特徴として適宜抽出して採用することは妨げられないと解釈すべきなのである。   The following aspects are obtained by the present invention. Each aspect is divided into sections, each section is given a number, and is described in a form that cites other section numbers as necessary. This is to facilitate understanding of some of the technical features that the present invention can employ and combinations thereof, and the technical features that can be employed by the present invention and combinations thereof are limited to the following embodiments. Should not be interpreted. That is, it should be construed that it is not impeded to appropriately extract and employ the technical features described in the present specification as technical features of the present invention although they are not described in the following embodiments.

さらに、各項を他の項の番号を引用する形式で記載することが必ずしも、各項に記載の技術的特徴を他の項に記載の技術的特徴から分離させて独立させることを妨げることを意味するわけではなく、各項に記載の技術的特徴をその性質に応じて適宜独立させることが可能であると解釈すべきである。   Further, describing each section in the form of quoting the numbers of the other sections does not necessarily prevent the technical features described in each section from being separated from the technical features described in the other sections. It should not be construed as meaning, but it should be construed that the technical features described in each section can be appropriately made independent depending on the nature.

(1) 複数のノード装置の参加によってオーバレイネットワークが構築され、そのオーバレイネットワーク上で前記複数のノード装置が相互に通信を行うオーバレイネットワーク型通信システムであって、
各ノード装置は、
前記オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、自ノード装置が前記オーバレイネットワークに参加した場合に自ノード装置が前記オーバレイネットワーク上に位置することとなる論理的位置を一意に特定するためのノードIDを決定するノードID決定手段と、
自ノード装置が、これから前記オーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、他のノード装置のノードIDとそのノード装置との通信に必要な通信情報との関係を取得してその関係を記憶手段に記憶させるために、自ノード装置が前記オーバレイネットワークに参加したいという要求を表し、かつ、前記決定されたノードIDを含む参加要求情報を前記複数のノード装置のうちのいずれかに送信する参加要求情報送信手段と、
前記参加要求情報を受信した場合に、前記記憶手段に記憶されている他のノード装置のノードIDのうち、前記受信された参加要求情報に含まれるノードIDに近いノードIDを有する他のノード装置に前記参加要求情報を転送する転送手段と、
前記参加要求情報を受信し、かつ、前記記憶手段に記憶されている他のノード装置のノードIDより自ノード装置のノードIDの方が、前記受信された参加要求情報に含まれるノードIDに近く、そのため、前記転送手段の転送先が存在しない場合に、前記参加要求情報に対応する参加要求返信情報を前記参加要求ノード装置に送信する参加要求返信情報送信手段と、
受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定するノードID変更要否判定手段と、
そのノードID変更要否判定手段により自ノード装置のノードIDを変更すると判定された場合に、自ノード装置のノードIDを変更するノードID変更手段と、
自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む前記参加要求情報を前記複数のノード装置のうちのいずれかに再送する再送手段と
を含むオーバレイネットワーク型通信システム。
(1) An overlay network communication system in which an overlay network is constructed by participation of a plurality of node devices, and the plurality of node devices communicate with each other on the overlay network,
Each node device
Prior to joining the overlay network, when the own node apparatus joins the overlay network according to a predetermined rule based on predetermined information, the own node apparatus is located on the overlay network. Node ID determination means for determining a node ID for uniquely identifying the position;
When the own node device is a participation request node device that requests to participate in the overlay network from now on, the relationship between the node ID of the other node device and the communication information necessary for communication with the node device is acquired. In order to store the relationship in the storage means, the node device represents a request that the node device wants to participate in the overlay network and includes participation request information including the determined node ID in any of the plurality of node devices. Participation request information transmitting means for transmitting
When receiving the participation request information, other node devices having a node ID close to the node ID included in the received participation request information among node IDs of other node devices stored in the storage unit Transfer means for transferring the participation request information to
The node ID of the own node device is closer to the node ID included in the received participation request information than the node IDs of the other node devices stored in the storage means. Therefore, when there is no transfer destination of the transfer means, participation request reply information transmitting means for transmitting participation request reply information corresponding to the participation request information to the participation request node device;
Node ID change necessity determination means for determining whether or not to change the node ID of the own node device based on the received participation request reply information;
A node ID changing unit that changes the node ID of the own node device when the node ID change necessity determining unit determines to change the node ID of the own node device;
An overlay network type communication system comprising: retransmission means for resending the participation request information including the changed node ID to any one of the plurality of node devices when the node ID of the own node device is changed.

このオーバレイネットワーク型通信システムを構成する各ノード装置は、オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、自ノード装置のノードIDを決定する。   Prior to joining the overlay network, each node device constituting this overlay network type communication system determines the node ID of its own node device according to a predetermined rule based on predetermined information.

各ノード装置は、自ノード装置が、これからオーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、参加要求情報を複数のノード装置のうちのいずれかに送信する。そして、各ノード装置は、自ノード装置が参加要求ノード装置でも後述の最終転送先でもない状態で、他のノード装置から参加要求情報を受信した場合に、自ノード装置の記憶手段に記憶されている他のノード装置のノードIDのうち、受信された参加要求情報に含まれるノードID(参加要求ノード装置のノードID)に論理空間的に近いノードIDを有する他のノード装置に参加要求情報を転送する。   Each node device transmits participation request information to one of a plurality of node devices when the node device is a participation request node device that requests to join the overlay network. When each node device receives participation request information from another node device in a state where the node device is neither a participation request node device nor a final transfer destination described below, each node device is stored in the storage means of the own node device. Among the node IDs of the other node devices, the participation request information is sent to the other node devices having a node ID logically close to the node ID (node ID of the participation request node device) included in the received participation request information. Forward.

本項に係るオーバレイネットワーク型通信システムを構成する各ノード装置は、自ノード装置が参加要求ノード装置ではないが、最終転送先である状態で、他のノード装置から参加要求情報を受信した場合に、参加要求情報に対応する参加要求返信情報を参加要求ノード装置に送信する。   Each node device configuring the overlay network type communication system according to this section, when its own node device is not a participation request node device, but receives participation request information from another node device in a state where it is a final transfer destination. The participation request reply information corresponding to the participation request information is transmitted to the participation request node device.

本項に係るオーバレイネットワーク型通信システムを構成する各ノード装置は、受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定し、変更すると判定した場合に、自ノード装置のノードIDを変更する。そして、各ノード装置は、自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む参加要求情報を複数のノード装置のうちのいずれかに再送する。   Each node device constituting the overlay network type communication system according to this section determines whether or not to change the node ID of its own node device based on the received participation request reply information. The node ID of the node device is changed. Then, when the node ID of the own node device is changed, each node device retransmits the participation request information including the changed node ID to any one of the plurality of node devices.

したがって、本項に係るオーバレイネットワーク型通信システムによれば、複数のノード装置に同一のノードIDが割り当てられてしまう事態が、管理サーバの設置を不可欠とすることなく、防止される。   Therefore, according to the overlay network type communication system according to this section, the situation where the same node ID is assigned to a plurality of node devices is prevented without making the management server indispensable.

(2) 複数のノード装置の参加によってオーバレイネットワークが構築され、そのオーバレイネットワーク上で前記複数のノード装置が相互に通信を行うオーバレイネットワーク型通信方法であって、
前記オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、各ノード装置が前記オーバレイネットワークに参加した場合に各ノード装置が前記オーバレイネットワーク上に位置することとなる論理的位置を一意に特定するためのノードIDを決定するノードID決定工程と、
自ノード装置が、これから前記オーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、他のノード装置のノードIDとそのノード装置との通信に必要な通信情報との関係を取得してその関係を記憶手段に記憶させるために、自ノード装置が前記オーバレイネットワークに参加したいという要求を表し、かつ、前記決定されたノードIDを含む参加要求情報を前記複数のノード装置のうちのいずれかに送信する参加要求情報送信工程と、
前記参加要求情報を受信した場合に、前記記憶手段に記憶されている他のノード装置のノードIDのうち、前記受信された参加要求情報に含まれるノードIDに近いノードIDを有する他のノード装置に前記参加要求情報を転送する転送工程と、
前記参加要求情報を受信し、かつ、前記記憶手段に記憶されている他のノード装置のノードIDより自ノード装置のノードIDの方が、前記受信された参加要求情報に含まれるノードIDに近く、そのため、前記転送手段の転送先が存在しない場合に、前記参加要求情報に対応する参加要求返信情報を前記参加要求ノード装置に送信する参加要求返信情報送信工程と、
受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定するノードID変更要否判定工程と、
そのノードID変更要否判定工程により自ノード装置のノードIDを変更すると判定された場合に、自ノード装置のノードIDを変更するノードID変更工程と、
自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む前記参加要求情報を前記複数のノード装置のうちのいずれかに再送する再送工程と
を含むオーバレイネットワーク型通信方法。
(2) An overlay network type communication method in which an overlay network is constructed by participation of a plurality of node devices, and the plurality of node devices communicate with each other on the overlay network,
Prior to joining the overlay network, when each node device joins the overlay network according to a predetermined rule based on predetermined information, each node device is positioned on the overlay network. A node ID determining step for determining a node ID for uniquely identifying the position;
When the own node device is a participation request node device that requests to participate in the overlay network from now on, the relationship between the node ID of the other node device and the communication information necessary for communication with the node device is acquired. In order to store the relationship in the storage means, the node device represents a request that the node device wants to participate in the overlay network and includes participation request information including the determined node ID in any of the plurality of node devices. A participation request information sending step for sending
When receiving the participation request information, other node devices having a node ID close to the node ID included in the received participation request information among node IDs of other node devices stored in the storage unit Transferring the participation request information to:
The node ID of the own node device is closer to the node ID included in the received participation request information than the node IDs of the other node devices stored in the storage means. Therefore, when there is no transfer destination of the transfer means, a participation request reply information transmission step of transmitting participation request reply information corresponding to the participation request information to the participation request node device;
A node ID change necessity determination step for determining whether to change the node ID of the own node device based on the received participation request reply information;
A node ID changing step of changing the node ID of the own node device when it is determined that the node ID of the own node device is changed by the node ID change necessity determining step;
And a retransmission step of resending the participation request information including the changed node ID to any one of the plurality of node devices when the node ID of the own node device is changed.

このオーバレイネットワーク型通信方法は、前記(1)項に係るオーバレイネットワーク型通信システムの動作方法として実行される。その動作方法は前記(1)項において説明されているため、以下、このオーバレイネットワーク型通信方法を簡単に説明する。   This overlay network type communication method is executed as an operation method of the overlay network type communication system according to the item (1). Since the operation method is described in the above section (1), the overlay network type communication method will be briefly described below.

このオーバレイネットワーク型通信方法が実行されると、各ノード装置は、オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、自ノード装置のノードIDを決定する。   When this overlay network type communication method is executed, each node device determines the node ID of its own node device according to a predetermined rule based on predetermined information prior to joining the overlay network.

さらに、各ノード装置は、自ノード装置が参加要求ノード装置である場合に、参加要求情報を複数のノード装置のうちのいずれかに送信する。   Further, each node device transmits participation request information to one of a plurality of node devices when the node device is a participation request node device.

さらに、各ノード装置は、自ノード装置が参加要求ノード装置でも後述の最終転送先でもない状態で、他のノード装置から参加要求情報を受信した場合に、自ノード装置の記憶手段に記憶されている他のノード装置のノードIDのうち、参加要求ノード装置のノードIDに論理空間的に近いノードIDを有する他のノード装置に参加要求情報を転送する。   Further, each node device is stored in the storage means of its own node device when it receives participation request information from another node device in a state where the own node device is neither a participation request node device nor a final transfer destination described later. The participation request information is transferred to another node device having a node ID logically close to the node ID of the participation request node device among the node IDs of the other node devices.

さらに、各ノード装置は、自ノード装置が参加要求ノード装置ではないが、最終転送先である状態で、他のノード装置から参加要求情報を受信した場合に、参加要求情報に対応する参加要求返信情報を参加要求ノード装置に送信する。   Furthermore, each node device returns a participation request corresponding to the participation request information when the local node device is not a participation request node device but receives participation request information from another node device in a state where it is a final transfer destination. The information is transmitted to the participation request node device.

さらに、各ノード装置は、受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定し、自ノード装置のノードIDを変更すると判定した場合に、自ノード装置のノードIDを変更する。   Further, each node device determines whether or not to change the node ID of the own node device based on the received participation request reply information, and when it is determined to change the node ID of the own node device, Change the node ID.

さらに、各ノード装置は、自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む参加要求情報を複数のノード装置のうちのいずれかに再送する。   Further, when the node ID of the own node device is changed, each node device retransmits participation request information including the changed node ID to any one of the plurality of node devices.

したがって、本項に係るオーバレイネットワーク型通信方法によれば、複数のノード装置に同一のノードIDが割り当てられてしまう事態が、管理サーバの設置を不可欠とすることなく、防止される。   Therefore, according to the overlay network type communication method according to the present section, a situation in which the same node ID is assigned to a plurality of node devices is prevented without making it necessary to install a management server.

(3) 他のノード装置と共に参加することによってオーバレイネットワークを構築し、そのオーバレイネットワーク上で他のノード装置と通信を行うオーバレイネットワーク型ノード装置であって、
前記オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、自ノード装置が前記オーバレイネットワークに参加した場合に自ノード装置が前記オーバレイネットワーク上に位置することとなる論理的位置を一意に特定するためのノードIDを決定するノードID決定手段と、
自ノード装置が、これから前記オーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、他のノード装置のノードIDとそのノード装置との通信に必要な通信情報との関係を取得してその関係を記憶手段に記憶させるために、自ノード装置が前記オーバレイネットワークに参加したいという要求を表し、かつ、前記決定されたノードIDを含む参加要求情報を前記複数のノード装置のうちのいずれかに送信する参加要求情報送信手段と、
前記参加要求情報を受信した場合に、前記記憶手段に記憶されている他のノード装置のノードIDのうち、前記受信された参加要求情報に含まれるノードIDに近いノードIDを有する他のノード装置に前記参加要求情報を転送する転送手段と、
前記参加要求情報を受信し、かつ、前記記憶手段に記憶されている他のノード装置のノードIDより自ノード装置のノードIDの方が、前記受信された参加要求情報に含まれるノードIDに近く、そのため、前記転送手段の転送先が存在しない場合に、前記参加要求情報に対応する参加要求返信情報を前記参加要求ノード装置に送信する参加要求返信情報送信手段と、
受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定するノードID変更要否判定手段と、
そのノードID変更要否判定手段により自ノード装置のノードIDを変更すると判定された場合に、自ノード装置のノードIDを変更するノードID変更手段と、
自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む前記参加要求情報を前記複数のノード装置のうちのいずれかに再送する再送手段と
を含むオーバレイネットワーク型ノード装置。
(3) An overlay network type node device that constructs an overlay network by participating together with other node devices and communicates with other node devices on the overlay network,
Prior to joining the overlay network, when the own node apparatus joins the overlay network according to a predetermined rule based on predetermined information, the own node apparatus is located on the overlay network. Node ID determination means for determining a node ID for uniquely identifying the position;
When the own node device is a participation request node device that requests to participate in the overlay network from now on, the relationship between the node ID of the other node device and the communication information necessary for communication with the node device is acquired. In order to store the relationship in the storage means, the node device represents a request that the node device wants to participate in the overlay network and includes participation request information including the determined node ID in any of the plurality of node devices. Participation request information transmitting means for transmitting
When receiving the participation request information, other node devices having a node ID close to the node ID included in the received participation request information among node IDs of other node devices stored in the storage unit Transfer means for transferring the participation request information to
The node ID of the own node device is closer to the node ID included in the received participation request information than the node IDs of the other node devices stored in the storage means. Therefore, when there is no transfer destination of the transfer means, participation request reply information transmitting means for transmitting participation request reply information corresponding to the participation request information to the participation request node device;
Node ID change necessity determination means for determining whether or not to change the node ID of the own node device based on the received participation request reply information;
A node ID changing unit that changes the node ID of the own node device when the node ID change necessity determining unit determines to change the node ID of the own node device;
An overlay network type node device comprising: retransmission means for resending the participation request information including the changed node ID to any of the plurality of node devices when the node ID of the own node device is changed.

このオーバレイネットワーク型ノード装置は、前記(1)項に係るオーバレイネットワーク型通信システムを構成する複数のノード装置のそれぞれに該当する。各ノード装置の構成および作用については、前記(1)項において説明されているため、ここでは、重複した説明を省略する。   This overlay network type node device corresponds to each of a plurality of node devices constituting the overlay network type communication system according to the item (1). Since the configuration and operation of each node device have been described in the above section (1), redundant description is omitted here.

(4) 前記参加要求返信情報送信手段は、前記転送手段の転送先が存在しない場合に、自ノード装置のノードIDを含み、かつ、前記参加要求情報に対応する前記参加要求返信情報を前記参加要求ノード装置に送信する手段を含み、
前記ノードID変更要否判定手段は、受信した参加要求返信情報に含まれるノードIDが自ノード装置のノードIDと一致する場合に、自ノード装置のノードIDを変更すると判定する手段を含む(3)項に記載のオーバレイネットワーク型ノード装置。
(4) The participation request reply information transmitting unit includes the participation request reply information corresponding to the participation request information, which includes a node ID of the own node device when the transfer unit has no transfer destination. Means for transmitting to the requesting node device;
The node ID change necessity determination means includes means for determining that the node ID of the own node device is changed when the node ID included in the received participation request reply information matches the node ID of the own node device (3 The overlay network type node device according to the item).

(5) 前記参加要求返信情報送信手段は、前記転送手段の転送先が存在しない場合に、前記参加要求情報に含まれる参加要求ノード装置のノードIDが自ノード装置のノードIDと一致するか否かを判定し、一致すると判定した場合に、ノードIDの変更を指示するノードID変更指示情報を含む前記参加要求返信情報を前記参加要求ノード装置に送信する手段を含み、
前記ノードID変更要否判定手段は、受信した参加要求返信情報に前記ノードID変更指示情報が含まれている場合に、自ノード装置のノードIDを変更すると判定する手段を含む(3)項に記載のオーバレイネットワーク型ノード装置。
(5) The participation request reply information transmitting unit determines whether or not the node ID of the participation request node device included in the participation request information matches the node ID of the own node device when there is no transfer destination of the transfer unit. Means for transmitting the participation request reply information including the node ID change instruction information for instructing the change of the node ID to the participation request node device when it is determined that they match,
The node ID change necessity determining means includes means for determining that the node ID of the own node apparatus is changed when the node ID change instruction information is included in the received participation request reply information. The described overlay network type node device.

(6) 前記ノードID変更手段は、前記ノードID決定手段によって決定されたもとのノードIDを参照することなく、そのもとのノードIDを決定するために用いられた前記所定情報および/または前記規則とは異なる情報および/または規則を用いて、前記もとのノードIDとは異なる新たなノードIDを取得する取得手段を含む(3)ないし(5)項のいずれかに記載のオーバレイネットワーク型ノード装置。 (6) The predetermined node information and / or the rule used for determining the original node ID without referring to the original node ID determined by the node ID determining unit. The overlay network type node according to any one of (3) to (5), further including an acquisition unit that acquires a new node ID different from the original node ID using information and / or rules different from apparatus.

(7) 前記取得手段は、前記もとのノードIDを決定するために用いられた情報とは別の情報を追加的にまたは代替的に用いることにより、前記新たなノードIDを取得する手段を含む(6)項に記載のオーバレイネットワーク型ノード装置。 (7) The acquisition means includes means for acquiring the new node ID by additionally or alternatively using information different from the information used for determining the original node ID. The overlay network type node device according to item (6).

(8) 前記ノードID変更手段は、前記ノードID決定手段によって決定されたもとのノードIDを参照することにより、そのもとのノードIDとは異なる新たなノードIDを取得する取得手段を含む(3)ないし(5)項のいずれかに記載のオーバレイネットワーク型ノード装置。 (8) The node ID changing means includes an acquiring means for acquiring a new node ID different from the original node ID by referring to the original node ID determined by the node ID determining means (3 The overlay network type node device according to any one of items (5) to (5).

(9) 前記取得手段は、前記もとのノードIDに対して予め定められた演算を行うことにより、前記新たなノードIDを取得する手段を含む(8)項に記載のオーバレイネットワーク型ノード装置。 (9) The overlay network type node device according to (8), wherein the acquisition unit includes a unit that acquires the new node ID by performing a predetermined calculation on the original node ID. .

(10) 前記オーバレイネットワークに参加した際に用いたノードIDを、自ノード装置の電源遮断後にも保存する保存手段と、
前記オーバレイネットワークに参加しようとする際に、前記保存手段からノードIDを読み出し、その読み出されたノードIDを、自ノード装置がこれから前記オーバレイネットワークに参加するために用いるノードIDの初期値として設定する設定手段と
を含み、
前記参加要求情報送信手段は、前記設定手段によって設定されたノードIDを含む前記参加要求情報を前記複数のノード装置のいずれかに送信する(3)ないし(9)項のいずれかに記載のオーバレイネットワーク型ノード装置。
(10) storage means for storing the node ID used when participating in the overlay network even after the power of the own node device is shut down;
When attempting to join the overlay network, the node ID is read from the storage means, and the read node ID is set as an initial value of the node ID used by the own node device to join the overlay network from now on. Including setting means to
The overlay request according to any one of (3) to (9), wherein the participation request information transmitting unit transmits the participation request information including the node ID set by the setting unit to any of the plurality of node devices. Network type node equipment.

このオーバレイネットワーク型ノード装置によれば、自ノード装置が、その電源が投入された後、自ノード装置が前回の電源オン中に、オーバレイネットワークに参加した際に用いたノードIDと同じノードIDを用いて、オーバレイネットワークに参加することが可能となる。   According to this overlay network type node device, after its own power is turned on, the node device uses the same node ID as that used when the node device joined the overlay network during the previous power-on. To join the overlay network.

したがって、このオーバレイネットワーク型ノード装置によれば、自ノード装置が、その電源が投入された後、自ノード装置が前回の電源オン中に、オーバレイネットワークに参加した際にオーバレイネットワーク上に論理的に配置された位置と同じ位置に論理的に配置される。   Therefore, according to this overlay network type node device, the self node device logically appears on the overlay network when it joins the overlay network during the previous power-on after its power is turned on. It is logically arranged at the same position as the arranged position.

よって、このオーバレイネットワーク型ノード装置によれば、自ノード装置が特定のコンテンツ等、情報を探索するために、オーバレイネットワークについてルーティングが、前回参加時と今回参加時とで同じ経路で行われる可能性が高くなり、情報の探索や転送が停滞せずに済む。   Therefore, according to this overlay network type node device, in order for the own node device to search for information such as specific contents, there is a possibility that routing is performed on the overlay network through the same route at the previous participation and at the current participation. And the search and transfer of information does not stagnate.

(11) 前記ノードID決定手段は、前記保存手段にノードIDが保存されていない場合に、前記所定情報に基づき、前記予め定められた規則に従って、ノードIDを決定する(10)項に記載のオーバレイネットワーク型ノード装置。 (11) The node ID determination unit determines the node ID according to the predetermined rule based on the predetermined information when the node ID is not stored in the storage unit. Overlay network type node device.

(12) 自ノード装置が前記参加要求ノード装置ではない状態で前記参加要求情報を受信した場合に、前記参加要求ノード装置が他のノード装置のノードIDと前記通信情報との関係を取得してその関係を前記参加要求ノード装置の前記記憶手段に記憶させることを可能とするために、前記参加要求情報に対応する処理を前記参加要求ノード装置に対して実行する参加要求情報対応処理実行手段を含む(3)ないし(11)項のいずれかに記載のオーバレイネットワーク型ノード装置。 (12) When the participation request node apparatus receives the participation request information in a state where the own node apparatus is not the participation request node apparatus, the participation request node apparatus acquires a relationship between a node ID of another node apparatus and the communication information. Participation request information corresponding process execution means for executing processing corresponding to the participation request information for the participation request node apparatus in order to allow the storage means of the participation request node apparatus to store the relationship. The overlay network type node device according to any one of (3) to (11).

このノード装置によれば、自ノード装置が参加要求ノード装置ではない状態で参加要求情報を受信した場合に、その参加要求情報に対応する処理が参加要求ノード装置に対して実行され、それにより、参加要求ノード装置が前述のルーティングテーブルを作成することが支援される。   According to this node device, when the participation request information is received in a state where the own node device is not a participation request node device, a process corresponding to the participation request information is executed for the participation request node device, thereby It is supported that the participation request node device creates the routing table described above.

その結果、参加要求ノード装置は、他のノード装置に参加要求情報を送信すると、それに応答して、他のノード装置から、ルーティングテーブルを作成するために必要な情報を受信することになる。すなわち、参加要求ノード装置は、ルーティングテーブルを作成するために、参加要求情報を他のノード装置に送信するのである。   As a result, when the participation request node device transmits participation request information to another node device, in response thereto, information necessary for creating a routing table is received from the other node device. That is, the participation request node device transmits participation request information to another node device in order to create a routing table.

(13) (3)ないし(12)項のいずれかに記載のオーバレイネットワーク型ノード装置を動作させるためにコンピュータによって実行されるプログラム。 (13) A program executed by a computer to operate the overlay network type node device according to any one of (3) to (12).

このプログラムがコンピュータにより実行されれば、前記(3)ないし(12)項のいずれかに係るオーバレイネットワーク型ノード装置と基本的に同じ原理に従い、同様な作用効果が実現され得る。   If this program is executed by a computer, the same operation and effect can be realized according to basically the same principle as that of the overlay network type node device according to any one of the above items (3) to (12).

本項に係るプログラムは、それの機能を果たすためにコンピュータにより実行される指令の組合せのみならず、各指令に従って処理されるファイルやデータをも含むように解釈することが可能である。   The program according to this section can be interpreted so as to include not only a combination of instructions executed by a computer to fulfill its function, but also files and data processed in accordance with each instruction.

また、このプログラムは、それ単独でコンピュータにより実行されることにより、所期の目的を達するものとしたり、他のプログラムと共にコンピュータにより実行されることにより、所期の目的を達するものとすることができる。後者の場合、本項に係るプログラムは、データを主体とするものとすることができる。   In addition, this program may achieve its intended purpose by being executed by a computer alone, or may be intended to achieve its intended purpose by being executed by a computer together with other programs. it can. In the latter case, the program according to this section can be mainly composed of data.

(14) (13)項に記載のプログラムをコンピュータ読取り可能に記録した記録媒体。 (14) A recording medium on which the program according to item (13) is recorded so as to be readable by a computer.

この記録媒体に記録されているプログラムがコンピュータにより実行されれば、前記(3)ないし(12)項のいずれかに係るオーバレイネットワーク型ノード装置と基本的に同じ原理に従い、同様な作用効果が実現され得る。   When the program recorded on this recording medium is executed by a computer, the same operation effect is realized according to basically the same principle as the overlay network type node device according to any one of the above items (3) to (12). Can be done.

この記録媒体は種々な形式を採用可能であり、例えば、フレキシブル・ディスク等の磁気記録媒体、CD、CD−ROM等の光記録媒体、MO等の光磁気記録媒体、ROM等のアンリムーバブル・ストレージ等のいずれかを採用し得る。   This recording medium can adopt various formats, for example, a magnetic recording medium such as a flexible disk, an optical recording medium such as a CD and a CD-ROM, a magneto-optical recording medium such as an MO, and an unremovable storage such as a ROM. Any of these may be adopted.

以下、本発明のさらに具体的な実施の形態のうちの一つを図面に基づいて詳細に説明する。本実施形態は、DHTを用いてオーバレイネットワークを構成して複数のノード装置間においてコンテンツ等の情報を共有しつつピアツーピア通信を行うことを可能にする情報通信システムSに本発明を適用する場合の一例である。   Hereinafter, one of more specific embodiments of the present invention will be described in detail with reference to the drawings. In the present embodiment, when the present invention is applied to an information communication system S that makes it possible to perform peer-to-peer communication while sharing information such as content among a plurality of node devices by configuring an overlay network using DHT. It is an example.

[全体的概略]
図1には、この情報通信システムSの接続構成が系統的に示されている。この情報通信システムSにおいては、各ノード装置が、時間的に変化する役割の種類に応じて種々の処理を選択的に行う。概略的には、各ノード装置(図1においては、白丸で表す。)は、次の処理を行う。
[Overall outline]
FIG. 1 systematically shows the connection configuration of the information communication system S. In this information communication system S, each node device selectively performs various processes according to the type of role that changes over time. Schematically, each node device (represented by white circles in FIG. 1) performs the following processing.

1.ノードIDの計算
自ノード装置は、オーバレイネットワークに参加するのに先立ち、所定情報(例えば、自ノード装置のIPアドレス、MACアドレス、製造番号等)に基づき、予め定められたハッシュ関数に従って、自ノード装置のノードIDを計算する。
1. Calculation of Node ID Prior to participating in the overlay network, the own node device is determined according to a predetermined hash function based on predetermined information (eg, IP address, MAC address, serial number, etc. of the own node device). Calculate the node ID of the device.

2.ルーティングテーブルの作成
2−1.コンタクトノードへの参加(JOIN)メッセージの送信
自ノード装置は、自ノード装置が参加要求ノード装置(以下、「参加要求ノード」ともいう。)である場合に、自ノード装置用のルーティングテーブルを作成することを目的として、参加メッセージ(前述の「参加要求情報」の一例である。)を、複数のノード装置のうちのいずれかであるコンタクトノード装置(以下、「コンタクトノード」ともいう。)に送信する。
2. 2. Creation of routing table 2-1. Sending a Join (JOIN) Message to a Contact Node The local node device creates a routing table for the local node device when the local node device is a participation request node device (hereinafter also referred to as “participation request node”). For this purpose, the participation message (which is an example of the above-mentioned “participation request information”) is sent to a contact node device (hereinafter also referred to as “contact node”) that is one of a plurality of node devices. Send.

参加要求ノードは、コンタクトノードに対し、参加メッセージをそのコンタクトノードに送信する。その参加メッセージは、その送信が成功するか否かによって、コンタクトノードが現に同じオーバレイネットワークに存在しているか否かを確認する目的も有する。すなわち、参加メッセージは、存在確認メッセージとしての機能も有しているのである。   The participation request node transmits a participation message to the contact node. The join message also has the purpose of confirming whether the contact node is actually in the same overlay network, depending on whether the transmission is successful. That is, the participation message also has a function as a presence confirmation message.

コンタクトノードは、自身が記憶しているルーティングテーブルから、参加メッセージに含まれる領域指定情報(ルーティングテーブルのレベルを指定するための情報)に該当する他のノード装置のノードIDを読み出す。このコンタクトノードは、さらに、その該当する他のノード装置に対し、そのノード装置が現に同じオーバレイネットワークに存在しているか否かに関する情報を参加要求ノードに返信することを要求するために、存在確認メッセージを、該当する他のノード装置に送信する。   The contact node reads the node IDs of other node devices corresponding to the area designation information (information for designating the level of the routing table) included in the participation message from the routing table stored in the contact node. This contact node further confirms its existence to request that the corresponding other node device returns information to the participation request node regarding whether or not the node device actually exists in the same overlay network. The message is transmitted to the corresponding other node device.

2−2.参加メッセージの転送
自ノード装置は、自ノード装置が参加要求ノードでも、参加メッセージの最終転送先ノード(ルートノード)でもない状態で、他のノード装置から参加メッセージを受信した場合に、自ノード装置に記憶されている他のノード装置のノードIDのうち、参加要求ノードのノードIDに論理空間的に近い(同じID空間エリアに属する)ノードIDを有する他のノード装置に参加メッセージを転送する。
2-2. Transfer of Participation Message When the local node apparatus receives a participation message from another node apparatus in a state where the local node apparatus is neither a participation request node nor a final transfer destination node (root node) of the participation message, the local node apparatus Among the node IDs of the other node devices stored in the node ID, the participation message is transferred to another node device having a node ID logically close to the node ID of the participation request node (belonging to the same ID space area).

参加要求ノードではない自ノード装置は、参加メッセージの転送先に対し、その転送先が現に同じオーバレイネットワークに存在しているか否かに関する情報を参加要求ノードに返信することを要求するために、存在確認メッセージを、上述の参加メッセージと共に、その転送先に送信する。   The local node device that is not the participation request node exists to request the transfer destination of the participation message to return information about whether or not the transfer destination actually exists in the same overlay network to the participation request node. A confirmation message is transmitted to the transfer destination together with the participation message described above.

参加要求ノードではない自ノード装置は、自身が記憶しているルーティングテーブルから、参加メッセージに含まれる領域指定情報(ルーティングテーブルのレベルを指定するための情報)に該当する他のノード装置のノードIDを読み出す。この自ノード装置は、さらに、その該当する他のノード装置に対し、そのノード装置が現に同じオーバレイネットワークに存在しているか否かに関する情報を参加要求ノードに返信することを要求するために、存在確認メッセージを、該当する他のノード装置に送信する。   The own node device that is not the participation request node, from the routing table stored by itself, the node ID of another node device corresponding to the area designation information (information for designating the level of the routing table) included in the participation message Is read. This own node device further exists to request the corresponding other node device to return information regarding whether or not the node device actually exists in the same overlay network to the participation request node. A confirmation message is transmitted to the corresponding other node device.

2−3.応答メッセージの受信
参加要求ノードは、参加メッセージおよび存在確認メッセージの受信に応答して他の各ノード装置から送信された応答メッセージを受信し、その受信された応答メッセージを用いてルーティングテーブルを作成する。
2-3. Reception of response message The participation request node receives the response message transmitted from each other node device in response to the reception of the participation message and the presence confirmation message, and creates a routing table using the received response message. .

3.参加要求ノードへの転送完了メッセージの送信
自ノード装置は、自ノード装置が参加要求ノードではないが、参加メッセージの最終転送先ノード(ルートノード)である状態で、他のノード装置から参加メッセージを受信した場合に、自ノード装置のノードIDを含み、かつ、参加メッセージの転送が完了したことを表す転送完了メッセージ(前述の「参加要求返信情報」の一例である。)を参加要求ノードに送信する。
3. Transmission of a transfer completion message to the participation request node The own node device sends a participation message from another node device in a state where the own node device is not the participation request node but is the final transfer destination node (root node) of the participation message. When received, a transfer completion message (which is an example of the above-mentioned “participation request reply information”) including the node ID of the own node device and indicating that the transfer of the participation message is completed is transmitted to the participation request node. To do.

4.ノードIDの選択的変更
参加要求ノードは、転送完了メッセージを受信し、かつ、最終転送先ノード(ルートノード)のノードIDが自ノード装置のノードIDと一致する場合に、参加要求ノードのノードIDを変更する。
4). Selective change of node ID The participation request node receives the transfer completion message, and when the node ID of the final transfer destination node (root node) matches the node ID of the own node device, the node ID of the participation request node To change.

5.参加メッセージの再送
参加要求ノードは、そのノードのノードIDが変更された場合に、その変更されたノードIDを含む参加メッセージを前記コンタクトノードに再送する。
5. Retransmission of participation message When the node ID of the node is changed, the participation request node retransmits the participation message including the changed node ID to the contact node.

[システム構成]
次に、図1を参照することにより、この情報通信システムの物理的構成および論理的構成を説明する。
図1において符号100が付された上枠内には、論理的存在としてのオーバレイネットワーク9が系統的に示され、一方、同図において符号101が付された下枠内には、物理的存在としてのネットワーク(例えば、インターネット,LAN,WAN)8が系統的に示されている。
[System configuration]
Next, a physical configuration and a logical configuration of the information communication system will be described with reference to FIG.
In FIG. 1, the overlay network 9 as a logical entity is systematically shown in the upper frame denoted by reference numeral 100, while the physical existence is present in the lower frame denoted by reference numeral 101 in FIG. 1. The network (for example, the Internet, LAN, WAN) 8 is systematically shown.

下枠101内に示すように、物理的なネットワーク(現実世界のネットワーク)8を構築するために、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者用の装置5、FTTH(Fiber To The Home)回線事業者用の装置6、通信回線(例えば、電話回線や光ケーブル等)7等が用いられる。   As shown in the lower frame 101, an IX (Internet eXchange) 3, an ISP (Internet Service Provider) 4, a DSL (Digital Subscriber Line) line provider is used to construct a physical network (real-world network) 8. Apparatus 5, apparatus 6 for FTTH (Fiber To The Home) line operators, communication line (for example, telephone line, optical cable, etc.) 7, etc. are used.

情報通信システムSは、このようなネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c,・・・,1x,1y,1z,・・・を含むように構成され、それにより、ピアツーピア方式のネットワークシステムが実現される。   The information communication system S is configured to include a plurality of node devices 1a, 1b, 1c,..., 1x, 1y, 1z,. Thus, a peer-to-peer network system is realized.

各ノード装置1a,1b,1c,・・・,1x,1y,1z,・・・には、各ノード装置1の同一性を表す情報(デバイスID)として、各ノード装置1に固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。各ノード装置1の製造番号およびIPアドレスは、複数のノード装置1間で重複しないように設定される。   Each node device 1a, 1b, 1c,..., 1x, 1y, 1z,... Has a serial number unique to each node device 1 as information (device ID) indicating the identity of each node device 1. And an IP (Internet Protocol) address. The serial number and IP address of each node device 1 are set so as not to overlap among the plurality of node devices 1.

以下、説明の便宜上、ノード装置1a,1b,1c,・・・,1x,1y,1z,・・・のうちいずれかに言及するために、単に、ノード装置1ということがある。   Hereinafter, for convenience of explanation, the node device 1a, 1b, 1c,..., 1x, 1y, 1z,.

[DHTの作成]
次に、分散ハッシュテーブルDHT(Distributed Hash Table)を利用してノードIDを計算するためのアルゴリズムを説明する。情報通信システムSにおいて、2台のノード装置1同士が互いに情報をやり取りするためには、それぞれが相手のIPアドレスを知っていなければならない。例えば、同じコンテンツを互いに共有するために、ネットワーク8に参加している各ノード装置1が、ネットワーク8に参加しているすべてのノード装置1のIPアドレスを知っておくことが考えられる。
[Create DHT]
Next, an algorithm for calculating a node ID using a distributed hash table DHT (Distributed Hash Table) will be described. In the information communication system S, in order for the two node devices 1 to exchange information with each other, each must know the IP address of the other party. For example, in order to share the same content with each other, each node device 1 participating in the network 8 may know the IP addresses of all the node devices 1 participating in the network 8.

しかし、ネットワーク8に接続されるノード装置1の数が何万何十万というように膨大な数になると、それらすべてのノード装置1のIPアドレスを各ノード装置1に覚えさせることは現実的ではない。具体的には、例えば、いずれかのノード装置1の電源が投入または遮断されるごとに、他のすべてのノード装置1においてそのいずれかのノード装置1のIPアドレスを更新しなければならない。その結果、各ノード装置1における処理が頻繁になり、システム運用が困難となる。   However, when the number of node devices 1 connected to the network 8 becomes an enormous number, such as tens of thousands, hundreds of thousands, it is realistic that each node device 1 remembers the IP addresses of all the node devices 1. Absent. Specifically, for example, every time the power of one of the node devices 1 is turned on or off, the IP address of any one of the node devices 1 must be updated in all the other node devices 1. As a result, processing in each node device 1 becomes frequent, and system operation becomes difficult.

このような不都合を回避するために、1台のノード装置1に、ネットワーク8に参加しているすべてのノード装置1のうち必要最低限の数のノード装置1のIPアドレスだけを覚えさせておき、IPアドレスを覚えていないノード装置1については、ノード装置1間における情報転送を利用して自ノード装置1に届けてもらうというシステムが既に実用化されている。   In order to avoid such an inconvenience, one node device 1 is made to remember only the IP addresses of the minimum necessary number of node devices 1 among all the node devices 1 participating in the network 8. As for the node device 1 that does not remember the IP address, a system that uses the information transfer between the node devices 1 to be delivered to the own node device 1 has already been put into practical use.

このようなシステムの一例がオーバレイネットワーク9であり、このオーバレイネットワーク9は、DHTを利用したアルゴリズムにより、図1の上部枠100内に示すように構築される。このオーバレイネットワーク9は、既存のネットワーク8を用いて形成された、仮想リンクより成るネットワークを意味する。   An example of such a system is an overlay network 9, and this overlay network 9 is constructed as shown in the upper frame 100 of FIG. 1 by an algorithm using DHT. The overlay network 9 means a network composed of virtual links formed using the existing network 8.

本実施形態は、DHTを利用したアルゴリズムによって構築されたオーバレイネットワーク9を前提としている。このオーバレイネットワーク9上に論理的に配置されているノード装置1を、情報通信システムSに参加しているノード装置1、すなわち、オーバレイネットワーク9に参加しているノード装置1という。   This embodiment is based on an overlay network 9 constructed by an algorithm using DHT. The node device 1 logically arranged on the overlay network 9 is referred to as a node device 1 participating in the information communication system S, that is, a node device 1 participating in the overlay network 9.

未だ参加していないノード装置(参加要求ノード)1が情報通信システムSに参加するために、その参加要求ノードは、その情報通信システムSに既に参加している他の任意のノード装置1(コンタクトノード)に対して参加メッセージを送信することが必要である。その参加メッセージは、参加要求ノードがオーバレイネットワーク9に参加したいという要求を示しており、参加要求ノードを特定するための情報を含むように作成される。   Since the node device (participation request node) 1 that has not yet participated participates in the information communication system S, the participation request node is another arbitrary node device 1 (contact) that has already participated in the information communication system S. It is necessary to send a participation message to the node. The participation message indicates a request that the participation request node wants to participate in the overlay network 9, and is created to include information for specifying the participation request node.

情報通信システムSに参加している各ノード装置1には、ノードID(識別情報)が、各ノード装置1ごとに固有な番号として付与される。その番号のbit数は、最大運用台数のノード装置1を収容できる数に設定される。例えば、128bitの番号を用いると、2128=340×1036台のノード装置を運用することができる。 Each node device 1 participating in the information communication system S is given a node ID (identification information) as a unique number for each node device 1. The number of bits of that number is set to a number that can accommodate the maximum number of node devices 1 to be operated. For example, if a 128-bit number is used, 2 128 = 340 × 10 36 node devices can be operated.

より具体的には、各ノード装置1のノードIDは、各ノード装置1のIPアドレス(または製造番号)等、ノード装置1ごとに固有の値に対して、複数のノード装置1に共通のハッシュ関数(ハッシュアルゴリズム)を適用して得られたハッシュ値である。ハッシュ関数については、公知であるため、詳細な説明を省略する。そのハッシュ値の使用により、複数のノード装置1が、同じノードID論理空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により各ノード装置1ごとに求められたノードIDは、IPアドレス(または製造番号)が異なれば、同じハッシュ値に変換される確率が極めて低い。   More specifically, the node ID of each node device 1 is a hash common to a plurality of node devices 1 with respect to a value unique to each node device 1 such as the IP address (or serial number) of each node device 1. A hash value obtained by applying a function (hash algorithm). Since the hash function is publicly known, detailed description thereof is omitted. By using the hash value, a plurality of node devices 1 are distributed in the same node ID logical space without being distributed. Thus, the node ID obtained for each node device 1 by the common hash function has a very low probability of being converted to the same hash value if the IP address (or manufacturing number) is different.

なお付言するに、本実施形態においては、各ノード装置1のIPアドレス(グローバルIPアドレス)を複数のノード装置1に共通のハッシュ関数により変換した値が、各ノード装置1のノードIDとして定義される。   In addition, in this embodiment, a value obtained by converting the IP address (global IP address) of each node device 1 by a hash function common to the plurality of node devices 1 is defined as the node ID of each node device 1. The

[ルーティングテーブルの作成]
次に、図2を参照することにより、DHTを用いるルーティングテーブルの作成手法の一例を説明する。図2には、DHTを用いてルーティングテーブルが作成される様子の一例が示されている。
[Create routing table]
Next, an example of a method for creating a routing table using DHT will be described with reference to FIG. FIG. 2 shows an example of how a routing table is created using DHT.

複数のノード装置1にそれぞれ付与された複数のノードIDは、共通のハッシュ関数によって生成されたため、それら複数のノード装置1は、図2(A)ないし図2(C)に示すように、同一のリング状のID空間上にさほど偏ることなく、散らばって存在する。図中黒丸は、各ノード装置1の論理的位置を示す。   Since the plurality of node IDs respectively assigned to the plurality of node devices 1 are generated by a common hash function, the plurality of node devices 1 are the same as shown in FIGS. 2 (A) to 2 (C). The ring-shaped ID spaces are scattered and exist without much bias. In the figure, black circles indicate logical positions of the respective node devices 1.

図2に示す例においては、各ノードIDを表す数字が8bit(4進数表示にすると、4桁)で構成されており、リング状のID空間においては、IDを表す数字が反時計回りに増加する。   In the example shown in FIG. 2, the number representing each node ID is composed of 8 bits (4 digits in quaternary display), and the number representing the ID increases counterclockwise in the ring-shaped ID space. To do.

ルーティングテーブルを作成するために、まず、図2(A)に示すように、ID空間が複数のエリアに等分割される。実際には、ID空間が16程度の数のエリアに分割されるのが一般的であるが、ここでは、説明を簡単にするため、ID空間が4分割され、ノードIDが、4進数で表記され、かつ、ビット長が8bitである数字で表される。   In order to create the routing table, first, as shown in FIG. 2A, the ID space is equally divided into a plurality of areas. In practice, the ID space is generally divided into about 16 areas, but here, for simplicity of explanation, the ID space is divided into four and the node ID is expressed in quaternary numbers. And a bit length of 8 bits.

あるノード装置1、すなわち、ノードIDが「1023」であるノード装置1Nを例にとり、ルーティングテーブルの作成方法の一例を具体的に例について説明する。   A specific example of a method for creating a routing table will be described by taking a node device 1 as an example, that is, a node device 1N whose node ID is “1023” as an example.

<レベル1のルーティング>
まず、ID空間が4つのエリアに等分割される。各エリアは、4進数で表すと最大桁の数字がエリアの番号を表す数字列「0XXX」「1XXX」、「2XXX」および「3XXX」(Xは0から3の整数、以下同様。)で表される。ノード装置1Nは、それのノードIDが「1023」であるため、図2中、左下の「1XXX」のエリアに存在することになる。
<Level 1 routing>
First, the ID space is equally divided into four areas. Each area is represented by a numeric string “0XXX”, “1XXX”, “2XXX”, “3XXX” (X is an integer from 0 to 3, the same shall apply hereinafter) in which the maximum number of digits is expressed in quaternary numbers. Is done. Since the node ID of the node device 1N is “1023”, the node device 1N exists in the area “1XXX” in the lower left in FIG.

さらに、ノード装置1Nは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外の各エリアごとに、そこに存在する他のノード装置1を適当に選択し、その選択されたノード装置1のIPアドレスをレベル1のテーブルに登録する。   Furthermore, the node device 1N appropriately selects another node device 1 existing in each area other than the area where the node device 1N exists (that is, the area of “1XXX”), and the selected node device 1 Are registered in the level 1 table.

図3(A)には、レベル1のテーブルの一例が示されている。そのテーブル中、2列目はノード装置1N自身を示しているため、IPアドレスを登録する必要はない。   FIG. 3A shows an example of a level 1 table. In the table, since the second column indicates the node device 1N itself, it is not necessary to register the IP address.

<レベル2のルーティング>
次に、図2(B)に示すように、上述のレベル1のルーティングによって分割された4つのエリアのうち、ノード装置1Nが存在するエリアがさらに4つのサブエリア「10XX」「11XX」、「12XX」および「13XX」に分割される。
<Level 2 routing>
Next, as shown in FIG. 2B, among the four areas divided by the level 1 routing described above, the area where the node device 1N exists is further divided into four subareas “10XX”, “11XX”, “ Divided into 12XX and 13XX.

さらに、ノード装置1Nは、上記と同様に、自分の存在するサブエリア以外の各サブエリアに存在するノード装置1を適当に選択し、選択されたノード装置1のIPアドレスをレベル2のテーブルに登録する。   Further, similarly to the above, the node device 1N appropriately selects the node device 1 existing in each sub-area other than the sub-area where the node device 1N exists, and sets the IP address of the selected node device 1 in the level 2 table. sign up.

図3(B)には、レベル2のテーブルの一例が示されている。1列目はノード装置1N自身を示しているため、IPアドレスを登録する必要はない。   FIG. 3B shows an example of a level 2 table. Since the first column indicates the node device 1N itself, it is not necessary to register the IP address.

<レベル3のルーティング>
さらに、図2(C)に示すように、上述のレベル2のルーティングによって分割された4つのサブエリアのうち、自分の存在するサブエリアがさらに4つのサブエリア「100X」「101X」、「102X」および「103X」に分割される。
<Level 3 routing>
Further, as shown in FIG. 2C, among the four subareas divided by the level 2 routing described above, the subareas in which the user exists are further divided into four subareas “100X”, “101X”, “102X”. ”And“ 103X ”.

さらに、ノード装置1Nは、上記と同様に、自分の存在するサブエリア以外の各サブエリアに存在するノード装置1を適当に選択し、その選択されたノード装置1のIPアドレスをレベル3のテーブルに登録する。   Further, similarly to the above, the node device 1N appropriately selects the node device 1 existing in each sub-area other than the sub-area in which the node device 1N exists, and sets the IP address of the selected node device 1 to the level 3 table. Register with.

図3(C)には、レベル3のテーブルの一例が示されている。3列目はノード装置1N自身を示しているため、IPアドレスを登録する必要はなく、また、2列目および4列目は、それぞれのサブエリアにノード装置が存在していないため、空白となる。   FIG. 3C shows an example of a level 3 table. Since the third column indicates the node device 1N itself, it is not necessary to register the IP address, and the second and fourth columns are blank because there is no node device in each subarea. Become.

<レベル4のルーティング>
ノード装置1Nは、それのノードIDが「1023」であるため、レベル4のテーブルにおいては、図3(D)に示すように、4列目はノード装置1N自身を示しているため、IPアドレスを登録する必要はなく、また、1列目から3列目は、それぞれのサブエリアにノード装置が存在していないため、空白となる。
<Level 4 routing>
Since the node ID of the node device 1N is “1023”, the fourth column indicates the node device 1N itself in the level 4 table, as shown in FIG. Need not be registered, and the first to third columns are blank because there is no node device in each sub-area.

このようにして、レベル1から4までルーティングテーブルが、図3(D)に示すように、作成される。レベル4までルーティングテーブルが作成されると、8bitで表記されるすべてのノードIDをカバーすることができる。レベルが上がると、テーブル中に空白が目立つようになる。   In this way, routing tables from level 1 to level 4 are created as shown in FIG. When the routing table is created up to level 4, all node IDs expressed in 8 bits can be covered. As the level goes up, white space will stand out in the table.

すべてのノード装置1は、それぞれが、以上説明した手法を用いてルーティングテーブルを作成して所有する。このように、各ノード装置1は、他のノード装置1のIPアドレスを記憶したルーティングテーブルを作成する。   Each node device 1 creates and owns a routing table using the method described above. In this way, each node device 1 creates a routing table that stores the IP addresses of the other node devices 1.

本実施形態においては、各ノード装置1は、ノード情報としてのIPアドレスと、識別情報としてのノードIDと、そのノードIDがノードID空間に割り当てられる論理的位置(DHTのレベルと列位置との組合せによって定義される)とを互いに関連付けて記憶している。   In the present embodiment, each node device 1 has an IP address as node information, a node ID as identification information, and a logical position (DHT level and column position) at which the node ID is assigned to the node ID space. Are defined in association with each other).

ここで、自ノード装置1NのノードIDに近いノードIDを有するノード装置が、後述するルートノード(図2(C)および図3(D)においては、ノードIDが「1000」であるノード装置)であると仮定する。   Here, a node device having a node ID close to the node ID of its own node device 1N is a root node to be described later (a node device whose node ID is “1000” in FIGS. 2C and 3D). Assume that

図3(D)に示すように、ノードIDの桁数に応じてレベルの数が決まり、また、ノードIDを表記するために用いる進数の数に応じて、ルーティングテーブルの各レベルの注目桁(例えば、レベル1である場合には、第1桁、レベル2である場合には、第2桁)に出現し得る数字の数が決まる。   As shown in FIG. 3D, the number of levels is determined according to the number of digits of the node ID, and the attention digit (at each level of the routing table) according to the number of decimal numbers used to express the node ID. For example, in the case of level 1, the number of digits that can appear in the first digit and in the case of level 2 the second digit) is determined.

例えば、ノードIDが16桁16進数で表記される場合には、ノードIDは、bit数が64であり、レベルの数が16であり、注目桁に出現し得る(英)数字の数が16(「0」〜「f」)となる。ルーティングテーブルについての後の説明においては、各レベルの注目桁に出現する数字を表す部分を単に「列」ともいう。   For example, when the node ID is expressed by a 16-digit hexadecimal number, the node ID has 64 bits, the number of levels is 16, and the number of (English) numbers that can appear in the attention digit is 16. ("0" to "f"). In the subsequent description of the routing table, the part representing the number appearing in the attention digit of each level is also simply referred to as “column”.

[ノード装置の構成]
次に、図4を参照することにより、各ノード装置1の構成および機能を説明する。複数の各ノード装置1の構成は互いに共通するため、1つのノード装置1のみを代表的に説明する。図4は、その代表的なノード装置1の構成の一例を概略的に示している。
[Node device configuration]
Next, the configuration and function of each node device 1 will be described with reference to FIG. Since the configuration of each of the plurality of node devices 1 is common to each other, only one node device 1 will be representatively described. FIG. 4 schematically shows an example of the configuration of the representative node device 1.

図4に示すように、ノード装置1は、制御部11と記憶部12とを備えている。制御部1は、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータを備えている。記憶部12は、コンテンツデータ、インデックス情報、上記DHT,プログラム等を記憶保存(格納)するためのHD等から構成されている。ただし、複数のノード装置1の中には、コンテンツデータを保存していないノード装置1もある。記憶部12は、前記「記憶手段」の一例を構成する。   As illustrated in FIG. 4, the node device 1 includes a control unit 11 and a storage unit 12. The control unit 1 includes a computer including a CPU having a calculation function, a working RAM, a ROM that stores various data and programs, and the like. The storage unit 12 includes an HD for storing and storing (stores) content data, index information, the DHT, the program, and the like. However, among the plurality of node devices 1, there is also a node device 1 that does not store content data. The storage unit 12 constitutes an example of the “storage unit”.

ノード装置1は、さらに、受信されたコンテンツデータ等を一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)、オーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14とを備えている。ノード装置1は、さらに、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、その映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16とを備えている。   The node device 1 further decodes the encoded video data (video information), audio data (sound information), etc. included in the content memory and the buffer memory 13 for temporarily storing the received content data, etc. And a decoder unit 14 for decoding and the like. The node device 1 further performs a predetermined drawing process on the decoded video data or the like and outputs it as a video signal, and a CRT that displays a video based on the video signal output from the video processing unit 15 And a display unit 16 such as a liquid crystal display.

ノード装置1は、さらに、デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後、その信号をアンプにより増幅して出力する音声処理部17と、その音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18とを備えている。   The node device 1 further converts the decoded audio data into an analog audio signal by D (Digital) / A (Analog) conversion, amplifies the signal by an amplifier, and outputs the signal, and the audio processing unit The speaker 18 which outputs the audio signal output from 17 as a sound wave is provided.

ノード装置1は、さらに、ネットワーク8を通じて他のノード装置1との間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付けるとともにその指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、操作パネル等)21とを備えている。   The node device 1 further receives a command from the user and performs an instruction signal in accordance with the instruction from the communication unit 20 for performing communication control of information with the other node device 1 through the network 8. An input unit (for example, a keyboard, a mouse, an operation panel, etc.) 21 is provided.

図4に示すように、制御部11、記憶部12、バッファメモリ13、デコーダ部14および通信部20はバス22を介して相互に接続されている。   As shown in FIG. 4, the control unit 11, the storage unit 12, the buffer memory 13, the decoder unit 14, and the communication unit 20 are connected to each other via a bus 22.

ノード装置1においては、制御部11におけるCPUが記憶部12等に記憶された各種プログラムを実行し、それにより、ノード装置1全体が統括制御される。また、入力部21からの指示信号に応じて、コンテンツデータの登録処理等が行われる。   In the node device 1, the CPU in the control unit 11 executes various programs stored in the storage unit 12 and the like, whereby the entire node device 1 is controlled in an integrated manner. Further, content data registration processing or the like is performed in response to an instruction signal from the input unit 21.

ノード装置1は、実行されるプログラムの種類に応じて、果たす役割が変化し、具体的には、情報を送信(転送)するノード装置として機能したり、情報を受信するノード装置として機能する。   The role played by the node device 1 varies depending on the type of program to be executed. Specifically, the node device 1 functions as a node device that transmits (transfers) information or functions as a node device that receives information.

[情報通信システムの概略]
情報通信システムSの概略を図5ないし図8を用いて説明する。図5は、情報通信システムS(オーバレイネットワーク9)に参加要求ノードが参加するために複数のノード装置1間において送受信される複数のメッセージの流れを説明するための概略図である。図6は、それらメッセージの流れを図5より詳細に説明するための概略図である。
[Outline of information communication system]
An outline of the information communication system S will be described with reference to FIGS. FIG. 5 is a schematic diagram for explaining a flow of a plurality of messages transmitted / received between a plurality of node devices 1 in order for a participation request node to participate in the information communication system S (overlay network 9). FIG. 6 is a schematic diagram for explaining the flow of these messages in more detail than FIG.

ただし、図5には、ノードIDの衝突が発生するために、本実施形態に従って参加要求ノードのノードIDが変更される様子が示されているのに対し、図6には、その様子が省略されている。すなわち、図6には、説明の便宜上、参加要求ノードのノードIDを変更することが必要ではない例(ノードIDの衝突が発生しない例)が示されているのである。   However, FIG. 5 shows a state in which the node ID of the participation request node is changed according to the present embodiment because of a collision of node IDs, whereas FIG. 6 omits the state. Has been. That is, FIG. 6 shows an example in which it is not necessary to change the node ID of the participation request node (an example in which no node ID collision occurs) for convenience of explanation.

オーバレイネットワーク9への参加を要求するノード装置1(参加要求ノード)は、オーバレイネットワーク9に参加するのに先立ち、所定情報(例えば、参加要求ノードのIPアドレス、MACアドレス、製造番号等)に基づき、予め定められたハッシュ関数に従って、参加要求ノードのノードIDを計算する。   Prior to joining the overlay network 9, the node device 1 (participation request node) that requests participation in the overlay network 9 is based on predetermined information (for example, the IP address, MAC address, serial number, etc. of the participation request node). The node ID of the participation request node is calculated according to a predetermined hash function.

次に、その参加要求ノードは、そのノードが初めに通信を行う、既にIPアドレスを知っている任意のノード装置(コンタクトノード)に、ルーティングテーブルを作成することを目的として、図5に示すように、参加(JOIN)メッセージ(図5において「JOIN」を付した実線で示す。)をコンタクトノードに送信する。   Next, the participation request node, as shown in FIG. 5, for the purpose of creating a routing table in any node device (contact node) with which the node first communicates and already knows the IP address. In addition, a participation (JOIN) message (indicated by a solid line with “JOIN” in FIG. 5) is transmitted to the contact node.

続いて、参加要求ノードは、図5に示すように、コンタクトノードから応答メッセージ(図5において破線で示す。)を受信し、その受信した応答メッセージを用いて、参加要求ノードのためのルーティングテーブルを作成する。その応答メッセージには、発信元のノードIDとIPアドレスとの組合せが含まれており、その組合せが発信先に転送される。   Subsequently, as shown in FIG. 5, the participation request node receives a response message (indicated by a broken line in FIG. 5) from the contact node, and uses the received response message to send a routing table for the participation request node. Create The response message includes a combination of the source node ID and the IP address, and the combination is transferred to the destination.

複数のノード装置1は、参加要求ノードでも、参加メッセージの最終転送先ノード(ルートノード)でもない役割を果たすときに、他のノード装置から参加メッセージを受信すると、図5に示すように、自ノード装置に記憶されている他のノード装置のノードIDのうち、参加要求ノードのノードIDに論理空間的に最も近いノードIDを有する他のノード装置に参加メッセージを転送する(図5において「JOINを転送」で示す。)。   When a plurality of node devices 1 receive a participation message from another node device in a role that is neither a participation request node nor a final transfer destination node (root node) of the participation message, as shown in FIG. Of the node IDs of the other node devices stored in the node device, the participation message is transferred to the other node device having the node ID logically closest to the node ID of the participation request node (“JOIN” in FIG. 5). "Transfer".)

続いて、参加要求ノードは、図5に示すように、他のノード装置からの応答メッセージ(図5において破線で示す。)を受信し、その受信した応答メッセージを用いて、参加要求ノードのためのルーティングテーブルを作成する。   Subsequently, as shown in FIG. 5, the participation request node receives a response message (indicated by a broken line in FIG. 5) from another node device, and uses the received response message for the participation request node. Create a routing table.

自ノード装置は、自ノード装置が参加要求ノードではないが、参加メッセージの最終転送先ノード(ルートノード)である役割を果たすときに、他のノード装置から参加メッセージを受信した場合に、図5に示すように、自ノード装置のノードIDを含み、かつ、参加メッセージの転送が完了したことを表す転送完了メッセージを参加要求ノードに送信する。   When the own node device is not the participation request node but plays the role of the final transfer destination node (root node) of the join message, when the own node device receives the join message from another node device, FIG. As shown in FIG. 4, a transfer completion message including the node ID of the own node device and indicating that the transfer of the participation message is completed is transmitted to the participation request node.

参加要求ノードは、転送完了メッセージを受信し、かつ、参加メッセージの最終転送先ノード(ルートノード)のノードIDが参加要求ノードのノードIDと一致(衝突)する場合に、その参加要求ノードのノードIDを変更する。ノードIDを変更する場合には、それまでに作成されたルーティングテーブルが消去される。   The participation request node receives the transfer completion message, and when the node ID of the final transfer destination node (root node) of the participation message matches (collision) with the node ID of the participation request node, the participation request node Change the ID. When the node ID is changed, the routing table created so far is deleted.

参加要求ノードは、そのノードのノードIDを変更した場合に、その変更されたノードIDを含む参加メッセージを前記コンタクトノードに再送する。参加要求ノードは、以上説明した試行を、最終転送先ノードのノードIDが参加要求ノードのノードIDと一致(衝突)しなくなるまで行う。その結果、参加要求ノードのオーバレイネットワーク9への参加が完了する。   When the participation request node changes the node ID of the node, the participation request node retransmits the participation message including the changed node ID to the contact node. The participation request node performs the above-described trial until the node ID of the final transfer destination node does not match (collision) with the node ID of the participation request node. As a result, participation of the participation request node in the overlay network 9 is completed.

したがって、本実施形態によれば、同じノードIDが複数のノード装置1に重複して割り当てられてしまうことが確実に防止される。よって、本実施形態によれば、ノードIDの重複が原因で、ルーティングテーブルを用いた情報(各種メッセージおよび各種コンテンツデータを含む)の転送または送信が停滞してしまうという確率が低くなるという事態が回避される。   Therefore, according to this embodiment, it is reliably prevented that the same node ID is assigned to a plurality of node devices 1 redundantly. Therefore, according to the present embodiment, there is a low probability that the transfer or transmission of information (including various messages and various content data) using the routing table will be stagnant due to duplication of node IDs. Avoided.

以上、図5を参照して本実施形態のうち本発明を理解するために重要な要素を概略的に説明したが、以下、図6を参照して本実施形態の全体を詳細に説明する。   The elements of the present embodiment that are important for understanding the present invention have been schematically described above with reference to FIG. 5. Hereinafter, the entire embodiment will be described in detail with reference to FIG. 6.

情報通信システムSは、前述のように、一のノード装置がオーバレイネットワーク9に参加する際に、他のノード装置から応答メッセージを受信することにより、その応答メッセージの送信元のノード装置の情報(IPアドレスおよびノードID)を元にルーティングテーブルを作成していく。   As described above, when one node device participates in the overlay network 9, the information communication system S receives a response message from another node device, so that information on the node device that transmitted the response message ( A routing table is created based on the IP address and node ID).

以下、説明の便宜上、オーバレイネットワーク9への参加を要求する参加要求ノードを「ノードZ」として表記し、また、そのノードZが初めに通信を行う、既にIPアドレスを知っている任意のノード装置(コンタクトノード)を「ノードB」として表記する。   Hereinafter, for convenience of explanation, a participation request node that requests participation in the overlay network 9 is represented as “node Z”, and any node device that already knows the IP address with which the node Z first communicates (Contact node) is expressed as “Node B”.

また、ルーティングテーブルを単に「テーブル」ともいう。また、他ノード装置のノード情報および識別情報の自ノード装置への記憶を、自ノード装置への「登録」ともいう。   The routing table is also simply referred to as “table”. The storage of node information and identification information of other node devices in the own node device is also referred to as “registration” in the own node device.

図6は、参加要求ノードがルーティングテーブルを作成するために複数のノード装置1間において送受信される複数のメッセージの流れを示す概略図である。図7(A)ないし図7(C)はそれぞれ、ノードZの参加に先立って情報通信システムSに参加しているノードB、ノードEおよびノードGがそれぞれ記憶しているルーティングテーブルの一例を示す。図8は、ノードZがそれらノードB,EおよびGから応答メッセージを受信することにより作成するルーティングテーブルの一例である。   FIG. 6 is a schematic diagram illustrating a flow of a plurality of messages transmitted and received between a plurality of node devices 1 in order for the participation request node to create a routing table. FIGS. 7A to 7C show examples of routing tables stored in the nodes B, E, and G participating in the information communication system S prior to the participation of the node Z, respectively. . FIG. 8 is an example of a routing table created by the node Z receiving response messages from the nodes B, E, and G.

図6に示すように、ノードZ(参加要求ノード)は、オーバレイネットワーク9に参加しようとすると、コンタクトノードであるノードBに参加メッセージを送信する(矢印101)。すると、ノードZは、ノードBへの参加メッセージの送信が成功したという事実から、ノードBが存在していることを確認する(矢印102)。   As shown in FIG. 6, when a node Z (participation request node) attempts to participate in the overlay network 9, it transmits a participation message to the node B that is a contact node (arrow 101). Then, the node Z confirms that the node B exists from the fact that the transmission of the participation message to the node B is successful (arrow 102).

次いで、ノードB(コンタクトノード)は、存在確認メッセージを、図7(A)に示すようにレベル1に登録しているノードA、ノードEおよびノードCに順次送信する(矢印103、105および107)。すると、ノードAは応答メッセージをノードZに送信し(矢印104)、ノードEは応答メッセージをノードZに送信し(矢印106)、ノードCは応答メッセージをノードZに送信する(矢印108)。   Next, the node B (contact node) sequentially transmits an existence confirmation message to the nodes A, E, and C registered in the level 1 as shown in FIG. 7A (arrows 103, 105, and 107). ). Node A then sends a response message to node Z (arrow 104), node E sends a response message to node Z (arrow 106), and node C sends a response message to node Z (arrow 108).

なお、図7(A)ないし図7(C)のそれぞれにおいて、複数のレベルのうちのいずれかの左に▲印が付してあるが、これは、自ノード装置が、▲印が付してあるレベルに登録された他のノード装置に存在確認メッセージを送信することを意味する。   In each of FIGS. 7A to 7C, a ▲ mark is attached to the left of any one of a plurality of levels. This means that an existence confirmation message is transmitted to another node device registered at a certain level.

また、図7(A)ないし図7(C)のそれぞれにおいて、複数のノード装置のうちのいずれかが四角枠で囲まれているが、これは、自ノード装置が、四角枠で囲まれている他のノード装置に参加メッセージを転送することを意味する。参加メッセージの転送先は、▲印が付してあるレベルに登録された他の複数のノード装置のうち、ノードZ(参加要求ノード)のノードIDに近い(同じID空間エリアに属する)ノードIDを有するものである。   In each of FIGS. 7A to 7C, one of the plurality of node devices is surrounded by a square frame. This is because the own node device is surrounded by a square frame. This means that the join message is transferred to another node device. The transfer destination of the participation message is a node ID that is close to the node ID of the node Z (participation request node) (belongs to the same ID space area) among a plurality of other node devices registered at the level marked with ▲. It is what has.

ノードZ(参加要求ノード)は、ノードA、ノードB、ノードCおよびノードEからのそれぞれの応答メッセージを用いることにより、図8のテーブルにおけるノードA、ノードB、ノードCおよびノードEのIPアドレスを取得するため、ノードZは、IPアドレスとこれに対応するノードIDとを対応付けて記憶できる。   Node Z (participation request node) uses the response messages from node A, node B, node C, and node E, so that the IP addresses of node A, node B, node C, and node E in the table of FIG. Therefore, the node Z can store the IP address and the corresponding node ID in association with each other.

なお付言するに、本実施形態においては、図6に明瞭に示すように、参加要求ノードから参加メッセージを受信したかまたは参加要求ノードではないノード装置から参加メッセージが転送されたノード装置1(以下、「参加メッセージを中継するノード装置1」という。)のルーティングテーブルに記憶されている他の複数のノード装置のノード情報を、それら他のノード装置のうち現にオーバレイネットワーク9に参加しているものが、参加メッセージを中継するノード装置1を経由することなく直接、参加要求ノードに返信するようになっている。   In addition, in this embodiment, as clearly shown in FIG. 6, the node device 1 (hereinafter referred to as the participation message transferred from the node device that has received the participation message from the participation request node or is not the participation request node). The node information of a plurality of other node devices stored in the routing table of “the node device 1 that relays the participation message” is the one that is currently participating in the overlay network 9 among these other node devices. However, the message is directly returned to the participation request node without going through the node device 1 that relays the participation message.

これに対し、例えば、参加メッセージを中継するノード装置1が、そのノード装置1のルーティングテーブルに記憶されている他のすべてのノード装置のノード情報を、他のノード装置が現にオーバレイネットワーク9に参加しているか否かを問わず、参加要求ノードに返信する態様で本発明を実施することが可能である。   On the other hand, for example, the node device 1 that relays the participation message uses the node information of all other node devices stored in the routing table of the node device 1, and the other node devices actually participate in the overlay network 9. It is possible to implement the present invention in a manner of returning to the participation request node regardless of whether or not it is.

ノードB(コンタクトノード)は、参加メッセージを、最終的にノードZのルートノードに到達することを期待して、ノードEに転送する(矢印109)。このとき、ノードBは、存在確認メッセージの送信先が次のレベル2である旨の領域指定情報を参加メッセージに付加する。   Node B (contact node) forwards the join message to node E in the hope that it will eventually reach the root node of node Z (arrow 109). At this time, the node B adds area designation information indicating that the transmission destination of the presence confirmation message is the next level 2 to the participation message.

次いで、ノードEは、図7(B)に示すように、存在確認メッセージを、次のレベル2に登録しているノードG、ノードDおよびノードFに順次送信する(矢印110、112および114)。すると、ノードGは応答メッセージをノードZ(参加要求ノード)に送信し(矢印111)、ノードDは応答メッセージをノードZに送信し(矢印113)、ノードFは応答メッセージをノードZに送信する(矢印115)。   Next, as shown in FIG. 7B, the node E sequentially transmits an existence confirmation message to the node G, the node D, and the node F registered in the next level 2 (arrows 110, 112, and 114). . Then, node G transmits a response message to node Z (participation request node) (arrow 111), node D transmits a response message to node Z (arrow 113), and node F transmits a response message to node Z. (Arrow 115).

このとき、ノードZ(参加要求ノード)は、ノードD、ノードFおよびノードGからのそれぞれの応答メッセージを用いることにより、図8のテーブルにおけるノードD、ノードFおよびノードGのIPアドレスおよびノードIDを記憶できる。そして、ノードEは、参加メッセージを、最終的にノードZのルートノードに到達することを期待して、ノードGに転送する(矢印116)。このとき、ノードEは、存在確認メッセージの送信先が次のレベル3である旨の領域指定情報を参加メッセージに付加する。   At this time, the node Z (participation request node) uses the response messages from the node D, the node F, and the node G, so that the IP addresses and node IDs of the node D, the node F, and the node G in the table of FIG. Can be stored. Node E then forwards the join message to node G in the hope that it will eventually reach the root node of node Z (arrow 116). At this time, the node E adds area designation information indicating that the transmission destination of the existence confirmation message is the next level 3 to the participation message.

次いで、ノードGは、図7(C)に示すように、存在確認メッセージを、次のレベル3に登録しているノードHに送信する(矢印117)。すると、ノードHは応答メッセージをノードZに送信する(矢印118)。   Next, as shown in FIG. 7C, the node G transmits a presence confirmation message to the node H registered at the next level 3 (arrow 117). Node H then sends a response message to node Z (arrow 118).

参加要求ノードであるノードZのノードIDは「1013」であり、図7(C)に示すように、ノードGのルーティングテーブルに記憶されている複数のノード装置のうち、ノードZのノードID「1013」にエリア的に最も近いノードIDは「1023」であり、これは、ノードGのノードIDである。このことは、参加メッセージを次に転送すべきノード装置が存在しないことを意味し、同時に、ノードGが、ノードZにとってのルートノードであることを意味する。すなわち、ノードGは、ノードZから出された参加メッセージの最終転送先ノードなのである。このとき、ノードZ(参加要求ノード)は、ノードHからの転送完了メッセージを用いることにより、図8のテーブルにおけるノードHのIPアドレスおよびノードIDを記憶できる。この場合、参加要求ノードであるノードZのノードIDが「1013」であって、ノードHからの転送完了メッセージに含まれるノードHのノードIDが「1023」であるため、参加要求ノードであるノードZは自身のノードIDは衝突していないと判定し、これにより、情報通信システムSへの参加処理が完了する。   The node ID of the node Z, which is the participation request node, is “1013”. As shown in FIG. 7C, among the plurality of node devices stored in the routing table of the node G, the node ID “ The node ID closest to the area “1013” is “1023”, which is the node ID of the node G. This means that there is no node device to which the join message is to be transferred next, and at the same time, node G is the root node for node Z. That is, the node G is the final transfer destination node of the participation message issued from the node Z. At this time, the node Z (participation request node) can store the IP address and node ID of the node H in the table of FIG. 8 by using the transfer completion message from the node H. In this case, since the node ID of the node Z that is the participation request node is “1013” and the node ID of the node H included in the transfer completion message from the node H is “1023”, the node that is the participation request node Z determines that his node ID has not collided, and the participation process to the information communication system S is thereby completed.

以上説明した処理により、ノードZ(参加要求ノード)は、図8に示すルーティングテーブルを作成することができる。このノードZのテーブルは、それぞれ現存する複数のノード装置1から受信した応答メッセージに基づいて作成されたものである。   Through the processing described above, the node Z (participation request node) can create the routing table shown in FIG. The table of the node Z is created based on response messages received from a plurality of existing node devices 1.

よって、本実施形態によれば、ルーティングテーブルに、実際にはオーバレイネットワーク9から脱退している他のノード装置が記憶されていることが原因で、ルーティングテーブルを用いた情報(各種メッセージおよび各種コンテンツデータを含む)の転送または送信が停滞してしまうという確率が低くなるという事態が回避される。したがって、本実施形態によれば、情報通信システムSの通信効率が全体的に向上する。   Therefore, according to the present embodiment, information (various messages and various contents using the routing table) is stored in the routing table because other node devices that actually have withdrawn from the overlay network 9 are stored. The situation that the probability that the transfer or transmission of data (including data) will be stagnated is reduced. Therefore, according to this embodiment, the communication efficiency of the information communication system S is improved as a whole.

ここで、参加要求ノードであるノードZのノードIDが「1023」であると仮定すると、ノードHからの転送完了メッセージに含まれるノードHのノードIDが「1023」であるため、参加要求ノードであるノードZのノードIDがノードHのノードIDと一定することになる。この場合には、ノードZは自身のノードIDを変更して、再度、コンタクトノードであるノードBに参加メッセージを送信する。   Here, assuming that the node ID of the node Z that is the participation request node is “1023”, the node ID of the node H included in the transfer completion message from the node H is “1023”. The node ID of a certain node Z is fixed to the node ID of the node H. In this case, the node Z changes its own node ID, and again transmits a participation message to the node B that is the contact node.

[情報通信システムの動作]
次に、本実施形態の情報通信システムSにおける各ノード装置1の動作を図5ないし図11を用いて説明する。各ノード装置1により、次の処理が行われる。
[Operation of Information Communication System]
Next, the operation of each node device 1 in the information communication system S of the present embodiment will be described with reference to FIGS. The following processing is performed by each node device 1.

1.参加処理
自ノード装置1が参加要求ノードである場合に、その自ノード装置1が情報通信システムSにおけるオーバレイネットワーク9に参加するための処理(図9参照)
1. Participation Process When the own node apparatus 1 is a participation request node, the process for the own node apparatus 1 to participate in the overlay network 9 in the information communication system S (see FIG. 9)

2.作成処理
自ノード装置1が参加要求ノードである場合に、その自ノード装置1がルーティングテーブルを作成するための処理(図6ないし図8および図9におけるステップS4)
2. Creation Processing When the local node device 1 is a participation request node, processing for the local node device 1 to create a routing table (step S4 in FIGS. 6 to 8 and FIG. 9).

3.転送処理
自ノード装置1が参加要求ノードではない場合に、参加メッセージを他のノード装置1に転送し、また、自ノード装置1が参加メッセージの最終転送先ノードである場合に、転送完了メッセージを参加要求ノードに送信するための処理
3. Transfer processing When the local node device 1 is not a participation request node, the participation message is transferred to another node device 1, and when the local node device 1 is the final transfer destination node of the participation message, a transfer completion message is transmitted. Process for sending to the join request node

ただし、上述の3つの処理のうち作成処理は、既に、図6ないし図8を参照して詳細に説明されており、しかも、本発明を理解するために不可欠な処理ではないため、ここでは、簡単に説明する。   However, the creation process among the above three processes has already been described in detail with reference to FIGS. 6 to 8 and is not an indispensable process for understanding the present invention. Briefly described.

ノードZの制御部11は、自ノード装置1に電源が投入されたことを入力部11等により認識すると、ノードZの各種設定を初期化し、図9にフローチャートで概念的に表されている参加処理プログラムを起動させる。この参加処理プログラムは、記憶部12に不揮発的に記憶されているとともに、制御部11のCPUによって実行される。ただし、この参加処理プログラムの実行に先立ち、ノードZは、オーバレイネットワーク9に参加するために最初に通信を行うべきコンタクトノード(前述のノードB)のIPアドレスを予め保持していると仮定する。   When the control unit 11 of the node Z recognizes that the power of the node device 1 is turned on by the input unit 11 or the like, it initializes various settings of the node Z and participates conceptually shown in the flowchart of FIG. Start the processing program. The participation processing program is stored in the storage unit 12 in a nonvolatile manner and is executed by the CPU of the control unit 11. However, prior to the execution of this participation processing program, it is assumed that the node Z holds in advance the IP address of the contact node (the node B described above) that should communicate first in order to participate in the overlay network 9.

参加処理プログラムが起動されると、まず、ステップS1において、参加要求ノードのノードIDが計算される。図10には、ステップS1の詳細がノードID計算ルーチンとしてフローチャートで概念的に表されている。   When the participation processing program is started, first, in step S1, the node ID of the participation request node is calculated. In FIG. 10, the details of step S1 are conceptually represented by a flowchart as a node ID calculation routine.

このノードID計算ルーチンにおいては、まず、ステップS101において、前回ノードID、すなわち、この参加要求ノードの前回電源オン中にこのノードID計算ルーチンの実行によって計算されたノードIDが、前回ノードIDとして記憶部12のうちの不揮発性メモリに記憶されているか否かが判定される。   In this node ID calculation routine, first, in step S101, the previous node ID, that is, the node ID calculated by executing this node ID calculation routine during the previous power-on of this participation request node is stored as the previous node ID. It is determined whether or not it is stored in the non-volatile memory of the unit 12.

今回は、前回ノードIDが記憶部12に記憶されていないと仮定すると、ステップS101の判定がNOとなり、ステップS102に移行する。このステップS102においては、参加要求ノードに固有のノードIDを、複数のノード装置1に共通のハッシュ関数を用いて計算するために参照すべき参照情報が記憶部12から取り込まれる。その参照情報は、例えば、参加要求ノードのIPアドレス、MACアドレスおよび製造番号(例えば、CPU_ID)のうちの少なくとも1つである。   This time, assuming that the previous node ID is not stored in the storage unit 12, the determination in step S101 is NO, and the process proceeds to step S102. In step S102, reference information to be referred to in order to calculate a node ID unique to the participation request node using a hash function common to the plurality of node devices 1 is fetched from the storage unit 12. The reference information is, for example, at least one of an IP address, a MAC address, and a serial number (for example, CPU_ID) of the participation request node.

次に、ステップS103において、その取り込まれた参照情報に対してハッシュ関数を適用することにより、参加要求ノードのノードIDが今回ノードIDとして計算される。以上で、このノードID計算ルーチンの一回の実行が終了する。   Next, in step S103, by applying a hash function to the fetched reference information, the node ID of the participation request node is calculated as the current node ID. This completes one execution of this node ID calculation routine.

これに対し、今回は、前回ノードIDが記憶部12に記憶されていると仮定すると、ステップS101の判定がYESとなり、ステップS104に移行する。このステップS104においては、前回ノードIDが記憶部12から読み出され、続いて、ステップS105において、その読み出された前回ノードIDがそのまま今回ノードIDに設定される。以上で、このノードID計算ルーチンの一回の実行が終了する。   On the other hand, this time, assuming that the previous node ID is stored in the storage unit 12, the determination in step S101 is YES, and the process proceeds to step S104. In step S104, the previous node ID is read from the storage unit 12. Subsequently, in step S105, the read previous node ID is set as the current node ID as it is. This completes one execution of this node ID calculation routine.

いずれの場合にも、その後、図9に示すステップS2において、参加要求ノードがコンタクトノードに送信すべき参加メッセージが作成される。具体的には、この参加メッセージは、参加要求ノードに割り当てられた今回ノードIDを含むように作成される。   In any case, a participation message to be transmitted from the participation request node to the contact node is then created in step S2 shown in FIG. Specifically, this participation message is created so as to include the current node ID assigned to the participation request node.

続いて、ステップS3において、作成された参加メッセージが、記憶部12の不揮発性メモリに予め通信情報が記憶されたコンタクトノードに送信される。その後、ステップS4において、そのコンタクトノードから応答メッセージが受信される。その応答メッセージは、コンタクトノードのノードIDおよびIPアドレスを含んでいる。   Subsequently, in step S <b> 3, the created participation message is transmitted to the contact node whose communication information is stored in advance in the nonvolatile memory of the storage unit 12. Thereafter, in step S4, a response message is received from the contact node. The response message includes the node ID and IP address of the contact node.

このステップS4においては、さらに、前述のようにして、その受信された応答メッセージを用いて、参加要求ノードのルーティングテーブルが作成される。具体的には、応答メッセージまたは転送完了メッセージを受信するまで待って、対応するメッセージ中のノードIDが、DHTのルーティングテーブル中の適切な位置に記憶され、それにより、そのルーティングテーブルが作成される。   In step S4, the routing table of the participation request node is created using the received response message as described above. Specifically, waiting until a response message or transfer complete message is received, the node ID in the corresponding message is stored in the appropriate location in the DHT routing table, thereby creating the routing table. .

その後、ステップS5において、参加要求ノードが、ステップS4の実行中に、転送完了メッセージを受信したか否かが判定される。今回は、転送完了メッセージを未だ受信していないと仮定すると、ステップS5の判定がNOとなり、ステップS10において、参加要求ノードの電源が切断されたか否かが判定される。   Thereafter, in step S5, it is determined whether or not the participation request node has received a transfer completion message during execution of step S4. This time, assuming that the transfer completion message has not yet been received, the determination in step S5 is NO, and in step S10, it is determined whether or not the power of the participation request node has been turned off.

今回は、参加要求ノードの電源がオンのままであると仮定すると、ステップS10の判定がNOとなり、ステップS4に戻る。通常、参加要求ノードの電源オン中、ステップS4,S5およびS10が繰り返し実行され、それにより、参加要求ノードが他の複数のノード装置から順次、応答メッセージを受信し、その受信した複数の応答メッセージを用いることにより、図8に示すように、参加要求ノード(ノードZ)のためのルーティングテーブルが作成される。   This time, assuming that the power of the participation request node remains on, the determination in step S10 is NO, and the process returns to step S4. Normally, steps S4, S5, and S10 are repeatedly executed while the participation request node is powered on, whereby the participation request node sequentially receives response messages from a plurality of other node devices, and the received plurality of response messages. As shown in FIG. 8, a routing table for the participation request node (node Z) is created.

これに対し、今回は、参加要求ノードの電源が切断されたと仮定すると、ステップS10の判定がYESとなり、この参加処理プログラムの実行が終了する。   On the other hand, this time, assuming that the participation request node is powered off, the determination in step S10 is YES, and the execution of this participation processing program is terminated.

以上、参加要求ノードが未だ転送完了メッセージを受信していない場合を説明したが、受信した場合には、ステップS5の判定がYESとなり、ステップS6において、その受信された転送完了メッセージから、最終転送先ノード(ルートノード)のノードIDが抽出される。その後、ステップS7において、その抽出されたノードIDが、参加要求ノードの今回ノードIDと一致するか否かが判定される。   As described above, the case where the participation request node has not yet received the transfer completion message has been described. However, if it has been received, the determination in step S5 is YES, and in step S6, the final transfer is started from the received transfer completion message. The node ID of the previous node (root node) is extracted. Thereafter, in step S7, it is determined whether or not the extracted node ID matches the current node ID of the participation request node.

今回は、最終転送先ノードのノードIDが参加要求ノードのノードIDと一致しないと仮定すると、ステップS7の判定がNOとなり、ステップS9に移行する。この時点で、参加要求ノードのDHTシステムへの参加が完了したことになる。そのステップS9においては、今回ノードIDが記憶部12のうちの不揮発性メモリに保存される。   If it is assumed that the node ID of the final transfer destination node does not match the node ID of the participation request node this time, the determination in step S7 is NO and the process proceeds to step S9. At this point, participation of the participation request node in the DHT system is completed. In step S <b> 9, the current node ID is stored in the nonvolatile memory in the storage unit 12.

その後、ステップS20において、ユーザの操作があったか否かが判定される。操作があった場合には、そのステップS20の判定がYESとなり、ステップS21において、必要な処理が実行された後に、ステップS22に移行するが、操作がなかった場合には、ステップS20の判定がNOとなり、直ちにステップS22に移行する。   Thereafter, in step S20, it is determined whether or not there is a user operation. If there is an operation, the determination in step S20 is YES, and after the necessary processing is executed in step S21, the process proceeds to step S22. If there is no operation, the determination in step S20 is performed. NO is determined, and the process immediately proceeds to step S22.

そのステップS22においては、メッセージを受信したか否かが判定される。メッセージを受信した場合には、そのステップS22の判定がYESとなり、ステップS23において、必要なメッセージ受信処理が実行された後に、ステップS24に移行するが、メッセージを受信しなかった場合には、ステップS22の判定がNOとなり、直ちにステップS24に移行する。そのステップS24においては、電源がオフにされたか否かが判定される。電源がオフにされた場合には、そのステップS24の判定がYESとなり、この参加処理プログラムの実行が終了するが、電源がオフにされなかった場合には、ステップS24の判定がNOとなり、ステップS20に戻る。   In step S22, it is determined whether a message has been received. If a message is received, the determination in step S22 is YES, and in step S23, the necessary message reception process is performed, and then the process proceeds to step S24. If no message is received, step S22 is performed. The determination in S22 is NO, and the process immediately proceeds to step S24. In step S24, it is determined whether or not the power is turned off. If the power is turned off, the determination in step S24 is YES, and the execution of this participation process program ends. If the power is not turned off, the determination in step S24 is NO, and the step Return to S20.

以上、最終転送先ノードのノードIDが参加要求ノードのノードIDと一致しない場合を説明したが、一致する場合には、ステップS7の判定がYESとなり、ステップS11において、参加要求ノードについて新たなノードIDを、同じハッシュ関数を用いて計算するために参照すべき参照情報が記憶部12から取り込まれる。この参照情報は、参加要求ノードの前回ノードIDを計算するために参照された参照情報(図10に示すステップS102参照)とは異なる情報である。   The case where the node ID of the final transfer destination node does not match the node ID of the participation request node has been described above. However, when the node ID matches, the determination in step S7 becomes YES, and a new node is added for the participation request node in step S11. Reference information to be referred to in order to calculate the ID using the same hash function is fetched from the storage unit 12. This reference information is different from the reference information (see step S102 shown in FIG. 10) referred to for calculating the previous node ID of the participation request node.

例えば、前回ノードIDを計算するために、参加要求ノードのIPアドレスとMACアドレスと製造番号との組合せが用いられた場合には、今回ノードIDを計算するために、それら情報とは別の情報、例えば、参加要求ノードのコンピュータの時間情報(例えば、現在時刻)が追加的に用いられる。   For example, when the combination of the IP address, MAC address, and manufacturing number of the participation request node is used to calculate the previous node ID, information different from the information is used to calculate the current node ID. For example, computer time information (for example, current time) of the participation request node is additionally used.

この例においては、ステップS13において取り込まれる参照情報は、参加要求ノードのIPアドレス、MACアドレスおよび製造番号と、コンピュータの時間情報との組合せである。   In this example, the reference information captured in step S13 is a combination of the IP address, MAC address, and serial number of the participation request node and computer time information.

なお付言するに、ノードIDを変更するために、前回の参照情報の値に「1」(設定値の一例)に対して加算(演算の一例)を行ったり、前回ノードIDの値にさらに、前記ハッシュ関数と同じものまたは別のハッシュ関数を適用したりしてもよい。   In addition, in order to change the node ID, an addition (an example of calculation) is added to the value of the previous reference information with respect to “1” (an example of a setting value), or the value of the previous node ID is further changed. The same hash function or another hash function may be applied.

その後、ステップS12において、ステップS11において取り込まれた参照情報に対して前記ハッシュ関数と同じ関数を適用することにより、今回ノードIDが、前回ノードIDとは異なるノードIDとして計算される。続いて、ステップS13において、これまでに作成されたルーティングテーブルが記憶部12において消去される。その後、ステップS2に戻り、新たな参加メッセージの作成およびその参加メッセージのコンタクトノードへの送信が行われる。その新たな参加メッセージは、ステップS12において計算された今回ノードIDを含むように作成される。   Thereafter, in step S12, the current node ID is calculated as a node ID different from the previous node ID by applying the same function as the hash function to the reference information acquired in step S11. Subsequently, in step S13, the routing table created so far is deleted in the storage unit 12. Thereafter, the process returns to step S2 to create a new participation message and transmit the participation message to the contact node. The new participation message is created so as to include the current node ID calculated in step S12.

図11には、前述の転送処理を行うために制御部11のCPUによって実行されるメッセージ処理プログラムがフローチャートで概念的に表されている。図11のフローチャートは、図9に示すステップS23についての詳細なフローチャートである。   FIG. 11 conceptually shows in a flowchart a message processing program executed by the CPU of the control unit 11 in order to perform the above-described transfer processing. The flowchart in FIG. 11 is a detailed flowchart for step S23 shown in FIG.

このメッセージ処理プログラムは、各ノード装置1が、前記オーバレイネットワークへの参加完了後に、他のノード装置1からメッセージを受信することに応答して実行される。   This message processing program is executed in response to each node device 1 receiving a message from another node device 1 after completion of participation in the overlay network.

このメッセージ処理プログラムの実行時には、まず、ステップS201において、自ノード装置1が他のノード装置1から参加メッセージを受信したか否かが判定される。今回は、自ノード装置1が参加メッセージを未だ受信していないと仮定すると、ステップS201の判定がNOとなり、ステップS202において、受信したメッセージが存在確認メッセージであるか否かが判定される。今回は、存在確認メッセージであると仮定すると、ステップS202の判定がYESとなり、ステップS203において、応答メッセージが作成され、その作成された応答メッセージが参加要求ノードに送信される。これで、このメッセージ処理プログラムの実行が終了して、図9に示すステップS24に移行する。   When this message processing program is executed, first, in step S201, it is determined whether or not the own node device 1 has received a participation message from another node device 1. This time, assuming that the node device 1 has not yet received the participation message, the determination in step S201 is NO, and in step S202, it is determined whether or not the received message is a presence confirmation message. Assuming that it is a presence confirmation message this time, the determination in step S202 is YES, and in step S203, a response message is created, and the created response message is transmitted to the participation request node. This completes the execution of this message processing program and proceeds to step S24 shown in FIG.

これに対し、今回は、受信したメッセージが存在確認メッセージではないと仮定すると、ステップS202の判定がNOとなり、ステップS204において、受信したメッセージの種類に応じた処理が実行される。これで、このメッセージ処理プログラムの実行が終了して、図9に示すステップS24に移行する。   On the other hand, this time, assuming that the received message is not an existence confirmation message, the determination in step S202 is NO, and processing corresponding to the type of the received message is executed in step S204. This completes the execution of this message processing program and proceeds to step S24 shown in FIG.

これに対し、今回は、自ノード装置1が参加メッセージを受信したと仮定すると、ステップS201の判定がYESとなり、ステップS205において、その受信した参加メッセージから必要な情報を抽出することにより、参加要求ノードのノードIDが特定される。   On the other hand, this time, assuming that the own node device 1 has received the participation message, the determination in step S201 becomes YES, and in step S205, the participation request is obtained by extracting necessary information from the received participation message. The node ID of the node is specified.

その後、ステップS206において、存在確認メッセージが作成され、その作成された存在確認メッセージが参加要求ノードに送信される。その存在確認メッセージは、それを発信するノードのノードIDとIPアドレスとを含んでいる。   Thereafter, in step S206, an existence confirmation message is created, and the created existence confirmation message is transmitted to the participation request node. The existence confirmation message includes the node ID and the IP address of the node that sends it.

続いて、ステップS207において、その特定された参加要求ノードのノードIDと、自ノード装置1に記憶されているルーティングテーブル(図8参照)とを照合させることにより、自ノード装置1が参加メッセージを次に転送すべき他のノード装置が存在しないか否か、すなわち、自ノード装置1が参加要求ノードにとってのルートノードであるか否かが判定される。   Subsequently, in step S207, the node ID of the identified participation request node is collated with the routing table (see FIG. 8) stored in the node device 1, so that the node device 1 transmits a participation message. Next, it is determined whether or not there is another node device to be transferred, that is, whether or not the own node device 1 is a root node for the participation request node.

今回は、自ノード装置1が参加メッセージを次に転送すべき他のノード装置が存在すると仮定すると、ステップS207の判定がNOとなり、その後、ステップS208において、応答メッセージが作成され、その作成された応答メッセージが参加要求ノードに送信される。   This time, assuming that there is another node device to which the node device 1 should transfer the join message next time, the determination in step S207 is NO, and then a response message is created and created in step S208. A response message is sent to the join request node.

続いて、ステップS209において、参加要求ノードのノードIDと、自ノード装置1に記憶されているルーティングテーブル(図8参照)とを照合させることにより、参加メッセージの転送先が決定される。続いて、ステップS210において、その決定された転送先に参加メッセージが自ノード装置1から転送される。以上で、このメッセージ処理プログラムの実行が終了し、続いて、図9に示すステップS24に移行する。   Subsequently, in step S209, the transfer destination of the participation message is determined by collating the node ID of the participation request node with the routing table (see FIG. 8) stored in the own node device 1. Subsequently, in step S210, the participation message is transferred from the node device 1 to the determined transfer destination. Thus, the execution of this message processing program is completed, and then the process proceeds to step S24 shown in FIG.

以上、自ノード装置1が参加メッセージを次に転送すべき他のノード装置が存在する場合を説明したが、存在しない場合には、ステップS207の判定がYESとなり、ステップS211に移行する。このステップS211においては、転送完了メッセージが作成される。具体的には、この転送完了メッセージは、参加メッセージの転送が完了したことを表すとともに、参加要求ノードのノードIDとIPアドレスとを含むように作成される。   The case where there is another node device to which the node device 1 should transfer the join message next has been described above. If there is no node device, the determination in step S207 is YES, and the process proceeds to step S211. In step S211, a transfer completion message is created. Specifically, this transfer completion message is created to indicate that the transfer of the participation message has been completed, and to include the node ID and IP address of the participation request node.

その後、ステップS212において、その作成された転送完了メッセージが参加要求ノードに送信される。以上で、このメッセージ処理プログラムの実行が終了、続いて、図9に示すステップS24に移行する。   Thereafter, in step S212, the created transfer completion message is transmitted to the participation request node. This is the end of the execution of this message processing program, and then the process proceeds to step S24 shown in FIG.

なお付言するに、本実施形態においては、参加要求ノードのノードIDが一旦計算された後にそのノードIDを変更するために、もとのノードIDを参照することなく、そのもとのノードIDを決定するために用いられた情報とは異なる情報を用いて、もとのノードIDとは異なる新たなノードIDが取得される。   In addition, in this embodiment, in order to change the node ID after the node ID of the participation request node is once calculated, the original node ID is changed without referring to the original node ID. A new node ID different from the original node ID is acquired using information different from the information used for determination.

この手法の一例によれば、もとのノードIDを決定するために用いられた情報とは別の情報(例えば、コンピュータの時間情報)を追加的にまたは代替的に用いることにより、新たなノードIDが取得される。   According to an example of this technique, a new node can be created by using additional or alternative information (eg, computer time information) different from the information used to determine the original node ID. An ID is acquired.

ノードIDを変更するために他の手法を採用することが可能である。例えば、もとのノードIDを参照することにより、そのもとのノードIDとは異なる新たなノードIDを取得する手法を採用することが可能である。この手法の一例によれば、もとのノードIDに対して予め定められた演算(例えば、一定値を加算したり減算したり、乗算したり除算したりする)を行うことにより、新たなノードIDが取得される。   Other techniques can be employed to change the node ID. For example, it is possible to adopt a method of acquiring a new node ID different from the original node ID by referring to the original node ID. According to an example of this technique, a new node is obtained by performing a predetermined operation (for example, adding, subtracting, multiplying, or dividing a certain value) with respect to the original node ID. An ID is acquired.

以上の説明から明らかなように、本実施形態においては、説明の便宜上、各ノード装置1ごとに、記憶部12が前記(1)項における「記憶手段」の一例を構成し、制御部11のうち図9におけるステップS1を実行する部分が同項における「ノードID決定手段」の一例を構成し、制御部11のうち図9におけるステップS2およびS3を実行する部分が同項における「参加要求情報送信手段」の一例を構成していると考えることが可能である。   As is clear from the above description, in the present embodiment, for convenience of explanation, the storage unit 12 constitutes an example of the “storage unit” in the item (1) for each node device 1, and the control unit 11 Of these, the part that executes step S1 in FIG. 9 constitutes an example of “node ID determining means” in the same term, and the part that executes steps S2 and S3 in FIG. It can be considered to constitute an example of “transmitting means”.

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、制御部11のうち図11におけるステップS201ないしS210を実行する部分が前記(1)項における「転送手段」の一例を構成し、制御部11のうち図11におけるステップS207,S211およびS212を実行する部分が同項における「参加要求返信情報送信手段」の一例を構成していると考えることが可能である。   Furthermore, in the present embodiment, for convenience of explanation, for each node device 1, a part of the control unit 11 that executes steps S201 to S210 in FIG. 11 constitutes an example of the “transfer means” in the section (1). Then, it can be considered that the part of the control unit 11 that executes steps S207, S211 and S212 in FIG. 11 constitutes an example of the “participation request reply information transmitting means” in the same section.

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、制御部11のうち図9におけるステップS7を実行する部分が前記(1)項における「ノードID変更要否判定手段」の一例を構成し、制御部11のうち図9におけるS12を実行する部分が同項における「ノードID変更手段」の一例を構成し、制御部11のうち図9におけるステップS2を実行する部分が同項における「再送手段」の一例を構成していると考えることが可能である。   Further, in the present embodiment, for convenience of explanation, for each node device 1, the part of the control unit 11 that executes step S7 in FIG. 9 is the “node ID change necessity determination means” in the above item (1). The part that executes S12 in FIG. 9 of the control unit 11 constitutes an example of “node ID changing means” in the same section, and the part that executes step S2 in FIG. It can be considered that it constitutes an example of the “retransmission means” in the section.

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、制御部11のうち図9におけるステップS12を実行する部分が前記(4)項における「取得手段」の一例を構成していると考えることが可能である。   Further, in the present embodiment, for convenience of explanation, for each node device 1, a part of the control unit 11 that executes step S12 in FIG. 9 constitutes an example of “acquiring means” in the above section (4). It is possible to think that

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、記憶部12と制御部11のうち図9におけるステップS9を実行する部分とが互いに共同して、前記(8)項における「保存手段」の一例を構成し、制御部11のうち図11におけるステップ101,S104およびS105を実行する部分が同項における「設定手段」の一例を構成していると考えることが可能である。   Furthermore, in the present embodiment, for convenience of explanation, in each node device 1, the storage unit 12 and the part that executes step S9 in FIG. It can be considered that an example of “storing means” is configured, and a part of the control unit 11 that executes steps 101, S104, and S105 in FIG. 11 constitutes an example of “setting means” in the same section. .

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、制御部11のうち図11におけるステップS101ないしS103を実行する部分が前記(9)項における「ノードID決定手段」の一例を構成していると考えることが可能である。   Further, in the present embodiment, for convenience of explanation, for each node device 1, a part of the control unit 11 that executes steps S101 to S103 in FIG. 11 is an example of the “node ID determination means” in the above item (9). It is possible to think that it constitutes.

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、制御部11のうち図9におけるステップS4のうち、応答メッセージを参加要求ノードに返信する部分を実行する部分が前記(10)項における「参加要求情報対応処理実行手段」の一例を構成していると考えることが可能である。   Further, in the present embodiment, for the convenience of explanation, for each node device 1, the part that executes the part that returns a response message to the participation request node in step S4 in FIG. It can be considered that it constitutes an example of the “participation request information handling processing execution means” in the section).

さらに、本実施形態においては、説明の便宜上、各ノード装置1ごとに、図9に示す参加処理プログラムおよび図11に示すメッセージ処理プログラムが互いに共同して、前記(11)項に係る「プログラム」の一例を構成していると考えることが可能である。   Further, in the present embodiment, for convenience of explanation, for each node device 1, the participation processing program shown in FIG. 9 and the message processing program shown in FIG. It can be considered that it constitutes an example.

なお付言するに、本実施形態においては、参加要求ノードにおいて、そのノードIDとルートノード(メッセージの転送先がないノード)のノードIDとが互いに一致するか否かが判定され、一致すると判定された場合に、ノードIDの変更(再計算)が行われるようになっている。   In addition, in this embodiment, in the participation request node, it is determined whether or not the node ID of the node ID and the node ID of the root node (node having no message transfer destination) match each other. In this case, the node ID is changed (recalculated).

これに対し、ルートノードにおいて、そのノードIDと参加要求ノードのノードIDとが互いに一致するか否かが判定され、一致すると判定された場合に、ノードIDの変更を指示するノードID変更指示情報を含む参加要求返信情報が参加要求ノードに転送され、一方、その参加要求ノードにおいて、前記ノードID変更指示情報に応答して、自身のノードIDが変更される態様で本発明を実施することが可能である。   On the other hand, in the root node, it is determined whether or not the node ID and the node ID of the participation request node match each other. If it is determined that the node IDs match, node ID change instruction information for instructing the node ID change. The participation request reply information including the message ID is transferred to the participation request node, while the participation request node implements the present invention in such a manner that its own node ID is changed in response to the node ID change instruction information. Is possible.

この態様を実現するために、前述の実施形態を例えば、次のように変更すればよい。すなわち、図11におけるステップS207の判定がYESとなると、ルートノードのノードIDと参加要求ノードのノードIDとが互いに一致するか否かを判定し、一致すると判定した場合に、ノードIDの変更を指示するノードID変更指示情報を含む転送完了メッセージを作成し、一致していないと判定した場合に、ノードIDの変更不要を示すノードID変更不要情報を含む転送完了メッセージを作成するように変更すればよい。さらに、図9におけるステップS6を削除し、また、ステップS7を、参加要求ノードが受信した転送完了メッセージにノードID変更指示情報が含まれているか否かを判定するステップに変更すればよい。そのステップにおいて、転送完了メッセージにノードID変更指示情報が含まれていると判定されると、ステップS11へ移行し、一方、含まれてはいないと判定されると、ステップS9に移行する。   In order to realize this aspect, the above-described embodiment may be changed as follows, for example. That is, when the determination in step S207 in FIG. 11 is YES, it is determined whether or not the node ID of the root node and the node ID of the participation request node match each other. The transfer completion message including the instructed node ID change instruction information is created, and when it is determined that they do not match, the transfer completion message including the node ID change unnecessary information indicating that the node ID does not need to be changed is created. That's fine. Furthermore, step S6 in FIG. 9 may be deleted, and step S7 may be changed to a step of determining whether or not node ID change instruction information is included in the transfer completion message received by the participation request node. In that step, if it is determined that the node ID change instruction information is included in the transfer completion message, the process proceeds to step S11. On the other hand, if it is determined that it is not included, the process proceeds to step S9.

以上、本発明の実施形態のうちのいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記[発明の開示]の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。   As described above, some of the embodiments of the present invention have been described in detail with reference to the drawings. However, these are merely examples, and the knowledge described by those skilled in the art including the aspects described in the above [Disclosure of the Invention] section. The present invention can be implemented in other forms based on various modifications and improvements.

本発明の一実施形態に従う情報通信システムにおけるネットワークの物理的構成と論理的構成とを概念的に表す系統図である。1 is a system diagram conceptually showing a physical configuration and a logical configuration of a network in an information communication system according to an embodiment of the present invention. 図2(A),(B)および(C)はそれぞれ、図1に示す情報通信システムにおいて、DHTによるID空間およびルーティングテーブルが作成される様子の一例を説明するための図である。2A, 2B, and 2C are diagrams for explaining an example of how an ID space and a routing table are created by DHT in the information communication system shown in FIG. 図3(A)は、レベル1のルーティングテーブルの一例を示す図であり、図3(B)は、レベル2のルーティングテーブルの一例を示す図であり、図3(C)は、レベル3のルーティングテーブルの一例を示す図であり、図3(D)は、完成したルーティングテーブルの一例を示す図である。3A shows an example of a level 1 routing table, FIG. 3B shows an example of a level 2 routing table, and FIG. 3C shows a level 3 routing table. FIG. 3D illustrates an example of a routing table, and FIG. 3D illustrates an example of a completed routing table. 図1に示す各ノード装置の概略的なハードウエア構成の一例を概念的に表すブロック図である。FIG. 2 is a block diagram conceptually illustrating an example of a schematic hardware configuration of each node device illustrated in FIG. 1. 図1に示す情報通信システムにおいて、あるノード装置がオーバレイネットワークに参加するために行われる参加処理を説明するための図である。FIG. 2 is a diagram for describing a participation process performed for a certain node device to participate in an overlay network in the information communication system illustrated in FIG. 1. 図1に示す情報通信システムにおいて、ルーティングテーブルを作成する手法の一例を説明するための図である。It is a figure for demonstrating an example of the method of producing a routing table in the information communication system shown in FIG. 図7(A),(B)および(C)はそれぞれ、図1に示す情報通信システムにおいて、参加要求ノードではない複数のノード装置に記憶されているルーティングテーブルの一例を示す図である。FIGS. 7A, 7B, and 7C are diagrams showing examples of routing tables stored in a plurality of node devices that are not participation request nodes in the information communication system shown in FIG. 図1に示す情報通信システムにおいて、参加要求ノードであるノードZが作成するルーティングテーブルの一例を示す図である。FIG. 3 is a diagram illustrating an example of a routing table created by a node Z that is a participation request node in the information communication system illustrated in FIG. 1. 図1に示す各ノード装置のコンピュータによって実行される参加処理プログラムを概念的に表すフローチャートである。2 is a flowchart conceptually showing a participation process program executed by a computer of each node device shown in FIG. 1. 図9におけるステップS1の詳細をノードID計算ルーチンとして概念的に表すフローチャートである。10 is a flowchart conceptually showing details of step S1 in FIG. 9 as a node ID calculation routine. 図1に示す各ノード装置のコンピュータによって実行されるメッセージ処理プログラムを概念的に表すフローチャートである。2 is a flowchart conceptually showing a message processing program executed by a computer of each node device shown in FIG. 1.

符号の説明Explanation of symbols

1 ノード装置
8 ネットワーク
9 オーバレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S 情報通信システム
DESCRIPTION OF SYMBOLS 1 Node apparatus 8 Network 9 Overlay network 11 Control part 12 Memory | storage part 13 Buffer memory 14 Decoder part 15 Image | video processing part 16 Display part 17 Audio | voice processing part 18 Speaker 20 Communication part 21 Input part 22 Bus S Information communication system

Claims (13)

複数のノード装置の参加によってオーバレイネットワークが構築され、そのオーバレイネットワーク上で前記複数のノード装置が相互に通信を行うオーバレイネットワーク型通信システムであって、
各ノード装置は、
前記オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、自ノード装置が前記オーバレイネットワークに参加した場合に自ノード装置が前記オーバレイネットワーク上に位置することとなる論理的位置を一意に特定するためのノードIDを決定するノードID決定手段と、
自ノード装置が、これから前記オーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、他のノード装置のノードIDとそのノード装置との通信に必要な通信情報との関係を取得してその関係を記憶手段に記憶させるために、自ノード装置が前記オーバレイネットワークに参加したいという要求を表し、かつ、前記決定されたノードIDを含む参加要求情報を前記複数のノード装置のうちのいずれかに送信する参加要求情報送信手段と、
前記参加要求情報を受信した場合に、前記記憶手段に記憶されている他のノード装置のノードIDのうち、前記受信された参加要求情報に含まれるノードIDに近いノードIDを有する他のノード装置に前記参加要求情報を転送する転送手段と、
前記参加要求情報を受信し、かつ、前記記憶手段に記憶されている他のノード装置のノードIDより自ノード装置のノードIDの方が、前記受信された参加要求情報に含まれるノードIDに近く、そのため、前記転送手段の転送先が存在しない場合に、前記参加要求情報に対応する参加要求返信情報を前記参加要求ノード装置に送信する参加要求返信情報送信手段と、
受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定するノードID変更要否判定手段と、
そのノードID変更要否判定手段により自ノード装置のノードIDを変更すると判定された場合に、自ノード装置のノードIDを変更するノードID変更手段と、
自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む前記参加要求情報を前記複数のノード装置のうちのいずれかに再送する再送手段と
を含むオーバレイネットワーク型通信システム。
An overlay network type communication system in which an overlay network is constructed by participation of a plurality of node devices, and the plurality of node devices communicate with each other on the overlay network,
Each node device
Prior to joining the overlay network, when the own node apparatus joins the overlay network according to a predetermined rule based on predetermined information, the own node apparatus is located on the overlay network. Node ID determination means for determining a node ID for uniquely identifying the position;
When the own node device is a participation request node device that requests to participate in the overlay network from now on, the relationship between the node ID of the other node device and the communication information necessary for communication with the node device is acquired. In order to store the relationship in the storage means, the node device represents a request that the node device wants to participate in the overlay network and includes participation request information including the determined node ID in any of the plurality of node devices. Participation request information transmitting means for transmitting
When receiving the participation request information, other node devices having a node ID close to the node ID included in the received participation request information among node IDs of other node devices stored in the storage unit Transfer means for transferring the participation request information to
The node ID of the own node device is closer to the node ID included in the received participation request information than the node IDs of the other node devices stored in the storage means. Therefore, when there is no transfer destination of the transfer means, participation request reply information transmitting means for transmitting participation request reply information corresponding to the participation request information to the participation request node device;
Node ID change necessity determination means for determining whether or not to change the node ID of the own node device based on the received participation request reply information;
A node ID changing unit that changes the node ID of the own node device when the node ID change necessity determining unit determines to change the node ID of the own node device;
An overlay network type communication system comprising: retransmission means for resending the participation request information including the changed node ID to any one of the plurality of node devices when the node ID of the own node device is changed.
複数のノード装置の参加によってオーバレイネットワークが構築され、そのオーバレイネットワーク上で前記複数のノード装置が相互に通信を行うオーバレイネットワーク型通信方法であって、
前記オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、各ノード装置が前記オーバレイネットワークに参加した場合に各ノード装置が前記オーバレイネットワーク上に位置することとなる論理的位置を一意に特定するためのノードIDを決定するノードID決定工程と、
自ノード装置が、これから前記オーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、他のノード装置のノードIDとそのノード装置との通信に必要な通信情報との関係を取得してその関係を記憶手段に記憶させるために、自ノード装置が前記オーバレイネットワークに参加したいという要求を表し、かつ、前記決定されたノードIDを含む参加要求情報を前記複数のノード装置のうちのいずれかに送信する参加要求情報送信工程と、
前記参加要求情報を受信した場合に、前記記憶手段に記憶されている他のノード装置のノードIDのうち、前記受信された参加要求情報に含まれるノードIDに近いノードIDを有する他のノード装置に前記参加要求情報を転送する転送工程と、
前記参加要求情報を受信し、かつ、前記記憶手段に記憶されている他のノード装置のノードIDより自ノード装置のノードIDの方が、前記受信された参加要求情報に含まれるノードIDに近く、そのため、前記転送手段の転送先が存在しない場合に、前記参加要求情報に対応する参加要求返信情報を前記参加要求ノード装置に送信する参加要求返信情報送信工程と、
受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定するノードID変更要否判定工程と、
そのノードID変更要否判定工程により自ノード装置のノードIDを変更すると判定された場合に、自ノード装置のノードIDを変更するノードID変更工程と、
自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む前記参加要求情報を前記複数のノード装置のうちのいずれかに再送する再送工程と
を含むオーバレイネットワーク型通信方法。
An overlay network type communication method in which an overlay network is constructed by participation of a plurality of node devices, and the plurality of node devices communicate with each other on the overlay network,
Prior to joining the overlay network, when each node device joins the overlay network according to a predetermined rule based on predetermined information, each node device is positioned on the overlay network. A node ID determining step for determining a node ID for uniquely identifying the position;
When the own node device is a participation request node device that requests to participate in the overlay network from now on, the relationship between the node ID of the other node device and the communication information necessary for communication with the node device is acquired. In order to store the relationship in the storage means, the node device represents a request that the node device wants to participate in the overlay network and includes participation request information including the determined node ID in any of the plurality of node devices. A participation request information sending step for sending
When receiving the participation request information, other node devices having a node ID close to the node ID included in the received participation request information among node IDs of other node devices stored in the storage unit Transferring the participation request information to:
The node ID of the own node device is closer to the node ID included in the received participation request information than the node IDs of the other node devices stored in the storage means. Therefore, when there is no transfer destination of the transfer means, a participation request reply information transmission step of transmitting participation request reply information corresponding to the participation request information to the participation request node device;
A node ID change necessity determination step for determining whether to change the node ID of the own node device based on the received participation request reply information;
A node ID changing step of changing the node ID of the own node device when it is determined that the node ID of the own node device is changed by the node ID change necessity determining step;
And a retransmission step of resending the participation request information including the changed node ID to any one of the plurality of node devices when the node ID of the own node device is changed.
他のノード装置と共に参加することによってオーバレイネットワークを構築し、そのオーバレイネットワーク上で他のノード装置と通信を行うオーバレイネットワーク型ノード装置であって、
前記オーバレイネットワークに参加するのに先立ち、所定情報に基づき、予め定められた規則に従って、自ノード装置が前記オーバレイネットワークに参加した場合に自ノード装置が前記オーバレイネットワーク上に位置することとなる論理的位置を一意に特定するためのノードIDを決定するノードID決定手段と、
自ノード装置が、これから前記オーバレイネットワークに参加することを要求する参加要求ノード装置である場合に、他のノード装置のノードIDとそのノード装置との通信に必要な通信情報との関係を取得してその関係を記憶手段に記憶させるために、自ノード装置が前記オーバレイネットワークに参加したいという要求を表し、かつ、前記決定されたノードIDを含む参加要求情報を前記複数のノード装置のうちのいずれかに送信する参加要求情報送信手段と、
前記参加要求情報を受信した場合に、前記記憶手段に記憶されている他のノード装置のノードIDのうち、前記受信された参加要求情報に含まれるノードIDに近いノードIDを有する他のノード装置に前記参加要求情報を転送する転送手段と、
前記参加要求情報を受信し、かつ、前記記憶手段に記憶されている他のノード装置のノードIDより自ノード装置のノードIDの方が、前記受信された参加要求情報に含まれるノードIDに近く、そのため、前記転送手段の転送先が存在しない場合に、前記参加要求情報に対応する参加要求返信情報を前記参加要求ノード装置に送信する参加要求返信情報送信手段と、
受信した参加要求返信情報に基づき、自ノード装置のノードIDを変更するか否かを判定するノードID変更要否判定手段と、
そのノードID変更要否判定手段により自ノード装置のノードIDを変更すると判定された場合に、自ノード装置のノードIDを変更するノードID変更手段と、
自ノード装置のノードIDが変更された場合に、その変更されたノードIDを含む前記参加要求情報を前記複数のノード装置のうちのいずれかに再送する再送手段と
を含むオーバレイネットワーク型ノード装置。
An overlay network type node device that constructs an overlay network by participating together with other node devices and communicates with other node devices on the overlay network,
Prior to joining the overlay network, when the own node apparatus joins the overlay network according to a predetermined rule based on predetermined information, the own node apparatus is located on the overlay network. Node ID determination means for determining a node ID for uniquely identifying the position;
When the own node device is a participation request node device that requests to participate in the overlay network from now on, the relationship between the node ID of the other node device and the communication information necessary for communication with the node device is acquired. In order to store the relationship in the storage means, the node device represents a request that the node device wants to participate in the overlay network and includes participation request information including the determined node ID in any of the plurality of node devices. Participation request information transmitting means for transmitting
When receiving the participation request information, other node devices having a node ID close to the node ID included in the received participation request information among node IDs of other node devices stored in the storage unit Transfer means for transferring the participation request information to
The node ID of the own node device is closer to the node ID included in the received participation request information than the node IDs of the other node devices stored in the storage means. Therefore, when there is no transfer destination of the transfer means, participation request reply information transmitting means for transmitting participation request reply information corresponding to the participation request information to the participation request node device;
Node ID change necessity determination means for determining whether or not to change the node ID of the own node device based on the received participation request reply information;
A node ID changing unit that changes the node ID of the own node device when the node ID change necessity determining unit determines to change the node ID of the own node device;
An overlay network type node device comprising: retransmission means for resending the participation request information including the changed node ID to any of the plurality of node devices when the node ID of the own node device is changed.
前記参加要求返信情報送信手段は、前記転送手段の転送先が存在しない場合に、自ノード装置のノードIDを含み、かつ、前記参加要求情報に対応する前記参加要求返信情報を前記参加要求ノード装置に送信する手段を含み、
前記ノードID変更要否判定手段は、受信した参加要求返信情報に含まれるノードIDが自ノード装置のノードIDと一致する場合に、自ノード装置のノードIDを変更すると判定する手段を含む請求項3に記載のオーバレイネットワーク型ノード装置。
The participation request reply information transmitting means includes the node ID of its own node apparatus and the participation request reply information corresponding to the participation request information when the transfer destination of the transfer means does not exist. Including means for transmitting to
The node ID change necessity determining means includes means for determining that the node ID of the own node device is changed when the node ID included in the received participation request reply information matches the node ID of the own node device. 4. The overlay network type node device according to 3.
前記参加要求返信情報送信手段は、前記転送手段の転送先が存在しない場合に、前記参加要求情報に含まれる参加要求ノード装置のノードIDが自ノード装置のノードIDと一致するか否かを判定し、一致すると判定した場合に、ノードIDの変更を指示するノードID変更指示情報を含む前記参加要求返信情報を前記参加要求ノード装置に送信する手段を含み、
前記ノードID変更要否判定手段は、受信した参加要求返信情報に前記ノードID変更指示情報が含まれている場合に、自ノード装置のノードIDを変更すると判定する手段を含む請求項3に記載のオーバレイネットワーク型ノード装置。
The participation request reply information transmission unit determines whether or not the node ID of the participation request node device included in the participation request information matches the node ID of the own node device when the transfer destination of the transfer unit does not exist And means for transmitting the participation request reply information including the node ID change instruction information for instructing the change of the node ID to the participation request node device when it is determined that they match.
The node ID change necessity determination means includes means for determining to change the node ID of the own node apparatus when the node ID change instruction information is included in the received participation request reply information. Overlay network type node equipment.
前記ノードID変更手段は、前記ノードID決定手段によって決定されたもとのノードIDを参照することなく、そのもとのノードIDを決定するために用いられた前記所定情報および/または前記規則とは異なる情報および/または規則を用いて、前記もとのノードIDとは異なる新たなノードIDを取得する取得手段を含む請求項3ないし5のいずれかに記載のオーバレイネットワーク型ノード装置。   The node ID changing unit is different from the predetermined information and / or the rule used to determine the original node ID without referring to the original node ID determined by the node ID determining unit. 6. The overlay network type node device according to claim 3, further comprising an obtaining unit that obtains a new node ID different from the original node ID using information and / or rules. 前記取得手段は、前記もとのノードIDを決定するために用いられた情報とは別の情報を追加的にまたは代替的に用いることにより、前記新たなノードIDを取得する手段を含む請求項6に記載のオーバレイネットワーク型ノード装置。   The acquisition means includes means for acquiring the new node ID by additionally or alternatively using information different from the information used for determining the original node ID. 6. The overlay network type node device according to 6. 前記ノードID変更手段は、前記ノードID決定手段によって決定されたもとのノードIDを参照することにより、そのもとのノードIDとは異なる新たなノードIDを取得する取得手段を含む請求項3ないし5のいずれかに記載のオーバレイネットワーク型ノード装置。   6. The node ID changing means includes acquisition means for acquiring a new node ID different from the original node ID by referring to the original node ID determined by the node ID determining means. The overlay network type node device according to any one of the above. 前記取得手段は、前記もとのノードIDに対して予め定められた演算を行うことにより、前記新たなノードIDを取得する手段を含む請求項8に記載のオーバレイネットワーク型ノード装置。   9. The overlay network type node device according to claim 8, wherein the acquisition means includes means for acquiring the new node ID by performing a predetermined operation on the original node ID. 前記オーバレイネットワークに参加した際に用いたノードIDを、自ノード装置の電源遮断後にも保存する保存手段と、
前記オーバレイネットワークに参加しようとする際に、前記保存手段からノードIDを読み出し、その読み出されたノードIDを、自ノード装置がこれから前記オーバレイネットワークに参加するために用いるノードIDの初期値として設定する設定手段と
を含み、
前記参加要求情報送信手段は、前記設定手段によって設定されたノードIDを含む前記参加要求情報を前記複数のノード装置のいずれかに送信する請求項3ないし9のいずれかに記載のオーバレイネットワーク型ノード装置。
A storage means for storing the node ID used when participating in the overlay network even after the power of the node device is shut off;
When attempting to join the overlay network, the node ID is read from the storage means, and the read node ID is set as an initial value of the node ID used by the own node device to join the overlay network from now on. Including setting means to
The overlay network type node according to any one of claims 3 to 9, wherein the participation request information transmitting unit transmits the participation request information including the node ID set by the setting unit to any of the plurality of node devices. apparatus.
前記ノードID決定手段は、前記保存手段にノードIDが保存されていない場合に、前記所定情報に基づき、前記予め定められた規則に従って、ノードIDを決定する請求項10に記載のオーバレイネットワーク型ノード装置。   11. The overlay network type node according to claim 10, wherein the node ID determination unit determines a node ID according to the predetermined rule based on the predetermined information when a node ID is not stored in the storage unit. apparatus. 自ノード装置が前記参加要求ノード装置ではない状態で前記参加要求情報を受信した場合に、前記参加要求ノード装置が他のノード装置のノードIDと前記通信情報との関係を取得してその関係を前記参加要求ノード装置の前記記憶手段に記憶させることを可能とするために、前記参加要求情報に対応する処理を前記参加要求ノード装置に対して実行する参加要求情報対応処理実行手段を含む請求項3ないし11のいずれかに記載のオーバレイネットワーク型ノード装置。   When the local node device receives the participation request information in a state where it is not the participation request node device, the participation request node device acquires the relationship between the node ID of the other node device and the communication information, and determines the relationship. A participation request information corresponding process executing means for executing a process corresponding to the participation request information with respect to the participation request node apparatus, in order to enable the storage means of the participation request node apparatus to be stored. The overlay network type node device according to any one of 3 to 11. 請求項3ないし12のいずれかに記載のオーバレイネットワーク型ノード装置を動作させるためにコンピュータによって実行されるプログラム。   A program executed by a computer to operate the overlay network type node device according to any one of claims 3 to 12.
JP2007174735A 2007-07-03 2007-07-03 Overlay network type communication system, overlay network type node device and program Expired - Fee Related JP4770804B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007174735A JP4770804B2 (en) 2007-07-03 2007-07-03 Overlay network type communication system, overlay network type node device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007174735A JP4770804B2 (en) 2007-07-03 2007-07-03 Overlay network type communication system, overlay network type node device and program

Publications (2)

Publication Number Publication Date
JP2009017069A JP2009017069A (en) 2009-01-22
JP4770804B2 true JP4770804B2 (en) 2011-09-14

Family

ID=40357441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007174735A Expired - Fee Related JP4770804B2 (en) 2007-07-03 2007-07-03 Overlay network type communication system, overlay network type node device and program

Country Status (1)

Country Link
JP (1) JP4770804B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9344438B2 (en) 2008-12-22 2016-05-17 Qualcomm Incorporated Secure node identifier assignment in a distributed hash table for peer-to-peer networks
US8335879B2 (en) * 2010-04-29 2012-12-18 Hewlett-Packard Development Company, L.P. Node differentiation in multi-node electronic systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP2005347969A (en) * 2004-06-01 2005-12-15 Matsushita Electric Ind Co Ltd Device and method for transferring packet
JP4631531B2 (en) * 2005-05-10 2011-02-16 ブラザー工業株式会社 Network system, connection establishment method, node device, etc.
JP4548271B2 (en) * 2005-08-16 2010-09-22 ブラザー工業株式会社 Information communication system, information communication method, node device, and computer program

Also Published As

Publication number Publication date
JP2009017069A (en) 2009-01-22

Similar Documents

Publication Publication Date Title
JP4375303B2 (en) Information communication system, information communication method, node device included in information communication system, information processing program, and node device program
US8321586B2 (en) Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method
JP2008234445A (en) Content distributed storage system, duplicate data acquisition method, node device, and node processing program
JP2006191489A (en) Node device, network participation processing program, and network participation processing method or the like
JP4910881B2 (en) Communication system, node device, node processing program, and message transmission / reception method
JP4539603B2 (en) Information communication system, information communication method, node device included in information communication system, and information processing program
JP5136585B2 (en) Information communication system, node device, information processing method, and information processing program
US8332463B2 (en) Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
JP4622755B2 (en) Information communication system, information communication method, node device included in information communication system, and information processing program
JP4770804B2 (en) Overlay network type communication system, overlay network type node device and program
JP4877107B2 (en) Terminal device and information processing program in information distribution system, and information processing method of terminal device
JP4765876B2 (en) TERMINAL DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM FOR CONTENT DISTRIBUTION SYSTEM
JP4692278B2 (en) Content distribution system, terminal device, information processing method thereof, and program thereof
JP2007235243A (en) Information communication system, information collection method, node apparatus, and node processing program
JP4797679B2 (en) CONTENT DISTRIBUTION SYSTEM, CONTENT DATA MANAGEMENT DEVICE, ITS INFORMATION PROCESSING METHOD, AND ITS PROGRAM
JP2009232272A (en) Content distributive storage system, content playback method, node device, management apparatus, node-processing program, and management processing program
JP4935734B2 (en) Content distributed storage system, node device, node processing program, and node processing method
JP4947106B2 (en) Information communication system, information communication method, node device included in information communication system, information processing program, and node device program
JP5157770B2 (en) Node device, program, and storage instruction method
JP2008250571A (en) Node device included in information communication system and information processing program
CN105321097A (en) Associating consumer states with interests in a content-centric network
JP5007624B2 (en) Content distributed storage system, content data acquisition method, node device, and node processing program
JP5434268B2 (en) Distributed storage system, data file distributed storage method and program
JP2008242990A (en) Information communication system, terminal apparatus included therein, information processing method, and program therefor
JP2007034545A (en) Management device, node device, content information management processing program, confirmation request processing program, information distribution system and information distribution method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110513

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: 20110524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110606

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4770804

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees