JP2011525663A - ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングのための方法および装置 - Google Patents

ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングのための方法および装置 Download PDF

Info

Publication number
JP2011525663A
JP2011525663A JP2011514868A JP2011514868A JP2011525663A JP 2011525663 A JP2011525663 A JP 2011525663A JP 2011514868 A JP2011514868 A JP 2011514868A JP 2011514868 A JP2011514868 A JP 2011514868A JP 2011525663 A JP2011525663 A JP 2011525663A
Authority
JP
Japan
Prior art keywords
bucket
buckets
event
routing
routing table
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
JP2011514868A
Other languages
English (en)
Other versions
JP5524198B2 (ja
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011525663A publication Critical patent/JP2011525663A/ja
Application granted granted Critical
Publication of JP5524198B2 publication Critical patent/JP5524198B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups

Landscapes

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

Abstract

ピアツーピアオーバレイネットワークにおける、イベントの配信およびルーティングのための方法および装置。方法は、複数のノードを含むピアツーピアオーバレイネットワークにおける、イベントの配信およびルーティングのために提供される。方法は、オーバレイネットワーク上の複数のバケットを識別し、各バケットは、それぞれ、1つ以上のノードを含むことと、バケットグループを識別し、各バケットグループは、それぞれ、選択された数のバケットを含むことと、バケットグループに基づいて、イベントを配信することと、イベントに基づいて、ルーティングテーブルを更新することとを含む。

Description

合衆国法典第35部第119条に基づく優先権の主張
特許に対する本出願は、2008年6月19日に出願され、本出願の譲受人に譲渡され、参照により明白にここに組み込まれている、“オーバレイネットワークにおける情報配布のための方法および装置”と題する仮出願第61/073,909号に対する優先権を主張する。
特許に対する本出願は、2008年6月19日に出願され、本出願の譲受人に譲渡され、参照により明白にここに組み込まれている、“オーバレイネットワークにおける、配信される定ホップルーティングのための方法および装置”と題する仮出願第61/073,920号に対する優先権を主張する。
分野
本出願は一般に、オーバレイネットワークの動作に関し、より詳細には、ピアツーピアオーバレイネットワークにおける、イベントの配信およびルーティングのための方法および装置に関する。
背景
メンバーノードが、サーバベースのインフラストラクチャなしに、サービスを取得するネットワークは、ここでは“ピアツーピア”オーバレイネットワークと呼ばれる。ピアツーピアオーバレイにおいて、ピアノードは、ともに互いに協同して、サービスを提供し、ネットワークを維持する。ピアツーピアオーバレイネットワークは、インターネットプロトコル(IP)を利用するネットワークのような、下層(underlying)ネットワークの上に構築できる。
通常、ピアツーピアオーバレイネットワーク上でのイベントのルーティングは、ルーティング待ち時間、帯域幅利用、およびルーティングテーブルサイズに関してトレードオフを与える。例えば、イベントをルーティングするとき、少ない待ち時間を有することが望まれる。しかしながら、少ない待ち時間を達成することは、大きなルーティングテーブルを結果として生じるかもしれず、大きなルーティングテーブルは、オーバレイネットワークに参加するノードの利用可能なリソースに適合しない。さらに、オーバレイネットワークを通してルーティングテーブルと、時間とともに生じる何らかの変更とを伝達するのに、かなりの帯域幅を必要とすることから、大きなルーティングテーブルは、乏しい帯域幅の利用を結果として生じるかもしれない。
従来のシステムは、上述のトレードオフを管理するために、技術を利用している。例えば、いくつかのシステムは、上述したような非常に大きなルーティングテーブルを利用し、そのようなルーティングテーブルは、待ち時間を減少させるかもしれないが、参加ノードにおけるリソースを極限まで使うか、または、リソースを超えるかもしれない。他のシステムは、イベント配布に対してより大きな責任を有すると仮定する、オーバレイネットワーク中の特別のノードを利用する。しかしながら、これらの特定のノードに対する帯域幅要件は、それらを合理的にセットアップすることを必要とするほど実質的である。
残念ながら、従来のシステムにより使用される技術は、異なるノードに対して一貫性のないルーティングを結果として生じ、伝搬遅延に至らしめる。また、異なるルーティングテーブルは、異なる長さとエントリとを有し、異なる長さおよびエントリは、同じイベントの発信者からのイベントを配布するのに、異なる伝搬木を結果として生じるかもしれない。さらに、異なるルーティングテーブルは、“ホール”を結果として生じるかもしれず、それにより、いくつかのノードは、配布されるイベントを受信しないかもしれない。
それゆえに、従来のシステムに関係付けられている問題を克服する、ピアツーピアオーバレイネットワークにおける、イベントの配信およびルーティングのための効率的なメカニズムを有することが望まれる。
概要
1つ以上の観点において、方法および装置を含むイベント配信システムが、ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングに対して提供される。
1つの観点において、方法が、複数のノードを含むピアツーピアオーバレイネットワーク中での、イベントの配信およびルーティングに対して提供される。方法は、オーバレイネットワーク上の複数のバケットを識別し、各バケットは、それぞれ、1つ以上のノードを含むことと、バケットグループを識別し、各バケットグループは、それぞれ、選択された数のバケットを含むことと、バケットグループに基づいて、イベントを配信することと、イベントに基づいて、ルーティングテーブルを更新することとを含む。
1つの観点において、装置が、複数のノードを含むピアツーピアオーバレイネットワーク中での、イベントの配信およびルーティングに対して提供される。装置は、オーバレイネットワーク上の複数のバケットを識別する手段であって、各バケットは、それぞれ、1つ以上のノードを含む手段と、バケットグループを識別する手段であって、各バケットグループは、それぞれ、選択された数のバケットを含む手段と、バケットグループに基づいて、イベントを配信する手段と、イベントに基づいて、ルーティングテーブルを更新する手段とを備える。
1つの観点において、ノードが、複数のノードを含むピアツーピアオーバレイネットワーク中での、イベントの配信およびルーティングのために構成されている。ノードは、トランシーバと、トランシーバに結合されたプロセッサとを備える。ノードは、オーバレイネットワーク上の複数のバケットを識別し、バケットグループを識別し、バケットグループに基づいて、イベントを配信し、イベントに基づいて、ルーティングテーブルを更新するように構成されており、各バケットは、それぞれ、1つ以上のノードを含み、各バケットグループは、それぞれ、選択された数のバケットを含む。
1つの観点において、コンピュータプログラムプロダクトが、複数のノードを含むピアツーピアオーバレイネットワーク中での、イベントの配信およびルーティングに対して提供される。コンピュータプログラムプロダクトは、オーバレイネットワーク上の複数のバケットを識別し、バケットグループを識別し、バケットグループに基づいて、イベントを配信し、イベントに基づいて、ルーティングテーブルを更新することが実行可能なコードを組み入れているコンピュータ読み取り可能媒体を備え、各バケットは、それぞれ、1つ以上のノードを含み、各バケットグループは、それぞれ、選択された数のバケットを含む。
ここで記述した上述の観点は、添付図面とともに考慮したとき、以下の詳細な説明を参照することにより、より容易に明らかになるであろう。
図1は、イベント配信システムの観点を図示するネットワークを示す。 図2は、イベント配信システムにしたがって生成される配布木(dissemination tree)を示す。 図3は、イベント配信システムの観点にしたがって、2ホップルーティングに対して構成されているピアツーピアオーバレイネットワークを示す。 図4は、イベント配信システムの観点にしたがった、2ホップルーティングのプロセスを図示するピアツーピアオーバレイネットワークを示す。 図5は、イベント配信システムにしたがった、さまざまなルーティングの構成の比較を図示するテーブルを示す。 図6は、イベント配信システムの観点における、ノードで使用するための例示的な配信プロセッサを示す。 図7は、イベント配信システムにしたがって、ピアツーピアオーバレイネットワーク中でイベントのルーティングを提供するための例示的な方法を示す。 図8は、イベント配信システムの観点における、ノードで使用するための例示的な配信プロセッサを示す。
説明
以下の説明は、ピアツーピアオーバレイネットワーク中での、イベントの配信およびルーティングのためのイベント配信システムの観点を記述する。1つの観点において、固定された数の“バケット”が、識別され、ノードのルーティングテーブルに課される“ビュー(view)”を形成するために使用される。例えば、オーバレイネットワーク上に参加しているノードは、特定のバケットに割り当てられる。結果として、識別されているバケットからから配布木(dissemination trees)を形成でき、配布木のアレイ表示は、固定長を有する。システムは、1、2および3のホップルーティングを提供することにより、待ち時間、帯域幅利用およびルーティングテーブルサイズに関係付けられているトレードオフを管理するように動作し、1、2および3のホップルーティングは、これらのトレードオフを効率的に管理することを可能にする。
システムは、特に、IPネットワーク環境を使用するピアツーピアオーバレイネットワークに十分適しているが、限定されないが、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク、ワイドエリアネットワーク、長距離ネットワーク、および/または他の任意のタイプのネットワーク環境のような、通信ネットワーク、パブリックネットワーク、プライベートネットワークを含む任意のタイプのネットワーク環境中で使用してもよい。
ここで記述した上述の観点は、次の定義を参照することにより、より容易に明らかになるであろう。
オーバレイネットワーク
オーバレイネットワークは、ピアノードがともに互いに協同して、サービスを提供し、ネットワークを維持するネットワークである。オーバレイネットワークは、実質的に任意の数のノードを含んでいてもよい。
バケット
バケットは、近接ノードのグループ分けである。オーバレイネットワークは、オーバレイネットワーク中のノードの数まで、合計“N”個のバケットを含んでいてもよく、その点において、各バケットは、1つのノードを含んでいてもよい。例えば、オーバレイネットワークは、合計N=100のバケットにグループ化される1000個のノードを含んでいてもよく、各バケットは、10個のノードを含む。しかしながら、各バケット中のノードの数は、異なっていてもよいことに注目すべきである。
兄弟ノード(Sibling Nodes)
バケット内のノードは、兄弟“s”と呼ばれる。
バケットグループ
バケットグループは、所望のオーバレイネットワークの編成およびルーティングを達成するためのバケットのグループ分けである。“n”は、バケットグループの総数を表す。各バケットグループは、“m”個のバケットを含み、そのため、(n*m)=Nがバケットの総数である。視覚化を容易にするために、各バケットグループは、関連する図中で図示されるように、同じシェーディングを有するバケットにより表される。
バディバケット(Buddy Buckets)
同じバケットグループ内のバケットを指す。
近隣(Neighborhood)
近隣は、n個のバケットグループのそれぞれからの少なくとも1つのバケットを含むバケットの集合である。
イベント
ノードがオーバレイネットワークに参加するか、または離脱するとき、あるいは、近隣の更新が生じるときに、イベントが生じる。
マルチレベルグループ分け
マルチレベルグループ分けにおいて、バケットグループは、それら自身、追加のグループにグループ化される。例えば、2レベルグループ分けにおいて、n個のバケットグループのo個のグループが、バケットの総数がN=(o**m)から決定できるように定義される。2レベルよりも多いグループ分けを有することも可能であるが、グループ分けのレベルは、ルーティングテーブルのサイズまたは待ち時間の増加に対してバランスがとられるべきである。
図1は、イベント配信システムの観点を図示するネットワーク100を示す。ネットワーク100は、下層ネットワーク102を含み、下層ネットワーク102は、インターネットプロトコルネットワークのような、任意のタイプのネットワークを含む。下層ネットワーク102は、単一のエンティティとして示されているが、下層ネットワークは、WAN、LAN、ワイヤレスネットワークまたは他の任意のタイプのネットワークのような、任意の数またはタイプのネットワークを含んでいてもよい。
ピアツーピアオーバレイネットワーク104は、下層ネットワーク102のノードのサブセットを含み、それらのノードが通信することを可能にするために、下層ネットワーク102のサービスを利用して動作する。例えば、106において一般に示されるノードは、通信リンクにより接続されて、ピアツーピアオーバレイネットワーク104のまわりに円形のルーティングパスを形成する。通信リンクは、下層ネットワーク102により提供されるセキュアトンネル(secure tunnel)であってもよい。ピアツーピアオーバレイネットワーク104は、任意のルーティングパターンを可能にするために任意のトポロジまたはアーキテクチャを有していてもよく、それは、図1中で示したルーティングに限定されないことに注目すべきである。例えば、オーバレイネットワーク104のノード106は、示した円形のパスに加えて、他のルーティングパスを提供するために、より多くの相互接続を有していてもよい。
イベント配信システムの動作中に、ピアツーピアオーバレイネットワークトポロジは、108において一般に示すように、N個のバケットに分けられる。オーバレイ中のすべてのノードは、オーバレイネットワークトポロジー中のその位置に基づいて、バケットに割り当てられ、そのため、各バケットは、s個の兄弟ノードを含む。各バケット中の兄弟ノードの数は異なっていてもよいことに注目すべきである。バケットは次に、1つ以上の方法でグループ化される。例えば、各グループが、選択されたバケットの数mを含むように、n個のバケットグループが生成される。視覚化を容易にするために、各バケットグループは、同じシェーディングを有するバケットにより、図で表されている。近隣が、すべてのバケットグループからの少なくとも1つのバケットを含むように生成される。マルチホップルーティングを容易にするために、グループが、バケットグループのグループ分けを含むように形成される。
図1を再び参照すると、ピアツーピアオーバレイネットワーク104は、イベント配信システムにしたがって編成されて、バケット(0−14)を含んでいる。ノード106のそれぞれは、バケットに割り当てられている。1つの構成において、2つのバケット間のすべてのノードは、より早いバケットに割り当てられる。例えば、ノード識別子のより高位のビットが、バケット識別子を決定するために使用される。しかしながら、ノードを各バケットに割り当てるために、任意のアルゴリズムまたは割り当て技術を使用してもよいことに注目すべきである。同じバケット内のノードは、互いに兄弟である。バケットの数が固定されていることから、バケットを使用して形成される配布木は、すべてのノードが配布木の同じビューを形成することを意味する。例えば、すべてのノードは、オーバレイネットワーク104にわたってメッセージをルーティングすべきバケットの正確な順序を知っている。
1つの構成において、特定のノードがイベント配信サーバの役割を果たし、バケットおよび対応するバケットグループを識別するように動作する。例えば、オーバレイネットワーク104において、ノード110がイベント配信サーバの役割を果たす。ノード110は、配信プロセッサ(DP)112を備え、DP112は、バケット(0−14)を識別し、その結果、ノードをそれらのバケットに割り当てるように動作する。DP112はまた、ここで記述するイベント配信システムにしたがって、バケットグループを決定するように動作する。配信プロセッサ(DP)112の動作は、この文書の別のセクションにおいてより詳細に記述されている。バケットおよびバケットグループの識別は、他の方法で実行できることにも注目すべきである。例えば、複数のノードがバケットおよびバケットグループを識別するように動作するように、配信プロセスを使用してもよい。別の構成において、ネットワークの構成、初期化、または登録の間に、バケット情報が各ノードに提供される。
図2は、イベント配信システムにしたがって生成される配布木200を示す。例えば、配布木200は、図1中で示したバケット(0−14)により形成され、固定長のアレイを表す。イベントの配布のために、特定のバケット中のノードは、それ自体のバケット中の兄弟と、2個の子バケット中の1つ以上のノードとに通知する。例えば、バケット5中のノードは、バケット5中のその兄弟ノードと、その2個の子バケット4および6中のノードとに通知する。
したがって、イベント配信システムの1つの構成において、固定された数のバケットが識別され、これらのバケットは、オーバレイネットワーク104中のすべてのノードにおいて配布木の同じビューを提供するように動作し、その結果、従来のシステムにおいて生じ得る、ルーティングテーブルにおける差異の影響を緩和する。
(兄弟がない)1ホップルーティングおよび解析
図2中で示した配布木200に関係付けられている1ホップルーティングの解析を次に示す。例えば、ピアツーピアオーバレイネットワーク104にわたって配布されるイベントに応答して、次の送信がノードに関して生じる。
1.ノードは、イベントに関して、その親バケット中のノードから1つのメッセージを受け取る。
2.ノードは、その親バケット中のノードに1つの肯定応答を送る。
3.ノードは、各子バケット中の1つ以上のノードにメッセージを転送する。
4.ノードは、各子バケット中のノードから1つの肯定応答を受け取る。
5.ノードは、それ自体のバケット中のすべての兄弟にメッセージを転送する。
6.ノードは、それ自体のバケット中のすべての兄弟から肯定応答を受け取る。
さらに、次の条件が適用される2分伝搬木を仮定する。
1.半分のノードは葉である。
2.ノードは、半分のイベントに対して葉であるであろう。
3.ノードは、半分のイベントだけを転送しなければならない。
1つの例において、配布木200に関係付けられている1ホップルーティングを解析するために、次の情報を仮定する。
1.メッセージサイズ=xバイト
2.ヘッダサイズ=肯定応答サイズ=yバイト
3.イベントレート=rイベント/秒
4.各バケット内に兄弟はない。
ダウンストリームの解析に対して、次の送信が生じる。
1.すべてのイベントに対する、親からの1つのメッセージは、毎秒r*(x+y)の送信レートを生じさせる。
2.各子からの半分のイベントに対する肯定応答は、毎秒2*(r/2)*yバイトの送信レートを生じさせる。
3.1ホップに対する総ダウンストリーム帯域幅は、D1=r*(x+2y)である。
アップストリームの解析に対して、次の送信が生じる。
1.半分のイベントに対する、子への2つのメッセージは、2*(r/2)*(x+y)を発生させる。
2.すべてのイベントに対する、親への1つの肯定応答は、毎秒r*yバイトを発生させる。
3.1ホップルーティングに対する総アップストリーム帯域幅は、毎秒U1=r*(x+2y)バイトである。
したがって、オーバレイネットワークが、識別される百万個のバケットとともに百万個のノードを含む(すなわち、兄弟がない)ケースにおいて、次の仮定を使用して、帯域幅およびルーティングテーブルサイズの解析を実行できる。
1.毎秒r=200のイベント
2.x=20バイト
3.y=30バイト
4.ルーティングテーブルのエントリは40バイトである。
これらの仮定を上述の等式に代入することにより、次の1ホップの帯域幅とルーティングテーブルのサイズが取得される。
1.帯域幅=128kbps
2.ルーティングテーブルサイズ=40メガバイト
(兄弟を有する)1ホップルーティングおよび解析
各バケット中にs個の兄弟ノードがあると仮定される、配布木200に関係付けられている1ホップルーティングの解析を次に示す。結果として、すべてのノードは、(s−1)個の兄弟を有する。例えば、配布されるイベントに応答して、次の送信が、ノードに関して生じる。
ダウンストリームに対して、次の送信が生じる。
1.すべての1/sのイベントに対する、親からの1つのメッセージは、毎秒(r/s)*(x+y)バイトの送信レートを生じさせる。
2.(s−1)/sのイベントに対する、兄弟からの1つのメッセージは、(s−1)/s**(x+y)を生じさせる。
3.半分のイベントに対する、子からの2つの肯定応答は、毎秒2*(r/2)*yの送信レートを生じさせる。
4.すべての受け取られたイベントに対する、(s−1)の兄弟からの1つの肯定応答は、(s−1)*r/s*(x+y)を生じさせる。
5.1ホップに対する総ダウンストリーム帯域幅は、D1=r*(x+2y)である。
アップストリームの解析に対して、次の送信が生じる。
1.半分のイベントに対する、子への2つのメッセージは、2*r/2*(x+y)=r/s(x+y)を生じさせる。
2.すべての受け取られたイベントに対する、兄弟への(s−1)個のメッセージは、(s−1)*r/s*(x+y)を生じさせる。
3.すべてのイベントに対する、親への1つの肯定応答は、毎秒r/s*yバイトを生じさせる。
4.(s−1)/sのイベントに対する、兄弟への1つの肯定応答は、(s−1)/s**yを生じさせる。
5.1ホップルーティングに対する総アップストリーム帯域幅は、毎秒U1=r*(x+2y)バイトである。
したがって、各バケットがs個のノードを含むケースにおいて、帯域幅要件は兄弟の数から独立していることが理解できる。兄弟の数は、省電力化のために利用できるアップストリームトラフィックのバースト性に影響を及ぼす。
1ホップルーティングおよびK−アレイのイベント伝搬木
イベント配布のための2分木の代わりに、k−アレイの木を利用する、1ホップルーティングの解析を次に示す。完全なk−アレイ木において、ほぼ、ノードの(k−1)/kが葉である。ノードは、すべてのノードの分数(k−1)/kに対して葉であり、ノードは、メッセージの分数1/kだけを転送しなければならないであろう。
ダウンストリームの解析に対して、次の送信が生じる。
1.親からの1つのメッセージは、毎秒r*(x+y)バイトの送信レートを生じさせる。
2.イベントの1/kに対する、子からのk個の肯定応答は、毎秒k*r/k*yバイトの送信レートを生じさせる。
3.1ホップに対する総ダウンストリーム帯域幅は、D1k=r*(x+2y)である。
アップストリームの解析に対して、次の送信が生じる。
1.イベントの分数1/kに対する、子へのk個のメッセージは、k*r/k*(x+y)=r(x+y)を生じさせる。
2.親への1つの肯定応答は、毎秒r*yバイトを生じさせる。
3.1ホップルーティングに対する総アップストリーム帯域幅は、毎秒U1k=r*(x+2y)バイトである。
したがって、k−アレイ配布木が使用されるケースにおいて、帯域幅要件は、木の程度から独立していることが理解できる。木の程度の増加は、省電力化のために利用できるアップストリームトラフィックのバースト性に影響を及ぼす。
2ホップルーティング
図3は、イベント配信システムの観点にしたがった、2ホップルーティングに対して構成されているピアツーピアオーバレイネットワーク300を示す。
オーバレイネットワーク300において、N個のバケットが、グループ毎にm個のバケットの、n個のグループに分けられている。したがって、バケットの総数Nは、N=(n*m)から決定できる。例えば、オーバレイネットワーク300は、N=16のバケットを図示し、N=16のバケットは、グループ毎にm=4のバケットを含むn=4のバケットグループに分けられている。理解しやすいように、各グループのバケットは、番号およびシェーディングにより識別されている。例えば、図3は、次のバケットグループを図示する。
1.グループ1−g(1,x)黒のシェーディング
2.グループ2−g(2,x)グレーのシェーディング
3.グループ3−g(3,x)模様シェーディング
4.グループ4−g(4,x)シェーディングなし(クリア)
図3中のバケットのそれぞれは、グループ番号と、それぞれのバケット番号とにより表されている(すなわち、g(グループ番号,バケット番号))。近隣(1−4)もまた示されており、各近隣は、各グループからの1つのバケットを含む。ネットワーク300はまた、バケットg(1,1)中のノードに位置しているDP302を備えている。DP302は、イベント配信システムにしたがって動作して、バケットの数と、バケットへのノードの割り当てと、グループの数と、各グループ中のバケットの数とを識別する。DP302は、図1中で示したDP112としての使用に適していることに注目すべきである。
第1の構成において、同じグループの2つの連続するバケット間の距離は常に、グループ毎のバケットの数mである。グループ中のバケットの順序は、すべてのグループにわたって同じであり;同様に、近隣中のバケットの順序は、すべての近隣にわたって同じである。図3中で使用されるグループ分けの割り当ては、以下のすべての説明において使用されることに注目すべきである。
第2の構成において、同じシェーディングの2つの連続するバケット間の距離は、マッピング機能を使用して選ばれる。このアプローチは、ランダム化の確率に起因して、望ましい安全特性を有するかもしれない。
これらの構成において、オーバレイネットワーク300のノードは、次の情報を知っている。
1.ノードは、それ自体のバケットを含むその近隣におけるm個のバケット中のすべてのノードについて知っている。近隣は、m個のバケットの弧により表される。第1のオプションにおいて、その近隣中の半分のバケットが、それ自体のバケットの両側にある。したがって、これは、それ自体のバケットを中央に有する、m個のバケットの近隣である。第2のオプションにおいて、近隣は、ノードを含む任意のm個のバケットの弧により表される。
2.ノードは、そのグループにおけるすべてのバケット中のすべてのノードについて知っている。これらは、“バディ”バケットと呼ばれ、いっしょに、それらはバディネットワークを形成する。
2ホップルーティングの例
図4は、イベント配信システムの観点にしたがった、2ホップルーティングのプロセスを図示するピアツーピアオーバレイネットワーク400を示す。以下の記述において、1ホップルーティングは、第1のノードから、第1のノード自体の近隣におけるm個のバケット中の他のすべてのノードへのルーティングとして定義される。2ホップルーティングは、第1のノードから、第1のノードのバケットグループ中であるが、異なる近隣における、第2のノードへルーティングし、次に、第2のノードの近隣中のターゲットノードにルーティングするものとして定義される。例えば、図4を参照すると、メッセージが近隣3におけるバケットg(1,3)中のノードから、近隣1におけるバディバケットg(1,1)中のノードに送られるときに、第1のホップ402が生じる。近隣1は、ターゲットノードの近隣である。メッセージが、近隣1におけるバディバケットg(1,1)中のノードから、近隣1におけるバケットg(4,1)中のターゲットノードに送られるときに、第2のホップ404が生じる。
イベント配信システムの観点にしたがった、2ホップルーティングのためのバケット構成を次に説明する。次の情報が仮定される。
1.100万個のノードのネットワーク、ここで、n=m=1000。
2.各ノードは、その近隣中の1000個のノード(それ自体も含まれる)について知っている。
3.各ノードは、そのバディネットワーク中の1000個のノード(それ自体も含まれる)について知っており、ノードのそれぞれは、1000個の他のノード(それ自体も含まれる)について知っている。
4.すべてのバディバケットに関係付けられている近隣弧は、互いにオーバーラップせず、それゆえに、相互排除的である。
5.すべてのバディバケットの近隣弧は、全体として漏れがないように、オーバレイネットワーク中のすべてのバケットをカバーする。
結果として、各ノードは、1000*1000=1,000,000個のノードに到達できる。例えば、ノードは、1ホップにおいて、その近隣中のすべての1000個のノードに到達できる。さらに、ノードは、そのバディノードを使用して、2ホップにおいて他のすべてのノードに到達できる(すなわち、ターゲットの近隣中のバディノードへの第1のホップと、ターゲットの近隣中のバディノードからターゲットノードへの第2のホップ)。
2ホップルーティング中のイベント伝搬
2ホップルーティングをサポートするために、ノードは、それ自体の近隣中のすべてのバケットと、そのすべてのバディバケットとにおける参加/離脱について学ぶ。2つの2分木が、イベントの伝搬のために使用される。1つの木は、ノード自体の近隣中のすべてのバケットを含み、ローカル木と呼ばれるであろう。もう1つの木は、すべてのバディバケットを含み、バディ木と呼ばれるであろう。正常な離脱中に、ノードは離脱する前に他のすべてのノードに通知する。ノードのエラー(node failures)(すなわち、正常でない離脱)に対して、監視ノードがノードのエラーを検出し、エラーが生じたノードのバディバケット中のノードに対してイベントを配布する。
監視ノードのバディバケットは、エラーが生じたノードのバケットとは異なるシェーディングを有していてもよい(すなわち、エラーが生じたノードは監視ノードとは異なるグループ中にあってもよい)ことに注目すべきである。このケースにおいて、監視ノードのバディバケット中のノードは、エラーが生じたノードのバディバケット中のノードに通知してもよく、追加の1つのホップを利用してもよい。例えば、黒のバケット中のノードにエラーが生じ、そのバケット中には他のノードがない。グレーのバケット中のノードが、エラーを検出し、そのグループ中のすべてのグレーのバケットに対して、エラーイベントに関する情報を配布すると想定されるであろう。グレーのバケット中のノードは次に、隣接した黒のバケットに通知する。
2ホップルーティングの解析
イベント配信システムの観点にしたがった2ホップルーティングの解析を次に示す。次のパラメータが仮定される。
1.バケットの総数=N、n*m=Nとなるように、それぞれm個のバケットのn個のグループを定義する
2.メッセージサイズ=x
3.ヘッダサイズ=y
4.システムイベントレート=rイベント/秒
5.各近隣におけるイベントレート=r*(m/N)=r/n
6.バディネットワークにおけるイベントレート=r*(n/N)=r/m
7.バケット中に兄弟がないことと、正常な参加および離脱とを仮定。
ダウンストリームの解析に対して、次の送信が生じる。
1.ローカル木中の親からの1つのメッセージは、(r/n)*(x+y)を生じさせる。

2.バディ木中の親からの1つのメッセージは、(r/m)*(x+y)を生じさせる。
3.半分のローカルイベントに対する、ローカル木中の子からの2つの肯定応答は、2*(r/2n)*yを生じさせる。
4.半分のバディイベントに対する、バディ木中の子からの2つの肯定応答は、2*(r/2m)*yを生じさせる。
5.2ホップルーティングに対する総ダウンストリーム帯域幅は、D2=r*(x+2y)*((m+n)/mn)=D1 *(m+n)/mnである。
アップストリームの解析に対して、次の送信が生じる。
1.半分のローカルイベントに対する、ローカル木中の子への2つのメッセージは、2*(r/2n)*(x+y)を生じさせる。
2.半分のローカルイベントに対する、バディ木中の子への2つのメッセージは、2*(r/2m)*(x+y)を生じさせる。
3.ローカル木中の親への1つの肯定応答は、(r/n)*yを生じさせる。
4.バディ木中の親への1つの肯定応答は、(r/m)*yを生じさせる。
5.2ホップルーティングに対する総アップストリーム帯域幅は、U2=r*(x+2y)*((m+n)/mn)=U1 *(m+n)/mnである。
上述の等式から理解できるように、2ホップルーティングにおいて、帯域幅は、(m+n)/mnが最小になるときに最小になる。しかしながら、m*nは固定されている(すなわち、m*nは、バケットの総数Nに等しい)。したがって、固定されたm*nに対して、量(m+n)/mnは、m=n=sqrt(m*n)となるときに最小である。
一例として、次のパラメータが仮定されるであろう。
1.ネットワークは、106個のノードを含む。
2.x=20バイト
3.y=30バイト
4.m=n=sqrt(106)=103
5.ルーティングテーブルのエントリサイズ=40バイト
上述のパラメータを、2ホップルーティングに対する等式に代入すると、次の結果が生じる。
1.帯域幅=256bps
2.ルーティングテーブルサイズ=(m+n)*40=2000エントリ*40=80kB
108個のノードを有し、rが2000イベント/秒に等しいネットワークに対して、上述の演算を繰り返すと、次の結果が生じる。
1.m=n=104
2.帯域幅=2.56kbps
3.ルーティングテーブルサイズ=20000エントリ*40=800kB
したがって、理解できるように、2ホップルーティングは、1ホップルーティングよりも、低減された帯域幅と小さいルーティングテーブルとを提供する。
3ホップルーティング
イベント配信システムの別の構成において、3ホップルーティングが提供される。3ホップにおいて、すべてのバケットNをグループ化する2レベルは、それぞれ、m個のバケットのn個のバケットグループの、o個のグループに分けられる。例えば、o=n=m=100である、106個のノードのネットワークにおいて、各ノードは、次のことについて知っている。
1.その近隣中の100個のノード(100個のノードへの1ホップルーティング)
2.他の100個のノード、ノードのそれぞれは、せいぜい1ホップにおいて100個より多いノードに到達できる(1000個のノードへの2ホップルーティングを提供する)。
3.100個より多いノード、ノードのそれぞれは、せいぜい2ホップにおいて10000個のノードに到達できる(106個のノードへの3ホップルーティングを提供する)。
3ホップルーティングの解析
イベント配信システムの観点にしたがった3ホップルーティングの解析を次に示す。次のパラメータが仮定される。
1.バケットの総数=N、ここで、m**o=N
2.固定されたm**oに対して、量(m+n+o)/mnoは、m=n=o=cuberoot(m**o)であるときに最小である。
3.メッセージサイズ=x
上述のパラメータであるものと仮定して、次のダウンストリームおよびアップストリームの帯域幅は、先に提供した解析と類似の解析を使用して決定できる。
1.ダウンストリーム帯域幅
3=r*(x+2y)*(m+n+o)/mno=D1 *(m+n+o)/mno
2.アップストリーム帯域幅
3=r*(x+2y)*(m+n+o)/mno=U1 *(m+n+o)/mno
3ホップルーティングを説明するために、次のパラメータを仮定する。
1.106個のノードを含むネットワーク
2.x=20バイト
3.y=30バイト
4.m=n=o=100
5.ルーティングテーブルのエントリサイズ=40バイト
上述のパラメータを、3ホップルーティングに対する等式に代入すると、次の結果が生じる。
1.帯域幅=38.4bps
2.ルーティングテーブルサイズ=(m+n+o)*40=300エントリ*40=12kB
109個のノードを有し、rが200,000イベント/秒に等しいネットワークに対して上述の演算を繰り返すと、次の結果を生じる。
1.m=n=o=1000
2.帯域幅=384bps
3.ルーティングテーブルサイズ=3000エントリ*40=120kB
ルーティング構成の比較
図5は、イベント配信システムにしたがった、さまざまなルーティング構成の比較を図示するテーブル500を示す。一般に、nホップルーティングの構成に対して、帯域幅およびルーティングテーブルのサイズは、次のものから決定できる。
1.帯域幅Dn−K**(x+2y)
ここで、K=(m1+m2+m3+...+mn)/(m1 *2 *3 *...*n
2.ルーティングテーブルサイズは、O*(Nのn乗根)であり、Nは、ノード/バケットの総数である。
図5中で図示されているように、ルーティングのタイプ502と、ノードの数504と、帯域幅506と、ルーティングテーブルのサイズ508とが示されている。したがって、テーブル500を使用して、待ち時間と、帯域幅またはルーティングテーブルサイズとの間のトレードオフを管理できる。例えば、106個のノードを有するオーバレイネットワークにおいて、3ホップルーティングを提供するグループ分けの構成は、図5中で図示される、最も小さいルーティングテーブルサイズを結果として生じる。
図6は、イベント配信システムの観点において使用するための例示的な配信プロセッサ600を示す。例えば、DP600は、例えば、図3中で示したDP302のように、ピアツーピアオーバレイネットワーク中のノードにおける使用に適している。DP600は、プロセッサ602と、バケット構成ロジック604と、メモリ606と、トランシーバ608とを備え、すべてがデータバス610に結合されている。DP600は、単に1つの構成に過ぎず、他の構成が、本観点の範囲内で可能であることに注目すべきである。
トランシーバ608は、ハードウェアおよび/またはハードウェアにより実行されるソフトウェアを備えており、ハードウェアおよび/またはハードウェアにより実行されるソフトウェアは、DP600が、ピアツーピアオーバレイネットワーク上の複数のノードとの、データ、イベントまたは他の情報の通信を可能にするように動作する。1つの観点において、トランシーバ608は、ピアツーピアオーバレイネットワークのノードと1つ以上の通信リンク612を確立するように動作可能である。例えば、通信リンク612は、下層IPネットワークのサービスを利用して形成されている。
メモリ606は、ルーティングテーブル614を記憶するように動作可能な任意の適切な記憶デバイスを備えている。ルーティングテーブル614は、識別されているバケットを使用して、ピアツーピアオーバレイネットワーク上でのメッセージのルーティングを記述する。例えば、ルーティングテーブル614は、ここで記述したイベント配信システムにしたがった、1、2または3のホップルーティングを可能にするルーティング情報を提供する。メモリ606はまた、配信モジュール616を記憶するように動作可能であり、配信モジュール616は、ここで記述した機能を提供するための、プロセッサ602により実行可能な命令またはコードを組み入れている1つ以上のモジュールを含む。
プロセッサ602は、CPU、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリ素子、および/またはハードウェアにより実行されるソフトウェアのうちの少なくとも1つを備える。1つの観点において、プロセッサモジュール602は、DP600モジュールを制御して、ここで記述した機能を実行するために、配信モジュール616の命令またはコードを実行するように動作する。
1つの構成において、プロセッサ602は、ノード識別子、バケット識別子およびバケットグループ識別子を含むオーバレイネットワーク構成パラメータを受け取るように動作する。オーバレイネットワーク構成パラメータは、オーバレイネットワーク中の1つ以上のノードから受け取られてもよく、または、ネットワーク構成、初期化、または登録のプロセスの間に、集中化したサーバから受け取られてもよい。オーバレイネットワーク構成パラメータはまた、ユーザ入力から受け取られてもよい。オーバレイネットワーク構成パラメータは、メモリ606中に記憶され、プロセッサ602は、これらの構成パラメータを使用して、ルーティングテーブル614としてメモリ606中に記憶されるルーティングテーブルを最初に生成させるように動作する。ルーティングテーブル614は、1、2または3のホップルーティングを提供するように構成されていてもよい。
別の構成において、バケット構成ロジック604が、オーバレイネットワーク構成パラメータを生成させるように動作する。バケット構成ロジック604は、CPU、プロセッサ、ゲートアレイ、ハードウェアロジック、メモリ素子、および/またはハードウェアにより実行されるソフトウェアのうちの少なくとも1つを備える。バケット構成ロジック604は、固定された数のバケットと、それらのバケットに割り当てられるノードとを決定するように動作する。バケット構成ロジック604はまた、バケットのグループ分けを実行して、ここで記述した1レベルまたはマルチレベルのグループ分けを実現するように動作する。バケット構成ロジック604により生成されるオーバレイネットワーク構成パラメータは次に、メモリ606中に記憶され、また、トランシーバ608を使用して、オーバレイネットワーク中の他のノードに配信される。プロセッサ602は、これらの構成パラメータを取得して、ルーティングテーブル614を最初に生成させてもよい。オーバレイネットワーク中の他のノードは、同じ機能を実行して、それら自体のルーティングテーブルを最初に生成させる。
動作中に、トランシーバ608は、1つ以上のイベントを受信するように動作し、1つ以上のイベントは、プロセッサ602にパスされる。プロセッサ602は、ルーティングテーブル614中のバケットグループに基づいて、イベントを配信するように動作する。プロセッサ602はまた、受信したイベントに基づいて、ルーティングテーブル614を更新するように動作する。例えば、ノードが、参加するか、または離脱するとき、あるいは、近隣に対する更新が生じるとき、プロセッサ602は、これらのイベントに関するメッセージを受け取る。プロセッサ602はルーティングテーブル614を使用して、オーバレイネットワーク上で、これらのイベントをルーティングする。プロセッサ602はまた、ルーティングテーブル614を更新して、これらの変更を反映させるように動作する。この動作は、オーバレイネットワーク中の他のノードにおいて繰り返され、それにより、各ノードは、それ自体のルーティングテーブルを更新する。したがって、システムは、ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングに対して、効率的なメカニズムを提供する。
1つの観点において、イベント配信システムは、機械読み取り可能媒体上に記憶されているか、または組み入れられている1つ以上のプログラム命令である、“命令”または“コード”から形成されるコンピュータプログラムを有するコンピュータプログラムプロダクトを備えている。コードが、例えば、プロセッサ602のような、少なくとも1つのプロセッサにより実行されるとき、それらの実行は、ここで記述したイベント配信システムの機能をDP600に提供させる。例えば、機械読み取り可能媒体は、フロッピー(登録商標)ディスク、CDROM、光学ディスク、メモリカード、FLASHメモリデバイス、RAM、ROM、あるいは、DP600とインターエースできる他の任意のタイプのメモリデバイスまたは機械読み取り可能媒体を含む。別の観点において、コードは、外部のデバイスまたは通信ネットワークリソースからDP600にダウンロードされてもよく、後の実行のために、機械読み取り可能媒体中に記憶されてもよい。実行されるとき、コードのセットは、ここで記述したイベント配信システムの観点を提供するように動作する。
図7は、イベント配信システムにしたがって、ピアツーピアオーバレイネットワーク中でイベントのルーティングを提供するための例示的な方法700を示す。例えば、方法700は、図6中で示したDP600によるノードにおいて実行できる。
理解しやすいように、方法700は、図6中で示したDP600により実行されるように以下で説明される。1つの観点において、プロセッサ602は、DP600を制御して以下で記述する機能を実行するために、メモリ606中に記憶されている配信モジュール616の1つ以上のコードを実行する。
ブロック702において、ピアツーピアオーバレイネットワーク中の、1つ以上のノードを含む固定された数のバケットが識別される。例えば、プロセッサ602が、バケットを識別するように動作する。1つの観点において、プロセッサ602は、メモリ606中に記憶されている構成情報に基づいてバケットを識別する。例えば、オーバレイネットワーク上のノードは、オーバレイネットワーク上のバケットの位置に基づいて、各バケットに割り当てられる。例えば、ノード識別子のより高位のビットが、バケット識別子を決定するために使用される。1つの構成において、2つのバケット間のすべてのノードは、より小さい識別子に関係付けられているバケットに割り当てられる。しかしながら、任意のアルゴリズムまたは割り当て技術を使用して、各バケットにノードを割り当ててもよいことに注目すべきである。
ブロック704において、1つ以上のバケットを含む固定された数のバケットグループが識別される。例えば、プロセッサ602が、バケットグループを識別するように動作する。1つの観点において、プロセッサ602は、メモリ606中に記憶されている構成情報に基づいて、バケットグループを識別する。
ブロック706において、ルーティングテーブルが、1、2または3のホップルーティングを提供するために、バケットグループに基づいて最初に生成される。1つの観点において、プロセッサ602は、バケットグループに基づいて、ルーティングテーブルを生成させるように動作する。
ブロック708において、受信したイベントが、ルーティングテーブルのバケットグループに基づいて配信される。1つの構成において、イベントは、参加、離脱、または、近隣の更新を含む。例えば、プロセッサ602は、ルーティングテーブル614のバケットグループに基づいて、イベントを配信するように動作する。イベントは、トランシーバ608を使用して、オーバレイネットワーク上で配信される。
ブロック710において、ルーティングテーブルが、イベントに基づいて更新される。例えば、プロセッサ602は、受信されている、参加、離脱、または、近隣の更新に基づいて、ルーティングテーブル614を更新する。
それゆえに、方法700は、イベント配信システムにしたがって、ピアツーピアオーバレイネットワーク中でイベントの配信およびルーティングテーブルの更新を提供するように実行できる。方法700は、単に1つの構成であり、方法700の動作は、さまざまな観点の範囲内で、並べ変えられ、または修正されてもよいことに注目すべきである。したがって、他の構成が、ここで記述したさまざまな観点の範囲により可能である。
図8は、イベント配信システムの観点において、ノードで使用するための例示的な配信プロセッサ800を示す。例えば、配信プロセッサ800は、図6中で示した配信プロセッサ600として実現してもよい。1つの観点において、配信プロセッサ800は、ここで記述したイベント配信システムの観点を提供するように構成されている1つ以上のモジュールを含む、少なくとも1つの集積回路により実現される。例えば、1つの観点において、各モジュールは、ハードウェアおよび/またはハードウェアにより実行されるソフトウェアを含む。
配信プロセッサ800は、オーバレイネットワーク上の複数のバケットを識別する手段(802)を含む第1のモジュールを備え、各バケットは、それぞれ、1つ以上のノードを含み、1つの観点において、第1のモジュールは、プロセッサ602を備える。配信プロセッサ800はまた、バケットグループを識別する手段(804)を含む第2のモジュールを備え、各バケットグループは、それぞれ、選択された数のバケットを含み、1つの観点において、第2のモジュールはプロセッサ602を含む。配信プロセッサ800はまた、バケットグループに基づいてイベントを配信する手段(806)を含む第3のモジュールを備え、1つの観点において、第3のモジュールは、トランシーバ608を含む。配信プロセッサ800はまた、イベントに基づいてルーティングテーブルを更新する手段(808)を含む第4のモジュールを備え、1つの観点において、第4のモジュールは、プロセッサ602を含む。
汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)または他のプログラム可能論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいはここで記述した機能を実行するために設計された、これらの任意の組み合わせにより、ここで開示した観点とともに記述した、さまざまな実例となる論理、論理ブロック、モジュールおよび回路を実現または実行してもよい。汎用プロセッサはマイクロプロセッサでもよいが、代わりに、プロセッサは任意の従来のプロセッサ、制御装置、マイクロ制御装置、または状態遷移機械であってもよい。計算デバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアに関連した1つ以上のマイクロプロセッサ、または他の任意のこのような構成として、プロセッサを実現してもよい。
ここで開示した観点に関して記述した方法またはアルゴリズムのステップを、ハードウェア中で直接、プロセッサにより実行されるソフトウェアモジュール中で、またはその2つの組み合わせ中で具体化してもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバルディスク、CD−ROM,または技術的に知られている他の任意の形態の記憶媒体中に存在してもよい。プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、例示的な記憶媒体はプロセッサに結合されている。代わりに、記憶媒体はプロセッサと一体化されていてもよい。プロセッサおよび記憶媒体は、ASIC中に存在してもよい。ASICワイヤレス通信デバイス中に存在してもよい。代わりに、プロセッサおよび記憶媒体は、ワイヤレス通信デバイス中にディスクリートコンポーネントとして存在してもよい。
いかなる当業者であっても本開示を実施しまたは使用できるように、開示した観点の記述をこれまでに提供している。これらの観点に対してさまざまな修正が当業者に容易に明らかであり、本発明の精神または範囲から逸脱することなく、ここで規定した一般的な原理を、例えば、インスタントメッセージングサービスまたは何らかの一般的なワイヤレスデータ通信における、他の観点に適用してもよい。したがって、本発明は、ここで示した観点に限定されるように向けられていないが、ここで開示した原理および新規な特徴に矛盾しない最も広い範囲に一致すべきである。本記述において、“例として、事例として、あるいは実例として機能する”ことを意味するために、“例示的な”という文言をここではもっぱら使用している。“例示的な”ものとして、ここで記述するいずれの観点も、他の構成と比較して、必ずしも、好ましいまたは効果的なものと解釈されるものではない。
したがって、イベント配信システムの観点をここで図示および記述しているが、観点の精神または本質的な特性から逸脱することなく、さまざまな変更を観点に対して実施できることを理解すべきである。それゆえに、ここでの開示および記述は、特許請求の範囲において示されている本発明の範囲の、限定的ではない実例であるように向けられている。

Claims (36)

  1. 複数のノードを含むピアツーピアオーバレイネットワーク中でのイベントの配信およびルーティングのための方法において、
    前記方法は、
    前記オーバレイネットワーク上の複数のバケットを識別することと、
    バケットグループを識別することと、
    前記バケットグループに基づいて、イベントを配信することと、
    前記イベントに基づいて、ルーティングテーブルを更新することとを含み、
    各バケットは、それぞれ、1つ以上のノードを含み、
    各バケットグループは、それぞれ、選択された数のバケットを含む方法。
  2. 前記イベントは、参加と、離脱と、近隣の更新とのうちの少なくとも1つを含む請求項1記載の方法。
  3. 前記更新することは、前記ルーティングテーブルを更新して、固定されたアレイ長を有する配布木を形成することを含む請求項1記載の方法。
  4. 前記複数のバケットを識別することは、合計N個のバケットがあるように、前記複数のバケットを識別することを含む請求項1記載の方法。
  5. 前記バケットグループを識別することは、前記バケットグループを識別して、グループ毎にm個のバケットを含む、合計n個のバケットグループを形成することを含み、N=n*mである請求項4記載の方法。
  6. 前記ルーティングテーブルを更新することは、前記イベントに基づいて、ルーティングテーブルを更新して、2ホップルーティングを容易にすることを含む請求項1記載の方法。
  7. 前記バケットグループを識別することは、前記バケットグループを識別して、バケットグループ毎にm個のバケットを含むn個のバケットグループの、合計o個のグループを形成することを含み、N=n**oである請求項4記載の方法。
  8. 前記ルーティングテーブルを更新することは、前記イベントに基づいて、ルーティングテーブルを更新して、3ホップルーティングを容易にすることを含む請求項7記載の方法。
  9. 前記バケットグループに基づいて、前記ルーティングテーブルを最初に生成させることをさらに含む請求項1記載の方法。
  10. 複数のノードを含むピアツーピアオーバレイネットワーク中でのイベントの配信およびルーティングのための装置において、
    前記装置は、
    前記オーバレイネットワーク上の複数のバケットを識別する手段と、
    バケットグループを識別する手段と、
    前記バケットグループに基づいて、イベントを配信する手段と、
    前記イベントに基づいて、ルーティングテーブルを更新する手段とを具備し、
    各バケットは、それぞれ、1つ以上のノードを含み、
    各バケットグループは、それぞれ、選択された数のバケットを含む装置。
  11. 前記イベントは、参加と、離脱と、近隣の更新とのうちの少なくとも1つを含む請求項10記載の装置。
  12. 前記更新する手段は、前記ルーティングテーブルを更新して、固定されたアレイ長を有する配布木を形成する手段を備える請求項10記載の装置。
  13. 前記複数のバケットを識別する手段は、合計N個のバケットがあるように、前記複数のバケットを識別する手段を備える請求項10記載の装置。
  14. 前記バケットグループを識別する手段は、前記バケットグループを識別して、グループ毎にm個のバケットを含む、合計n個のバケットグループを形成する手段を備え、N=n*mである請求項13記載の装置。
  15. 前記ルーティングテーブルを更新する手段は、前記イベントに基づいて、ルーティングテーブルを更新して、2ホップルーティングを容易にする手段を備える請求項10記載の装置。
  16. 前記バケットグループを識別する手段は、前記バケットグループを識別して、バケットグループ毎にm個のバケットを含むn個のバケットグループの、合計o個のグループを形成する手段を備え、N=n**oである請求項13記載の装置。
  17. 前記ルーティングテーブルを更新する手段は、前記イベントに基づいて、ルーティングテーブルを更新して、3ホップルーティングを容易にする手段を備える請求項16記載の装置。
  18. 前記バケットグループに基づいて、前記ルーティングテーブルを最初に生成させる手段をさらに具備する請求項10記載の装置。
  19. 複数のノードを含むピアツーピアオーバレイネットワーク中でのイベントの配信およびルーティングのために構成されているノードにおいて、
    前記ノードは、
    トランシーバと、
    前記トランシーバに結合されたプロセッサとを具備し、
    前記プロセッサは、
    前記オーバレイネットワーク上の複数のバケットを識別し、
    バケットグループを識別し、
    前記バケットグループに基づいて、イベントを配信し、
    前記イベントに基づいて、ルーティングテーブルを更新するように構成されており、
    各バケットは、それぞれ、1つ以上のノードを含み、
    各バケットグループは、それぞれ、選択された数のバケットを含むノード。
  20. 前記イベントは、参加と、離脱と、近隣の更新とのうちの少なくとも1つを含む請求項19記載の装置。
  21. 前記プロセッサは、前記ルーティングテーブルを更新して、固定されたアレイ長を有する配布木を形成するように構成されている請求項19記載の装置。
  22. 前記プロセッサは、合計N個のバケットがあるように、前記複数のバケットを識別するように構成されている請求項19記載の装置。
  23. 前記プロセッサは、前記バケットグループを識別して、グループ毎にm個のバケットを含む、合計n個のバケットグループを形成するように構成されており、N=n*mである請求項22記載の装置。
  24. 前記プロセッサは、前記イベントに基づいて、ルーティングテーブルを更新して、2ホップルーティングを容易にするように構成されている請求項19記載の装置。
  25. 前記プロセッサは、前記バケットグループを識別して、バケットグループ毎にm個のバケットを含むn個のバケットグループの、合計o個のグループを形成するように構成されており、N=n**oである請求項22記載の装置。
  26. 前記プロセッサは、前記イベントに基づいて、ルーティングテーブルを更新して、3ホップルーティングを容易にするように構成されている請求項25記載の装置。
  27. 前記プロセッサは、前記バケットグループに基づいて、前記ルーティングテーブルを最初に生成させるように構成されている請求項19記載の装置。
  28. 複数のノードを含むピアツーピアオーバレイネットワーク中でのイベントの配信およびルーティングのためのコンピュータプログラムプロダクトにおいて、
    前記コンピュータプログラムプロダクトは、
    コードを組み入れているコンピュータ読み取り可能媒体を具備し、
    前記コードは、
    前記オーバレイネットワーク上の複数のバケットを識別し、
    バケットグループを識別し、
    前記バケットグループに基づいて、イベントを配信し、
    前記イベントに基づいて、ルーティングテーブルを更新することが実行可能であり、
    各バケットは、それぞれ、1つ以上のノードを含み、
    各バケットグループは、それぞれ、選択された数のバケットを含むコンピュータプログラムプロダクト。
  29. 前記イベントは、参加と、離脱と、近隣の更新とのうちの少なくとも1つを含む請求項28記載のコンピュータ読み取り可能媒体。
  30. 前記コードは、前記ルーティングテーブルを更新して、固定されたアレイ長を有する配布木を形成するように構成されている請求項28記載のコンピュータ読み取り可能媒体。
  31. 前記コードは、合計N個のバケットがあるように、前記複数のバケットを識別するように構成されている請求項28記載のコンピュータ読み取り可能媒体。
  32. 前記コードは、前記バケットグループを識別して、グループ毎にm個のバケットを含む、合計n個のバケットグループを形成するように構成されており、N=n*mである請求項31記載のコンピュータ読み取り可能媒体。
  33. 前記コードは、前記イベントに基づいて、ルーティングテーブルを更新して、2ホップルーティングを容易にするように構成されている請求項28記載のコンピュータ読み取り可能媒体。
  34. 前記コードは、前記バケットグループを識別して、バケットグループ毎にm個のバケットを含むn個のバケットグループの、合計o個のグループを形成するように構成されており、N=n**oである請求項33記載のコンピュータ読み取り可能媒体。
  35. 前記コードは、前記イベントに基づいて、ルーティングテーブルを生成させて、3ホップルーティングを容易にするように構成されている請求項34記載のコンピュータ読み取り可能媒体。
  36. 前記コードは、前記バケットグループに基づいて、前記ルーティングテーブルを最初に生成させるように構成されている請求項33記載のコンピュータ読み取り可能媒体。
JP2011514868A 2008-06-19 2009-06-19 ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングのための方法および装置 Expired - Fee Related JP5524198B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US7390908P 2008-06-19 2008-06-19
US7392008P 2008-06-19 2008-06-19
US61/073,920 2008-06-19
US61/073,909 2008-06-19
US12/487,513 US8996726B2 (en) 2008-06-19 2009-06-18 Methods and apparatus for event distribution and routing in peer-to-peer overlay networks
US12/487,513 2009-06-18
PCT/US2009/048044 WO2009155567A2 (en) 2008-06-19 2009-06-19 Methods and apparatus for event distribution and routing in peer-to-peer overlay networks

Publications (2)

Publication Number Publication Date
JP2011525663A true JP2011525663A (ja) 2011-09-22
JP5524198B2 JP5524198B2 (ja) 2014-06-18

Family

ID=41434725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011514868A Expired - Fee Related JP5524198B2 (ja) 2008-06-19 2009-06-19 ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングのための方法および装置

Country Status (7)

Country Link
US (1) US8996726B2 (ja)
EP (1) EP2304923B1 (ja)
JP (1) JP5524198B2 (ja)
KR (1) KR101237342B1 (ja)
CN (1) CN102067564B (ja)
TW (1) TW201008322A (ja)
WO (1) WO2009155567A2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806049B2 (en) * 2011-02-15 2014-08-12 Peerialism AB P2P-engine
US8898327B2 (en) 2011-10-05 2014-11-25 Peerialism AB Method and device for arranging peers in a live streaming P2P network
CN103139079B (zh) * 2011-11-28 2018-01-19 中兴通讯股份有限公司 P2p叠加网中路由表修复方法及p2p叠加网节点
CN104394554B (zh) * 2014-12-19 2019-07-12 湘潭大学 一种预测式低延时地理路由方法
US20160381120A1 (en) * 2015-06-24 2016-12-29 Intel Corporation System for event dissemination
JP6601496B2 (ja) 2015-07-15 2019-11-06 日本電気株式会社 認証装置、認証システム、認証方法、プログラム
US10567217B2 (en) * 2016-02-29 2020-02-18 Whatsapp Inc. Techniques to perform the dynamic configuration of load-balanced relay operations
CN107483342B (zh) * 2017-09-15 2020-04-28 西安微电子技术研究所 一种面向时间触发网络交换的两级路由系统及方法
WO2021140505A1 (en) * 2020-01-06 2021-07-15 Essence Security International (E.S.I.) Ltd. Hierarchical resource constrained network
US11930074B2 (en) * 2021-10-26 2024-03-12 King Fahd University Of Petroleum And Minerals Content distribution over a network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005323346A (ja) * 2004-03-31 2005-11-17 Microsoft Corp ピアツーピアネットワークにおけるルーティング
JP2007300271A (ja) * 2006-04-28 2007-11-15 Brother Ind Ltd ノード装置、情報処理方法及びノード装置用プログラム
JP2007336481A (ja) * 2006-06-19 2007-12-27 Square Enix Co Ltd ネットワークシステム
EP1926276A1 (en) * 2006-11-23 2008-05-28 NTT DoCoMo Inc. Load balancing in a peer-to-peer system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558875B2 (en) * 2003-09-15 2009-07-07 Microsoft Corporation Measurement-based construction of locality-aware overlay networks
CN1331331C (zh) 2004-04-27 2007-08-08 国家数字交换系统工程技术研究中心 自组织网络的实现方法
WO2006076349A2 (en) 2005-01-11 2006-07-20 Telcordia Technologies, Inc. Method to establish and organize an ad-hoc wireless peer to peer network
US7350074B2 (en) 2005-04-20 2008-03-25 Microsoft Corporation Peer-to-peer authentication and authorization
EP1748604B1 (en) * 2005-07-28 2010-03-03 Technische Universität Berlin A communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
US20090116484A1 (en) 2005-09-08 2009-05-07 Matsushita Electric Industrial Co., Ltd. Parallelizing Peer-to-Peer Overlays Using Multi-Destination Routing
US9137043B2 (en) 2006-06-27 2015-09-15 International Business Machines Corporation System, method and program for determining a network path by which to send a message
CN100591028C (zh) 2007-10-15 2010-02-17 北京交通大学 一种基于集中服务的分布式对等网络的实现方法及系统
US20090210489A1 (en) * 2008-02-18 2009-08-20 Supratim Deb Methods for peer-caching for faster lookups in peer-to-peer systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005323346A (ja) * 2004-03-31 2005-11-17 Microsoft Corp ピアツーピアネットワークにおけるルーティング
JP2007300271A (ja) * 2006-04-28 2007-11-15 Brother Ind Ltd ノード装置、情報処理方法及びノード装置用プログラム
JP2007336481A (ja) * 2006-06-19 2007-12-27 Square Enix Co Ltd ネットワークシステム
EP1926276A1 (en) * 2006-11-23 2008-05-28 NTT DoCoMo Inc. Load balancing in a peer-to-peer system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200600452005; 妙中雄三, 山口真之介, 西野和典, 大西淑雅: 'ハッシュ空間の複製によるChordの高速化手法の提案と検証' 情報処理学会研究報告 2006-DSM-40 Vol.2006, No.38, 20060329, p.25-30, 社団法人情報処理学会 *
JPN6013012956; 妙中雄三, 山口真之介, 西野和典, 大西淑雅: 'ハッシュ空間の複製によるChordの高速化手法の提案と検証' 情報処理学会研究報告 2006-DSM-40 Vol.2006, No.38, 20060329, p.25-30, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
WO2009155567A3 (en) 2010-04-01
CN102067564A (zh) 2011-05-18
KR101237342B1 (ko) 2013-02-28
TW201008322A (en) 2010-02-16
EP2304923A2 (en) 2011-04-06
KR20110030624A (ko) 2011-03-23
EP2304923B1 (en) 2016-12-21
JP5524198B2 (ja) 2014-06-18
US8996726B2 (en) 2015-03-31
WO2009155567A2 (en) 2009-12-23
CN102067564B (zh) 2014-12-31
US20100049869A1 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
JP5524198B2 (ja) ピアツーピアオーバレイネットワークにおけるイベントの配信およびルーティングのための方法および装置
EP3244574B1 (en) Alternate down paths for directed acyclic graph (dag) routing
EP3259887B1 (en) Method and system for automatic optimal route reflector root address assignemt to route reflector clients
Gui et al. Scalable multicasting in mobile ad hoc networks
Chandra et al. Anonymous gossip: Improving multicast reliability in mobile ad-hoc networks
Ott et al. Integrating DTN and MANET routing
US20060268879A1 (en) Quality of service aware robust link state routing for mesh networks
JP2014502466A (ja) Amiにおけるソースツリールーティングによるピアツーピア通信
AlAamri et al. Optimised relay selection for route discovery in reactive routing
Singh et al. Address allocation for MANET merge and partition using cluster based routing
Guizani et al. A new cluster-based link state routing for mobile ad hoc networks
Nithya et al. Destination-sequenced distance vector routing (DSDV) using clustering approach in mobile adhoc network
Santhi et al. Agent based adaptive multicast routing with QoS guarantees in MANETs
Dabideen et al. Efficient routing in MANETs using ordered walks
Kies et al. A connected dominating set based on connectivity and energy in mobile ad hoc networks
Khandelwal et al. Probabilistic routing using queuing theory for MANETs
Cha et al. QoS routing mechanism using mobility prediction of node in ad-hoc network
Ros et al. A low overhead architecture for infrastructure-based wireless mesh networks
Goncalves et al. Comparison of two self-organization and hierarchical routing protocols for ad hoc networks
Nomulwar et al. Comparision of performance of routing protocol in Wireless Mesh Network
Xu et al. A VIRTUAL SUB-DOMAIN ROUTING MECHANISM TO IMPROVE ROUTING EFFICIENCY FOR LOW-POWER AND LOSSY NETWORKS
Xue et al. Optimization on OLSR protocol for lower routing overhead
Shet et al. Multidimensional trust-based energy aware routing protocols in multihop wireless networks
Mumgai et al. Malicious Node Attack Preventer (MNAP) Approach for Mobile Ad-hoc Networks (MANET's)
Kim et al. IPR: Incremental path reduction algorithm for tree-based routing in low-rate wireless mesh networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120730

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130607

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130614

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130819

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140409

R150 Certificate of patent or registration of utility model

Ref document number: 5524198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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