JP5078034B2 - Communication device, P2P network construction method, program, and recording medium - Google Patents

Communication device, P2P network construction method, program, and recording medium Download PDF

Info

Publication number
JP5078034B2
JP5078034B2 JP2008311522A JP2008311522A JP5078034B2 JP 5078034 B2 JP5078034 B2 JP 5078034B2 JP 2008311522 A JP2008311522 A JP 2008311522A JP 2008311522 A JP2008311522 A JP 2008311522A JP 5078034 B2 JP5078034 B2 JP 5078034B2
Authority
JP
Japan
Prior art keywords
node
virtual network
gate
nodes
subnetwork
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
JP2008311522A
Other languages
Japanese (ja)
Other versions
JP2009213122A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008311522A priority Critical patent/JP5078034B2/en
Publication of JP2009213122A publication Critical patent/JP2009213122A/en
Application granted granted Critical
Publication of JP5078034B2 publication Critical patent/JP5078034B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、物理的なIPネットワーク上にデータ配置に依存しない非構造なトポロジで論理的な仮想ネットワークを構成し、各ノードが隣接ノードへ転送することで、全てのノードへ検索クエリを配信するようなフラッディング検索を行う通信装置、P2Pネットワーク構築方法、プログラムおよび記録媒体に関する。   The present invention forms a logical virtual network with an unstructured topology that does not depend on data arrangement on a physical IP network, and each node forwards it to an adjacent node, thereby delivering a search query to all nodes. The present invention relates to a communication device that performs such flooding search, a P2P network construction method, a program, and a recording medium.

近年、サーバやクライアントといった区別が明確になっていない端末同士が対等に接続し、サービスを提供及び利用するP2P(Peer to Peer /Personal to Personal)ネットワークが注目されている。このP2Pネットワークモデルは、データや負荷が分散されることからスケーラビリティや対障害性に強いといわれている。そして、P2Pネットワークモデルを利用した様々なアプリケーションが開発されている。代表的なアプリケーションには、ファイルを多数の端末で公開・共有するグヌーテラソフトがある。   In recent years, a P2P (Peer to Peer / Personal to Personal) network in which terminals that are not clearly distinguished, such as a server and a client, connect equally and provide and use services has been attracting attention. This P2P network model is said to be highly scalable and fault-tolerant because data and load are distributed. Various applications using the P2P network model have been developed. A typical application is Gnutella software that publishes and shares files on many terminals.

このグヌーテラソフトは、物理的なIPネットワーク上に、データ配置に依存しない非構造なトポロジで仮想ネットワークを論理的に構成し、各ノードが隣接ノードへ検索クエリを転送し全てのノードへ検索クエリを配信することで、全てのノードが保有するファイルを検索するといったフラッディング検索を行う。そのため、グヌーテラソフトでは、検索に大量のメッセージがやり取りされ、それによるトラフィックの増加が問題となっている。またグヌーテラソフトは、IPネットワークの物理的経路を考慮しないで仮想ネットワークを構成する。そのため、仮想ネットワーク上の近隣ノードが、物理的には遠方に位置することが多く、これもトラフィック増加の要因となっている。   This Gnutella software logically configures a virtual network on a physical IP network with an unstructured topology that does not depend on data placement, and each node forwards a search query to an adjacent node and sends a search query to all nodes. By distributing, a flooding search such as searching for files held by all nodes is performed. Therefore, in Gnutella software, a large amount of messages are exchanged for search, and the increase in traffic due to that is a problem. Gnutella software configures a virtual network without considering the physical path of the IP network. For this reason, neighboring nodes on the virtual network are often physically located far away, which also causes an increase in traffic.

そこで、物理ネットワークの通信トラフィックを低減し、効率の良い仮想ネットワークのトポロジを決定する方法がいくつか提案されている。特許文献1には、ピア間接続動作の応答時間を測定し、測定時間が相対的に短いものを物理的近傍ピアとして優先的に接続する技術が開示されている。しかし、この技術には、ピア間接続動作の応答時間がピアや通信回線の負荷状態により大きく変化するため、精度の良い判定ができないといった問題がある。   Therefore, several methods for reducing the communication traffic of the physical network and determining an efficient virtual network topology have been proposed. Patent Document 1 discloses a technique for measuring a response time of a connection operation between peers and preferentially connecting a relatively short measurement time as a physical neighbor peer. However, this technique has a problem that the response time of the peer-to-peer connection operation varies greatly depending on the load state of the peer and the communication line, so that accurate determination cannot be made.

特許文献2には、物理ネットワーク上で多数の計算機間の距離を測定すると測定のための通信量が膨大になることを指摘し、分割仮想空間内で距離測定を行い、物理的に最適化したトポロジを持つ分割仮想空間を並べることで仮想空間全体の効率を上げる技術が開示されている。この技術は、距離測定を代表計算機に限定することで測定のための通信量を削減することを提案している。しかし、この方法で高い効果を得るためには、計算機の仮想空間座標を物理的に隣接する計算機が多い分割仮想空間にマッピングする必要があるが、特許文献2にその方法は開示も示唆もなされていない。さらに、計算機の距離を距離測定要求メッセージの送信から返信メッセージが届くまでの経過時間、つまりラウンド・トリップ・タイム、が特許文献1と同じであるという問題を持つ。また、特許文献2では、現在の空き帯域幅やホップ数を用いる方法も提示しているが、この方法は通信量と効果の面で特に優れている方法ではない。
特開2005−252596号公報 特開2006−33384号公報
Patent Document 2 points out that measuring the distance between a large number of computers on a physical network increases the amount of communication for the measurement, and the distance is measured in a divided virtual space and is physically optimized. A technique for increasing the efficiency of the entire virtual space by arranging divided virtual spaces having a topology is disclosed. This technology proposes to reduce the amount of communication for measurement by limiting distance measurement to a representative computer. However, in order to obtain a high effect by this method, it is necessary to map the virtual space coordinates of the computer to a divided virtual space having many physically adjacent computers. However, this method is disclosed and suggested in Patent Document 2. Not. Furthermore, there is a problem that the elapsed time from the transmission of the distance measurement request message to the arrival of the reply message, that is, the round trip time, is the same as that of Patent Document 1. Patent Document 2 also presents a method using the current available bandwidth and the number of hops, but this method is not particularly excellent in terms of communication volume and effect.
JP 2005-252596 A JP 2006-33384 A

従来のP2Pネットワーク構築法にはさらに以下のような問題点がある。仮想ネットワーク構成を物理ネットワーク構成に近い形で構成すると、無駄なメッセージの転送が抑制され通信トラフィックを低減することができる。しかし従来の方法は、ノード間の物理距離を測定するための通信量が多い割には、高精度な測定が困難で、しかも運用が複雑なことから有効な効果を上げられないといった問題がある。   The conventional P2P network construction method further has the following problems. When the virtual network configuration is configured in a form close to the physical network configuration, useless message transfer is suppressed and communication traffic can be reduced. However, the conventional method has a problem that, although the amount of communication for measuring the physical distance between the nodes is large, high-precision measurement is difficult, and the operation is complicated, so that the effective effect cannot be achieved. .

仮想ネットワークに参加するとき最初に接続するノードの決定は、既知のノードアドレスを手動で入力するかサーバに問い合わせる方法が一般的である。しかし、サーバに問い合わせる方法をとったとしてもサーバのアドレスを入力する作業が必要である。したがって、仮想ネットワークに参加するには、ユーザが常に仮想ネットワークの存在を意識しなければならなかった。物理ネットワークのIPブロードキャストは、同一サブネットワーク内の装置を探索する手段としてよく利用されるが、サブネットワーク内のノードに優先的にリンクして仮想ネットワークを構成する本件に利用することで探索範囲の限定と探索の自動化を同時に行うことができる。   Generally, when joining a virtual network, a node to be connected first is determined by manually inputting a known node address or inquiring a server. However, even if the server is inquired, it is necessary to enter the server address. Therefore, in order to participate in the virtual network, the user must always be aware of the existence of the virtual network. Physical network IP broadcasts are often used as a means to search for devices in the same subnetwork, but can be used in the present case where a virtual network is configured by preferentially linking to nodes in the subnetwork. Limitation and search automation can be performed simultaneously.

ゲートノードが少ないと、通信のボトルネックとなりパフォーマンスが低下する。また、ゲートノードが多いと、ゲートノード間の通信で通信負荷が増加する。全体の通信量はノード数で大きく変化するため、効率のよい仮想ネットワークを構成するためにはゲートノード数を動的に変化させるとよい。   When there are few gate nodes, it becomes a bottleneck for communication and performance is degraded. Further, when there are many gate nodes, the communication load increases due to communication between the gate nodes. Since the total communication amount greatly varies depending on the number of nodes, it is preferable to dynamically change the number of gate nodes in order to configure an efficient virtual network.

IPネットワークは複数のネットワークをルータで接続しており、仮想ネットワーク構成を物理ネットワーク構成に近づけるということは複数の仮想ネットワークノードグループを少数の回線で接続することになる。そしてP2Pネットワークなどの仮想ネットワークは端末で構成されることが多く、ノードの参加・離脱が激しい。そのため、複数の仮想ネットワークノードグループを接続するゲートノードが離脱すると、仮想ネットワークの分断が簡単に起きるといった問題がある。   In an IP network, a plurality of networks are connected by routers, and bringing a virtual network configuration closer to a physical network configuration connects a plurality of virtual network node groups with a small number of lines. In many cases, a virtual network such as a P2P network is composed of terminals, and the participation and withdrawal of nodes are intense. Therefore, there is a problem that when a gate node that connects a plurality of virtual network node groups leaves, the virtual network is easily divided.

ノードの参加・離脱に対して仮想ネットワークを安定的に保つためにはゲートノードが多いほうが良い。しかし比例して外部リンク数も多くなると通信パフォーマンスが低下する問題がある。   In order to keep a virtual network stable with respect to joining / leaving nodes, it is better to have more gate nodes. However, there is a problem that communication performance decreases when the number of external links increases proportionally.

以上の問題点を鑑みて、本発明は、ノード探索に物理ネットワークを考慮した探索を行い、物理的に距離が近いサブネットワーク内のノードへ優先的にリンクを行うことで、物理ネットワークの通信トラフィックを低減する効率の良い仮想ネットワークを簡単に構成し安定的に運用することのできる通信装置、P2Pネットワーク構築方法、プログラムおよび記録媒体の提供を目的とする。   In view of the above problems, the present invention performs a search considering a physical network in a node search and preferentially links to a node in a subnetwork that is physically close to the physical network, thereby enabling communication traffic on the physical network. It is an object of the present invention to provide a communication device, a P2P network construction method, a program, and a recording medium that can easily construct and efficiently operate an efficient virtual network that reduces the amount of noise.

本発明による通信装置は、物理的なIPネットワーク上に論理的な仮想ネットワークを構成する通信装置であって、自ノードが属するIPサブネットワーク内にある内部仮想ネットワークノードを探索する第1の探索手段と、少なくとも1つの内部仮想ネットワークノードに適宜リンクして仮想ネットワークを構成する第1の構成手段と、IPサブネットワーク外のノードとリンクする権利の有る仮想ネットワークゲートノードを探索する第2の探索手段と、少なくとも1つの内部仮想ネットワークゲートノードに適宜リンクして仮想ネットワークを構成する第2の構成手段と、自ノードが属するIPサブネットワーク内にある内部仮想ネットワークゲートノードを検出してカウントし、IPサブネットワーク内に実在するゲートノード数を検出する実在ゲートノード数検知手段と、実在ゲートノード数検知手段により検出された実在ゲートノード数に基づいて、自ノードが属するIPサブネットワーク外にある外部仮想ネットワークゲートノードにリンクするか否かを決定する決定手段と、を有し、実在ゲートノード数検知手段により検出された実在ゲートノード数が、目標ゲートノード数未満の場合に外部仮想ネットワークゲートノードにリンクし、目標ゲートノード数以上の場合に外部仮想ネットワークゲートノードにリンクしないで仮想ネットワークに参加することを特徴とする。   The communication device according to the present invention is a communication device that forms a logical virtual network on a physical IP network, and is a first search means for searching for an internal virtual network node in an IP subnetwork to which the own node belongs. And a first search means for appropriately linking to at least one internal virtual network node to form a virtual network, and a second search means for searching for a virtual network gate node having a right to link to a node outside the IP subnetwork. Second configuration means for appropriately linking to at least one internal virtual network gate node to configure the virtual network, and detecting and counting the internal virtual network gate node in the IP subnetwork to which the own node belongs, The number of actual gate nodes in the subnetwork Whether or not to link to the external virtual network gate node outside the IP subnetwork to which the own node belongs based on the actual gate node number detecting means to be output and the actual gate node number detected by the real gate node number detecting means A determination means for determining, when the number of real gate nodes detected by the real gate node number detection means is less than the target gate node number, and is linked to an external virtual network gate node, and is equal to or greater than the target gate node number It is characterized in that it participates in a virtual network without linking to an external virtual network gate node.

また、本発明による通信装置は、内部仮想ネットワークノードをIPネットワークのブロードキャストで探索し発見する第3の探索手段と、仮想ネットワークゲートノードを仮想ネットワークのメッセージ配信で検索し発見する第4の探索手段と、を有することを特徴とすることができる。   Further, the communication device according to the present invention includes a third search means for searching and discovering an internal virtual network node by broadcast of an IP network, and a fourth search means for searching and discovering a virtual network gate node by message distribution of the virtual network. It can be characterized by having.

また、本発明による通信装置は、内部仮想ネットワークノード数に対する所定の割合を目標ゲートノード数とする目標ゲートノード数決定手段を有することを特徴とすることができる。   The communication apparatus according to the present invention may further include a target gate node number determination unit that sets a predetermined ratio to the number of internal virtual network nodes as a target gate node number.

また、本発明による通信装置は、不定期間隔で自ノードが属するIPサブネットワーク内のゲートノードを探索する第5の探索手段と、他ノードがゲートノードの探索を行った際、自ノードがゲートノードの探索を行うまでの時間を更新する更新手段と、を有し、実在ゲートノード数が目標ゲートノード数未満なら外部仮想ネットワークゲートノードにリンクしゲートノードとなることでIPサブネットワーク内のゲートノード数を維持するような仮想ネットワークを構成することを特徴とすることができる。   Further, the communication device according to the present invention has a fifth search means for searching for a gate node in an IP subnetwork to which the node belongs at irregular intervals, and when the other node searches for the gate node, Updating means for updating the time until the node search, and if the number of existing gate nodes is less than the target number of gate nodes, the gates in the IP sub-network are linked to the external virtual network gate nodes and become gate nodes. A virtual network that maintains the number of nodes can be configured.

また、本発明による通信装置は、自ノードが属するIPサブネットワーク内の内部仮想ネットワークゲートノード数をIPサブネットワーク内の内部仮想ネットワークゲートノードに通知する通知手段と、内部仮想ネットワークゲートノード数に応じて外部仮想ネットワークゲートノードへの最大リンク数を調節する調整手段と、を有し、内部仮想ネットワークゲートノードが増加した場合にも外部仮想ネットワークとのリンク数が比例して増加しない仮想ネットワークを構成することを特徴とすることができる。   The communication apparatus according to the present invention also provides a notification means for notifying the internal virtual network gate node in the IP subnetwork of the number of internal virtual network gate nodes in the IP subnetwork to which the node belongs, and the number of internal virtual network gate nodes And adjusting means for adjusting the maximum number of links to the external virtual network gate node to form a virtual network in which the number of links with the external virtual network does not increase proportionally even when the number of internal virtual network gate nodes increases It can be characterized by.

また、本発明によるP2Pネットワーク構築方法は、自ノードが属するIPサブネットワーク内にある内部仮想ネットワークノードを探索する第1の探索工程と、少なくとも1つの内部仮想ネットワークノードに適宜リンクして仮想ネットワークを構成する第1の構成工程と、IPサブネットワーク外のノードとリンクする権利の有る仮想ネットワークゲートノードを探索する第2の探索工程と、少なくとも1つの内部仮想ネットワークゲートノードに適宜リンクして仮想ネットワークを構成する第2の構成工程と、自ノードが属するIPサブネットワーク内にある内部仮想ネットワークゲートノードを検出してカウントし、IPサブネットワーク内に実在するゲートノード数を検出する実在ゲートノード数検知工程と、実在ゲートノード数に基づいて、自ノードが属するIPサブネットワーク外にある外部仮想ネットワークゲートノードにリンクするか否かを決定する決定工程と、を有し、実在ゲートノード数が、目標ゲートノード数未満の場合に外部仮想ネットワークゲートノードにリンクし、目標ゲートノード数以上の場合に外部仮想ネットワークゲートノードにリンクしないで仮想ネットワークに参加することを特徴とする。   In addition, the P2P network construction method according to the present invention includes a first search step for searching for an internal virtual network node in an IP subnetwork to which the node belongs, and a virtual network by appropriately linking to at least one internal virtual network node. A first configuration step to configure, a second search step to search for a virtual network gate node having a right to link to a node outside the IP subnetwork, and a virtual network by appropriately linking to at least one internal virtual network gate node And detecting the number of internal virtual network gate nodes in the IP subnetwork to which the node belongs, and detecting the number of real gate nodes in the IP subnetwork. Process and number of real gate nodes A determination step for determining whether to link to an external virtual network gate node outside the IP subnetwork to which the node belongs, and when the number of existing gate nodes is less than the target number of gate nodes, It is characterized in that it is linked to a virtual network gate node and participates in a virtual network without linking to an external virtual network gate node when the number is equal to or more than the target gate node number.

また、本発明によるプログラムは、自ノードが属するIPサブネットワーク内にある内部仮想ネットワークノードを探索する処理と、少なくとも1つの内部仮想ネットワークノードに適宜リンクして仮想ネットワークを構成する処理と、IPサブネットワーク外のノードとリンクする権利の有る仮想ネットワークゲートノードを探索する処理と、少なくとも1つの内部仮想ネットワークゲートノードに適宜リンクして仮想ネットワークを構成する処理と、自ノードが属するIPサブネットワーク内にある内部仮想ネットワークゲートノードを検出してカウントし、IPサブネットワーク内に実在するゲートノード数を検出する処理と、実在ゲートノード数に基づいて、自ノードが属するIPサブネットワーク外にある外部仮想ネットワークゲートノードにリンクするか否かを決定する処理と、をコンピュータに実行させ、実在ゲートノード数が目標ゲートノード数未満の場合に外部仮想ネットワークゲートノードにリンクし、目標ゲートノード数以上の場合に外部仮想ネットワークゲートノードにリンクしないで仮想ネットワークに参加させることを特徴とする。   The program according to the present invention includes a process of searching for an internal virtual network node in an IP subnetwork to which the node belongs, a process of appropriately linking to at least one internal virtual network node to configure a virtual network, A process of searching for a virtual network gate node that has a right to link to a node outside the network, a process of appropriately linking to at least one internal virtual network gate node to form a virtual network, and an IP subnetwork to which the node belongs A process of detecting and counting a certain internal virtual network gate node and detecting the number of actual gate nodes in the IP subnetwork, and an external virtual network outside the IP subnetwork to which the own node belongs based on the number of actual gate nodes Get To determine whether or not to link to the host node, and when the number of existing gate nodes is less than the target number of gate nodes, link to the external virtual network gate node, and if the number is greater than the target number of gate nodes, the external It is characterized in that it participates in a virtual network without linking to a virtual network gate node.

また、本発明による記録媒体は、上記プログラムを記録したコンピュータ読み取り可能な記録媒体である。   A recording medium according to the present invention is a computer-readable recording medium in which the program is recorded.

本発明によれば、従来よりも通信負荷が小さい仮想ネットワークを構成できる。   ADVANTAGE OF THE INVENTION According to this invention, the virtual network with a smaller communication load than before can be comprised.

本発明の実施形態における仮想ネットワークは、従来と同様に、サーバやクライアントといった区別が明確となっていないサーバントと呼ばれる端末が、複数のサーバントにリンクしメッシュ状のトポロジを構成する。ここではサーバントに分散されたファイルを共有するアプリケーションを想定しており、ファイルの検索と入手は「検索要求メッセージの送信」、「検索結果の受信」、「ファイルを受信」の3ステップで行われる。検索要求元のサーバントは目的ファイルを検索するためのキーワードを含んだ検索要求メッセージを送信する。   In the virtual network according to the embodiment of the present invention, a terminal called a servant, such as a server and a client, whose distinction is not clear is linked to a plurality of servants to form a mesh topology, as in the conventional case. Here, it is assumed that an application shares a file distributed to servants. Searching and obtaining a file are performed in three steps: “send search request message”, “receive search result”, and “receive file”. . The search request source servant transmits a search request message including a keyword for searching the target file.

検索要求メッセージはバケツリレー方式で全てのサーバントにそれが届けられる。検索要求メッセージを受け取ったサーバントは、自分が公開しているファイルのファイル名やエイリアス名やメタファイル情報などを検索し、ヒットしたファイルのファイル名やアドレス情報を返す。この検索結果は、検索要求メッセージが辿った逆の順路で検索要求元に届く。そして、検索要求元のサーバントは各サーバントからの検索結果を受け取り、目的ファイルを選択し、そのファイルを保有するサーバントへ直接接続し、ファイルを受信する。   The search request message is delivered to all servants by the bucket relay method. The servant that receives the search request message searches the file name, alias name, metafile information, etc. of the file that it has made public, and returns the file name and address information of the hit file. This search result reaches the search request source in the reverse route followed by the search request message. Then, the search request source servant receives the search result from each servant, selects the target file, directly connects to the servant holding the file, and receives the file.

トポロジは検索のためのデータ配置を考慮しない非構造なものなので、ファイルはどのサーバントにも自由に配置できる。また、非構造なメッシュ状トポロジはあるサーバントが仮想ネットワークから離脱しても通信路が分断される可能性が低く、そして見つけたサーバントに適宜リンクすれば仮想ネットワークへ参加できるためサーバントの参加・離脱に強い。しかしその反面フラッディング通信によるトラフィックの増加が問題視される。   Since the topology is unstructured that does not consider the data arrangement for search, the file can be arranged freely in any servant. In addition, an unstructured mesh topology is unlikely to disrupt the communication path even if a servant leaves the virtual network, and can join the virtual network by linking to the found servant as appropriate so that it can join the virtual network. Strong. However, on the other hand, an increase in traffic due to flooding communication is regarded as a problem.

ネットワークの接続点に位置する装置を一般的にノードと呼ぶが、以後の説明ではサーバントに替えてノードという言葉を使用する。   A device located at a connection point of a network is generally called a node. In the following description, the term node is used instead of a servant.

図1は、物理的なIPネットワークとこの物理ネットワークにオーバーレイされた従来の仮想ネットワークと本実施形態の仮想ネットワークでトポロジがどう異なるかを表現した一例である。図1の下段は、サブネットワーク1にあるA、B、C、D、E、Fの6台のPCと、サブネットワーク2にあるK、Lの2台のPCと、サブネットワーク3にあるG、H、I、Jの4台のPCと、サブネットワーク3を接続するルータ4と、で構成されたIPネットワークである。同じサブネットワーク内のPC同士は1ホップの通信が可能であるが、他のサブネットワークにあるPCへは2ホップの通信となる。   FIG. 1 shows an example of how the topology differs between a physical IP network, a conventional virtual network overlaid on the physical network, and the virtual network of this embodiment. The lower part of FIG. 1 shows six PCs A, B, C, D, E, and F in the subnetwork 1, two PCs K and L in the subnetwork 2, and G in the subnetwork 3. , H, I, and J, and a router 4 that connects the sub-network 3 to the IP network. PCs in the same subnetwork can perform one-hop communication, but two-hop communication to PCs in other subnetworks.

このAからLの12台のPCで、従来の手法を用いて仮想ネットワークを構成したときの一例を図1の上段、本実施形態の手法を用いて仮想ネットワークを構成したときの一例を図1の中段に示す。従来の仮想ネットワークは密なメッシュ状トポロジを構成しているのに対し、本実施形態の仮想ネットワークは少し疎なメッシュ状トポロジを構成している。従来の仮想ネットワークノードはノードの位置や距離に関係なくリンクするが、本実施形態の仮想ネットワークノードは同じサブネットワーク内のノードへ優先的に接続し、数の制限されたゲートノードだけが他のサブネットワークのノードへ接続するためである。なお、本実施形態では他のサブネットワークのノードへ接続するノードをゲートノードと呼ぶ。従来と本実施形態の仮想ネットワークで黒丸のノードは他のサブネットワークのノードにリンクしているノードである。   An example when a virtual network is configured using the conventional method with the 12 PCs A to L, an example when a virtual network is configured using the method of the present embodiment, as shown in FIG. Shown in the middle row. While the conventional virtual network has a dense mesh topology, the virtual network of the present embodiment has a slightly sparse mesh topology. A conventional virtual network node is linked regardless of the position and distance of the node, but the virtual network node of this embodiment is preferentially connected to nodes in the same subnetwork, and only a limited number of gate nodes are connected to other nodes. This is for connection to a node of the subnetwork. In the present embodiment, a node connected to a node of another subnetwork is called a gate node. In the conventional and virtual networks of the present embodiment, the black circle node is a node linked to a node of another subnetwork.

つまり、従来の一例においてはA、C、D、F、G、H、I、K、Lの9つのノードがゲートノードになっていることに対し、本実施形態ではC、F、K、Gの4つのノードがゲートノードになっている。図1中の従来の仮想ネットワークに比べ本実施形態の仮想ネットワークは黒丸のノードが少なく黒丸のノード同士のリンク数が少ないことが分かる。前述の通りサブネットワーク内の通信はルータ4を経由しないため、本実施形態の手法でゲートノードが少なくなることにより、ルータ4を通過するパケット量が抑えられ、物理ネットワークのホップ数が少ない効率のよい仮想ネットワーク通信が可能となる。   That is, in the conventional example, nine nodes A, C, D, F, G, H, I, K, and L are gate nodes, whereas in this embodiment, C, F, K, and G are used. These four nodes are gate nodes. Compared to the conventional virtual network in FIG. 1, it can be seen that the virtual network of this embodiment has fewer black circle nodes and fewer links between the black circle nodes. As described above, since communication within the sub-network does not pass through the router 4, the amount of packets passing through the router 4 can be suppressed and the number of hops in the physical network can be reduced by reducing the number of gate nodes in the method of this embodiment. Good virtual network communication is possible.

図2に、本実施形態のソフトウェア構造の一例を示す。図2中、一番下の層がTCP/IP(Transmission Control Protocol/Internet Protocol)、UDP/IP(User Datagram Protocol/Internet Protocol)通信を行うための物理ネットワーク制御層7で、OSI参照モデルでの物理層、データリンク層、ネットワーク層、トランスポート層が含まれる。図2中、真中の層が仮想ネットワークの構築と維持、及びメッセージ処理を行う仮想ネットワーク制御層6、図2中、一番上の層がユーザインターフェース及びファイルの公開、検索、取得を行うP2Pアプリケーション層5である。本実施形態では、主に仮想ネットワーク層6に関して説明を行う。   FIG. 2 shows an example of the software structure of this embodiment. In FIG. 2, the lowermost layer is a physical network control layer 7 for performing TCP / IP (Transmission Control Protocol / Internet Protocol) and UDP / IP (User Datagram Protocol / Internet Protocol) communication in the OSI reference model. A physical layer, a data link layer, a network layer, and a transport layer are included. 2, the middle layer is a virtual network control layer 6 that performs construction and maintenance of virtual networks and message processing, and the top layer in FIG. 2 is a P2P application that exposes, searches, and acquires user interfaces and files. Layer 5. In the present embodiment, the virtual network layer 6 will be mainly described.

図3は、本実施形態でPC、ノードと表現される通信装置の概略構成例を示すブロック図である。制御部12は、CPU、RAM、ROMなどの演算器とメモリで構成され、ソフトウェアを実行する中心部分である。記憶部8は、HDDなどの補助記憶装置でありプログラムやデータが記憶される。入力部9は、マウスやキーボードやタッチパネル等で構成され、ユーザからのファイル検索指示やキーワード入力を受け付ける。表示部10は、ランプや液晶ディスプレイで構成され、検索結果やファイルの内容を表示する。通信部11は、イーサネット(登録商標)等の有線LAN装置やIEEE802.11a/b/g等の無線LAN装置で構成され、TCP/IP、UDP/IP通信を行う。   FIG. 3 is a block diagram illustrating a schematic configuration example of a communication device expressed as a PC or a node in the present embodiment. The control unit 12 includes a computing unit such as a CPU, a RAM, and a ROM, and a memory, and is a central part that executes software. The storage unit 8 is an auxiliary storage device such as an HDD and stores programs and data. The input unit 9 includes a mouse, a keyboard, a touch panel, and the like, and accepts file search instructions and keyword inputs from the user. The display unit 10 includes a lamp and a liquid crystal display, and displays search results and file contents. The communication unit 11 includes a wired LAN device such as Ethernet (registered trademark) or a wireless LAN device such as IEEE802.11a / b / g, and performs TCP / IP and UDP / IP communication.

制御部12の中には仮想ネットワーク制御層6のモジュールが示されている。仮想ネットワーク制御層6は、仮想ネットワーク管理部13、メッセージ処理部14、ノードリンク処理部15から構成されている。ノードリンク処理部15は、「内部ノードリンク」、「外部ノードリンク」、「リンク受付」といった機能を有する。ノードリンク処理部15の「内部ノードリンク」と「外部ノードリンク」は、サブネットワーク内外のノードを探索・発見し、所定の数のノードに対してTCP/IP通信コネクション(リンク)を確立する機能である。また、「内部ノードリンク」と「外部ノードリンク」は、リンク先のノードがリンク拒否のメッセージを送ってきた場合には、コネクションを切断して他のノードに対してリンクを試行する機能を有する。「リンク受付」は、他のノードからのリンク要求に対してTCP/IP通信コネクションを確立する機能である。また、「リンク受付」は、リンク要求を受容できない場合には、リンク拒否のメッセージを送る機能を有する。   In the control unit 12, modules of the virtual network control layer 6 are shown. The virtual network control layer 6 includes a virtual network management unit 13, a message processing unit 14, and a node link processing unit 15. The node link processing unit 15 has functions such as “internal node link”, “external node link”, and “link reception”. The “internal node link” and “external node link” of the node link processing unit 15 search and discover nodes inside and outside the subnetwork, and establish a TCP / IP communication connection (link) to a predetermined number of nodes. It is. “Internal node link” and “External node link” have a function of disconnecting a connection and trying a link to another node when the link destination node sends a link rejection message. . “Link acceptance” is a function for establishing a TCP / IP communication connection in response to a link request from another node. The “link acceptance” has a function of sending a link rejection message when the link request cannot be accepted.

メッセージ処理部14は、「要求メッセージ」、「返答メッセージ」、「メッセージ転送」といった機能を有する。「要求メッセージ」は、要求メッセージの生成や送受信を行う機能である。「返答メッセージ」は、返答メッセージの生成や送受信を行う機能である。「メッセージ転送」は、他のノードから受け取ったメッセージを他のノードに転送する機能である。要求メッセージのフラッディングは、要求メッセージを受け取ったノードが、要求メッセージを受け取ったノードにリンクしている、要求メッセージを送ってきたノードを除く、全てのノードに、受け取った要求メッセージをコピーして転送することで実現される。要求メッセージにはユニークなメッセージIDが振られており、要求メッセージを複数受け取った場合に、要求メッセージが同じか否かを判別できるようになっている。同じ要求メッセージを受け取ったノードは、受け取った要求メッセージを転送せずにその要求メッセージを破棄する。また、要求メッセージには生存カウンタがあり、ノードは要求メッセージをコピーして転送するときに、生存カウンタをディクリメントする。生存カウンタが0になった要求メッセージは、転送されずに、破棄される。そして、要求メッセージを転送したノードは、要求メッセージを送ってきたノードとメッセージIDとを関連付けた要求メッセージ管理情報を、記憶部8の要求メッセージ管理テーブルの1レコードとして記憶する。なお、要求メッセージを転送せずに破棄した場合であっても、要求メッセージを送ってきたノードが異なれば、要求メッセージを送ってきたノードとメッセージIDとを関連付けた要求メッセージ管理情報を、記憶部8の要求メッセージ管理テーブルの1レコードとして記憶する。   The message processing unit 14 has functions such as “request message”, “response message”, and “message transfer”. “Request message” is a function for generating and transmitting / receiving a request message. “Reply message” is a function for generating and transmitting / receiving a reply message. “Message transfer” is a function of transferring a message received from another node to another node. Request message flooding is performed by copying the received request message to all nodes except the node that sent the request message, which is linked to the node that received the request message. It is realized by doing. A unique message ID is assigned to the request message, and when a plurality of request messages are received, it can be determined whether or not the request messages are the same. A node that receives the same request message discards the request message without forwarding the received request message. The request message has a survival counter, and the node decrements the survival counter when copying and transferring the request message. A request message whose survival counter reaches 0 is discarded without being transferred. Then, the node that transferred the request message stores the request message management information in which the node that sent the request message is associated with the message ID as one record of the request message management table in the storage unit 8. Even if the request message is discarded without being transferred, if the node that sent the request message is different, the request message management information that associates the message ID with the node that sent the request message is stored in the storage unit. 8 records as one record of the request message management table.

要求メッセージに対する返答メッセージも、ノードのメッセージ転送により要求メッセージ発行元に届く。要求メッセージに対して返答メッセージを生成したノードは、当該ノードの記憶部8の要求メッセージ管理テーブルを参照して要求メッセージを送ってきたノードを特定し、特定されたノードに対して返答メッセージを送信する。返答メッセージには、要求メッセージのメッセージIDが含まれている。返答メッセージを受け取ったノードは、当該ノードの記憶部8の要求メッセージ管理テーブルを参照し、同じメッセージIDの要求メッセージのレコードがある場合には、要求メッセージを送ってきたノードに受け取った返答メッセージを転送する。また、返答メッセージを送信するノードは、当該ノードの記憶部8の要求メッセージ管理テーブル内の同じメッセージIDを有するレコードに、返答メッセージを送信または転送したことを示す転送済みフラグを立てる。同じメッセージIDの要求メッセージのレコードがノードの記憶部8の要求メッセージ管理テーブル内にない場合には、受け取った返答メッセージを破棄する。   A response message to the request message also reaches the request message issuer by the message transfer of the node. The node that generated the response message in response to the request message refers to the request message management table in the storage unit 8 of the node, identifies the node that has transmitted the request message, and transmits the response message to the identified node. To do. The response message includes the message ID of the request message. The node that has received the response message refers to the request message management table in the storage unit 8 of the node, and if there is a record of the request message with the same message ID, the received response message is sent to the node that sent the request message. Forward. In addition, the node that transmits the response message sets a transfer completed flag indicating that the response message has been transmitted or transferred to the record having the same message ID in the request message management table of the storage unit 8 of the node. If a request message record with the same message ID does not exist in the request message management table of the storage unit 8 of the node, the received response message is discarded.

仮想ネットワーク管理部13は、「ノードリンク監視」、「ゲートノード監視」、「サブネットワーク判定」、「ゲートノード数検出」、「内部ノード数検出」といった機能を有する。「ノードリンク監視」は、あるノードとそのノードにリンクされている他のノードとの通信コネクション(リンク)が正常に保たれているかを定期的に確認し、相手ノード(他のノード)の離脱や障害により通信コネクションが切れている場合には、新たなノードへリンクする指示を「ノードリンク処理」に対して出す機能である。「ゲートノード監視」は、ノードと同じサブネットワーク内に、ゲートノードが何台存在するかを不定期に調べ、所定の数のゲートノードが存在しない場合には自ノードがゲートノードになる処理を行う機能である。「サブネットワーク判定」は、あるIPアドレスを持つノードがサブネットワーク内にあるノードか否かを、サブネットワークマスクを用いて判定する機能である。「ゲートノード数検出」、「内部ノード数検出」は、今現在存在するゲートノード、内部ノードの台数とアドレスを調べる機能である。調べ方には、仮想ネットワークで要求メッセージを使って探索する方法と、IPネットワークのブロードキャストを使って探索する方法とがある。   The virtual network management unit 13 has functions such as “node link monitoring”, “gate node monitoring”, “subnetwork determination”, “gate node number detection”, and “internal node number detection”. "Node link monitoring" periodically checks whether the communication connection (link) between a node and another node linked to that node is maintained normally, and the other node (other node) leaves This is a function for issuing an instruction for linking to a new node to “node link processing” when the communication connection is broken due to a failure. “Gate node monitoring” is a process that irregularly checks how many gate nodes exist in the same sub-network as the node. This is a function to be performed. The “subnetwork determination” is a function for determining whether a node having a certain IP address is a node in the subnetwork using a subnetwork mask. “Detection of the number of gate nodes” and “detection of the number of internal nodes” are functions for checking the number of gate nodes and the number of internal nodes and addresses currently existing. There are two methods of searching: a search method using a request message in a virtual network and a search method using a broadcast of an IP network.

図10は、本実施形態において、仮想ネットワーク上を流れるメッセージの一例を示す。メッセージの種類は、要求メッセージと返答メッセージとに分けられる。そして、返答メッセージは、要求メッセージに対するアクション結果である。以下、各メッセージを説明する。
NODE_SERCH_INNER_ALL(内部全ノードIP要求メッセージ)は、サブネットワーク内にある、全ノードのIPアドレスを収集するための要求メッセージである。NODE_SERCH_INNER_GATE(内部ゲートノードIP要求)は、サブネットワーク内にある、ゲートノードのIPアドレスを収集するための要求メッセージである。NODE_SERCH_OUTER_GATE(外部ゲートノードIP要求)は、サブネットワーク外にある、ゲートノードのIPアドレスを収集するための要求メッセージである。NODE_RESULT_ADDRESS(アドレス返答)は、NODE_SERCH要求メッセージに対してノードアドレス情報を返信するための返答メッセージである。APPLI_SERCH_FILE(ファイル検索要求)は、P2Pアプリケーションプログラムからのファイル検索要求メッセージである。ファイル検索要求を受け取ったノードは、そのメッセージに付属する検索条件に合致するファイルを、対象とする記憶装置から検索し、ファイル名やファイルサイズ等のリストを作成する。APPLI_RESULT_FILE(ファイル検索結果返答メッセージ)は、P2Pアプリケーションプログラムからのファイル検索結果返答メッセージである。ファイル検索要求を受け取ったノードが、ファイル検索要求への返答として、ファイル検索要求と共に作成したリストを、ファイル検索要求の送信元に送る。実際のメッセージにはいろいろな内容が含まれるがここでは説明を割愛する。
FIG. 10 shows an example of a message that flows on the virtual network in this embodiment. Message types are divided into request messages and response messages. The response message is an action result for the request message. Each message will be described below.
NODE_SERCH_INNER_ALL (internal all node IP request message) is a request message for collecting the IP addresses of all nodes in the subnetwork. NODE_SERCH_INNER_GATE (internal gate node IP request) is a request message for collecting the IP addresses of the gate nodes in the subnetwork. NODE_SERCH_OUTER_GATE (external gate node IP request) is a request message for collecting IP addresses of gate nodes outside the subnetwork. NODE_RESULT_ADDRESS (address response) is a response message for returning node address information in response to a NODE_SERCH request message. APPLI_SERCH_FILE (file search request) is a file search request message from the P2P application program. The node that has received the file search request searches the target storage device for a file that matches the search condition attached to the message, and creates a list of file names, file sizes, and the like. APPLI_RESULT_FILE (file search result response message) is a file search result response message from the P2P application program. The node that has received the file search request sends a list created together with the file search request to the source of the file search request as a response to the file search request. There are various contents in the actual message, but the explanation is omitted here.

図4を参照して、ノードが新規に仮想ネットワークへ参加するときの動作を説明する。仮想ネットワークへ新規に参加しようとするノードは、最初に内部ノードを探索し(ステップS101)、内部ノードのアドレス情報を収集する(ステップS102)。これにより、新規に参加しようとするノードは、リンクを試みるノードのIPアドレスを入手することができる。この入手の方法には、2通りの方法がある。1つ目は仮想ネットワークのメッセージを利用する方法で、既知の内部ノードへリンクした後、内部全ノードIP要求メッセージで内部ノードのアドレス情報を収集する。2つ目はIPネットワークのブロードキャストにより内部ノードのアドレス情報を収集する方法である。   With reference to FIG. 4, the operation when a node newly joins the virtual network will be described. A node that intends to newly join the virtual network first searches for an internal node (step S101) and collects address information of the internal node (step S102). Thereby, the node which is going to newly join can acquire the IP address of the node which tries the link. There are two ways to obtain this. The first method uses a message of a virtual network. After linking to a known internal node, address information of the internal node is collected by an internal all-node IP request message. The second is a method of collecting address information of internal nodes by broadcasting an IP network.

図8を参照して、IPアドレスの入手方法のそれぞれについて説明する。図1の中段にある仮想ネットワークのサブネットワークN3にノードMが参加するとして説明する。最初に、仮想ネットワークのメッセージを利用する方法の場合について説明する。ノードMは、ユーザによって設定されたIPアドレスに従ってノードHに仮リンクする。仮リンクしたら内部全ノードIP要求メッセージを送信し、アドレス返答メッセージを一定時間待つ。ノードHは、ノードMから受け取った内部全ノードIP要求メッセージをノードIとノードJに転送し、アドレス返答メッセージをノードMに返す。   With reference to FIG. 8, each method for obtaining an IP address will be described. In the following description, it is assumed that the node M participates in the subnetwork N3 of the virtual network in the middle of FIG. First, the case of a method using a virtual network message will be described. The node M temporarily links to the node H according to the IP address set by the user. When the temporary link is established, an internal all node IP request message is transmitted, and an address reply message is waited for a predetermined time. The node H transfers the internal all node IP request message received from the node M to the node I and the node J, and returns an address response message to the node M.

ノードIは、ノードHから受け取った内部全ノードIP要求メッセージをノードGに転送し、かつ、アドレス返答メッセージをノードHに返す。そして、ノードJから受け取った内部全ノードIP要求メッセージを破棄する。ノードJは、ノードHから受け取った内部全ノードIP要求メッセージをノードGに転送し、かつ、アドレス返答メッセージをノードHに返す。ノードIは、ノードGから受け取ったアドレス返答メッセージをノードHに転送する。ノードHは、ノードI、Jから受け取ったアドレス返答メッセージをノードMに転送する。内部ノードのアドレス情報を収集したノードMは、ノードHへの仮リンクを切断する。   The node I transfers the internal all node IP request message received from the node H to the node G, and returns an address response message to the node H. Then, the internal all node IP request message received from the node J is discarded. The node J transfers the internal all node IP request message received from the node H to the node G, and returns an address response message to the node H. Node I forwards the address reply message received from node G to node H. The node H transfers the address response message received from the nodes I and J to the node M. The node M collecting the address information of the internal node disconnects the temporary link to the node H.

次に、IPネットワークのブロードキャストを利用して内部ノードのアドレス情報を収集する方法の場合について説明する。ノードMは、アドレス情報の返信を要求するUDPパケットをブロードキャストアドレスに発信してアドレス情報の返信を一定時間待つ。前記UDPパケットは、サブネットワーク3内のノードG、H、I、Jに届けられる。UDPパケットを受け取った各ノードは、アドレス情報の入ったUDPパケットをユニキャストでノードMに送信する。ノードMは、ノードG、H、I、Jのそれぞれからアドレス情報の入ったUDPパケットを受信することで、ノードG、H、I、Jのアドレス情報を取得し、内部ノードのアドレス情報を収集する。   Next, a case of a method of collecting address information of internal nodes using IP network broadcast will be described. The node M transmits a UDP packet requesting a reply of address information to the broadcast address and waits for a reply for a predetermined time. The UDP packet is delivered to the nodes G, H, I, and J in the subnetwork 3. Each node that receives the UDP packet transmits the UDP packet containing the address information to the node M by unicast. The node M receives the UDP packet containing the address information from each of the nodes G, H, I, and J, thereby acquiring the address information of the nodes G, H, I, and J, and collecting the address information of the internal nodes. To do.

図9を参照して、ノードGがノードMに返信するアドレス情報の例を示す。図9のアドレス情報は、ノードGにアドレス情報テーブルとして格納されている。ここでは、ノードGの送信するアドレス情報を例に説明を行うが、仮想ネットワークノードとして機能している各ノードはアドレス情報テーブルを格納しており、アドレス情報をノードMに送信する。表の1列目は、ノードGが仮想ネットワークノードとして把握しているノードのIPアドレスである。2列目はリンクフラグである。リンクフラグは、ノードGがそのノードに対してリンクしていなければ0、リンクしていれば1、リンクされていれば2となる。3列目はゲートノードフラグである。ゲートノードフラグは、ノードがゲートノードであれば1、ゲートノードでなければ0となる。4列目は仮リンクフラグである。リンクが仮リンクであれば1、仮リンクでなければ0となる。図9の例では、ノード「192.168.300.4」とのリンクが仮リンクであることを示している。表の1行目が自己のノードの情報、つまりノードGの情報である。   With reference to FIG. 9, an example of address information returned from the node G to the node M is shown. The address information in FIG. 9 is stored in the node G as an address information table. Here, the address information transmitted by the node G will be described as an example, but each node functioning as a virtual network node stores an address information table, and transmits the address information to the node M. The first column of the table is an IP address of a node that node G recognizes as a virtual network node. The second column is a link flag. The link flag is 0 if the node G is not linked to the node, 1 if it is linked, and 2 if it is linked. The third column is a gate node flag. The gate node flag is 1 if the node is a gate node, and 0 if it is not a gate node. The fourth column is a temporary link flag. 1 if the link is a temporary link, 0 if not. In the example of FIG. 9, the link with the node “192.168.300.4” is a temporary link. The first line of the table is the information of the own node, that is, the information of the node G.

図4に戻り、内部ノードのアドレス情報を収集した後の処理について説明する。収集した内部ノードのアドレス情報のゲートノード数をカウントして、サブネットワーク内に存在するゲートノードの数である、存在ゲートノード数を求める(ステップS103)。続いて、存在ゲートノード数と所定の目標ゲートノード数とを比較する(ステップS104)。存在ゲートノード数が所定の目標ゲートノード数より多い場合(ステップS104、NO)、ステップS111へ進む。存在ゲートノード数が所定の目標ゲートノード数よりも少ない場合(ステップS104、YES)、ステップS105に進む。続いて、存在ゲートノード数が0であるか判定する(ステップS105)。内部ゲートノードが存在する場合(ステップS105、NO)は、内部ゲートノードに仮リンクを行う(ステップS107)。内部ゲートノードが存在しない場合(ステップS105、YES)は、外部ノードに仮リンク(ステップS106)する。仮リンクする外部ノードは、ユーザが手動で入力したIPアドレスのノードや、ディレクトリサーバから入手したIPアドレスのノードである。ゲートノードに仮リンクしたら外部ゲートノードIP要求メッセージで外部ゲートノードのアドレス情報を収集する(ステップS108)。   Returning to FIG. 4, the processing after collecting address information of internal nodes will be described. The number of gate nodes in the collected address information of the internal nodes is counted to determine the number of existing gate nodes, which is the number of gate nodes existing in the subnetwork (step S103). Subsequently, the number of existing gate nodes is compared with a predetermined target gate node number (step S104). If the number of existing gate nodes is larger than the predetermined target gate node number (step S104, NO), the process proceeds to step S111. If the number of existing gate nodes is smaller than the predetermined target gate node number (step S104, YES), the process proceeds to step S105. Subsequently, it is determined whether the number of existing gate nodes is 0 (step S105). When an internal gate node exists (step S105, NO), a temporary link is made to the internal gate node (step S107). If the internal gate node does not exist (step S105, YES), a temporary link is made to the external node (step S106). The external node to be temporarily linked is an IP address node manually input by a user or an IP address node obtained from a directory server. When the link is temporarily made to the gate node, the address information of the external gate node is collected by the external gate node IP request message (step S108).

図8を用いて、外部ゲートノードIP要求メッセージのシーケンス例を内部全ノードIP要求メッセージと同じ様に説明する。ノードGに仮リンクしたノードMは、外部ゲートノードIP要求メッセージを送信してアドレス返答メッセージを一定時間待つ(ステップS109)。ノードGは、ノードMから受け取った外部ゲートノードIP要求メッセージをノードCとノードKに転送するとともに、アドレス返答メッセージをノードMに返す。ノードCは、ノードGから受け取った外部ゲートノードIP要求メッセージをノードFに転送するとともに、アドレス返答メッセージをノードGに返す。   A sequence example of the external gate node IP request message will be described in the same manner as the internal all node IP request message with reference to FIG. The node M temporarily linked to the node G transmits an external gate node IP request message and waits for an address reply message for a predetermined time (step S109). The node G transfers the external gate node IP request message received from the node M to the nodes C and K and returns an address response message to the node M. The node C transfers the external gate node IP request message received from the node G to the node F and returns an address response message to the node G.

そしてノードCは、ノードKから受け取った外部ゲートノードIP要求メッセージを破棄する。ノードFは、ノードCから外部ゲートノードIP要求メッセージを受け取るとアドレス返答メッセージをノードCに返す。ノードKは、ノードGから外部ゲートノードIP要求メッセージを受け取るとアドレス返答メッセージをノードGに返す。ノードCは、ノードFから受け取ったアドレス返答メッセージをノードGに転送する。ノードGは、ノードC、Kから受け取ったアドレス返答メッセージをノードMに転送する。   Node C discards the external gate node IP request message received from node K. When the node F receives the external gate node IP request message from the node C, the node F returns an address reply message to the node C. When the node K receives the external gate node IP request message from the node G, the node K returns an address response message to the node G. Node C transfers the address reply message received from node F to node G. The node G transfers the address response message received from the nodes C and K to the node M.

再び図4に戻り、外部ゲートノードのアドレス情報を収集した後の処理について説明する。外部ゲートノードのアドレス情報を収集すると、所定の数のゲートノードにリンクし、仮リンクを切断する(ステップS110)。外部ゲートノードへのリンクが終わると、先に収集した内部ノードのアドレス情報を用いて、所定の数の内部ノードにリンクする(ステップS111)。また、存在ゲートノード数が目標ゲートノード数に達している場合には、外部ゲートノードへのリンクは行わずに所定の数の内部ノードにリンクする。   Returning to FIG. 4 again, the processing after collecting the address information of the external gate node will be described. When the address information of the external gate node is collected, it is linked to a predetermined number of gate nodes and the temporary link is disconnected (step S110). When the link to the external gate node is completed, the link information is linked to a predetermined number of internal nodes using the previously collected internal node address information (step S111). When the number of existing gate nodes reaches the target number of gate nodes, the link is made to a predetermined number of internal nodes without linking to external gate nodes.

図5を参照して、ノードが新規に仮想ネットワークへ参加するときの処理を説明する。図5の点線で囲った部分、即ち、内部ノードをカウントし、内部ノード総数を求める工程(ステップS204)と、内部ノード総数に所定の割合を乗算し、目標ゲートノード数を求める工程(ステップS205)以外は、図4で説明した処理と同じため、点線内の処理のみを説明する。存在ゲートノード数を求めた(ステップS203)後、内部ノードアドレス情報から内部ノードをカウントし、内部ノードの総数を求める(ステップS204)。この作業は存在ゲートノード数を求める工程(ステップS203)と同時に行うと効率がよい。そして内部ノード総数に所定の割合を乗算し目標ゲートノード数を求める(ステップS205)。目標ゲートノード数は、内部ノード総数の4%程度とし最低2ノードといった下限ノード数を設けると良い。   With reference to FIG. 5, a process when a node newly joins a virtual network will be described. The step surrounded by the dotted line in FIG. 5, that is, the step of counting internal nodes to determine the total number of internal nodes (step S204) and the step of multiplying the total number of internal nodes by a predetermined ratio to determine the target gate node number (step S205). ) Is the same as the process described in FIG. 4, and only the process within the dotted line will be described. After determining the number of existing gate nodes (step S203), the internal nodes are counted from the internal node address information to determine the total number of internal nodes (step S204). If this operation is performed simultaneously with the step of obtaining the number of existing gate nodes (step S203), it is efficient. Then, a target gate node number is obtained by multiplying the total number of internal nodes by a predetermined ratio (step S205). The target number of gate nodes is preferably about 4% of the total number of internal nodes, and a lower limit number of nodes such as at least two nodes is preferably provided.

図6を参照して、ゲートノード以外のノードであるノーマルノードがゲートノードの存在を確認し、不足があればゲートノードとして機能するときの処理を説明する。図6において点線で囲った部分は図4の処理と同じであるため、それ以外の部分を説明する。なお、本処理は、タイマ値のタイムベース間隔、例えば1秒間隔で実行されることを前提にしている。まず、他ノードがゲートノードを探索したかどうかをチェックする(ステップS301)。メッセージ処理のところで内部全ノードIP要求メッセージ、内部ゲートノードIP要求メッセージを受け取った時にフラグをたてるようにしておくことでチェックすることができる。このフラグが立っている場合(S301、YES)、ゲートノード探索開始タイマ値に所定の値を加算し(ステップS303)、フラグをクリアして終了する。フラグが立っていない場合(ステップS301、NO)、ゲートノード探索開始タイマ値をディクリメントする(ステップS302)。続いて、上記ステップS302でディクリメンとした後のゲートノード探索開始タイマ値が0になったかをチェックする(ステップS304)。ゲートノード探索開始タイマ値が0にならない場合(ステップS304、NO)、何もしないで終了する。ゲートノード探索開始タイマ値が0になった場合(ステップS304、YES)、内部ゲートノードの探索と存在ゲートノード数の検知を行う(ステップS305)。   With reference to FIG. 6, a process when a normal node which is a node other than the gate node confirms the existence of the gate node and functions as a gate node if there is a shortage will be described. In FIG. 6, the part surrounded by a dotted line is the same as the process of FIG. 4, so the other part will be described. This process is premised on being executed at a time base interval of timer values, for example, at intervals of 1 second. First, it is checked whether another node has searched for a gate node (step S301). It can be checked by setting a flag when an internal all node IP request message and an internal gate node IP request message are received in the message processing. When this flag is set (S301, YES), a predetermined value is added to the gate node search start timer value (step S303), and the flag is cleared and the process ends. When the flag is not set (step S301, NO), the gate node search start timer value is decremented (step S302). Subsequently, it is checked whether the gate node search start timer value after decrementing in step S302 is 0 (step S304). If the gate node search start timer value does not become 0 (step S304, NO), the process ends without doing anything. When the gate node search start timer value becomes 0 (step S304, YES), the internal gate node is searched and the number of existing gate nodes is detected (step S305).

続いて、内部ゲートノードの探索と存在ゲートノード数の探知の手法について、説明する。まず、内部ゲートノードIP要求メッセージで内部ゲートノードのアドレス情報を収集する。内部ゲートノードIP要求メッセージのシーケンス例を、ノードHを探索元ノードとして図8で説明する。ノードHは、内部ゲートノードIP要求メッセージを送信してアドレス返答メッセージを一定時間待つ。ノードIは、ノードHから受け取った内部ゲートノードIP要求メッセージをノードGに転送する。ノードIは、ゲートノードでないのでアドレス返答メッセージをノードMに返さない。ノードJは、ノードHから受け取った内部ゲートノードIP要求メッセージをノードGに転送する。ノードJは、ゲートノードでないのでアドレス返答メッセージをノードMに返さない。ノードGは、ノードIから内部ゲートノードIP要求メッセージを受け取る。ノードGは、ゲートノードなのでアドレス返答メッセージをノードIに返す。ノードGは、内部ゲートノードIP要求メッセージを外部ノードに転送せず、ノードJから受け取った内部ゲートノードIP要求メッセージを破棄する。ノードIは、ノードGから受け取ったアドレス返答メッセージをノードHに転送する。   Subsequently, techniques for searching for internal gate nodes and detecting the number of existing gate nodes will be described. First, address information of the internal gate node is collected by the internal gate node IP request message. A sequence example of the internal gate node IP request message will be described with reference to FIG. The node H transmits an internal gate node IP request message and waits for an address reply message for a predetermined time. Node I forwards the internal gate node IP request message received from node H to node G. Since node I is not a gate node, it does not return an address reply message to node M. Node J forwards the internal gate node IP request message received from node H to node G. Since node J is not a gate node, it does not return an address reply message to node M. Node G receives the internal gate node IP request message from node I. Since node G is a gate node, an address reply message is returned to node I. The node G does not forward the internal gate node IP request message to the external node, but discards the internal gate node IP request message received from the node J. Node I forwards the address reply message received from node G to node H.

内部ゲートノードのアドレス情報を収集すると、ゲートノード数をカウントして存在ゲートノード数を求める。そして、存在ゲートノード数が所定の目標ゲートノード数より小さければ自分がゲートノードとして外部ノードにリンクするステップに進む。最後は次回ゲートノード探索の間隔であるゲートノード探索開始タイマ値を他のノードによる探索とタイミングが重なることを避け、探索密度に偏りが発生しないようランダムに決定する(ステップS313)。   When the address information of the internal gate node is collected, the number of gate nodes is counted to obtain the number of existing gate nodes. If the number of existing gate nodes is smaller than a predetermined target gate node number, the process proceeds to a step of linking itself to an external node as a gate node. Finally, the gate node search start timer value, which is the interval of the next gate node search, is determined randomly so as not to overlap the timing of the search by other nodes and to avoid bias in search density (step S313).

図7を参照して、ゲートノードが他の内部ゲートノードの数に応じてリンク数を動的に変更するときの処理を説明する。図7のノーマルノードのフロー図は、図6の続きであり、内部ゲートノードの探索を行ったノーマルノードは、最後に存在ゲートノード数をそれぞれの内部ゲートノードに送信する(ステップS401)。存在ゲートノード数を配信する仮想ネットワークメッセージを作っても良いが、内部ゲートノードの数は多くないので、ここではIPネットワークでゲートノードに直接接続し、ユニキャストで存在ゲートノード数を送る。   With reference to FIG. 7, a process when the gate node dynamically changes the number of links according to the number of other internal gate nodes will be described. The normal node flow diagram of FIG. 7 is a continuation of FIG. 6, and the normal node that has searched the internal gate node finally transmits the number of existing gate nodes to each internal gate node (step S401). A virtual network message that distributes the number of existing gate nodes may be created. However, since the number of internal gate nodes is not large, here, the number of existing gate nodes is sent by unicasting by directly connecting to the gate node via the IP network.

ゲートノードは、存在ゲートノード数を受け取り(ステップS501)、存在ゲートノード数から外部仮想ネットワークゲートノードへの最大リンク数を決める(ステップS502)。現在の外部リンク数と最大リンク数とを比較する(ステップS503)。現在の外部リンク数が前記最大リンク数より多ければ(ステップS503、YES)、外部仮想ネットワークゲートノードへのリンクを最大リンク数以下に減らす(ステップS504)。また、現在の外部リンク数が前記最大リンク数以下である場合(ステップS503、NO)、外部リンク数と所定の最小リンク数とを比較する(ステップS505)。現在の外部リンク数が所定の最小リンク数より少なければ(ステップS505、YES)、外部仮想ネットワークゲートノードへのリンクを最小リンク数以上に増やす(ステップS506)。現在の外部リンク数が所定の最小リンク数以上(ステップS505、NO)であれば何もしない。   The gate node receives the number of existing gate nodes (step S501), and determines the maximum number of links from the number of existing gate nodes to the external virtual network gate node (step S502). The current number of external links is compared with the maximum number of links (step S503). If the current number of external links is larger than the maximum number of links (step S503, YES), the number of links to the external virtual network gate node is reduced below the maximum number of links (step S504). When the current number of external links is equal to or less than the maximum number of links (step S503, NO), the number of external links is compared with a predetermined minimum number of links (step S505). If the current number of external links is less than the predetermined minimum number of links (step S505, YES), the number of links to the external virtual network gate node is increased beyond the minimum number of links (step S506). If the current number of external links is greater than or equal to the predetermined minimum number of links (step S505, NO), nothing is done.

上記の説明では、リンクの種類として、リンク、仮リンクを用いて説明されているが、リンクまたは仮リンクによるノードリンク処理部6の動作について、図11を用いて説明する。図11では、リンク要求を送信するノードをリンク元ノード、リンク要求を受け取るノードをリンク先ノードとして説明する。   In the above description, the type of link is described using a link and a temporary link. However, the operation of the node link processing unit 6 using a link or a temporary link will be described with reference to FIG. In FIG. 11, a node that transmits a link request is described as a link source node, and a node that receives a link request is described as a link destination node.

リンク元ノードのノードリンク処理部15のノードリンク機能(内部、外部を含む)は、リンク先ノードのIPアドレスと所定のポート番号に対して、物理ネットワーク制御層7の各層を介して、リンク要求または仮リンク要求を送信する(ステップS1101)。   The node link function (including internal and external) of the node link processing unit 15 of the link source node sends a link request to the IP address of the link destination node and a predetermined port number via each layer of the physical network control layer 7. Alternatively, a temporary link request is transmitted (step S1101).

続いて、リンク先ノードのノードリンク処理部15のリンク受付機能は、リンク元ノードから送信されたリンク要求または仮リンク要求を受信する(ステップS1102)。リンク先ノードのリンク受付機能は、リンク元ノードから送信された要求が、リンク要求か仮リンク要求かを判断する(ステップS1103)。判断の結果、仮リンク要求であれば(ステップS1103、YES)、アドレス情報テーブルの仮リンクフラグを真にして、リンク元ノードを登録し(ステップS1105)、ステップS1106に進む。リンク元ノードから送信された要求がリンク要求であれば(ステップS1103、NO)、アドレス情報テーブルを参照して、仮リンクフラグの立っているノードを除く、既にリンクしているノードの数を取得し、所定の数(リンク数上限)と比較する(ステップS1104)。   Subsequently, the link reception function of the node link processing unit 15 of the link destination node receives the link request or the temporary link request transmitted from the link source node (step S1102). The link reception function of the link destination node determines whether the request transmitted from the link source node is a link request or a temporary link request (step S1103). If it is determined that the request is a temporary link request (YES in step S1103), the temporary link flag in the address information table is set to true, the link source node is registered (step S1105), and the process proceeds to step S1106. If the request transmitted from the link source node is a link request (step S1103, NO), refer to the address information table to obtain the number of nodes already linked, excluding the node with the temporary link flag set. Then, it is compared with a predetermined number (link number upper limit) (step S1104).

上記ステップS1104における比較の結果、既にリンクしているノードの数がリンク数上限よりも少なければ(ステップS1104、NO)、アドレス情報テーブルの仮リンクフラグを偽にして、リンク元ノードを登録し(ステップS1105)、ステップS1106に進む。その後、リンク受付機能は、リンク要求を許可する旨のリンク要求結果を物理ネットワーク制御層7の各層を介して、リンク元ノードに送信する(ステップS1106)。   As a result of the comparison in step S1104, if the number of already linked nodes is less than the upper limit of the number of links (NO in step S1104), the temporary link flag in the address information table is set to false and the link source node is registered ( The process proceeds to step S1105) and step S1106. Thereafter, the link reception function transmits a link request result indicating that the link request is permitted to the link source node via each layer of the physical network control layer 7 (step S1106).

一方、上記ステップS1104における比較の結果、既にリンクしているノードの数がリンク数上限よりも多ければ(ステップS1104、YES)、リンク受付機能は、リンク要求を拒否する旨のリンク要求結果を物理ネットワーク制御層7の各層を介して、リンク元ノードに送信する(ステップS1107)。   On the other hand, as a result of the comparison in step S1104, if the number of already linked nodes is larger than the upper limit of the number of links (step S1104, YES), the link reception function physically displays the link request result indicating that the link request is rejected. The data is transmitted to the link source node via each layer of the network control layer 7 (step S1107).

リンク元ノードのノードリンク機能(内部、外部を含む)は、リンク先ノードから送信されたリンク要求結果を受信する(ステップS1108)。リンク元ノードのノードリンク機能(内部、外部を含む)は、受信したリンク要求結果が、リンク許可を示すものか、リンク拒否を示すものか、を確認する(ステップS1109)。   The node link function (including internal and external) of the link source node receives the link request result transmitted from the link destination node (step S1108). The node link function (including internal and external) of the link source node confirms whether the received link request result indicates link permission or link rejection (step S1109).

上記ステップS1109における確認の結果、リンク要求結果がリンク許可を示す場合(ステップS1109、YES)は、リンク元ノードのノードリンク機能(内部、外部を含む)は、リンク先ノードをアドレス情報テーブルに登録して(ステップS1110)、リンク要求のプロセスを終了する。このとき、リンク要求が仮リンク要求であった場合には、仮想ネットワークテーブルの仮リンクフラグを真とする。   As a result of the confirmation in step S1109, if the link request result indicates link permission (step S1109, YES), the node link function (including internal and external) of the link source node registers the link destination node in the address information table. In step S1110, the link request process is terminated. At this time, if the link request is a temporary link request, the temporary link flag in the virtual network table is set to true.

一方、上記ステップS1109における確認の結果、リンク要求結果がリンク拒否を示す場合(ステップS1109、NO)には、リンク先ノードへのリンク要求のプロセスを終了し、ノードリンク処理機能は、異なるリンク先ノードへのリンク要求のプロセスを開始する。   On the other hand, as a result of the confirmation in step S1109, if the link request result indicates link rejection (step S1109, NO), the link request process to the link destination node is terminated, and the node link processing function is different from the link destination. Start the process of requesting a link to the node.

アドレス情報テーブルにリンク先ノードが登録されると、図2の仮想ネットワーク制御層6のメッセージ処理機能により仮想ネットワークメッセージをやり取りできるようになる。ただ、仮リンク状態では相対的に負荷の小さいNODE_SERCH、NODE_RESULT系のメッセージだけをやり取りできるように設計されている。すなわち、仮リンク状態ではファイルの検索はできないが、リンク先ノードに接続を拒否されることが無いので、確実にノードアドレスを収集できるメリットがある。   When the link destination node is registered in the address information table, the virtual network message can be exchanged by the message processing function of the virtual network control layer 6 in FIG. However, the temporary link state is designed so that only NODE_SERCH and NODE_RESULT messages of relatively small load can be exchanged. That is, the file cannot be searched in the temporary link state, but the connection is not refused by the link destination node, and there is an advantage that the node address can be reliably collected.

以上の実施形態により、従来よりも通信負荷が小さい仮想ネットワークを構成することができる。また、IPブロードキャストを、サブネットワーク内のノードに優先的にリンクして仮想ネットワークを構成する本実施形態に利用していることで、探索範囲の限定と探索の自動化を同時に行うことができ、参加や離脱が容易な仮想ネットワークを構成するこができる。また、全体の通信量はノード数で大きく変化するため、ゲートノード数を動的に変化させることによって、仮想ネットワークのパフォーマンス低下を防止することができる。また、仮想ネットワークの分断を防止することができる。さらに、サブネットワーク内のノード数に応じてゲートノード数と外部へのリンク数が適切に設定されることによって、仮想ネットワークのパフォーマンスを最適に保つことができる。   According to the above embodiment, it is possible to configure a virtual network with a communication load smaller than that of the prior art. In addition, by using the IP broadcast in this embodiment in which a virtual network is configured by preferentially linking to nodes in the subnetwork, the search range can be limited and the search can be automated at the same time. And a virtual network that can be easily detached. In addition, since the total communication amount greatly varies depending on the number of nodes, the performance of the virtual network can be prevented from being lowered by dynamically changing the number of gate nodes. In addition, the virtual network can be prevented from being divided. Furthermore, the performance of the virtual network can be kept optimal by appropriately setting the number of gate nodes and the number of links to the outside according to the number of nodes in the sub-network.

下段に示されるIPネットワークを、従来の仮想ネットワーク構築法と、本実施形態におけるネットワーク構築法例で構築した場合の対比を示す図である。It is a figure which shows the contrast at the time of constructing the IP network shown by the lower stage by the conventional virtual network construction method and the network construction method example in this embodiment. 本実施形態における、ソフトウェアの構造の例を示す図である。It is a figure which shows the example of the structure of the software in this embodiment. 本実施形態における、通信装置の概略構成例を示すブロック図である。It is a block diagram which shows the example of schematic structure of the communication apparatus in this embodiment. 本実施形態における、ノードが新規に仮想ネットワークへ参加するときの例を示すフロー図である。It is a flowchart which shows an example when a node newly joins a virtual network in this embodiment. 本実施形態における、ノードが新規に仮想ネットワークへ参加するときに、ゲートノード数を求める工程を追加した場合の例を示すフロー図である。It is a flowchart which shows the example at the time of adding the process of calculating | requiring the number of gate nodes, when a node newly joins a virtual network in this embodiment. 本実施形態における、ノーマルノードがゲートノードの存在を確認し、不足があればゲートノードとして機能するときの例を示すフロー図である。It is a flowchart which shows the example when a normal node confirms presence of a gate node in this embodiment, and functions as a gate node if there is a shortage. 本実施形態における、ゲートノードが他の内部ゲートの数に応じてリンク数を動的に更新するときの例を示すフロー図である。It is a flowchart which shows an example when a gate node updates the number of links dynamically according to the number of other internal gates in this embodiment. 本実施形態における、ノードが新規に仮想ネットワークへ参加するときに、ゲートノード数を求める工程を追加した場合の例を示すフロー図である。It is a flowchart which shows the example at the time of adding the process of calculating | requiring the number of gate nodes, when a node newly joins a virtual network in this embodiment. 本実施形態における、ノードGが返すアドレス情報例を示す図である。It is a figure which shows the example of address information which the node G returns in this embodiment. 本実施形態における、仮想ネットワークメッセージの種類と内容の例を示す図である。It is a figure which shows the example of the kind and content of a virtual network message in this embodiment. 本実施形態における、ノードリンク処理部の動作例を示すフロー図である。It is a flowchart which shows the operation example of the node link process part in this embodiment.

符号の説明Explanation of symbols

1、2、3 サブネットワーク
4 ルータ
5 P2Pアプリケーション層
6 仮想ネットワーク制御層
7 物理ネットワーク制御層
8 記憶部
9 入力部
10 表示部
11 通信部
12 制御部
13 仮想ネットワーク管理部
14 メッセージ処理部
15 ノードリンク処理部
1, 2, 3 Subnetwork 4 Router 5 P2P application layer 6 Virtual network control layer 7 Physical network control layer 8 Storage unit 9 Input unit 10 Display unit 11 Communication unit 12 Control unit 13 Virtual network management unit 14 Message processing unit 15 Node link Processing part

Claims (8)

物理的なIPネットワーク上に論理的な仮想ネットワークを構成する通信装置であって、
自ノードが属するIPサブネットワーク内にある内部仮想ネットワークノードを探索する第1の探索手段と、
少なくとも1つの前記内部仮想ネットワークノードに適宜リンクして仮想ネットワークを構成する第1の構成手段と、
IPサブネットワーク外のノードとリンクする権利の有る仮想ネットワークゲートノードを探索する第2の探索手段と、
少なくとも1つの前記内部仮想ネットワークゲートノードに適宜リンクして仮想ネットワークを構成する第2の構成手段と、
前記自ノードが属するIPサブネットワーク内にある内部仮想ネットワークゲートノードを検出してカウントし、前記IPサブネットワーク内に実在するゲートノード数を検出する実在ゲートノード数検知手段と、
前記実在ゲートノード数検知手段により検出された実在ゲートノード数に基づいて、前記自ノードが属するIPサブネットワーク外にある外部仮想ネットワークゲートノードにリンクするか否かを決定する決定手段と、を有し、
前記実在ゲートノード数検知手段により検出された実在ゲートノード数が、目標ゲートノード数未満の場合に前記外部仮想ネットワークゲートノードにリンクし、目標ゲートノード数以上の場合に前記外部仮想ネットワークゲートノードにリンクしないで仮想ネットワークに参加することを特徴とする通信装置。
A communication device that forms a logical virtual network on a physical IP network,
First search means for searching for an internal virtual network node in the IP subnetwork to which the node belongs;
First configuration means for configuring a virtual network by appropriately linking to at least one internal virtual network node;
A second search means for searching for a virtual network gate node having a right to link with a node outside the IP subnetwork;
Second configuration means for configuring a virtual network by appropriately linking to at least one internal virtual network gate node;
Real gate node number detection means for detecting and counting internal virtual network gate nodes in the IP subnetwork to which the own node belongs, and detecting the number of gate nodes existing in the IP subnetwork;
Determination means for determining whether to link to an external virtual network gate node outside the IP subnetwork to which the own node belongs based on the number of real gate nodes detected by the real gate node number detection means. And
When the actual gate node number detected by the real gate node number detection means is less than the target gate node number, the actual virtual node is linked to the external virtual network gate node. A communication apparatus that participates in a virtual network without linking.
内部仮想ネットワークノードをIPネットワークのブロードキャストで探索し発見する第3の探索手段と、
仮想ネットワークゲートノードを仮想ネットワークのメッセージ配信で検索し発見する第4の探索手段と、を有することを特徴とする請求項1に記載の通信装置。
A third search means for searching for and discovering the internal virtual network node by broadcast of the IP network;
The communication device according to claim 1, further comprising: fourth search means for searching for and discovering the virtual network gate node by message delivery of the virtual network.
内部仮想ネットワークノード数に対する所定の割合を目標ゲートノード数とする目標ゲートノード数決定手段を有することを特徴とする請求項1又は2に記載の通信装置。   3. The communication apparatus according to claim 1, further comprising a target gate node number determining unit that sets a predetermined ratio to the number of internal virtual network nodes as a target gate node number. 不定期間隔で前記自ノードが属するIPサブネットワーク内のゲートノードを探索する第5の探索手段と、
他ノードがゲートノードの探索を行った際、前記自ノードがゲートノードの探索を行うまでの時間を更新する更新手段と、を有し、
前記実在ゲートノード数が目標ゲートノード数未満なら外部仮想ネットワークゲートノードにリンクしゲートノードとなることでIPサブネットワーク内のゲートノード数を維持するような仮想ネットワークを構成することを特徴とする請求項1から3の何れか1項に記載の通信装置。
Fifth search means for searching for a gate node in the IP subnetwork to which the node belongs, at irregular intervals;
Updating means for updating a time until the own node searches for a gate node when another node searches for a gate node;
The virtual network is configured to maintain the number of gate nodes in the IP subnetwork by linking to an external virtual network gate node and becoming a gate node if the number of actual gate nodes is less than the target number of gate nodes. Item 4. The communication device according to any one of Items 1 to 3.
前記自ノードが属するIPサブネットワーク内の内部仮想ネットワークゲートノード数を前記IPサブネットワーク内の内部仮想ネットワークゲートノードに通知する通知手段と、
前記内部仮想ネットワークゲートノード数に応じて外部仮想ネットワークゲートノードへの最大リンク数を調節する調整手段と、を有し、
前記内部仮想ネットワークゲートノードが増加した場合にも外部仮想ネットワークとのリンク数が比例して増加しない仮想ネットワークを構成することを特徴とする請求項1から4の何れか1項に記載の通信装置。
Notification means for notifying the internal virtual network gate node in the IP subnetwork of the number of internal virtual network gate nodes in the IP subnetwork to which the node belongs;
Adjusting means for adjusting the maximum number of links to an external virtual network gate node according to the number of internal virtual network gate nodes,
5. The communication apparatus according to claim 1, wherein a virtual network is configured in which the number of links with an external virtual network does not increase proportionally even when the number of internal virtual network gate nodes increases. .
自ノードが属するIPサブネットワーク内にある内部仮想ネットワークノードを探索する第1の探索工程と、
少なくとも1つの前記内部仮想ネットワークノードに適宜リンクして仮想ネットワークを構成する第1の構成工程と、
IPサブネットワーク外のノードとリンクする権利の有る仮想ネットワークゲートノードを探索する第2の探索工程と、
少なくとも1つの前記内部仮想ネットワークゲートノードに適宜リンクして仮想ネットワークを構成する第2の構成工程と、
前記自ノードが属するIPサブネットワーク内にある内部仮想ネットワークゲートノードを検出してカウントし、前記IPサブネットワーク内に実在するゲートノード数を検出する実在ゲートノード数検知工程と、
前記実在ゲートノード数に基づいて、前記自ノードが属するIPサブネットワーク外にある外部仮想ネットワークゲートノードにリンクするか否かを決定する決定工程と、を有し、
前記実在ゲートノード数が、目標ゲートノード数未満の場合に前記外部仮想ネットワークゲートノードにリンクし、目標ゲートノード数以上の場合に前記外部仮想ネットワークゲートノードにリンクしないで仮想ネットワークに参加することを特徴とするP2Pネットワーク構築方法。
A first search step of searching for an internal virtual network node in the IP subnetwork to which the node belongs;
A first configuration step of appropriately linking to at least one internal virtual network node to configure a virtual network;
A second search step of searching for a virtual network gate node that is entitled to link with a node outside the IP subnetwork;
A second configuration step of appropriately linking to at least one internal virtual network gate node to configure a virtual network;
Detecting and counting internal virtual network gate nodes in the IP subnetwork to which the node belongs, and detecting the number of actual gate nodes in the IP subnetwork; and
A determination step of determining whether to link to an external virtual network gate node outside the IP subnetwork to which the node belongs, based on the number of real gate nodes;
Linking to the external virtual network gate node when the number of existing gate nodes is less than the target number of gate nodes, and joining the virtual network without linking to the external virtual network gate node when the number is greater than the target number of gate nodes. A characteristic P2P network construction method.
自ノードが属するIPサブネットワーク内にある内部仮想ネットワークノードを探索する処理と、
少なくとも1つの前記内部仮想ネットワークノードに適宜リンクして仮想ネットワークを構成する処理と、
IPサブネットワーク外のノードとリンクする権利の有る仮想ネットワークゲートノードを探索する処理と、
少なくとも1つの前記内部仮想ネットワークゲートノードに適宜リンクして仮想ネットワークを構成する処理と、
前記自ノードが属するIPサブネットワーク内にある内部仮想ネットワークゲートノードを検出してカウントし、前記IPサブネットワーク内に実在するゲートノード数を検出する処理と、
前記実在ゲートノード数に基づいて、前記自ノードが属するIPサブネットワーク外にある外部仮想ネットワークゲートノードにリンクするか否かを決定する処理と、をコンピュータに実行させ、
前記実在ゲートノード数が目標ゲートノード数未満の場合に前記外部仮想ネットワークゲートノードにリンクし、目標ゲートノード数以上の場合に前記外部仮想ネットワークゲートノードにリンクしないで仮想ネットワークに参加させることを特徴とするプログラム。
A process of searching for an internal virtual network node in the IP subnetwork to which the node belongs;
A process of appropriately linking to at least one internal virtual network node to configure a virtual network;
Searching for a virtual network gate node that is entitled to link to a node outside the IP subnetwork;
A process of appropriately linking to at least one internal virtual network gate node to configure a virtual network;
A process of detecting and counting internal virtual network gate nodes in the IP subnetwork to which the node belongs, and detecting the number of gate nodes existing in the IP subnetwork;
Determining whether to link to an external virtual network gate node outside the IP subnetwork to which the own node belongs based on the number of real gate nodes,
Linking to the external virtual network gate node when the number of actual gate nodes is less than the target number of gate nodes, and joining to the virtual network without linking to the external virtual network gate nodes when the number of target gate nodes is greater than or equal to the target number of gate nodes Program.
請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to claim 7 is recorded.
JP2008311522A 2008-02-08 2008-12-05 Communication device, P2P network construction method, program, and recording medium Expired - Fee Related JP5078034B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008311522A JP5078034B2 (en) 2008-02-08 2008-12-05 Communication device, P2P network construction method, program, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008029696 2008-02-08
JP2008029696 2008-02-08
JP2008311522A JP5078034B2 (en) 2008-02-08 2008-12-05 Communication device, P2P network construction method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2009213122A JP2009213122A (en) 2009-09-17
JP5078034B2 true JP5078034B2 (en) 2012-11-21

Family

ID=41185779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008311522A Expired - Fee Related JP5078034B2 (en) 2008-02-08 2008-12-05 Communication device, P2P network construction method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP5078034B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101612475B1 (en) 2010-04-19 2016-04-27 삼성전자주식회사 Apparatus and Method for establishing partnership of P2P service based on gossip
WO2012042658A1 (en) * 2010-10-01 2012-04-05 株式会社日立製作所 Distributed processing system and method of node distribution in distributed processing system
JP6926737B2 (en) 2017-07-03 2021-08-25 株式会社リコー Communication systems, hopping nodes, communication control methods, and programs
SE1850454A1 (en) 2018-04-19 2019-10-20 Hive Streaming Ab Segmenting a corporate communications network

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3872051B2 (en) * 2003-09-26 2007-01-24 Necソフト株式会社 System and method for searching and distributing contents, and program
JP4893533B2 (en) * 2007-08-24 2012-03-07 コニカミノルタホールディングス株式会社 Network connection management method and information processing apparatus

Also Published As

Publication number Publication date
JP2009213122A (en) 2009-09-17

Similar Documents

Publication Publication Date Title
US7609672B2 (en) Method and apparatus for automatic sub-division of areas that flood routing information
JP6047229B2 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US7660320B2 (en) Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
KR101604970B1 (en) Finding services in a service-oriented architecture(soa) network
TW200803303A (en) Inter-proximity communication within a rendezvous federation
US8732338B2 (en) Mesh network bridge routing
TWI599201B (en) Network system and method for establishing data connection
Tariq et al. Efficient content-based routing with network topology inference
Cugola et al. Content-Based Publish–Subscribe in a Mobile Environment
JP5078034B2 (en) Communication device, P2P network construction method, program, and recording medium
US7848339B2 (en) Data communication apparatus, method for its network configuration, and computer readable recording medium storing its program
Pant et al. DTN overlay on OLSR network
JP2006171917A (en) Protocol for radio multi-hop ad hoc network
KR100696206B1 (en) Resource search method for peer to peer application
Li et al. Topology mismatch avoidable cross-layer protocol for P2P file discovery in MANETs
Li et al. Analyzing and optimizing Skype peer-to-peer system
Silas et al. Evaluating chord over a hierarchical MANET
KR20110003210A (en) Method for self configuring sensor network
Sinha Comparison of MANET Routing Protocols in Peer-to-Peer Networks
Jin et al. TCMM: hybrid overlay strategy for P2P live streaming services
Schildt et al. NASDI–Naming and Service Discovery for DTNs in Internet Backbones
Cheng et al. Utilizing the broadcast medium while maintaining per-link information: A practical approach
Leclerc Contributions for advanced service discovery in ad hoc networks
Bo Optimizing the network topology in gnutella p2p networks
Ghodsi Multicast and bulk lookup in structured overlay networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111014

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120807

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

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

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

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5078034

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees