(57)【要約】ボイス・オーバＩＰセッションなどの信号路および通信セッションは、キャリア・ベースのピアツーピア・ネットワーク（Ｐ２Ｐ）を介して以前に可能と考えられたものより大幅に短い、予測可能な期間内に確立されることができる。多数のホップ／ノードを渡る信号路を必要とすることなく、新しいアーキテクチャによって信号路が、Ｐ２Ｐネットワークのコアの一部であるいくつかの指定されたホスト・ノードおよびアンカ・ノードを渡ることができる。新しいアーキテクチャおよび関連の方法は、Ｐ２Ｐネットワークを容易に管理し維持することも可能にする。
2009540679.tif 000002
【特許請求の範囲】
【請求項１】
セッションが分散ハッシュ・テーブル（ＤＨＴ）・ベースのピアツーピア・ネットワーク内で一定の期間内に確立されることができるアーキテクチャであって、
１つまたは複数のユーザを少なくとも１つの主のホスト・ノードに地理的に関連付け、
各ユーザを少なくとも１つのアンカ・ノードにさらに関連付ける
ように動作可能なプロビジョニング・サーバ
を備え、
セッションが一定の期間内に確立されることができるアーキテクチャ。
【請求項２】
１つまたは複数の主のホスト・ノードをさらに備え、各ホスト・ノードは、
１つまたは複数の関連のユーザの識別番号およびアドレスを格納し、
関連のユーザからのセッションを確立するという要求を受信者ユーザのアンカ・ノードまたはホスト・ノードに転送するように動作可能である、請求項１に記載のアーキテクチャ。
【請求項３】
１つまたは複数のアンカ・ノードをさらに備え、各アンカ・ノードは、
１つまたは複数のユーザに地理的に関連付けられている少なくとも１つの主のホスト・ノードの識別番号およびアドレスを格納し、
関連のユーザとのセッションを確立するという要求を受信者のホスト・ノードの格納された識別番号およびアドレスを使用して前記要求の前記所期の受信者のホスト・ノードに転送するように動作可能である、請求項１に記載のアーキテクチャ。
【請求項４】
前記プロビジョニング・サーバは、前記主のホスト・ノードが利用できないときに前記ネットワーク中の前記主のホスト・ノードの負荷を均等に分散するために前記同一の主のホスト・ノードに関連付けられたユーザを様々な二次のホスト・ノードに関連付けるようにさらに動作可能である、請求項１に記載のアーキテクチャ。
【請求項５】
各アンカ・ノードは、各ユーザに関連付けられた少なくとも１つの二次のホスト・ノードの識別番号およびアドレスを格納するようにさらに動作可能であり、
各二次のホスト・ノードは、前記主のホスト・ノードが利用できないときにその各ユーザのためのバックアップ・ホスト・ノードである、請求項４に記載のアーキテクチャ。
【請求項６】
前記セッションはボイス・オーバＩＰ（ＶｏＩＰ）セッションを備える、請求項１に記載のアーキテクチャ。
【請求項７】
各ホスト・ノードは、関連のユーザとのセッションをしばしば必要とする１つまたは複数の第三者のユーザに関連付けられた２つ以上のホスト・ノードの識別番号およびアドレスをその関連のユーザごとに格納するように動作可能である、請求項２に記載のアーキテクチャ。
【請求項８】
分散ハッシュ・テーブル（ＤＨＴ）・ベースのピアツーピア・ネットワーク内で一定の期間内にセッションを確立するための方法であって、
１つまたは複数のユーザを少なくとも１つの主のホスト・ノードに地理的に関連付けるステップと、
各ユーザを少なくとも１つのアンカ・ノードにさらに関連付けるステップと、
１つまたは複数の主のホスト・ノード内に１つまたは複数の関連のユーザの識別番号およびアドレスを格納するステップと、
受信者と転送するホスト・ノードに関連付けられたユーザとの間でセッションを確立するために前記主のホスト・ノードからの要求を前記要求の前記所期の受信者のアンカ・ノードまたはホスト・ノードに転送するステップと
を備える方法。
【請求項９】
１つまたは複数のアンカ・ノード内の１つまたは複数のユーザに地理的に関連付けられている少なくとも１つの主のホスト・ノードの識別番号およびアドレスを格納するステップと、
受信者と転送するアンカ・ノードに関連付けられたユーザとの間でセッションを確立するために前記受信者のホスト・ノードの格納された識別番号およびアドレスを使用して前記アンカ・ノードからの要求を前記要求の前記所期の受信者の前記ホスト・ノードに転送するステップと
をさらに備える、請求項８に記載の方法。
【請求項１０】
前記主のホスト・ノードが利用できないときに前記ネットワーク中の前記主のホスト・ノードの負荷を均等に分散するために前記同一の主のホスト・ノードに関連付けられたユーザを様々な二次のホスト・ノードに関連付けるステップと、
各ユーザに関連付けられた少なくとも１つの二次のホスト・ノードの識別番号およびアドレスを格納するステップと
をさらに備え、
各二次のホスト・ノードは、前記主のホスト・ノードが利用できないときにその各ユーザのためのバックアップ・ホスト・ノードである、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
電気通信分野に関し、特にピアツーピア・ネットワーク技術に関する。
【背景技術】
【０００２】
ピアツーピア・ネットワークは同一のノードから成る完全に分散化されたネットワークであり、ノードのそれぞれは「クライアント」（従来のクライアント・サーバ・ネットワークの意味で）として働き、同時にサーバの責任を負うことができる。ピアツーピア（「Ｐ２Ｐ」と呼ばれる場合もある）・ネットワークの各要素が同一であるので、それらは容易に拡張可能である。例えば、ピアツーピア・ネットワークは、より多くのノード（例えば、電話、コンピュータ、携帯情報端末（「ＰＤＡ」））を単に追加することによって増大することができる。容易に拡張可能であることに加えて、ピアツーピア・ネットワークの責任を維持することがかなり簡単である。
【０００３】
典型的には、Ｐ２Ｐネットワーク内のノードまたはピアは互いに監視する。ノードまたはピアが故障する場合、残りのノードの１つまたは複数が故障したノードの責任を引き継ぐ。ピアツーピア・ネットワークのアーキテクチャの平易さは、ボイス・オーバ・インターネット・プロトコル（「ＶｏＩＰ」）などのある種のサービスと共に使用されるためにそれらを魅力あるものにする。ネットワークを構成する容易さおよびネットワークの保守費用に関係する問題が増大するとき、ピアツーピア・ネットワークは既存のキャリア・グリッド・ネットワークより勝る利点を提供することができる。
【０００４】
従来のピアツーピア・ネットワーク内では、各ノードまたはピア（２つの語は本明細書では交換可能に使用されることになる）は「キーと値」の対として知られる属性を格納する。例えば、キーはユーザの識別番号（「ユーザＩＤ」）を示すことができ、値はノードのアドレスを表すことができる。従来のピアツーピア・ネットワーク内で送信元ノードと送信先ノードの間の通信セッションを確立するために送信先ノードのアドレスは、送信元ノードによって送信されるキーだけを使用して送信先ノードの値（すなわち、アドレス）を含むノード内の所与のキーと値の対を捜し出すことによって決定されなければならない。より具体的には、送信されたキーを受信するネットワーク内の各ノードは、キーをそのルックアップ・テーブル内などに格納されたキーと値の対と比較する。少なくとも１つのノードが送信先ノードに関連したキーと値の対を含むと仮定すると、送信先の値（すなわち、アドレス）が送信元に戻される。その後、送信元は送信先ノードとの信号路を設定する。言い換えれば、一方のユーザが他方にＶｏＩＰ電話をかけることを望む場合、発呼者はピアツーピア・ネットワーク内の他のユーザ（すなわち、それらの装置）に所期の受信者のユーザＩＤを送信する。ルックアップ・テーブルおよび検索機能を使用して受信者のアドレスが、発呼者と受信者との間の信号路（結局は通信セッション）の確立を可能にするために見出され、発呼者に戻される。
【０００５】
初期のピアツーピア・ネットワークは、所望のキーと値の対が識別されるまで（すなわち、呼の受信者のアドレスが捜し出されるまで）その全体のネットワークまたは一部にセッションを確立するという要求を「フラッディング（氾濫）した」。しかし、フラッディングは大規模のピアツーピア・ネットワーク内でよく機能しない。この種の技術の欠点を克服するために多くの最近のピアツーピア・ネットワークは、キーと値の対を格納し取り出すために分散ハッシュ・テーブル（「ＤＨＴ」）を使用し始めている。
【０００６】
例えば、ＤＨＴを使用してピアツーピア・ネットワークはハッシュ・キーをネットワーク内の各ノードに割り当てる。ハッシュ・キーをネットワーク内のノードに割り当てることによって、呼の所期の受信者のアドレスなどを捜し出すのにかかる時間が低減される。
【０００７】
数学用語では、ＤＨＴを使用する技術はＯ（ｌｏｇ  Ｎ）ステップの上限（期間に対応する）を保証すると言われることができる。言い換えれば、ＤＨＴの使用は、ピアツーピア・ネットワーク内でユーザを識別する（すなわち、セッションを確立する）のにかかるステップの最大数がＯ（ｌｏｇ  Ｎ）であることを保証する。これは、受信者のアドレスを捜し出すのにかかる期間を推定するための方法（すなわち、場合によっては、受信者を捜し出すために不確定のステップ数または期間を要するであろうフラッディング技術より勝る明確な利点）を提供する。
【０００８】
ＤＨＴの使用はより初期の技術に勝る利点をもたらすが、ＤＨＴが現在使用されている方法は、音声アプリケーション／サービスでの使用にとって依然として不十分である。より具体的には、ＤＨＴを使用するこの技術は、ファイル共用および他のデータ転送のアプリケーション／サービスにとって受信者のアドレスを捜し出すために許容可能な期間を提供するが、それらは、音声／画像アプリケーションで使用されるときに許容不可能な期間をもたらす。大ざっぱに言えば、既存のＤＨＴ技術を使用して１００万個のノードから成るネットワーク内でキーと値の対を見出すのに平均１０ステップかかる。しかし、最悪のシナリオの場合では２０ステップほどかかりうる。音声または画像アプリケーションでは所期の受信者のアドレスを捜し出すために１０ステップまたは２０ステップを使用することは望ましくない（すなわち、長くかかり過ぎる）。さらに、従来のＰ２Ｐネットワークが大きくなるにつれて、ネットワーク内のノード数が増大するときにステップ数が増大する可能性も存在する。したがって、セッションを確立するために必要とされるステップ数を決定することが依然として可能であるが、この数は許容可能なサービス／アプリケーションを提供するには高過ぎる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、方法、装置およびアーキテクチャが音声、画像および同様のアプリケーション内で許容可能な期間内にシグナリング・セッションおよび通信セッションを確立するためにＰ２Ｐネットワーク内のノードによって使用されることができるＤＨＴを提供することが望ましい。
【課題を解決するための手段】
【００１０】
本発明者は、以前に可能と考えられたものよりはるかに高速にキャリア・ベースのインフラストラクチャ・ネットワーク内で音声および画像通信セッションを確立するためにＤＨＴを使用するピアツーピア・アーキテクチャを発見した。本発明の１つの実施形態によりプロビジョニング・サーバなどは、ホスト・ノードおよびアンカ・ノードとしてピアツーピア・ネットワーク内のノードを指定する。ある種のノードをホスト・ノードおよび／またはアンカ・ノードとして指定することによって、本発明によって提供されるアーキテクチャは、従来のピアツーピア・ネットワークと比較するときに通信セッションを確立するためにより少ないホップ（例えば、中間ノード）を必要とする。新しいキャッシャ支援のルックアップ機能と相まったより少ないホップを使用すると本発明によって提供されるアーキテクチャは、Ｏ（ｌｏｇ  Ｎ）ステップではなくＯ（１）ステップで信号路および関連の通信セッションを確立することができる。言い換えれば、より少ないホップおよび新しいルックアップ機能の使用により信号路および通信セッションが、以前に可能と考えられたものより高速にピアツーピア・ネットワーク内のノード間で確立されることができる。さらに、Ｐ２Ｐネットワークが増大するとき、本発明によって提供される新しい方法は、所与のセッションを確立するのにかかる時間が同一のままである（すなわち、セッションを確立するための「一定の」期間が維持される）ことを保証する。
【００１１】
本発明によって提供される技術は、多くの異なる種類のＰ２Ｐネットワーク構成で使用されることができることに留意されたい。この種の１つのＰ２Ｐネットワークは「コード」として知られている。
【００１２】
より詳細には、本発明の１つの実施形態によりプロビジョニング・サーバはピアツーピア・ネットワーク内の各ホスト・ノードおよびアンカ・ノードにハッシュ・キーを割り当てる。
【００１３】
さらに、音声／画像の信号路／セッションを確立するために必要とされる速度を実現するためにプロビジョニング・サーバは、各ユーザを少なくとも１つのホスト・ノードおよびアンカ・ノードに地理的に関連付ける。各ホスト・ノードは、１つまたは複数の地理的に関連付けられたユーザのキーと値の対（例えば、識別番号とアドレス）を格納するように動作可能であり、各アンカ・ノードはハッシュ・キーを割り当てられる。本発明により、信号経路が多数のホップ／ノードに渡る必要がなく、本発明によって提供される新しいアーキテクチャは、Ｐ２Ｐネットワークのコアを形成する指定されたホスト・ノードおよびアンカ・ノードのより小さいサブセットで構成される。これにより信号経路が迅速に確立されることができる。
【００１４】
ホスト・ノードはユーザに地理的に関連付けられるが、アンカ・ノードは異なる方法で関連付けられる。本発明により、所与のユーザに関連付けられるアンカ・ノードは、値（アドレスではなく量）がユーザのキーの値に等しい、またはユーザのキーの値より大きいハッシュ・キーを有するノードである。さらに各アンカ・ノードは、その関連のユーザに地理的に関連付けられている主のホスト・ノードおよび二次のホスト・ノードのキーと値の対（例えば、識別番号とアドレス）を格納するように動作可能である。本発明によって提供されるアーキテクチャは、ネットワークが、アンカ・ノードが動作不能になるときなどに満足に動作することを保証するために基礎となるＰ２Ｐ技術（例えば、コード）のアンカ・ノード関連の複製機構および信頼性機構を使用することができることにさらに留意されたい。例えば、ユーザの主のホスト・ノードおよび二次のホスト・ノードを示す／捜し出すアンカ・ノードのルックアップ・テーブルの項目は、Ｐ２Ｐ方法を使用してバックアップされる。
【００１５】
本発明の１つのさらなる実施形態ではアンカ・ノードの１つまたは複数は、複数の地理的に関連付けられたユーザのキーと値の対（例えば、識別番号とアドレス）を格納するように動作可能であるホスト・ノードであってもよい。
【００１６】
セッションを確立するために必要とされる期間をさらに短くするために本発明は、関連のユーザとのセッションをしばしば必要としている１つまたは複数の第三者のユーザに関連付けられた１つまたは複数のノードのキーと値の対（例えば、識別番号とアドレス）をその関連のユーザごとに格納するように動作可能であるホスト・ノードを含むアーキテクチャも提供する。例えば、ホスト・ノードは、それが、ユーザがもっともしばしば話をする友人に関連付けられるノード（例えば、ホスト・ノード）を格納することができるキャッシュまたはキャッシュ機能を含むことができる。ノードをキャッシャに格納することによってこれらの友人との信号路および関連のセッションは、下記でより詳細に説明されるようにアンカ・ノードを使用する必要がなくより迅速に確立されることができる。
【００１７】
本発明によって提供されるアーキテクチャをさらに信頼性のあるものにするためにプロビジョニング・サーバは、１つまたは複数のユーザを２つ以上のホスト・ノード（１つではなく）に関連付けることができる。この方法では、ユーザの主のホスト・ノードが故障などにより信号路／セッションを確立する／維持することができない場合、ユーザは二次のホスト・ノードに頼ることができる。上述のようにユーザの主のホスト・ノードおよび二次のホスト・ノードのアドレスは、ユーザの関連のアンカ・ノードのルックアップ・テーブル内に格納されることができる。所与のＰ２Ｐネットワーク上の負荷が、故障が生じるときに均等に分散されることを保証するために所与のユーザに関連付けられた二次のホスト・ノードは、ユーザによって異なってよい。つまり、所与の組のユーザは同一の主のホスト・ノードに関連付けられることができるが、それらは同一の二次のホスト・ノードに関連付けられることができない。したがって、もし主のホスト・ノードが故障するとき、その負荷（すなわち、ユーザ）は１つではなく多くの二次のホスト・ノードに分散されることができる。
【発明を実施するための最良の形態】
【００１８】
ここで図１を参照すると、１つまたは複数のユーザ２００、３００、０〜７のラベルを付けられた１つまたは複数のホスト・ノードおよび／またはアンカ・ノードならびにサーバ４００などのプロビジョニング装置を含むピアツーピア・ネットワーク１００が示されている。この議論中に「ユーザ」と呼ばれるがユーザ２００、３００は、実際の人に関連付けられる装置のいくつかの例を挙げると電話、携帯情報端末、コンピュータ、ゲーム機、マルチメディア装置などの装置であってよいことが理解されるべきである。本発明によりプロビジョニング・サーバ４００は、ピアツーピア・ネットワーク１００上でアドレスを割り当てられることに加えて各ユーザをハッシュ・キーに割り当てるように動作可能である。ユーザに割り当てられたそれらのハッシュ・キーをノードに割り当てられたハッシュ・キーと区別するために、前者をキーと呼び、後者をハッシュ・キーと呼ぶことになる。サーバ４００はまた、ハッシュ・キーをノード０〜７のそれぞれに割り当てる。この説明を簡単にするために、ノード０〜７のハッシュ・キーも０〜７である（すなわち、ノード０は０というハッシュ・キーを有する。ノード４は４というハッシュ・キーを有するなど）。
【００１９】
本発明により信号路および通信セッションを確立するためにプロビジョニング・サーバ４００は、ユーザに地理的にもっとも近いホスト・ノードに各ユーザを関連付けるようにさらに動作可能であってよい。図１ではユーザ２００の場合、これはノード７である。したがって、ノード７がユーザ２００に関連付けられるホスト・ノードであることになる。簡単に上述したように、ピアツーピア・ネットワーク１００が、ホスト・ノード７が故障する場合に信頼性のあることを保証するためにプロビジョニング・サーバ４００は、ユーザ２００を２つ以上のホスト・ノードに関連付けるように動作可能であってもよい。例えば、サーバ４００はユーザ２００をホスト・ノード０に関連付けることができる。したがって、ホスト・ノード７が故障する場合、ホスト・ノード０は、ユーザ２００が信号路／通信セッションを確立する助けをすることになる。同一のユーザに関連付けられた２つのホスト・ノードを区別するために第１のホスト・ノードは主のホスト・ノードと呼ばれることができ、バックアップ・ホスト・ノードは二次のホスト・ノードと呼ばれることができる。所与のＰ２Ｐネットワーク上の負荷が、故障が生じるときに均等に分散されることを保証するために、所与のユーザに関連付けられた二次のホスト・ノードはユーザによって異なってよい。つまり、所与の組のユーザが同一の主のホスト・ノードに関連付けられることができるが、それらは同一の二次のホスト・ノードに関連付けられることができない。したがって、もし主のホスト・ノードが故障するとき、その負荷（すなわち、ユーザ）は１つではなく多くの二次のホスト・ノードに分散されることができる。
【００２０】
ホスト・ノードをユーザに（またはその逆に）関連付けることに加えてサーバ４００は、１つまたは複数のアンカ・ノードを各ユーザに個別に関連付けることもできる。本発明により、所与のユーザへの所与のアンカ・ノードの関連付けは基礎となるＰ２Ｐ技術によって使用される技術に依存する。下記の例および議論では、コードＰ２Ｐ方法が使用される。本発明の１つの例示の方法により、サーバ４００は下記のようにアンカ・ノードをユーザに関連付けることができる。サーバ４００は、ネットワーク１００内のどのノードがもっとも小さいハッシュ・キーを有するかを決定し、そのハッシュ・キーの値（アドレスではなく量）はユーザのキーの値に等しい、またはユーザのキーの値より大きい。図１に示される例では、アリスのキーは４という値を有する。サーバ４００はネットワーク１００内のあらゆるノード上にこの情報を渡し、その結果、その後に各ノードは、４というハッシュ・キー値を有するネットワーク１００内のノードをユーザ２００に関するアンカ・ノードとして識別することができるようになる。この例では、それはノード４である。
【００２１】
同様に、２つのユーザ２００、３００だけが図１に示されているが、プロビジョニング・サーバ４００は複数のユーザを各ホスト・ノードに関連付けることができることが理解されるべきである。したがって、ホスト・ノード７は、ユーザ２００だけよりむしろ多くのユーザに関連付けられることができる。ユーザに関連付けられるとホスト・ノードは、ユーザのキーと値の対（例えば、ユーザＩＤとアドレス）を格納するように動作可能である。
【００２２】
同様に、アンカ・ノード４および概してネットワーク１００内の各アンカ・ノードは、１つまたは複数のユーザに地理的に関連付けられている複数のホスト・ノードの識別番号およびアドレスを格納するように動作可能であってよい。まもなく、図１に示されるネットワーク・アーキテクチャ１００などの本発明によって提供されるアーキテクチャがどのように、信号路および通信セッションを迅速に確立するために使用されることができるかを説明することになる。しかし今のところ、図１に示されるネットワーク・アーキテクチャ１００によって信号路が、いわゆる「一定の」期間になるＯ（１）ステップで確立されることができることが理解されるべきである。「一定の」期間によって、ネットワーク内のノード総数またはユーザ総数が変わる（例えば、増大する）ときに変わらない期間であることを意図されている。つまり、Ｐ２Ｐネットワーク内のノード数およびユーザ数の如何にかかわらず、所与の開始点から所与の送信先への信号路／通信セッションは同一のステップ数（ステップ数は一定のままである）を使用して確立されることができる。
【００２３】
図１に示されるネットワーク・アーキテクチャ１００によって確立される信号路およびセッションは、数例だけを挙げるとＶｏＩＰサービス、他の音声サービス、データ・サービス、および画像サービスを提供するために使用されることができる。
【００２４】
本発明のさらなる実施形態ではプロビジョニング・サーバ４００は、１つまたは複数のユーザの通信パターンおよび癖を検出し解析するように動作可能であってよい。サーバ４００は、それが最初にユーザに地理的に関連付けているホスト・ノードが変更されるべきかどうかを決定するためにこの情報を使用することができる。例えば、サーバ４００が、１つまたは複数のユーザが同一の地理的領域内でしばしば捜し出されることを検出する場合、サーバ４００はこの種のユーザを同一のホスト・ノードに関連付けることができる。この再関連付けは、信号路／セッションが確立される迅速性を向上することができる。
【００２５】
ユーザが２つ以上のホスト・ノードに関連付けられることができることを前述した（例えば、ユーザの主のホスト・ノードが故障する場合）。同じことがアンカ・ノードにとって真である。本発明により、使用されるバックアップ・アンカ・ノード技術が基礎となるＰ２Ｐ技術によって決定される。
【００２６】
図１に示されるＰ２Ｐネットワーク・アーキテクチャ１００内の様々な要素の議論を提供して、どのようにこれらの要素が、以前に可能と考えられたものより一定のより短い期間内に信号路／通信セッションを確立するように動作するかにここで注意を向ける。
【００２７】
ここで図２を参照すると、本発明の１つの実施形態による他のリング状のＰ２Ｐネットワーク・アーキテクチャ１０００が示されている。図２に示されるネットワーク・アーキテクチャ１０００は、１つまたは複数のユーザ２０００、３０００、００〜７０のラベルを付けられた１つまたは複数のホスト・ノードおよび／またはアンカ・ノードならびにプロビジョニング・サーバ４０００を含む。
【００２８】
本発明の１つの実施形態では、一定の期間内にセッションを確立するためにユーザ３０００との信号路／セッション（例えば、電話呼）を確立するというユーザ２０００からの要求は、まずユーザ２０００のホスト・ノード７０にルーティングされ、次いでユーザ２０００のアンカ・ノード３０に、受信者ユーザ３０００のホスト・ノード１０上に、次いで受信者ユーザ３０００上にルーティングされる。受信者によって、ユーザ２０００からの電話呼などを受信するユーザであることを意図されている。
【００２９】
指定されたホスト・ノードおよびアンカ・ノードを介して信号路／セッションを確立するという要求をルーティングすることによって、信号路／セッションを確立する必要があるノード数は、ネットワークが増大するときに一定のままである。これは、既存のピアツーピア・ネットワーク・アーキテクチャに勝る重要な利点である。本質的には本発明は、１組のホスト・ノードおよびアンカ・ノード、すなわちＰ２Ｐネットワーク内の１組のノード（ここで、各ノードはすべての他のノードを把握している）を含むインフラストラクチャを生成する。本発明によって提供されるＰ２Ｐネットワーク内のノード数が典型的には、従来のＰ２Ｐ内のものよりはるかに小さく、より安定しているので信号路／通信セッションは、以前に可能と考えられたものよりはるかに予測可能で、はるかに高速の方法で確立されることができる。ここで、本発明によりどのように信号路／セッションが確立されることができるかの代替の説明を提供する。
【００３０】
始めに、ユーザ２０００は、それがユーザ３０００と話をすることを望むが、どこにユーザ３０００が配置されているかを把握していないと仮定されることができる。ユーザ２０００（すなわち、ユーザ２０００によって使用中の装置）は、ユーザ３０００との信号路／セッションを確立するという要求を生成し、そのホスト・ノード７０に送信することができる。ユーザ３０００を識別するキー（例えば、ユーザＩＤ）がこの要求内にある。
【００３１】
ユーザ２０００から要求を受信すると主のホスト・ノード７０は、主のアンカ・ノード３０に要求を転送するように動作可能であってよく、アンカ・ノード３０は、ハッシュ・キー値がユーザのキーの値に等しい、またはユーザのキーの値より大きいユーザ２０００からの第１のノードであることが理解される。要求を受信するとアンカ・ノード３０は、ユーザ３０００に関連付けられている少なくとも１つの主のホスト・ノードを決定するように動作可能である。つまり、アンカ・ノード３０は、どのホスト・ノードが所期の受信者（すなわち、ユーザ３０００）に関連しているかを決定する要素である。
【００３２】
本発明により各アンカ・ノードは、ホスト・ノードの識別番号およびアドレスならびにこれらのホスト・ノードに関連付けられたユーザを格納する記憶部を備える。図２に示される例ではアンカ・ノード３０は、ユーザ３０００に関連付けられているホスト・ノードの識別番号およびアドレスを識別するためにその記憶部中を検索するまたはそうでない場合はその記憶部にアクセスするであろう。この場合、そのホスト・ノードは図２に示されるノード１０であろう。
【００３３】
ユーザ／受信者３０００に関連付けられたホスト・ノード１０を識別するとアンカ・ノード３０は、セッションを確立するという要求をホスト・ノード１０に転送するようにさらに動作可能である。ホスト・ノード１０はこの種の要求を受信するために利用できると仮定されることが理解されるべきである。
【００３４】
本発明によりアンカ・ノード３０は、ユーザ３０００に関する主のホスト・ノードおよび二次のホスト・ノードの両方を格納していてよい。これは、信号路／セッションが、ホスト・ノード１０が本来なら利用できない場合に確立されることができることを保証するためになされる。そうは言っても、主のホスト・ノードがユーザ３０００に関連付けられたとき、ノード１０はアンカ・ノード３０によって先に選択されることになる。
【００３５】
アンカ・ノード３０は、その後にユーザ／受信者３０００との信号路／セッションを開始し始めるホスト・ノード１０に信号路／セッションを形成するという要求を転送するように動作可能である。要求が二次のホスト・ノードに転送される場合、本発明は、一定の期間内に信号路／セッションを確立するためにも提供することが理解されるべきである。つまり、二次のホスト・ノードの使用は、信号路／セッションを確立するのにかかる時間に著しく影響を与えない。
【００３６】
図１および図２に示されるアーキテクチャは、従来の技術より著しく短い期間内に信号路／セッションを確立することに効果的であるが、本発明者は、期間がユーザの通信および位置の癖およびパターンを調査することによってさらに短くされることができることを理解した。本発明の１つのさらなる実施形態では、図２のプロビジョニング・サーバ４０００などは、ネットワーク１０００内のユーザの癖およびパターンを監視し解析することができる。例えば、サーバ４０００は、ユーザ２０００とのセッションをしばしば必要とするそれらのユーザをもっともしばしば識別することができる。その後、プロビジョニング・サーバ４０００は、識別されたユーザに関連付けられたホストを識別することができる。ユーザおよびそれらの関連のホストが識別されるとプロビジョニング・サーバ４０００は、ホスト・ノード７０にこの情報を提供するためにユーザ２０００のホスト・ノードと通信することができる。この情報を受信するとホスト・ノード７０は、記憶部またはメモリ部内のこの情報をキャッシュに格納することができる。その後、ユーザ２０００が、それがもっともしばしば通信するユーザ（すなわち、識別されたユーザ）のうちのいずれかとの信号路／セッションを確立するという要求を送信するとき、ホスト・ノード７０は、そのキャッシュを調べ、これらのユーザのうちの１つに関連付けられたホスト・ノードを識別することができる。この種の「仲間」のホスト・ノードを識別することによってホスト・ノード７０は、アンカ・ノード３０を迂回し、仲間のホスト・ノード上に直接要求を送信することができる。アンカ・ノードを迂回することによって、信号路／セッションを確立するのにかかる時間はさらに短くされることができる。
【００３７】
場合によっては、ユーザのキー値がネットワーク内のノードのうちのいずれかのハッシュ・キー値のすべてより大きいことが生じうる。これが生じる場合、本発明は、アンカ・ノードをユーザに関連付ける下記の例示の方法のために提供されることができる（すなわち、コード方法にも基づいている方法）。
【００３８】
本発明のコード関連の例によりプロビジョニング・サーバ４０００などは、ユーザのキーの値がネットワーク内のノードのハッシュ・キーのそれぞれの値より大きいときにもっとも小さいキー値を有するアンカ・ノードにユーザを関連付けることができる。当業者によって理解されるように、この関連付け技術がいくぶん変更されることができる「ラップアラウンド（包み込み）」として知られるシナリオが生じることに留意されたい。コード方法により、ラップアラウンド・シナリオが現れるとき、ハッシュ・キーが所与のネットワーク内の任意のノードの最大のキーより大きいユーザのすべてが、ネットワーク内のもっとも小さいキーを有するノードに固定される。
【００３９】
上記の議論では図１および図２に示されるアーキテクチャ１００、１０００は、単一のサービス・プロバイダによって運営される単一のネットワークの一部であったと仮定された。しかし、本発明は同一のサービス・プロバイダによって運営されるネットワークだけに限定されない。本発明のさらなる実施形態により本発明の特徴および機能は、２つ以上のサービス・プロバイダによって運営されるネットワークを含むアーキテクチャにまで拡張されることができる。
【００４０】
本発明の１つのさらなる実施形態では、様々なサービス・プロバイダによって運営されるネットワークのそれぞれの１つまたは複数のノードが、２つの異なるネットワーク内のノード間で信号路／セッションを確立するためにプロキシ・ノードとして働くことができる。この実施形態では、様々なサービス・プロバイダの内部ネットワークのトポロジは開示されていない。他の実施形態では、ネットワークのそれぞれの１つまたは複数のノードが、様々なネットワーク内のユーザのホスト・ノードのアドレスを格納するまたはキャッシュに格納することができる。これは信号路／セッションのより高速の確立をもたらすことができるが、それは所与のサービス・プロバイダのネットワークの内部トポロジの開示が必要でありうる。
【００４１】
簡単に上述したようにプロビジョニング・サーバなどは、ホスト・ノードおよびアンカ・ノードをユーザに関連付ける（逆もまた同様に）ために使用されることができる。さらに、この種のサーバは、ハッシュ値をユーザおよびノードに割り当てるために使用されることもできる。概して、本発明によって提供されるアーキテクチャ内で使用されるサーバまたは装置は、本発明の特徴および機能を実現するために実行されることができる１つまたは複数のソフトウェアまたはファームウェアを格納するための１つまたは複数のコンピュータ可読メディア（例えば、メモリ、プロセッサ、ハード・ドライブ、ＣＤ／ＤＶＤ記憶装置またはこれらの装置のある組合せ）を含むことができる。
【００４２】
上記の議論は本発明のいくつかの例を記載している。本発明によって提供される特徴の一部は、（ａ）低減されたルックアップ／セッションの確立期間を有するキャッシュ・ベースのＰ２Ｐネットワーク、（ｂ）確立期間を低減し、ノードへのユーザの地理的関連付けを強化するための個別のホスト・ノードおよびアンカ・ノード、および（ｃ）ノード故障時の負荷の均等分散である。
【００４３】
しかし、本発明の真の範囲は、語「セッション」が信号路、通信セッションまたは両方を示すために使用される特許請求の範囲内に記載される。
【図面の簡単な説明】
【００４４】
【図１】本発明の１つの実施形態によるピアツーピア・ネットワークの簡略化された例を示す図である。
【図２】本発明の他の実施形態によるピアツーピア・ネットワークの簡略化された概略図である。
【図１】
2009540679.tif 000003
【図２】
2009540679.tif 000004
【国際調査報告】
2009540679.tif 000005
2009540679.tif 000006
2009540679.tif 000007