JP4631531B2 - Network system, connection establishment method, node device, etc. - Google Patents
Network system, connection establishment method, node device, etc. Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session 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アドレス及びポート番号を用いて、当該サーバに接続することが開示されている。
ところで、近年、クライアント(ノード装置)間でネットワークを介して相互接続し、情報の授受を行うピアツーピア(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アドレスを取得することで当該コンテンツデータを取得することが可能になっている。
しかしながら、従来の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
この発明によれば、各ノード装置の待ち受けポート番号は、各ノード装置に一意に割り当てられた識別情報が、共通の関数により生成され設定されるので、セキュリティの向上を図ることができるとともに、各ノード装置は、ポート番号紹介サーバに照会することなく、接続相手のノード装置の待ち受けポート番号を上記共通の関数を用いて効率良く取得することができる。 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に記載にプログラムは、コンピュータを、請求項8に記載のノード装置として機能させることを特徴とする。 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
本発明によれば、各ノード装置の待ち受けポート番号は、各ノード装置に一意に割り当てられた識別情報が、共通の関数により生成され設定されるので、セキュリティの向上を図ることができるとともに、各ノード装置は、ポート番号紹介サーバに照会することなく、接続相手のノード装置の待ち受けポート番号を上記共通の関数を用いて効率良く取得することができる。 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
コンテンツ配信システム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
そして、このコンテンツ配信システムSにおいては、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
In the content distribution system S, an
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード1を、オーバーレイネットワーク9に参加しているノード1という。オーバーレイネットワーク9への参加は、未だ参加していないノード1が、既に参加している任意のノード1に対して参加要求を送ることによって行われる。
In the present embodiment, it is assumed that the
また、オーバーレイネットワーク9に参加している各ノード1は、ノードIDを有しており、当該ノードIDは、例えば、IPアドレスあるいは製造番号を共通のハッシュ関数(例えば、SHA−1等のハッシュ関数(以下、「ノードID用ハッシュ関数」という)によりハッシュ化した値(例えば、bit長は160bit)であり、一つのID空間に偏りなく分散して配置されることになる。このようにノードID用ハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
Each
また、オーバーレイネットワーク9に参加している各ノード1は、夫々、DHTを保持している。このDHTには、他のノード1への経路情報、すなわち、ノードID空間内で適度に離れた他のノード1のノードIDとそのIPアドレスが、複数登録されている。このようなDHTは、ノード1がオーバーレイネットワーク9に参加する際に与えられることになる。また、コンテンツ配信システムSにおいては、ノード1がオーバーレイネットワーク9への参加若しくは脱退を行うため、定期的に(例えば数十分から数時間間隔で)DHTの更新が必要かどうかが確認されると共に、その更新情報が他のノード1のDHTに登録されている経路を介して伝達されるようになっている。これにより、DHTを最新の状態に保つことが可能となる。なお、DHTの生成方法については公知であるので詳しい説明を省略する。
Further, each
また、オーバーレイネットワーク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
更に、このように分散保存されている各コンテンツデータ毎の所在を示す所在情報(例えば、コンテンツデータが保存されているノード(以下、「コンテンツホルダ」という)の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
そして、あるコンテンツデータを取得(ダウンロード)したいユーザが使用するノード(以下、これを「ユーザノード」という)は、ルートノードからコンテンツデータの所在を示す所在情報を取得して、これに基づきコンテンツホルダに接続し、当該コンテンツデータを取得することになる。 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
なお、ユーザノード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
このようなコンテンツ配信システム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
なお、ポート番号用ハッシュ関数にかける対象としては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
また、プライベート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
ところで、ポート番号には、公知の如く、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
[2.ノードの構成等]
次に、図3等を参照して、コンテンツ配信システムSにおけるノード1の構成及び機能について説明する。
[2. Node configuration]
Next, the configuration and function of the
図3は、ノード1の概要構成例を示す図である。
FIG. 3 is a diagram illustrating a schematic configuration example of the
各ノード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
そして、制御部11は、CPUが記憶部12等に記憶された各種プログラムを実行することにより、ノード1全体を統括制御するようになっており、上述したユーザノード1a、ルートノード1b、コンテンツホルダ1c、及び中継ノード1nの何れの動作を行うことが可能になっている。そして、制御部11は、本発明の第1ポート番号生成手段、待ち受けポート設定手段、識別情報取得手段、第2ポート番号生成手段、及び接続確立手段として機能し、後述する各種処理を行うようになっている。
The
なお、上記プログラムは、例えば、ネットワーク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
図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
ステップS2では、制御部11は、自己のノード1に割り当てられているIPアドレスをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS2)。例えば、ポート番号用ハッシュ関数により求められたハッシュ値が“A3178692h”(末尾のhは16進数を示す)であったと仮定すると、下位2バイト“8692h”が抽出される。
In step S2, the
次いで、制御部11は、ポート番号として抽出された値が“400h”(16進数:10進数で1024)未満であるか否かを判別し(ステップS3)、“400h”未満でない場合には(ステップS3:N)、当該ポート番号として抽出された値を待ち受けポート番号として設定(開放)し(ステップS5)、ステップS13に移行する。一方、抽出された値が“400h”未満である場合(ステップS3:Y)、つまり、抽出された値がウェルノウンポート番号と重複する場合には、制御部11は、例えば、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS4)得た値(つまり、ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号)を待ち受けポート番号として設定(開放)し(ステップS5)、ステップS13に移行する。
Next, the
一方、ステップS6では、制御部11は、自己のノード1が接続するNAT機能搭載ルータのIPアドレスを取得する。そして、制御部11は、当該取得したIPアドレスをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS7)。
On the other hand, in step S6, the
次いで、制御部11は、ステップS3と同様、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS8)、“400h”未満でない場合には(ステップS8:N)、ステップS10に移行し、“400h”未満である場合には(ステップS8:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS9)、ステップS10に移行する。
Next, as in step S3, the
ステップS10では、制御部11は、ステップS7若しくはステップS9で得たポート番号が、他のノード1の待ち受けポート番号として既に使用中であるか否かをNAT機能搭載ルータに問い合わせることによって判別する。つまり、NAT機能搭載ルータの内側にノード1が複数存在し、既に他のノード1によりNAT機能搭載ルータのIPアドレスから得られたポート番号が待ち受けポート番号として設定されているか否かが判別される。
In step S10, the
そして、ステップ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
一方、ステップ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
そして、ステップS13では、制御部11は、既にオーバーレイネットワーク9に参加している任意のノード1のIPアドレスを取得する(例えば、ノード1の出荷時に記憶部12に記憶されていてもよいし、ネットワーク3に接続された所定のサーバから取得しても良い)。
In step S13, the
次いで、制御部11は、当該取得したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS14)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS15)、“400h”未満でない場合には(ステップS15:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該任意のノード1との間の接続を確立して(ステップS16)、当該任意のノード1に対してオーバーレイネットワーク9への参加要求を示す参加要求情報(送信元IPアドレスとして自己のノード1のIPアドレス(NAT機能搭載ルータの内側のノード1の場合、プライベートIPアドレス(NTA機能搭載ルータでグローバルIPアドレスに変換されて出て行く))及びペイロード中にノードIDが含まれる)を送信し(ステップS17)、当該処理を終了する。
Next, the
一方、ポート番号として抽出された値が“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
これにより、自己のノード1は、オーバーレイネットワーク9への参加をし、DHTを取得することになり、また、当該ノード1のIPアドレス及びノードIDが他の何れかの1又は複数のノード1におけるDHTに登録されることになる。このように、オーバーレイネットワーク9に参加する全てのノード1は、ポート番号用ハッシュ関数及びIPアドレスにより生成した値を待ち受けポート番号として開放することになる。
As a result, the
なお、上記処理においては、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
次に、図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
このような表示状態において、ユーザが入力部21を操作して、所望のコンテンツ名を選択すると、制御部11は、これに応じ(ステップS22:Y)、選択されたコンテンツ名を、ノードID用ハッシュ関数によりハッシュ化してコンテンツIDを求める(ステップS23)。
In such a display state, when the user operates the
次いで、制御部11は、DHTを参照し、例えば当該コンテンツIDの最上位桁が一致するノードIDに対応する他のノード1(クエリを送信すべき他のノード1)のIPアドレスを抽出する(ステップS24)。
Next, the
次いで、制御部11は、抽出したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS25)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS26)、“400h”未満でない場合には(ステップS26:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立して(ステップS27)、上記ステップS23で求めたコンテンツIDが付加されたクエリを当該他のノード1に送信し(ステップS28)、当該処理を終了する。
Next, the
一方、ポート番号として抽出された値が“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
次に、図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
自己のノード1がルートノード1bでない場合には(ステップS31:N)、制御部11は、DHTを参照し、例えば当該コンテンツIDの上位数桁目(例えば、上位2桁目)が一致するノードIDに対応する他のノード1(クエリを転送すべき他のノード1)のIPアドレスを抽出する(ステップS32)。
When the
次いで、制御部11は、抽出したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS33)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS34)、“400h”未満でない場合には(ステップS34:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立して(ステップS35)、上記受信されたクエリを当該他のノード1に送信(転送)し(ステップS36)、当該処理を終了する。
Next, the
一方、ポート番号として抽出された値が“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
一方、ステップS31において、自己のノード1がルートノード1bである場合には(ステップS31:Y)、制御部11は、クエリにより要求されたコンテンツデータの所在情報を記憶部12から取得する(ステップS38)。
On the other hand, if the
次いで、制御部11は、上記クエリからユーザノード1aのIPアドレスを取り出し(ステップS39)、当該IPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS40)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS41)、“400h”未満でない場合には(ステップS41:N)、上記取り出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、ユーザノード1aとの間の接続を確立して(ステップS42)、上記ステップS38で取得したコンテンツデータの所在情報を当該ユーザノード1aに送信し(ステップS43)、当該処理を終了する。
Next, the
一方、ポート番号として抽出された値が“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
次いで、制御部11は、取得したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS52)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS53)、“400h”未満でない場合には(ステップS53:N)、上記取得したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該コンテンツホルダ1cとの間の接続を確立して(ステップS54)、コンテンツデータの要求情報を当該コンテンツホルダ1cに送信し(ステップS55)、これに応じてコンテンツホルダ1cにより送信されてきたコンテンツデータを受信し(ステップS56)、当該処理を終了する。
Next, the
一方、ポート番号として抽出された値が“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
図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
次いで、制御部11は、当該ノードIDをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値(例えば、B356 8976h(16進数))の下位16ビット(16進数で4桁)をポート番号(例えば、8976h)として抽出する(ステップS102)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”(16進数)未満であるか否かを判別し(ステップS103)、“400h”未満でない場合には(ステップS103:N)、ステップS105に移行し、“400h”未満である場合には(ステップS103:Y)、当該ポート番号として抽出された値に“4E20h”(16進数)を加算して(ステップS104)、ステップS105に移行する。
Next, the
ステップS105では、制御部11は、自己のノード1がNAT機能搭載ルータの内側に存在するか否かを判別する。そして、自己がNAT機能搭載ルータの内側に存在しない場合(ステップS105:N)、ステップS106に移行し、自己がNAT機能搭載ルータの内側に存在する場合(ステップS105:Y)、ステップS107に移行する。
In step S105, the
ステップS106では、制御部11は、ステップS102若しくはステップS104においてポート番号として得られた値を待ち受けポート番号として設定(開放)し(ステップS106)、ステップS110に移行する。
In step S106, the
一方、ステップ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
そして、ステップ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
一方、ステップ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
ステップS110では、制御部11は、既にオーバーレイネットワーク9に参加している任意のノード1のIPアドレスとノードIDを取得する。
In step S110, the
次いで、制御部11は、当該取得したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS111)。
Next, the
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS112)、“400h”未満でない場合には(ステップS112:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該任意のノード1との間の接続を確立して(ステップS113)、当該任意のノード1に対してオーバーレイネットワーク9への参加要求を示す参加要求情報(送信元アドレスとして自己のノード1のIPアドレス(NAT機能搭載ルータの内側のノード1の場合、プライベートIPアドレス)及びペイロード中にノードIDが含まれる)を送信し(ステップS114)、当該処理を終了する。
Next, the
一方、ポート番号として抽出された値が“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
これにより、自己のノード1は、オーバーレイネットワーク9への参加をし、DHTを取得することになり、また、当該ノード1のIPアドレス及びノードIDが他の何れかの1又は複数のノード1におけるDHTに登録されることになる。このように、オーバーレイネットワーク9に参加する全てのノード1は、ポート番号用ハッシュ関数及びノードIDにより生成した値を待ち受けポート番号として開放することになる。
As a result, the
次に、図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
次いで、制御部11は、DHTを参照し、例えば当該コンテンツIDの最上位桁が一致するノードIDとこれに対応する他のノード1のIPアドレスを抽出する(ステップS124)。
Next, the
次いで、制御部11は、抽出したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS125)。
Next, the
なお、ステップ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
自己のノード1がルートノード1bでない場合には(ステップS131:N)、制御部11は、DHTを参照し、例えば当該コンテンツIDの上位数桁目(例えば、上位2桁目)が一致するノードIDとこれに対応するIPアドレスを抽出する(ステップS132)。
When the
次いで、制御部11は、抽出したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS133)。
Next, the
なお、ステップ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
次いで、制御部11は、上記クエリからユーザノード1aのノードID及びIPアドレスを取り出し(ステップS139)、当該ノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS140)。
Next, the
なお、ステップ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
次いで、制御部11は、受信したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS152)。
Next, the
なお、ステップ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
なお、上記実施形態において、各ノード1が共通に有するポート番号用ハッシュ関数が、定期的(例えば、DHTの更新タイミングで)に更新(変更)されると共に、当該更新されたポート番号用ハッシュ関数を基にポート番号が生成され待ち受けポート番号も定期的に変更される(設定し直される)ように構成しても良い。このように構成すれば、より一層、セキュリティの向上を図ることができる。
In the above-described embodiment, the port number hash function shared by the
例えば、夫々のノード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
また、ポート番号用ハッシュ関数は、ネットワーク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
なお、このようなポート番号用ハッシュ関数の定期的な更新(変更)は、オーバーレイネットワーク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
また、上記実施形態においては、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
1 ノード
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
1 node 8
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ポート番号生成手段及び前記第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.
前記夫々のノード装置における共通の関数は、定期的に更新され、前記夫々のノード装置における待ち受けポート番号が定期的に設定し直されることを特徴とするネットワークシステム。 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ポート番号を前記待ち受けポート番号として設定し直し、
前記夫々のノード装置における前記第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ポート番号を前記待ち受けポート番号として設定し直し、
前記夫々のノード装置における前記第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. .
前記共通の関数は、ハッシュ関数であることを特徴とするネットワークシステム。 In the network system according to any one of claims 1 to 5,
The network system, wherein the common function is a hash function.
前記識別情報は、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:
夫々の前記ノード装置が、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する工程と、
前記夫々のノード装置が、前記共通の関数と、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第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:
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)
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)
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)
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 |
-
2005
- 2005-05-10 JP JP2005136890A patent/JP4631531B2/en not_active Expired - Fee Related
-
2006
- 2006-04-12 WO PCT/JP2006/307714 patent/WO2006120831A1/en active Application Filing
Patent Citations (3)
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)
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 |