JP4631531B2 - Network system, connection establishment method, node device, etc. - Google Patents

Network system, connection establishment method, node device, etc. Download PDF

Info

Publication number
JP4631531B2
JP4631531B2 JP2005136890A JP2005136890A JP4631531B2 JP 4631531 B2 JP4631531 B2 JP 4631531B2 JP 2005136890 A JP2005136890 A JP 2005136890A JP 2005136890 A JP2005136890 A JP 2005136890A JP 4631531 B2 JP4631531 B2 JP 4631531B2
Authority
JP
Japan
Prior art keywords
port number
node
network
network system
identification 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
JP2005136890A
Other languages
Japanese (ja)
Other versions
JP2006319384A (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 JP2005136890A priority Critical patent/JP4631531B2/en
Priority to PCT/JP2006/307714 priority patent/WO2006120831A1/en
Publication of JP2006319384A publication Critical patent/JP2006319384A/en
Application granted granted Critical
Publication of JP4631531B2 publication Critical patent/JP4631531B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムに関し、特に、1のノード装置が他のノード装置との間で接続を確立する方法等の技術分野に関する。   The present invention relates to a network system including a plurality of node devices that can be connected to each other via a network, and more particularly to a technical field such as a method in which one node device establishes a connection with another node device.

インターネット等により構築されたネットワーク上において、例えばパーソナルコンピュータ等の端末が、目的のサーバに接続して情報の提供を受けるためには、一般に、そのサーバのIP(Internet Protocol)アドレス及びポート番号(待ち受けポート番号)を取得する必要がある。   In order for a terminal such as a personal computer to connect to a target server and receive provision of information on a network constructed by the Internet or the like, generally, the server's IP (Internet Protocol) address and port number (listening) Port number).

ここで、ポート番号とは、ネットワーク上において、IPアドレスの下に設けられた補助アドレスであり、アプリケーション(ソフトウェア)の種類を区別するために(つまり、アプリケーション層からトランスポート層への接続口を意味する)使われる。   Here, the port number is an auxiliary address provided below the IP address on the network. In order to distinguish the type of application (software) (that is, the connection port from the application layer to the transport layer). Meaning) used.

特許文献1には、端末が接続仲介サーバから目的のサーバのIPアドレス及びポート番号を予め取得し、当該サーバのIPアドレス及びポート番号を用いて、当該サーバに接続することが開示されている。   Patent Document 1 discloses that a terminal acquires in advance an IP address and port number of a target server from a connection mediation server, and connects to the server using the IP address and port number of the server.

ところで、近年、クライアント(ノード装置)間でネットワークを介して相互接続し、情報の授受を行うピアツーピア(Peer to Peer(P2P))型のネットワークシステムが注目されている。音楽配信で有名なNapster(ナプスタ)やGnutella(グヌーテラ)がその例である。   By the way, in recent years, a peer-to-peer (P2P) type network system in which clients (node devices) are interconnected via a network and exchange information is attracting attention. Examples are Napster and Gnutella, which are famous for music distribution.

このようなP2P型のネットワークシステムにおいては、映画、音楽等の様々なコンテンツデータを多くのノード装置に分散して保存させておき、例えば、公知の分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用した検索方法によって、あるノード装置が、所望のコンテンツデータの所在、つまり、当該コンテンツデータを保存しているノード装置のIPアドレスを取得することで当該コンテンツデータを取得することが可能になっている。
特開2004−194016号公報
In such a P2P type network system, various content data such as movies and music are distributed and stored in many node devices, and for example, a known distributed hash table (hereinafter referred to as DHT (Distributed Hash Table)). A node device can acquire the content data by acquiring the location of the desired content data, that is, the IP address of the node device storing the content data. It has become.
JP 2004-194016 A

しかしながら、従来のP2P型のネットワークシステムにおいては、DHTを利用した検索方法によって所望のコンテンツデータを保存しているノード装置のIPアドレスを効率良く取得することができるが、待ち受けポート番号を効率良く取得する方法は確立されていない。   However, in the conventional P2P type network system, the IP address of the node device storing the desired content data can be efficiently acquired by the search method using DHT, but the standby port number is efficiently acquired. The method to do is not established.

当該ポート番号を取得する方法の一例として、ノード装置が例えば上記接続仲介サーバのようなポート番号紹介(照会)サーバに接続して、目的のノード装置の待ち受けポート番号を問い合わせて取得する方法が考えられるが、この方法では、コンテンツデータの検索が行われる度に、ポート番号紹介サーバへの問い合わせが行われることになり、待ち受けポート番号を取得するまで時間がかかる上、ポート番号紹介サーバの負担が大きくなる。   As an example of a method of acquiring the port number, a method in which a node device connects to a port number introduction (inquiry) server such as the connection mediation server and inquires and acquires a standby port number of the target node device is considered. However, with this method, every time content data is searched, an inquiry is made to the port number introduction server, and it takes time to acquire the standby port number, and the port number introduction server is burdened. growing.

一方、全てのノード装置の待ち受けポート番号を同一にすれば、ポート番号紹介サーバが必要とはならないが、これでは、セキュリティ上望ましくない。   On the other hand, if the standby port numbers of all the node devices are the same, the port number introduction server is not necessary, but this is not desirable in terms of security.

本発明は、以上の問題等に鑑みてなされたものであり、ポート番号紹介サーバを必要とすることなく、かつ、セキュリティの向上を図りつつ、より効率良く待ち受けポート番号を取得可能なネットワークシステム、接続確立方法、及びノード装置等を提供することを課題とする。   The present invention has been made in view of the above problems and the like, and does not require a port number introduction server, and can improve the security and obtain a standby port number more efficiently. It is an object to provide a connection establishment method, a node device, and the like.

上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおいて、夫々の前記ノード装置は、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報を用いて、第1ポート番号を生成する第1ポート番号生成手段と、前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、前記共通の関数、前記取得された識別情報を用いて、第2ポート番号を生成する第2ポート番号生成手段と、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、を備えることを特徴とする。 In order to solve the above problem, the invention according to claim 1 is a network system including a plurality of node devices that can be connected to each other via a network. uniquely assigned identification information to the relay equipment required for connection, and the identification information storage means for storing a common function in the network system, and the common function assigned thereto or the relay device with a first port number generating means for generating a first port number, and the listener port setting means for setting a port number waiting a first port number that the generated, to connect to the other of the node device The other node device or the relay device necessary for the other node device to connect to the network. An identification information acquisition unit for acquiring identification information assigned to the common function, using the acquired identification information, and the second port number generating means for generating a second port number, which is the product Connection establishment means for establishing a connection with the other node device based on a second port number.

この発明によれば、各ノード装置の待ち受けポート番号は、各ノード装置に一意に割り当てられた識別情報が、共通の関数により生成され設定されるので、セキュリティの向上を図ることができるとともに、各ノード装置は、ポート番号紹介サーバに照会することなく、接続相手のノード装置の待ち受けポート番号を上記共通の関数を用いて効率良く取得することができる。   According to the present invention, the standby port number of each node device is generated by setting the identification information uniquely assigned to each node device using a common function, so that security can be improved, and each The node device can efficiently obtain the standby port number of the node device of the connection partner using the common function without referring to the port number introduction server.

また、請求項2に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記第1ポート番号生成手段及び前記第2ポート番号生成手段は、前記共通の関数を用いて生成された前記ポート番号がウェルノウンポート番号と重複する場合には、前記ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号を前記ポート番号とすることを特徴とする。   According to a second aspect of the present invention, in the network system according to the first aspect, the first port number generation means and the second port number generation means are the ports generated using the common function. When the number overlaps with a well-known port number, the port number is a number obtained as a result of performing a predetermined operation on the generated port number so as not to overlap with the well-known port number. And

この発明によれば、ウェルノウンポート番号と重複することなく、適切な待ち受けポート番号を設定することができる。   According to the present invention, an appropriate standby port number can be set without overlapping with the well-known port number.

請求項3に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記夫々のノード装置における共通の関数は、定期的に更新され、前記夫々のノード装置における待ち受けポート番号が定期的に設定し直されることを特徴とする。   According to a third aspect of the present invention, in the network system according to the first aspect, common functions in the respective node devices are periodically updated, and standby port numbers in the respective node devices are periodically set. It is characterized by being reworked.

この発明によれば、より一層、セキュリティの向上を図ることができる。   According to the present invention, security can be further improved.

請求項4に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記夫々のノード装置の記憶手段には、複数の前記共通の関数が予め記憶されており、前記夫々のノード装置における前記第1ポート番号生成手段は、一定時間毎に前記記憶手段に記憶された複数の共通の関数のうちから一の共通の関数を取得し、これを用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート番号として設定し直し、前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とする。   According to a fourth aspect of the present invention, in the network system according to the first aspect, a plurality of the common functions are stored in advance in the storage means of each of the node devices, and the plurality of common functions are stored in the respective node devices. The first port number generation means obtains one common function among a plurality of common functions stored in the storage means at regular time intervals, and generates the first port number using the same function, The standby port setting means resets the generated first port number as the standby port number, and the second port number generation means in each of the node devices sets the standby port number by the standby port setting means. The common function to be used is changed in synchronization with resetting.

この発明によれば、一定時間毎に前記用いられる共通の関数が変更されるので、より一層、セキュリティの向上を図ることができる。   According to the present invention, since the common function used is changed at regular time intervals, the security can be further improved.

請求項5に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記共通の関数は、前記ネットワークを介して前記夫々のノード装置に対して定期的に配信されて前記記憶手段に記憶され、前記夫々のノード装置における前記第1ポート番号生成手段は、前記配信された共通の関数を用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート設定手段として設定し直し、前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とする。 According to a fifth aspect of the present invention, in the network system according to the first aspect, the common function is periodically distributed to the respective node devices via the network and stored in the storage unit. The first port number generation means in each of the node devices generates the first port number using the distributed common function, and the standby port setting means has the generated first port number. Is set as the standby port setting means, and the second port number generation means in each of the node devices is used in synchronization with the resetting of the standby port number by the standby port setting means. It is characterized by changing the function.

この発明によれば、一定時間毎に前記用いられる共通の関数が変更されるので、より一層、セキュリティの向上を図ることができる。   According to the present invention, since the common function used is changed at regular time intervals, the security can be further improved.

請求項6に記載の発明は、請求項1乃至5の何れか一項に記載のネットワークシステムにおいて、前記共通の関数は、ハッシュ関数であることを特徴とする。   According to a sixth aspect of the present invention, in the network system according to any one of the first to fifth aspects, the common function is a hash function.

この発明によれば、各ノード装置の待ち受けポート番号ができるだけ異なる番号になり、分散されるので、より一層のセキュリティの向上を図ることができる。   According to the present invention, the standby port numbers of the respective node devices are as different as possible and are distributed, so that the security can be further improved.

請求項7に記載の発明は、請求項1乃至6の何れか一項に記載のネットワークシステムにおいて、前記識別情報は、IPアドレス、又はノードIDであることを特徴とする。   According to a seventh aspect of the present invention, in the network system according to any one of the first to sixth aspects, the identification information is an IP address or a node ID.

この発明によれば、各ノード装置が接続先となるノード装置のIPアドレス又はノードIDを取得しやすい環境(例えば、ノード装置のIPアドレス及びノードIDが登録されたDHTが用いられるネットワークシステム)において特に有効である。   According to the present invention, in an environment where each node device can easily acquire the IP address or node ID of the node device to which it is connected (for example, a network system using a DHT in which the IP address and node ID of the node device are registered). It is particularly effective.

請求項8に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおけるノード装置であって、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する第1ポート番号生成手段と、前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する第2ポート番号生成手段と、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、を備えることを特徴とする。 The invention according to claim 8 is a node device in a network system including a plurality of node devices that can be connected to each other via a network, and is unique to a relay device necessary for itself or itself to connect to the network. assigned identification information, and storage means for storing a common function in the network system, and the common function, using said identification information assigned to itself or the relay device, the first port number A first port number generating means to be generated; a standby port setting means for setting the generated first port number as a standby port number; and when connecting to another node device, the other node device or the other The identification information uniquely assigned to the relay device necessary for connecting the node device to the network is collected. An identification information acquiring means for, with the common function, using said acquired identification information, and the second port number generating means for generating a second port number, based on the second port number the generated Connection establishing means for establishing a connection with the other node device.

請求項9に記載にプログラムは、コンピュータを、請求項に記載のノード装置として機能させることを特徴とする。 A program according to a ninth aspect causes a computer to function as the node device according to the eighth aspect.

請求項10に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおける接続確立方法であって、夫々の前記ノード装置が、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する工程と、前記夫々のノード装置が、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する工程と、前記夫々のノード装置が、前記生成された第1ポート番号を待ち受けポート番号として設定する工程と、他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する工程と、前記1のノード装置が、前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する工程と、前記1のノード装置が、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する工程と、を備えることを特徴とする。 The invention according to claim 10 is a connection establishment method in a network system including a plurality of node devices connectable to each other via a network, and each of the node devices is connected to the network by itself or by itself. Storing the identification information uniquely assigned to the relay device necessary for this purpose and the common function in the network system, and the respective node devices are assigned to the common function and to itself or the relay device. Generating a first port number using the identification information , a step in which each of the node devices sets the generated first port number as a standby port number, and the other node devices. When connecting, the other node device or the relay device necessary for the other node device to connect to the network A step of acquiring a uniquely assigned identification information to the first node apparatus by using said common functions, and the acquired identification information, and generating a second port number, the 1 The node device comprises a step of establishing a connection with the other node device based on the generated second port number.

本発明によれば、各ノード装置の待ち受けポート番号は、各ノード装置に一意に割り当てられた識別情報が、共通の関数により生成され設定されるので、セキュリティの向上を図ることができるとともに、各ノード装置は、ポート番号紹介サーバに照会することなく、接続相手のノード装置の待ち受けポート番号を上記共通の関数を用いて効率良く取得することができる。   According to the present invention, the standby port number of each node device is generated by setting the identification information uniquely assigned to each node device by a common function, so that security can be improved and each The node device can efficiently obtain the standby port number of the node device of the connection partner using the common function without referring to the port number introduction server.

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

[1.コンテンツ配信システムの構成等]
始めに、図1を参照して、コンテンツ配信システムの概要構成等について説明する。
[1. Content distribution system configuration]
First, a schematic configuration and the like of the content distribution system will be described with reference to FIG.

図1は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。   FIG. 1 is a diagram illustrating an example of a connection mode of each node device in the content distribution system according to the present embodiment.

図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、ルータ(図示せず)及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。   As shown in the lower frame 101 of FIG. 1, IX (Internet eXchange) 3, ISP (Internet Service Provider) 4, DSL (Digital Subscriber Line) line operator (device) 5, FTTH (Fiber To The Home) line A network (real-world network) 8 such as the Internet is constructed by a business operator (device) 6, a router (not shown), a communication line (for example, a telephone line, an optical cable, etc.) 7, and the like.

コンテンツ配信システムSは、このようなネットワーク8を介して相互に接続可能な複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。   The content distribution system S includes a plurality of node devices 1a, 1b, 1c... 1x, 1y, 1z... That can be connected to each other via such a network 8, and is peer-to-peer. Network system.

各ノード装置1a,1b,1c・・・1x,1y,1z・・には、識別情報としての固有の製造番号及びIP(Internet Protocol)アドレス(以下、単に、「IPアドレス」という場合は、グローバルIPアドレスを示す)が割り当てられる。なお、製造番号及びIPアドレスは、複数のノード装置1間で重複しないものである。また、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・を総称して「ノード1」というものとする。   Each node device 1a, 1b, 1c... 1x, 1y, 1z... Has a unique manufacturing number and IP (Internet Protocol) address (hereinafter simply referred to as “IP address” as identification information). Indicating an IP address). Note that the serial number and IP address are not duplicated among the plurality of node devices 1. In the following description, the node devices 1a, 1b, 1c... 1x, 1y, 1z.

そして、このコンテンツ配信システムSにおいては、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。   In the content distribution system S, an overlay network 9 as shown in the upper frame 100 of FIG. 1 is constructed by a specific algorithm, for example, an algorithm using DHT. That is, the overlay network 9 means a network that forms a virtual link formed by using the existing network 8.

本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード1を、オーバーレイネットワーク9に参加しているノード1という。オーバーレイネットワーク9への参加は、未だ参加していないノード1が、既に参加している任意のノード1に対して参加要求を送ることによって行われる。   In the present embodiment, it is assumed that the overlay network 9 is constructed by an algorithm using DHT, and the node 1 arranged on the overlay network 9 is referred to as a node 1 participating in the overlay network 9. Participation in the overlay network 9 is performed when a node 1 that has not yet participated sends a participation request to an arbitrary node 1 that has already participated.

また、オーバーレイネットワーク9に参加している各ノード1は、ノードIDを有しており、当該ノードIDは、例えば、IPアドレスあるいは製造番号を共通のハッシュ関数(例えば、SHA−1等のハッシュ関数(以下、「ノードID用ハッシュ関数」という)によりハッシュ化した値(例えば、bit長は160bit)であり、一つのID空間に偏りなく分散して配置されることになる。このようにノードID用ハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。   Each node 1 participating in the overlay network 9 has a node ID, and the node ID is, for example, a common hash function (for example, a hash function such as SHA-1) using an IP address or a serial number. (Hereinafter, referred to as “node ID hash function”) is a hashed value (for example, the bit length is 160 bits), and is distributed in a uniform manner in one ID space. The node ID obtained (hashed) by the hash function has a very low probability of having the same value if the IP address or the manufacturing number is different. Description is omitted.

また、オーバーレイネットワーク9に参加している各ノード1は、夫々、DHTを保持している。このDHTには、他のノード1への経路情報、すなわち、ノードID空間内で適度に離れた他のノード1のノードIDとそのIPアドレスが、複数登録されている。このようなDHTは、ノード1がオーバーレイネットワーク9に参加する際に与えられることになる。また、コンテンツ配信システムSにおいては、ノード1がオーバーレイネットワーク9への参加若しくは脱退を行うため、定期的に(例えば数十分から数時間間隔で)DHTの更新が必要かどうかが確認されると共に、その更新情報が他のノード1のDHTに登録されている経路を介して伝達されるようになっている。これにより、DHTを最新の状態に保つことが可能となる。なお、DHTの生成方法については公知であるので詳しい説明を省略する。   Further, each node 1 participating in the overlay network 9 holds a DHT. In this DHT, a plurality of pieces of route information to other nodes 1, that is, node IDs and IP addresses of other nodes 1 that are appropriately separated in the node ID space are registered. Such DHT is given when the node 1 participates in the overlay network 9. In the content distribution system S, since the node 1 participates in or leaves the overlay network 9, it is confirmed whether or not the DHT needs to be updated regularly (for example, at intervals of several tens of minutes to several hours). The update information is transmitted via a route registered in the DHT of the other node 1. This makes it possible to keep the DHT up to date. Since the DHT generation method is known, detailed description thereof is omitted.

また、オーバーレイネットワーク9に参加している何れか複数のノード1には、配信情報としてのコンテンツ(例えば、映画や音楽等)データが分散されて保存(格納)されている。例えば、ノード1aには、タイトルがXXXの映画のコンテンツデータが保存されており、一方、ノード1bには、タイトルがYYYの映画のコンテンツデータが保存されるというように、互いに異なるコンテンツデータが、複数のノード1に分散されて保存される。また、あるコンテンツデータは、1つのノード1に保存されているとは限らず、複数のノード1に同じコンテンツデータが保存されうる。これらのコンテンツデータには、夫々、コンテンツ名(タイトル)等が付与されている。   Further, content (for example, movies, music, etc.) data as distribution information is distributed and stored (stored) in any of the plurality of nodes 1 participating in the overlay network 9. For example, content data of a movie with a title XXX is stored in the node 1a, while content data of a movie with a title YYY is stored in the node 1b. Distributed and stored in a plurality of nodes 1. Certain content data is not necessarily stored in one node 1, and the same content data can be stored in a plurality of nodes 1. Each of these content data is given a content name (title) and the like.

更に、このように分散保存されている各コンテンツデータ毎の所在を示す所在情報(例えば、コンテンツデータが保存されているノード(以下、「コンテンツホルダ」という)のIPアドレス)もまた、オーバーレイネットワーク9に参加している複数のノード1に分散して保存されている。例えば、あるコンテンツデータのコンテンツ名(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノードID用ハッシュ関数によりハッシュ化され(つまり、ノード1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値(当該ハッシュ値がコンテンツIDとなる)と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード1(以下、「ルートノード」という)に、当該コンテンツデータの所在情報が保存されることになる。つまり、同一のコンテンツデータ(コンテンツIDが同一)が、夫々、複数のコンテンツホルダに保存されている場合であっても、かかるコンテンツデータの所在を示す所在情報(複数のコンテンツホルダのIPアドレス等)は、1つのルートノードで管理することができる。   Further, location information (for example, IP address of a node (hereinafter referred to as “content holder”) where content data is stored) indicating the location of each content data distributed and stored in this way is also displayed in the overlay network 9. Are distributed and stored in a plurality of nodes 1 participating in. For example, the content name of some content data (or the first few bytes of the content data may be hashed) by the above-mentioned hash function for node ID (that is, in the same ID space as the hash value of the IP address of node 1) Arrangement), the content data in the node 1 (hereinafter referred to as “root node”) having the node ID closest to the hash value (the hash value becomes the content ID) (for example, the higher digit matches more). Will be stored. That is, even if the same content data (content ID is the same) is stored in a plurality of content holders, location information (such as IP addresses of the plurality of content holders) indicating the location of the content data. Can be managed by one root node.

そして、あるコンテンツデータを取得(ダウンロード)したいユーザが使用するノード(以下、これを「ユーザノード」という)は、ルートノードからコンテンツデータの所在を示す所在情報を取得して、これに基づきコンテンツホルダに接続し、当該コンテンツデータを取得することになる。   Then, a node used by a user who wants to acquire (download) certain content data (hereinafter referred to as “user node”) acquires location information indicating the location of the content data from the root node, and based on this, acquires a content holder. And the content data is acquired.

図2は、DHTのノードID空間において、ユーザノードが所在情報を取得する場合におけるDHTルーティングの一例を示す図である。   FIG. 2 is a diagram illustrating an example of DHT routing when a user node acquires location information in a DHT node ID space.

図2の例では、ユーザノード1aが、所望のコンテンツデータのコンテンツIDが付加されたクエリ(問合せ情報)を他のノード1に対して送出することにより、当該クエリは、DHTルーティングによっていくつかのノード(以下、これを「中継ノード」という)を経由してそのコンテンツデータの所在を示す所在情報を保存しているルートノード1bに辿り着く。上記各中継ノード1nは、受信したクエリに付加されたコンテンツIDと、DHTに登録されているノードIDとを比較して、次に転送すべきノード1を特定(例えば、コンテンツIDの上位数桁が一致するノードIDに対応するノード1のIPアドレスを特定)し、そこにクエリを転送することになる。こうして、ユーザノード1aは、上記ルートノード1bから所在情報を取得(受信)して、コンテンツホルダ1cから上記コンテンツデータを取得(受信)することになる。   In the example of FIG. 2, the user node 1a sends a query (inquiry information) to which the content ID of the desired content data is added to the other nodes 1, so that the query is transmitted through some DHT routing. A node (hereinafter referred to as “relay node”) is reached to a root node 1b that stores location information indicating the location of the content data. Each of the relay nodes 1n compares the content ID added to the received query with the node ID registered in the DHT, and specifies the node 1 to be transferred next (for example, upper digits of the content ID) The IP address of the node 1 corresponding to the node ID with which the IDs match is specified), and the query is transferred there. In this way, the user node 1a acquires (receives) location information from the root node 1b, and acquires (receives) the content data from the content holder 1c.

なお、ユーザノード1aからルートノード1bに至るまでのDHTを用いたクエリの転送方法は、例えば「Pastry」等で公知であるので更なる詳しい説明を省略する。また、クエリがルートノードに辿り着くまでの間に当該ルートノードと同じ所在情報をキャッシュしているノード1から当該所在情報が取得(受信)されるように構成してもよい。   Note that a query transfer method using DHT from the user node 1a to the root node 1b is well-known, for example, “Pastry”, and thus further detailed description is omitted. Further, the location information may be acquired (received) from the node 1 that caches the same location information as the root node until the query reaches the root node.

このようなコンテンツ配信システムSにおいて、上記各ノード1は、コンテンツ配信システムSにおける各ノード1間において共通の関数であるハッシュ関数(以下、「ポート番号用ハッシュ関数」という。これは、上記ノードID用ハッシュ関数と同一のハッシュ関数であってもよいし、異なるハッシュ関数であっても良い)を用いて、例えば自己に割り当てられているIPアドレスに対応するポート番号(第1ポート番号)を生成(例えば、IPアドレスをポート番号用ハッシュ関数にかけ、求めた値の下位16ビット(16進数で4桁(最大値“FFFFh”))をポート番号とする)し、当該ポート番号を待ち受けポート番号として設定するようになっている。そして、あるノード1が、他のノード1にIPアドレスを用いて接続する場合に、上記共通のポート番号用ハッシュ関数を用いて、当該他のノード1のIPアドレスに対応するポート番号(第2ポート番号)を生成(例えば、IPアドレスをポート番号用ハッシュ関数にかけ、求めた値の下位16ビット(16進数で4桁)をポート番号とする)し、当該ポート番号を宛先ポート番号として当該他のノード1との間の接続を確立するようになっている。   In such a content distribution system S, each of the nodes 1 is a hash function (hereinafter referred to as “port number hash function”) that is a common function among the nodes 1 in the content distribution system S. For example, the port number (first port number) corresponding to the IP address assigned to itself may be generated using the same hash function or a different hash function. (For example, the IP address is applied to the port number hash function, and the lower 16 bits of the obtained value (4 digits in hexadecimal (maximum value “FFFFh”) is used as the port number)), and the port number is set as the standby port number. It is supposed to be set. When a certain node 1 connects to another node 1 using an IP address, the port number corresponding to the IP address of the other node 1 (second Port number) (for example, the IP address is applied to the hash function for the port number, and the lower 16 bits (4 digits in hexadecimal) of the obtained value is used as the port number), and the port number is the destination port number. The connection with the node 1 is established.

なお、ポート番号用ハッシュ関数にかける対象としてはIPアドレスに限られず、各ノード1に固有の識別情報であって他のノード1から取得可能な識別情報であれば如何なるものでも適用可能であり、例えば、ノードID、MACアドレスであっても構わない。   The target to be applied to the port number hash function is not limited to the IP address, and any identification information that is unique to each node 1 and can be acquired from other nodes 1 can be applied. For example, a node ID or a MAC address may be used.

また、プライベートIPアドレスが割り当てられたノード1が、企業等の組織のイントラネット等に接続されており、インターネット(グローバルネットワーク)に接続するときに、自己の中継機器としてのNAT(Network Address Translation)機能搭載ルータがIPパケット中のプライベートIPアドレスをグローバルIPアドレスに変換して通信するような(つまり、ノード1がNAT機能搭載ルータの内側に存在する)場合、プライベートIPアドレスは他のノード1と重複する場合があるので、ポート番号用ハッシュ関数にかける対象とすることができない。かかる場合、当該ノード1がインターネットに接続するために必要な中継機器としてのNAT機能搭載ルータ(図示せず)に割り当てられているグローバルIPアドレスを、当該ノード1の固有の識別情報とし、上記共通のポート番号用ハッシュ関数を用いて、当該グローバルIPアドレスに対応するポート番号を生成して、これを当該ノード1の待ち受けポート番号としてNAT機能搭載ルータにおいて設定する。そして、当該NAT機能搭載ルータの待ち受けポートに送信されてきたデータは、当該ノード1に転送(ポートフォワーディング)されるように設定される。   Also, when the node 1 to which a private IP address is assigned is connected to an intranet of an organization such as a company, and connected to the Internet (global network), a NAT (Network Address Translation) function as its own relay device When the installed router converts the private IP address in the IP packet into a global IP address and communicates (that is, the node 1 exists inside the router with the NAT function), the private IP address overlaps with the other node 1 In some cases, it cannot be used as a target for the port number hash function. In such a case, the global IP address assigned to the NAT function-equipped router (not shown) as a relay device necessary for the node 1 to connect to the Internet is used as the unique identification information of the node 1, and the common A port number corresponding to the global IP address is generated using the hash function for the port number and set as a standby port number of the node 1 in the NAT function-equipped router. Then, the data transmitted to the standby port of the router with the NAT function is set to be transferred (port forwarding) to the node 1.

ところで、ポート番号には、公知の如く、10進数で0から65535(16進数で0からFFFF)までの数字が使用されるが、このうち、0から1023までは、ウェルノウンポート番号(Well-known port:言い換えれば、予約されたポート番号)であり(例えば、25番のポート番号の場合、SMTP(Simple Mail Transfer Protocol)を指定することになる)、各ノード1が自由に使用することができない。従って、例えば、上記生成されたポート番号が1024未満の値となる(ウェルノウンポート番号と重複する)場合には、当該ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号を待ち受けポート番号とする(詳細は後述)。   By the way, as is well known, numbers in decimal numbers from 0 to 65535 (hexadecimal values from 0 to FFFF) are used as well-known port numbers. Of these numbers, well-known port numbers (Well-known numbers) are used. port: in other words, a reserved port number) (for example, in the case of the 25th port number, SMTP (Simple Mail Transfer Protocol) is specified), and each node 1 cannot use it freely. . Therefore, for example, when the generated port number is less than 1024 (overlapping with the well-known port number), a predetermined value is set for the generated port number so as not to overlap with the well-known port number. The number obtained as a result of the above operation is set as a standby port number (details will be described later).

[2.ノードの構成等]
次に、図3等を参照して、コンテンツ配信システムSにおけるノード1の構成及び機能について説明する。
[2. Node configuration]
Next, the configuration and function of the node 1 in the content distribution system S will be described with reference to FIG.

図3は、ノード1の概要構成例を示す図である。   FIG. 3 is a diagram illustrating a schematic configuration example of the node 1.

各ノード1は、図3に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、ノードID用ハッシュ関数、ポート番号用ハッシュ関数、上記コンテンツデータ、上記所在情報、DHT及びプログラム等を記憶保存(格納)するためのHDD等から構成された記憶手段としての記憶部12(上記コンテンツデータ及び上記所在情報は、保存されていないノード1もある)と、受信されたコンテンツデータを一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノード1との間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。なお、ノード1としては、STB(Set Top Box)やパーソナルコンピュータを適用可能である。   As shown in FIG. 3, each node 1 includes a control unit 11 as a computer including a CPU having a calculation function, a working RAM, a ROM for storing various data and programs, a hash function for node ID, a port A storage unit 12 (storage for the content data and the location information is stored) composed of an HDD or the like for storing and storing (storing) the hash function for number, the content data, the location information, the DHT, and the program (There is also a node 1 that is not performed), a buffer memory 13 that temporarily stores received content data, encoded video data (video information), audio data (audio information), and the like included in the content data are decoded (data Decoder unit 14 for decompression and decoding) and the decoded video A video processing unit 15 that performs predetermined drawing processing on the data and outputs the video signal; a display unit 16 such as a CRT or a liquid crystal display that displays video based on the video signal output from the video processing unit 15; The decoded audio data is converted into an analog audio signal by D (Digital) / A (Analog) conversion, then amplified by an amplifier and output, and the audio signal output from the audio processing unit 17 is output. A communication unit 20 for controlling communication of information between the speaker 18 that outputs sound waves, the other node 1 through the network 8, and an instruction signal corresponding to the instruction received from the user to the control unit 11 And an input unit (for example, a keyboard, a mouse, or an operation panel) 21 provided to the control unit 11 and storage 12, buffer memory 13, decoder unit 14, a communication unit 20, and the input unit 21 are connected to each other via a bus 22. As the node 1, an STB (Set Top Box) or a personal computer can be applied.

そして、制御部11は、CPUが記憶部12等に記憶された各種プログラムを実行することにより、ノード1全体を統括制御するようになっており、上述したユーザノード1a、ルートノード1b、コンテンツホルダ1c、及び中継ノード1nの何れの動作を行うことが可能になっている。そして、制御部11は、本発明の第1ポート番号生成手段、待ち受けポート設定手段、識別情報取得手段、第2ポート番号生成手段、及び接続確立手段として機能し、後述する各種処理を行うようになっている。   The control unit 11 performs overall control of the entire node 1 by the CPU executing various programs stored in the storage unit 12 or the like, and the above-described user node 1a, root node 1b, content holder Any operation of 1c and relay node 1n can be performed. The control unit 11 functions as a first port number generation unit, a standby port setting unit, an identification information acquisition unit, a second port number generation unit, and a connection establishment unit according to the present invention, and performs various processes described later. It has become.

なお、上記プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。   The program may be downloaded from a predetermined server on the network 8, for example, or may be recorded on a recording medium such as a CD-ROM and read via a drive of the recording medium. It may be.

[3.コンテンツ配信システムの動作]
次に、コンテンツ配信システムSの動作について実施形態1と実施形態2に分けて夫々、説明する。
[3. Operation of content distribution system]
Next, the operation of the content distribution system S will be described separately for the first and second embodiments.

(実施形態1)
始めに、実施形態1におけるコンテンツ配信システムSの動作について、図4乃至図7等を参照して説明する。なお、実施形態1では、IPアドレスをポート番号用ハッシュ関数にかける対象とした場合の実施形態である。
(Embodiment 1)
First, the operation of the content distribution system S according to the first embodiment will be described with reference to FIGS. In the first embodiment, the IP address is an object to be applied to the port number hash function.

図4は、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートであり、図5は、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートであり、図6は、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートであり、図7は、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。   FIG. 4 is a flowchart showing a standby port number setting process in the node control unit 11, FIG. 5 is a flowchart showing a content data search process in the user node control unit 11, and FIG. FIG. 7 is a flowchart illustrating content data search processing in the node control unit 11. FIG. 7 is a flowchart illustrating content data acquisition processing in the user node control unit 11.

図4の処理は、例えばユーザが入力部21を操作して、オーバーレイネットワーク9への参加要求指示を入力した場合に開始され、制御部11は、先ず、自己のノード1がNAT機能搭載ルータの内側に存在するか否かを判別する(ステップS1)。自己がNAT機能搭載ルータの内側に存在しない場合(ステップS1:N)、ステップS2に移行し、自己がNAT機能搭載ルータの内側に存在する場合(ステップS1:Y)、ステップS6に移行する。   The process of FIG. 4 is started when, for example, the user operates the input unit 21 to input a request for participation in the overlay network 9, and the control unit 11 first determines that its node 1 is a NAT function-equipped router. It is determined whether or not it exists inside (step S1). When the self does not exist inside the NAT function-equipped router (step S1: N), the process proceeds to step S2, and when the self exists inside the NAT function-equipped router (step S1: Y), the process proceeds to step S6.

ステップS2では、制御部11は、自己のノード1に割り当てられているIPアドレスをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS2)。例えば、ポート番号用ハッシュ関数により求められたハッシュ値が“A3178692h”(末尾のhは16進数を示す)であったと仮定すると、下位2バイト“8692h”が抽出される。   In step S2, the control unit 11 hashes the IP address assigned to its own node 1 with the port number hash function, and the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby are port numbers. (Step S2). For example, assuming that the hash value obtained by the port number hash function is “A3178692h” (the h at the end indicates a hexadecimal number), the lower 2 bytes “8692h” are extracted.

次いで、制御部11は、ポート番号として抽出された値が“400h”(16進数:10進数で1024)未満であるか否かを判別し(ステップS3)、“400h”未満でない場合には(ステップS3:N)、当該ポート番号として抽出された値を待ち受けポート番号として設定(開放)し(ステップS5)、ステップS13に移行する。一方、抽出された値が“400h”未満である場合(ステップS3:Y)、つまり、抽出された値がウェルノウンポート番号と重複する場合には、制御部11は、例えば、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS4)得た値(つまり、ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号)を待ち受けポート番号として設定(開放)し(ステップS5)、ステップS13に移行する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (hexadecimal: 1024 in decimal) (step S3). Step S3: N), the value extracted as the port number is set (released) as a standby port number (step S5), and the process proceeds to step S13. On the other hand, when the extracted value is less than “400h” (step S3: Y), that is, when the extracted value overlaps with the well-known port number, the control unit 11 extracts, for example, the port number. “4E20h” (hexadecimal: 20000 in decimal) is added to the obtained value (step S4). In other words, a predetermined value is set for the generated port number so as not to overlap with the well-known port number. Is set (opened) as a standby port number (step S5), and the process proceeds to step S13.

一方、ステップS6では、制御部11は、自己のノード1が接続するNAT機能搭載ルータのIPアドレスを取得する。そして、制御部11は、当該取得したIPアドレスをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS7)。   On the other hand, in step S6, the control unit 11 acquires the IP address of the NAT function-equipped router to which the node 1 is connected. Then, the control unit 11 hashes the acquired IP address with a port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S7).

次いで、制御部11は、ステップS3と同様、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS8)、“400h”未満でない場合には(ステップS8:N)、ステップS10に移行し、“400h”未満である場合には(ステップS8:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS9)、ステップS10に移行する。   Next, as in step S3, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S8). If not less than “400h” (step S8: N) ), And if it is less than “400h” (step S8: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number ( Step S9) and the process proceeds to step S10.

ステップS10では、制御部11は、ステップS7若しくはステップS9で得たポート番号が、他のノード1の待ち受けポート番号として既に使用中であるか否かをNAT機能搭載ルータに問い合わせることによって判別する。つまり、NAT機能搭載ルータの内側にノード1が複数存在し、既に他のノード1によりNAT機能搭載ルータのIPアドレスから得られたポート番号が待ち受けポート番号として設定されているか否かが判別される。   In step S10, the control unit 11 determines whether or not the port number obtained in step S7 or step S9 is already in use as a standby port number of another node 1 by inquiring the NAT function-equipped router. That is, it is determined whether or not there are a plurality of nodes 1 inside the NAT function-equipped router, and the port number obtained from the IP address of the NAT function-equipped router has already been set as a standby port number by another node 1. .

そして、ステップS7若しくはステップS9で得られたポート番号が他のノード1により使用中でない場合には(ステップS10:N)、制御部11は、当該ポート番号を待ち受けポート番号として設定(開放)し(ステップS11)、ステップS13に移行する。かかる設定では、NAT機能搭載ルータに対して、当該ノード1の上記ポート番号を待ち受けポート番号として設定する指令がなされ(ポートフォワーディング設定)、これによりNAT機能搭載ルータにおいて当該ノード1の待ち受けポート番号が設定される。   If the port number obtained in step S7 or step S9 is not in use by another node 1 (step S10: N), the control unit 11 sets (releases) the port number as a standby port number. (Step S11), the process proceeds to Step S13. In this setting, a command for setting the port number of the node 1 as a standby port number is issued to the NAT function-equipped router (port forwarding setting), whereby the standby port number of the node 1 is set in the NAT function-equipped router. Is set.

一方、ステップS7若しくはステップS9で得られたポート番号が他のノード1により使用中である場合には(ステップS10:Y)、制御部11は、例えば表示部16における表示画面上に他のノード1によってポート番号が使用中である旨(例えば、「他のノードによってポート番号が使用されています」)等のメッセージを表示させ(ステップS12)、当該処理を終了する。   On the other hand, when the port number obtained in step S7 or step S9 is being used by another node 1 (step S10: Y), the control unit 11 displays another node on the display screen of the display unit 16, for example. 1 displays a message indicating that the port number is in use (for example, “the port number is being used by another node”) (step S12), and the process is terminated.

そして、ステップS13では、制御部11は、既にオーバーレイネットワーク9に参加している任意のノード1のIPアドレスを取得する(例えば、ノード1の出荷時に記憶部12に記憶されていてもよいし、ネットワーク3に接続された所定のサーバから取得しても良い)。   In step S13, the control unit 11 acquires the IP address of an arbitrary node 1 that has already participated in the overlay network 9 (for example, it may be stored in the storage unit 12 when the node 1 is shipped, It may be acquired from a predetermined server connected to the network 3).

次いで、制御部11は、当該取得したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS14)。   Next, the control unit 11 hashes the acquired IP address with the hash function for port number, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S14). .

次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS15)、“400h”未満でない場合には(ステップS15:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該任意のノード1との間の接続を確立して(ステップS16)、当該任意のノード1に対してオーバーレイネットワーク9への参加要求を示す参加要求情報(送信元IPアドレスとして自己のノード1のIPアドレス(NAT機能搭載ルータの内側のノード1の場合、プライベートIPアドレス(NTA機能搭載ルータでグローバルIPアドレスに変換されて出て行く))及びペイロード中にノードIDが含まれる)を送信し(ステップS17)、当該処理を終了する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S15). If the value is not less than “400h” (step S15: N), the above-described extraction is performed. Establishing a connection with the arbitrary node 1 using the IP address and the port number as the destination IP address and the destination port number, respectively (step S16), and connecting the arbitrary node 1 to the overlay network 9 Participation request information indicating participation request (IP address of own node 1 as a source IP address (in the case of node 1 inside the NAT function router, private IP address (converted to a global IP address by the NTA function router) And node ID is included in the payload) (step S17) To terminate the management.

一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS15:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS18)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、上記任意のノード1との間の接続を確立し(ステップS16)、当該任意のノード1に対して上記参加要求情報を送信して(ステップS17)、当該処理を終了する。   On the other hand, if the value extracted as the port number is less than “400h” (step S15: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number. (Step S18), using this as the port number, and establishing the connection with the arbitrary node 1 using the extracted IP address and the port number as the destination IP address and the destination port number, respectively (Step S16). Then, the participation request information is transmitted to the arbitrary node 1 (step S17), and the process ends.

これにより、自己のノード1は、オーバーレイネットワーク9への参加をし、DHTを取得することになり、また、当該ノード1のIPアドレス及びノードIDが他の何れかの1又は複数のノード1におけるDHTに登録されることになる。このように、オーバーレイネットワーク9に参加する全てのノード1は、ポート番号用ハッシュ関数及びIPアドレスにより生成した値を待ち受けポート番号として開放することになる。   As a result, the own node 1 participates in the overlay network 9 and acquires the DHT, and the IP address and node ID of the node 1 are in any one or more other nodes 1. It will be registered in DHT. In this way, all nodes 1 participating in the overlay network 9 release the value generated by the port number hash function and the IP address as the standby port number.

なお、上記処理においては、NAT機能搭載ルータの内側にノード1が複数存在し、生成されたポート番号が他のノード1により使用中である場合に、「他のノードによって使用されています」等のメッセージを表示させるように構成したが、他のノード1により使用中となることがないように夫々のノード1の待ち受けポート番号を設定することも可能である。例えば、上記ステップS7において、ノード1に固有に与えられているMACアドレス又は製造番号をポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出し、ステップS8,9を経て、ステップS11にて待ち受けポート番号を設定するように構成する。このような構成では、上記ステップS13で送信される参加要求情報には、MACアドレス又は製造番号、当該ノード1のノードID、及びNAT機能搭載ルータのIPアドレスが含まれることになり、当該MACアドレス又は製造番号と、NAT機能搭載ルータのIPアドレスの組がノードIDと共に他の何れかの1又は複数のノード1におけるDHTに登録される(この場合、他のノード1はMACアドレス又は製造番号をポート番号用ハッシュ関数によりハッシュ化して待ち受けポート番号を求める)ことになる。また、ノード1に固有に与えられているノードIDをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出し、ステップS8,9を経て、ステップS11にて待ち受けポート番号を設定するように構成してもよい。   In the above processing, when there are multiple nodes 1 inside the NAT function-equipped router and the generated port number is in use by another node 1, it is “used by another node” etc. However, it is also possible to set the standby port number of each node 1 so that it is not in use by other nodes 1. For example, in the above step S7, the MAC address or serial number uniquely assigned to the node 1 is hashed by the port number hash function, and the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby are ported. A number is extracted, and after steps S8 and S9, a standby port number is set in step S11. In such a configuration, the participation request information transmitted in step S13 includes the MAC address or serial number, the node ID of the node 1, and the IP address of the NAT function-equipped router. Alternatively, the set of the serial number and the IP address of the router equipped with the NAT function is registered in the DHT in any one or more other nodes 1 together with the node ID (in this case, the other node 1 stores the MAC address or the serial number). The standby port number is obtained by hashing with the port number hash function). Further, the node ID uniquely given to the node 1 is hashed by the port number hash function, and the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby are extracted as the port number, and step S8, Through step 9, the standby port number may be set in step S11.

次に、図5の処理は、ユーザノード1aにおけるユーザが例えば入力部21を操作して、コンテンツデータ検索指示を入力した場合に開始され、制御部11は、例えば記憶部12に記憶されているコンテンツリストのデータを読み出し、これを表示部16における表示画面上に表示させる(ステップS21)。このコンテンツリストには、複数のコンテンツデータのコンテンツ名等の情報が記述されている。   Next, the process of FIG. 5 is started when the user in the user node 1a operates the input unit 21 to input a content data search instruction, for example, and the control unit 11 is stored in the storage unit 12, for example. The content list data is read out and displayed on the display screen of the display unit 16 (step S21). In this content list, information such as content names of a plurality of content data is described.

このような表示状態において、ユーザが入力部21を操作して、所望のコンテンツ名を選択すると、制御部11は、これに応じ(ステップS22:Y)、選択されたコンテンツ名を、ノードID用ハッシュ関数によりハッシュ化してコンテンツIDを求める(ステップS23)。   In such a display state, when the user operates the input unit 21 and selects a desired content name, the control unit 11 responds to this (step S22: Y), and uses the selected content name for the node ID. The content ID is obtained by hashing with a hash function (step S23).

次いで、制御部11は、DHTを参照し、例えば当該コンテンツIDの最上位桁が一致するノードIDに対応する他のノード1(クエリを送信すべき他のノード1)のIPアドレスを抽出する(ステップS24)。   Next, the control unit 11 refers to the DHT and extracts, for example, the IP address of the other node 1 (the other node 1 to which the query is to be transmitted) corresponding to the node ID with which the most significant digit of the content ID matches ( Step S24).

次いで、制御部11は、抽出したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS25)。   Next, the control unit 11 hashes the extracted IP address with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S25).

次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS26)、“400h”未満でない場合には(ステップS26:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立して(ステップS27)、上記ステップS23で求めたコンテンツIDが付加されたクエリを当該他のノード1に送信し(ステップS28)、当該処理を終了する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S26). If the value is not less than “400h” (step S26: N), the above-described extraction is performed. Establishing a connection with the other node 1 using the IP address and the port number as the destination IP address and the destination port number, respectively (step S27), and the query to which the content ID obtained in step S23 is added Is transmitted to the other node 1 (step S28), and the process ends.

一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS26:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS29)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立し(ステップS27)、上記ステップS23で求めたコンテンツIDが付加されたクエリ(自己のIPアドレスを含む)を当該他のノード1に送信して(ステップS28)、当該処理を終了する。   On the other hand, if the value extracted as the port number is less than “400h” (step S26: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number. (Step S29), using this as the port number, and establishing the connection with the other node 1 using the extracted IP address and the port number as the destination IP address and the destination port number, respectively (Step S27). Then, the query (including its own IP address) to which the content ID obtained in step S23 is added is transmitted to the other node 1 (step S28), and the process is terminated.

次に、図6の処理は、ユーザノード1aから送信されてきたクエリが受信された場合に開始され、先ず、制御部11は、自己のノード1が、上記受信したクエリに付加されたコンテンツIDに対応するコンテンツデータのルートノード1bであるか否かを、例えば、自己のノード1のノードIDが当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)か否かによって判別する(ステップS31)。   Next, the processing of FIG. 6 is started when a query transmitted from the user node 1a is received. First, the control unit 11 determines that the node 1 has a content ID added to the received query. For example, whether or not the node ID of its own node 1 is closest to the content ID (for example, the higher-order digits match more). Step S31).

自己のノード1がルートノード1bでない場合には(ステップS31:N)、制御部11は、DHTを参照し、例えば当該コンテンツIDの上位数桁目(例えば、上位2桁目)が一致するノードIDに対応する他のノード1(クエリを転送すべき他のノード1)のIPアドレスを抽出する(ステップS32)。   When the node 1 is not the root node 1b (step S31: N), the control unit 11 refers to the DHT, for example, a node in which the upper few digits (for example, the upper second digit) of the content ID match. The IP address of the other node 1 (other node 1 to which the query is transferred) corresponding to the ID is extracted (step S32).

次いで、制御部11は、抽出したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS33)。   Next, the control unit 11 hashes the extracted IP address with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S33).

次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS34)、“400h”未満でない場合には(ステップS34:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立して(ステップS35)、上記受信されたクエリを当該他のノード1に送信(転送)し(ステップS36)、当該処理を終了する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S34). If the value is not less than “400h” (step S34: N), the above-described extraction is performed. Establishing a connection with the other node 1 using the IP address and the port number as the destination IP address and the destination port number, respectively (step S35), and transmitting the received query to the other node 1 (Transfer) (step S36), and the process ends.

一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS34:Y)、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS37)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立し(ステップS35)、上記受信されたクエリを当該他のノード1に送信(転送)して(ステップS36)、当該処理を終了する。   On the other hand, if the value extracted as the port number is less than “400h” (step S34: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number. (Step S37), using this as the port number, and establishing the connection with the other node 1 using the extracted IP address and the port number as the destination IP address and the destination port number, respectively (Step S35). The received query is transmitted (transferred) to the other node 1 (step S36), and the process is terminated.

一方、ステップS31において、自己のノード1がルートノード1bである場合には(ステップS31:Y)、制御部11は、クエリにより要求されたコンテンツデータの所在情報を記憶部12から取得する(ステップS38)。   On the other hand, if the node 1 is the root node 1b in step S31 (step S31: Y), the control unit 11 acquires the location information of the content data requested by the query from the storage unit 12 (step S31). S38).

次いで、制御部11は、上記クエリからユーザノード1aのIPアドレスを取り出し(ステップS39)、当該IPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS40)。   Next, the control unit 11 extracts the IP address of the user node 1a from the query (step S39), hashes the IP address with the hash function for the port number, and the lower 16 bits (hexadecimal number) of the hash value obtained thereby. 4 digits) is extracted as a port number (step S40).

次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS41)、“400h”未満でない場合には(ステップS41:N)、上記取り出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、ユーザノード1aとの間の接続を確立して(ステップS42)、上記ステップS38で取得したコンテンツデータの所在情報を当該ユーザノード1aに送信し(ステップS43)、当該処理を終了する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S41). If it is not less than “400h” (step S41: N), the control unit 11 takes out the above-mentioned value. Establishing a connection with the user node 1a using the IP address and the port number as the destination IP address and the destination port number, respectively (step S42), and the location information of the content data acquired in step S38 is used as the user node 1a (step S43), and the process ends.

一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS41:Y)、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS44)、これをポート番号とし、上記取り出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、ユーザノード1aとの間の接続を確立し(ステップS42)、上記ステップS38で取得したコンテンツデータの所在情報を当該ユーザノード1aに送信し(ステップS43)、当該処理を終了する。   On the other hand, if the value extracted as the port number is less than “400h” (step S41: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number. (Step S44), using this as the port number, establishing the connection with the user node 1a using the extracted IP address and the port number as the destination IP address and the destination port number, respectively (Step S42). The location information of the content data acquired in step S38 is transmitted to the user node 1a (step S43), and the process ends.

次に、図7の処理は、例えば、ルートノード1cから送信されてきたコンテンツデータの所在情報が受信された場合に開始され、先ず、制御部11は、所在情報のうちからコンテンツホルダ1cのIPアドレスを取得する(ステップS51)。なお、所在情報に複数のコンテンツホルダのIPアドレスが含まれている場合には、その中からランダムに選択された1つのIPアドレス、或いは、ユーザにより入力部21を介して選択された1つのIPアドレスが取得されることになる。   Next, the processing of FIG. 7 is started when, for example, location information of content data transmitted from the root node 1c is received. First, the control unit 11 determines the IP of the content holder 1c from the location information. An address is acquired (step S51). When the location information includes IP addresses of a plurality of content holders, one IP address randomly selected from the IP addresses selected from the IP addresses selected by the user or one IP selected by the user via the input unit 21 is used. An address will be obtained.

次いで、制御部11は、取得したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS52)。   Next, the control unit 11 hashes the acquired IP address with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S52).

次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS53)、“400h”未満でない場合には(ステップS53:N)、上記取得したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該コンテンツホルダ1cとの間の接続を確立して(ステップS54)、コンテンツデータの要求情報を当該コンテンツホルダ1cに送信し(ステップS55)、これに応じてコンテンツホルダ1cにより送信されてきたコンテンツデータを受信し(ステップS56)、当該処理を終了する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S53). When the value is not less than “400h” (step S53: N), the acquired value is obtained. Establishing a connection with the content holder 1c using the IP address and the port number as the destination IP address and the destination port number, respectively (step S54), and transmitting the request information of the content data to the content holder 1c ( In step S55, the content data transmitted by the content holder 1c in response to this is received (step S56), and the process is terminated.

一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS53:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS57)、これをポート番号とし、上記取得したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該コンテンツホルダ1cとの間の接続を確立して(ステップS54)、コンテンツデータの要求情報を当該コンテンツホルダ1cに送信し(ステップS55)、これに応じてコンテンツホルダ1cから送信されてきたコンテンツデータを受信し(ステップS56)、当該処理を終了する。   On the other hand, if the value extracted as the port number is less than “400h” (step S53: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number. (Step S57), using this as the port number and establishing the connection with the content holder 1c using the acquired IP address and the port number as the destination IP address and the destination port number, respectively (Step S54). The content data request information is transmitted to the content holder 1c (step S55), and the content data transmitted from the content holder 1c is received accordingly (step S56), and the process ends.

(実施形態2)
次に、実施形態2におけるコンテンツ配信システムSの動作について、図8乃至図11等を参照して説明する。なお、実施形態2では、ノードIDをポート番号用ハッシュ関数にかける対象とした場合の実施形態である。
(Embodiment 2)
Next, the operation of the content distribution system S according to the second embodiment will be described with reference to FIGS. In the second embodiment, the node ID is an object to be applied to the port number hash function.

図8は、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートであり、図9は、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートであり、図10は、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートであり、図11は、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。   FIG. 8 is a flowchart showing a standby port number setting process in the node control unit 11, FIG. 9 is a flowchart showing a content data search process in the user node control unit 11, and FIG. FIG. 11 is a flowchart illustrating content data search processing in the node control unit 11. FIG. 11 is a flowchart illustrating content data acquisition processing in the user node control unit 11.

図8の処理は、例えばユーザが入力部21を操作して、オーバーレイネットワーク9への参加要求指示を入力した場合に開始され、制御部11は、例えば自己のノード1に一意に割り当てられている製造番号をノードID用ハッシュ関数によりハッシュ化してノードID(例えば、1CF2 A0B6 F32B 4581h(16進数))を求める(ステップS101)。   The process of FIG. 8 is started when, for example, the user operates the input unit 21 and inputs a request for participation in the overlay network 9, and the control unit 11 is uniquely assigned to its own node 1, for example. The production number is hashed with a node ID hash function to obtain a node ID (for example, 1CF2 A0B6 F32B 4581h (hexadecimal number)) (step S101).

次いで、制御部11は、当該ノードIDをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値(例えば、B356 8976h(16進数))の下位16ビット(16進数で4桁)をポート番号(例えば、8976h)として抽出する(ステップS102)。   Next, the control unit 11 hashes the node ID with the port number hash function, and obtains the lower 16 bits (4 digits in hexadecimal) of the hash value (for example, B356 8976h (hexadecimal)) obtained thereby. (For example, 8976h) is extracted (step S102).

次いで、制御部11は、ポート番号として抽出された値が“400h”(16進数)未満であるか否かを判別し(ステップS103)、“400h”未満でない場合には(ステップS103:N)、ステップS105に移行し、“400h”未満である場合には(ステップS103:Y)、当該ポート番号として抽出された値に“4E20h”(16進数)を加算して(ステップS104)、ステップS105に移行する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (hexadecimal number) (step S103). If not less than “400h” (step S103: N) The process proceeds to step S105, and if it is less than “400h” (step S103: Y), “4E20h” (hexadecimal number) is added to the value extracted as the port number (step S104), and step S105. Migrate to

ステップS105では、制御部11は、自己のノード1がNAT機能搭載ルータの内側に存在するか否かを判別する。そして、自己がNAT機能搭載ルータの内側に存在しない場合(ステップS105:N)、ステップS106に移行し、自己がNAT機能搭載ルータの内側に存在する場合(ステップS105:Y)、ステップS107に移行する。   In step S105, the control unit 11 determines whether or not its own node 1 exists inside the NAT function-equipped router. If the self does not exist inside the NAT function-equipped router (step S105: N), the process proceeds to step S106. If the self exists within the NAT function-equipped router (step S105: Y), the process proceeds to step S107. To do.

ステップS106では、制御部11は、ステップS102若しくはステップS104においてポート番号として得られた値を待ち受けポート番号として設定(開放)し(ステップS106)、ステップS110に移行する。   In step S106, the control unit 11 sets (releases) the value obtained as the port number in step S102 or step S104 as the standby port number (step S106), and proceeds to step S110.

一方、ステップS107では、制御部11は、ステップS102若しくはステップS104においてポート番号として得られた値が、他のノード1の待ち受けポート番号として既に使用中であるか否かを、NAT機能搭載ルータに問い合わせることによって判別する。つまり、NAT機能搭載ルータの内側にノード1が複数存在し、ステップS102若しくはステップS104においてポート番号として得られた値が、同じNAT機能搭載ルータの内側に存在する他のノード1により既に得られた(ポート番号用ハッシュ関数により)値と同一であるか否かが判別される。これは、NAT機能搭載ルータの内側に存在する複数のノード1のノードIDは互いに異なるが、これらのハッシュ値の下位16ビット(16進数で4桁)の値(或いは、“4E20h” (16進数)が加算された値)が一致する場合が考えられるためである。但し、一致しない場合も十分に考えられるため、実施形態1のようにIPアドレスをポート番号用ハッシュ関数によりハッシュ化してポート番号を得るよりも、ノードIDをポート番号用ハッシュ関数によりハッシュ化してポート番号を得る方が待ち受けポート番号の設定の幅が広がるという利点がある。   On the other hand, in step S107, the control unit 11 determines whether or not the value obtained as the port number in step S102 or step S104 is already in use as the standby port number of another node 1 to the NAT function-equipped router. Determine by making an inquiry. That is, there are a plurality of nodes 1 inside the NAT function-equipped router, and the value obtained as the port number in step S102 or step S104 has already been obtained by another node 1 existing inside the same NAT function-equipped router. It is determined whether the value is the same (by the port number hash function). This is because the node IDs of the plurality of nodes 1 existing inside the router equipped with the NAT function are different from each other, but the lower 16 bits (4 digits in hexadecimal) of these hash values (or “4E20h” (hexadecimal) This is because the value obtained by adding () may match. However, since there is a sufficient possibility that they do not match, rather than obtaining the port number by hashing the IP address with the port number hash function as in the first embodiment, the node ID is hashed with the port number hash function to obtain the port number. Obtaining a number has the advantage that the setting range of the standby port number is widened.

そして、ステップS102若しくはステップS104で得られたポート番号が他のノード1により使用中でない場合には(ステップS107:N)、制御部11は、当該ポート番号を待ち受けポート番号として設定(開放)し(ステップS108)、ステップS110に移行する。かかる設定では、NAT機能搭載ルータに対して、当該ノード1の上記ポート番号を待ち受けポート番号として設定する指令がなされ(ポートフォワーディング設定)、これによりNAT機能搭載ルータにおいて当該ノード1の待ち受けポート番号が設定される。   If the port number obtained in step S102 or step S104 is not in use by another node 1 (step S107: N), the control unit 11 sets (releases) the port number as a standby port number. (Step S108), the process proceeds to Step S110. In this setting, a command for setting the port number of the node 1 as a standby port number is issued to the NAT function-equipped router (port forwarding setting), whereby the standby port number of the node 1 is set in the NAT function-equipped router. Is set.

一方、ステップS102若しくはステップS104で得られたポート番号が他のノード1により使用中である場合には(ステップS107:Y)、制御部11は、例えば表示部16における表示画面上に他のノード1によってポート番号が使用中である旨(例えば、「他のノードによってポート番号が使用されています」)等のメッセージを表示させ(ステップS109)、当該処理を終了する。   On the other hand, when the port number obtained in step S102 or step S104 is being used by another node 1 (step S107: Y), the control unit 11 displays another node on the display screen of the display unit 16, for example. 1 displays a message indicating that the port number is in use (for example, “the port number is being used by another node”) (step S109), and the process is terminated.

ステップS110では、制御部11は、既にオーバーレイネットワーク9に参加している任意のノード1のIPアドレスとノードIDを取得する。   In step S110, the control unit 11 acquires the IP address and node ID of any node 1 that has already joined the overlay network 9.

次いで、制御部11は、当該取得したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS111)。   Next, the control unit 11 hashes the acquired node ID with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S111). .

次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS112)、“400h”未満でない場合には(ステップS112:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該任意のノード1との間の接続を確立して(ステップS113)、当該任意のノード1に対してオーバーレイネットワーク9への参加要求を示す参加要求情報(送信元アドレスとして自己のノード1のIPアドレス(NAT機能搭載ルータの内側のノード1の場合、プライベートIPアドレス)及びペイロード中にノードIDが含まれる)を送信し(ステップS114)、当該処理を終了する。   Next, the control unit 11 determines whether or not the value extracted as the port number is less than “400h” (step S112). If the value is not less than “400h” (step S112: N), the above-described extraction is performed. Establishing a connection with the arbitrary node 1 using the IP address and the port number as the destination IP address and the destination port number, respectively (step S113), and connecting the arbitrary node 1 to the overlay network 9 Participation request information indicating a participation request (IP address of own node 1 (a private IP address in the case of the node 1 inside the NAT function-equipped router) and a node ID is included in the payload) is transmitted as a transmission source address ( Step S114), the process ends.

一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS112:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS115)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、上記任意のノード1との間の接続を確立して(ステップS113)、当該任意のノード1に対して上記参加要求情報を送信して(ステップS114)、当該処理を終了する。   On the other hand, if the value extracted as the port number is less than “400h” (step S112: Y), “4E20h” (hexadecimal: 20000 in decimal) is added to the value extracted as the port number. (Step S115), this is used as a port number, and the connection with the arbitrary node 1 is established using the extracted IP address and the port number as the destination IP address and the destination port number, respectively (Step S113). ), The participation request information is transmitted to the arbitrary node 1 (step S114), and the process ends.

これにより、自己のノード1は、オーバーレイネットワーク9への参加をし、DHTを取得することになり、また、当該ノード1のIPアドレス及びノードIDが他の何れかの1又は複数のノード1におけるDHTに登録されることになる。このように、オーバーレイネットワーク9に参加する全てのノード1は、ポート番号用ハッシュ関数及びノードIDにより生成した値を待ち受けポート番号として開放することになる。   As a result, the own node 1 participates in the overlay network 9 and acquires the DHT, and the IP address and node ID of the node 1 are in any one or more other nodes 1. It will be registered in DHT. As described above, all the nodes 1 participating in the overlay network 9 release the value generated by the port number hash function and the node ID as the standby port number.

次に、図9の処理は、ユーザノード1aにおけるユーザが例えば入力部21を操作して、コンテンツデータ検索指示を入力した場合に開始される。なお、ステップS121からS123までの処理は、図5に示すステップS21からS23までの処理と同様であるので重複する説明を省略する。   Next, the process of FIG. 9 is started when the user in the user node 1a operates the input unit 21 to input a content data search instruction. In addition, since the process from step S121 to S123 is the same as the process from step S21 to S23 shown in FIG. 5, the overlapping description is abbreviate | omitted.

次いで、制御部11は、DHTを参照し、例えば当該コンテンツIDの最上位桁が一致するノードIDとこれに対応する他のノード1のIPアドレスを抽出する(ステップS124)。   Next, the control unit 11 refers to the DHT and extracts, for example, a node ID having the same most significant digit of the content ID and an IP address of another node 1 corresponding to the node ID (step S124).

次いで、制御部11は、抽出したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS125)。   Next, the control unit 11 hashes the extracted node ID with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S125).

なお、ステップS126からS129までの処理は、図5に示すステップS26からS29までの処理と同様であるので重複する説明を省略する。   Note that the processing from step S126 to S129 is the same as the processing from step S26 to S29 shown in FIG.

次に、図10の処理は、ユーザノード1aから送信されてきたクエリ(ユーザノード1aのIPアドレス及びノードIDを含む)が受信された場合に開始され、先ず、制御部11は、自己のノード1が、上記受信したクエリに付加されたコンテンツIDに対応するコンテンツデータのルートノード1bであるか否かを、例えば、自己のノード1のノードIDが当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)か否かによって判別する(ステップS131)。   Next, the processing of FIG. 10 is started when a query (including the IP address and node ID of the user node 1a) transmitted from the user node 1a is received. 1 is the root node 1b of the content data corresponding to the content ID added to the received query. For example, the node ID of its own node 1 is closest to the content ID (for example, the upper digit) Is determined according to whether or not more match (step S131).

自己のノード1がルートノード1bでない場合には(ステップS131:N)、制御部11は、DHTを参照し、例えば当該コンテンツIDの上位数桁目(例えば、上位2桁目)が一致するノードIDとこれに対応するIPアドレスを抽出する(ステップS132)。   When the own node 1 is not the root node 1b (step S131: N), the control unit 11 refers to the DHT, for example, a node in which the upper few digits (for example, the upper second digit) of the content ID match. The ID and the corresponding IP address are extracted (step S132).

次いで、制御部11は、抽出したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS133)。   Next, the control unit 11 hashes the extracted node ID with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S133).

なお、ステップS134からS137までの処理は、図6に示すステップS34からS37までの処理と同様であるので重複する説明を省略する。   Note that the processing from step S134 to S137 is the same as the processing from step S34 to S37 shown in FIG.

一方、ステップS131において、自己のノード1がルートノード1bである場合には(ステップS131:Y)、制御部11は、クエリにより要求されたコンテンツデータの所在情報を記憶部12から取得する(ステップS138)。   On the other hand, when the node 1 is the root node 1b in step S131 (step S131: Y), the control unit 11 acquires the location information of the content data requested by the query from the storage unit 12 (step S131). S138).

次いで、制御部11は、上記クエリからユーザノード1aのノードID及びIPアドレスを取り出し(ステップS139)、当該ノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS140)。   Next, the control unit 11 extracts the node ID and IP address of the user node 1a from the query (step S139), hashes the node ID with the port number hash function, and the lower 16 bits of the hash value obtained thereby. (4 digits in hexadecimal) is extracted as a port number (step S140).

なお、ステップS141からS144までの処理は、図6に示すステップS41からS44までの処理と同様であるので重複する説明を省略する。なお、ルートノード1cはコンテンツデータの所在情報と共にノードIDをユーザノード1aに送信することになる。   Note that the processing from step S141 to S144 is the same as the processing from step S41 to S44 shown in FIG. The root node 1c transmits the node ID together with the location information of the content data to the user node 1a.

次に、図11の処理は、例えば、ルートノード1cから送信されてきたコンテンツデータの所在情報とノードIDが受信された場合に開始され、先ず、制御部11は、所在情報のうちからコンテンツホルダ1cのIPアドレスを取得する(ステップS151)。   Next, the process of FIG. 11 is started when, for example, the location information and node ID of the content data transmitted from the root node 1c are received. First, the control unit 11 selects the content holder from the location information. The IP address 1c is acquired (step S151).

次いで、制御部11は、受信したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS152)。   Next, the control unit 11 hashes the received node ID with the port number hash function, and extracts the lower 16 bits (4 digits in hexadecimal) of the hash value obtained thereby as a port number (step S152).

なお、ステップS153からS157までの処理は、図7に示すステップS53からS57までの処理と同様であるので重複する説明を省略する。   Note that the processing from step S153 to S157 is the same as the processing from step S53 to S57 shown in FIG.

以上説明したように、上記実施形態によれば、各ノード1の待ち受けポート番号は、各ノード1に一意に割り当てられたIPアドレス又はノードID等が、共通のポート番号用ハッシュ関数によりハッシュ化された値に基づき生成されるので、基本的には夫々異なって分散されることになり、したがって、セキュリティの向上を図ることができるとともに、各ノード1は、ポート番号紹介(照会)サーバに照会することなく、接続相手のノード1の待ち受けポート番号を上記共通のポート番号用ハッシュ関数を用いて(つまり、待ち受けポート番号を設定するノード1と同一のポート番号用ハッシュ関数を用い、同一の演算により)効率良く取得することができる。また、これにより、ポート番号紹介(照会)サーバを設けるコストを削減することもできる。   As described above, according to the above-described embodiment, the standby port number of each node 1 is hashed by the common port number hash function using the IP address or node ID uniquely assigned to each node 1. Therefore, each node 1 makes an inquiry to the port number introduction (inquiry) server while improving the security. Without using the common port number hash function (that is, the same port number hash function as that of the node 1 for setting the standby port number, and the same calculation) ) Can be acquired efficiently. This can also reduce the cost of providing a port number introduction (inquiry) server.

なお、上記実施形態において、各ノード1が共通に有するポート番号用ハッシュ関数が、定期的(例えば、DHTの更新タイミングで)に更新(変更)されると共に、当該更新されたポート番号用ハッシュ関数を基にポート番号が生成され待ち受けポート番号も定期的に変更される(設定し直される)ように構成しても良い。このように構成すれば、より一層、セキュリティの向上を図ることができる。   In the above-described embodiment, the port number hash function shared by the nodes 1 is updated (changed) periodically (for example, at the DHT update timing), and the updated port number hash function is updated. A port number may be generated on the basis of this, and the standby port number may be periodically changed (reset). With this configuration, it is possible to further improve security.

例えば、夫々のノード1の記憶部12に予め複数(互いに異なる複数種類、例えば12種類)のポート番号用ハッシュ関数(例えば、1〜12番までのポート番号用ハッシュ関数)を記憶させておき、夫々のノード1における制御部11は、一定時間毎に記憶部12に記憶された複数のポート番号用ハッシュ関数のうちから一のポート番号用ハッシュ関数を取得(例えば、毎月1日の0時に、その月に対応した番号を持つポート番号用ハッシュ関数を取得)し、これを用いて第1ポート番号を生成し、当該生成された第1ポート番号を待ち受けポート番号として設定し直す。そして、夫々のノード装置における制御部11は、上記待ち受けポート番号の設定し直しに同期して、用いるべきポート番号用ハッシュ関数を変更、つまり、他のノード1に接続する際に用いるポート番号用ハッシュ関数を適宜、記憶部12から取得(例えば、その月に対応した番号を持つポート番号用ハッシュ関数を取得)してこれを用いて宛先となる待ち受けポート番号を生成するように構成する。   For example, a plurality (different types, for example, 12 types) of port number hash functions (for example, port number hash functions 1 to 12) are stored in advance in the storage unit 12 of each node 1. The control unit 11 in each node 1 acquires one port number hash function from a plurality of port number hash functions stored in the storage unit 12 at regular intervals (for example, at 0:00 on the first day of every month, A hash function for a port number having a number corresponding to the month is acquired), and a first port number is generated using this function, and the generated first port number is reset as a standby port number. The control unit 11 in each node device changes the port number hash function to be used in synchronization with the resetting of the standby port number, that is, the port number used when connecting to another node 1. A hash function is appropriately acquired from the storage unit 12 (for example, a port number hash function having a number corresponding to the month is acquired), and a standby port number as a destination is generated using the hash function.

また、ポート番号用ハッシュ関数は、ネットワーク3に接続された所定のノード、或いはサーバから、当該ネットワーク3を介して夫々のノード1に対して定期的に(例えば、月毎に)配信(配布)されて記憶部12に記憶(例えば、以前の古いポート番号用ハッシュ関数を配信された、新しいポート番号用ハッシュ関数で上書き更新)されるようにし、夫々のノード1における制御部11は、配信されたポート番号用ハッシュ関数(例えば、当該ハッシュ関数には、更新日時を示す情報も付加されている)を取得し(例えば、更新日時になったら)、これを用いて第1ポート番号を生成し、当該生成された第1ポート番号を待ち受けポート番号として設定し直す。そして、夫々のノード装置における制御部11は、上記待ち受けポート番号の設定し直しに同期して、用いるべきポート番号用ハッシュ関数を変更、つまり、他のノード1に接続する際に用いるポート番号用ハッシュ関数を記憶部12から取得してこれを用いて宛先となる待ち受けポート番号を生成するように構成する。   Further, the port number hash function is distributed (distributed) from a predetermined node or server connected to the network 3 to each node 1 via the network 3 periodically (for example, monthly). And stored in the storage unit 12 (for example, the old hash function for the old port number has been distributed and updated with the new hash function for the port number), and the control unit 11 in each node 1 is distributed. Obtain a port number hash function (for example, information indicating the update date and time is also added to the hash function) (for example, when the update date and time is reached), and use this to generate the first port number Then, the generated first port number is reset as a standby port number. The control unit 11 in each node device changes the port number hash function to be used in synchronization with the resetting of the standby port number, that is, the port number used when connecting to another node 1. A hash function is acquired from the storage unit 12, and a standby port number as a destination is generated using the hash function.

なお、このようなポート番号用ハッシュ関数の定期的な更新(変更)は、オーバーレイネットワーク9に参加している全てのノード1において同期して(同一タイミングで)行われる必要があることから、全てノード1は、日付及び時刻を正確に認識している必要があるため、例えば、NTP(Network Time Protocol)を用いて正確な日付を取得するように構成される。これによりポート番号用ハッシュ関数の更新タイミングを正確にすることができる。   It should be noted that such periodic update (change) of the port number hash function needs to be performed synchronously (at the same timing) in all the nodes 1 participating in the overlay network 9. Since the node 1 needs to accurately recognize the date and time, the node 1 is configured to acquire an accurate date using, for example, NTP (Network Time Protocol). As a result, the update timing of the port number hash function can be made accurate.

また、上記実施形態においては、IPアドレス等をポート番号用ハッシュ関数にかけ、得られた値の16進数で下4桁を抽出し、これに基づき待ち受けポート番号を設定したが、これに限定されるものではなく、例えば、IPアドレス等をポート番号用ハッシュ関数にかけ、得られた値の10進数で10進数の下4桁を抽出し、抽出された値に例えば10000〜60000を加えて、待ち受けポート番号としても良い(但し、1023以下又は65536以上になった場合、1024以上65535以下になるように調整される)。   In the above embodiment, the IP address or the like is applied to the port number hash function, the last 4 digits are extracted in hexadecimal of the obtained value, and the standby port number is set based on this, but it is limited to this. For example, the IP address or the like is applied to the port number hash function, the last 4 digits of the decimal number is extracted with the decimal value of the obtained value, and 10000 to 60000 is added to the extracted value, for example, and the standby port It is good also as a number (however, when it becomes 1023 or less or 65536 or more, it adjusts so that it may become 1024 or more and 65535 or less).

また、上記ステップS9,S18,S29,S37,S44,S57,S104,S115,S129,S137,S144,及びS157全てにおいて、一定の値である“4E20h”を加算していたが、上記各ステップにおいて共通の値であれば、他の値であっても良いし、加算でなくてもよい。   Further, in all the steps S9, S18, S29, S37, S44, S57, S104, S115, S129, S137, S144, and S157, the constant value “4E20h” was added. As long as they are common values, other values may be used, or they may not be added.

例えば、ポート番号用ハッシュ関数から求められた値が1024(10進数)未満の値の場合は、以下のような演算によっても求めること可能である。   For example, when the value obtained from the port number hash function is less than 1024 (decimal number), it can also be obtained by the following calculation.

(1)65535から、求められた値(1024未満の値)を減算
(2)1024以上の値(共通の値)と、求められた値(1024未満の値)とのビット単位での排他的論理和
(3)求められた値(1024未満の値)の補数(全ビットの反転した値)
また、上記実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提として説明したが、本発明はこれに限定されるものではなく、その他のコンピュータネットワークシステムに対しても適用可能である。
(1) Subtract the calculated value (value less than 1024) from 65535. (2) Exclusive in bit units between the value greater than 1024 (common value) and the calculated value (value less than 1024) OR (3) Complement of obtained value (value less than 1024) (inverted value of all bits)
In the above embodiment, the description has been made on the assumption that the overlay network 9 is constructed by an algorithm using DHT. However, the present invention is not limited to this and can be applied to other computer network systems. It is.

本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。It is a figure which shows an example of the connection aspect of each node apparatus in the content delivery system which concerns on this embodiment. DHTのノードID空間において、ユーザノードが所在情報を取得する場合におけるDHTルーティングの一例を示す図である。It is a figure which shows an example of DHT routing in case a user node acquires location information in the node ID space of DHT. ノード1の概要構成例を示す図である。FIG. 3 is a diagram illustrating a schematic configuration example of a node 1. 実施形態1において、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートである。5 is a flowchart illustrating a standby port number setting process in a node control unit 11 according to the first exemplary embodiment. 実施形態1において、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートである。5 is a flowchart illustrating content data search processing in a control unit 11 of a user node in the first embodiment. 実施形態1において、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートである。5 is a flowchart illustrating content data search processing in a control unit 11 of a relay node or a root node in the first embodiment. 実施形態1において、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。5 is a flowchart illustrating content data acquisition processing in a control unit 11 of a user node in the first embodiment. 実施形態2において、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートである。9 is a flowchart illustrating a standby port number setting process in a control unit 11 of a node in the second embodiment. 実施形態2において、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートである。9 is a flowchart illustrating content data search processing in a control unit 11 of a user node in the second embodiment. 実施形態2において、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートである。9 is a flowchart illustrating content data search processing in a control unit 11 of a relay node or a root node in the second embodiment. 実施形態2において、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。9 is a flowchart illustrating content data acquisition processing in a control unit 11 of a user node in the second embodiment.

符号の説明Explanation of symbols

1 ノード
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
1 node 8 network 9 overlay network 11 control unit 12 storage unit 13 buffer memory 14 decoder unit 15 video processing unit 16 display unit 17 audio processing unit 18 speaker 20 communication unit 21 input unit 22 bus

Claims (10)

ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおいて、
夫々の前記ノード装置は、
自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、
前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する第1ポート番号生成手段と、
前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、
他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、
前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する第2ポート番号生成手段と、
前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、
を備えることを特徴とするネットワークシステム。
In a network system including a plurality of node devices that can be connected to each other via a network,
Each of the node devices is
Storage means for storing identification information uniquely assigned to the relay device necessary for connecting itself or the network to the network, and a common function in the network system;
First port number generation means for generating a first port number using the common function and the identification information assigned to itself or the relay device;
Standby port setting means for setting the generated first port number as a standby port number;
Identification information acquisition means for acquiring identification information uniquely assigned to another node device or a relay device necessary for the other node device to connect to the network when connected to the other node device; ,
Second port number generation means for generating a second port number using the common function and the acquired identification information;
Connection establishment means for establishing a connection with the other node device based on the generated second port number;
A network system comprising:
請求項1に記載のネットワークシステムにおいて、
前記第1ポート番号生成手段及び前記第2ポート番号生成手段は、前記共通の関数を用いて生成された前記ポート番号がウェルノウンポート番号と重複する場合には、前記ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号を前記ポート番号とすることを特徴とするネットワークシステム。
The network system according to claim 1,
The first port number generation unit and the second port number generation unit may prevent the well-known port number from overlapping when the port number generated using the common function overlaps with a well-known port number. In addition, the network system is characterized in that the port number is a number obtained by performing a predetermined operation on the generated port number.
請求項1に記載のネットワークシステムにおいて、
前記夫々のノード装置における共通の関数は、定期的に更新され、前記夫々のノード装置における待ち受けポート番号が定期的に設定し直されることを特徴とするネットワークシステム。
The network system according to claim 1,
A network system, wherein a common function in each of the node devices is periodically updated, and a standby port number in each of the node devices is periodically reset.
請求項1に記載のネットワークシステムにおいて、
前記夫々のノード装置の記憶手段には、複数の前記共通の関数が予め記憶されており、
前記夫々のノード装置における前記第1ポート番号生成手段は、一定時間毎に前記記憶手段に記憶された複数の共通の関数のうちから一の共通の関数を取得し、これを用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート番号として設定し直し、
前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とするネットワークシステム。
The network system according to claim 1,
The storage means of each of the node devices stores a plurality of the common functions in advance,
The first port number generation means in each of the node devices acquires one common function from a plurality of common functions stored in the storage means at regular time intervals, and uses this to use the first port function. A port number is generated, and the standby port setting means resets the generated first port number as the standby port number,
The second port number generation means in each of the node devices changes the common function to be used in synchronization with the resetting of the standby port number by the standby port setting means. .
請求項1に記載のネットワークシステムにおいて、
前記共通の関数は、前記ネットワークを介して前記夫々のノード装置に対して定期的に配信されて前記記憶手段に記憶され、
前記夫々のノード装置における前記第1ポート番号生成手段は、前記配信された共通の関数を用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート番号として設定し直し、
前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とするネットワークシステム。
The network system according to claim 1,
The common function is periodically distributed to the respective node devices via the network and stored in the storage means.
The first port number generation means in each of the node devices generates the first port number using the distributed common function, and the standby port setting means uses the generated first port number. Re-set as the standby port number,
The second port number generation means in each of the node devices changes the common function to be used in synchronization with the resetting of the standby port number by the standby port setting means. .
請求項1乃至5の何れか一項に記載のネットワークシステムにおいて、
前記共通の関数は、ハッシュ関数であることを特徴とするネットワークシステム。
In the network system according to any one of claims 1 to 5,
The network system, wherein the common function is a hash function.
請求項1乃至6の何れか一項に記載のネットワークシステムにおいて、
前記識別情報は、IPアドレス、又はノードIDであることを特徴とするネットワークシステム。
The network system according to any one of claims 1 to 6,
The network system, wherein the identification information is an IP address or a node ID.
ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおけるノード装置であって、
自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、
前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する第1ポート番号生成手段と、
前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、
他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、
前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する第2ポート番号生成手段と、
前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、
を備えることを特徴とするノード装置。
A node device in a network system including a plurality of node devices that can be connected to each other via a network,
Storage means for storing identification information uniquely assigned to the relay device necessary for connecting itself or the network to the network, and a common function in the network system;
First port number generation means for generating a first port number using the common function and the identification information assigned to itself or the relay device;
Standby port setting means for setting the generated first port number as a standby port number;
Identification information acquisition means for acquiring identification information uniquely assigned to another node device or a relay device necessary for the other node device to connect to the network when connected to the other node device; ,
Second port number generation means for generating a second port number using the common function and the acquired identification information;
Connection establishment means for establishing a connection with the other node device based on the generated second port number;
A node device comprising:
コンピュータを、請求項に記載のノード装置として機能させることを特徴とするプログラム。 A program for causing a computer to function as the node device according to claim 8 . ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおける接続確立方法であって、
夫々の前記ノード装置が、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する工程と、
前記夫々のノード装置が、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する工程と、
前記夫々のノード装置が、前記生成された第1ポート番号を待ち受けポート番号として設定する工程と、
他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する工程と、
前記1のノード装置が、前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する工程と、
前記1のノード装置が、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する工程と、
を備えることを特徴とする接続確立方法。
A connection establishment method in a network system including a plurality of node devices that can be connected to each other via a network,
Each of the node devices stores identification information uniquely assigned to itself or a relay device necessary for itself to connect to the network, and a function common to the network system;
Each of the node devices generates a first port number using the common function and the identification information assigned to itself or the relay device;
Each of the node devices sets the generated first port number as a standby port number;
Obtaining the identification information uniquely assigned to the other node device or the relay device necessary for the other node device to connect to the network when connected to the other node device;
The first node device generates a second port number using the common function and the acquired identification information;
The one node device establishing a connection with the other node device based on the generated second port number;
A connection establishment method comprising:
JP2005136890A 2005-05-10 2005-05-10 Network system, connection establishment method, node device, etc. Expired - Fee Related JP4631531B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005136890A JP4631531B2 (en) 2005-05-10 2005-05-10 Network system, connection establishment method, node device, etc.
PCT/JP2006/307714 WO2006120831A1 (en) 2005-05-10 2006-04-12 Network system, connection set-up method, node device, and so forth

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005136890A JP4631531B2 (en) 2005-05-10 2005-05-10 Network system, connection establishment method, node device, etc.

Publications (2)

Publication Number Publication Date
JP2006319384A JP2006319384A (en) 2006-11-24
JP4631531B2 true JP4631531B2 (en) 2011-02-16

Family

ID=37396346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005136890A Expired - Fee Related JP4631531B2 (en) 2005-05-10 2005-05-10 Network system, connection establishment method, node device, etc.

Country Status (2)

Country Link
JP (1) JP4631531B2 (en)
WO (1) WO2006120831A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9725422B2 (en) 2014-03-04 2017-08-08 Mitsui Chemicals, Inc. Isocyanurate composition

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8693392B2 (en) 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
JP5163910B2 (en) * 2007-06-15 2013-03-13 日本電気株式会社 Address translation device and address translation method
JP4770804B2 (en) * 2007-07-03 2011-09-14 ブラザー工業株式会社 Overlay network type communication system, overlay network type node device and program
JP5684671B2 (en) * 2011-08-05 2015-03-18 日本電信電話株式会社 Condition retrieval data storage method, condition retrieval database cluster system, dispatcher, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265122A (en) * 2003-02-28 2004-09-24 Nec Engineering Ltd Security ensuring method and strategy in private communication
JP2005182250A (en) * 2003-12-17 2005-07-07 Hitachi Ulsi Systems Co Ltd Computer server system
JP2006094122A (en) * 2004-09-24 2006-04-06 Matsushita Electric Ind Co Ltd Private branch exchange, ip extension terminal, and private branch exchange system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265122A (en) * 2003-02-28 2004-09-24 Nec Engineering Ltd Security ensuring method and strategy in private communication
JP2005182250A (en) * 2003-12-17 2005-07-07 Hitachi Ulsi Systems Co Ltd Computer server system
JP2006094122A (en) * 2004-09-24 2006-04-06 Matsushita Electric Ind Co Ltd Private branch exchange, ip extension terminal, and private branch exchange system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9725422B2 (en) 2014-03-04 2017-08-08 Mitsui Chemicals, Inc. Isocyanurate composition

Also Published As

Publication number Publication date
JP2006319384A (en) 2006-11-24
WO2006120831A1 (en) 2006-11-16

Similar Documents

Publication Publication Date Title
JP4747733B2 (en) Node device, shared information update processing program, shared information update method, and information sharing system
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
US20090116406A1 (en) Node device, memory medium saving computer program, information delivery system, and network participation method
US20100023593A1 (en) Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method
JP2007280303A (en) Information communication system, content catalogue information distribution method and node device
JP2007280304A (en) Information communication system, content catalogue information retrieval method and node device
JP2006191489A (en) Node device, network participation processing program, and network participation processing method or the like
JP4631531B2 (en) Network system, connection establishment method, node device, etc.
US20090041035A1 (en) Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program
WO2006103800A1 (en) Information processing device and storage device, information processing method and storing method, and information processing program and program for storage device
US8099506B2 (en) Communication system, node device, node process program and a message transmitting and receiving method
JP2007058597A (en) Information distribution system, information distribution method, node device included in the information distribution system, and information processing program
JP2007288286A (en) Node device, storage control program, and information storage method
US20110246674A1 (en) Information communication system, first information processing device, method for processing information, and computer readable storage medium
JP2006101277A (en) Information communications system, node apparatus, and overlay network forming method or the like
JP4877107B2 (en) Terminal device and information processing program in information distribution system, and information processing method of terminal device
US20100306303A1 (en) Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
JP5212292B2 (en) Information communication system, node device, node device confirmation method and program
US20080240138A1 (en) Tree type broadcast system, connection target determination method, connection management device, connection management process program, and the like
US8312068B2 (en) Node device, information communication system, method for managing content data, and computer readable medium
JP4548271B2 (en) Information communication system, information communication method, node device, and computer program
JP2009187101A (en) Content distribution storage system, evaluation value addition method, server device, node device and node processing program
JP2009232272A (en) Content distributive storage system, content playback method, node device, management apparatus, node-processing program, and management processing program
JP2011008657A (en) Content distribution system, node device, content distribution method, and node program
JP6369264B2 (en) Communication system and information processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080430

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101101

R150 Certificate of patent or registration of utility model

Ref document number: 4631531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees