Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4319486B2 - Communication network system - Google Patents
[go: Go Back, main page]

JP4319486B2 - Communication network system - Google Patents

Communication network system Download PDF

Info

Publication number
JP4319486B2
JP4319486B2 JP2003278237A JP2003278237A JP4319486B2 JP 4319486 B2 JP4319486 B2 JP 4319486B2 JP 2003278237 A JP2003278237 A JP 2003278237A JP 2003278237 A JP2003278237 A JP 2003278237A JP 4319486 B2 JP4319486 B2 JP 4319486B2
Authority
JP
Japan
Prior art keywords
node
nodes
overlay network
representative
communication
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
JP2003278237A
Other languages
Japanese (ja)
Other versions
JP2005045591A (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.)
SUNNET CO., LTD.
Original Assignee
SUNNET 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 SUNNET CO., LTD. filed Critical SUNNET CO., LTD.
Priority to JP2003278237A priority Critical patent/JP4319486B2/en
Publication of JP2005045591A publication Critical patent/JP2005045591A/en
Application granted granted Critical
Publication of JP4319486B2 publication Critical patent/JP4319486B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、通信ネットワークシステムに関し、詳しくは、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムに関する。   The present invention relates to a communication network system, and more particularly, by constructing a symmetric overlay network having a plurality of nodes on an IP network, bidirectional communication between any of the nodes in the symmetric overlay network is performed. The present invention relates to a communication network system that is enabled via a network.

現在、現行のIPネットワーク(その一例として、例えばインターネット)は、WAN(Wide Area Network)において、アドレッサブルなサーバマシンに各クライアントマシンが接続されることによって、初めてクライアントマシン間でのデータ授受が可能になる。つまり、サーバマシンとクライアントマシンの役割が明確に分かれているという意味において、IPネットワークは「非対称」である。IPネットワークのこの非対称性は、LAN(Local Area Network)での運用では発生せず、WANでの運用において発生するものである。要するに、IPネットワークはWANにおいて対称性が破れていると考えることができる。   Currently, the current IP network (for example, the Internet) can be used for the first time in the WAN (Wide Area Network) by connecting each client machine to an addressable server machine. Become. In other words, the IP network is “asymmetric” in the sense that the roles of the server machine and the client machine are clearly separated. This asymmetry of the IP network does not occur in operation in a LAN (Local Area Network) but occurs in operation in a WAN. In short, it can be considered that the symmetry of the IP network is broken in the WAN.

ところで、IPネットワークのWANでの利用が普及するに従って、グローバルなIPアドレスを有し、グローバルにアドレッサブルなマシンを、必ずしもグローバルにアドレッサブルとは限らないマシンから利用する、という形態が広がりつつある。例えば、WWWの閲覧を行う場合、コンテンツはグローバルにアドレッサブルなマシン上にあり、それを、家庭などのパソコンからIPプロバイダ経由でアクセスするといった形態がその一例である。逆に、家庭などのパソコン側にHTTPサーバを配置して外部からのアクセスを受け付けることは次の理由から非常に困難である。まず、理由その一は、一般的には家庭内のパソコンはグローバルにアドレッサブルではない。理由その二は、家庭内のパソコンを外部からの接続に耐えるほどセキュアに保つのが困難である。   By the way, as the use of the IP network in the WAN becomes widespread, a form of using a globally addressable machine having a global IP address from a machine that is not necessarily globally addressable is spreading. For example, when browsing the WWW, the content is on a globally addressable machine, and the form is accessed from a personal computer such as a home via an IP provider. On the other hand, it is very difficult to arrange an HTTP server on the personal computer side such as a home and accept external access for the following reasons. First, one reason is that in general, personal computers at home are not globally addressable. The second reason is that it is difficult to keep the personal computer in the home secure enough to withstand external connections.

上述したような理由から、現在、IPネットワークのWANでの利用は非対称であり、サーバマシンとクライアントマシンの役割や運用方法は明確に区別されている。従って、こうした状況では、家庭間あるいは企業間でパソコン同士を接続してLANと同様の恩恵を被るのは不可能である。   For the reasons described above, the use of the IP network in the WAN is currently asymmetric, and the roles and operation methods of the server machine and the client machine are clearly distinguished. Therefore, in such a situation, it is impossible to connect PCs between households or between companies and receive the same benefits as a LAN.

つまり、現在のインターネットの問題点として、次のようなことが挙げられる。
(1)限られたサーバを介してしか情報流通が行われないので、家庭同士の情報交流或いは企業間のワークグループ支援に利用するのが困難である。
(2)コンテンツを作るよりもサーバ環境を構築・維持管理するのが大変である。
(3)ファイアウォールの有無・種類やグローバルIPアドレスの有無などにより、接続可能性が左右されるので、既存の優れたプロトコルが容易に利用できない。
(4)一般的には、ブロードキャストとマルチキャストを利用することができない。
(5)セキュリティ、匿名通信、課金、QoSを実現するために、膨大なコストがかかる。
(6)サーバへの負荷集中が全体のスループットを落している。
In other words, the current Internet problems include the following.
(1) Since information is distributed only through a limited server, it is difficult to use for information exchange between households or workgroup support between companies.
(2) Building and maintaining a server environment is more difficult than creating content.
(3) Since the possibility of connection depends on the presence / absence / type of a firewall and the presence / absence of a global IP address, existing excellent protocols cannot be easily used.
(4) Generally, broadcast and multicast cannot be used.
(5) Enormous costs are required to realize security, anonymous communication, billing, and QoS.
(6) Concentration of load on the server reduces the overall throughput.

一方、近年、例えばADSLやFTTHなどのWANでの低価格な高帯域通信サービスが普及し、個人端末として多く使用されているパソコンの処理能力も著しく向上して来たため、従来の非対称型の接続形態を維持することは無意味になりつつあり、よって、WAN上での対称型接続を可能にする、つまり、P2P(peer-to-peer)と呼ばれる技術も普及しつつある。このP2P技術の利点として、次のようなことが挙げられる。   On the other hand, in recent years, low-priced high-bandwidth communication services such as ADSL and FTTH have become widespread, and the processing capacity of personal computers that are often used as personal terminals has been remarkably improved. Maintaining the form is becoming meaningless, and thus a technology that enables symmetric connection on the WAN, that is, P2P (peer-to-peer) is also becoming popular. Advantages of this P2P technology include the following.

まず、ファイアウォール内、グローバルIPアドレスなしでもネットワークに接続し、ファイルやデータ及び計算をサービスできる。次に、能力の小さなマシンからでも、数千、数万のマシンにストリーミング・サービスが可能である。ネームサービス、ファイアウォールなど難解な設定やサーバの管理が不要であるため、使い易い。また、通常のインターネットクラッキングの脅威が及ばないので、安全である。インターネットブロードキャスト通信による強力な検索能力を有する。インターネットマルチキャスト通信によるグループ活動支援ができる。更に、アプリケーションサーバの運用管理が不要である。   First, you can connect to the network without a global IP address in the firewall and service files, data, and calculations. Second, streaming services can be provided to thousands and tens of thousands of machines even from machines with small capabilities. It is easy to use because it does not require difficult settings such as name service and firewall and server management. In addition, it is safe because it does not pose a threat of normal Internet cracking. It has a powerful search capability by Internet broadcast communication. Supports group activities via Internet multicast communication. Furthermore, operation management of the application server is unnecessary.

現行のP2P技術の具体例として、例えば「Gnutella」、「Napster」、「Internet Relay Chat」といったP2P技術を利用したアプリケーションがある(非特許文献1参照)。
伊藤直樹著、「P2Pコンピューティング〜技術解説とアプリケーション〜」、第1版、株式会社ソフト・リサーチ・センター、2001年11月
As specific examples of the current P2P technology, there are applications using the P2P technology such as “Gnutella”, “Napster”, and “Internet Relay Chat” (see Non-Patent Document 1).
Ito Naoki, “P2P Computing -Technical Explanation and Applications-”, 1st Edition, Soft Research Center, November 2001

例えば、「Gnutella」とは、様々なフォーマットのファイル交換が可能な初期のP2Pソフトウェアであるが、それ以外の計算処理や遠隔操作が不可能といった欠点を有する。「Gnutella」はサーバレスタイプの純P2Pソフトウェアの代表格であるが、ファイル交換という機能以上のものではない。   For example, “Gnutella” is an early P2P software capable of exchanging files of various formats, but has a drawback that other calculation processing and remote operation are impossible. “Gnutella” is a typical serverless type pure P2P software, but it is not more than a file exchange function.

また、「Internet Relay Chat」とは、メッセージ交換やファイル交換などの機能を持つサーバ利用タイプのP2Pソフトウェアである。いずれも、目的とするアプリケーション依存型で、そのアプリケーションを外れた、ネートワーク(インターネット)上でのデータ処理や計算処理ができないといった欠点を有する。   “Internet Relay Chat” is server-use type P2P software having functions such as message exchange and file exchange. Each of them has a drawback that it is a target application-dependent type and cannot perform data processing or calculation processing on the network (Internet) outside the application.

本発明は上述のような事情に鑑みてなされたものであり、本発明の目的は、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムを提供することにある。   The present invention has been made in view of the above circumstances, and an object of the present invention is to construct an arbitrary symmetric overlay network in the symmetric overlay network by constructing a symmetric overlay network having a plurality of nodes on the IP network. Another object of the present invention is to provide a communication network system that enables two-way communication between the nodes via the IP network.

本発明は、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムに関し、本発明の上記目的は、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムであって、前記対称型オーバレイネットワークは、全てのノードがn進分類木として論理的に接続されており、前記ノードが自身を特定するための一意的の識別子を持っており、前記ノードの前記識別子をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定されるようになっており、前記ノードの基本的な接続数はn+1であり、前記ノード間はIPトランスポート層によって接続されるようにすることによって達成される。   The present invention provides a communication that enables bidirectional communication between any of the nodes in the symmetric overlay network by constructing a symmetric overlay network having a plurality of nodes on the IP network. With respect to a network system, the above object of the present invention is to establish bidirectional communication between any of the nodes in the symmetric overlay network by constructing a symmetric overlay network having a plurality of nodes on the IP network. A symmetric overlay network in which all nodes are logically connected as an n-ary classification tree, and a unique identifier for the node to identify itself And the identifier of the node By interpreting as a base number, adjacent nodes to be connected to each other are determined autonomously, the basic number of connections of the nodes is n + 1, and the nodes are connected by the IP transport layer Is achieved by doing so.

また、本発明の上記目的は、前記対称型オーバレイネットワークにおいて、あるノードから任意のノードへ向かう中継ノードを必ず2ルート接続確立しておくようにし、前記中継ノードは代表ノードと副代表ノードとから構成されるようにすることにより、或いは、前記対称型オーバレイネットワークは、P2Pネットワーキングプロトコルモジュール部と、P2Pトランスポートモジュール部と、P2Pルーティングテーブルモジュール部と、P2Pルーティングアルゴリズムモジュール部と、P2Pリンク通信モジュール部と、コールバック管理/実行モジュール部とを備えることにより、或いは、前記対称型オーバレイネットワークにおいて、各ノードは少なくとも正副2本の接続を持っており、そのどちらかの切断を検知すると、すぐにもう1本の接続を獲得するようにすることにより、或いは、前記対称型オーバレイネットワークは、パケットを中継する「ルータノード」と、パケットを中継せず、利用者が操作するアプリケーションが稼働する「リーフノード」と、新規参入ノードが前記対称型オーバレイネットワークに参入する際に仲介し、前記新規参入ノードの接続すべき隣接ノードを教える「エントリポイント」とから構成されるようにすることにより、或いは、前記オーバレイネットワークでは、予め知られているノード以外のノードの参入を排除できるように、前記「エントリポイント」で適切なフィルタリングを行うようにすることにより、或いは、前記代表ノードが前記対称型オーバレイネットワークから離脱した場合は、前記副代表ノードが前記代表ノードになり、そして、自分が副代表として知っているノードの中から新たな副代表を選出するようにすることにより、或いは、前記IPトランスポート層として、TCP、又はreliable
UDPを用いることによってより効果的に達成される。
The above object of the present invention is to make sure that a two-route connection is established for a relay node from a certain node to an arbitrary node in the symmetric overlay network, and the relay node includes a representative node and a sub-representative node. Alternatively, the symmetric overlay network includes a P2P networking protocol module unit, a P2P transport module unit, a P2P routing table module unit, a P2P routing algorithm module unit, and a P2P link communication module. And a callback management / execution module unit, or in the symmetric overlay network, each node has at least two primary and secondary connections. Or the symmetric overlay network operates a “router node” that relays a packet and an application that is operated by a user without relaying the packet. A leaf node and an entry point that mediates when a new entry node enters the symmetric overlay network and teaches an adjacent node to which the new entry node is connected, or In the overlay network, appropriate filtering is performed at the “entry point” so that entry of nodes other than nodes known in advance can be eliminated, or the representative node is connected to the symmetric overlay. When leaving the network, the secondary representative node It becomes de, and by so they elect a new vice president from among the nodes that know as deputy, or as the IP transport layer, TCP, or reliable
It is more effectively achieved by using UD P.

従来のIPネットワークにおいては、どんなノードでも、IPプロバイダと契約する、或いはWANに接続されたLANに接続する、という最低限の条件が整えば、ネットワークに参入し、グローバルにアドレッサブルな他のノードに対するクラッキングを試みることが可能となる。これに対し、本発明に係る通信ネットワークシステムにおいて、対称型オーバレイネットワーク(SON)では、エントリポイントで適切なフィルタリングを行うことによって、予め知られているノード以外のノード参入を排除することができるので、従って、本発明の対称型オーバレイネットワーク(SON)は、従来のIPネットワークよりもセキュアな運用が可能となるという顕著な効果を奏する。   In a conventional IP network, if any node has a minimum requirement of contracting with an IP provider or connecting to a LAN connected to a WAN, it will join the network and It is possible to try cracking. On the other hand, in the symmetric overlay network (SON) in the communication network system according to the present invention, it is possible to eliminate entry of nodes other than previously known nodes by performing appropriate filtering at the entry point. Therefore, the symmetric overlay network (SON) of the present invention has a remarkable effect that it can operate more securely than the conventional IP network.

本発明に係る通信ネットワークシステムは、アプリケーション機能とネットワーク機能を完全に分離することによって実現された、インターネットなどのWAN上の多目的かつ汎用の通信ソフトウェアである。従来の他の多くのP2Pソフトウェアがアプリケーション依存型であるのに対し、本発明の通信ネットワークシステムは、あらゆるプロトコル、あらゆるアプリケーションを通し、かつ遠隔ネットワーク上で計算処理などのリモート複合処理機能が可能になる汎用の通信基盤を提供する。そのため、本発明の通信ネットワークシステムは様々な既存の通信アプリケーションプロトコルをトンネリングすることができるという優れた効果を奏する。   The communication network system according to the present invention is multipurpose and general-purpose communication software on a WAN such as the Internet, which is realized by completely separating application functions and network functions. While many other conventional P2P software is application-dependent, the communication network system of the present invention enables remote complex processing functions such as computation processing on any network through any protocol and any application. Provide a general-purpose communication infrastructure. Therefore, the communication network system of the present invention has an excellent effect that various existing communication application protocols can be tunneled.

このような機能を実現する本発明は世界初で独自のものであることは言うまでもない。   Needless to say, the present invention for realizing such a function is the world's first and unique.

本発明の通信ネットワークシステムにおいて、対称型オーバレイネットワークが自律的に構築されていき、そして、自律的に対称型オーバレイネットワークのルーティングが可能であり、トランスポート通信層を提供する。本発明において、対称型オーバレイネットワークを多目的に利用することが可能で、任意のIPアプリケーション・パケットを送受信することができる。   In the communication network system of the present invention, a symmetric overlay network is autonomously constructed, and the symmetric overlay network can be autonomously routed to provide a transport communication layer. In the present invention, a symmetrical overlay network can be used for multiple purposes, and an arbitrary IP application packet can be transmitted and received.

以下、本発明の好適な実施形態について図面を参照しながら詳細に説明する。   DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments of the invention will be described in detail with reference to the drawings.

本発明に係る通信ネットワークシステムは、IPネットワーク(その好適例として、例えばインターネット)上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にした通信ネットワークシステムである。   A communication network system according to the present invention constructs a symmetric overlay network having a plurality of nodes on an IP network (preferably, for example, the Internet), so that any of the nodes in the symmetric overlay network is connected. It is a communication network system that enables bidirectional communication via the IP network.

本発明では、LAN環境におけるIPネットワークと同程度に対称的なトランスポート層を既存のIPネットワーク上にオーバレイさせることで対称型WANを構築するようにしている。本発明に係る通信ネットワークシステムは、P2Pネットワーキングのためのトランスポート層(つまり、自律型オーバレイネットワークに基づく対称型トランスポート層)をも提供する。本発明の最大の特徴とは、従来のクライアント/サーバ型通信プロトコルを対称型オーバレイネットワーク(以下、P2Pオーバレイネットワークとも称する)でトンネリングすることにより、プログラミングレスで対称型コンピューティング環境(以下、P2Pコンピューティング環境とも称する)を可能にすることである。   In the present invention, a symmetric WAN is constructed by overlaying an existing IP network with a transport layer that is as symmetric as an IP network in a LAN environment. The communication network system according to the present invention also provides a transport layer for P2P networking (ie, a symmetric transport layer based on an autonomous overlay network). The greatest feature of the present invention is that a conventional client / server communication protocol is tunneled through a symmetric overlay network (hereinafter also referred to as a P2P overlay network), so that a programming-less symmetric computing environment (hereinafter referred to as a P2P computing network). (Also referred to as a storage environment).

本発明に係る通信ネットワークシステムにおいて、IPネットワーク上に構築されるP2PオーバレイネットワークによるWAN対称性は、以下のように実現される。   In the communication network system according to the present invention, WAN symmetry by the P2P overlay network constructed on the IP network is realized as follows.

まず、WANにおけるIPネットワークの「対称性の破れ」は、次の違いとして定義できる。まず、LANにおいては、ノードの参入と共に、ノードのアドレッサビリティが実現される。次に、WANにおいては、ノードがネットワークに参入しても、アドレッサブルになるとは限らない。   First, “symmetry breaking” of an IP network in a WAN can be defined as the following difference. First, in a LAN, node addressability is realized with the entry of a node. Next, in the WAN, even if a node enters the network, it is not always addressable.

従って、ノードを参入させると、そのノードがアドレッサブルになるネットワークをIPネットワークの上に実現すれば良い。一般に、既存のネットワーク上に仮想的に構築されるネットワークは「オーバレイネットワーク」と呼ばれる。従って、本発明の主な特徴としては、IPネットワーク上に対称型オーバレイネットワークを構築することである。   Therefore, when a node is entered, a network in which the node becomes addressable may be realized on the IP network. In general, a network virtually constructed on an existing network is called an “overlay network”. Therefore, the main feature of the present invention is to construct a symmetric overlay network on the IP network.

本発明に係る通信ネットワークシステムにおいて、複数のノードから構成される対称型オーバレイネットワークをSONとも呼ぶ。対称型オーバレイネットワーク(SON)では、IPアドレスに代わるものとして、各ノードの識別子には128ビットのuuid(つまり、Universally Unique Identifierで、UUIDとも称する)を用いる。uuidはノードを初回に起動した際に、各ノードが算出するものである。   In the communication network system according to the present invention, a symmetric overlay network composed of a plurality of nodes is also called SON. In the symmetric overlay network (SON), as an alternative to the IP address, a 128-bit uuid (that is, a universally unique identifier, also referred to as a UUID) is used as the identifier of each node. The uuid is calculated by each node when the node is activated for the first time.

具体的に、対称型オーバレイネットワークは、パケットを中継する「ルータノード」(以下中継ノードとも称する)と、パケットを中継せず、利用者が操作するアプリケーションが稼働する「リーフノード」と、新規ノードが対称型オーバレイネットワークに参入する際に仲介し、接続すべき隣接ノードを教える「エントリポイント」とから構成される。   Specifically, a symmetric overlay network includes a “router node” (hereinafter also referred to as a relay node) that relays a packet, a “leaf node” that does not relay a packet and an application operated by a user, and a new node. Consists of “entry points” that mediate when entering a symmetric overlay network and teach neighboring nodes to be connected.

対称型オーバレイネットワークにおいて、各ノードは識別子を持っており、その識別子(つまり、uuid)をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定される。また、対称型オーバレイネットワークにおいて、各ノードは最低正副2本の接続を持っており、そのどちらかの切断を検知すると、すぐにもう1本の接続を獲得するようになっている。   In a symmetric overlay network, each node has an identifier. By interpreting the identifier (that is, uuid) as an n-ary number, adjacent nodes to be connected to each other are autonomously determined. In a symmetric overlay network, each node has at least two primary and secondary connections, and when one of the connections is detected, another connection is acquired immediately.

新規ノードが自分のuuidを「エントリポイント」と呼ばれるグローバルにアドレッサブルなノードに提示すると、対称型オーバレイネットワーク(SON)は、最悪2p−1のホップ数でグローバルにアドレッサブルな最近接ノードを紹介し、新規ノードは紹介された最近接ノードとの間にIPトランスポート接続を確立する。ここで、p=LogNという式が成立する。ただし、Nは対称型オーバレイネットワークの全ノード数で、nは後述するn進分類木のnである。 When a new node presents its uuid to a globally addressable node called an “entry point”, the symmetric overlay network (SON) introduces the globally addressable nearest node with the worst 2p-1 hop count, The new node establishes an IP transport connection with the introduced closest node. Here, the equation p = Log n N holds. Here, N is the total number of nodes in the symmetric overlay network, and n is n in the n-ary classification tree described later.

基盤となるIPトランスポート接続の候補として、好適に、TCP、reliable UDP(つまり、UDPを用いながら順序保証、到達保証(再送)を行なうようにする仕組みである)、HTTPが用いられる。以降、そのIPトランスポート接続は、TCPの永続的接続、或いは、UDP上でパルス信号を用いた擬似接続として維持され、新規ノードへ(から)の全てのパケットは、そのIPトランスポート接続を経由して最悪2p−1のホップ数で、他の任意のノードから(に)到達することとなる。従って、ノードは一旦対称型オーバレイネットワークに接続すると、それが仮にIPネットワークにおいてグローバルにアドレッサブルでなくても、対称型オーバレイネットワーク(SON)上ではuuidを介してグローバルにアドレッサブルとなる。   TCP, reliable UDP (that is, a mechanism for performing order guarantee and arrival guarantee (retransmission) using UDP), and HTTP are preferably used as candidates for the IP transport connection as a base. Thereafter, the IP transport connection is maintained as a TCP permanent connection or a pseudo connection using a pulse signal over UDP, and all packets to (from) the new node are routed through the IP transport connection. Thus, it is reached from any other node with the worst hop count of 2p-1. Therefore, once a node connects to a symmetric overlay network, it becomes globally addressable via uuid on the symmetric overlay network (SON) even if it is not globally addressable in the IP network.

前述した通り、ノードとノードを結ぶ接続は、1つのIPトランスポート接続であるから、ノードが複数の通信サービスのパケットを産出/消費/中継する場合に、それらの通信の各々は多重化(multiplexing)される必要がある。対称型オーバレイネットワーク(SON)上のアプリケーションは、SON上で提供されるバーチャルサーキット(以下、チャネル(channel)と呼ぶ)をあたかもIPネットワークにおけるソケットとして利用するため、本発明に係る通信ネットワークシステムにおいて、多重化機構の存在を意識することは全く必要がない。   As described above, since the connection between nodes is a single IP transport connection, when a node produces / consumes / relays packets of a plurality of communication services, each of those communications is multiplexed. ) Need to be done. The application on the symmetric overlay network (SON) uses a virtual circuit (hereinafter referred to as a channel) provided on the SON as a socket in the IP network. Therefore, in the communication network system according to the present invention, There is no need to be aware of the existence of the multiplexing mechanism.

次に、本発明において、対称型オーバレイネットワーク(SON)を実装する上での問題点及びその解決方法を述べる。
<1>頑健性の実現
前述したように、ノード間の接続を1つのIPトランスポート接続としたが、これでは例えばノードA→ノードB→ノードCという接続において、ノードBが対称型オーバレイネットワークから離脱してしまうと、ノードAからノードCへのパケットも到達しなくなってしまうという問題が生じる。そこで、ノードAから例えばノードCのような任意の宛先ノードへ向かう中継ノードを必ず2つの接続(例えば、ノードBとの接続だけでなく、ノードDとの接続も)を確立しておくようにする。
Next, problems in implementing a symmetrical overlay network (SON) in the present invention and a solution to the problem will be described.
<1> Realization of robustness As described above, the connection between the nodes is a single IP transport connection. However, in this connection, for example, in the connection of node A → node B → node C, node B is removed from the symmetric overlay network. If it leaves, the problem that the packet from the node A to the node C will not reach | attain will arise. Therefore, two connections (for example, not only the connection with the node B but also the connection with the node D) are always established for the relay node from the node A to the arbitrary destination node such as the node C. To do.

このとき、ノードBが対称型オーバレイネットワークから離脱したら、直ちにノードDに加え、新たにノードEとも接続確立することが必要である。本発明において、1つのノードに対して2つの接続を確保するような条件を対称型オーバレイネットワーク(SON)における「頑健性条件」と呼ぶ。これらの中継ノード(例えばノードB、ノードD、ノードE)が、実際にどのように決定されるかは後述する。
<2>ノードの参入及び離脱に伴うルーティングテーブルの管理
対称型オーバレイネットワーク(SON)において、ノードはn進分類木として論理的に接続されている。従って、ノードの基本的な接続数はn+1である。ただし、前述の頑健性条件に従って更に付加的な接続が必要となる。
At this time, if node B leaves the symmetric overlay network, it is necessary to establish connection with node E in addition to node D immediately. In the present invention, a condition that secures two connections to one node is called a “robustness condition” in a symmetric overlay network (SON). How these relay nodes (for example, node B, node D, and node E) are actually determined will be described later.
<2> Management of Routing Table with Node Entering and Exiting In a symmetric overlay network (SON), nodes are logically connected as an n-ary classification tree. Therefore, the basic number of nodes is n + 1. However, additional connections are required according to the robustness conditions described above.

本発明に係る通信ネットワークシステムおいて、対称型オーバレイネットワーク(SON)の構成要素(つまり、ノード)には、その識別子として、1つのユニークなn進数(つまりuuid)が割り当てられる。対称型オーバレイネットワーク(SON)は、このn進分類木を物理的接続(TCPの永続的接続、又は、UDP上でパルス信号を用いた擬似接続)と、個々のノードが持つ「部分的n進分類木(つまり、ルーティングテーブル)」で表現する。   In the communication network system according to the present invention, a unique n-ary number (that is, uuid) is assigned as an identifier to a component (that is, a node) of a symmetric overlay network (SON). The symmetric overlay network (SON) uses this n-ary classification tree as a physical connection (permanent connection of TCP or pseudo connection using a pulse signal on UDP) and “partial n-ary” that each node has. It is expressed as “classification tree (ie, routing table)”.

図1は、本発明に係る通信ネットワークシステムの対称型オーバレイネットワークの論理構成(n進分類木)を示す模式図である。本発明の対称型オーバレイネットワークの論理構成は、前述したように、n進数を階層化して構成されたn進分類木によって表している。   FIG. 1 is a schematic diagram showing a logical configuration (n-ary classification tree) of a symmetric overlay network of a communication network system according to the present invention. As described above, the logical configuration of the symmetric overlay network according to the present invention is represented by an n-ary classification tree formed by hierarchizing n-ary numbers.

図1は、nが3である場合、つまり3進数を階層化して構成された3進分類木を表している。図1において、[]内の数字はノードの識別子であるuuidの3進数表示であり、ルートノード(本例では、ノード2100)は、1桁目全てに合致するノード(つまり、対称型オーバレイネットワークの全ノード)の代表である。また、レベル2の3つのノード(本例では、ノード0002、ノード2100、ノード1211)は、1桁目がそれぞれ0、1、2の全てのノードの代表となっている。つまり、本発明において、対称型オーバレイネットワークは、レベル数と等しい桁の数値におけるn進分類木として構成されている。   FIG. 1 shows a ternary classification tree formed by hierarchizing ternary numbers when n is three. In FIG. 1, the numbers in [] are ternary representations of uuid, which is the node identifier, and the root node (node 2100 in this example) is a node that matches all the first digits (that is, a symmetric overlay network). Of all nodes). In addition, the three nodes at level 2 (in this example, node 0002, node 2100, and node 1211) are representative of all nodes whose first digit is 0, 1, and 2, respectively. In other words, in the present invention, the symmetric overlay network is configured as an n-ary classification tree with numerical values equal to the number of levels.

本発明の対称型オーバレイネットワークにおいて、レベルLにおいてL桁目が等しいn個のノードのうちのどれか1つは、必ずL−1の代表に対する副代表となっており、代表ノードが離脱した場合は新たな代表となり、自分が副代表として知っているノードの中から新たな副代表を選出することにより、前述した頑健性条件を満足させる。この頑健性条件を満足する分類木を「分類代表木」と呼ぶ。   In the symmetric overlay network of the present invention, any one of the n nodes having the same L-th digit at level L is always a sub-representative for the L-1 representative, and the representative node leaves Becomes a new representative, and satisfies the robustness condition described above by selecting a new representative from among the nodes that he / she knows as the representative. A classification tree that satisfies this robustness condition is called a “classification representative tree”.

更に、図1において、あるノードと実線及び破線で結ばれるすべてのノードを「隣接ノード」という。また、隣接ノードを含むクラスを「隣接クラス」という。更に、実線で直接結ばれる上位ノードと下位ノードは「親子関係にある」という。図1から分かるように、例えば、ノード1210の親はノード2100である。Postfix(末尾共通部)‘*0’といった分類(クラスとも称する)について、クラス‘*0’の代表(R)はノード2100で、クラス‘*0’の副代表(r)はノード1210で、また、クラス‘*0’の親クラスは‘*’で、クラス‘*0’の子クラスは、‘*00’、‘*10’及び‘*20’である。   Further, in FIG. 1, all nodes connected to a certain node by solid lines and broken lines are referred to as “adjacent nodes”. A class including an adjacent node is referred to as an “adjacent class”. Furthermore, an upper node and a lower node directly connected by a solid line are said to be “parent-child relationship”. As can be seen from FIG. 1, for example, the parent of the node 1210 is the node 2100. For a classification (also referred to as a class) such as Postfix (tail common part) '* 0', the representative (R) of class '* 0' is node 2100, and the sub-representative (r) of class '* 0' is node 1210. Further, the parent class of the class “* 0” is “*”, and the child classes of the class “* 0” are “* 00”, “* 10”, and “* 20”.

対称型オーバレイネットワーク(SON)におけるパケットのルーティングは、図1に示されたようなn進分類木(本例では、3進分類木)を辿ることで行われる。従って、ノード0020からノード0002へのユニキャスト通信パケットは、ノード2100はノード0020にとって、レベル2及びレベル1における代表ノードであるため、ノード2100を経由してノード0002に届くことになる。また、ブロードキャストのルーティングは分類木上で、up*/down*アルゴリズムにより行われる。   Packet routing in a symmetric overlay network (SON) is performed by following an n-ary classification tree (in this example, a ternary classification tree) as shown in FIG. Therefore, the unicast communication packet from the node 0020 to the node 0002 reaches the node 0002 via the node 2100 because the node 2100 is the representative node at the level 2 and the level 1 for the node 0020. Broadcast routing is performed on the classification tree by the up * / down * algorithm.

対称型オーバレイネットワーク(SON)の各ノードは、この分類代表木のうちの、自分が直接接続しているノードに関係する部分木を分散管理する。つまり、対称型オーバレイネットワーク(SON)におけるルーティングテーブルは、分類代表木の部分的n進分類木である。図1の例において、ノード2100は、ノード2100、ノード1211、ノード0002を含む部分的3進分類木を管理するようになっている。対称型オーバレイネットワーク(SON)において、ノードの参入及び離脱は、関連するノードが相互に必要最低限の通信を行いながら自律的に分散分類代表(部分)木を維持するアルゴリズムに帰着するようになっている。
<3>ダイナミックな構成変更(ノードの参入と離脱)におけるデッドロック及び循環の回避
例えば、任意のタイミングでのノードの離脱/参入を許す対称型オーバレイネットワークにおいては、次の問題が発生する。
(1)ルーティングテーブル(分類代表部分木)のメンテナンスのために必要な接続確立の見え方が、ノードによって一様ではない。つまり、僅かな時間差で、未接続に見えたり接続済に見えたり、或いは、未切断に見えたり切断済に見えたりすることが発生する。このとき、接続の確立/切断の認知を同期させようとすると、デッドロックが発生する。
(2)ルーティングテーブル維持プロトコルを含む全ての通信において、ルーティングテーブルの更新状況が僅かな時間差でノードによって異なる。このことはパケットの循環を引き起こす。
Each node of the symmetric overlay network (SON) distributes and manages a subtree related to a node to which the node is directly connected in the classification representative tree. That is, the routing table in the symmetric overlay network (SON) is a partial n-ary classification tree of the classification representative tree. In the example of FIG. 1, the node 2100 manages a partial ternary classification tree including the node 2100, the node 1211, and the node 0002. In a symmetric overlay network (SON), the entry and exit of a node results in an algorithm in which related nodes autonomously maintain a distributed classification representative (partial) tree while performing the minimum necessary communication with each other. ing.
<3> Avoiding deadlock and circulation in dynamic configuration change (node entry and departure) For example, in a symmetric overlay network that allows node leave / join at an arbitrary timing, the following problem occurs.
(1) The appearance of connection establishment necessary for maintenance of the routing table (classification representative subtree) is not uniform among nodes. That is, with a slight time difference, it may appear unconnected or connected, or it may appear unconnected or disconnected. At this time, if it is attempted to synchronize the recognition of connection establishment / disconnection, a deadlock occurs.
(2) In all communications including the routing table maintenance protocol, the update status of the routing table differs depending on the node with a slight time difference. This causes packet cycling.

まず、デッドロックを回避するために、本発明では「遅延接続」という実装方法を導入した。これはプログラミングレベルにおいては時間差を意識せずにプロトコルを実装しておき、通信層が実際の接続が行われるのを待って、パケットの送信を行う、というものである。このことにより、プログラミングからは、デッドロックを引き起こす同期を排除できる。実際の接続確立は、IPトランスポート層におけるソケットのacceptが行われた際に通信層が検知する。   First, in order to avoid deadlock, an implementation method called “delayed connection” is introduced in the present invention. In the programming level, the protocol is implemented without being aware of the time difference, and the packet is transmitted after the communication layer waits for the actual connection. This eliminates the synchronization that causes the deadlock from programming. The actual connection establishment is detected by the communication layer when the socket is accepted in the IP transport layer.

次に、パケット循環の回避は、自分のルーティングテーブルに基づいて、パケットの循環が発生するか否かのチェックを各ノードが行うことにより行う。循環を検知した場合に、ノードは1バージョン前のルーティングテーブルを利用してルーティングを行うようにする。
<4>単一接続内の多重化に伴うQoS(Quality of Service)上の問題
上述したように、対称型オーバレイネットワーク(SON)において、ノードが複数の通信サービスのパケットを産出/消費/中継する場合、それらの通信の各々は1つのIPトランスポート接続上で多重化されている。Telnet、http、rfbp(virtual network computingにおいて用いられているプロトコル)など一般のプロトコルにおいては、クライアント(またはサーバ)におけるパケットの単位時間当りの産出量とサーバ(またはクライアント)におけるパケットの消費量は等しい。
Next, avoidance of packet circulation is performed by each node checking whether or not packet circulation occurs based on its own routing table. When the circulation is detected, the node performs routing using the routing table one version before.
<4> QoS (Quality of Service) problems associated with multiplexing within a single connection As described above, in a symmetric overlay network (SON), a node produces / consumes / relays packets of a plurality of communication services. In that case, each of those communications is multiplexed over one IP transport connection. In general protocols such as Telnet, http, and rfbp (protocols used in virtual network computing), the output per unit time of packets at the client (or server) and the consumption of packets at the server (or client) are equal. .

しかしながら、一部のストリーミング・サービスにおいては、産出量が消費量を大きく上回る。つまり、産出側は書き出せる限り書き出すものの、消費側は一定の速度でしか消費を行わない。この種のパケットが一般のプロトコルが共有する通信路に流れると、他のサービスの実行を阻害したり、或いは一般のプロトコルのパケットの大量混入によってストリーミング・サービスが続行不可能になったりするといった問題が起こる。   However, in some streaming services, output is much higher than consumption. In other words, while the output side writes as much as possible, the consumption side consumes only at a constant rate. When this type of packet flows on a communication path shared by a general protocol, the execution of other services may be hindered, or the streaming service may not be able to continue due to a large amount of general protocol packets being mixed. Happens.

本発明において、このような問題を回避するためには、ストリーミング・サービスが必要とする帯域の下限値をやや上回る程度でパケットが流れるように、通信路を共有する全プロトコルの流率制限を行うようにしている。   In the present invention, in order to avoid such a problem, the flow rate of all protocols sharing the communication path is limited so that the packet flows at a level slightly exceeding the lower limit value of the bandwidth required for the streaming service. I am doing so.

図2は、図1に示された対称型オーバレイネットワークの物理構成を示す模式図である。図2において、例えば、ノード2220の場合、矢印で示された枠に書いてあるように、「‘*20’のクラス」を「‘*220’のクラス」の親クラスと言い、また、「‘*220’のクラス」を「‘*20’のクラス」の子クラスと言う。   FIG. 2 is a schematic diagram showing a physical configuration of the symmetric overlay network shown in FIG. In FIG. 2, for example, in the case of the node 2220, “class of“ * 20 ”” is referred to as a parent class of “class of“ * 220 ””, as indicated in a frame indicated by an arrow, and “ “Class of“ * 220 ”” is called a child class of “class of“ * 20 ””.

図3(A)及び図3(B)は、本発明において、ノードの対称型オーバレイネットワークへの参入を表す模式図である。詳細に、図3(A)は、ノードの対称型オーバレイネットワークへの参入を論理構成で表す模式図である。図3(B)は、ノードの対称型オーバレイネットワークへの参入を物理構成で表す模式図である。   FIGS. 3A and 3B are schematic diagrams showing entry of nodes into a symmetric overlay network in the present invention. In detail, FIG. 3A is a schematic diagram showing the entry of a node into a symmetric overlay network by a logical configuration. FIG. 3B is a schematic diagram showing the entry of a node into a symmetric overlay network with a physical configuration.

図4は、本発明において、ノードのP2Pオーバレイネットワークからの離脱を表す模式図である。図4において、ノード2100が離脱される前及びノード2100が離脱された後の、P2Pオーバレイネットワークの物理構成を表している。図5は、本発明において、通信(パケットのルーティング)を表す模式図である。   FIG. 4 is a schematic diagram showing the leaving of a node from the P2P overlay network in the present invention. FIG. 4 shows the physical configuration of the P2P overlay network before the node 2100 leaves and after the node 2100 leaves. FIG. 5 is a schematic diagram showing communication (packet routing) in the present invention.

図6Aは、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの機能(モジュール部)の構成図である。更に、図6B、図6C、図6D、図6E、図6F及び図6Gは、各モジュール部のトラフィックの流れを示す模式図である。なお、図6A〜図6Gにおいて、図中の矢印はトラフィックの流れ方向を示しており、矢印上の文字はトラフィックの内容を示し、矢印上の括弧内の英数字6A01〜6A29はトラフィックの順番を示している。   FIG. 6A is a configuration diagram of the function (module unit) of the P2P overlay network of the communication network system according to the present invention. Furthermore, FIGS. 6B, 6C, 6D, 6E, 6F, and 6G are schematic diagrams showing the traffic flow of each module unit. 6A to 6G, the arrows in the drawings indicate the traffic flow direction, the letters on the arrows indicate the contents of the traffic, and the alphanumeric characters 6A01 to 6A29 in parentheses on the arrows indicate the traffic order. Show.

図6A及び図6Bに示されるように、P2Pネットワーキングプロトコルモジュール部6A1は、ノードの参入、離脱を契機に実行され、ネットワークの接続と個々のノードが保持するルーティングテーブルの整合性を維持する。より詳細に、P2Pネットワーキングプロトコルモジュール部6A1は、アプリケーションからのネットワーク参入要求、及びP2Pリンク通信モジュールからの隣接ノードの離脱通知を受け、参入プロトコル、離脱プロトコルを実行する。参入プロトコル及び離脱プロトコルの詳細は、後述する図7及び図13のシーケンス図並びにそれらが利用するアルゴリズムのフローチャート図に詳細に示されている。   As shown in FIGS. 6A and 6B, the P2P networking protocol module unit 6A1 is executed when a node joins or leaves, and maintains the consistency between the network connection and the routing table held by each node. More specifically, the P2P networking protocol module unit 6A1 receives the network entry request from the application and the notification of the leaving of the adjacent node from the P2P link communication module, and executes the joining protocol and the leaving protocol. Details of the entry protocol and the withdrawal protocol are shown in detail in sequence diagrams of FIGS. 7 and 13 to be described later and flowcharts of algorithms used by them.

参入時に参照する自ノードのuuidおよびエントリポイントのアドレスのリストは設定ファイルより読み込む。uuidが未設定の場合(初回起動時)、本処理がuuidを生成し、設定ファイルに書き込む。参入、離脱プロトコルのための電文(hello, welcome, newbee, miss, update)は、「P2Pトランスポートモジュール部6A2」にopen/close要求、read/write要求を出すことにより他ノードへ(から)送信(受信)される。   The list of the uuid of the local node and the address of the entry point to be referenced when entering is read from the configuration file. If uuid is not set (at first startup), this process generates uuid and writes it to the configuration file. Messages for entry / exit protocols (hello, welcome, newbee, miss, update) are sent to (or from) other nodes by issuing open / close requests and read / write requests to “P2P Transport Module 6A2”. (Received).

P2Pネットワーキングプロトコルモジュール部6A1は、参入、離脱プロトコルのための電文を構築するために、「P2Pルーティングテーブルモジュール部6A3」から、隣接ノード情報、変更要求を受け取る。また、電文内容をルーティングテーブルに反映するために、初期情報(新規参入時)、ノード追加要求、補完要求を渡す。また、welcome電文内に隣接ノードのIPアドレスを含めるために、「P2Pリンク通信モジュール部6A5」からIPアドレスを受け取る。   The P2P networking protocol module unit 6A1 receives adjacent node information and a change request from the “P2P routing table module unit 6A3” in order to construct a message for the entry / exit protocol. In addition, in order to reflect the contents of the message in the routing table, initial information (at the time of new entry), a node addition request, and a complement request are passed. Further, in order to include the IP address of the adjacent node in the welcome message, the IP address is received from “P2P link communication module unit 6A5”.

また、参入プロトコルのためのhello電文を新規参入ノードの最近接ノードに送り届けるために、P2Pネットワーキングプロトコルモジュール部6A1は「P2Pルーティングアルゴリズムモジュール部6A4」から最隣接ノードのuuidを受け取る。   Further, in order to send the hello message for the entry protocol to the closest node of the new entry node, the P2P networking protocol module unit 6A1 receives the uuid of the nearest neighbor node from the “P2P routing algorithm module unit 6A4”.

P2Pネットワーキングプロトコルモジュール部6A1は、P2P通信の基盤となるTCP/IP接続あるいはUDP/IPによる疑似接続(本発明ではこれをpeerと呼ぶ)を維持するため、「P2Pリンク通信モジュール部6A5」に対し、リンク作成要求、リンクaccept要求、仮接続(エントリポイントとの通信に用いる)のリンク化要求、リンク切断要求を渡す。   The P2P networking protocol module unit 6A1 maintains a pseudo connection by TCP / IP connection or UDP / IP which is the basis of P2P communication (this is called “peer” in the present invention), so that the “P2P link communication module unit 6A5” A link creation request, a link accept request, a temporary connection (used for communication with an entry point) link request, and a link disconnection request.

図6A及び図6Cに示されるように、P2Pトランスポートモジュール部6A2は、tcp/ip、udp/ip相当の通信を可能にし(ただし、IP通信と違い、WANにおいても通信の双方向性、ブロードキャスト/マルチキャストの利用可能性が与えられる)、つまりソケットAPI相当の機能を具備する。より詳細に、P2Pトランスポートモジュール部6A2は、アプリケーション及び「P2Pネットワーキングプロトコルモジュール部6A1」より、チャネルのopen/close要求、read/write要求を受け取り、その結果を返す。このとき、writeされるデータを固定長で区切り、送信元uuid、宛先uuidなどのヘッダを付与してパケットとして「P2Pルーティングアルゴリズムモジュール部6A4」に渡す。readの際は、パケットからヘッダを除き、データを連結して呼出し元に返す。   As shown in FIG. 6A and FIG. 6C, the P2P transport module unit 6A2 enables communication equivalent to tcp / ip and udp / ip (however, unlike IP communication, communication bidirectionality and broadcast also in WAN) / Multicast availability), that is, a function equivalent to socket API. More specifically, the P2P transport module unit 6A2 receives channel open / close requests and read / write requests from the application and the “P2P networking protocol module unit 6A1”, and returns the results. At this time, the data to be written is delimited by a fixed length, headers such as a transmission source uuid and a destination uuid are added, and the packet is passed to the “P2P routing algorithm module unit 6A4”. When reading, the header is removed from the packet and the data is concatenated and returned to the caller.

P2Pトランスポートモジュール部6A2は、open要求内で仮接続通信(新規参入ノードとエントリポイントとの間で行なわれる)を指示された場合に、「P2Pリンク通信モジュール部6A5」に仮接続確立要求を出す。   When the P2P transport module unit 6A2 is instructed to perform temporary connection communication (performed between the new entry node and the entry point) in the open request, the P2P transport module unit 6A2 sends a temporary connection establishment request to the “P2P link communication module unit 6A5”. put out.

P2Pトランスポートモジュール部6A2は、着信したパケットに対応するコールバック処理(アプリケーション)が存在する場合に、「コールバック管理/実行モジュール部6A6」にコールバック実行要求を出す。   The P2P transport module unit 6A2 issues a callback execution request to the “callback management / execution module unit 6A6” when a callback process (application) corresponding to the received packet exists.

図6A及び図6Dに示されるように、P2Pルーティングテーブルモジュール部6A3は、個々のノードが保持するルーティングテーブルに、ノードの追加及び削除を行う。より詳細に、P2Pルーティングテーブルモジュール部6A3は、「P2Pネットワーキングプロトコルモジュール部6A1」から初期情報、ノード追加要求、補完要求を受けて、ルーティングテーブルの状態を更新する。また、「P2Pネットワーキングプロトコルモジュール部6A1」に対して、隣接ノード情報、変更要求を、「P2Pルーティングアルゴリズムモジュール部6A4」に対し、ルーティングテーブル情報を渡す。   As illustrated in FIGS. 6A and 6D, the P2P routing table module unit 6A3 adds and deletes nodes to and from the routing table held by each node. More specifically, the P2P routing table module unit 6A3 receives initial information, a node addition request, and a complement request from the “P2P networking protocol module unit 6A1”, and updates the state of the routing table. Also, adjacent node information and a change request are passed to “P2P networking protocol module unit 6A1”, and routing table information is passed to “P2P routing algorithm module unit 6A4”.

図6A及び図6Eに示されるように、P2Pルーティングアルゴリズムモジュール部6A4は、パケットの中継先通信路(peer)、受信チャネルを決定する。より詳細に、P2Pルーティングアルゴリズムモジュール部6A4は、「P2Pルーティングテーブルモジュール部6A3」から受け取るルーティングテーブル情報の内容に基づき、「P2Pトランスポートモジュール部6A2」から得た送信要求を「P2Pリンク通信モジュール部6A5」に渡す。このとき、アウトバウンドルーティングにより適切なpeerを選択する。また、「P2Pリンク通信モジュール部6A5」から得た着信要求を、「P2Pトランスポートモジュール6A2」への着信要求として、あるいは「P2Pリンク通信モジュール部6A5」への送信要求として渡す。このとき、インバウンドルーティングにより適切なpeerまたはチャネルを選択する。   As shown in FIGS. 6A and 6E, the P2P routing algorithm module unit 6A4 determines a packet relay destination communication channel (peer) and a reception channel. More specifically, the P2P routing algorithm module unit 6A4 sends the transmission request obtained from the “P2P transport module unit 6A2” based on the contents of the routing table information received from the “P2P routing table module unit 6A3” to the “P2P link communication module unit”. 6A5 ". At this time, an appropriate peer is selected by outbound routing. Also, the incoming request obtained from the “P2P link communication module unit 6A5” is passed as an incoming request to the “P2P transport module 6A2” or a transmission request to the “P2P link communication module unit 6A5”. At this time, an appropriate peer or channel is selected by inbound routing.

図6A及び図6Fに示されるように、P2Pリンク通信モジュール部6A5は、ノード間の通信路の接続確立及び切断を行う。より詳細に、P2Pリンク通信モジュール部6A5は、「P2Pネットワーキングプロトコルモジュール部6A1」及び「P2Pトランスポートモジュール部6A2」から、リンク作成要求、リンクaccept要求、仮接続のリンク化要求、リンク切断要求、仮接続確立要求を得て、P2P通信の基盤となるTCP/IP接続あるいはUDP/IPによる疑似接続(これをpeerと呼ぶ)を維持する。   As shown in FIGS. 6A and 6F, the P2P link communication module unit 6A5 establishes and disconnects a communication path between nodes. More specifically, the P2P link communication module unit 6A5 sends a link creation request, a link accept request, a provisional connection link request, a link disconnection request from the “P2P networking protocol module unit 6A1” and the “P2P transport module unit 6A2”. A temporary connection establishment request is obtained, and a TCP / IP connection or a pseudo connection (referred to as “peer”) based on UDP / IP, which is the basis of P2P communication, is maintained.

P2Pリンク通信モジュール部6A5はpeerからのパケット到達を待機しているため、切断の検知が可能である。切断を検知すると、「P2Pネットワーキングプロトコルモジュール部6A1」に離脱通知を渡す。peerからパケットを受信すると、「P2Pアルゴリズムモジュール部6A4」に対して着信要求を渡す。また、「P2Pアルゴリズムモジュール部6A4」から送信要求を受け、対応するpeerに(TCP/IPあるいはUDP/IPにて)データ送信を行なう。   Since the P2P link communication module unit 6A5 waits for a packet to arrive from peer, it can detect disconnection. When disconnection is detected, a disconnection notice is passed to “P2P networking protocol module unit 6A1”. When a packet is received from the peer, an incoming request is passed to “P2P algorithm module unit 6A4”. Also, a transmission request is received from the “P2P algorithm module unit 6A4”, and data is transmitted to the corresponding peer (using TCP / IP or UDP / IP).

図6A及び図6Gに示されるように、コールバック管理/実行モジュール部6A6は、アプリケーションからコールバック登録要求を受けて、管理用テーブルに登録する。また、コールバック管理/実行モジュール部6A6は、「P2Pトランスポートモジュール部6A2」からコールバック実行要求を受けて、テーブル内の対応するコールバック処理を起動する。   As shown in FIGS. 6A and 6G, the callback management / execution module unit 6A6 receives a callback registration request from the application and registers it in the management table. Further, the callback management / execution module unit 6A6 receives a callback execution request from the “P2P transport module unit 6A2”, and activates a corresponding callback process in the table.

図7は、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの参入)を示すシーケンス図である。まず、図7の矢印701に示されたように、新規参入ノードは、エントリポイントに対し、hello電文を送る。hello電文は新規参入ノード(つまり自ノード)のuuidと新規参入ノードのIPアドレスとを含んでいる。次に、矢印702に示されたように、エントリポイントは、ルーティングテーブル情報を利用し、図8に示されたアルゴリズムによって親ノードのuuidを得る。次に、矢印703に示されたように、得られた親ノードのuuidが自分自身のuuidと等しくなければ、得られたuuidのノードにhello電文を送る。このとき、エントリポイントはhello電文に自ノードのuuidを含める。hello電文を受け取ったノードは、矢印702から矢印703までの処理を行なう。   FIG. 7 is a sequence diagram showing a networking protocol (node entry) in the P2P overlay network of the communication network system according to the present invention. First, as indicated by an arrow 701 in FIG. 7, the new entry node sends a hello message to the entry point. The hello message includes the uuid of the new entry node (that is, its own node) and the IP address of the new entry node. Next, as indicated by an arrow 702, the entry point uses the routing table information and obtains the uuid of the parent node by the algorithm shown in FIG. Next, as indicated by an arrow 703, if the obtained parent node's uuid is not equal to its own uuid, a hello message is sent to the obtained uuid's node. At this time, the entry point includes the uuid of its own node in the hello message. The node that has received the hello message performs the processing from arrow 702 to arrow 703.

次に、矢印704に示されたように、図8に示すアルゴリズムによって得られた親ノードのuuidが自分自身のuuidと等しい場合に、そのノードは新規参入ノードの親ノードである。次に、矢印705に示されたように、親ノードはルーティングテーブルに新規参入ノードを追加する。次に、矢印706に示されたように、親ノードは新規参入ノードの隣接クラスのリストを得る。そして、矢印707に示されたように、親ノードは、新規参入ノードの隣接ノードにnewbee電文を送る。newbee電文は新規参入ノードのuuidと新規参入ノードのIPアドレスとを含む。ここで、隣接ノードとは、隣接クラスの代表および副代表となっているノードを意味する。   Next, as indicated by the arrow 704, when the uuid of the parent node obtained by the algorithm shown in FIG. 8 is equal to its own uuid, the node is the parent node of the new entry node. Next, as indicated by arrow 705, the parent node adds a new entry node to the routing table. Next, as indicated by arrow 706, the parent node obtains a list of adjacent classes for the new entry node. Then, as indicated by the arrow 707, the parent node sends a newbee message to the adjacent node of the new entry node. The newbee message includes the uuid of the new entry node and the IP address of the new entry node. Here, the adjacent node means a node that is a representative and a sub representative of the adjacent class.

次に、矢印708に示されたように、親ノードは、エントリポイントにwelcome電文を送る。welcome電文は、隣接クラスのリスト(矢印706にて取得)と隣接ノードのIPアドレスのリスト(「P2Pリンク通信モジュール6A5」から取得)とを含む。そして、矢印709に示されたように、エントリポイントは新規参入ノードにwelcome電文を転送する。次に、矢印712に示されたように、新規参入ノードはwelcome電文内の隣接クラスのリストに基づいて、ルーティングテーブルを初期化する。一方、矢印710に示されたように、隣接ノードはnewbee電文で与えられた新規参入ノードのuuidをルーティングテーブルに追加する。最後に、矢印714、711、713に示されたように、新規参入ノード、親ノード、親以外の隣接ノードは、図12に示されたアルゴリズムに従って、それぞれ接続更新を行なう。   Next, as indicated by arrow 708, the parent node sends a welcome message to the entry point. The welcome message includes a list of adjacent classes (obtained from arrow 706) and a list of IP addresses of adjacent nodes (obtained from “P2P link communication module 6A5”). Then, as indicated by an arrow 709, the entry point transfers a welcome message to the new entry node. Next, as indicated by the arrow 712, the new entry node initializes the routing table based on the list of adjacent classes in the welcome message. On the other hand, as indicated by the arrow 710, the adjacent node adds the uuid of the new entry node given by the newbee message to the routing table. Finally, as indicated by arrows 714, 711, and 713, the new entry node, the parent node, and the neighboring nodes other than the parent perform connection updates according to the algorithm shown in FIG.

図8は、本発明のネットワーキングプロトコルにおける「親を探す」機能のフローチャートを示す。図8において、新規参入ノードのuuidを‘uuid’とする。その新規参入ノードが属する、ルーティングテーブル内の任意のクラスCについて、図8に示されたように、そのクラスCの親を探す。   FIG. 8 shows a flowchart of the “find parent” function in the networking protocol of the present invention. In FIG. 8, the uuid of the new entry node is 'uuid'. For an arbitrary class C in the routing table to which the new entry node belongs, the parent of the class C is searched as shown in FIG.

図8に示されたように、まず、Cのpostfixと'uuid'の末尾共通部長Lを求める(ステップS801)。そして、末尾共通部長がLより長くなる子クラスか、Lと等しい親クラスを探す(ステップS802)。該当クラスが見つかった場合(ステップS803)、見つかったクラスをCにセットし(ステップS804)、ステップS801に戻る。一方、該当クラスが見つからなかった場合、Cの代表のuuidを返す(ステップS805)。   As shown in FIG. 8, first, C postfix and 'uuid' end common length L are obtained (step S801). Then, a child class whose end common part length is longer than L or a parent class equal to L is searched (step S802). If the corresponding class is found (step S803), the found class is set to C (step S804), and the process returns to step S801. On the other hand, if the corresponding class is not found, the representative uuid of C is returned (step S805).

図9は、本発明のネットワーキングプロトコルにおける「隣接クラスのリストを得る」機能のフローチャートを示す。図9に示されたように、まず、空の結果リストを用意する(ステップS901)。そして、新規参入ノードが代表であるクラス(C)を結果リストに入れる(ステップS902)。次に、Cの親クラスが存在するか否かを判断する(ステップS903)。Cの親クラスが存在しない場合、結果リストを返して終了する(ステップS907)。一方、Cの親クラスが存在した場合、Cの副代表が新規参入ノードであるかを判断する(ステップS904)。Cの副代表が新規参入ノードでない場合、結果リストを返して終了する(ステップS907)。一方、Cの副代表が新規参入ノードである場合、Cの親クラスの新規参入ノードを代表とするクラス以外の子クラスを結果リストに入れる(ステップS905)。そして、Cにその親クラスをセットし(ステップS906)、ステップS903に戻る。   FIG. 9 shows a flowchart of the “get a list of neighboring classes” function in the networking protocol of the present invention. As shown in FIG. 9, first, an empty result list is prepared (step S901). Then, the class (C) represented by the new entry node is entered in the result list (step S902). Next, it is determined whether or not a parent class of C exists (step S903). If the parent class of C does not exist, the result list is returned and the process ends (step S907). On the other hand, if the parent class of C exists, it is determined whether the secondary representative of C is a new entry node (step S904). If the C sub-representative is not a new entry node, the result list is returned and the process ends (step S907). On the other hand, if the C sub-representative is a new entry node, a child class other than the class represented by the new entry node of the parent class of C is entered in the result list (step S905). Then, the parent class is set to C (step S906), and the process returns to step S903.

図10は、本発明のネットワーキングプロトコルにおける「ルーティングテーブルへの新規参入ノードの追加」機能のフローチャートを示す。図10の中に現れる、「最短識別可能末尾部」とはuuid1(例えば10011)とuuid2(例えば11011)がある場合、uuid1からみて最短で識別できるpostfix(この例では‘*0011’)のことである(uuid2からみると‘*1011’)。   FIG. 10 shows a flowchart of the “add new entry node to routing table” function in the networking protocol of the present invention. The “shortest identifiable tail” that appears in FIG. 10 is a postfix (in this example, “* 0011”) that can be identified in the shortest direction when uuid1 (for example, 10011) and uuid2 (for example, 1101) are present. ('* 1011' from the viewpoint of uuid2).

図10に示されたように、まず、「親を探す」機能を実行し、得られた代表のクラスをCとする(ステップS1001)。そして、Cの副代表が存在するか否かを判断する(ステップS1002)。Cの副代表が存在した場合、そのまま終了する。一方、Cの副代表が存在しない場合、uuidをCの副代表にセットする(ステップS1003)。そして、Cの代表を代表とするCの子クラスをつくり、Cの代表のuuidと‘uuid’の最短識別可能末尾部を新たなクラスの末尾共通部とする(ステップS1004)。次に、Cの子クラスの一つと末尾共通部長が、そのクラスの代表のuuidと‘uuid’の最短識別可能末尾部長より長いか判断する(ステップS1005)。長い場合、CのコピーをCとCの子クラスの間に挿入し、コピーにCの代表のuuidと‘uuid’の最短識別可能末尾部をセットする(ステップS1006)。一方、Cの子クラスの一つと末尾共通部長が、そのクラスの代表のuuidと‘uuid’の最短識別可能末尾部長より長くなかった場合、そのまま終了する。   As shown in FIG. 10, first, the “find a parent” function is executed, and the obtained representative class is set as C (step S1001). Then, it is determined whether or not a C sub-representative exists (step S1002). If there is a C sub representative, the process ends. On the other hand, if there is no C deputy representative, uuid is set to the C deputy representative (step S1003). Then, a child class of C represented by the representative of C is created, and the shortest distinguishable end part of u representative and 'uuid' of the representative of C is set as the common end part of the new class (step S1004). Next, it is determined whether one of the child classes of C and the end common part length are longer than the shortest distinguishable end part length of the representative uuid and ‘uuid’ of the class (step S1005). If it is long, a copy of C is inserted between C and the child class of C, and the representative uuid of C and the shortest distinguishable end of 'uuid' are set in the copy (step S1006). On the other hand, if one of the child classes of C and the end common part length are not longer than the shortest distinguishable end part length of the representative uuid and 'uuid' of the class, the process ends.

図11は、本発明のネットワーキングプロトコルにおける新規参入ノードの「ルーティングテーブルの初期化」機能のフローチャートを示す。図11に示されたように、まず、空のルーティングテーブルを用意する(ステップS1101)。そして、隣接クラスリストが空か否かを判断する(ステップS1102)。隣接クラスリストが空であれば、ルーティングテーブルを返し(ステップS1104)、終了となる。一方、隣接クラスリストが空でない場合、隣接クラスリスト内から既にある隣接クラスと重複しないものを一つ取り出し、ルーティングテーブルに入れて(ステップS1103)、ステップS1102に戻る。   FIG. 11 shows a flowchart of the “routing table initialization” function of the new entry node in the networking protocol of the present invention. As shown in FIG. 11, first, an empty routing table is prepared (step S1101). Then, it is determined whether or not the adjacent class list is empty (step S1102). If the adjacent class list is empty, the routing table is returned (step S1104), and the process ends. On the other hand, if the adjacent class list is not empty, one that does not overlap with the existing adjacent class is extracted from the adjacent class list, put into the routing table (step S1103), and the process returns to step S1102.

図12は、本発明のネットワーキングプロトコルにおける「接続更新」機能のフローチャートを示す。図12示されたように、まず、ルーティングテーブルの更新前後を比較し、削除ノードのリストと、追加ノードのリストを得る(ステップS1201)。そして、削除ノードのリストが空か否かを判断する(ステップS1202)。削除ノードのリストが空でない場合、ノードをそのリストから取り出し、当該peerを削除し(切断)(ステップS1203)、ステップS1202に戻る。一方、削除ノードのリストが空の場合、更に、追加ノードのリストが空か否かを判断する(ステップS1204)。追加ノードのリストが空であれば、終了となる。一方、追加ノードのリストが空でない場合に、追加ノードが新規参入ノードであれば、新たにtcp接続を行なってpeerを作成し(但し、仮接続が存在すればそれを再利用する)、さもなければtcp接続をacceptしてpeerを作成し(但し、仮接続が存在すればそれを再利用する)(ステップS1205)、ステップS1204に戻る。   FIG. 12 shows a flowchart of the “connection update” function in the networking protocol of the present invention. As shown in FIG. 12, first, before and after the update of the routing table is compared, a list of deleted nodes and a list of additional nodes are obtained (step S1201). Then, it is determined whether the list of deleted nodes is empty (step S1202). If the list of deleted nodes is not empty, the node is taken out from the list, the peer is deleted (disconnected) (step S1203), and the process returns to step S1202. On the other hand, if the list of deleted nodes is empty, it is further determined whether or not the list of additional nodes is empty (step S1204). If the list of additional nodes is empty, the process ends. On the other hand, if the list of additional nodes is not empty and the additional node is a new entry node, create a peer by making a new tcp connection (however, if a temporary connection exists, reuse it). If not, accept the tcp connection and create a peer (however, if a temporary connection exists, reuse it) (step S1205), and return to step S1204.

図13は、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの離脱)を示すシーケンス図である。まず、図13の矢印1301に示されたように、ノードの離脱が発生すると、隣接ノードはTCP接続の切断、あるいはUDPパルスの非到達を検知する。次に、矢印1302に示されたように、隣接ノードはルーティングテーブルから離脱ノードを削除する。そして、矢印1303に示されたように、離脱ノードの削除の結果として生じた、副代表が不在となったクラス(つまり、欠損クラス)を判定する。次に、矢印1304に示されたように、欠損クラスの各々について、その代表ノードにmiss電文を送信する。miss電文は欠損が発生しているクラスのpostfixと、離脱したノードのuuidと、自ノード(つまり、発信ノード)のuuidとを含む。   FIG. 13 is a sequence diagram showing a networking protocol (leave of a node) in the P2P overlay network of the communication network system according to the present invention. First, as shown by an arrow 1301 in FIG. 13, when a node leaves, an adjacent node detects disconnection of a TCP connection or non-arrival of a UDP pulse. Next, as indicated by arrow 1302, the adjacent node deletes the leaving node from the routing table. Then, as indicated by an arrow 1303, a class (that is, a missing class) that is generated as a result of deletion of the leaving node and in which the vice representative is absent is determined. Next, as indicated by an arrow 1304, for each of the missing classes, a miss message is transmitted to the representative node. The miss message includes the postfix of the class in which the defect occurs, the uuid of the detached node, and the uuid of the local node (that is, the originating node).

そして、矢印1305に示されたように、miss電文を受け取ったノードは、図15に示されたアルゴリズムに従って、更新情報を構築する。次に、矢印1306に示されたように、更新情報はupdate電文により、欠損クラスが発生したノードに送信される。update電文は、欠損が発生しているクラスのpostfixと、更新情報と、更新情報が含むuuidに対応するIPアドレスのリストとを含む。そして、矢印1307に示されたように、隣接ノードは、更新情報に基づき、図16に示されたアルゴリズムに従ってルーティングテーブルを補完する。最後に、矢印1308に示されたように、隣接ノードは、図12に示されたアルゴリズムに従って接続更新を行なう。   Then, as indicated by the arrow 1305, the node that has received the miss message constructs update information according to the algorithm shown in FIG. Next, as indicated by an arrow 1306, the update information is transmitted to the node where the missing class has occurred by an update message. The update message includes a postfix of a class in which a defect occurs, update information, and a list of IP addresses corresponding to uuid included in the update information. Then, as indicated by the arrow 1307, the adjacent node complements the routing table according to the algorithm shown in FIG. 16 based on the update information. Finally, as indicated by arrow 1308, the adjacent node performs connection update according to the algorithm shown in FIG.

図14は、本発明のネットワーキングプロトコルにおける「離脱ノードのルーティングテーブルからの削除」機能のフローチャートを示す。図14において、削除対象はuuid_depで、Cをルーティングテーブル内の全てのクラスの各々とする。   FIG. 14 shows a flowchart of the “delete node from routing table” function in the networking protocol of the present invention. In FIG. 14, the deletion target is uuid_dep, and C is each of all classes in the routing table.

図14示されたように、まず、uuid_depがCの代表に等しいか否かを判断する(ステップS1401)。uuid_depがCの代表に等しい場合に、Cの副代表が存在するかどうかを判断する(ステップS1402)。Cの副代表が存在する場合、Cの副代表を代表にする(ステップS1403)。そして、ステップS1408に移る。前記ステップS1402において、Cの副代表が存在しないと判断された場合、先ず、代表を空にする(ステップS1404)。次に、親クラスにCの削除を要求する(ステップS1405)。そして、ステップS1408に移る。   As shown in FIG. 14, first, it is determined whether uuid_dep is equal to a representative of C (step S1401). If uuid_dep is equal to the representative of C, it is determined whether or not there exists a secondary representative of C (step S1402). If there is a C sub representative, the C sub representative is represented (step S1403). Then, the process proceeds to step S1408. If it is determined in step S1402 that no C sub-representative exists, the representative is first emptied (step S1404). Next, the parent class is requested to delete C (step S1405). Then, the process proceeds to step S1408.

一方、前記ステップS1401において、uuid_depがCの代表に等しくないと判断されたら、次はステップS1406に移る。そして、前記ステップS1406において、uuid_depがCの副代表に等しいと判断されたら、Cの副代表を空にする(ステップS1407)。そして、ステップS1408に移る。   On the other hand, if it is determined in step S1401 that uuid_dep is not equal to the representative of C, the process proceeds to step S1406. If it is determined in step S1406 that uuid_dep is equal to the C sub representative, the C sub representative is emptied (step S1407). Then, the process proceeds to step S1408.

次に、代表が存在する、かつ副代表が存在しない、かつ子クラスがあるかどうかを判断する(ステップS1408)。代表が存在する、かつ副代表が存在しない、かつ子クラスがある場合に、子クラスの代表のうちCの代表ともuuid_depとも異なるものを選んでCの副代表とする(ステップS1409)。   Next, it is determined whether there is a representative, no secondary representative, and whether there is a child class (step S1408). If there is a representative, no sub-representation, and there is a child class, a child class representative that is different from the C representative and uuid_dep is selected as the C sub-representative (step S1409).

本発明のネットワーキングプロトコルにおける「欠損クラス判定」機能は、「離脱ノードのルーティングテーブルからの削除」機能で、副代表が空となったままのクラスを返す。   The “missing class determination” function in the networking protocol of the present invention is a function of “deleting a leaving node from the routing table” function, and returns a class in which the sub representative remains empty.

図15は、本発明のネットワーキングプロトコルにおける「更新情報の構築」機能のフローチャートを示す。図15において、欠損が発生しているクラスのpostfixをpostfix_defectとする。   FIG. 15 shows a flowchart of the “construct update information” function in the networking protocol of the present invention. In FIG. 15, a postfix of a class in which a defect occurs is defined as postfix_defect.

図15に示されたように、まず、空の結果リストを用意する(ステップS1501)。次に、ルーティングテーブル内に離脱ノードのuuidがあれば図14に示されたアルゴリズムにより削除する(ステップS1502)。次に、postfixがpostfix_defectであるクラスCを得る(ステップS1503)。そして、Cの副代表が発信ノードのuuidに等しいか否かを判断する(ステップS1504)。Cの副代表が発信ノードのuuidに等しければ、先ず、結果リストにCがなければCを入れる(ステップS1505)。次に、結果リストにCの子クラスと同一のクラスがなければそれを入れる(ステップS1506)。次に、Cの親クラスが存在するかどうかを判断する(ステップS1507)。Cの親クラスが存在すると判断されたら、postfix_defectに親クラスのpostfixをセットする(ステップS1507)。そして、ステップS1503に戻る。   As shown in FIG. 15, first, an empty result list is prepared (step S1501). Next, if there is a leaving node uuid in the routing table, it is deleted by the algorithm shown in FIG. 14 (step S1502). Next, class C whose postfix is postfix_defect is obtained (step S1503). Then, it is determined whether or not the C sub-representative is equal to the uuid of the calling node (step S1504). If the deputy representative of C is equal to the uuid of the originating node, first, if there is no C in the result list, C is entered (step S1505). Next, if there is no class identical to the child class of C in the result list, it is entered (step S1506). Next, it is determined whether or not a parent class of C exists (step S1507). If it is determined that the parent class of C exists, the parent class postfix is set in postfix_defect (step S1507). Then, the process returns to step S1503.

図16は、本発明のネットワーキングプロトコルにおける「ルーティングテーブルの補完」機能のフローチャートを示す。図16に示されたように、まず、更新情報が空であるか否かを判断する(ステップS1601)。更新情報が空でない場合に、更新情報の要素であるクラスCを1つ取り出す(ステップS1602)。次に、Cのpostfixと同一のpostfixを持つルーティングテーブル内のクラスC’が存在するか否かを判断する(ステップS1603)。C’が存在すると判断された場合、C’の内容をCで置き換える(ステップS1604)。そして、ステップS1601に戻る。前期ステップS1603において、C’が存在しないと判断された場合、ルーティングテーブルにCを挿入する(ステップS1605)。そして、ステップS1601に戻る。   FIG. 16 shows a flowchart of the “routing table complement” function in the networking protocol of the present invention. As shown in FIG. 16, first, it is determined whether or not the update information is empty (step S1601). If the update information is not empty, one class C that is an element of the update information is extracted (step S1602). Next, it is determined whether or not the class C ′ in the routing table having the same postfix as the C postfix exists (step S1603). If it is determined that C 'exists, the contents of C' are replaced with C (step S1604). Then, the process returns to step S1601. If it is determined in step S1603 that C 'does not exist, C is inserted into the routing table (step S1605). Then, the process returns to step S1601.

図17は、本発明において、パケットの送受信とルーティングを示す模式図である。図17は、データの送信元アプリケーションから宛先アプリケーションまでのデータの流れを示している。送信元アプリケーションは、送信に先だってチャネルを作成する。チャネルは種別(仮チャネル、ユニキャストチャネル、ブロードキャストチャネルのいずれか)、アプリケーションを識別するためのサービスポート番号、利用する帯域幅、宛先uuidを持つ。仮チャネルは新規参入ノードがエントリポイントと通信するための特殊なユニキャストチャネルである。   FIG. 17 is a schematic diagram showing packet transmission / reception and routing in the present invention. FIG. 17 shows the flow of data from the data transmission source application to the destination application. The source application creates a channel prior to transmission. The channel has a type (any one of a temporary channel, a unicast channel, and a broadcast channel), a service port number for identifying an application, a bandwidth to be used, and a destination uuid. A temporary channel is a special unicast channel for a new entry node to communicate with an entry point.

パケットの中継先(元)となる隣接ノードとの接続を管理するデータ構造をpeerと呼ぶ。peerは隣接ノードのuuid、優先帯域テーブルを持つ。優先帯域テーブルは、送信元ノードのuuid、宛先ノードのuuid、サービスポート番号が示す仮想的な接続ごとに帯域幅の値を管理している。   A data structure for managing a connection with an adjacent node that is a packet relay destination (original) is called peer. Peer has uuid and priority bandwidth table of neighboring nodes. The priority bandwidth table manages the bandwidth value for each virtual connection indicated by the uuid of the transmission source node, the uuid of the destination node, and the service port number.

送信元アプリケーションがデータを書き出すと、データは固定長に分割され、送信元uuid、宛先uuidを含むヘッダ情報を付与され、通信パケットが構築される。パケットはアウトバウンドルーティングアルゴリズムが選択するpeerのキューにつながれ、そのパケットをpeerごとに存在するtcp送信デーモンがTCP/IPまたはUDP/IPにより送信する。   When the transmission source application writes data, the data is divided into fixed lengths, header information including the transmission source uuid and the destination uuid is added, and a communication packet is constructed. The packet is connected to the peer queue selected by the outbound routing algorithm, and the tcp transmission daemon existing for each peer transmits the packet by TCP / IP or UDP / IP.

受信側ノードでは、パケットが到達したpeerのtcp受信デーモンがパケットを読み込み、それをインバウンドルーティングアルゴリズムに渡す。インバウンドルーティングアルゴリズムは、パケットのヘッダ情報を見て、自ノードが宛先である場合には対応するチャネルを、さもなければ中継すべきpeerを選択する。peerが選択された場合、インバウンドルーティングアルゴリズムはpeerのキューにパケットをつなぐ。   At the receiving node, the peer's tcp receive daemon that the packet arrives on reads the packet and passes it to the inbound routing algorithm. The inbound routing algorithm looks at the header information of the packet and selects the corresponding channel if the node is the destination, or the peer to be relayed otherwise. If peer is selected, the inbound routing algorithm puts the packet in the peer queue.

宛先が自ノードの場合、インバウンドルーティングアルゴリズムはパケットをチャネルのキューにつなぐ。サービスポート番号に対応するチャネルが存在しなければ、新たなチャネルが作成される。チャネル内のコールバック実行デーモンは対応するコールバック処理が起動されていなければ起動する。起動されたコールバック処理(アプリケーション)が、処理を行なうためにデータを読み出そうとすると、チャネルはキューからパケットを取り出し、ヘッダを除去してアプリケーションにデータを供給する。パケットがpeerのキューにつながれる際は、後述する図18A、図18B及び図18Cに示されるアルゴリズムにより帯域制御が行なわれる。   If the destination is the local node, the inbound routing algorithm places the packet in the channel queue. If there is no channel corresponding to the service port number, a new channel is created. The callback execution daemon in the channel is activated if the corresponding callback processing is not activated. When the activated callback process (application) attempts to read data for processing, the channel removes the packet from the queue, removes the header, and supplies the data to the application. When a packet is put in the peer queue, bandwidth control is performed according to an algorithm shown in FIGS. 18A, 18B, and 18C described later.

本発明のネットワーキングプロトコルにおける「アウトバウンドルーティング」機能について、次のようになる。まず、仮接続パケットならば、宛先ipアドレスでpeerをフェッチしてパケットをそのpeerのキューにつなぐ。次に、本接続の場合、ユニキャストまたはchannelのclose要求ならば、宛先uuidでpeerがフェッチできればパケットをそのpeerのキューにつなぎ、さもなければ、「ユニキャストのリレー」を実施し、パケットを得られた結果に対応するpeerのキューにつなぐ。また、ブロードキャストならば、「ブロードキャストのリレー」を実施し、パケットを得られた結果に対応するpeerのキューにつなぐ。   The “outbound routing” function in the networking protocol of the present invention is as follows. First, if it is a temporary connection packet, the peer is fetched by the destination ip address and the packet is connected to the queue of the peer. Next, in the case of this connection, if the request is a unicast or channel close request, if the peer can be fetched with the destination uuid, the packet is queued to that peer, otherwise, a "unicast relay" is performed and the packet is sent. Connect to the peer queue corresponding to the result. In the case of broadcast, “broadcast relay” is performed, and the packet is obtained and connected to the peer queue corresponding to the obtained result.

本発明のネットワーキングプロトコルにおける「インバウンドルーティング」機能について、次のようになる。まず、仮接続パケットならば、宛先uuidが示すchannelがあればパケットをそのchannelのキューにつなぎ、さもなければchannelを作成してパケットをそのchannelのキューにつなぐ。次に、本接続のブロードキャストパケットならば、「ブロードキャストのリレー」を実施し、宛先が示すchannelがあればパケットをそのchannelのキューにつなぎ、さもなければchannelを作成してパケットをそのchannelのキューにつなぐ。そして、本接続のユニキャストパケットならば、宛先uuidが自分でなければ「ユニキャストのリレー」を実施し、パケットを得られた結果に対応するpeerのキューにつなぎ、さもなければ宛先uuidが示すchannelがあればパケットをそのchannelのキューにつなぎ、さもなければchannelを作成してパケットをそのchannelのキューにつなぐ。   The “inbound routing” function in the networking protocol of the present invention is as follows. First, if it is a temporary connection packet, if there is a channel indicated by the destination uuid, the packet is connected to the queue of that channel, otherwise a channel is created and the packet is connected to the queue of that channel. Next, if it is a broadcast packet of this connection, “broadcast relay” is performed, and if there is a channel indicated by the destination, the packet is connected to the queue for that channel, otherwise a channel is created and the packet is queued for that channel. Connect. If it is a unicast packet of this connection, if the destination uuid is not itself, “unicast relay” is performed, and the packet is obtained and connected to the peer queue corresponding to the result, otherwise the destination uuid indicates If there is a channel, the packet is connected to the queue of that channel, otherwise a channel is created and the packet is connected to the queue of that channel.

本発明のネットワーキングプロトコルにおける「ブロードキャストのリレー」機能について、次のようになる。自ノードを代表とするクラスの親クラスの代表で自ノードと異なるものの集合をupノードと呼ぶ。自ノードを代表とするクラスの子クラスの代表で自ノードと異なるものの集合をdownノード集合と呼ぶ。もし中継元ノードがupノードならば、中継先をdownノード集合とする。もし中継元ノードがdownノード集合の要素ならば、中継先をupノードとdown集合の要素ノードで、中継元ノードを除くものとする。   The “broadcast relay” function in the networking protocol of the present invention is as follows. A set of representatives of a parent class of a class represented by the own node and different from the own node is called an up node. A set of child classes that are representative of the self node and that is different from the self node is called a down node set. If the relay source node is an up node, the relay destination is a set of down nodes. If the relay source node is an element of the down node set, the relay destination is an up node and an element node of the down set, and the relay source node is excluded.

本発明のネットワーキングプロトコルにおける「ユニキャストのリレー」機能について、次のようになる。まず、末尾共通部長が最大になるclass(C)を探す。次に、Cの代表が自分であり、Cの子クラスの代表または副代表に宛先と合致するものがあればそれに送る。また、Cの代表が自分以外ならば、その代表に送る。   The “unicast relay” function in the networking protocol of the present invention is as follows. First, the class (C) having the maximum common end part length is searched. Next, C's representative is himself, and if there is a child class representative or sub-representative that matches the destination, send it to it. Also, if the representative of C is other than yourself, send it to that representative.

図18A、図18B及び図18Cは、本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートを示す。図18A、図18B及び図18Cに示されたように、まず、帯域制限が0以下または仮接続パケットであるか否かを判断する(ステップS1801)。帯域制限が0以下または仮接続パケットであると判断されたら、後述するステップS1819に移る。一方、帯域制限が0以下または仮接続パケットでない場合に、パケットヘッダの送信元uuid、宛先uuid、サービスポート番号でキーを作成する(ステップS1802)。次に、キーにマッチするエントリがあるか否かを判断する(ステップS1803)。キーにマッチするエントリがある場合に、後述するステップS1808に移る。   18A, 18B, and 18C show a flowchart of the “enqueue to peer and bandwidth control” function in the networking protocol of the present invention. As shown in FIGS. 18A, 18B, and 18C, first, it is determined whether or not the bandwidth limit is 0 or less or a temporary connection packet (step S1801). If it is determined that the bandwidth limit is 0 or less or a temporary connection packet, the process proceeds to step S1819 described later. On the other hand, if the bandwidth limit is 0 or less or not a temporary connection packet, a key is created with the source uuid, destination uuid, and service port number in the packet header (step S1802). Next, it is determined whether or not there is an entry that matches the key (step S1803). If there is an entry that matches the key, the process proceeds to step S1808 described later.

一方、キーにマッチするエントリがない場合に、エントリの帯域制限にヘッダの帯域制限をセットすると共に、エントリの開始時刻に現在時刻をセットするし、エントリを登録する(ステップS1804)。そして、peerの帯域制限総量が0であるか否かを判断する(ステップS1805)。peerの帯域制限総量が0でないと判断されたら、後述するステップS1807に移る。一方、peerの帯域制限総量が0の場合、peerの開始時刻にエントリの開始時刻をセットする(ステップS1806)。そして、peerの帯域制限総量にヘッダの帯域制限を加算する(ステップS1807)。続いて、エントリの通信量(Kbits)をヘッダの「データ長」の値で加算する(ステップS1808)。そして、エントリの開始時刻の3秒後であるか否かを判断する(ステップS1809)。エントリの開始時刻の3秒後でないと判断されたら、後述するステップS1811に移る。   On the other hand, if there is no entry that matches the key, the bandwidth limit of the header is set as the bandwidth limit of the entry, the current time is set as the entry start time, and the entry is registered (step S1804). Then, it is determined whether or not the total bandwidth limit of peer is 0 (step S1805). If it is determined that the total bandwidth limit of the peer is not 0, the process proceeds to step S1807 described later. On the other hand, if the total bandwidth limit of peer is 0, the entry start time is set as the peer start time (step S1806). Then, the bandwidth limit of the header is added to the total bandwidth limit of peer (step S1807). Subsequently, the communication amount (Kbits) of the entry is added by the “data length” value of the header (step S1808). Then, it is determined whether or not it is 3 seconds after the entry start time (step S1809). If it is determined that it is not 3 seconds after the start time of the entry, the process proceeds to step S1811 described later.

一方、エントリの開始時刻の3秒後であれば、エントリの「現在帯域」をエントリの通信量÷エントリの開始時刻からの経過時間(秒)にセットする(ステップS1810)。peerの通信量(Kbits)をヘッダの「データ長」の値で加算する(ステップS1811)。その後、peerの開始時刻の3秒後であるか否かを判断する(ステップS1812)。peerの開始時刻の3秒後でないと判断されたら、後述するステップS1814に移る。一方、peerの開始時刻の3秒後であれば、peerの「現在帯域」をpeerの通信量÷peerの開始時刻からの経過時間(秒)にセットする(ステップS1813)。   On the other hand, if it is 3 seconds after the start time of the entry, the “current bandwidth” of the entry is set to the entry traffic volume / the elapsed time (seconds) from the entry start time (step S1810). The communication amount (Kbits) of the peer is added by the value of the “data length” in the header (step S1811). Thereafter, it is determined whether or not it is 3 seconds after the peer start time (step S1812). If it is determined that it is not 3 seconds after the peer start time, the process proceeds to step S1814 described later. On the other hand, if it is 3 seconds after the peer start time, the “current bandwidth” of peer is set to the amount of peer traffic divided by the elapsed time (seconds) from the peer start time (step S1813).

その後、帯域制限が0より大きいか否かを判断する(ステップS1814)。帯域制限が0より大きい場合、更に、エントリの現在帯域がエントリの帯域制限の120%を越えているか否かを判断する(ステップS1815)。エントリの現在帯域がエントリの帯域制限の120%を越えていなければ、後述するステップS1819に移る。一方、エントリの現在帯域がエントリの帯域制限の120%を越えた場合に、エントリの現在帯域の超過分を制限で割った秒数スリープする(ステップS1816)。ステップS1801に移る。   Thereafter, it is determined whether or not the bandwidth limit is greater than 0 (step S1814). If the bandwidth limit is greater than 0, it is further determined whether the current bandwidth of the entry exceeds 120% of the bandwidth limit of the entry (step S1815). If the current bandwidth of the entry does not exceed 120% of the bandwidth limit of the entry, the process proceeds to step S1819 described later. On the other hand, when the current bandwidth of the entry exceeds 120% of the bandwidth limit of the entry, sleep is performed for the number of seconds obtained by dividing the excess bandwidth of the entry by the limit (step S1816). The process moves to step S1801.

一方、前記ステップS1814において、帯域制限が0より大きいと判断されない場合、更に、peerの現在帯域からエントリへの現在帯域を引いた値がpeerの帯域制限からエントリの帯域制限を引いた値の120%を下回っているか否かを判断する(ステップS1817)。peerの現在帯域からエントリへの現在帯域を引いた値がpeerの帯域制限からエントリの帯域制限を引いた値の120%を下回っていなければ、peerの送信キューにつなぐ(ステップS1819)。一方、peerの現在帯域からエントリへの現在帯域を引いた値がpeerの帯域制限からエントリの帯域制限を引いた値の120%を下回っている場合に、エントリの現在帯域の超過分を制限で割った秒数スリープする(ステップS1818)。そしてステップS1801に戻る。   On the other hand, if it is not determined in step S1814 that the bandwidth limit is greater than 0, the value obtained by subtracting the current bandwidth to the entry from the peer current bandwidth is 120, which is the value obtained by subtracting the bandwidth limit of the entry from the peer bandwidth limit. It is determined whether it is less than% (step S1817). If the value obtained by subtracting the current bandwidth of the peer from the current bandwidth of the peer is not less than 120% of the value obtained by subtracting the bandwidth limit of the entry from the bandwidth limit of the peer, the peer is transmitted to the transmission queue (step S1819). On the other hand, if the value obtained by subtracting the current bandwidth of the entry from the peer's current bandwidth is less than 120% of the value obtained by subtracting the bandwidth limit of the entry from the peer's bandwidth limit, the excess bandwidth of the entry can be limited. Sleep for the divided number of seconds (step S1818). Then, the process returns to step S1801.

本発明において、電文仕様は次のようになる。つまり、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークのヘッダは、種別(TMP(仮接続),BROAD(ブロードキャスト),UNI(ユニキャスト),CLOSE(channelのclose要求)のどれか)と、データ長と、残データ長と、送信元uuidと、宛先uuidと、サービスポート番号と、送信元チャネル識別子と、宛先チャネル識別子と、帯域制限(下限Kbps)とから構成されている。   In the present invention, the message specifications are as follows. That is, the header of the P2P overlay network of the communication network system according to the present invention includes the type (TMP (temporary connection), BROAD (broadcast), UNI (unicast), CLOSE (channel close request)), data It consists of a length, a remaining data length, a transmission source uuid, a destination uuid, a service port number, a transmission source channel identifier, a destination channel identifier, and a bandwidth limit (lower limit Kbps).

本発明に係る通信ネットワークシステムにおいて、P2Pで利用可能になる既存のプロトコル及び技術は、次のようなものが挙げられる。
・リモートデスクトップ(VNC:virtual network computing)
・IP電話、インターネット会議
・httpを介した既存CGIアプリケーション
・LAN内で利用されている任意のクライアント/サーバ型アプリケーション
・xmlrpc/WebService/CORBA/JavaRMIを利用したRPCアプリケーション
従来のP2Pアプリケーション「gnutella」は、エントリポイントに新規参入ノードが直接接続を行うため、エントリポイントに負荷が集中する。これに対し、本発明に係る通信ネットワークシステムでは、負荷分散が自動的に行われる。
In the communication network system according to the present invention, the existing protocols and technologies that can be used in P2P include the following.
・ Remote desktop (VNC: virtual network computing)
・ IP phone, Internet conference ・ Existing CGI application via http ・ Arbitrary client / server application used in LAN ・ RPC application using xmlrpc / WebService / CORBA / JavaRMI The conventional P2P application “gnutella” Since the new entry node directly connects to the entry point, the load is concentrated on the entry point. In contrast, in the communication network system according to the present invention, load distribution is automatically performed.

本発明に係る通信ネットワークシステムにおけるP2Pオーバレイネットワーク(ルータ)が持つ基本サービスとして、次のようなものが挙げられる。
(1)情報バックアップサービス(代表/副代表がバックアップ先となる)
・公開鍵(認証/暗号通信用)
・通信量統計
・その他(ファイルブロックなど)
(2)分散ストレージの提供
・ファイルブロック識別子と最も近いuuidを持つルータ上のストレージに保存する
(3)データキャッシング
・経路上のルータにデータをキャッシュする
また、本発明に係る通信ネットワークシステムにおけるP2Pオーバレイネットワークは、マルチホップオーバレイネットワークとしての特徴が次のものである。
(1)匿名化ネットワーク(例えばonion routingネットワークなど)の実装が容易である
(2)バケツリレー型ストリーミングによるサーバ負荷軽減ができる
(3)マルチキャストネットワークの実現が容易である
(4)non-voluntarity(意志独立性)に基づく課金情報管理。(匿名接続される隣接ノード間で通信流量を監視し合う)
The basic services of the P2P overlay network (router) in the communication network system according to the present invention include the following.
(1) Information backup service (representative / deputy representative is the backup destination)
・ Public key (for authentication / encryption communication)
・ Communications statistics ・ Others (file blocks, etc.)
(2) Provision of distributed storage / Save in storage on router having uuid closest to file block identifier (3) Data caching / Cache data in router on path Also, P2P in the communication network system according to the present invention The overlay network has the following characteristics as a multi-hop overlay network.
(1) Easy implementation of anonymization network (for example, onion routing network) (2) Reduction of server load by bucket relay type streaming (3) Easy realization of multicast network (4) Non-voluntarity ( Billing information management based on will independence. (Monitoring the communication flow between adjacent nodes that are anonymously connected)

本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの論理構成を示す模式図である。It is a schematic diagram which shows the logical structure of the P2P overlay network of the communication network system which concerns on this invention. 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの物理構成を示す模式図である。It is a schematic diagram which shows the physical structure of the P2P overlay network of the communication network system which concerns on this invention. ノードのP2Pオーバレイネットワークへの参入を論理構成で表す模式図である。It is a schematic diagram showing the entry into the P2P overlay network of a node by a logical configuration. ノードのP2Pオーバレイネットワークへの参入を物理構成で表す模式図である。It is a schematic diagram showing a node's entry into the P2P overlay network with a physical configuration. 本発明において、ノードのP2Pオーバレイネットワークからの離脱を表す模式図である。In this invention, it is a schematic diagram showing detachment | leave from a P2P overlay network of a node. 本発明において、通信(パケットのルーティング)を表す模式図である。In this invention, it is a schematic diagram showing communication (routing of a packet). 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの機能(モジュール部)の構成図である。It is a block diagram of the function (module part) of the P2P overlay network of the communication network system which concerns on this invention. P2Pネットワーキングプロトコルモジュール部のトラフィックの流れを示す模式図である。It is a schematic diagram which shows the flow of the traffic of a P2P networking protocol module part. P2Pトランスポートモジュール部のトラフィックの流れを示す模式図である。It is a schematic diagram which shows the flow of the traffic of a P2P transport module part. P2Pルーティングテーブルモジュール部のトラフィックの流れを示す模式図である。It is a schematic diagram which shows the flow of the traffic of a P2P routing table module part. P2Pルーティングアルゴリズムモジュール部のトラフィックの流れを示す模式図である。It is a schematic diagram which shows the flow of the traffic of a P2P routing algorithm module part. P2Pリンク通信モジュール部のトラフィックの流れを示す模式図である。It is a schematic diagram which shows the flow of the traffic of a P2P link communication module part. コールバック管理/実行モジュール部のトラフィックの流れを示す模式図である。It is a schematic diagram which shows the flow of the traffic of a callback management / execution module part. 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの参入)を示すシーケンス図である。It is a sequence diagram which shows the networking protocol (node participation) in the P2P overlay network of the communication network system which concerns on this invention. 本発明のネットワーキングプロトコルにおける「親を探す」機能のフローチャートである。It is a flowchart of the "find a parent" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「隣接クラスのリストを得る」機能のフローチャートである。6 is a flowchart of a function “get a list of adjacent classes” in the networking protocol of the present invention. 本発明のネットワーキングプロトコルにおける「ルーティングテーブルへの新規参入ノードの追加」機能のフローチャートである。It is a flowchart of the "add new entry node to a routing table" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「ルーティングテーブルの初期化」機能のフローチャートである。It is a flowchart of the "initialization of a routing table" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「接続更新」機能のフローチャートである。It is a flowchart of the "connection update" function in the networking protocol of this invention. 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの離脱)を示すシーケンス図である。It is a sequence diagram which shows the networking protocol (leave of a node) in the P2P overlay network of the communication network system which concerns on this invention. 本発明のネットワーキングプロトコルにおける「離脱ノードのルーティングテーブルからの削除」機能のフローチャートである。It is a flowchart of the "deletion of a leaving node from the routing table" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「更新情報の構築」機能のフローチャートである。It is a flowchart of the "construction of update information" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「ルーティングテーブルの補完」機能のフローチャートである。It is a flowchart of the "routing table complement" function in the networking protocol of this invention. 本発明において、パケットの送受信とルーティングを示す模式図である。In this invention, it is a schematic diagram which shows transmission / reception and routing of a packet. 本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートの一部である。It is a part of flowchart of the "enqueue and bandwidth control to peer" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートの一部である。It is a part of flowchart of the "enqueue and bandwidth control to peer" function in the networking protocol of this invention. 本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートの一部である。It is a part of flowchart of the "enqueue and bandwidth control to peer" function in the networking protocol of this invention.

符号の説明Explanation of symbols

6A1 P2Pネットワーキングプロトコルモジュール部
6A2 P2Pトランスポートモジュール部
6A3 P2Pルーティングテーブルモジュール部
6A4 P2Pルーティングアルゴリズムモジュール部
6A5 P2Pリンク通信モジュール部
6A6 コールバック管理/実行モジュール部
6A1 P2P Networking Protocol Module 6A2 P2P Transport Module 6A3 P2P Routing Table Module 6A4 P2P Routing Algorithm Module 6A5 P2P Link Communication Module 6A6 Callback Management / Execution Module

Claims (8)

IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムであって、
前記対称型オーバレイネットワークは、全てのノードがn進分類木として論理的に接続されており、前記ノードが自身を特定するための一意の識別子を持っており、前記ノードの前記識別子をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定されるようになっており、前記ノードの基本的な接続数はn+1であり、前記ノード間はIPトランスポート層によって接続されることを特徴とする通信ネットワークシステム。
A communication network system that enables bidirectional communication between any of the nodes in the symmetric overlay network through the IP network by constructing a symmetric overlay network having a plurality of nodes on the IP network. And
In the symmetric overlay network, all nodes are logically connected as an n-ary classification tree, the node has a unique identifier for identifying itself, and the identifier of the node is an n-ary number. By interpreting, adjacent nodes to be connected to each other are autonomously determined, the basic number of connections of the nodes is n + 1, and the nodes are connected by the IP transport layer. A communication network system characterized by the above.
前記対称型オーバレイネットワークにおいて、あるノードから任意のノードへ向かう中継ノードを必ず2ルート接続確立しておくようにし、前記中継ノードは代表ノードと副代表ノードとから構成される請求項1に記載の通信ネットワークシステム。 2. The relay node according to claim 1, wherein in the symmetric overlay network, a two-route connection is always established for a relay node from a certain node to an arbitrary node, and the relay node includes a representative node and a sub-representative node. Communication network system. 前記対称型オーバレイネットワークは、P2Pネットワーキングプロトコルモジュール部と、P2Pトランスポートモジュール部と、P2Pルーティングテーブルモジュール部と、P2Pルーティングアルゴリズムモジュール部と、P2Pリンク通信モジュール部と、コールバック管理/実行モジュール部とを備えている請求項1又は請求項2に記載の通信ネットワークシステム。 The symmetric overlay network includes a P2P networking protocol module unit, a P2P transport module unit, a P2P routing table module unit, a P2P routing algorithm module unit, a P2P link communication module unit, a callback management / execution module unit, The communication network system according to claim 1 or 2, further comprising: 前記対称型オーバレイネットワークにおいて、各ノードは少なくとも正副2本の接続を持っており、そのどちらかの切断を検知すると、すぐにもう1本の接続を獲得するようになっている請求項1乃至請求項3のいずれかに記載の通信ネットワークシステム。 In the symmetric overlay network, each node has at least two primary and secondary connections, and when one of the connections is detected, another connection is immediately acquired. Item 4. The communication network system according to Item 3. 前記対称型オーバレイネットワークは、パケットを中継する「ルータノード」と、パケットを中継せず、利用者が操作するアプリケーションが稼働する「リーフノード」と、新規参入ノードが前記対称型オーバレイネットワークに参入する際に仲介し、前記新規参入ノードの接続すべき隣接ノードを教える「エントリポイント」とから構成されている請求項1乃至請求項4のいずれかに記載の通信ネットワークシステム。 In the symmetric overlay network, a “router node” that relays packets, a “leaf node” that does not relay packets and operates an application operated by a user, and a new entry node enters the symmetric overlay network. The communication network system according to any one of claims 1 to 4, further comprising an "entry point" that mediates at that time and teaches an adjacent node to which the new entry node is to be connected. 前記オーバレイネットワークでは、予め知られているノード以外のノードの参入を排除できるように、前記「エントリポイント」で適切なフィルタリングを行う請求項5に記載の通信ネットワークシステム。 The communication network system according to claim 5, wherein in the overlay network, appropriate filtering is performed at the “entry point” so that entry of nodes other than nodes known in advance can be excluded. 前記代表ノードが前記対称型オーバレイネットワークから離脱した場合は、前記副代表ノードが前記代表ノードになり、そして、自分が副代表として知っているノードの中から新たな副代表を選出するようになっている請求項2に記載の通信ネットワークシステム。 When the representative node leaves the symmetric overlay network, the secondary representative node becomes the representative node, and a new secondary representative is selected from the nodes that the node knows as the secondary representative. The communication network system according to claim 2. 前記IPトランスポート層として、TCP、又はreliable UDPを用いる請求項1に記載の通信ネットワークシステム。 The communication network system according to claim 1, wherein TCP or reliable UDP is used as the IP transport layer.
JP2003278237A 2003-07-23 2003-07-23 Communication network system Expired - Fee Related JP4319486B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003278237A JP4319486B2 (en) 2003-07-23 2003-07-23 Communication network system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003278237A JP4319486B2 (en) 2003-07-23 2003-07-23 Communication network system

Publications (2)

Publication Number Publication Date
JP2005045591A JP2005045591A (en) 2005-02-17
JP4319486B2 true JP4319486B2 (en) 2009-08-26

Family

ID=34264708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003278237A Expired - Fee Related JP4319486B2 (en) 2003-07-23 2003-07-23 Communication network system

Country Status (1)

Country Link
JP (1) JP4319486B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101878620A (en) * 2007-11-29 2010-11-03 英特尔公司 Modifying system routing information in a link-based system
JP4947106B2 (en) * 2009-07-27 2012-06-06 ブラザー工業株式会社 Information communication system, information communication method, node device included in information communication system, information processing program, and node device program
JP2012050019A (en) * 2010-08-30 2012-03-08 Brother Ind Ltd Node device, information communication system, information processing method, and information processing program

Also Published As

Publication number Publication date
JP2005045591A (en) 2005-02-17

Similar Documents

Publication Publication Date Title
US10476793B2 (en) Multicast flow overlay using registration over a reliable transport
Xylomenos et al. Caching and mobility support in a publish-subscribe internet architecture
US8897311B2 (en) Dynamic discovery mechanisms via inter-domain routing protocol
US9787593B2 (en) Performing path-oriented systems management
JP6047229B2 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
JP4677155B2 (en) On-demand overlay routing for computer communications networks
US8868757B1 (en) Two-way web service router gateway
US8699410B2 (en) Method and apparatus for automatic sub-division of areas that flood routing information
US8817815B2 (en) Traffic optimization over network link
JP5726302B2 (en) Secret or protected access to a network of nodes distributed across a communication architecture using a topology server
JPH10150470A (en) Method for transferring connection management information in request and response of world wide web
US9660898B2 (en) Enhanced protocol independent multicast source registration over a reliable transport
JP4317216B2 (en) Packet communication network and packet communication method
JP4319486B2 (en) Communication network system
JP5078034B2 (en) Communication device, P2P network construction method, program, and recording medium
EP1598997B1 (en) Routing in a communications network
JP4432626B2 (en) Multicast tree construction system and method, network node device, and server device
JP6062743B2 (en) Distribution tree construction method, terminal management server, and content distribution system
Buford et al. Application-layer multicast extensions to resource location and discovery (reload)
Tsuchiya et al. STARCast: streaming collaboration architecture on heterogeneous environment everywhere
KR100696206B1 (en) Resource Retrieval Method for Peer-to-Peer Applications
Firdhous et al. Overlay network for the distribution of streaming media
Buford RFC 7019: Application-Layer Multicast Extensions to REsource LOcation And Discovery (RELOAD)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090408

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

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

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

Free format text: PAYMENT UNTIL: 20120605

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120605

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130605

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees