JP4671306B2 - ピアツーピア・オーバレイ・ネットワークにおける同報通信メッセージング - Google Patents

ピアツーピア・オーバレイ・ネットワークにおける同報通信メッセージング Download PDF

Info

Publication number
JP4671306B2
JP4671306B2 JP2008542365A JP2008542365A JP4671306B2 JP 4671306 B2 JP4671306 B2 JP 4671306B2 JP 2008542365 A JP2008542365 A JP 2008542365A JP 2008542365 A JP2008542365 A JP 2008542365A JP 4671306 B2 JP4671306 B2 JP 4671306B2
Authority
JP
Japan
Prior art keywords
node
finger
key value
entry
broadcast message
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.)
Active
Application number
JP2008542365A
Other languages
English (en)
Other versions
JP2009517921A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment 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 Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JP2009517921A publication Critical patent/JP2009517921A/ja
Application granted granted Critical
Publication of JP4671306B2 publication Critical patent/JP4671306B2/ja
Active 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/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast

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)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

発明の背景
この発明はデータネットワークの分野に関し、特にピアツーピア・オーバレイ・ネットワークに関する。ピアツーピア・ネットワークとは、集中型の階層構造または組織を全く持たない分散データネットワークである。ピアツーピア・データネットワークは、一般にノードと呼ばれる多数のコンピュータまたは他の情報装置間で情報を通信する頑強で柔軟性のある手段を提供する。
オーバレイ・ネットワークとは、1つ以上のタイプの下位の物理的ネットワーク接続によって接続されたノードに課された、論理または仮想ネットワーク組織である。オーバレイ・ネットワークでは、ノードは仮想または論理リンクによって接続され、それらの各々は、下位の物理的ネットワークにおける1つ以上の経路に一致し得る。オーバレイ・ネットワークは典型的には、OSIネットワークスタックまたは他のタイプのネットワーキングプロトコルのアプリケーション層または他の上位層で動作するハードウェアおよび/またはソフトウェアによって実現される。
ピアツーピア・オーバレイ・ネットワークの1クラスは、分散ハッシュテーブル・ネットワークと呼ばれる。分散ハッシュテーブル・オーバレイ・ネットワークは、ハッシュ関数を用いて1つ以上のキー値を生成し、一意的なノードに割当てる。すべての可能なキー値の組は、ハッシュ空間と呼ばれる。ノードはハッシュ空間において、それらの割当てられたキー値に従って組織化される。ハッシュ関数は、ハッシュ空間全体にわたってノードがほぼ均一に分散されるように選択される。分散ハッシュテーブル・オーバレイ・ネットワークは典型的には、非常に拡張性が高いためしばしば何百万ものノードをサポートし、頑強なためノードが頻繁に加入または離脱することを可能とし、また、効率的なためメッセージを単一の宛先ノードに迅速にルーティングする。
分散ハッシュテーブル・オーバレイ・ネットワークには多数の異なるタイプがある。ピアツーピア・オーバレイ・ネットワークの1タイプは、コード(Chord)ネットワークである。コード・オーバレイ・ネットワーク・プロトコルは、「コード:インターネットアプリケーションのための拡張性のあるピアツーピア・ルックアップ・プロトコル」(Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications)、イオン ストイカ(Ion Stoica)、ロバート モリス(Robert Morris)、デビッド リベン−ノーウェル(David Liben-Nowell)、デビッド R.カーガー(David R. Karger)、M.フラン カーシュエク(M. Frans Kaashoek)、フランク ダベック(Frank Dabek)、ハリ バラクリシュナン(Hari Balakrishnan)、IEEE/ACMトランザクションズ・オン・ネットワーキング(IEEE/ACM Transactions on Networking)、第11巻第1号、17〜32頁、2003年2月に詳細に記載されている。
コードプロトコルといった分散ハッシュテーブル・オーバレイ・ネットワーク・プロトコルは、単一の宛先ノードへのメッセージの効率的な配信を提供するが、それらは、メッセージの同報通信と呼ばれる、単一のメッセージが多数の宛先ノードに効率的に配信されることを可能にはしない。
典型的な一実現化例では、メッセージを他のノードすべてに同報通信したいノードは、メッセージを各ノードに別個に送信しなければならない。各ノードは直接的には限られた
数のノードしか知らないため、開始ノードと呼ばれて同報通信メッセージを開始するノードは、すべての可能なキー値にメッセージを闇雲に送信しなければならない。分散ハッシュテーブル・ネットワークにとって、これは、可能な各キー値に別個のメッセージを送信することを必然的に伴う。(SHA−1といった160ビットのハッシュ関数の使用から生じる)2^160のハッシュ空間を有する分散ハッシュテーブル・ネットワークにとって、これは実現不可能である。
別の典型的な実現化例では、同報通信メッセージを配信するためにフラッディング・アプローチが使用される。開始ノードは、オーバレイ・ネットワークにおいて開始ノードと直接接続されたノードすべてにメッセージを送信する。メッセージを受信すると、各受信ノードは次にそのメッセージを、オーバレイ・ネットワークにおいて各受信ノードと直接接続されたあらゆる追加ノードに転送する。この実現化例は、いくつかのノードが重複するメッセージを受信するため、非効率的である。さらに、この実現化例は大量のネットワーク帯域幅を消費し、多大な動作時間を要する。
同報通信メッセージをフラッドさせることにより必要とされる帯域幅を減らすために、修正されたフラッディング手法は、各同報通信メッセージに有効期間(TTL)値を割当てる。同報通信メッセージのコピーが追加ノードに転送される度に、そのTTL値はデクリメントされる。TTL値が1に達すると、同報通信メッセージはもはや転送されない。この修正されたフラッディング手法は、浪費されるネットワーク帯域幅の量および重複するメッセージの数を減らすものの、それは、同報通信メッセージがすべてのノードにルーティングされることを確実にはできない。
したがって、システムおよび方法にとって、ピアツーピア・オーバレイ・ネットワークにおける各ノードが同報通信メッセージを受信することを保証することが望ましい。さらに、ピアツーピア・オーバレイ・ネットワークにおける各ノードが同報通信メッセージのコピーを1つだけ受信することをシステムおよび方法が保証し、それにより、ネットワーク帯域幅が効率的に利用されることを確実にすることが望ましい。さらに、システムおよび方法が、同報通信メッセージを開始するノードから時間および帯域幅資源を最小限しか必要としないことが望ましい。また、追加のネットワーク帯域幅オーバヘッドがないオーバレイ・ネットワークの部分に同報通信メッセージが選択的に向けられることを、システムおよび方法が可能にすることが望ましい。システムおよび方法にとって、最小限の時間間隔内で同報通信メッセージをピアツーピア・オーバレイ・ネットワークのすべてまたは選択された部分に配信することが望ましい。システムおよび方法にとって、ピアツーピア・オーバレイ・ネットワークにおけるノードからのクエリー結果の効率的な集約を可能にすることが望ましい。
発明の概要
この発明の一実施例は、重複するメッセージにネットワーク帯域幅を浪費することなく、またはノードをうっかり抜かすことなく、オーバレイ・ネットワークのノードに同報通信メッセージを効率的に向ける。同報通信メッセージは終了IDパラメータを含む。終了IDパラメータは、同報通信メッセージのコピーを受信すべきノードのためのキー値の範囲を特定する。各ノードは、フィンガーノードおよびそれらのそれぞれのキー値のリストを保持している。同報通信メッセージを受信すると、ノードは、受信した同報通信メッセージの終了ID値かまたは隣接するフィンガーノードのキー値に基づいて、各フィンガーノードに新規の終了ID値を割当てる。ノードは、各フィンガーノードの新規の終了ID値をそのフィンガーノードのキー値と比較して、そのフィンガーノードに同報通信メッセ
ージを転送するかどうかを判断する。フィンガーノードに転送された同報通信メッセージは、そのフィンガーノードのために決定された新規の終了ID値に等しい終了IDパラメータを含む。ノードは、同報通信メッセージに応答し、そのフィンガーノードからの応答メッセージを集約することができる。
一実施例では、オーバレイ・ネットワークにおいて同報通信メッセージを処理する方法は、送信ノードから終了IDを含む同報通信メッセージを受信するステップを含む。終了IDは、同報通信メッセージのコピーを受信すべきフィンガーノードのためのキー値の範囲を特定する。この方法は、フィンガーテーブルのエントリを選択する。フィンガーテーブルの各エントリは、あるフィンガーノードおよびそのフィンガーノードに関連付けられたキー値への参照を含む。
この方法の一実施例は、フィンガーテーブルの次のエントリがあるかどうかを判断する。次のエントリは、ノードの順序に従って選択されたフィンガーテーブルエントリのキー値に隣接するキー値を含む。この方法は、フィンガーテーブルの次のエントリがあるという判断に応じて、次のエントリに関連付けられたキー値に新規の終了ID値をセットする。この方法は、フィンガーテーブルの次のエントリがないという判断に応じて、受信された同報通信メッセージの終了IDに新規の終了ID値をセットする。この方法は、選択されたフィンガーテーブルエントリのキー値を新規の終了ID値と比較し、選択されたフィンガーテーブルエントリのキー値が、新規の終了ID値によって特定されたキー値の範囲内にあるという判断に応じて、新規の終了ID値を有する同報通信メッセージのコピーを選択されたエントリのフィンガーノードに転送する。
さらに別の一実施例では、フィンガーテーブルは、それぞれのキー値に従って配置された2つ以上のエントリを含む。一実施例では、ノードの順序は、キー値に従って昇順である。別の実施例では、ノードの順序は、キー値に従って降順である。
追加の一実施例では、この方法は、同報通信メッセージを通信する送信ノードへの参照を格納する。この方法は、同報通信メッセージの転送されたコピーに応じて、少なくとも1つのフィンガーノードから応答メッセージを受信し、受信された応答メッセージを組み合わされた応答メッセージに集約する。組み合わされた応答メッセージは送信ノードに転送される。
さらに別の実施例では、この方法は、同報通信メッセージへの応答を受信し、その応答を組み合わされた応答メッセージに含めることができる。さらに別の実施例では、組み合わされた応答メッセージは、周波数領域変換を使用して作成されたコンパクト表現での1つ以上のノードからの応答メッセージを含む。
図面を参照して、この発明を説明する。
図面では、同一の参照番号の使用は同一または同様の要素を示す。
発明の詳細な説明
図1Aおよび図1Bは、この発明の一実施例での使用に好適な、例示的なコード・オーバレイ・ネットワークを示す。図1Aは、ノード102、104、106、108、110、112、114、116、118、および120といった多数のノードを含む例示的なコード・オーバレイ・ネットワーク100を示す。各ノードには1つ以上のキー値が割当てられている。たとえば、ノード102、104、106、108、110、112、114、116、118、および120には、キー値0、45、60、115、120、128、144、187、210、および240がそれぞれ割当てられている。
オーバレイ・ネットワークのノードは、ハッシュ空間125におけるそれらの割当てられたキー値によって、またはすべての可能なキー値の組によって配置される。図1Aでは、ハッシュ空間125は、0〜2Nのすべての可能なキー値のリング構成として示されており、ここでNは、あるキー値に割当てられたビット数である。いくつかの実現化例では、Nは160ビットに等しく、それは、SHA−1といった典型的なハッシュ関数の出力のサイズであり、ハッシュ衝突を回避するのに十分大きい。この実現化例では、コード・オーバレイ・ネットワーク100は最大2160ノードをサポートし、典型的なコード・オーバレイ・ネットワークは何百万ものアクティブノードを含み得る。他の実現化例は、より多いかまたはより少ないハッシュビットを使用し得る。
いくつかの実現化例では、各ノードにはキー値がランダムに割当てられている。いくつかの実現化例では、各ノードには、ノードの1つ以上の属性のハッシュ関数の結果に基づいて、キー値が割当てられている。ハッシュ関数は、ハッシュ空間125全体にわたってノードがほぼ均一に分散されるように選択される。追加の実現化例では、ノードへのキー値の割当ては、下位の物理的ネットワークのトポロジに少なくとも部分的に基づいている。これらの実現化例では、ノードはハッシュ空間125全体にわたってほぼ均一に分散されているが、オーバレイ・ネットワーク100は、物理的ネットワークにおいてごく接近して位置するノード同士が、オーバレイ・ネットワークのハッシュ空間125においてもごく接近して位置することを確実にするよう試みる。
ハッシュ空間125におけるノードの配置に基づいて、各ノードは、1つ以上の隣接するノードへの参照を含む。コード・オーバレイ・ネットワーク100のいくつかの実現化例では、各ノードは、前後に隣接するノードへの参照を含む。たとえば、キー値60を有するノード106は、キー値45を有するノード104、およびキー値115を有するノード108への参照を含み得る。ノード106と108のキー値間にあるキー値、たとえば100というキー値を有する新しいノードが追加されると、ノード106の適切な参照はそれに応じて調節される。
さらに別の一実現化例では、各ノードは、1つ以上の近傍のノードへの参照を含むフィンガーテーブルを含む。各フィンガーテーブルエントリは、現在のノードのキー値からのオフセットによって特定されたキー値に最も近いノードを参照する。これらの実現化例のうちのいくつかでは、各フィンガーテーブルエントリのオフセットは、二進法の桁値に一致する。たとえば、第1のフィンガーテーブルエントリは1(20)というオフセット値を有し、第2のフィンガーテーブルエントリは2(21)というオフセット値を有し、第3のフィンガーテーブルエントリは4(22)というオフセット値を有し、第4のフィンガーテーブルエントリは8(23)というオフセット値を有する、などである。他の実現化例では、異なるオフセット値が各フィンガーテーブルエントリに関連付けられ得る。
図1Bは、この実現化例に従ったオーバレイ・ネットワーク130においてフィンガーテーブルエントリによって特定されたノード関係の一例を示す。キー値4を有するノード132は、オフセット値1に一致するキー値5を有するノード136への参照134を特定する第1のフィンガーテーブルエントリを含む。ノード132の第2のフィンガーテーブルエントリは、ノード132からのオフセット値2に一致するキー値6を有するノード140への参照138を特定する。同様に、ノード132の第3のフィンガーテーブルエントリは、ノード132からのオフセット値4に一致するキー値8を有するノード144への参照142を特定する。ノード132の第4のフィンガーテーブルエントリは、ノード132からのオフセット値8に一致するキー値12を有するノード148への参照146を特定する。オーバレイ・ネットワーク130の他のノードの各々は、他のノードへの参照を特定する同様のフィンガーテーブルを有する。
フィンガーテーブルは任意の数のエントリを有し得る。より大きなフィンガーテーブルは、ノードを追加または除去するためのより複雑な保守オーバヘッドを代償として、メッセージのためのルーティング時間を減少させることができる。たとえば、あるキー値がNビットから構成される場合、各ノードは、N個のエントリを有するフィンガーテーブルを有し得る。他の実現化例では、アプリケーションに依存して、他のフィンガーテーブルサイズが最適となり得る。
オーバレイ・ネットワークのこの実現化例では、各ノードは、そのフィンガーテーブルにおける参照によって特定されたノードの場所しか知らない。しかしながら、ノードは、1つ以上の中間ノードを介して、オーバレイ・ネットワークにおける任意の他のノードにメッセージを送信することができる。図1Cは、この実現化例に従った、オーバレイ・ネットワーク150におけるメッセージの例示的なルーティングを示す。
図1Cの例では、キー値0を有するノード152が、キー値6を有するノード164にメッセージを向ける。ノード152のフィンガーテーブルは、それぞれキー値1、2、4および8を有するノード154、156、158および160への参照を有する。キー値6を有するノード164にメッセージを配信するために、ノード152は、そのフィンガーテーブルにおける、宛先ノードのキー値以下で最大のキー値を有するノードに、そのメッセージを転送する。この例では、ノード152は、キー値4を有するノード158にメッセージを転送する。ノード152のフィンガーテーブルにおいて、ノード158は、宛先ノードのキー値である6以下で最大のキー値4を有する。
ノード158に向けられた、キー値6を有するメッセージを受信すると、ノード158は、それ自体のフィンガーテーブルを用いて、宛先ノードのキー値以下で最大のキー値を有するノードを識別する。この例では、キー値4を有するノード158は、それぞれキー値5、6、8および12を有するノード162、164、160および170への参照を有するフィンガーテーブルを有する。そのフィンガーテーブルに基づき、ノード158は、所望の宛先のキー値である6というキー値を有するノード164にメッセージを転送する。
上述のオーバレイ・ネットワークは、メッセージを個々のノードに効率的にルーティングできるが、オーバレイ・ネットワークのすべてまたは大部分に同報通信メッセージを効率的に転送するための機構がない。各ノードは直接的にはそのフィンガーテーブルにおけるノードしか知らない。このため、オーバレイ・ネットワークにおけるすべてのノードにメッセージを送信するには、開始ノードと呼ばれる、同報通信メッセージを開始するノードは、可能な各キー値に別個のメッセージを送信しなければならない。2160のハッシュ空間については、天文学的な数のキー値があり、それはこのアプローチを実行不可能にする。
上述のように、同報通信メッセージを向けるためのフラッディングアプローチはネットワーク帯域幅を浪費し、同報通信メッセージがすべてのノードにルーティングされることを保証しない場合がある。フラッディングアプローチでは、各ノードは、それが接続された他のノードすべてに、受信した同報通信メッセージを転送する。このため、オーバレイ・ネットワーク150では、ノード152は同報通信メッセージをノード154、156、158および160に転送するであろう。各ノードは次に、受信した同報通信メッセージを、そのフィンガーテーブルにおけるノードに転送するであろう。たとえば、ノード158は同報通信メッセージをノード162、164、160および170に転送するであろう。図1Cからわかるように、ノード160はノード152およびノード158から同報通信メッセージを少なくとも2回受信する。
図2は、この発明の一実施例に従った、オーバレイ・ネットワークにおいて同報通信メッセージをルーティングする方法200を示す。方法200は、重複するメッセージにネットワーク帯域幅を浪費することなく、またはどのノードも抜かすことなく、オーバレイ・ネットワークにおけるすべてのノードに同報通信メッセージを効率的に向ける。
方法200は、ノードが同報通信メッセージを受信すると開始される。一実施例では、各同報通信メッセージは終了IDパラメータを含む。終了IDパラメータは、同報通信メッセージが転送され得るノードのキー値の範囲を表わしている。たとえば、あるノードが、17という終了ID値を有する同報通信メッセージを受信した場合、そのノードは、そのフィンガーテーブルにおける、17よりも小さいキー値を有するノードに、その同報通信メッセージのコピーを転送してもよい。さらに、重複するメッセージがノードに送信されることを防止するために、同報通信メッセージの各転送コピーには、方法200に従って終了ID値が割当てられる。
受信された同報通信メッセージは、ノードによって以下のように処理される。ステップ205で、ノードは、ノードのフィンガーテーブルの第1のエントリに、インデックス値iをセットする。決定ブロック210で、ノードは、選択されたフィンガーテーブルエントリと呼ばれる、インデックス値iによって特定されたフィンガーテーブルエントリが、ノードのフィンガーテーブルの最後のエントリであるかどうかを判断する。そうである場合、方法200は決定ブロック210からステップ220に進む。ステップ220は、新規の終了IDパラメータを、受信された同報通信メッセージの終了IDと等しくなるように割当てる。
逆に、選択されたフィンガーテーブルエントリがノードのフィンガーテーブルの最後のエントリではないとノードが判断した場合、方法200は決定ブロック210からステップ215に進む。ステップ215は、新規の終了IDパラメータを、次のフィンガーテーブルエントリ(すなわち、インデックスi+1によって特定されるフィンガーテーブルエントリ)のキー値かまたは受信された同報通信メッセージの終了IDのうち、ハッシュ空間における現在のノードに近い方と等しくなるように割当てる。一実施例では、現在のノードと、次のフィンガーテーブルエントリまたは現在の終了IDのようなキー値との距離は、現在のノードのキー値を他のキー値から減算することによって求められ得る。
ステップ215のこの実施例では、フィンガーテーブルのエントリはそれらのそれぞれのノードのキー値の順に配置されること、および同報通信メッセージはキー値が大きくなる順にノードに通信されることが仮定される。しかしながら、代替的な実施例では、フィンガーテーブルは異なる順序で配置可能である。これらの実施例では、ステップ215は、新規の終了IDパラメータを、選択されたフィンガーテーブルエントリのキー値よりも大きくかつそれに最も近いフィンガーテーブルエントリのキー値と等しくなるように割当てる。この実施例は、同報通信メッセージを、キー値が大きくなる順にノードに通信する。さらに別の実施例では、同報通信メッセージが、キー値が小さくなる順にノードに通信される場合、ステップ215は、新規の終了IDパラメータを、選択されたフィンガーテーブルエントリのキー値よりも小さくかつそれに最も近いフィンガーテーブルエントリのキー値と等しくなるように割当てる。
ステップ215またはステップ220に続いて、方法200は決定ブロック225に進む。決定ブロック225では、ノードは、選択されたフィンガーテーブルエントリのキー値が新規の終了IDパラメータの値よりも小さいかどうかを判断する。小さい場合、方法200はステップ230に進む。その他の場合、方法200は直接、決定ブロック235に進む。
ステップ230は、選択されたフィンガーテーブルエントリに関連付けられたノードに同報通信メッセージのコピーを転送する。同報通信メッセージの転送されたコピーは、新規の終了IDパラメータの値にセットされた終了ID値を含む。
決定ブロック225またはステップ230に続いて、方法200は決定ブロック235に進む。決定ブロック235は、選択されたフィンガーテーブルエントリがノードのフィンガーテーブルの最後のエントリであるかどうかを判断する。そうである場合、方法200は終了し、ノードは同報通信メッセージの転送を終える。
選択されたフィンガーテーブルエントリがノードのフィンガーテーブルの最後のエントリではないと決定ブロック235が判断した場合、方法200はステップ240に進む。ステップ240はインデックスiをインクリメントし、それにより、ノードのフィンガーテーブルの次のフィンガーテーブルエントリを選択する。ステップ240に続いて、方法200は決定ブロック210に戻る。ステップ210、215、220、225、230、235、および240は、ノードのフィンガーテーブルのエントリすべてを評価するために必要に応じて何度でも繰返されてもよい。
図3A−図3Cは、この発明の一実施例に従った、オーバレイ・ネットワークにおける同報通信の例示的なルーティングを示す。この例では、開始ノード305は、オーバレイ・ネットワーク300のすべてのノードに同報通信メッセージを送信することを望んでいる。図3Aは、オーバレイ・ネットワーク300のノードへの同報通信メッセージの配信の第1段階300を示す。方法200に従って、開始ノードは、終了ID値が9の同報通信メッセージ307をノード309に、終了IDが12の同報通信メッセージ311をノード313に、終了IDが15の同報通信メッセージ315をノード317に、終了IDが7の同報通信メッセージ319をノード321に送信する。
図3Bは、オーバレイ・ネットワークのノードへの同報通信メッセージの配信の第2段階330を示す。図3Bおよび図3Cにおいて、網掛けされたノードは、同報通信メッセージを既に受信している。第2段階330では、段階300で開始ノード305から同報通信メッセージを受信したノードは、方法200に従って同報通信メッセージのコピーを転送する。このため、段階330では、ノード317は、終了IDが14の同報通信メッセージ336をノード338に、終了IDが15の同報通信メッセージ340をノード342に転送する。同様に、ノード321は、終了IDが1の同報通信メッセージ344をノード346に、終了IDが4の同報通信メッセージ348をノード350に、終了IDが7の同報通信メッセージ352をノード354に転送する。
ノード309は、それが受信した同報通信メッセージをどのノードにも転送しない。第1段階300では、ノード309は、終了IDが9の同報通信メッセージを受信した。キー値8を有するノード309とそれが受信した終了ID値9との間にはフィンガーノードがないため、ノード309にはそれが受信した同報通信メッセージを転送するノードがない。
図3A〜図3Cの例では、場所314、331、332、および333にそれぞれ割当てられたキー値3、5、10、および11は、どのノードにも割当てられていない。このため、ノード313のフィンガーテーブルの第1のエントリは、キー値12を有するノード317を参照する。しかしながら、ノード313は段階300で終了ID値が12の同報通信メッセージを受信した。ノード313はそのフィンガーテーブルに、終了ID値12よりも近いノードを有していないため、ノード313にはそれが受信した同報通信メッセージを転送するノードがない。
図3Cは、オーバレイ・ネットワークのノードへの同報通信メッセージの配信の第3段階360を示す。図3Bおよび図3Cにおいて、網掛けされたノードは、同報通信メッセージを既に受信している。第3段階360では、第2段階330でノードから同報通信メッセージを受信したノードは、方法200に従って同報通信メッセージのコピーを転送する。このため、段階360では、ノード350は、終了IDが4の同報通信メッセージ362をノード364に転送する。加えて、ノード354は、終了IDが7の同報通信メッセージ366をノード368に転送する。
ノード338、342、および346は、段階330においてそれらが受信した同報通信メッセージの終了ID値に起因して、段階360で同報通信メッセージを転送しない。同様に、段階360でノード364および366によって受信された同報通信メッセージは、それらのそれぞれの終了ID値に起因して、オーバレイ・ネットワークにおけるどの他のノードにも転送されない。
図3A〜図3Cの例からわかるように、オーバレイ・ネットワークにおけるすべてのノードは、同報通信メッセージのコピーを受信する。加えて、オーバレイ・ネットワークにおけるどのノードも、同報通信メッセージの重複物を受信しない。さらに、開始ノードは、オーバレイ・ネットワークにおけるノードの総数に拘らず、そのフィンガーテーブルにおける各ノードに同報通信メッセージのコピーを送信するのに十分なネットワーク帯域幅しか必要としない。図3A〜図3Cの例では、これはたった4つの同報通信メッセージである。2160のハッシュ空間に対応して160個のエントリフィンガーテーブルを有するノードを有するオーバレイ・ネットワークでは、開始ノードは、潜在的に何百万ものノードに達するために同報通信メッセージのコピーを160個送信するだけでよい。
さらに、方法200は同報通信メッセージをオーバレイ・ネットワークのすべてのノードにO(log2N)回で向けることが可能であることがわかっており、ここでNは、オーバレイ・ネットワークにおけるノードの数である。図3A〜図3Cの例では、これは、同報通信メッセージのlog10=3.32回、または約3段階の転送および受信に対応している。1,000,000個のノードを有する160ビットのハッシュ空間を有する例示的なオーバレイ・ネットワークでは、方法200は、同報通信メッセージをすべてのノードに、同報通信メッセージの約20回、または20段階の転送および受信で向けることができる。
さらに別の実施例では、同報通信メッセージは、オーバレイ・ネットワークにおけるノードの一部にのみ向けることができる。一実施例では、各同報通信メッセージは、終了IDパラメータに加え、開始IDパラメータを含む。開始IDパラメータは、同報通信メッセージを受信および処理するよう意図されたノードのキー値の範囲の始まりを表わしている。以下に詳細に説明するように、キー値のこの範囲外の追加ノードは、キー値のこの範囲内のノードがすべて同報通信メッセージを受信することを確実とするように同報通信メッセージを受信して転送してもよい。この実施例では、開始IDおよび終了IDは共に、ハッシュ空間の隣接部分のノードが同報通信メッセージを受信すべきであるということを特定する。開始ノードは、ハッシュ空間の異なる隣接部分を特定する開始ID値および終了ID値を各々有する多数の同報通信メッセージを送信することにより、オーバレイ・ネットワークにおける隣接していない組のノードに同報通信メッセージを向けることができる。
図4は、この発明の一実施例に従った、オーバレイ・ネットワークの一部に同報通信メッセージをルーティングする方法400を示す。方法400は、開始IDパラメータおよび終了IDパラメータを含む同報通信メッセージの受信で始まる。ステップ405で、ノ
ードは、ノードのフィンガーテーブルの第1のエントリに、インデックス値iをセットする。決定ブロック410で、ノードは、選択されたフィンガーテーブルエントリと呼ばれる、インデックス値iによって特定されたフィンガーテーブルエントリが、ノードのフィンガーテーブルの最後のエントリであるかどうかを判断する。そうである場合、方法400は決定ブロック410からステップ420に進む。ステップ420は、新規の終了IDパラメータを、受信された同報通信メッセージの終了IDと等しくなるように割当てる。
逆に、選択されたフィンガーテーブルエントリがノードのフィンガーテーブルの最後のエントリではないとノードが判断した場合、方法400は決定ブロック410からステップ415に進む。ステップ415は、新規の終了IDパラメータを、次のフィンガーテーブルエントリ(すなわち、インデックスi+1によって特定されるフィンガーテーブルエントリ)のキー値かまたは受信された同報通信メッセージの終了IDのうち、ハッシュ空間における現在のノードに近い方と等しくなるように割当てる。一実施例では、現在のノードと、次のフィンガーテーブルエントリまたは現在の終了IDのようなキー値との距離は、現在のノードのキー値を他のキー値から減算することによって求められ得る。
ステップ415のこの実施例では、フィンガーテーブルのエントリはそれらのそれぞれのノードのキー値の順に配置されること、および同報通信メッセージはキー値が大きくなる順にノードに通信されることが仮定される。しかしながら、代替的な実施例では、フィンガーテーブルは異なる順序で配置可能であり、同報通信メッセージはキー値が大きくなる順かまたは小さくなる順に通信され得る。
ステップ415またはステップ420に続いて、方法400は決定ブロック425に進む。決定ブロック425では、ノードは、選択されたフィンガーテーブルエントリのキー値が新規の終了IDパラメータの値よりも小さいかどうか、および、受信された同報通信メッセージの開始IDパラメータが新規の終了IDパラメータよりも近いかどうかを判断する。これらの条件が双方とも真である場合、方法400はステップ430に進む。ステップ430は、新規の開始IDパラメータを、選択されたフィンガーテーブルエントリのキー値かまたは受信された同報通信メッセージの開始IDパラメータのうち、ハッシュ空間における現在のノードから近い方と等しくなるように割当てる。
ステップ430に続いて、ステップ435は、選択されたフィンガーテーブルエントリに一致するノードに同報通信メッセージを転送する。転送された同報通信メッセージは、新規の開始IDパラメータに等しい開始IDと、新規の終了IDパラメータに等しい終了IDパラメータとを含む。
決定ブロック425またはステップ435に続いて、方法400は決定ブロック440に進む。決定ブロック440は、選択されたフィンガーテーブルエントリがノードのフィンガーテーブルの最後のエントリであるかどうかを判断する。そうである場合、方法400は終了し、ノードは同報通信メッセージの転送を終える。
選択されたフィンガーテーブルエントリがノードのフィンガーテーブルの最後のエントリではないと決定ブロック440が判断した場合、方法400はステップ445に進む。ステップ445はインデックスiをインクリメントし、それにより、ノードのフィンガーテーブルの次のフィンガーテーブルエントリを選択する。ステップ445に続いて、方法400は決定ブロック410に戻る。ステップ410、415、420、425、430、435、440、および445は、ノードのフィンガーテーブルのエントリすべてを評価するために必要に応じて何度でも繰返されてもよい。
同報通信メッセージは、任意のタイプの情報を、オーバレイ・ネットワークのノードの
すべてまたは一部に伝えることができる。加えて、1つ以上のノードが、同報通信メッセージを開始しているノードと直接接触することによって同報通信メッセージに応答することができる。多数のノードが同報通信メッセージに潜在的に応答できる場合、開始ノードおよびそのネットワーク接続は圧倒される場合がある。
この発明のさらに別の実施例は、同報通信メッセージの配信に使用されるのと同じルートに沿って応答メッセージを集約することにより、この問題を緩和する。この実施例では、各ノードが、それ自体または別のノードからの応答を潜在的に必要とする同報通信メッセージを受信した場合、受信ノードは、送信ノードと呼ばれる、同報通信メッセージを送信しているノードの場所を記憶し、送信ノードは、同報通信メッセージを開始しているノードか、または同報通信メッセージを転送している中間ノードであってもよい。受信ノードが、同報通信メッセージへの応答が必要であると判断した場合、受信ノードはその応答をそのそれぞれの送信ノードに転送し返す。ノードは潜在的にどのノードからも同報通信メッセージを受信できるため、一実施例では、各ノードは、それが受信する各同報通信メッセージに関連付けられた送信ノードを記憶する。
図5は、この発明の一実施例に従った、オーバレイ・ネットワークのノードからのクエリー結果を集約するためのシステムを示す。例示的なオーバレイ・ネットワーク500は、1組のノードを含む。この1組のノードは、図3A〜図3Cに説明したものと同様の1組の経路を介して、例示的な開始ノード535と接続されている。一実施例では、開始ノードからの同報通信メッセージに応答するノードは、その応答をそのそれぞれの送信ノードに転送する。たとえば、ノード510は、ノード535によって開始された同報通信メッセージを、送信ノード515を介して受信した。このため、ノード510は、その応答メッセージがもしあれば、それをノード515に送り返す。同様に、ノード515は、ノード535によって開始された同報通信メッセージを、ノード525を介して受信した。ノード525は、同報通信メッセージを開始ノード535から直接受信した。このため、ノード510からの応答メッセージは、ノード515および525を介して、開始ノード535に戻る。
あるノードが1つ以上のノードから応答メッセージを受信した場合、そのノードは応答メッセージを1つの新しい応答メッセージに集約し、それが次にその送信ノードに転送し返される。一実施例では、ノードは、同報通信メッセージに応答しないよう選択することができる。たとえば、同報通信メッセージが検索クエリーである場合、ノードは、そのノードがその検索クエリーを満たしている場合のみ応答するように選択できる。
ノードは、当該技術分野において公知のデータを圧縮または集約するための任意のアルゴリズムを用いて、応答メッセージを集約できる。たとえば、ノード505および510の双方が同報通信メッセージに応答する場合、ノード525が双方の応答を受信する。ノード525はこれらの応答を、ノード530の応答および/またはそれ自体の応答がもしあればともに集約して、組み合わされた応答メッセージにすることができる。ノード525は次に、組み合わされた応答メッセージをノード535に転送し返す。
一実施例では、ノードは、応答の組のコンパクト表現を決定することによってこれらの応答を集約する。たとえば、離散的コサイン変換、高速フーリエ変換、またはウェーブレット変換といった周波数領域変換を適用して、同報通信メッセージへの応答の組のコンパクト表現を決定することができる。この例では、ノードは、メッセージ応答の組の1つ以上の周波数領域表現を受信し、これらの表現を逆変換し、そのノード自体の応答がもしあればこれらの表現と組み合わせ、メッセージ応答の組み合わされた組の新しい周波数領域表現を作成し、組み合わされた周波数領域表現をその送信ノードに転送し返すことができる。
図6は、この発明の一実施例に従った、オーバレイ・ネットワーク600を実現するのに好適な1組の情報処理装置を示す。オーバレイ・ネットワーク600のノードは、ラップトップまたはポータブルコンピュータ605と、サーバコンピュータ610と、デスクトップコンピュータおよびワークステーション615と、携帯電話、携帯情報端末、携帯型デジタルメディアプレーヤ、および携帯型または手持ち式ゲーム機といった携帯コンピューティング装置620と、ビデオゲーム機、デジタルメディアプレーヤ、セットトップボックス、メディアセンターコンピュータ、および記憶装置といった家庭用娯楽機器625とを含む。オーバレイ・ネットワーク600は、他のタイプの装置の数とは独立した任意の数の各タイプの装置を含み得る。各装置は、オーバレイ・ネットワーク600の1つ以上のノードの機能性を実現する。各装置について、1つ以上のノードの機能性は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせとして実現可能である。ソフトウェアにおけるノード機能性は、アプリケーション、ライブラリ、アプリケーション・プログラミング・インターフェイス、および/またはオペレーティングシステムの一部であり得る。さらに、オーバレイ・ネットワーク600の各ノードは、任意のタイプの電気、光学、無線または他の通信手段を取入れた任意のタイプの有線または無線ネットワーク接続を介して、他のノードと接続可能である。オーバレイ・ネットワーク600は、ローカルエリアネットワークと、インターネットなどの広域ネットワークとの双方を包含し得る。
さらに別の実施例では、オーバレイ・ネットワーク600のいくつかの装置は、制限された能力を有していてもよい。たとえば、オーバレイ・ネットワーク600のノードの限られた一部だけが、同報通信メッセージを開始することを許可されてもよい。残りのノードは、同報通信メッセージを転送および/または処理することだけが許可される。さらに別の実施例では、オーバレイ・ネットワーク600のノードのすべてまたは一部は、同報通信メッセージを認証することができる。この実施例は、不正な同報通信メッセージの拡散を防止する。同報通信メッセージを受信すると、ノードはまず、その同報通信メッセージが真正のものかどうかを、たとえば暗号シグネチャをチェックすることによって判断する。同報通信メッセージが真正のものである場合、それは上述のように処理され、他のノードに潜在的に転送される。その他の場合、その同報通信メッセージは無視される。
図7は、この発明の一実施例に従った、オーバレイ・ネットワーク700を実現するのに好適な1組の情報処理装置を示す。オーバレイ・ネットワーク700は、データバスを通して接続されたプロセッサが効率的な態様で同報通信メッセージを送受信できるようにする。データバスは、集積回路内および/または集積回路間でデータを搬送可能な任意の電気、光学または他のタイプのデータ通信手段を使用可能である。
オーバレイ・ネットワーク700は、プロセッサ705、710、715、および720を含む。さらに別の実施例では、オーバレイ・ネットワーク700は、何千または何百万ものプロセッサを含み得る。各プロセッサは、マイクロプロセッサ、マイクロコントローラ、システム・オン・チップ・プロセッサ、デジタル信号プロセッサ、ASIC、プログラム可能論理装置、および/または任意の他のタイプの情報処理装置であり得る。各プロセッサはさらに、情報処理命令のシーケンスを独立して実行すること、または固定されたアルゴリズムに従って情報を処理することが可能な1つ以上の処理ユニットを含み得る。各プロセッサは、ローカルデータストレージと、共通または共有データストレージへのアクセスとを含み得る。
図8は、この発明の一実施例に従った、オーバレイ・ネットワークのノードを実現するのに好適な情報処理装置の構成要素を示す。図8は、この発明の一実施例を実践するのに好適な、パーソナルコンピュータ、ビデオゲーム機、携帯情報端末、または他のデジタル
装置といったコンピュータシステム1000のブロック図である。コンピュータシステム1000は、ソフトウェアアプリケーションおよび任意でオペレーティングシステムを動作させるための中央処理装置(CPU)1005を含む。CPU1005は、1つ以上の処理コアから構成されてもよい。メモリ1010は、CPU1005によって使用されるためのアプリケーションおよびデータを格納する。ストレージ1015は、アプリケーションおよびデータ用の不揮発性ストレージを提供し、固定ディスクドライブ、取外し可能ディスクドライブ、フラッシュメモリ装置、およびCD−ROM、DVD−ROM、ブルーレイ、HD−DVD、UMD、または他の光学ストレージ装置を含んでいてもよい。ユーザ入力装置1020は、1人以上のユーザからのユーザ入力をコンピュータシステム1000に通信し、その例は、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチルまたはビデオカメラ、および/またはマイクを含んでいてもよい。ネットワークインターフェイス1025は、コンピュータシステム1000が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワークおよびインターネットなどの広域ネットワークを通した有線または無線通信を含んでいてもよい。音声プロセッサ1055は、CPU1005、メモリ1010、および/またはストレージ1015によって提供される命令および/またはデータからアナログまたはデジタル音声出力を生成するようになっている。CPU1005、メモリ1010、データストレージ1015、ユーザ入力装置1020、ネットワークインターフェイス1025、および音声プロセッサ1055を含むコンピュータシステム1000の構成要素は、1つ以上のデータバス1060を介して接続されている。
グラフィックスサブシステム1030がさらに、データバス1060およびコンピュータシステム1000の構成要素と接続されている。グラフィックスサブシステム1030は、グラフィックス処理ユニット(GPU)1035と、グラフィックスメモリ1040とを含む。グラフィックスメモリ1040は、出力画像の各画素についての画素データを格納するために使用されるディスプレイメモリ(たとえばフレームバッファ)を含む。グラフィックスメモリ1040は、GPU1035と同じ装置に一体化可能であり、GPU1035とは別個の装置として接続可能であり、および/またはメモリ1010内に実現可能である。画素データは、CPU1005から直接、グラフィックスメモリ1040に提供され得る。また、これに代えて、CPU1005はGPU1035に、所望の出力画像を規定するデータおよび/または命令を提供し、それからGPU1035は1つ以上の出力画像の画素データを生成する。所望の出力画像を規定するデータおよび/または命令は、メモリ1010および/またはグラフィックスメモリ1040に格納され得る。一実施例では、GPU1035は、あるシーンについてのジオメトリ、照明、影付け、テキスチャリング、動き、および/またはカメラパラメータを規定する命令およびデータから、出力画像用の画素データを生成するための三次元化機能を含む。GPU1035はさらに、シェーダプログラムを実行可能な1つ以上のプログラム可能実行ユニットを含み得る。
グラフィックスサブシステム1030は、画像用の画素データを、ディスプレイ装置1050上に表示されるようにグラフィックスメモリ1040から周期的に出力する。ディスプレイ装置1050は、コンピュータシステム1000からの信号に応答して視覚情報を表示可能なあらゆる装置であり、CRT、LCD、プラズマおよびOLEDディスプレイを含む。コンピュータシステム1000は、ディスプレイ装置1050にアナログまたはデジタル信号を提供可能である。
明細書および図面から、さらに別の実施例が当業者の脳裏に浮かぶであろう。他の実施例では、上に開示された発明の組み合わせまたは部分的な組み合わせが有利になされ得る。アーキテクチャのブロック図およびフローチャートは、理解を容易にするためにグループ化されている。しかしながら、この発明の代替的な実施例では、ブロックの組み合わせ、新しいブロックの追加、ブロックの再構成などが考えられるということが理解されるべ
きである。
したがって、明細書および図面は、限定的な意味というよりもむしろ例示的な意味において考慮されるべきである。しかしながら、請求項に述べられているようなこの発明のより広い精神および範囲から逸脱することなく、さまざまな修正および変更がそれになされてもよいことは明らかである。
この発明の一実施例での使用に好適な、例示的なコード・オーバレイ・ネットワークを示す図である。 この発明の一実施例での使用に好適な、例示的なコード・オーバレイ・ネットワークを示す図である。 この発明の一実施例での使用に好適な、例示的なコード・オーバレイ・ネットワークを示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークにおいて同報通信メッセージをルーティングする方法を示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークにおける同報通信メッセージの例示的なルーティングを示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークにおける同報通信メッセージの例示的なルーティングを示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークにおける同報通信メッセージの例示的なルーティングを示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークの一部に同報通信メッセージをルーティングする方法を示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークのノードからのクエリー結果を集約するためのシステムを示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークを実現するのに好適な1組の情報処理装置を示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークを実現するのに好適な1組の情報処理装置を示す図である。 この発明の一実施例に従った、オーバレイ・ネットワークのノードを実現するのに好適な情報処理装置の構成要素を示す図である。

Claims (22)

  1. オーバレイ・ネットワークにおいて同報通信メッセージを処理する方法であって、前記方法は、
    送信ノードから終了IDを含む同報通信メッセージを受信するステップを含み、前記終了IDは、前記同報通信メッセージのコピーを受信すべきフィンガーノードのためのキー値の範囲を特定し、前記方法はさらに、
    フィンガーテーブルのエントリを選択するステップを含み、前記フィンガーテーブルの各エントリは、あるフィンガーノードおよびそのフィンガーノードに関連付けられたキー値への参照を含み、前記方法はさらに、
    前記フィンガーテーブルの次のエントリがあるかどうかを判断するステップを含み、前記次のエントリは、ノードの順序に従って前記選択されたフィンガーテーブルエントリの前記キー値に隣接するキー値を含み、前記方法はさらに、
    前記フィンガーテーブルの次のエントリがあるという前記判断に応じて、前記次のエントリに関連付けられた前記キー値に新規の終了IDをセットするステップと、
    前記フィンガーテーブルの次のエントリがないという前記判断に応じて、前記受信された同報通信メッセージの前記終了IDに新規の終了IDをセットするステップと、
    前記選択されたフィンガーテーブルエントリの前記キー値を前記新規の終了IDと比較するステップと、
    前記選択されたフィンガーテーブルエントリの前記キー値が、前記新規の終了IDによって特定されたキー値の範囲内にあるという判断に応じて、前記新規の終了IDを有する前記同報通信メッセージのコピーを前記選択されたエントリの前記フィンガーノードに転送するステップとを含む、方法。
  2. 前記フィンガーテーブルは、それぞれのキー値に従って配置された2つ以上のエントリを含む、請求項1に記載の方法。
  3. 前記ノードの順序は、キー値に従って昇順である、請求項1に記載の方法。
  4. 前記ノードの順序は、キー値に従って降順である、請求項1に記載の方法。
  5. 前記同報通信メッセージを通信する送信ノードへの参照を格納するステップと、
    同報通信メッセージの前記転送されたコピーに応じて、少なくとも1つのフィンガーノードから応答メッセージを受信するステップと、
    前記受信された応答メッセージを組み合わされた応答メッセージに集約するステップと、
    前記組み合わされた応答メッセージを前記送信ノードに転送するステップとをさらに含む、請求項1に記載の方法。
  6. 前記同報通信メッセージへの応答を受信するステップと、
    前記応答を前記組み合わされた応答メッセージに含めるステップとをさらに含む、請求項5に記載の方法。
  7. 前記受信された応答メッセージを集約するステップは、前記受信された応答メッセージのコンパクト表現を作成するために周波数領域変換を使用するステップをさらに含む、請求項5に記載の方法。
  8. オーバレイ・ネットワークにおいて同報通信メッセージを処理する方法であって、前記方法は、
    現在のキー値を有する現在のノードによって同報通信メッセージを受信するステップを含み、前記同報通信メッセージは送信ノードからの開始IDおよび終了IDを含み、前記開始IDおよび終了IDは、前記同報通信メッセージのコピーを受信すべきフィンガーノードのためのキー値の範囲を特定し、前記方法はさらに、
    フィンガーテーブルのエントリを選択するステップを含み、前記フィンガーテーブルの各エントリは、あるフィンガーノードおよびそのフィンガーノードに関連付けられたキー値への参照を含み、前記方法はさらに、
    前記フィンガーテーブルの次のエントリがあるかどうかを判断するステップを含み、前記次のエントリは、ノードの順序に従って前記選択されたフィンガーテーブルエントリの前記キー値に隣接するキー値を含み、前記方法はさらに、
    前記フィンガーテーブルの次のエントリがあるという前記判断に応じて、前記次のエントリに関連付けられた前記キー値に新規の終了IDをセットするステップと、
    前記フィンガーテーブルの次のエントリがないという前記判断に応じて、前記受信された同報通信メッセージの前記終了IDに新規の終了IDをセットするステップと、
    前記選択されたフィンガーテーブルエントリの前記キー値を前記新規の終了IDと比較し、前記開始IDを前記新規の終了IDと比較するステップと、
    前記選択されたフィンガーテーブルエントリの前記キー値が、前記新規の終了IDによって特定されたキー値の範囲内にあり、かつ、前記開始IDが、前記新規の終了IDによって特定されたキー値の範囲内にあるという判断に応じて、
    前記フィンガーテーブルの前記選択されたエントリの前記キー値かまたは前記開始IDのうち、前記現在のキー値から遠いほうに、新規の開始IDをセットするステップと、
    前記新規の終了IDおよび前記新規の開始IDを有する前記同報通信メッセージのコピーを前記選択されたエントリの前記フィンガーノードに転送するステップとを含む、方法。
  9. 前記フィンガーテーブルは、それぞれのキー値に従って配置された2つ以上のエントリを含む、請求項8に記載の方法。
  10. 前記ノードの順序は、キー値に従って昇順である、請求項8に記載の方法。
  11. 前記ノードの順序は、キー値に従って降順である、請求項8に記載の方法。
  12. 前記同報通信メッセージを通信する送信ノードへの参照を格納するステップと、
    同報通信メッセージの前記転送されたコピーに応じて、少なくとも1つのフィンガーノードから応答メッセージを受信するステップと、
    前記受信された応答メッセージを組み合わされた応答メッセージに集約するステップと、
    前記組み合わされた応答メッセージを前記送信ノードに転送するステップとをさらに含む、請求項8に記載の方法。
  13. 前記同報通信メッセージへの応答を受信するステップと、
    前記応答を前記組み合わされた応答メッセージに含めるステップとをさらに含む、請求項12に記載の方法。
  14. 前記受信された応答メッセージを集約するステップは、前記受信された応答メッセージのコンパクト表現を作成するために周波数領域変換を使用するステップをさらに含む、請求項12に記載の方法。
  15. 情報処理装置に動作を実行するよう指示するために適合された命令を含む情報記憶媒体であって、前記動作は、
    送信ノードから終了IDを含む同報通信メッセージを受信することを含み、前記終了IDは、前記同報通信メッセージのコピーを受信すべきフィンガーノードのためのキー値の範囲を特定し、前記動作はさらに、
    フィンガーテーブルのエントリを選択することを含み、前記フィンガーテーブルの各エントリは、あるフィンガーノードおよびそのフィンガーノードに関連付けられたキー値への参照を含み、前記動作はさらに、
    前記フィンガーテーブルの次のエントリがあるかどうかを判断することを含み、前記次のエントリは、ノードの順序に従って前記選択されたフィンガーテーブルエントリの前記キー値に隣接するキー値を含み、前記動作はさらに、
    前記フィンガーテーブルの次のエントリがあるという前記判断に応じて、前記次のエントリに関連付けられた前記キー値に新規の終了ID値をセットすることと、
    前記フィンガーテーブルの次のエントリがないという前記判断に応じて、前記受信された同報通信メッセージの前記終了IDに新規の終了ID値をセットすることと、
    前記選択されたフィンガーテーブルエントリの前記キー値を前記新規の終了ID値と比較することと、
    前記選択されたフィンガーテーブルエントリの前記キー値が、前記新規の終了ID値によって特定されたキー値の範囲内にあるという判断に応じて、前記新規の終了ID値を有する前記同報通信メッセージのコピーを前記選択されたエントリの前記フィンガーノードに転送することとを含む、情報記憶媒体。
  16. 前記フィンガーテーブルは、それぞれのキー値に従って配置された2つ以上のエントリを含む、請求項15に記載の情報記憶媒体。
  17. 前記ノードの順序は、キー値に従って昇順である、請求項15に記載の情報記憶媒体。
  18. 前記ノードの順序は、キー値に従って降順である、請求項15に記載の情報記憶媒体。
  19. 前記同報通信メッセージを通信する送信ノードへの参照を格納することと、
    同報通信メッセージの前記転送されたコピーに応じて、少なくとも1つのフィンガーノードから応答メッセージを受信することと、
    前記受信された応答メッセージを組み合わされた応答メッセージに集約することと、
    前記組み合わされた応答メッセージを前記送信ノードに転送することとをさらに含む、請求項15に記載の情報記憶媒体。
  20. 前記同報通信メッセージへの応答を受信することと、
    前記応答を前記組み合わされた応答メッセージに含めることとをさらに含む、請求項19に記載の情報記憶媒体。
  21. 前記受信された応答メッセージを集約することは、前記受信された応答メッセージのコンパクト表現を作成するために周波数領域変換を使用することをさらに含む、請求項19に記載の情報記憶媒体。
  22. 情報処理装置に動作を実行するよう指示するために適合された命令を含む情報記憶媒体であって、前記動作は、
    現在のキー値を有する現在のノードによって同報通信メッセージを受信することを含み、前記同報通信メッセージは送信ノードからの開始IDおよび終了IDを含み、前記開始IDおよび終了IDは、前記同報通信メッセージのコピーを受信すべきフィンガーノードのためのキー値の範囲を特定し、前記動作はさらに、
    フィンガーテーブルのエントリを選択することを含み、前記フィンガーテーブルの各エントリは、あるフィンガーノードおよびそのフィンガーノードに関連付けられたキー値への参照を含み、前記動作はさらに、
    前記フィンガーテーブルの次のエントリがあるかどうかを判断することを含み、前記次のエントリは、ノードの順序に従って前記選択されたフィンガーテーブルエントリの前記キー値に隣接するキー値を含み、前記動作はさらに、
    前記フィンガーテーブルの次のエントリがあるという前記判断に応じて、前記次のエントリに関連付けられた前記キー値に新規の終了IDをセットすることと、
    前記フィンガーテーブルの次のエントリがないという前記判断に応じて、前記受信された同報通信メッセージの前記終了IDに新規の終了IDをセットすることと、
    前記選択されたフィンガーテーブルエントリの前記キー値を前記新規の終了IDと比較し、前記開始IDを前記新規の終了IDと比較することと、
    前記選択されたフィンガーテーブルエントリの前記キー値が、前記新規の終了IDによって特定されたキー値の範囲内にあり、かつ、前記開始IDが、前記新規の終了IDによって特定されたキー値の範囲内にあるという判断に応じて、
    前記フィンガーテーブルの前記選択されたエントリの前記キー値かまたは前記開始IDのうち、前記現在のキー値から遠いほうに、新規の開始IDをセットすることと、
    前記新規の終了IDおよび前記新規の開始IDを有する前記同報通信メッセージのコピーを前記選択されたエントリの前記フィンガーノードに転送することとを含む、情報記憶媒体。
JP2008542365A 2005-11-29 2006-11-17 ピアツーピア・オーバレイ・ネットワークにおける同報通信メッセージング Active JP4671306B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/291,121 US7468952B2 (en) 2005-11-29 2005-11-29 Broadcast messaging in peer to peer overlay network
PCT/US2006/044661 WO2007120213A2 (en) 2005-11-29 2006-11-17 Broadcast messaging in peer to peer overlay network

Publications (2)

Publication Number Publication Date
JP2009517921A JP2009517921A (ja) 2009-04-30
JP4671306B2 true JP4671306B2 (ja) 2011-04-13

Family

ID=38087376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008542365A Active JP4671306B2 (ja) 2005-11-29 2006-11-17 ピアツーピア・オーバレイ・ネットワークにおける同報通信メッセージング

Country Status (6)

Country Link
US (4) US7468952B2 (ja)
EP (2) EP2226969B1 (ja)
JP (1) JP4671306B2 (ja)
AT (1) ATE464716T1 (ja)
DE (1) DE602006013694D1 (ja)
WO (1) WO2007120213A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041942B2 (en) * 2006-09-05 2011-10-18 Panasonic Corporation Robust peer-to-peer networks and methods of use thereof
CN103546372A (zh) * 2006-11-27 2014-01-29 艾利森电话股份有限公司 用于提供覆盖网络的路由选择体系结构的方法和系统
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
JP4886045B2 (ja) * 2007-03-09 2012-02-29 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 分散型通信ネットワークにおけるネットワーク管理タスクの分散配置
US20080288654A1 (en) * 2007-05-17 2008-11-20 Nokia Corporation Node and method to provide and keep real-time up-to-date data in a distributed hash table
US8238237B2 (en) * 2007-06-18 2012-08-07 Sony Computer Entertainment Inc. Load balancing distribution of data to multiple recipients on a peer-to-peer network
US20090094651A1 (en) * 2007-10-09 2009-04-09 Alcatel Lucent Ethernet-Level Measurement of Multicast Group Delay Performance
JP5029373B2 (ja) * 2008-01-11 2012-09-19 日本電気株式会社 ノード、経路制御方法および経路制御プログラム
EP2255518A1 (en) 2008-02-13 2010-12-01 Telefonaktiebolaget LM Ericsson (publ) Overlay network node and overlay networks
US8176200B2 (en) * 2008-10-24 2012-05-08 Microsoft Corporation Distributed aggregation on an overlay network
US8767587B1 (en) 2009-01-21 2014-07-01 Cisco Technology, Inc. Exploratory linktrace operations in a computer network
US9135094B2 (en) * 2009-06-22 2015-09-15 Microsoft Technology Licensing, Llc Adding configurable messaging functionality to an infrastructure
US10248932B2 (en) 2009-12-01 2019-04-02 International Business Machines Corporation Informing users of a virtual universe of real world events
US8792409B2 (en) * 2010-01-29 2014-07-29 Elster Solutions, Llc Clearing redundant data in wireless mesh network
US8855102B2 (en) * 2010-01-29 2014-10-07 Elster Solutions, Llc Wireless communications providing interoperability between devices capable of communicating at different data rates
US8549126B2 (en) * 2010-04-09 2013-10-01 Sony Computer Entertainment Inc. Application level broadcast in peer overlay network
US8804731B2 (en) * 2010-10-27 2014-08-12 Intel Corporation Generating platform identification for certification version signaling
US20130110931A1 (en) * 2011-11-02 2013-05-02 The Board Of Trustees Of The University Of Illinois Scalable Peer To Peer Streaming For Real-Time Data
CN106202303B (zh) * 2016-06-30 2019-09-10 南京邮电大学 一种Chord路由表压缩方法及优化文件查找方法
CN108337170B (zh) * 2018-01-30 2021-08-17 浙江省公众信息产业有限公司 分布式资源查找方法和系统
CN109391907A (zh) * 2018-12-13 2019-02-26 武汉盛硕电子有限公司 一种加密、解密方法及其应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07336372A (ja) * 1994-06-06 1995-12-22 At & T Corp 自己ルーティング多段階ネットワークを通してのデータセルのマルチキャスト方法及びそのネットワーク装置
WO2003105421A1 (ja) * 2002-06-06 2003-12-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラム、該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアント

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197044B1 (en) 1999-03-17 2007-03-27 Broadcom Corporation Method for managing congestion in a network switch
US7009968B2 (en) 2000-06-09 2006-03-07 Broadcom Corporation Gigabit switch supporting improved layer 3 switching
US20020097732A1 (en) * 2001-01-19 2002-07-25 Tom Worster Virtual private network protocol
US7161948B2 (en) 2002-03-15 2007-01-09 Broadcom Corporation High speed protocol for interconnecting modular network devices
JP2005531222A (ja) * 2002-06-21 2005-10-13 ネクストホップ テクノロジーズ,インク インタネットルーティングプロトコルを用いるためのフィボナッチヒープ
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
US7379428B2 (en) * 2002-10-31 2008-05-27 Hewlett-Packard Development Company, L.P. Autonomous system topology based auxiliary network for peer-to-peer overlay network
US7805448B2 (en) * 2003-04-18 2010-09-28 Hewlett-Packard Development Company, L.P. Storing attribute values of computing resources in a peer-to-peer network
KR100803272B1 (ko) * 2004-01-29 2008-02-13 삼성전자주식회사 아이피 브이 식스 네트워크에서 인증을 처리하는 방법 및그 장치
US7730207B2 (en) * 2004-03-31 2010-06-01 Microsoft Corporation Routing in peer-to-peer networks
US7603715B2 (en) * 2004-07-21 2009-10-13 Microsoft Corporation Containment of worms
US7715396B2 (en) * 2004-08-19 2010-05-11 Microsoft Corporation Network routing
US7466656B2 (en) * 2004-10-26 2008-12-16 International Business Machines Corporation Method, apparatus and program storage device for efficient construction of network overlays through interconnection topology embedding
US7529255B2 (en) * 2005-04-21 2009-05-05 Microsoft Corporation Peer-to-peer multicasting using multiple transport protocols
US7808971B2 (en) * 2005-07-01 2010-10-05 Miller John L Routing cache for distributed hash tables
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07336372A (ja) * 1994-06-06 1995-12-22 At & T Corp 自己ルーティング多段階ネットワークを通してのデータセルのマルチキャスト方法及びそのネットワーク装置
WO2003105421A1 (ja) * 2002-06-06 2003-12-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラム、該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアント

Also Published As

Publication number Publication date
EP1955477B1 (en) 2010-04-14
EP1955477A2 (en) 2008-08-13
US20090086739A1 (en) 2009-04-02
US20070121570A1 (en) 2007-05-31
US20110317697A1 (en) 2011-12-29
EP2226969A1 (en) 2010-09-08
EP2226969B1 (en) 2013-01-02
WO2007120213A3 (en) 2007-12-27
US7969906B2 (en) 2011-06-28
ATE464716T1 (de) 2010-04-15
US7468952B2 (en) 2008-12-23
JP2009517921A (ja) 2009-04-30
US8837477B2 (en) 2014-09-16
WO2007120213A2 (en) 2007-10-25
US7729280B2 (en) 2010-06-01
DE602006013694D1 (de) 2010-05-27
US20100195652A1 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
JP4671306B2 (ja) ピアツーピア・オーバレイ・ネットワークにおける同報通信メッセージング
KR101095092B1 (ko) 피어투피어 네트워크에서 복수의 수신자로의 부하 분산된 데이터 분배
JP4806203B2 (ja) ピアツーピアネットワークにおけるルーティング
US8582469B2 (en) Peer-to-peer network including routing protocol enhancement
US7562125B2 (en) Techniques for locating distributed objects on a network based on physical communication costs
US9913251B2 (en) Application level broadcast in peer overlay network
US8959243B2 (en) System and method to guide active participation in peer-to-peer systems with passive monitoring environment
US8542690B2 (en) Information communication system, information collection method, node device, and recording medium
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
Lu et al. A scalable P2P overlay based on arrangement graph with minimized overhead
US11956214B2 (en) Media access control address learning limit on a virtual extensible local area multi-homed network Ethernet virtual private network access port
JP2013520112A (ja) 複数のコンピュータ間のデータ配布システム、方法及びソフトウェアアプリケーション
JP2008219644A (ja) パケット転送方法および制御装置
JP2005341378A (ja) マルチキャスト転送装置の負荷分散方式、マルチキャスト分岐機能体における負荷分散方法、マルチキャスト分岐機能体における分散装置および情報出力プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100818

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101126

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110113

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4671306

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250