JP2005045591A - 通信ネットワークシステム - Google Patents

通信ネットワークシステム Download PDF

Info

Publication number
JP2005045591A
JP2005045591A JP2003278237A JP2003278237A JP2005045591A JP 2005045591 A JP2005045591 A JP 2005045591A JP 2003278237 A JP2003278237 A JP 2003278237A JP 2003278237 A JP2003278237 A JP 2003278237A JP 2005045591 A JP2005045591 A JP 2005045591A
Authority
JP
Japan
Prior art keywords
node
nodes
overlay network
representative
network
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.)
Granted
Application number
JP2003278237A
Other languages
English (en)
Other versions
JP4319486B2 (ja
Inventor
Masao Onishi
雅夫 大西
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.)
KATSUTA YOSHIJI
SANNETTO KK
Original Assignee
KATSUTA YOSHIJI
SANNETTO KK
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 KATSUTA YOSHIJI, SANNETTO KK filed Critical KATSUTA YOSHIJI
Priority to JP2003278237A priority Critical patent/JP4319486B2/ja
Publication of JP2005045591A publication Critical patent/JP2005045591A/ja
Application granted granted Critical
Publication of JP4319486B2 publication Critical patent/JP4319486B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムを提供する。
【解決手段】 IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築し、前記対称型オーバレイネットワークは、全てのノードがn進分類木として論理的に接続されており、前記ノードが自身を特定するための識別子を持っており、前記ノードの前記識別子をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定されるようになっており、前記ノードの基本的な接続数はn+1であり、前記ノード間はIPトランスポート層によって接続されるようにする。
【選択図】 図1

Description

本発明は、通信ネットワークシステムに関し、詳しくは、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムに関する。
現在、現行のIPネットワーク(その一例として、例えばインターネット)は、WAN(Wide Area Network)において、アドレッサブルなサーバマシンに各クライアントマシンが接続されることによって、初めてクライアントマシン間でのデータ授受が可能になる。つまり、サーバマシンとクライアントマシンの役割が明確に分かれているという意味において、IPネットワークは「非対称」である。IPネットワークのこの非対称性は、LAN(Local Area Network)での運用では発生せず、WANでの運用において発生するものである。要するに、IPネットワークはWANにおいて対称性が破れていると考えることができる。
ところで、IPネットワークのWANでの利用が普及するに従って、グローバルなIPアドレスを有し、グローバルにアドレッサブルなマシンを、必ずしもグローバルにアドレッサブルとは限らないマシンから利用する、という形態が広がりつつある。例えば、WWWの閲覧を行う場合、コンテンツはグローバルにアドレッサブルなマシン上にあり、それを、家庭などのパソコンからIPプロバイダ経由でアクセスするといった形態がその一例である。逆に、家庭などのパソコン側にHTTPサーバを配置して外部からのアクセスを受け付けることは次の理由から非常に困難である。まず、理由その一は、一般的には家庭内のパソコンはグローバルにアドレッサブルではない。理由その二は、家庭内のパソコンを外部からの接続に耐えるほどセキュアに保つのが困難である。
上述したような理由から、現在、IPネットワークのWANでの利用は非対称であり、サーバマシンとクライアントマシンの役割や運用方法は明確に区別されている。従って、こうした状況では、家庭間あるいは企業間でパソコン同士を接続してLANと同様の恩恵を被るのは不可能である。
つまり、現在のインターネットの問題点として、次のようなことが挙げられる。
(1)限られたサーバを介してしか情報流通が行われないので、家庭同士の情報交流或いは企業間のワークグループ支援に利用するのが困難である。
(2)コンテンツを作るよりもサーバ環境を構築・維持管理するのが大変である。
(3)ファイアウォールの有無・種類やグローバルIPアドレスの有無などにより、接続可能性が左右されるので、既存の優れたプロトコルが容易に利用できない。
(4)一般的には、ブロードキャストとマルチキャストを利用することができない。
(5)セキュリティ、匿名通信、課金、QoSを実現するために、膨大なコストがかかる。
(6)サーバへの負荷集中が全体のスループットを落している。
一方、近年、例えばADSLやFTTHなどのWANでの低価格な高帯域通信サービスが普及し、個人端末として多く使用されているパソコンの処理能力も著しく向上して来たため、従来の非対称型の接続形態を維持することは無意味になりつつあり、よって、WAN上での対称型接続を可能にする、つまり、P2P(peer-to-peer)と呼ばれる技術も普及しつつある。このP2P技術の利点として、次のようなことが挙げられる。
まず、ファイアウォール内、グローバルIPアドレスなしでもネットワークに接続し、ファイルやデータ及び計算をサービスできる。次に、能力の小さなマシンからでも、数千、数万のマシンにストリーミング・サービスが可能である。ネームサービス、ファイアウォールなど難解な設定やサーバの管理が不要であるため、使い易い。また、通常のインターネットクラッキングの脅威が及ばないので、安全である。インターネットブロードキャスト通信による強力な検索能力を有する。インターネットマルチキャスト通信によるグループ活動支援ができる。更に、アプリケーションサーバの運用管理が不要である。
現行のP2P技術の具体例として、例えば「Gnutella」、「Napster」、「Internet Relay Chat」といったP2P技術を利用したアプリケーションがある(非特許文献1参照)。
伊藤直樹著、「P2Pコンピューティング〜技術解説とアプリケーション〜」、第1版、株式会社ソフト・リサーチ・センター、2001年11月
例えば、「Gnutella」とは、様々なフォーマットのファイル交換が可能な初期のP2Pソフトウェアであるが、それ以外の計算処理や遠隔操作が不可能といった欠点を有する。「Gnutella」はサーバレスタイプの純P2Pソフトウェアの代表格であるが、ファイル交換という機能以上のものではない。
また、「Internet Relay Chat」とは、メッセージ交換やファイル交換などの機能を持つサーバ利用タイプのP2Pソフトウェアである。いずれも、目的とするアプリケーション依存型で、そのアプリケーションを外れた、ネートワーク(インターネット)上でのデータ処理や計算処理ができないといった欠点を有する。
本発明は上述のような事情に鑑みてなされたものであり、本発明の目的は、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムを提供することにある。
本発明は、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムに関し、本発明の上記目的は、IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムであって、前記対称型オーバレイネットワークは、全てのノードがn進分類木として論理的に接続されており、前記ノードが自身を特定するための一意的の識別子を持っており、前記ノードの前記識別子をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定されるようになっており、前記ノードの基本的な接続数はn+1であり、前記ノード間はIPトランスポート層によって接続されるようにすることによって達成される。
また、本発明の上記目的は、前記対称型オーバレイネットワークにおいて、あるノードから任意のノードへ向かう中継ノードを必ず2ルート接続確立しておくようにし、前記中継ノードは代表ノードと副代表ノードとから構成されるようにすることにより、或いは、前記対称型オーバレイネットワークは、P2Pネットワーキングプロトコルモジュール部と、P2Pトランスポートモジュール部と、P2Pルーティングテーブルモジュール部と、P2Pルーティングアルゴリズムモジュール部と、P2Pリンク通信モジュール部と、コールバック管理/実行モジュール部とを備えることにより、或いは、前記対称型オーバレイネットワークにおいて、各ノードは少なくとも正副2本の接続を持っており、そのどちらかの切断を検知すると、すぐにもう1本の接続を獲得するようにすることにより、或いは、前記対称型オーバレイネットワークは、パケットを中継する「ルータノード」と、パケットを中継せず、利用者が操作するアプリケーションが稼働する「リーフノード」と、新規参入ノードが前記対称型オーバレイネットワークに参入する際に仲介し、前記新規参入ノードの接続すべき隣接ノードを教える「エントリポイント」とから構成されるようにすることにより、或いは、前記オーバレイネットワークでは、予め知られているノード以外のノードの参入を排除できるように、前記「エントリポイント」で適切なフィルタリングを行うようにすることにより、或いは、前記代表ノードが前記対称型オーバレイネットワークから離脱した場合は、前記副代表ノードが前記代表ノードになり、そして、自分が副代表として知っているノードの中から新たな副代表を選出するようにすることにより、或いは、前記IPトランスポート層として、TCP、reliable UDP、HTTPの何れか1つを用いることによってより効果的に達成される。
従来のIPネットワークにおいては、どんなノードでも、IPプロバイダと契約する、或いはWANに接続されたLANに接続する、という最低限の条件が整えば、ネットワークに参入し、グローバルにアドレッサブルな他のノードに対するクラッキングを試みることが可能となる。これに対し、本発明に係る通信ネットワークシステムにおいて、対称型オーバレイネットワーク(SON)では、エントリポイントで適切なフィルタリングを行うことによって、予め知られているノード以外のノード参入を排除することができるので、従って、本発明の対称型オーバレイネットワーク(SON)は、従来のIPネットワークよりもセキュアな運用が可能となるという顕著な効果を奏する。
本発明に係る通信ネットワークシステムは、アプリケーション機能とネットワーク機能を完全に分離することによって実現された、インターネットなどのWAN上の多目的かつ汎用の通信ソフトウェアである。従来の他の多くのP2Pソフトウェアがアプリケーション依存型であるのに対し、本発明の通信ネットワークシステムは、あらゆるプロトコル、あらゆるアプリケーションを通し、かつ遠隔ネットワーク上で計算処理などのリモート複合処理機能が可能になる汎用の通信基盤を提供する。そのため、本発明の通信ネットワークシステムは様々な既存の通信アプリケーションプロトコルをトンネリングすることができるという優れた効果を奏する。
このような機能を実現する本発明は世界初で独自のものであることは言うまでもない。
本発明の通信ネットワークシステムにおいて、対称型オーバレイネットワークが自律的に構築されていき、そして、自律的に対称型オーバレイネットワークのルーティングが可能であり、トランスポート通信層を提供する。本発明において、対称型オーバレイネットワークを多目的に利用することが可能で、任意のIPアプリケーション・パケットを送受信することができる。
以下、本発明の好適な実施形態について図面を参照しながら詳細に説明する。
本発明に係る通信ネットワークシステムは、IPネットワーク(その好適例として、例えばインターネット)上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にした通信ネットワークシステムである。
本発明では、LAN環境におけるIPネットワークと同程度に対称的なトランスポート層を既存のIPネットワーク上にオーバレイさせることで対称型WANを構築するようにしている。本発明に係る通信ネットワークシステムは、P2Pネットワーキングのためのトランスポート層(つまり、自律型オーバレイネットワークに基づく対称型トランスポート層)をも提供する。本発明の最大の特徴とは、従来のクライアント/サーバ型通信プロトコルを対称型オーバレイネットワーク(以下、P2Pオーバレイネットワークとも称する)でトンネリングすることにより、プログラミングレスで対称型コンピューティング環境(以下、P2Pコンピューティング環境とも称する)を可能にすることである。
本発明に係る通信ネットワークシステムにおいて、IPネットワーク上に構築されるP2PオーバレイネットワークによるWAN対称性は、以下のように実現される。
まず、WANにおけるIPネットワークの「対称性の破れ」は、次の違いとして定義できる。まず、LANにおいては、ノードの参入と共に、ノードのアドレッサビリティが実現される。次に、WANにおいては、ノードがネットワークに参入しても、アドレッサブルになるとは限らない。
従って、ノードを参入させると、そのノードがアドレッサブルになるネットワークをIPネットワークの上に実現すれば良い。一般に、既存のネットワーク上に仮想的に構築されるネットワークは「オーバレイネットワーク」と呼ばれる。従って、本発明の主な特徴としては、IPネットワーク上に対称型オーバレイネットワークを構築することである。
本発明に係る通信ネットワークシステムにおいて、複数のノードから構成される対称型オーバレイネットワークをSONとも呼ぶ。対称型オーバレイネットワーク(SON)では、IPアドレスに代わるものとして、各ノードの識別子には128ビットのuuid(つまり、Universally Unique Identifierで、UUIDとも称する)を用いる。uuidはノードを初回に起動した際に、各ノードが算出するものである。
具体的に、対称型オーバレイネットワークは、パケットを中継する「ルータノード」(以下中継ノードとも称する)と、パケットを中継せず、利用者が操作するアプリケーションが稼働する「リーフノード」と、新規ノードが対称型オーバレイネットワークに参入する際に仲介し、接続すべき隣接ノードを教える「エントリポイント」とから構成される。
対称型オーバレイネットワークにおいて、各ノードは識別子を持っており、その識別子(つまり、uuid)をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定される。また、対称型オーバレイネットワークにおいて、各ノードは最低正副2本の接続を持っており、そのどちらかの切断を検知すると、すぐにもう1本の接続を獲得するようになっている。
新規ノードが自分のuuidを「エントリポイント」と呼ばれるグローバルにアドレッサブルなノードに提示すると、対称型オーバレイネットワーク(SON)は、最悪2p−1のホップ数でグローバルにアドレッサブルな最近接ノードを紹介し、新規ノードは紹介された最近接ノードとの間にIPトランスポート接続を確立する。ここで、p=LogNという式が成立する。ただし、Nは対称型オーバレイネットワークの全ノード数で、nは後述するn進分類木のnである。
基盤となるIPトランスポート接続の候補として、好適に、TCP、reliable UDP(つまり、UDPを用いながら順序保証、到達保証(再送)を行なうようにする仕組みである)、HTTPが用いられる。以降、そのIPトランスポート接続は、TCPの永続的接続、或いは、UDP上でパルス信号を用いた擬似接続として維持され、新規ノードへ(から)の全てのパケットは、そのIPトランスポート接続を経由して最悪2p−1のホップ数で、他の任意のノードから(に)到達することとなる。従って、ノードは一旦対称型オーバレイネットワークに接続すると、それが仮にIPネットワークにおいてグローバルにアドレッサブルでなくても、対称型オーバレイネットワーク(SON)上ではuuidを介してグローバルにアドレッサブルとなる。
前述した通り、ノードとノードを結ぶ接続は、1つのIPトランスポート接続であるから、ノードが複数の通信サービスのパケットを産出/消費/中継する場合に、それらの通信の各々は多重化(multiplexing)される必要がある。対称型オーバレイネットワーク(SON)上のアプリケーションは、SON上で提供されるバーチャルサーキット(以下、チャネル(channel)と呼ぶ)をあたかもIPネットワークにおけるソケットとして利用するため、本発明に係る通信ネットワークシステムにおいて、多重化機構の存在を意識することは全く必要がない。
次に、本発明において、対称型オーバレイネットワーク(SON)を実装する上での問題点及びその解決方法を述べる。
<1>頑健性の実現
前述したように、ノード間の接続を1つのIPトランスポート接続としたが、これでは例えばノードA→ノードB→ノードCという接続において、ノードBが対称型オーバレイネットワークから離脱してしまうと、ノードAからノードCへのパケットも到達しなくなってしまうという問題が生じる。そこで、ノードAから例えばノードCのような任意の宛先ノードへ向かう中継ノードを必ず2つの接続(例えば、ノードBとの接続だけでなく、ノードDとの接続も)を確立しておくようにする。
このとき、ノードBが対称型オーバレイネットワークから離脱したら、直ちにノードDに加え、新たにノードEとも接続確立することが必要である。本発明において、1つのノードに対して2つの接続を確保するような条件を対称型オーバレイネットワーク(SON)における「頑健性条件」と呼ぶ。これらの中継ノード(例えばノードB、ノードD、ノードE)が、実際にどのように決定されるかは後述する。
<2>ノードの参入及び離脱に伴うルーティングテーブルの管理
対称型オーバレイネットワーク(SON)において、ノードはn進分類木として論理的に接続されている。従って、ノードの基本的な接続数はn+1である。ただし、前述の頑健性条件に従って更に付加的な接続が必要となる。
本発明に係る通信ネットワークシステムおいて、対称型オーバレイネットワーク(SON)の構成要素(つまり、ノード)には、その識別子として、1つのユニークなn進数(つまりuuid)が割り当てられる。対称型オーバレイネットワーク(SON)は、このn進分類木を物理的接続(TCPの永続的接続、又は、UDP上でパルス信号を用いた擬似接続)と、個々のノードが持つ「部分的n進分類木(つまり、ルーティングテーブル)」で表現する。
図1は、本発明に係る通信ネットワークシステムの対称型オーバレイネットワークの論理構成(n進分類木)を示す模式図である。本発明の対称型オーバレイネットワークの論理構成は、前述したように、n進数を階層化して構成されたn進分類木によって表している。
図1は、nが3である場合、つまり3進数を階層化して構成された3進分類木を表している。図1において、[]内の数字はノードの識別子であるuuidの3進数表示であり、ルートノード(本例では、ノード2100)は、1桁目全てに合致するノード(つまり、対称型オーバレイネットワークの全ノード)の代表である。また、レベル2の3つのノード(本例では、ノード0002、ノード2100、ノード1211)は、1桁目がそれぞれ0、1、2の全てのノードの代表となっている。つまり、本発明において、対称型オーバレイネットワークは、レベル数と等しい桁の数値におけるn進分類木として構成されている。
本発明の対称型オーバレイネットワークにおいて、レベルLにおいてL桁目が等しいn個のノードのうちのどれか1つは、必ずL−1の代表に対する副代表となっており、代表ノードが離脱した場合は新たな代表となり、自分が副代表として知っているノードの中から新たな副代表を選出することにより、前述した頑健性条件を満足させる。この頑健性条件を満足する分類木を「分類代表木」と呼ぶ。
更に、図1において、あるノードと実線及び破線で結ばれるすべてのノードを「隣接ノード」という。また、隣接ノードを含むクラスを「隣接クラス」という。更に、実線で直接結ばれる上位ノードと下位ノードは「親子関係にある」という。図1から分かるように、例えば、ノード1210の親はノード2100である。Postfix(末尾共通部)‘*0’といった分類(クラスとも称する)について、クラス‘*0’の代表(R)はノード2100で、クラス‘*0’の副代表(r)はノード1210で、また、クラス‘*0’の親クラスは‘*’で、クラス‘*0’の子クラスは、‘*00’、‘*10’及び‘*20’である。
対称型オーバレイネットワーク(SON)におけるパケットのルーティングは、図1に示されたようなn進分類木(本例では、3進分類木)を辿ることで行われる。従って、ノード0020からノード0002へのユニキャスト通信パケットは、ノード2100はノード0020にとって、レベル2及びレベル1における代表ノードであるため、ノード2100を経由してノード0002に届くことになる。また、ブロードキャストのルーティングは分類木上で、up*/down*アルゴリズムにより行われる。
対称型オーバレイネットワーク(SON)の各ノードは、この分類代表木のうちの、自分が直接接続しているノードに関係する部分木を分散管理する。つまり、対称型オーバレイネットワーク(SON)におけるルーティングテーブルは、分類代表木の部分的n進分類木である。図1の例において、ノード2100は、ノード2100、ノード1211、ノード0002を含む部分的3進分類木を管理するようになっている。対称型オーバレイネットワーク(SON)において、ノードの参入及び離脱は、関連するノードが相互に必要最低限の通信を行いながら自律的に分散分類代表(部分)木を維持するアルゴリズムに帰着するようになっている。
<3>ダイナミックな構成変更(ノードの参入と離脱)におけるデッドロック及び循環の回避
例えば、任意のタイミングでのノードの離脱/参入を許す対称型オーバレイネットワークにおいては、次の問題が発生する。
(1)ルーティングテーブル(分類代表部分木)のメンテナンスのために必要な接続確立の見え方が、ノードによって一様ではない。つまり、僅かな時間差で、未接続に見えたり接続済に見えたり、或いは、未切断に見えたり切断済に見えたりすることが発生する。このとき、接続の確立/切断の認知を同期させようとすると、デッドロックが発生する。
(2)ルーティングテーブル維持プロトコルを含む全ての通信において、ルーティングテーブルの更新状況が僅かな時間差でノードによって異なる。このことはパケットの循環を引き起こす。
まず、デッドロックを回避するために、本発明では「遅延接続」という実装方法を導入した。これはプログラミングレベルにおいては時間差を意識せずにプロトコルを実装しておき、通信層が実際の接続が行われるのを待って、パケットの送信を行う、というものである。このことにより、プログラミングからは、デッドロックを引き起こす同期を排除できる。実際の接続確立は、IPトランスポート層におけるソケットのacceptが行われた際に通信層が検知する。
次に、パケット循環の回避は、自分のルーティングテーブルに基づいて、パケットの循環が発生するか否かのチェックを各ノードが行うことにより行う。循環を検知した場合に、ノードは1バージョン前のルーティングテーブルを利用してルーティングを行うようにする。
<4>単一接続内の多重化に伴うQoS(Quality of Service)上の問題
上述したように、対称型オーバレイネットワーク(SON)において、ノードが複数の通信サービスのパケットを産出/消費/中継する場合、それらの通信の各々は1つのIPトランスポート接続上で多重化されている。Telnet、http、rfbp(virtual network computingにおいて用いられているプロトコル)など一般のプロトコルにおいては、クライアント(またはサーバ)におけるパケットの単位時間当りの産出量とサーバ(またはクライアント)におけるパケットの消費量は等しい。
しかしながら、一部のストリーミング・サービスにおいては、産出量が消費量を大きく上回る。つまり、産出側は書き出せる限り書き出すものの、消費側は一定の速度でしか消費を行わない。この種のパケットが一般のプロトコルが共有する通信路に流れると、他のサービスの実行を阻害したり、或いは一般のプロトコルのパケットの大量混入によってストリーミング・サービスが続行不可能になったりするといった問題が起こる。
本発明において、このような問題を回避するためには、ストリーミング・サービスが必要とする帯域の下限値をやや上回る程度でパケットが流れるように、通信路を共有する全プロトコルの流率制限を行うようにしている。
図2は、図1に示された対称型オーバレイネットワークの物理構成を示す模式図である。図2において、例えば、ノード2220の場合、矢印で示された枠に書いてあるように、「‘*20’のクラス」を「‘*220’のクラス」の親クラスと言い、また、「‘*220’のクラス」を「‘*20’のクラス」の子クラスと言う。
図3(A)及び図3(B)は、本発明において、ノードの対称型オーバレイネットワークへの参入を表す模式図である。詳細に、図3(A)は、ノードの対称型オーバレイネットワークへの参入を論理構成で表す模式図である。図3(B)は、ノードの対称型オーバレイネットワークへの参入を物理構成で表す模式図である。
図4は、本発明において、ノードのP2Pオーバレイネットワークからの離脱を表す模式図である。図4において、ノード2100が離脱される前及びノード2100が離脱された後の、P2Pオーバレイネットワークの物理構成を表している。図5は、本発明において、通信(パケットのルーティング)を表す模式図である。
図6Aは、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの機能(モジュール部)の構成図である。更に、図6B、図6C、図6D、図6E、図6F及び図6Gは、各モジュール部のトラフィックの流れを示す模式図である。なお、図6A〜図6Gにおいて、図中の矢印はトラフィックの流れ方向を示しており、矢印上の文字はトラフィックの内容を示し、矢印上の括弧内の英数字6A01〜6A29はトラフィックの順番を示している。
図6A及び図6Bに示されるように、P2Pネットワーキングプロトコルモジュール部6A1は、ノードの参入、離脱を契機に実行され、ネットワークの接続と個々のノードが保持するルーティングテーブルの整合性を維持する。より詳細に、P2Pネットワーキングプロトコルモジュール部6A1は、アプリケーションからのネットワーク参入要求、及びP2Pリンク通信モジュールからの隣接ノードの離脱通知を受け、参入プロトコル、離脱プロトコルを実行する。参入プロトコル及び離脱プロトコルの詳細は、後述する図7及び図13のシーケンス図並びにそれらが利用するアルゴリズムのフローチャート図に詳細に示されている。
参入時に参照する自ノードのuuidおよびエントリポイントのアドレスのリストは設定ファイルより読み込む。uuidが未設定の場合(初回起動時)、本処理がuuidを生成し、設定ファイルに書き込む。参入、離脱プロトコルのための電文(hello, welcome, newbee, miss, update)は、「P2Pトランスポートモジュール部6A2」にopen/close要求、read/write要求を出すことにより他ノードへ(から)送信(受信)される。
P2Pネットワーキングプロトコルモジュール部6A1は、参入、離脱プロトコルのための電文を構築するために、「P2Pルーティングテーブルモジュール部6A3」から、隣接ノード情報、変更要求を受け取る。また、電文内容をルーティングテーブルに反映するために、初期情報(新規参入時)、ノード追加要求、補完要求を渡す。また、welcome電文内に隣接ノードのIPアドレスを含めるために、「P2Pリンク通信モジュール部6A5」からIPアドレスを受け取る。
また、参入プロトコルのためのhello電文を新規参入ノードの最近接ノードに送り届けるために、P2Pネットワーキングプロトコルモジュール部6A1は「P2Pルーティングアルゴリズムモジュール部6A4」から最隣接ノードのuuidを受け取る。
P2Pネットワーキングプロトコルモジュール部6A1は、P2P通信の基盤となるTCP/IP接続あるいはUDP/IPによる疑似接続(本発明ではこれをpeerと呼ぶ)を維持するため、「P2Pリンク通信モジュール部6A5」に対し、リンク作成要求、リンクaccept要求、仮接続(エントリポイントとの通信に用いる)のリンク化要求、リンク切断要求を渡す。
図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の際は、パケットからヘッダを除き、データを連結して呼出し元に返す。
P2Pトランスポートモジュール部6A2は、open要求内で仮接続通信(新規参入ノードとエントリポイントとの間で行なわれる)を指示された場合に、「P2Pリンク通信モジュール部6A5」に仮接続確立要求を出す。
P2Pトランスポートモジュール部6A2は、着信したパケットに対応するコールバック処理(アプリケーション)が存在する場合に、「コールバック管理/実行モジュール部6A6」にコールバック実行要求を出す。
図6A及び図6Dに示されるように、P2Pルーティングテーブルモジュール部6A3は、個々のノードが保持するルーティングテーブルに、ノードの追加及び削除を行う。より詳細に、P2Pルーティングテーブルモジュール部6A3は、「P2Pネットワーキングプロトコルモジュール部6A1」から初期情報、ノード追加要求、補完要求を受けて、ルーティングテーブルの状態を更新する。また、「P2Pネットワーキングプロトコルモジュール部6A1」に対して、隣接ノード情報、変更要求を、「P2Pルーティングアルゴリズムモジュール部6A4」に対し、ルーティングテーブル情報を渡す。
図6A及び図6Eに示されるように、P2Pルーティングアルゴリズムモジュール部6A4は、パケットの中継先通信路(peer)、受信チャネルを決定する。より詳細に、P2Pルーティングアルゴリズムモジュール部6A4は、「P2Pルーティングテーブルモジュール部6A3」から受け取るルーティングテーブル情報の内容に基づき、「P2Pトランスポートモジュール部6A2」から得た送信要求を「P2Pリンク通信モジュール部6A5」に渡す。このとき、アウトバウンドルーティングにより適切なpeerを選択する。また、「P2Pリンク通信モジュール部6A5」から得た着信要求を、「P2Pトランスポートモジュール6A2」への着信要求として、あるいは「P2Pリンク通信モジュール部6A5」への送信要求として渡す。このとき、インバウンドルーティングにより適切なpeerまたはチャネルを選択する。
図6A及び図6Fに示されるように、P2Pリンク通信モジュール部6A5は、ノード間の通信路の接続確立及び切断を行う。より詳細に、P2Pリンク通信モジュール部6A5は、「P2Pネットワーキングプロトコルモジュール部6A1」及び「P2Pトランスポートモジュール部6A2」から、リンク作成要求、リンクaccept要求、仮接続のリンク化要求、リンク切断要求、仮接続確立要求を得て、P2P通信の基盤となるTCP/IP接続あるいはUDP/IPによる疑似接続(これをpeerと呼ぶ)を維持する。
P2Pリンク通信モジュール部6A5はpeerからのパケット到達を待機しているため、切断の検知が可能である。切断を検知すると、「P2Pネットワーキングプロトコルモジュール部6A1」に離脱通知を渡す。peerからパケットを受信すると、「P2Pアルゴリズムモジュール部6A4」に対して着信要求を渡す。また、「P2Pアルゴリズムモジュール部6A4」から送信要求を受け、対応するpeerに(TCP/IPあるいはUDP/IPにて)データ送信を行なう。
図6A及び図6Gに示されるように、コールバック管理/実行モジュール部6A6は、アプリケーションからコールバック登録要求を受けて、管理用テーブルに登録する。また、コールバック管理/実行モジュール部6A6は、「P2Pトランスポートモジュール部6A2」からコールバック実行要求を受けて、テーブル内の対応するコールバック処理を起動する。
図7は、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの参入)を示すシーケンス図である。まず、図7の矢印701に示されたように、新規参入ノードは、エントリポイントに対し、hello電文を送る。hello電文は新規参入ノード(つまり自ノード)のuuidと新規参入ノードのIPアドレスとを含んでいる。次に、矢印702に示されたように、エントリポイントは、ルーティングテーブル情報を利用し、図8に示されたアルゴリズムによって親ノードのuuidを得る。次に、矢印703に示されたように、得られた親ノードのuuidが自分自身のuuidと等しくなければ、得られたuuidのノードにhello電文を送る。このとき、エントリポイントはhello電文に自ノードのuuidを含める。hello電文を受け取ったノードは、矢印702から矢印703までの処理を行なう。
次に、矢印704に示されたように、図8に示すアルゴリズムによって得られた親ノードのuuidが自分自身のuuidと等しい場合に、そのノードは新規参入ノードの親ノードである。次に、矢印705に示されたように、親ノードはルーティングテーブルに新規参入ノードを追加する。次に、矢印706に示されたように、親ノードは新規参入ノードの隣接クラスのリストを得る。そして、矢印707に示されたように、親ノードは、新規参入ノードの隣接ノードにnewbee電文を送る。newbee電文は新規参入ノードのuuidと新規参入ノードのIPアドレスとを含む。ここで、隣接ノードとは、隣接クラスの代表および副代表となっているノードを意味する。
次に、矢印708に示されたように、親ノードは、エントリポイントにwelcome電文を送る。welcome電文は、隣接クラスのリスト(矢印706にて取得)と隣接ノードのIPアドレスのリスト(「P2Pリンク通信モジュール6A5」から取得)とを含む。そして、矢印709に示されたように、エントリポイントは新規参入ノードにwelcome電文を転送する。次に、矢印712に示されたように、新規参入ノードはwelcome電文内の隣接クラスのリストに基づいて、ルーティングテーブルを初期化する。一方、矢印710に示されたように、隣接ノードはnewbee電文で与えられた新規参入ノードのuuidをルーティングテーブルに追加する。最後に、矢印714、711、713に示されたように、新規参入ノード、親ノード、親以外の隣接ノードは、図12に示されたアルゴリズムに従って、それぞれ接続更新を行なう。
図8は、本発明のネットワーキングプロトコルにおける「親を探す」機能のフローチャートを示す。図8において、新規参入ノードのuuidを‘uuid’とする。その新規参入ノードが属する、ルーティングテーブル内の任意のクラスCについて、図8に示されたように、そのクラスCの親を探す。
図8に示されたように、まず、Cのpostfixと'uuid'の末尾共通部長Lを求める(ステップS801)。そして、末尾共通部長がLより長くなる子クラスか、Lと等しい親クラスを探す(ステップS802)。該当クラスが見つかった場合(ステップS803)、見つかったクラスをCにセットし(ステップS804)、ステップS801に戻る。一方、該当クラスが見つからなかった場合、Cの代表のuuidを返す(ステップS805)。
図9は、本発明のネットワーキングプロトコルにおける「隣接クラスのリストを得る」機能のフローチャートを示す。図9に示されたように、まず、空の結果リストを用意する(ステップS901)。そして、新規参入ノードが代表であるクラス(C)を結果リストに入れる(ステップS902)。次に、Cの親クラスが存在するか否かを判断する(ステップS903)。Cの親クラスが存在しない場合、結果リストを返して終了する(ステップS907)。一方、Cの親クラスが存在した場合、Cの副代表が新規参入ノードであるかを判断する(ステップS904)。Cの副代表が新規参入ノードでない場合、結果リストを返して終了する(ステップS907)。一方、Cの副代表が新規参入ノードである場合、Cの親クラスの新規参入ノードを代表とするクラス以外の子クラスを結果リストに入れる(ステップS905)。そして、Cにその親クラスをセットし(ステップS906)、ステップS903に戻る。
図10は、本発明のネットワーキングプロトコルにおける「ルーティングテーブルへの新規参入ノードの追加」機能のフローチャートを示す。図10の中に現れる、「最短識別可能末尾部」とはuuid1(例えば10011)とuuid2(例えば11011)がある場合、uuid1からみて最短で識別できるpostfix(この例では‘*0011’)のことである(uuid2からみると‘*1011’)。
図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’の最短識別可能末尾部長より長くなかった場合、そのまま終了する。
図11は、本発明のネットワーキングプロトコルにおける新規参入ノードの「ルーティングテーブルの初期化」機能のフローチャートを示す。図11に示されたように、まず、空のルーティングテーブルを用意する(ステップS1101)。そして、隣接クラスリストが空か否かを判断する(ステップS1102)。隣接クラスリストが空であれば、ルーティングテーブルを返し(ステップS1104)、終了となる。一方、隣接クラスリストが空でない場合、隣接クラスリスト内から既にある隣接クラスと重複しないものを一つ取り出し、ルーティングテーブルに入れて(ステップS1103)、ステップS1102に戻る。
図12は、本発明のネットワーキングプロトコルにおける「接続更新」機能のフローチャートを示す。図12示されたように、まず、ルーティングテーブルの更新前後を比較し、削除ノードのリストと、追加ノードのリストを得る(ステップS1201)。そして、削除ノードのリストが空か否かを判断する(ステップS1202)。削除ノードのリストが空でない場合、ノードをそのリストから取り出し、当該peerを削除し(切断)(ステップS1203)、ステップS1202に戻る。一方、削除ノードのリストが空の場合、更に、追加ノードのリストが空か否かを判断する(ステップS1204)。追加ノードのリストが空であれば、終了となる。一方、追加ノードのリストが空でない場合に、追加ノードが新規参入ノードであれば、新たにtcp接続を行なってpeerを作成し(但し、仮接続が存在すればそれを再利用する)、さもなければtcp接続をacceptしてpeerを作成し(但し、仮接続が存在すればそれを再利用する)(ステップS1205)、ステップS1204に戻る。
図13は、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの離脱)を示すシーケンス図である。まず、図13の矢印1301に示されたように、ノードの離脱が発生すると、隣接ノードはTCP接続の切断、あるいはUDPパルスの非到達を検知する。次に、矢印1302に示されたように、隣接ノードはルーティングテーブルから離脱ノードを削除する。そして、矢印1303に示されたように、離脱ノードの削除の結果として生じた、副代表が不在となったクラス(つまり、欠損クラス)を判定する。次に、矢印1304に示されたように、欠損クラスの各々について、その代表ノードにmiss電文を送信する。miss電文は欠損が発生しているクラスのpostfixと、離脱したノードのuuidと、自ノード(つまり、発信ノード)のuuidとを含む。
そして、矢印1305に示されたように、miss電文を受け取ったノードは、図15に示されたアルゴリズムに従って、更新情報を構築する。次に、矢印1306に示されたように、更新情報はupdate電文により、欠損クラスが発生したノードに送信される。update電文は、欠損が発生しているクラスのpostfixと、更新情報と、更新情報が含むuuidに対応するIPアドレスのリストとを含む。そして、矢印1307に示されたように、隣接ノードは、更新情報に基づき、図16に示されたアルゴリズムに従ってルーティングテーブルを補完する。最後に、矢印1308に示されたように、隣接ノードは、図12に示されたアルゴリズムに従って接続更新を行なう。
図14は、本発明のネットワーキングプロトコルにおける「離脱ノードのルーティングテーブルからの削除」機能のフローチャートを示す。図14において、削除対象はuuid_depで、Cをルーティングテーブル内の全てのクラスの各々とする。
図14示されたように、まず、uuid_depがCの代表に等しいか否かを判断する(ステップS1401)。uuid_depがCの代表に等しい場合に、Cの副代表が存在するかどうかを判断する(ステップS1402)。Cの副代表が存在する場合、Cの副代表を代表にする(ステップS1403)。そして、ステップS1408に移る。前記ステップS1402において、Cの副代表が存在しないと判断された場合、先ず、代表を空にする(ステップS1404)。次に、親クラスにCの削除を要求する(ステップS1405)。そして、ステップS1408に移る。
一方、前記ステップS1401において、uuid_depがCの代表に等しくないと判断されたら、次はステップS1406に移る。そして、前記ステップS1406において、uuid_depがCの副代表に等しいと判断されたら、Cの副代表を空にする(ステップS1407)。そして、ステップS1408に移る。
次に、代表が存在する、かつ副代表が存在しない、かつ子クラスがあるかどうかを判断する(ステップS1408)。代表が存在する、かつ副代表が存在しない、かつ子クラスがある場合に、子クラスの代表のうちCの代表ともuuid_depとも異なるものを選んでCの副代表とする(ステップS1409)。
本発明のネットワーキングプロトコルにおける「欠損クラス判定」機能は、「離脱ノードのルーティングテーブルからの削除」機能で、副代表が空となったままのクラスを返す。
図15は、本発明のネットワーキングプロトコルにおける「更新情報の構築」機能のフローチャートを示す。図15において、欠損が発生しているクラスのpostfixを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に戻る。
図16は、本発明のネットワーキングプロトコルにおける「ルーティングテーブルの補完」機能のフローチャートを示す。図16に示されたように、まず、更新情報が空であるか否かを判断する(ステップS1601)。更新情報が空でない場合に、更新情報の要素であるクラスCを1つ取り出す(ステップS1602)。次に、Cのpostfixと同一のpostfixを持つルーティングテーブル内のクラスC’が存在するか否かを判断する(ステップS1603)。C’が存在すると判断された場合、C’の内容をCで置き換える(ステップS1604)。そして、ステップS1601に戻る。前期ステップS1603において、C’が存在しないと判断された場合、ルーティングテーブルにCを挿入する(ステップS1605)。そして、ステップS1601に戻る。
図17は、本発明において、パケットの送受信とルーティングを示す模式図である。図17は、データの送信元アプリケーションから宛先アプリケーションまでのデータの流れを示している。送信元アプリケーションは、送信に先だってチャネルを作成する。チャネルは種別(仮チャネル、ユニキャストチャネル、ブロードキャストチャネルのいずれか)、アプリケーションを識別するためのサービスポート番号、利用する帯域幅、宛先uuidを持つ。仮チャネルは新規参入ノードがエントリポイントと通信するための特殊なユニキャストチャネルである。
パケットの中継先(元)となる隣接ノードとの接続を管理するデータ構造をpeerと呼ぶ。peerは隣接ノードのuuid、優先帯域テーブルを持つ。優先帯域テーブルは、送信元ノードのuuid、宛先ノードのuuid、サービスポート番号が示す仮想的な接続ごとに帯域幅の値を管理している。
送信元アプリケーションがデータを書き出すと、データは固定長に分割され、送信元uuid、宛先uuidを含むヘッダ情報を付与され、通信パケットが構築される。パケットはアウトバウンドルーティングアルゴリズムが選択するpeerのキューにつながれ、そのパケットをpeerごとに存在するtcp送信デーモンがTCP/IPまたはUDP/IPにより送信する。
受信側ノードでは、パケットが到達したpeerのtcp受信デーモンがパケットを読み込み、それをインバウンドルーティングアルゴリズムに渡す。インバウンドルーティングアルゴリズムは、パケットのヘッダ情報を見て、自ノードが宛先である場合には対応するチャネルを、さもなければ中継すべきpeerを選択する。peerが選択された場合、インバウンドルーティングアルゴリズムはpeerのキューにパケットをつなぐ。
宛先が自ノードの場合、インバウンドルーティングアルゴリズムはパケットをチャネルのキューにつなぐ。サービスポート番号に対応するチャネルが存在しなければ、新たなチャネルが作成される。チャネル内のコールバック実行デーモンは対応するコールバック処理が起動されていなければ起動する。起動されたコールバック処理(アプリケーション)が、処理を行なうためにデータを読み出そうとすると、チャネルはキューからパケットを取り出し、ヘッダを除去してアプリケーションにデータを供給する。パケットがpeerのキューにつながれる際は、後述する図18A、図18B及び図18Cに示されるアルゴリズムにより帯域制御が行なわれる。
本発明のネットワーキングプロトコルにおける「アウトバウンドルーティング」機能について、次のようになる。まず、仮接続パケットならば、宛先ipアドレスでpeerをフェッチしてパケットをそのpeerのキューにつなぐ。次に、本接続の場合、ユニキャストまたはchannelのclose要求ならば、宛先uuidでpeerがフェッチできればパケットをそのpeerのキューにつなぎ、さもなければ、「ユニキャストのリレー」を実施し、パケットを得られた結果に対応するpeerのキューにつなぐ。また、ブロードキャストならば、「ブロードキャストのリレー」を実施し、パケットを得られた結果に対応するpeerのキューにつなぐ。
本発明のネットワーキングプロトコルにおける「インバウンドルーティング」機能について、次のようになる。まず、仮接続パケットならば、宛先uuidが示すchannelがあればパケットをそのchannelのキューにつなぎ、さもなければchannelを作成してパケットをそのchannelのキューにつなぐ。次に、本接続のブロードキャストパケットならば、「ブロードキャストのリレー」を実施し、宛先が示すchannelがあればパケットをそのchannelのキューにつなぎ、さもなければchannelを作成してパケットをそのchannelのキューにつなぐ。そして、本接続のユニキャストパケットならば、宛先uuidが自分でなければ「ユニキャストのリレー」を実施し、パケットを得られた結果に対応するpeerのキューにつなぎ、さもなければ宛先uuidが示すchannelがあればパケットをそのchannelのキューにつなぎ、さもなければchannelを作成してパケットをそのchannelのキューにつなぐ。
本発明のネットワーキングプロトコルにおける「ブロードキャストのリレー」機能について、次のようになる。自ノードを代表とするクラスの親クラスの代表で自ノードと異なるものの集合をupノードと呼ぶ。自ノードを代表とするクラスの子クラスの代表で自ノードと異なるものの集合をdownノード集合と呼ぶ。もし中継元ノードがupノードならば、中継先をdownノード集合とする。もし中継元ノードがdownノード集合の要素ならば、中継先をupノードとdown集合の要素ノードで、中継元ノードを除くものとする。
本発明のネットワーキングプロトコルにおける「ユニキャストのリレー」機能について、次のようになる。まず、末尾共通部長が最大になるclass(C)を探す。次に、Cの代表が自分であり、Cの子クラスの代表または副代表に宛先と合致するものがあればそれに送る。また、Cの代表が自分以外ならば、その代表に送る。
図18A、図18B及び図18Cは、本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートを示す。図18A、図18B及び図18Cに示されたように、まず、帯域制限が0以下または仮接続パケットであるか否かを判断する(ステップS1801)。帯域制限が0以下または仮接続パケットであると判断されたら、後述するステップS1819に移る。一方、帯域制限が0以下または仮接続パケットでない場合に、パケットヘッダの送信元uuid、宛先uuid、サービスポート番号でキーを作成する(ステップS1802)。次に、キーにマッチするエントリがあるか否かを判断する(ステップS1803)。キーにマッチするエントリがある場合に、後述するステップS1808に移る。
一方、キーにマッチするエントリがない場合に、エントリの帯域制限にヘッダの帯域制限をセットすると共に、エントリの開始時刻に現在時刻をセットするし、エントリを登録する(ステップS1804)。そして、peerの帯域制限総量が0であるか否かを判断する(ステップS1805)。peerの帯域制限総量が0でないと判断されたら、後述するステップS1807に移る。一方、peerの帯域制限総量が0の場合、peerの開始時刻にエントリの開始時刻をセットする(ステップS1806)。そして、peerの帯域制限総量にヘッダの帯域制限を加算する(ステップS1807)。続いて、エントリの通信量(Kbits)をヘッダの「データ長」の値で加算する(ステップS1808)。そして、エントリの開始時刻の3秒後であるか否かを判断する(ステップS1809)。エントリの開始時刻の3秒後でないと判断されたら、後述するステップS1811に移る。
一方、エントリの開始時刻の3秒後であれば、エントリの「現在帯域」をエントリの通信量÷エントリの開始時刻からの経過時間(秒)にセットする(ステップS1810)。peerの通信量(Kbits)をヘッダの「データ長」の値で加算する(ステップS1811)。その後、peerの開始時刻の3秒後であるか否かを判断する(ステップS1812)。peerの開始時刻の3秒後でないと判断されたら、後述するステップS1814に移る。一方、peerの開始時刻の3秒後であれば、peerの「現在帯域」をpeerの通信量÷peerの開始時刻からの経過時間(秒)にセットする(ステップS1813)。
その後、帯域制限が0より大きいか否かを判断する(ステップS1814)。帯域制限が0より大きい場合、更に、エントリの現在帯域がエントリの帯域制限の120%を越えているか否かを判断する(ステップS1815)。エントリの現在帯域がエントリの帯域制限の120%を越えていなければ、後述するステップS1819に移る。一方、エントリの現在帯域がエントリの帯域制限の120%を越えた場合に、エントリの現在帯域の超過分を制限で割った秒数スリープする(ステップS1816)。ステップS1801に移る。
一方、前記ステップS1814において、帯域制限が0より大きいと判断されない場合、更に、peerの現在帯域からエントリへの現在帯域を引いた値がpeerの帯域制限からエントリの帯域制限を引いた値の120%を下回っているか否かを判断する(ステップS1817)。peerの現在帯域からエントリへの現在帯域を引いた値がpeerの帯域制限からエントリの帯域制限を引いた値の120%を下回っていなければ、peerの送信キューにつなぐ(ステップS1819)。一方、peerの現在帯域からエントリへの現在帯域を引いた値がpeerの帯域制限からエントリの帯域制限を引いた値の120%を下回っている場合に、エントリの現在帯域の超過分を制限で割った秒数スリープする(ステップS1818)。そしてステップS1801に戻る。
本発明において、電文仕様は次のようになる。つまり、本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークのヘッダは、種別(TMP(仮接続),BROAD(ブロードキャスト),UNI(ユニキャスト),CLOSE(channelのclose要求)のどれか)と、データ長と、残データ長と、送信元uuidと、宛先uuidと、サービスポート番号と、送信元チャネル識別子と、宛先チャネル識別子と、帯域制限(下限Kbps)とから構成されている。
本発明に係る通信ネットワークシステムにおいて、P2Pで利用可能になる既存のプロトコル及び技術は、次のようなものが挙げられる。
・リモートデスクトップ(VNC:virtual network computing)
・IP電話、インターネット会議
・httpを介した既存CGIアプリケーション
・LAN内で利用されている任意のクライアント/サーバ型アプリケーション
・xmlrpc/WebService/CORBA/JavaRMIを利用したRPCアプリケーション
従来のP2Pアプリケーション「gnutella」は、エントリポイントに新規参入ノードが直接接続を行うため、エントリポイントに負荷が集中する。これに対し、本発明に係る通信ネットワークシステムでは、負荷分散が自動的に行われる。
本発明に係る通信ネットワークシステムにおけるP2Pオーバレイネットワーク(ルータ)が持つ基本サービスとして、次のようなものが挙げられる。
(1)情報バックアップサービス(代表/副代表がバックアップ先となる)
・公開鍵(認証/暗号通信用)
・通信量統計
・その他(ファイルブロックなど)
(2)分散ストレージの提供
・ファイルブロック識別子と最も近いuuidを持つルータ上のストレージに保存する
(3)データキャッシング
・経路上のルータにデータをキャッシュする
また、本発明に係る通信ネットワークシステムにおけるP2Pオーバレイネットワークは、マルチホップオーバレイネットワークとしての特徴が次のものである。
(1)匿名化ネットワーク(例えばonion routingネットワークなど)の実装が容易である
(2)バケツリレー型ストリーミングによるサーバ負荷軽減ができる
(3)マルチキャストネットワークの実現が容易である
(4)non-voluntarity(意志独立性)に基づく課金情報管理。(匿名接続される隣接ノード間で通信流量を監視し合う)
本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの論理構成を示す模式図である。 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの物理構成を示す模式図である。 ノードのP2Pオーバレイネットワークへの参入を論理構成で表す模式図である。 ノードのP2Pオーバレイネットワークへの参入を物理構成で表す模式図である。 本発明において、ノードのP2Pオーバレイネットワークからの離脱を表す模式図である。 本発明において、通信(パケットのルーティング)を表す模式図である。 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークの機能(モジュール部)の構成図である。 P2Pネットワーキングプロトコルモジュール部のトラフィックの流れを示す模式図である。 P2Pトランスポートモジュール部のトラフィックの流れを示す模式図である。 P2Pルーティングテーブルモジュール部のトラフィックの流れを示す模式図である。 P2Pルーティングアルゴリズムモジュール部のトラフィックの流れを示す模式図である。 P2Pリンク通信モジュール部のトラフィックの流れを示す模式図である。 コールバック管理/実行モジュール部のトラフィックの流れを示す模式図である。 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの参入)を示すシーケンス図である。 本発明のネットワーキングプロトコルにおける「親を探す」機能のフローチャートである。 本発明のネットワーキングプロトコルにおける「隣接クラスのリストを得る」機能のフローチャートである。 本発明のネットワーキングプロトコルにおける「ルーティングテーブルへの新規参入ノードの追加」機能のフローチャートである。 本発明のネットワーキングプロトコルにおける「ルーティングテーブルの初期化」機能のフローチャートである。 本発明のネットワーキングプロトコルにおける「接続更新」機能のフローチャートである。 本発明に係る通信ネットワークシステムのP2Pオーバレイネットワークにおけるネットワーキングプロトコル(ノードの離脱)を示すシーケンス図である。 本発明のネットワーキングプロトコルにおける「離脱ノードのルーティングテーブルからの削除」機能のフローチャートである。 本発明のネットワーキングプロトコルにおける「更新情報の構築」機能のフローチャートである。 本発明のネットワーキングプロトコルにおける「ルーティングテーブルの補完」機能のフローチャートである。 本発明において、パケットの送受信とルーティングを示す模式図である。 本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートの一部である。 本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートの一部である。 本発明のネットワーキングプロトコルにおける「peerへのenqueueと帯域制御」機能のフローチャートの一部である。
符号の説明
6A1 P2Pネットワーキングプロトコルモジュール部
6A2 P2Pトランスポートモジュール部
6A3 P2Pルーティングテーブルモジュール部
6A4 P2Pルーティングアルゴリズムモジュール部
6A5 P2Pリンク通信モジュール部
6A6 コールバック管理/実行モジュール部

Claims (8)

  1. IPネットワーク上に複数のノードを有する対称型オーバレイネットワークを構築することによって、前記対称型オーバレイネットワーク内の任意の前記ノード間の双方向通信を前記IPネットワークを介して可能にする通信ネットワークシステムであって、
    前記対称型オーバレイネットワークは、全てのノードがn進分類木として論理的に接続されており、前記ノードが自身を特定するための一意の識別子を持っており、前記ノードの前記識別子をn進数として解釈することにより、相互に接続すべき隣接ノードが自律的に決定されるようになっており、前記ノードの基本的な接続数はn+1であり、前記ノード間はIPトランスポート層によって接続されることを特徴とする通信ネットワークシステム。
  2. 前記対称型オーバレイネットワークにおいて、あるノードから任意のノードへ向かう中継ノードを必ず2ルート接続確立しておくようにし、前記中継ノードは代表ノードと副代表ノードとから構成される請求項1に記載の通信ネットワークシステム。
  3. 前記対称型オーバレイネットワークは、P2Pネットワーキングプロトコルモジュール部と、P2Pトランスポートモジュール部と、P2Pルーティングテーブルモジュール部と、P2Pルーティングアルゴリズムモジュール部と、P2Pリンク通信モジュール部と、コールバック管理/実行モジュール部とを備えている請求項1又は請求項2に記載の通信ネットワークシステム。
  4. 前記対称型オーバレイネットワークにおいて、各ノードは少なくとも正副2本の接続を持っており、そのどちらかの切断を検知すると、すぐにもう1本の接続を獲得するようになっている請求項1乃至請求項3のいずれかに記載の通信ネットワークシステム。
  5. 前記対称型オーバレイネットワークは、パケットを中継する「ルータノード」と、パケットを中継せず、利用者が操作するアプリケーションが稼働する「リーフノード」と、新規参入ノードが前記対称型オーバレイネットワークに参入する際に仲介し、前記新規参入ノードの接続すべき隣接ノードを教える「エントリポイント」とから構成されている請求項1乃至請求項4のいずれかに記載の通信ネットワークシステム。
  6. 前記オーバレイネットワークでは、予め知られているノード以外のノードの参入を排除できるように、前記「エントリポイント」で適切なフィルタリングを行う請求項5に記載の通信ネットワークシステム。
  7. 前記代表ノードが前記対称型オーバレイネットワークから離脱した場合は、前記副代表ノードが前記代表ノードになり、そして、自分が副代表として知っているノードの中から新たな副代表を選出するようになっている請求項2に記載の通信ネットワークシステム。
  8. 前記IPトランスポート層として、TCP、reliable UDP、HTTPの何れか1つを用いる請求項1に記載の通信ネットワークシステム。
JP2003278237A 2003-07-23 2003-07-23 通信ネットワークシステム Expired - Fee Related JP4319486B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003278237A JP4319486B2 (ja) 2003-07-23 2003-07-23 通信ネットワークシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003278237A JP4319486B2 (ja) 2003-07-23 2003-07-23 通信ネットワークシステム

Publications (2)

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

Family

ID=34264708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003278237A Expired - Fee Related JP4319486B2 (ja) 2003-07-23 2003-07-23 通信ネットワークシステム

Country Status (1)

Country Link
JP (1) JP4319486B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009247015A (ja) * 2009-07-27 2009-10-22 Brother Ind Ltd 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
JP2011503731A (ja) * 2007-11-29 2011-01-27 インテル コーポレイション リンクに基づくシステムにおけるシステムルーティング情報の変更
JP2012050019A (ja) * 2010-08-30 2012-03-08 Brother Ind Ltd ノード装置、情報通信システム、情報処理方法及び情報処理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011503731A (ja) * 2007-11-29 2011-01-27 インテル コーポレイション リンクに基づくシステムにおけるシステムルーティング情報の変更
US9210068B2 (en) 2007-11-29 2015-12-08 Intel Corporation Modifying system routing information in link based systems
JP2009247015A (ja) * 2009-07-27 2009-10-22 Brother Ind Ltd 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
JP2012050019A (ja) * 2010-08-30 2012-03-08 Brother Ind Ltd ノード装置、情報通信システム、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
JP4319486B2 (ja) 2009-08-26

Similar Documents

Publication Publication Date Title
US10476793B2 (en) Multicast flow overlay using registration over a reliable transport
US9787593B2 (en) Performing path-oriented systems management
US8897311B2 (en) Dynamic discovery mechanisms via inter-domain routing protocol
Xylomenos et al. Caching and mobility support in a publish-subscribe internet architecture
JP6047229B2 (ja) 情報中心ネットワークにおける名前ベースの近隣探索及びマルチホップサービス探索
Francis Yoid: Extending the internet multicast architecture
JP4677155B2 (ja) コンピュータ通信ネットワークのためのオンデマンドなオーバーレイルーティング
US7978631B1 (en) Method and apparatus for encoding and mapping of virtual addresses for clusters
US7609672B2 (en) Method and apparatus for automatic sub-division of areas that flood routing information
CN101124568B (zh) 通过计算机网络的单向链路路由isis流量的系统和方法
JP4317216B2 (ja) パケット通信ネットワーク及びパケット通信方法
US8817815B2 (en) Traffic optimization over network link
US11962471B2 (en) System and method for a distributed computing cluster architecture
JP2005508121A (ja) データ伝送プロセスおよびシステム
JP4319486B2 (ja) 通信ネットワークシステム
JP5726302B2 (ja) トポロジサーバを用いた、通信アーキテクチャにわたって分散されたノードのネットワークに対する秘密または保護されたアクセス
JP5078034B2 (ja) 通信装置、p2pネットワーク構築方法、プログラムおよび記録媒体
JP4432626B2 (ja) マルチキャストツリー構築システム及び方法、ネットワークノード装置並びにサーバ装置
JP2006165952A (ja) パケット中継装置およびパケット通信ネットワーク
CN113595912B (zh) 5GLAN中基于IPv6扩展报头的一对多通信方法及装置
Tsuchiya et al. STARCast: streaming collaboration architecture on heterogeneous environment everywhere
JP5067259B2 (ja) ツリー型放送システム、ノード接続方法、ノード装置、及びノード処理プログラム
KR100696206B1 (ko) 피어-투-피어 응용을 위한 자원 검색 방법
Buford et al. Application-layer multicast extensions to resource location and discovery (reload)
Ndlovu et al. A review of service discovery schemes in wireless mesh networks

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