JP2005004777A - ピアツーピア名前解決ワイヤプロトコルで使用するデータ構造を格納したコンピュータ可読媒体 - Google Patents

ピアツーピア名前解決ワイヤプロトコルで使用するデータ構造を格納したコンピュータ可読媒体 Download PDF

Info

Publication number
JP2005004777A
JP2005004777A JP2004176212A JP2004176212A JP2005004777A JP 2005004777 A JP2005004777 A JP 2005004777A JP 2004176212 A JP2004176212 A JP 2004176212A JP 2004176212 A JP2004176212 A JP 2004176212A JP 2005004777 A JP2005004777 A JP 2005004777A
Authority
JP
Japan
Prior art keywords
message
field
message element
readable medium
pnrp
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
JP2004176212A
Other languages
English (en)
Other versions
JP4786882B2 (ja
JP2005004777A5 (ja
Inventor
John L Miller
エル.ミラー ジョン
Henry Rawas
ラワス ヘンリー
Radu Simionescu
シミオネスキュ ラドゥ
Brian Lieuallen
リューアレン ブライアン
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005004777A publication Critical patent/JP2005004777A/ja
Publication of JP2005004777A5 publication Critical patent/JP2005004777A5/ja
Application granted granted Critical
Publication of JP4786882B2 publication Critical patent/JP4786882B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/24Time-division multiplex systems in which the allocation is indicated by an address the different channels being transmitted sequentially
    • H04J3/242Time-division multiplex systems in which the allocation is indicated by an address the different channels being transmitted sequentially the frames being of variable length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • 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
    • 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/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Abstract

【課題】 ピアツーピア名前解決プロトコルにおけるメッセージの拡張可能データ構造を提示する。
【解決手段】 このメッセージデータ構造では、多数のフィールドを使用し、それぞれメッセージ要素を含む。第1のフィールドは、プロトコル情報を含み、メッセージのタイプを識別するメッセージヘッダであるのが好ましい。各メッセージ要素は、多数のフィールドを含む。これらのメッセージ要素フィールドは、タイプフィールド、長さフィールド、およびメッセージ要素の内容またはペイロードを含む。一実施形態では、ピアツーピア名前解決プロトコル(PNRP)を正常に動作させるため、RESOLVE、RESPONSE、SOLICIT、ADVERTISE、REQUEST、FLOOD、INQUIRE、AUTHORITY、ACK、およびREPAIRメッセージなど少なくとも10個のメッセージが形成される。
【選択図】 図6


Description

本発明は、一般に、ピアツーピア基盤(peer−to−peer infrastructure)における通信プロトコルに関するものであり、より具体的には、ピアツーピアグラフ(peer−to−peer graph)において構造化された通信(structured communication)を可能にするメッセージ形式データ構造(message format data structures)に関するものである。
インターネット上のさまざまな通信技術を使用することで、共通の関心を持つユーザ同士が、共同で作業をしたり、ファイルを共有したり、互いにチャットしたり、オーディオおよびビデオのマルチキャストをプレゼンテーションおよびグループ会合に利用したり、多人数参加型ゲームに参加したりすることが可能になる。しかし、現在は、インターネット上のほとんどの通信は、サーバ中心の環境で行われており、したがって、すべての通信は、個人がそのような通信への加入および参加のため接続できる大規模な中央サーバへ流れるか、またはそのようなサーバを通して流れる。
ピアツーピア技術が再び登場したことで、現在のインターネット通信のサーバ中心モデルはたちまち取って代わられようとしている。実際、ピアツーピア技術を利用すれば、ユーザは、サーバベースのインターネット通信の制約を受けることなく、サーバレス環境で互いにコンタクトを取りあうことができる。ピアツーピアベースのシステムでは、ネットワーク内のピア同士の間で直接通信が行われるため、ユーザの匿名性とプライバシーを保持することができる。しかし、ピアツーピアネットワーク内では、個々の通信およびファイル共有は比較的適切に機能するが、ピアツーピア環境での情報の確立、発見、結合、維持、および共有はうまく機能しない。
ピアツーピア通信、および実際には、あらゆる種類の通信が、選択されたエンティティまたはノード同士の間で有効な接続を確立できるかどうかに依存しているのである。これらのエンティティまたはノードは、ピアツーピアネットワーク内に形成されているピア同士(例えば、ユーザまたはマシン)またはグループである。ノード間の接続はピアツーピアグラフを形成し、これにより通信および情報をノードに渡したり、ノード同士の間でやり取りすることができる。しかし、例えば、エンティティがネットワーク内を移動する、トポロジが変更される、アドレスリースを更新できない、グループ機能または目的が変更されたなどの理由により、変更可能な1つまたは複数のアドレスがエンティティに設定される場合がある。したがって、このようなアドレス指定問題に対する古典的なアーキテクチャ面での解決策では、それぞれのエンティティに安定した名前を付け、接続が必要になったときにこの名前を現在のアドレスに「解決」する。翻訳を処理するためのこのような名前は非常に強固なものでなければならず、また更新を簡単にかつ迅速に行えるようなものでなければならない。
こうした接続しようとする試みにより、エンティティのアドレスが見つかる可能性を高めるために、エンティティは、多くのピアツーピアプロトコルを使用して、さまざまなメカニズムを通じて個別またはグループのアドレスを公開することができる。またいくつかのプロトコルでは、クライアントはネットワーク内の他のクライアントからの要求の処理を通じて他のエンティティのアドレスに関する情報を取得することができる。実際、このようなアドレス情報の取得は、堅牢なグラフを保持することによりこれらのピアツーピアネットワークが正常に動作することを可能にする。つまり、ネットワーク内の他のピアおよびグループに関する情報が適切であればあるほど(つまり、グラフが堅牢であるほど)、特定の資源または記録の探索が収束する可能性が高まる。
サーバ中心環境の場合のように、ピアツーピアグラフを完全オープンにすることで、インターネットによるグラフ内のファイル探索および共有を可能にできる。しかし、ピアツーピアネットワークは分散ユーザまたはピアのグラフとして形成されるため、ネットワーク内のすべてのピアが共有されている情報を認識するようになる前に、一方のピアから別方のピアへ通信およびデータ(記録)を受け渡す必要がある。このような経路選択方式をとるシステムとして、UsenetとOSPFがある。しかし、内在する制限を持つこのような現在のシステムは、これまでピアツーピア技術の全面的な発展を妨げている制約を抱えている。さらに、現在、ピアツーピアネットワークは適切なグラフ管理機能を欠いており、メンバの1つがグループを抜けたときにグラフがたまに「分断」または分割される可能性がある。このような場合、グラフの一方の側からの情報は、ピアの一方の離脱により分割が生じたときにその分割の他方の側にあるピアメンバにもはや渡すことはできなくなる。他の欠点として、このような分割を検出するための適切なメカニズムが存在しないという点が挙げられる。
技術に存在する機能に関する問題に加えて、ネットワークトラフィックの量もまた、クラウド(cloud)に参加しているピアを容易に圧倒してしまうほどである。メッセージのサイズおよび構造により、ピアがメッセージを迅速に処理する機能を込み入ったものとし、したがって、クラウドの規模が大きくなるにつれ通信の遅延や通信内容の脱落が生じる。
したがって、技術の中に存在する上記の問題および他の問題に対処するピアツーピアのメッセージングプロトコルおよびデータ構造が本技術では必要である。
本出願で開示されている本発明の概念は、ピアツーピアの名前解決プロトコルで使用するのに適しているメッセージの拡張可能なデータ構造を伴う。このメッセージデータ構造では、メッセージデータフィールドを使用して、PNRPに役立つさまざまなメッセージを構築する。メッセージデータフィールドはそれぞれ、メッセージ要素を含む。第1のフィールドは、プロトコル情報を含み、メッセージのタイプを識別するメッセージヘッダ要素であるのが好ましい。
メッセージ自体の場合と同様、それぞれのメッセージ要素には多数のメッセージ要素のデータフィールドが含まれる。これらのメッセージ要素フィールドは、タイプフィールド、長さフィールド、およびメッセージ要素の内容またはペイロードを含む。タイプフィールドは、メッセージ要素のタイプを指定する識別子を含む。長さフィールドは、フィールドタイプおよび長さフィールドを含む、メッセージ要素の長さを識別する。
一実施形態では、Peer To Peer Name Resolution Protocol(PNRP)を正常に動作させるため、少なくとも10個のメッセージが形成される。これらの10個のメッセージは、RESOLVEメッセージ、RESPONSEメッセージ、SOLICITメッセージ、ADVERTISEメッセージ、REQUESTメッセージ、FLOODメッセージ、INQUIREメッセージ、AUTHORITYメッセージ、ACKメッセージ、REPAIRメッセージを含む。これらのメッセージは、好ましい実施形態に存在する22個の異なるメッセージ要素から構築される。
本明細書に組み込まれ、その一部となっている付属の図面は、本発明のいくつかの態様を示しており、説明とあわせて、本発明の原理の説明に使用される。
本発明は、いくつかの好ましい実施形態に関して説明するが、それらの実施形態に限る意図はない。それどころか、特許請求の範囲で定義されている本発明の精神と範囲内に収まるすべての代替、変形、および等価物を対象とすることを目的とする。
図面では類似の参照番号は類似の要素を指しており、本発明は適当なコンピューティング環境で実装されているものとして説明されている。必須ではないが、パーソナルコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的状況において本発明を説明する。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者であれば、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成でも実施できることを理解するであろう。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートの両方のメモリ記憶デバイスに置くことができる。
図1は、本発明を実装するのに適しているコンピューティングシステム環境100の一実施例の図である。コンピューティングシステム環境100は、適当なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。オペレーティング環境例100に示されているいずれか1つのコンポーネントまたはその組み合わせに関係する依存関係または要求条件がコンピューティング環境100にあるものと解釈すべきでない。
本発明は、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。本発明とともに使用するのに適していると思われるよく知られているコンピューティングシステム、環境、および/または構成の例として、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド型またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのいずれかを含む分散コンピューティング環境などがあるが、それらに限定されるものではない。
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体内に配置できる。
図1では、本発明を実装するシステム例は、コンピュータ110の形態をとる汎用コンピューティングデバイスを備える。コンピュータ110が備えるコンポーネントとしては、処理ユニット120、システムメモリ130、およびシステムメモリを備えるさまざまなシステムコンポーネントを処理ユニット120に結合するシステムバス121などがあるが、それらに限定されるものではない。システムバス121は、メモリバスまたはメモリコントローラ、周辺機器バス、および各種バスアーキテクチャを使用するローカルバスを含む数種類のバス構造のどれでもよい。例えば、このようなアーキテクチャとしては、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Associate(VESA)ローカルバス、およびMezzanineバスとも呼ばれるPeripheral Component Interconnect(PCI)バスがあるが、それらに限定されるものではない。
コンピュータ110は通常、さまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスできる媒体であればどのような媒体でもよく、揮発性および不揮発性媒体、取り外し可能および固定媒体を含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、それらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および固定媒体を含む。コンピュータ記憶媒体としては、RAM、ROM、EEPROM、フラッシュメモリもしくはその他のメモリ技術、CD−ROM、デジタル多目的ディスク(DVD)もしくはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶デバイス、または目的の情報を格納するために使用することができコンピュータ110によりアクセスできるその他の媒体があるが、それらに限定されるものではない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波またはその他のトランスポートメカニズムなどの被変調データ信号によるその他のデータを実現し、さらに情報配信媒体を含む。「被変調データ信号」という用語は、信号内の情報を符号化する方法によりその特性のうち1つまたは複数が設定または変更された信号を意味する。例えば、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、および音響、RF、赤外線、およびその他の無線媒体などの無線媒体があるが、それらに限定されるものではない。上記のいずれの組み合わせもコンピュータ可読媒体の範囲に含まれるべきである。
システムメモリ130は、読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム133(BIOS)は通常、ROM 131内に格納される。通常、RAM 132には、処理ユニット120に直接アクセス可能な、かつ/または処理ユニット120により現在操作されているデータおよび/またはプログラムモジュールが含まれている。例えば、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示している。
コンピュータ110は、その他の取り外し可能/固定の揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例えば、図1は、固定の不揮発性磁気媒体の読み出しまたは書き込みを行うハードディスクドライブ141、取り外し可能な不揮発性磁気ディスク152の読み出しまたは書き込みを行う磁気ディスクドライブ151、およびCD ROMまたはその他の光媒体などの取り外し可能な不揮発性光ディスク156の読み出しまたは書き込みを行う光ディスクドライブ155を示している。オペレーティング環境例で使用できる他の取り外し可能/固定の揮発性/不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、それらに限定されるものではない。ハードディスクドライブ141は、通常、インターフェース140などの固定のメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などの取り外し可能なメモリインターフェースによりシステムバス121に接続される。
図1に示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ110用のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、図1では、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じである場合もあれば異なる場合もあることに注意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147に対しては、ここで、異なる番号を割り当てて、最低でも、それが異なるコピーであることを示している。ユーザは、キーボード162、および通常マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力できる。他の入力デバイス(図に示されていない)としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造により接続することもできる。モニタ191またはその他の種類の表示デバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタのほかに、コンピュータはさらにスピーカ197およびプリンタ196などの他の周辺出力デバイスも備えることができ、これらは出力周辺インターフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することも可能である。リモートコンピュータ180は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードでもよく、通常は、パーソナルコンピュータ110に関係する上述の要素の多くまたはすべてを含むが、メモリ記憶デバイス181だけを図1に示してある。図1に示されている論理接続は、ローカルエリアネットワーク(LAN)171とワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
LANネットワーキング環境で使用する場合は、パーソナルコンピュータ110はネットワークインターフェースまたはアダプタ170を介してLAN 171に接続される。WANネットワーキング環境で使用する場合、コンピュータ110は通常、モデム172またはインターネットなどのWAN 173上で通信を確立するための他の手段を備える。モデム172は、内蔵でも外付けでもよいが、ユーザ入力インターフェース160またはその他の適切なメカニズムを介してシステムバス121に接続できる。ネットワーク環境では、パーソナルコンピュータ110またはその一部に関して述べたプログラムモジュールは、リモートメモリ記憶デバイスに格納できる。例えば、図1には、リモートアプリケーションプログラム185がメモリデバイス181に置かれているように示されているが、それらに限定されるものではない。図に示されているネットワーク接続は例であり、コンピュータ間に通信リンクを確立するための他の手段を使用できることは理解されるであろう。
以下の説明では、特に断りのない限り、1つまたは複数のコンピュータにより実行される活動および動作の記号的表現を参照しながら本発明を説明する。したがって、そのような活動および動作は、ときにはコンピュータ実行(computer−executed)と呼ばれることもあるが、構造化された形式でデータを表現する電気的信号の、コンピュータの処理装置による操作を含むことは理解されるであろう。この操作により、データを変換するか、またはコンピュータのメモリシステム内の複数の場所に保持し、当業者であればよく理解している方法でコンピュータの動作を再構成するか、さもなければ他の何らかの形で変更する。データが保持されているデータ構造は、データの形式により定められた特定の特性を備えるメモリの物理的な場所である。しかし、本発明は前記の背景状況において説明されているが、制限する意図はなく、当業者にとっては以下で説明する各種の活動および動作がハードウェアで実装できることは周知のことであろう。
上で紹介したように、ピアツーピア(P2P)プロトコルが成功するかどうかは、そのプロトコルで選択されたエンティティ間に有効な接続を確立する機能にかかっている。同様に、このようなP2Pネットワーク内でのグループの形成は、この機能にかかっている。特定のユーザはアドレスの異なるさまざまな場所でさまざまな方法によりネットワークに接続できるため、一意的なアイデンティティをユーザまたはグループに割り当て、プロトコルを通じてそのアイデンティティを特定の1つまたは複数のアドレスに解決するアプローチが好ましい。本発明のアイデンティティ管理システムおよび方法が特に適用可能なこのようなPeer−To−Peer Name Resolution Protocol(PNRP)は、2001年8月29日に出願された「Peer-To-Peer Name Resolution Protocol (PNRP) And Multilevel Cache For Use Therewith」という表題の同時係属出願第09/942,164号、2002年4月15日に出願された「Multi-Level Cache Architecture and Cache Management Method for Peer-To-Peer Name Resolution Protocol」という表題の同時係属出願第10/122,863号、2001年9月19日に出願された「Peer-To-Peer Group Management and Method For Maintaining Peer-To-Peer Graphs」という表題の同時係属出願第09/955,923号で説明されている。
同様に、2001年9月19日に出願された「Peer-To-Peer Name Resolution Protocol (PNRP) Security Infrastructure And Method」という表題の同時係属出願第09/956,260号でも、過剰なトラフィックでネットワークによけいな負担をかけずにネットワーク内のさまざまなエンティティのアイデンティティが有効であることを保証する基本的なセキュリティ基盤について説明している。P2Pグループ環境(P2P grouping environment)では、2001年9月19日に出願された「Peer-To-Peer Name Resolution Protocol (PNRP) Group Security Infrastructure and Method」という表題の同時係属出願第09/955,924号にこのようなグループに使用される基本的なセキュリティ基盤の説明がある。これらの出願の教示および開示も参照によりその全体が本明細書に組み込まれる。しかし、本発明のインターフェースおよび方法は特に、そのようなPNRPに適用することができ、そのようなPNRPと情報のやり取りを行うが、当業者であれば、本発明はそれらの制限を受けることはなく、P2Pグラフ管理機能を備えることを要求するP2Pシステムまたはプロトコルに適用することができることを認識するであろう。
PNRPを説明する上記の同時係属出願で説明されているように、何らかの有用な背景を提供するために、ピア名前解決プロトコル(PNRP)はピアベースの名前−アドレス解決プロトコルである。ピアの資源にはピア名を付けることができる。アプリケーション側で、ピア名をPNRPに登録し他のピアに発見できるようにすることが可能である。他のアプリケーションは、PNRPを使用して、ピア名を解決し、登録側アプリケーションの対応するIPアドレスおよびポートを取得することができる。PNRPは、ピア名を探索または参照するためのメカニズムを備えていない。ピア名を配布するメカニズムを実装するには、他の手段を利用しなければならない。ピア名をアドレスに解決するには、参加ピアに協力してもらい、お互いが相手にメッセージを転送し、マッピングを処理するためのピア名の分散キャッシュを保持するようにする。登録および解決メカニズムは、初期化の場合を除き、サーバが存在するかどうかに依存しない。PNRPインスタンスは、最初に現れたときに、データの交換相手である他の何らかのPNRPインスタンスのアドレスを見つける必要がある。他の手段が利用できない場合、よく知られているサーバを使用して、他のPNRPインスタンスのリストを取得する。
つまり、PNRPを使用することで、ピアアプリケーションはピア名をエンドポイントマッピングに登録し、ピア名を解決してエンドポイントを取得することができる。このときに、何らかの定義があると適切である。ピア名は、ピア資源を識別する文字列である。ピア名を登録できるためには、アプリケーションは公開鍵/秘密鍵の組にアクセスできなければならない。この鍵の組を使用して、メッセージのいくつかに署名を入れ、改ざんを防止する。ピア名は、さらに、公開鍵から導出することができ、それにより、アイデンティティ所有権(identity ownership)を検証できる。エンドポイントは、1つのIPv6/IPv4アドレス、ポート、およびプロトコルである。実際、エンドポイントのリストに単一のピア名を登録することができ、ピア名が解決されたときにそのリストが返される。ノードは、PNRPプロトコルサービスの一インスタンスである。通常は、コンピュータ1台ごとに1つのノードがある。クラウドは、互いに到達可能なノードのネットワークである。単一のノードを複数のクラウドに接続することができる。クラウドは、IPv6−グローバル、サイトローカル、およびリンクローカルで定義されているスコープに相当するスコープ特性を持つ。ノードは、複数のサイトローカルクラウドおよび複数のリンクローカルクラウドを持つことができる。ノード間の通信は、決して、一方のクラウドから別のクラウドへ横断しない。クラウド名を使用して、クラウドを区別する。複数のノードに1つのピア名を登録できる。PNRPは、各登録を明確に区別する。各ピア名インスタンスに関連付けられているエンドポイントリストは異なる。1つのノード内で、そのノードが接続されている複数のクラウド上でピア名を登録することも可能である。これらの登録はそれぞれ区別される。通常、エンドポイントリストも、これらのインスタンスのそれぞれにおいて異なる。ノードは、ピア名を解決しようとするときに、選択されたクラウド上でこれを実行する。解決が成功するのは、ピア名が同じクラウド内で登録されている場合のみに限る。複数のクラウド上で同時にピア名を解決することが可能であるが、これらは独立の解決要求として処理される。
PNRPサービスは、図2に例示されているように、連携する複数のモジュールからなる。サービス管理コンポーネント200は、PNRPサービスの開始および停止などの単純な日常的作業を処理する。RPCサーバおよびスタブ202は、クライアントプロセスとPNRPサービスとの間のインターフェースを提供する。これにより、公開されているインターフェース、要求に対するエントリポイントの提供、ならびにイベントおよび要求完了の通知を管理する。また、クライアントプロセスの終了からの復旧も処理する。クラウドマネージャ204は、特定のクライアント要求の状態を保持し、利用可能なPNRPクラウドのリストを保持する。これは、クラウドを作成し、クラウド状態の変更をクライアントに通知する役割を持つ。
キャッシュマネージャ206は、ローカルPNRPキャッシュおよびクラウド毎にローカルで登録されているPNRP名のリストを保持する。これは、分散PNRPキャッシュの一部である。他のコンピュータから届く解決要求に対するルックアップおよび次のホップ選択(lookup and next hop selection)を行う。これは、キャッシュの構造がよく保たれるように定期的に解決要求を開始することにより自キャッシュ上で保守作業を実行する。また、クラウドの分割を検出し、修復を試みる。複数の登録されたピアIDを保有することができ、またそれぞれをサポートするためキャッシュを構造化する。プロトコルマネージャ208は、有効なPNRPメッセージの作成および送信、ならびに受信したPNRPメッセージの処理を受け持つ。PNRPプロトコルを実装するためキャッシュマネージャ206と連携する。最後に、メッセージトランスポート210が、メッセージの実際の送信および受信を処理する。これは、複数のネットワークインターフェースおよびアドレスを処理し、ローカルアドレスの集まりの変更を検出する。複数のプロトコルが必要な場合(IPv4およびIPv6)、このコンポーネントは両方のプロトコルを処理する。
各PNRPノードは、クラウド内の他のいくつかのノードに対するエンドポイントマッピングへのピア名のキャッシュを保持する。ノード間で本発明により構築されたメッセージがやり取りされ、クラウド内のノードにピア名に関する情報が配布される。そのキャッシュを適切に保持することは、各ノードの役目である。上述の出願により説明されているように、PNRPプロトコルにより数値名前空間が定義される。各ピア名を数値に変換し、それらの数値を比較して、名前空間内での近さを判定することができる。ピア名を解決する要求がノードに届くと、目的のノードに数値的に近いノードを見つけるためにその数値とキャッシュ内の数値との比較が行われる。このようにして、解決要求がノードからノードへ渡され、各ホップでそのターゲットに次第に近づく。
ピア名は、上記の出願で説明されているハッシュ関数を使用してP2P IDと呼ばれる128ビット数に変換される。同じピア名からは常に、同じP2P IDが得られる。ピア名登録の特定のインスタンスもまた、サービスロケーション(service location)と呼ばれる128ビット数が設定される。これら2つを合わせて、PNRP IDと呼ばれる256ビット数が作られる。PNRP IDのサービスロケーション部分により、ピア名登録の特定のインスタンスがネットワーク内で一意的なものとなる。
アプリケーション側で、ピア名をPNRPに登録することができる。PNRP IDは名前から作成され、他のノードに登録を知らせるメッセージが送信される。複数のノード上で同じピア名を登録できる。P2P IDは、各ノード上で同じであるが、PNRP IDは各ノードに対して一意的でなければならない。アプリケーションは、ピア名をアドレスに解決することを要求できる。P2P IDをピア名から導出し、メッセージを他のノードに送信し、このP2P IDが登録されているノードを特定する。P2P IDがアドレスに解決されると、認証されたピアアドレス(CPA)が返される。このCPAは、ターゲットのPNRP ID、現在のIPアドレス、公開鍵、および多数の他のフィールドのサービスロケーション部分を含む。CPAに署名を入れて改ざんを防止する。
所与のP2P IDを多数の異なるノードにより登録することができる。PNRPでは、「service location」サフィックスを使用して、それぞれの登録されているインスタンスが一意的なPNRP IDを持つようにしている。「service location」は、一意的なネットワークサービスエンドポイントに対応する128ビットの数値である。この値は、IPv6アドレス、ポート、プロトコル、および公開鍵の一部を組み合わせて作成される。サービスロケーションは、PNRPクライアント側で、隠ぺいされている(opaque)と考えなければならない。サービスロケーションには2つの重要な特性がある。サービスロケーションにより、いつでも、ピア名の一意的なインスタンスが識別される。2つのサービスロケーションを比較した場合に、それぞれに対する共通のプレフィックスの長さはネットワーク近接度(network proximity)の妥当な尺度である。同じ4ビットで始まる2つのサービスロケーションは、通常、同じ3ビットで始まる2つのサービスロケーションからそれほど隔たっていない。これらの利点は、グローバルスコープのネイティブユニキャストIPv6アドレスにしかあてはまらない。
PNRP IDの作成および登録は、PNRPサービスの一部にすぎない。PNRPサービスの実行は、4段階に分けることができる。第1は、PNRPクラウド発見である。新しいノードは、加入したい加入先クラウド内に既存のノードを見つけなければならない。クラウドには、グローバルPNRPクラウド、サイトローカル(エンタープライズ)クラウド(site local (enterprise) cloud)、またはリンクローカルクラウドがある。第2段階は、PNRPクラウドの加入である。新しいノードは、既存のノードを見つけた後、SYNCHRONIZEプロシージャを実行して、既存のノードの最上位キャッシュレベルの一部を取得する。単一のキャッシュレベルの部分集合には、クラウドへの参加を開始する新しいノードに対する情報が十分にある。第3段階では、クラウドへの能動的参加を考える。初期化が完了した後、ノードはPNRP ID登録および解決に参加することができる。この段階では、ピアはさらに、定期的キャッシュ保守も実行する。最終段階は、ピアがクラウドを抜けることに関係する。ノードは、ローカルで登録されているPNRP IDの登録を解除してから終了する。
本発明のPNRPプロトコルは、PNRPのさまざまな機能を実現するため、10種類の異なるメッセージを含む。メッセージには、高いレベルで、CPAへのターゲットPNRP IDの解決を要求するために使用されるRESOLVEメッセージが含まれる。RESPONSEメッセージは、完了したRESOLVE要求の結果として使用される。FLOODメッセージには、受信側(レシーバ)のPNRPキャッシュ向けのCPAが含まれる。SOLICITメッセージは、最上位レベルのキャッシュに対しADVERTISEを実行するようPNRPノードに依頼する場合に使用する。ADVERTISEメッセージは、ノードの最上位レベルのキャッシュ内のCPAに対するPNRP IDのリストを含む。REQUESTメッセージは、ADVERTISEされたCPAの部分集合をフラッディングする(flood a subset of ADVERTISE’d CPAs)ようにノードに要求するために使用される。INQUIREメッセージは、特定のPNRP IDがそのノードに登録されているかどうかをノードに問い合わせる場合に使用される。AUTHORITYメッセージは、PNRP IDのローカル登録を確認し、任意選択によりそのIDに対するCPAの妥当性を確認するのを補助する認証連鎖(certificate chain)を供給する場合に使用される。ACKメッセージは、いくつかのメッセージを受信したこと、および/または正常に処理したことについて肯定応答する場合に使用される。最後に、REPAIRメッセージは、分割されている可能性のあるクラウドのマージを試みる場合に使用される。
ノードは、本発明のメッセージが使用されるPNRP内の6つの基本的なタイプのトランザクションを開始することができる。これらのトランザクションには、クラウド発見、同期、解決、フラッディング(flooding)、アイデンティティ妥当性確認、および修復(repairing)がある。これらのトランザクションはメッセージおよび本発明のメッセージ構造に関係するので、上記の出願で詳細が説明されているこれらのトランザクションの基本を理解するために、これらの簡単な説明を行う。
クラウド発見トランザクションにより、ピアはピアクラウドを発見することができる。好ましい実施形態では、各ノードはいくつかのクラウドに加入できる。加入できるクラウドの集合がどのようなものかは、ノードが持つネットワーク接続性によって決まる。ノードコンピュータに複数のインターフェースアダプタがある場合、複数のリンクローカルクラウドに加入できる。ノードがIPv6をサポートするサイトの一部であれば、そのノードはサイトローカルクラウドにアクセスできる。ノードが複数のこのようなサイトに(たぶん、VPNを介して)接続されている場合、そのノードは複数のサイトローカルクラウドにアクセスできる。ノードがインターネットに接続されている場合、そのノードはグローバルクラウドにアクセスできる。
ノードは、アクセス先のクラウドへの加入または非加入を選択できる。アプリケーションが最初にクラウド上でピア名を登録すること、またはクラウド上でピア名を解決することを要求した場合、ノードはクラウドにまだ加入していなければ加入しなければならない。クラウドに加入するには、同じクラウド内の少なくとも1つの他のノードを特定(locate)しようと試みなければならない。別のノードを見つけられない場合、それはクラウド内の最初のノードであると想定し、他のノードが後で加入するのを待つことになる。
PNRPノードがクラウドに加入する毎に、クラウド発見を実行して、別のノードを見つけなければならない。PNRPの実装によりそのキャッシュが健全ではなく、さらに多くのキャッシュエントリを取得する必要があると判定される場合に、後からクラウド発見を実行することもできる。最初のキャッシュ発見の試みがうまく行かない場合、後でさらに試みることもできる。クラウド発見は、以下の手順で実行される。まず、ピアが永続的キャッシュから発見を実行する。このような手順では、ピアはまず永続的キャッシュをチェックする。キャッシュが永続的でなかった場合、ピアは後述の供給されたノードアドレスにより発見を試みなければならない。キャッシュエントリが永続的であった場合、すべてのキャッシュエントリについて、ピアは、期限切れになっていないCPA、次いで存続期間の長いCPA、次いで期限が最新であるCPAと優先順位を決めることにより、優先度を計算する。その後、ピアは、選択されたノードとの同期処理を、選択されたノードの1つがいくつかのキャッシュエントリを与えるまで、順番に試みる。
上記のように、永続的キャッシュがない場合、ピアは供給されたノードアドレスにより発見を実行しようとする。この手順で、ピアは、管理構成で接続先のピアの集まりを指定しているかどうかをチェックする。指定していない場合、ピアは後述のマルチキャスト発見を試みる。指定している場合、ピアは、指定されたエンドポイント毎に、同期処理を、その選択されたノードの1つがいくつかのキャッシュエントリを与えるまで、順番に試みる。
マルチキャスト発見では、Simple Service Discovery Protocol(SSDP)が利用可能であれば、ピアは、所望のクラウド内のPNRPサービスインスタンスについてSSDP MSEARCHを発行する。SSDP検索メッセージで使用する検索ターゲット文字列は、「urn:Microsoft Windows(登録商標) Peer Name Resolution Protocol:<major>:<Protocol>:<Scope>」である。ただし、<major>はバージョンを表す番号、<Protocol>は「IPV6」、<Scope>は「Global」、「SiteLocal」、または「LinkLocal」のうちの1つである。検索は、時間内に応答が得られるようにあらかじめ発行することができる。SSDPが利用できない場合、ピアは、上記の他の発見プロトコルを試みることができる。利用できるものがない場合、ピアは、後述のディレクトリネームサーバ(DNS)発見を試みなければならない。しかし、応答が受信された場合、応答は試みる対象のノードのリストに入れられる。応答が短時間のうちに利用できない場合、ノードは他の発見プロトコルを試みてもよい。この期間は、実装で決定することができる。その後、ピアは、選択されたノードとの同期処理を、選択されたノードの1つがいくつかのキャッシュエントリを与えるまで、順番に試みる。
DNS発見では、ピアは、シードサーバ(seed server)のよく知られている名前についてDNSクエリを発行する。グローバルクラウドに対するこの名前は、例えば、SEED.PNRP.NETなどとなる。成功した場合、ピアは後述の同期処理を実行できる。しかし、このときまでにクラウド発見が成功しなかった場合、PNRPは、クラウドの他のメンバを発見できないようにクラウド状態を設定し、それがクラウド内の第1のノードであると想定する。後で、再び同期処理を試みることができる。
同期をとることで、ノードは別のノードのキャッシュから一組のCPAを取得することができる。同期処理は、クラウド発見後に実行される。これは、クラウド発見により返された一組のノードからランダムに選択された単一のノードにより実行される。ある種の攻撃を緩和するために同期処理が行われる。また、有効期限が過ぎたためクラウドのキャッシュが空になった場合にも同期処理が行われるが、ほんのたまにしか行われない。同期処理を開始する前に、ノードは、少なくとも1つのローカルで登録されているCPAを備えていることを確認しなければならない。ピア名がすでに登録されていなければ、ノードはクラウド内に自分自身のノードIDを生成することができる。同期処理では、SOLICIT、ADVERTISE、REQUEST、FLOOD、およびACKなどの本発明の5種類のメッセージが伴う。
図3は、同期処理のための単純なメッセージ交換を例示している。この図3では、ノードA212はノードB214との同期処理を開始すると仮定する。このような状況で、ノード間のメッセージの流れは、図3に例示されているとおりに進む。特に、SOLICITメッセージ216は、クラウド発見時に選択されたノード214にPNRP IDのリストを要求する。このSOLICITメッセージ216は、表1で説明されているように入力される。
Figure 2005004777
ノードは、ハッシュされたNonceを生成するために使用されるNonce値を追跡する。タイマーは、この状態だけでなく、リトライカウントにも関連付けられている。送信されたSOLICIT 216に応答してADVERTISEメッセージ218が受信されなかった場合、SOLICIT 216が再送される。リトライカウントを超えた場合、その状態は解放され、トランザクションは終了する。
SOLICIT 216を受信したノード214は、ADVERTISEメッセージ218で応答する。ADVERTISE 218はPNRP IDの配列を含む。ノード214は最初に、スロットリングという経験則を適用し、同期処理トランザクションに加わる意志があるかどうかを判別する。ビジー状態であれば、PNRP IDが配列内にないADVERTISEメッセージ218で応答する。ビジー状態でなければ、キャッシュから適切に配分された一組のPNRP IDを選択する。これは、最上位レベルのキャッシュエントリを使用するか、またはランダム選択により実行することも可能である。キャッシュ内に十分なエントリがない場合、ノード214は自分のローカルで登録されているIDも含まなければならない。ADVERTISEメッセージ218は、SOLICITメッセージ216からのハッシュされたNonceを含む。ADVERTISE 218は、SOLICIT 216の肯定応答であると考えられる。
PNRP IDの配列が空でなかった場合、ノード214はハッシュされたNonce値を持つADVERTISE 218が送信された状態も保つ。この状態は、ビットマップ内の1ビットとすることができる。タイマーはこの状態に関連付けられ、したがって一致するメッセージを15秒以内に受信しないと、トランザクションは異常終了し、この状態は解放される。ノード214は、SOLICITメッセージ216からソースCPAをキャッシュに追加することもできる。ADVERTISEメッセージ218は、表2に示されているように占有される。
Figure 2005004777
ノード212は、ADVERTISE 218を受信すると、まず、対応するSOLICIT 216を送信したことを確認する。ノード212は、送信していなければ、メッセージを削除する。ADVERTISE 218は、SOLICIT 216の肯定応答として処理される。ADVERTISE 218内のPNRP IDの配列が空の場合、トランザクションは完了である。空でなければ、ノード212はADVERTISE 218内のPNRP IDの配列を参照して、キャッシュに含めたいものを選択する。ノード212は、選択されたPNRP IDの配列を含む、REQUESTメッセージ220を送信する。REQUESTメッセージ220の中に、ノード212は、SOLICITメッセージ216のハッシュされたNonceを作成するために使用されるオリジナルのNonce値を入れる。REQUESTメッセージ220は、表3に示されているように入力される。
Figure 2005004777
REQUESTメッセージ220がノードB 214に送られると、ACK 222で応答して、受信したことを示し、再送を避ける。適切なタイミングでACK 222が受信されない場合、ノードA 212はREQUESTを再送する。REQUESTに対するACKを受信することなくすべての再送が尽きてしまった場合、トランザクションは失敗し、終了する。
トランザクションが成功した場合、つまり、ノード212がノード214からACK 222を受信した場合、ノード214はNonceが有効であることを確認する。そのために、受信したNonceをハッシュし、それが先に保存した状態と一致するかチェックする。一致しない場合には、それ以上処理を行わない。有効であれば、キャッシュ内にまだ置いてある配列内のPNRP ID毎に、FLOODメッセージ224、224、...224を送信する。FLOODメッセージ224は、PNRP IDに対するCPAを含む。FLOODメッセージ224は同期していないことに注意されたい。つまり、FLOOD(ID=1)224は、FLOOD(ID=2)224が送信される前に肯定応答される必要はない。ピア212がFLOOD 224を受信した後、FLOODメッセージ224の通常処理が行われる。これは、ACK 226の送信およびCPAの妥当性の確認を含む。
探索側ノード212は、選択されたIDの個数が十分に大きくなければこの手順を繰り返すことを決定できる。この場合、異なる同期相手のノードを使用して、異なるIDリストを取得する必要がある。
RESOLVEメッセージを送信することにより、ノード側で解決プロセスを開始する。PNRP IDを登録する一部として、またはキャッシュ保守の一部として、またはクラウド分割を検出するため、アプリケーション側でピア名をアドレスに解決することを要求しているのでRESOLVEが開始される場合がある。RESOLVEメッセージは、解決処理をチューニングし、解決を試みるため訪れるノードの数に制限を課し、ID照合の精度を導くいくつかのフラグおよびコードを含む。これは所望のターゲットPNRP IDを指定する。ホップ毎に、次のホップのIDだけでなく、これまでに見つかった最もよく一致するCPAが挿入される。さらに、ホップからホップへのRESOLVEメッセージの経路を追跡するため、訪れた先のノードエンドポイントの配列を含む。RESOLVEの発信元(オリジネータ)は自分自身をその経路内の第1のエントリとして追加する。解決トランザクションにより、PNRP IDは認証ピアアドレスに解決される。CPA所有者のみが、権限を得てそのCPAの解決要求を履行できる。キャッシュされたCPAは、RESOLVE要求の経路選択の際の参考としてしか使用できない。これらは、RESOLVEまたはRESPONSEの「最良一致」フィールドの設定に使用できない。
RESOLVEメッセージは、ターゲットPNRP IDのホストとなるノードに到達したときに、または訪れた先のノードの数がRESOLVEで設定されているMax Hopsに等しいときに、または経路内の任意のノードがもはやRESOLVEをより適切なノードに転送することができなくなったときに、終了する。終了に際し、RESOLVEから選択された内容が新しいRESPONSEメッセージ内に転送され、このメッセージはRESOLVEイニシエータに送り返される。RESPONSEは、RESOLVEからの「最良一致」CPAだけでなく、訪れた先のノードのリストも含む。RESPONSEがRESOLVE発信元に到達すると、発信元は「最良一致」CPAのPNRP IDとターゲットとを比較することによりターゲットCPAを見つけたかどうかを容易に確認できる。
RESOLVE/RESPONSEトランザクションの3ノード例が図4に示されている。この簡略化した例では、ノードA 228は、ノードB 230経由でノードT 232を解決しようと試みている。ACKのほかに解決トランザクションに関わる3つのメッセージ、つまりRESOLVE、RESPONSE、およびAUTHORITYがある。解決が完了した後、後述のように、ノードA 228はノードT 232にINQUIREメッセージを直接送信することができる。
RESOLVEメッセージについては、3つのケースが考察され、そのうち最初の2つが図4に示されている。これら3つのケースでは、ノードA 228でRESOLVE 234を開始し、ノードA 228から別のノードB 230へRESOLVE 236を転送し、ノードからRESOLVEを送り返されている(図4には示されていない)。これらのシナリオのそれぞれについて順番に説明する。
ノードA 228でRESOLVEを開始することについて最初に説明する。図4に例示されているように、ノードA 228は何らかの理由からRESOLVEを開始する。理由としては、アプリケーション解決要求、登録広告(registration advertisement)、キャッシュ幅保守(cache breadth maintenance)、またはクラウド分割検出(cloud split detection)などがある。イニシエータ228は、オペレーションコードも指定し、これにより、RESOLVEの条件はローカルで登録されているIDにより満たされることが可能かどうかを示す。それが可能であれば、ノードA 228はローカルで登録されているIDの集合に一致がないかスキャンして調べる。一致が見つかれば、RESOLVEは、一致するIDを持つノードA 228自体の中で完了する。ローカルで登録されているIDが条件に合致していない場合、またはローカルIDのどれも一致していない場合、RESOLVEメッセージ234が作成され、表4に示されているフィールドを備える。その後、このRESOLVEメッセージ234は、後述のように、他の何らかのノード230に転送され、処理される。
Figure 2005004777
ノードA 228がRESOLVE 234を別のノードB 230に転送したい場合またはその必要がある場合、この次ノードを最初に選択しなければならない。次のホップを選択するために、ノードA 228は、アドレスがすでに経路リストに載っているもの以外のターゲットID(ノードT 232)に最も近いPNRP IDおよびAの最も近いローカルで登録されているIDよりもターゲットIDに近くないPNRP IDを持つ3つのキャッシュされたCPAのリストLを作成する。ターゲットIDがリストLに含まれている場合、そのエントリが次ホップとして選択される。含まれていない場合、リストLが空でなければ、1つのエントリがランダムに選択される。つまり、ノードA 228は、このノードよりもターゲットに近い新しいいくつかのノードを見つけ、RESOLVEメッセージ234の転送先としてそのうちの1つを選択する。
ノードA 228が次のホップを選択できる場合、ノードA 228は適切なエントリを「受信済みビットマップ」内に挿入する。ノードA 228は自分自身を経路リストに追加し、選択された次ホップに対するその最良のアドレスを選択し、エントリにAcceptedのマークを付ける。ノードA 228は、NextHopを選択された転送先の予想PNRP IDに設定し、RESOLVEメッセージ234をノードB 230に転送する。RESOLVEメッセージ234が正常に送信された場合、送信側ノード228では、AUTHORITYメッセージ238の形で肯定応答を受信することを期待する。AUTHORITY 238が受信された場合、ノード228はRESOLVE 234に対するコンテキストを保持し、タイムアウト値に達するまでRESPONSE 240メッセージが返されるのを待つ。一定時間後、AUTHORITY 238が受信されない場合、RESOLVE 234が再送される。NextHopが無効であるとみなされるまでに、合計N回試みられる。好ましい実施形態では、N=3である。リトライカウントを超えた場合、ローカルキャッシュからNextHop CPAが除去され、エントリが失敗したホップとして経路リストに加えられる。ホップカウントを超えない場合、ローカルキャッシュから次のNextHopが選択され、処理が繰り返される。経路リスト内のエントリの数がMaxHops以上の場合、応答コードをRESULT_MAX_HOP_LIMIT_HITとするRESPONSEメッセージが生成され、Acceptedのマークが付けられている経路リスト内の一番最近のエントリへ送られる。
ノードが次のホップを見つけられなかった場合、ターゲットIDが最低キャッシュレベルにあるべきかチェックする。そうであれば、ノードはターゲットIDが存在していないのではないかと疑う。ノードは、既存の経路リスト内のエントリをチェックし、Suspiciousのマークが付けられているエントリを数える。このカウントが閾値を超えている場合、応答コードをRESULT_TOO_MANY_MISSESとするRESPONSEメッセージが生成され、Acceptedのマークが付けられている経路リスト内の一番最近のエントリへ送られる。ノードが次のホップを見つけられなかったが、Suspiciousカウントを超えていない場合、ノードはRESOLVEをAcceptedのマークが付けられている経路リスト内の最後のノードに送り返す。ノードはまず、自分自身を経路リストに追加し、転送先ノードに対するその最良のアドレスを選択し、エントリにRejectedのマークを付ける。これはNextHopを0に設定し、RF_IGNORE_NEXTHOPフラグをセットして、バックトラッキングを指示する。ターゲットIDがノードの最低キャッシュレベルになければならない場合、ターゲットIDが存在していないのではないかと疑う。この場合、ノードはさらに、経路リストのエントリにSuspiciousのマークを付ける。ノードが次のホップを見つけられず、経路リスト内にノードがない(自分自身のほかに)場合、それはRESOLVEメッセージの発信元である。この場合、結果が呼び出し側に返され、解決できなかったことを示し、応答コードはRESULT_NO_BETTER_PATH_FOUNDである。呼び出し側で、BestMatch CPAが利用できるようになる。
ノードB 230は、ターゲットPNRP ID、BestMatch CPA、Next Hop PNRP ID、およびRESOLVEを処理したすべてのノードのアドレスを記述した経路リストを含むRESOLVEメッセージ234を受信する。フラグフィールドにRF_IGNORE_NEXTHOPが設定されておらず、BestMatch CPAにCPAがあるか、または空である可能性がある場合、ノードB 230はそのローカル処理負荷をチェックする。負荷が高すぎて、新しいRESOLVE要求を処理できない場合、フラグフィールドが「AF_REJECT_TOO_BUSY」に設定されているAUTHORITY 238で応答し、処理は完了する。AUTHORITY受信側は、拒絶ノードのエンドポイントを経路配列に追加し、RESOLVE要求に対する他のどこかへの経路再選択を行う必要がある。
受信ノード230は、経路配列がAcceptedのマークが付けられている少なくとも1つのアドレスを含むこと、および最後のそのようなアドレスがメッセージの送信元(ソース)と同じであることをチェックする。そうでなければ、それ以上処理は行われない。受信ノードは、受信した要求に含まれるパラメータもチェックする。いくつかのパラメータが有効な範囲内にない場合、フラグフィールドが「AF_INVALID_REQUEST」に設定されているAUTHORITYメッセージで応答し、処理は完了する。無効なパラメータの一例として、MaxHopsが大きすぎる場合を挙げることができる。AUTHORITY受信側は、拒絶ノードのエンドポイントを経路配列に追加し、RESOLVE要求に対する他のどこかへの経路再選択を行う必要がある。
受信ノード(例えばノードB 230)は、NextHop IDがローカルで登録されているかチェックする。シードサーバではこのテストをスキップすることができる。これが失敗した場合、フラグフィールドが「AF_UNKNOWN_ID」に設定されているAUTHORITYで応答し、処理は完了する。AUTHORITY受信側は、RESOLVE要求に対する他のどこかへの経路再選択を担う。AUTHORITY受信側はまた、AF_UNKNOWN_IDが受信されたときにAUTHORITY送信側(センダ)のPNRP IDをキャッシュから除去しなければならない。BestMatch CPAがメッセージに含まれている場合、ノードは、可能な限り、BestMatchの妥当性を確認する。CPAが有効でない場合、ノードはメッセージからBestMatch CPAを除去する。BestMatch CPAが有効な場合、ノードは通常の規則に従って、CPAをキャッシュに追加するかどうかを決定する。
またノードは、経路リスト内にそのノードに対するエントリがあるかどうかもチェックする。もしあれば、これはバックトラックされたRESOLVEでないので、ループがある。するとノードは、フラグフィールドが「AF_REJECT_LOOP」に設定されているAUTHORITYで応答し、処理は完了する。AUTHORITY受信側は、拒絶ノードのエンドポイントを経路配列に追加し、RESOLVE要求に対する他のどこかへの経路再選択を行うことを担う。
前のチェックがすべて通った場合、ノードB 230はAUTHORITY 238を送信して、RESOLVEメッセージ234の肯定応答とする。RESOLVEフラグRF_SEND_CHAINがセットされていた場合、NextHopの認証連鎖がAUTHORITY 238に含まれる。次のホップのPNRP IDに対応するピア名のクラシファイア(Classifier)文字列部分はAUTHORITYメッセージに含まれる。
ノードB 230は、現在のBestMatchよりも正確に一致しているローカルで登録されているCPAがあるかどうかチェックする。あれば、BestMatchをそれで置き換える。ノードはまた、OpCode、Precision、およびTargetIDに基づき、RESOLVE基準を満たすローカルで登録されているCPAがあるかどうかもチェックする。一致があれば、または経路リスト内のエントリの個数>=MaxHopsであれば、ノードは現在のBestMatchを持つRESPONSEメッセージを作成する。RESOLVEメッセージの経路は、RESPONSEメッセージの経路にコピーされる。ノードは、ResponseCodeを設定して、RESULT_FOUND_MATCHまたはRESULT_MAX_HOP_LIMIT_HITのいずれかを示す。その後、ノードは、経路リストからアドレスを除去するだけでなく、Rejectedのマークが付けられている後続のエントリも除去し、RESPONSEをAcceptedのマークが付けられている経路リスト内の一番最近のエントリに送信する。
ノードB 230は、RESPONSEを送信しなかった場合(図4に示されている)、次のノードT 232にRESOLVEメッセージ236を転送しようと試みる。この転送は、上述の手順に従って行われる。つまり、ノードT 232は、最初、AUTHORITYメッセージ242で応答する。次に、上述のチェックを実行し、ターゲットと一致していることを判別してから、それ自身をBestMatchとして識別するREPONSEメッセージ244でノードB 230に応答する。RESPONSEメッセージ244に応答して、ノードB 230はACKメッセージ246を送り返す。その後、ノードB 230は経路リストをチェックし、RESPONSEメッセージ240をノードA 228に転送し、ACKメッセージ248で応答する。
上記のように、ノードは、さらに、バックトラックされたRESOLVEも処理できなければならない。ノードは、RESOLVEメッセージRを受信するときに、Target ID PNRP ID、BestMatch CPA、NextHop PNRP ID、およびRESOLVEを処理したすべてのノードのアドレスが記載されている経路リストを含む。バックトラックされたRESOLVEについては、フラグフィールドにRF_IGNORE_NEXTHOPが設定される。このノードは、まず、「受信済みビットマップ」をチェックして、それがすでにこのRESOLVEを転送していることを確認する。ビットがセットされていない場合、メッセージは削除される。次に、ノードは経路リストをチェックして、そのアドレスが経路リスト上にあること、および経路リスト内でAcceptedのマークが付けられている最上位のエントリであることを確認する。そうでなければ、メッセージを削除する。メッセージが削除されない場合、ノードはAUTHORITYを送信側に送り返し、そのメッセージの肯定応答(ACK)とする。これは、認証連鎖を含まない。
経路リスト内のエントリの個数>=MaxHopsであれば、ノードは現在のBestMatchを持つRESPONSEメッセージSを作成する。RESOLVEメッセージRの経路は、Sの経路にコピーされる。ノードは、応答コードを設定し、Max Hopsを超えたことを示す。その後、ノードは、経路リストからアドレスを除去し、RESPONSEをAcceptedのマークが付けられている経路リスト内の一番最近のエントリに送り返す。ノードは、RESPONSEを送信しなかった場合、RESOLVEを次のホップに転送しようとする。この転送は上述の手順に従うが、ただし、いくつか例外があり、a)「ノードB 230は、現在のBestMatchよりも正確に一致しているローカルで登録されているCPAがあるかどうかチェックする。あれば、BestMatchをそれで置き換える。」は適用されず、b)現在のノードがRESOLVEトランザクションの発信元であり、理由がREASON_REPAIR_DETECTIONであれば、処理は完了である。
上で簡単に説明したように、ノードは、RESPONSEメッセージ244、240を受信するときに、TargetID PNRP ID、BestMatch CPA、およびRESOLVEを処理したすべてのノードのアドレスが記載されている経路リストを含む。また、受信ノードは、「受信済みビットマップ」をチェックして、それがすでにこのRESPONSE240、244と一致するRESOLVE 234、236を送信していることを確認する。ビットがセットされていない場合、メッセージは削除される。また、受信ノードは経路リストをチェックして、そのアドレスが経路リスト上の最後のアドレス(一番最近)であること、およびAcceptedのマークが付けられていることを確認する。そうでなければ、メッセージを削除する。メッセージが削除されない場合、この受信ノードはACK 246、248を送信し、受信したことについて肯定応答する。ノードは、できる限りBestMatch CPAの妥当性を確認し、キャッシュに追加する。CPAをキャッシュに追加する場合、さらにメッセージ交換が必要になると思われる一組の規則が適用され、PはBestMatch CPAの妥当性を確認することができる。これについては、上記の出願で説明されている。
次に、ノードは自動的に経路リストから除去される。ノードは、Acceptedのマークが付けられているエントリに出会うか、リストが尽きるまで、Rejectedのマークが付けられている前のエントリも除去する。Acceptedのマークが付けられているエントリが見つかると、ノードはRESPONSEをこのノードに転送する。RESPONSEが転送されたノードがACKで応答しない場合、ノードはRESPONSEを最大N回まで再送する。再送がタイムアウトになった場合、ノードは経路リストから失敗した転送先ノードを除去し、この段落で説明したRESPONSE処理を再試行する。経路リスト内にエントリがなくなれば、そのノードがオリジナルのRESOLVE 234の発信元である。ノード228は、その要求の発信元であったことを確認する。発信していなければ、RESPONSEは削除される。応答コードが成功を示している場合、ノード228はBestMatch CPAの送信元に対しアイデンティティ妥当性確認チェックを実行する。そのためには、INQUIREメッセージ250をターゲットノード232に送信し、返されたAUTHORITYメッセージ252を確認する必要がある。アイデンティティ妥当性確認が失敗した場合、応答コードをIDENTITY_FAILUREに変更する。結果を呼び出し側に返す。
AUTHORITYメッセージは、送信側によってフラグメント化される場合がある。AUTHORITYメッセージを処理する前にすべてのフラグメントを受信したことを確認するのは受信側に任される。妥当な時間内にフラグメントが受信されない場合、リトライカウントを超えるまで、オリジナルのメッセージ(INQUIREまたはRESOLVE)を再送しなければならない。AUTHORITYメッセージフラグにAF_CERT_CHAINがセットされている場合、ノードはValidateIDで指定されているPNRP IDに対するキャッシュされたCPAに連鎖妥当性確認オペレーションを実行する必要がある。この連鎖をチェックして、その中のすべての認証が有効であること、およびその連鎖の根と葉との関係が有効であることを確認しなければならない。この連鎖の根に対する公開鍵のハッシュをCPAのピア名のオーソリティと比較して、一致していることを確認しなければならない。この連鎖の葉に対する公開鍵をCPAの署名に使用する鍵と突き合わせて比較し、一致していることを確認しなければならない。最後に、P2P IDをチェックして、P2P IDを作成するための規則に従って、オーソリティおよびクラシファイアのハッシュであるか調べなければならない。上記のチェックが失敗した場合、CPAをキャッシュから除去し、RESOLVEメッセージ経路リストにAUTHORITYメッセージを送ったノードのアドレスを追加し、エントリにRejectedのマークを付けることによりRESOLVEメッセージを修正しなければならない。
AF_UNKNOWN_IDがセットされている場合、CPAをキャッシュから除去しなければならない。AF_CERT_CHAINがセットされていないが、ValidateID PNRP IDに対応するCPAは認証連鎖の妥当性確認を必要とする場合、CPAをキャッシュから除去し、RESOLVEメッセージ経路リストにAUTHORITYメッセージを送ったノードのアドレスを追加し、エントリにRejectedのマークを付けることによりRESOLVEメッセージを修正しなければならない。
ValidateID PNRP IDに対応するCPAの妥当性確認が行われている場合、完全に妥当性確認が行われているというマークを付けなければならない。AUTHORITYメッセージからクラシファイア文字列を抽出して、CPAとともに保持する。AF_REJECT_TOO_BUSY、AF_UNKNOWN_ID、AF_REJECT_LOOP、およびAF_INVALID_REQUESTがすべてクリアであれば、RESOLVEは処理できるものとして受理され、AUTHORITY処理が実行される。
いくつかの場合において、RESOLVEメッセージを受信したノードは、転送に関して受理しないことを選択できるが、それでもNext Hopの推奨を送信ノードに送る。この場合、ノードは推奨された参照エンドポイント(Referral Endpoint)および参照PNRP IDをAUTHORITYメッセージで返す。この場合、AUTHORITYフラグの値にAF_REDIRECTが含まれていなければならない。AF_REDIRECTとともにAUTHORITYを受信するノードは、RESOLVEメッセージを送信するために参照エンドポイントを使用するかしないかを選択することができる。いずれかの場合に、AUTHORITYで応答したノードが経路リストに追加される。ノードが参照エンドポイントを使用すべきなのは、RESOLVEの発信元であるノードが発信してクラウド分割を検出し、RESOLVEを理由REASON_REPAIRとともにPNRPシードサーバに送信している場合のみである。他の場合には、ノードは参照エンドポイントを無視しなければならない。
PNRPは、有向フラッディング(directed flooding)を使用して、ノード間でCPAキャッシュエントリを伝搬する。いくつかの場合に、フラッディングが使用される。REQUESTメッセージに応答して同期をとる際に、要求されたCPAは、REQUESTを送信したピアにフラッディングされる。REQUESTメッセージは、SOLICITメッセージが受け付けられ、ADVERTISEメッセージが送信された後でないと受け付けられない。CPAがキャッシュの最低レベルに追加されると必ず、追加されたCPAはローカル登録IDに一番近いn個のピアにフラッディングされる。値nは、チューニングすることができるが、値4が好ましい。CPAを追加する理由がFLOODの受信であれば、CPAは、アドレスが受信したFLOODのフラッデッドリスト(Flooded List)に入っているノードにフラッディングすべきではない。十分な空きがあれば、受信フラッデッドリスト内のアドレスを新しいFLOODメッセージのフラッデッドリストにコピーしなければならない。CPA取り消しを含むFLOODの受信後CPAがキャッシュの最低レベルから除去されると必ず、取り消されたCPAはローカル登録IDに一番近いn個のピアにフラッディングされる。またも、値nは、チューニングすることができるが、値4が好ましい。CPAは、アドレスが受信したFLOODのフラッデッドリストに入っているノードにフラッディングすべきではない。十分な空きがあれば、受信フラッデッドリスト内のアドレスを新しいFLOODメッセージのフラッデッドリストにコピーしなければならない。最後に、新しいピアに対してFLOODが受信され、CPAがキャッシュの最低レベルに追加されると、ローカルノードのIDとともにその新しいピアにFLOODメッセージが送信される。FLOODの送信元が新しいピアであれば、例外が生じる。
PNRPは、永続的な近隣関係を作らない。最も緩やかな意味では、CPAキャッシュ内でCPAにより表されるすべてのノードは、近隣ノードとみなすことができる。しかし、CPAのキャッシュへの追加および除去は、CPA発行者に必ずしも通知せずに行われる。ノードのキャッシュ内にピアのCPAを置いても、近隣ノードがそのノードのCPAをキャッシュに置くとは限らない。この関係は非対称である。しかし、上述の最後のFLOOD条件では、互いに近いIDに対し対称性を実現しようとする。
そのFLOODに対し他のアクションを実行する前に、ACKですべてのUDP FLOODメッセージについて肯定応答する。FLOODの送信側は、FLOODが送信されたある期間の状態を保持する。ACKを受信すると、その状態は解放される。一定期間ACKが受信されないと、FLOODが再送され、タイマーがリセットされる。FLOODは、所定の回数まで再試行されるが、3回が好ましい。最後の再試行の後にACKが受信されないと、その状態は解放される。さらに、FLOODの送信先が送信側のキャッシュ内にあった場合、これ以降未応答ノードへのメッセージの送信を試みないようキャッシュエントリが除去される。
ノードがFLOODメッセージを受信すると、まず最初にACKを送信してFLOODメッセージについて肯定応答することによりメッセージが処理される。ValidateIDが存在しており、ローカルで登録されていない場合、フラグフィールドは「KF_NACK」に設定される。次に、FLOODメッセージの妥当性確認が行われる。これは、CPA署名および内容に対するローカルでの確認を含む。CPAの妥当性確認が行われた場合、CPAをキャッシュに追加するかどうかが決定される。CPAがローカルの同じノード上で登録されているPNRP IDに対するものであれば、キャッシュに追加する必要はない。CPAだけではCPAを署名するために使用されるアイデンティティを確認できず、またCPAがキャッシュビューの2つの低いレベルのうちの1つに追加される場合、後述のようにアイデンティティ妥当性確認を実行する必要がある。妥当性確認が失敗した場合、ノードはFLOODメッセージを削除する。成功した場合、ノードはFLOODを処理し続ける。CPAがすでに期限切れになっている場合、ノードはFLOODを削除する。CPAが取り消しCPAの場合、キャッシュに対応するCPAがあれば、ノードはそれをキャッシュから除去する。見つかった場合、ノードはFLOODメッセージを送信することにより取り消しを他の近隣ノードに送る。
CPAが取り消しCPAでない場合、ノードはキャッシュを更新する。一致するCPAがすでにキャッシュ内にある場合、ノードは新しいCPAデータでキャッシュエントリを更新する。これが新しいエントリであれば、ノードは新しいエントリを作成し、キャッシュへの追加を試みる。別のエントリを除去して入れる余地を作る必要がある場合にはエントリを追加できないが、信頼度レベルが高い、または近接性測定基準が優れているため既存のエントリは新しいエントリよりも好ましい。エントリが最低キャッシュレベルに属している場合は、追加しなければならない。CPAが最低キャッシュレベルに属している場合、キャッシュに追加できない場合であっても、いくつかの近隣ノードに転送しなければならない。同期中にFLOODを受信した場合、すべての発見されたCPAはすでに他のノードに知られていると想定されるため、FLOODメッセージの転送が抑制される。FLOODを転送する必要がある場合、ローカルで登録されているIDに最も近いn個のPNRP IDの集まりが選択される。新しいCPA、およびn個の近隣ノードを記述したフラッデッドリスト、さらにそれに加えて受信されたFLOODメッセージ内の受信フラッデッドリストの内容とともに、FLOODメッセージがそれぞれのIDに送信される。
アイデンティティ妥当性確認は、CPAの妥当性を確認する場合に使用される脅威緩和デバイス(threat mitigation device)である。これは2つの目的を有する。第1に、アイデンティティ妥当性確認により、CPAで指定されたPNRPノードがローカルで登録されているそのCPAからのPNRP IDを持つことが保証される。第2に、セキュリティ保護されたPNRP IDに対して、アイデンティティ妥当性確認により、PNRP IDのオーソリティと暗号により実証可能な関係のある鍵を使用して、CPAが署名されていることが保証される。アイデンティティ妥当性確認でこれら2つの目標を達成する詳細については、上記の係属中の出願において説明されている。
2つの異なる時期に、アイデンティティ妥当性確認チェックが実行される。第1に、アイデンティティ妥当性確認は、CPAを最低の2つのキャッシュレベルに追加する場合に実行される。最低の2つのキャッシュレベルにおけるCPAが有効であることは、PNRPでPNRP IDを解決するために重要である。CPAをこれら2つのレベルのいずれかに追加する前にアイデンティティ妥当性確認を実行すると、複数の攻撃が緩和される。この場合、CPAは最大、例えば30秒間リスト内に保持され、AUTHORITYメッセージが届くのを待つ。第2に、アイデンティティ妥当性確認は、RESOLVEのときにチャンスがあれば実行される。PNRPキャッシュの回転率は高い。したがって、ほとんどキャッシュエントリは、そもそも使用される前にキャッシュ内で上書きされてしまう。PNRPは、実際に使用するまでほとんどのCPAの妥当性を確認しない。CPAを使用して、RESOLVE経路の選択を行う場合、PNRPはアイデンティティ妥当性確認をRESOLVEメッセージと抱き合わせの形で実行する。RESOLVEには、「次のホップ」IDが含まれ、これは、INQUIREメッセージの「ターゲットID」と同じように処理される。RESOLVEに対しAUTHORITYメッセージにより肯定応答されるが、INQUIREに対し期待されているのと同じである。チャンスがあれば実行するアイデンティティ妥当性確認が失敗した場合、RESOLVEの受信側は、送信側でそうであると信じている受信側ではない。したがって、RESOLVEに対してはどこか他の経路が選択され、無効なCPAがキャッシュから除去される。
この妥当性確認を例示するため、PがPNRP ID「T」に対するアイデンティティ妥当性確認を要求するノードであると仮定する。Nは、アイデンティティ妥当性確認要求を受信するノードである。Pは、ターゲットID=TのINQUIREメッセージ、または次のホップ=TのRESOLVEメッセージのいずれかを生成する(そしてRF_IGNORE_NEXTHOPは設定されない)。Nは、ローカルで登録されているPNRP IDのリストをチェックする。Tがそのリスト内になければ、NはAUTHORITYメッセージで応答し、ID Tがローカルで登録されていないことを示す。受信されたメッセージがRESOLVEであった場合、Pがどこか他への転送を処理するため、RESOLVEは破棄される。TがNでPNRP IDのリスト内にある場合、NはAUTHORITYメッセージを構築し、ターゲットIDをTに設定する。RF_SEND_CHAINフラグがセットされていた場合、NはPNRP ID Tに対するオーソリティにCPAを署名するために使用される鍵に関係する認証連鎖(もしあれば)を取り出す。認証連鎖は、AUTHORITYメッセージの中に挿入される。ピア名のクラシファイア部分も、AUTHORITYメッセージに追加される。
NはPへAUTHORITYメッセージを送信する。AUTHORITYメッセージが1216バイトよりも長い場合、メッセージは1216バイト以下の複数のフラグメントに分割され、各フラグメントが送信される。Tがセキュリティ保護されていないIDの場合、またはCPAがすでに妥当性確認されていた場合(RESOLVEを送信しRF_SEND_CHAINをクリアした)、処理は完了する。Pは、鍵を署名するCPAとPNRP ID Tを生成するために使用されるオーソリティとの関係の妥当性を確認する。妥当性確認が失敗した場合、CPAは破棄される。妥当性確認が失敗し、開始メッセージがRESOLVEであった場合、PはどこかほかへRESOLVEを転送する。
上記の出願で説明されているように、また上で簡単に説明したように、PNRPクラウドは分割可能である。これは2通りの方法で行える。第1に、クラウドは、独立に開始することができ、マージする必要がある。第2に、クラウドは、一体として開始されている可能性があるが、クラウドの一部断片はクラウドの残りから分離されている可能性がある。可能な分割をブリッジするために、クラウドはシードサーバを指定していると仮定する。これらは、DNSを介してブートストラップするために使用するのと同じサーバである。クラウド内に複数のシードサーバがある場合、シードサーバ同士が定期的に連絡を取り合い、キャッシュでIDを交換するようにしなければならない。これは、同期処理を使用して実行できる。孤立した島を作ることが回避される。
クラウド内のノードは、定期的にシードサーバをポーリングし、ノードが主クラウドから孤立していないかテストし、必要ならばマージして戻すことを試みる。ノードが分割のテストを行う頻度は、クラウドのサイズの推定値に反比例する。これは、分割が頻繁に生じすぎないようにするテストである。最近クラウドに加入したノードは、クラウドのサイズを推定できると仮定する前に、そのキャッシュに初期値として値が入るまで一定期間待たなければならない。
クラウドのマージを使用可能にするには、PNRP REPAIRメッセージを使用する。REPAIRは、PNRP ID、ノードのIPアドレス、および修復レベル(Repair Level)番号を含む。キャッシュレベルには、最上位レベルである0から始まる番号が付けられ(最大番号範囲)、それ以降のレベルには1ずつ高くなる番号が付けられる(小さな範囲)。分割が最初に検出されたら、修復レベル値を0に初期化する。ノードが分割コードのテストを実行すると決定した場合、ノードは内部で、IPアドレス、ローカルで登録されているPNRP ID、およびレベル0として知られているシードサーバのアドレスを使用して、REPAIRを生成する。これはこのREPAIR自体を処理する。
REPAIRが処理されるときに、ノードは分割のテストを実行する。まず、REPAIRメッセージ内のIDに最も近いローカルで登録されているIDを見つける。次に、このID+1に対するRESOLVEをREPAIRメッセージで指定されているIPアドレスに送信する。このRESOLVEには、修復の理由コード(Reason Code of Repairing)がなければならない。これが知られているノードに解決する場合、分割はない。これが新しいノードに解決する場合、分割が疑われる。発見された新しいノードが最下位キャッシュレベル(番号は最高)にあれば、フラッディングをいつものように実行する。修復の理由コードがFLOODメッセージに設定される。同様に、RESOLVEを受け取るノードが送信元IDを最低キャッシュレベルに入れた場合、そのノードはエントリを送信元へフラッディングする。すべてこのフラッディングで、新しいクラウドと複数のIDの交換が行われる。フラッディングを介して発見されたすべての新しいノードは、このようにして追跡される。
発見された新しいノードがすでに知られているノードよりも近く、キャッシュエントリが受信修復レベルにある場合、ノードは修復レベルでREPAIRメッセージをキャッシュ内のエントリに送る。REPAIRが送信される毎に、ノードは新しく発見されたノードIDとIPアドレスの1つを選択し、修復レベル+1で渡す。発見された新しいノードがすでに知られているノードよりも遠い場合、ノードはREPAIRを新しいノードに送信し、ローカルキャッシュからのあるIDおよびアドレスならびに受信修復レベルを渡す。REPAIRメッセージを受信する各ノードも同じようにして処理する。
明らかに、PNRPプロトコルは10個のメッセージタイプからなる。各メッセージは、PNRPヘッダから始まり、その後に、そのメッセージタイプに固有のフィールドが続く。オーバーヘッド(フィールド記述など)は、各メッセージフィールドテーブルの「長さ」欄で別々に計算される。以下の説明では、これらのメッセージすべてにより共有される一般的メッセージデータ構造について説明し、その後、本発明のプロトコルに含まれる10個のメッセージのそれぞれに対するメッセージデータ構造について詳述する。この説明の後に、本発明のメッセージを構築するために使用されるフィールドデータ構造のそれぞれについて説明する。
図5に例示されているのは、本発明のPNRPの10個のメッセージを構築するために使用される基本メッセージデータ構造260を説明するデータ構造例の図である。これからわかるように、メッセージデータ構造260は、多数のフィールド2621−Nを含む。好ましい実施形態では、第1のフィールド262はPNRPヘッダ用に予約されている。メッセージ260を構築するために使用される個々のフィールド2621−Nのそれぞれに対するフィールドデータ構造264は、型コンポーネント266、長さコンポーネント268、およびフィールドデータ構造264の実際の内容またはペイロード270を含む。長さコンポーネント268は、フィールド全体264の長さ272として計算される。このようにして、プロトコルは完全に拡張可能である。
本発明のデータ構造に従って、RESOLVEメッセージを構築する。図6の簡略化したデータ構造図からわかるように、RESOLVEメッセージ280は、多数のフィールド282〜292から構築される。また、本発明のフィールドデータ構造に従って、さまざまなフィールドを構築する。例えば、PNRP_HEADERフィールド282は、フィールドデータ構造294を含む。このデータ構造294の構成要素は、型(フィールドID296)、長さ298からなる。このPNRP_HEADERデータ構造294の内容は、プロトコルコンポーネント300、メジャーバージョンコンポーネント302、マイナーバージョンコンポーネント304、メッセージタイプコンポーネント306、およびメッセージIDコンポーネント308を含む。同様に、VALIDATE_PNRP_IDフィールド288は、フィールドデータ構造310を含む。他のすべてのフィールドデータ構造と同様、VALIDATE_PNRP_IDデータ構造310は型コンポーネント(フィールドID 312)および長さコンポーネント314から始まる。このフィールドデータ構造の内容は、P2P IDコンポーネント316およびサービスロケーションコンポーネント318を含む。異なるフィールドはそれぞれ、図5に例示されているのと同様にして構築されるが、それぞれの説明は以下で行う。
明らかなように、また以下で例示するように、このRESOLVEメッセージは解決するターゲットPNRP ID、RESOLVE発信元のCPA、「最良一致」のCPA、およびRESOLVEを処理したノードのリストを含む。RESOLVEは、「フラグ」フィールドを含む。Resolve_ControlsフィールドのFlagsサブフィールドに対し2つのフラグ、つまり、受信側がAUTHORITY応答で認証連鎖(もし存在すれば)を送信することを要求するRF_SEND_CHAIN−0x0001とRESOLVEのバックトラッキング経路上で使用されるRF_IGNORE_NEXTHOP−0x0004とが定義される。ノードがRESOLVEをバックトラッキングの一部として受信している場合、送信側はこのノードのPNRP IDを知らない。「次のホップ」フィールドは0に設定され、RF_IGNORE_NEXTHOPはセットされて、AUTHORITYはRESOLVEに対する「ack」としてのみ使用されることを示す。上述のように、RESOLVE受信は、AUTHORITYメッセージにより肯定応答される。ヘッダ内のMessageTypeは、本発明の好ましい実施では5に設定される。本発明の教示により構築されたRESOLVEメッセージのデータ構造の詳細を表5に提示した。
Figure 2005004777
この表5で、Pは符号化されたCPAの長さ(バイト)であり、最近DWORD境界に丸められる。Aは、フラグ付き配列内のエントリの個数である。したがって、Max Hop値を超えてはならない。
RESPONSEは、RESOLVEが、ターゲットPNRP IDを所有するノードに到達したとき、またはフラグ付き経路サイズがRESOLVE Max Hopsに等しいときに、生成される。RESPONSEが生成されると、対応するRESOLVEフラグ付き経路からのすべてのエントリがRESPONSE経路にコピーされる。RESPONSEメッセージは、それぞれの適切なネットワークエンドポイントがRESPONSEを処理し、それがRESOLVE発信元に返されるまで、経路リスト内で「accept」のマークを付けられているすべてのアドレスを下から上まで通って送られる。上述のように、RESPONSE受信は、ACKメッセージにより肯定応答される。好ましい実施形態では、ヘッダ内のMessageTypeは6に設定される。本発明の教示により構築されたRESPONSEメッセージのデータ構造の詳細を表6に提示した。
Figure 2005004777
この表6で、Pは符号化された送信元CPAの長さ(バイト)であり、最近DWORD境界に丸められる。Bは、エンドポイント配列内のエントリの個数である。
SOLICITメッセージは、キャッシュから送信側へエントリをADVERTISEするよう受信側に要求するメッセージである。送信側は、受信側がキャッシュに追加できるCPAを含む。HashedNonceは、ADVERTISEメッセージで返さなければならない。SOLICIT受信は、ADVERTISEメッセージにより肯定応答される。好ましい実施形態では、ヘッダ内のMessageTypeは1に設定される。本発明の教示により構築されたSOLICITメッセージのデータ構造の詳細を表7に提示した。この表で、Pは符号化された送信元CPAの長さ(バイト)であり、最近DWORD境界に丸められる。
Figure 2005004777
SOLICITへの応答としてADVERTISEメッセージが生成される。ADVERTISEにより、広告者のキャッシュ内からPNRP IDのうちのいくつかのリストが表示される。これにより、ADVERTISE受信側は、キャッシュに初期値を入力することを選択的にCPAに要求することができる。ADVERTISE受信は、SOLICITの肯定応答として働く。ADVERTISEの肯定応答は生成されない。SOLICITの肯定応答として機能しないADVERTISEは、何も通知せずに黙って破棄されるべきである。HashedNonce値は、SOLICITメッセージで受信した値と同じでなければならない。ADVERTISEを受信したノードは、HashedNonceが有効であることを確認できなければならない。好ましい実施形態では、ヘッダ内のMessageTypeは2に設定される。本発明の教示により構築されたADVERTISEメッセージのデータ構造の詳細を表8に提示した。この表で、AはID配列内のエントリの個数である。
Figure 2005004777
REQUESTメッセージは、ADVERTISEされたCPAの部分集合をFLOODするよう広告者に要求する場合に使用する。Nonceをハッシュして、オリジナルのSOLICITで受信したHashedNonceと比較しなければならない。ID配列には、送信側が、CPAを取得できるように送信側にフラッディングして戻したいPNRP IDが含まれる。REQUEST受信は、ACKメッセージにより肯定応答される。本発明の好ましい実施形態では、ヘッダ内のMessageTypeは3に設定される。本発明の教示により構築されたREQUESTメッセージのデータ構造の詳細を表9に提示した。この表で、AはID配列内のエントリの個数である。
Figure 2005004777
FLOODメッセージは、PNRPによって使用され、ピアを選択するためキャッシュされているCPAを伝搬する。FLOODは、新しいCPAを最低キャッシュレベルに追加するとき、または最低キャッシュレベルの始めのほうのバージョンで取り消されたCPAを処理するときに、REQUESTメッセージに応答して開始される。FLOODは、冗長FLOODの発生の防止を補助するための「フラッデッドリスト」と呼ばれるアドレスのリストを含む。フラッデッドリストには、送信側のアドレス、送信側が直接FLOODを送信しようとするすべての送信先、およびすでにFLOODを受信したことを送信側が知っている他のPNRPノードのアドレスが含まれる。「フラッデッドリスト」には、最大数のエントリが含まれる。リストが満杯になった場合、FIFO方式でエントリが置き換えられる。このときに、FLOOD受信側は離れている近隣ノードよりも「そばにある」近隣ノードにそのFLOODを伝搬する可能性が高いと想定する。FLOOD受信は、ACKメッセージにより肯定応答される。ID妥当性確認は任意選択のフィールドである。存在する場合、指定されたPNRP IDを持つCPAがローカルでキャッシュされていれば受信側はACKで応答し、存在しない場合、ローカルでキャッシュされていなければNACKで応答する。好ましい実施形態では、ヘッダ内のMessageTypeは4に設定される。本発明の教示により構築されたFLOODメッセージのデータ構造の詳細を表10に提示した。この表で、Pは符号化されたCPAの長さ(バイト)であり、最近DWORD境界に丸められ、Aは配列内のエントリの個数である。
Figure 2005004777
PNRPノードは、INQUIREメッセージを使用して、選択CPAに対しアイデンティティ妥当性確認を実行してから、ローカルキャッシュに入力する。アイデンティティ妥当性確認によりCPAがまだ発信元ノードで有効であることを確認し、そのCPAを登録するために発信元ノードのオーソリティの妥当性確認を補助する情報を要求する。「フラグ」フィールドに対して1つのフラグ、つまりRF_SEND_CHAINが定義されるが、このフラグは認証連鎖(存在する場合)をAUTHORITY応答で送信するよう受信側に要求するフラグである。INQUIRE受信は、PNRP IDがローカルで登録されている場合に、AUTHORITYメッセージにより肯定応答される。そうでなければ、INQUIREメッセージは黙って無視される。好ましい実施形態では、ヘッダ内のMessageTypeは7に設定される。本発明の教示により構築されたINQUIREメッセージのデータ構造の詳細を表11に提示した。この表から明らかなように、FLAGS_FIELDの後にさらに2バイトあり、次のフィールドはDWORD境界に置かれる。
Figure 2005004777
AUTHORITYメッセージは、PNRP IDがローカルノードにまだ登録されていることを確認するかまたは否認するために使用され、任意選択により、AUTHORITY受信側がターゲットIDに対応するCPAを登録するノードの権利の妥当性確認を行えるようにする認証連鎖を提供する。「フラグ」フィールドに対して定義されているフラグは、指定された「妥当性確認」PNRP IDがこのホストに登録されていないことを示す、AF_UNKNOWN_ID−0x0001、使用されていないAF_INVALID_SOURCE−0x0002、これもまた使用されていないAF_INVALID_BEST_MATCH−0x0004、RESOLVEに対する応答でのみ有効であり、ホストがビジー状態であるためRESOLVEを受け付けられず、送信側は処理のため別のところに転送しなければならないことを示すAF_REJECT_TOO_BUSY−0x0008、使用されていないAF_REJECT_DEADEND−0x0010、ノードがすでにRESOLVEメッセージを処理しており、ここに送信すべきではなかったことを示すAF_REJECT_LOOP−0x0020、デバッグにのみ使用されるAF_TRACING_ON−0x0040、ノードがRESOLVEメッセージを転送していないが、AUTHORITYメッセージ内に参照アドレスを含めていることを示すAF_REDIRECT−0x0080、MaxHopsが大きすぎると発生する可能性のあるRESOLVEメッセージの妥当性確認失敗を示すAF_INVALID_REQUEST−0x0100、およびValidate PNRP IDとCPAの署名に使用される公開鍵との関係の妥当性確認を可能にする認証連鎖が含まれることを示すAF_CERT_CHAIN−0x8000である。
Validate PNRP IDは、AUTHORITYが送信されるIDを有する。認証連鎖は任意選択である。AF_CERT_CHAINフラグは、それが存在しているかいないかを示す。参照エンドポイントも任意選択である。このフィールドは、RESOLVEメッセージを転送できないが、RESOLVEを送信できた別の送信先ノードを認識しているノードにより使用される。エンドポイントは、RESOLVEの送信先であるピアノードのIPv6アドレスおよびポートを含む。現在、このフィールドは、ノードがシードサーバを介してクラウド分割を検出しようとしているときを除いて無視される。クラシファイアフィールドは、PNRP IDを作成するために使用されるピア名の一部である実際のクラシファイア文字列を含む。AUTHORITY受信は、明示的に肯定応答されない。AUTHORITYは、INQUIREまたはRESOLVEメッセージに対する肯定応答/応答としてのみ送信される。AUTHORITYは、このコンテキストから受信される場合は、破棄されなければならない。好ましい実施形態では、ヘッダ内のMessageTypeは8に設定される。本発明の教示により構築されたAUTHORITYメッセージのデータ構造の詳細を表12に提示した。この表で、Cは符号化された認証連鎖の長さ(バイト)であり、最近DWORD境界に丸められ、Sはクラシファイア文字列の長さ(バイト)である。
Figure 2005004777
AUTHORITYメッセージは、認証連鎖およびクラシファイア文字列を含むため、非常に長い場合がある。ネットワークを介した伝送を円滑にするため、送信時に複数のフラグメントに明示的に分割できる。受信側は、メッセージを処理する前にフラグメントをまとめることができなければならない。メッセージが分割される場合、ヘッダフィールドおよび肯定応答されたヘッダフィールドはそれぞれのフラグメントの中で繰り返される。各フラグメントはさらに、分割コントロール(Sprit Control)フィールドも含む。各フラグメントにおいて、分割コントロールフィールド内のオフセット値が変更され、フラグメントのオフセットが反映される。分割コントロール内のサイズ値は、メッセージ全体のサイズからヘッダ、肯定応答されたヘッダ、および分割コントロールフィールドのサイズを引いた値である。最後を除く各フラグメントは、同じサイズでなければならない。メッセージが分割されない場合、分割コントロールフィールドは任意選択である。
ACKメッセージはPNRPによって使用されるが、PNRPは要求/応答プロトコルだからである。いくつかの状況では、応答の代わりにACKを使用することでプロトコルが簡素化される。ACKは、REQUEST、RESPONSE、およびFLOODメッセージを受信した後常に送信される。他のメッセージは、適切な応答メッセージタイプにより肯定応答される。ACKは、ACKとして働くが、妥当性確認IDがセットされているFLOODの場合には、フラグフィールドをKF_NACK=1に設定することによりNACKとして働く。好ましい実施形態では、ヘッダ内のMessageTypeは9に設定される。本発明の教示により構築されたACKメッセージのデータ構造の詳細を表13に提示した。
Figure 2005004777
REPAIRメッセージが使用されるのは、場合によって、PNRPクラウドに分割が生じる可能性があるためである。このメッセージを使用して、分割のテストを実行し、必要ならばREPAIRを開始する。REPAIRでは、REPAIRを他のキャッシュレベルに伝搬するよう他のノードに要求する。好ましい実施形態では、ヘッダ内のMessageTypeは10に設定される。本発明の教示により構築されたREPAIRメッセージのデータ構造の詳細を表14に提示した。この表から明らかなように、CACHE_LEVELの後にさらに2バイトあり、次のフィールドはDWORD境界に置かれる。
Figure 2005004777
これまでメッセージおよびそのデータ構造について説明してきたが、今度は、そのメッセージを構築するために使用するメッセージ要素に注目する。以下では、PNRPメッセージで送信される構造体のバイトコードを詳述する。断りのない限り、数値はすべてネットワークバイト順で送信され、送信前にテキストはすべてUTF−8で符号化される。これらのメッセージ要素は、説明したばかりのメッセージのビルディングブロックである。基本メッセージ要素はフィールド記述である。各フィールド要素は、メッセージ内の4バイト境界で始まる必要がある。つまり、フィールド間にはギャップがありうるということである。
MESSAGE_FIELD要素は、将来PNRPを容易に拡張できるようにするため使用されるフィールド記述である。メッセージ内のデータの集合毎に、フィールドの型を示す16ビットの「フィールドID」とフィールドに対する16ビットバイトカウントが用意される。本発明の教示により構築されたMESSAGE_FIELD要素のデータ構造の詳細を表15に提示した。
Figure 2005004777
PNRP_HEADER−型0x0010は、すべてのPRNPメッセージの先頭に使用される。プロトコル+バージョンは4バイト識別子であり、受信したメッセージが本当にPNRPを対象としたものかどうかを判別するのに使用される。本発明の教示により構築されたPNRP_HEADER要素のデータ構造の詳細を表16に提示した。
Figure 2005004777
PNRP_HEADERのメッセージIDを使用することで、ノードは、ノードが送信したメッセージに対する応答であると主張する受信メッセージが実際にそのような応答であることを確認できる。例えば、ノードがRESOLVEメッセージを別のノードに送信すると仮定する。この第1のノードは、図4に示されているように、引き換えにAUTHORITYメッセージを受信することを予期する。しかし、オリジナルのRESOLVEに対する応答を追跡またはトレースしないと、受信したAUTHORITYメッセージが正当なものである、あるいはクラウド内の悪意あるノードによるスプーフィングであるという保証はない。RESOLVEメッセージにメッセージIDを含めることにより、AUTHORITYメッセージを生成するノードは、後述のPNRP_HEADER_ACKEDフィールドに、応答の中のこのメッセージIDを含めることができる。
PNRP_HEADER_ACKED−型0x0018は、PNRPメッセージヘッダ全体であり、肯定応答されるメッセージを識別する場合に使用される。本発明の教示により構築されたPNRP_HEADER_ACKED要素のデータ構造の詳細を表17に提示した。
Figure 2005004777
IPV6_ENDPOINT−型0x0021要素が使用されるのは、PNRPがIPv6クラウド内で動作するように指定されているためである。この構造体により、IPv6ネットワークエンドポイントを指定する。進行中のRESOLVEに対しノードが使用できるかどうかを示すために使用されるフラグもある。経路フラグは、アドレスに宛てて送信されたRESOLVEが受理されたか、拒絶されたかを示す場合に使用される。さらに、そのアドレスがそばの近隣ノードのものであった場合、ノードはそのすべてのそばの近隣ノードを知っていなければならないので、疑わしいフラグがセットされる。AddressRemovedインジケータはデバッグ時に使用され、エントリに除去のマークを付けるだけであり、実際には除去しない。これらのインジケータは次のとおりである。
PNRP_FLAGGED_ADDRESS_ACCEPTED−0x01
PNRP_FLAGGED_ADDRESS_REJECTED−0x02
PNRP_FLAGGED_ADDRESS_UNREACHABLE−0x04
PNRP_FLAGGED_ADDRESS_LOOP−0x08
PNRP_FLAGGED_ADDRESS−TOO_BUSY−0x10
PNRP_FLAGGED_ADDRESS_BAD_VALIDATE_ID−0x20
PNRP_FLAGGED_ADDRESS_REMOVED−0x80
PNRP_FLAGGED_SUSPECT_UNREGISTERED_ID−0x40。本発明の教示により構築されたIPV6_ENDPOINT要素のデータ構造の詳細を表18に提示した。
Figure 2005004777
PNRP_ID−型0x0030要素は、128ビットp2p IDと128ビットサービスロケーションとを連結したものである。本発明の教示により構築されたPNRP_ID要素のデータ構造の詳細を表19に提示した。
Figure 2005004777
TARGET_PNRP_ID−型0x0038は、RESOLVE要求またはその対応するRESPONSEのターゲットIDである。本発明の教示により構築されたTARGET_PNRP_ID要素のデータ構造の詳細を表20に提示した。
Figure 2005004777
VALIDATE_PNRP_ID−型0x0039は、妥当性確認およびオーソリティが要求されるPNRP IDである。本発明の教示により構築されたVALIDATE_PNRP_ID要素のデータ構造の詳細を表21に提示した。
Figure 2005004777
FLAGS_FIELD−型0x0040を使用すると、コンテキスト固有の目的のために使用されるビットフィールドであるフラグを識別できる。本発明の教示により構築されたFLAGS_FIELD要素のデータ構造の詳細を表22に提示した。
Figure 2005004777
RESOLVE_CONTROLS−型0x0041フィールドには、RESOLVEまたはRESPONSEを処理する際に使用する情報が含まれる。RESOLVEがバックトラッキングしているか、またはAUTHORITYメッセージが要求されているかを示す場合にフラグを使用する。含まれるフラグは
RF_IGNORE_NEXT_HOP−0x0001、
RF_SEND_CHAIN−0x0004、
デバッグ専用のRF_DONT_REMOVE_PATH_ENTRIES−0x0008、およびデバッグ専用のRF_TRACING_ON−0x0010である。Max Hopsにより、RESOLVE完了前のホップの個数を制限する。オペレーションコードは、照合の実行方法を記述する。一致(Matches)は、任意のコードに対して最上位128ビット(P2P ID)のみであることができるか、またはNEARESTコードについてもサービスロケーションを考慮することができる。またオペレーションコードを使用することで、照合においてRESOLVEの発信元と同じノード上で登録されているIDを考慮すべきか決定する。オペレーションコードには以下のものを含む。
SEARCH_OPCODE_NONE−0、
SEARCH_OPCODE_ANY_PEERNAME−1、
SEARCH_OPCODE_NEAREST_PEERNAME−2、
SEARCH−OPCODE_NEAREST64_PEERNAME−4、
SEARCH_OPCODE_UPPER_BITS−8。Precisionにより、実際のビット数と一致する精度がID上で設定される。この値は、オペレーションコードが
SEARCH_OPCODE_UPPER_BITSの場合に使用される。
理由(Reason)を使用して、RESOLVEが送信されたのは修復プロセスの一部としてなのか、キャッシュの保守のためなのか、登録の一部としてなのか、またはアプリケーション要求のためなのかを示す。理由には、REASON_APP_REQUEST−0、REASON_REGISTRATION−1、REASON_CACHE_MAINTENANCE−2、REASON_REPAIR_DETECTION−3、REASON_SYNC_REQUEST−4、REASON_CPA_VIA_RESOLVE−5、REASON_CPA_VIA_FLOOD−6、REASON_REPAIR−7、およびREASON_CPA_VIA_BACK_FLOOD−8がある。
結果コードは、なぜRESOLVEが完了し、RESPONSEに変換されたかを示す。これは、ホップカウントを超えて成功したかまたは失敗したか、適切な経路が見つからなかったか、または近隣ノードが多すぎてターゲットを見つけるのに失敗したかを示すこともできる。これらの結果コードには、RESULT_NONE−0、RESULT_FOUND_MATCH−1、RESULT_MAX_HOP_LIMIT_HIT−2、RESULT_NO_BETTER_PATH_FOUND−3、およびRESULT_TOO_MANY_MISSES−4がある。要求の発信元はトランザクションIDを使用して、RESPONSEの相関を求める。RESOLVE発信元は、Trans ID値を設定し、RESPONSEを開始するノードは、RESPONSEメッセージで値をそのまま返す。中間ノードで、この値を変えてはならない。本発明の教示により構築されたRESOLVE_CONTROLS要素のデータ構造の詳細を表23に提示した。
Figure 2005004777
CACHE_LEVEL−型0x0042要素は、REPAIRを実行するときに使用するキャッシュレベルを記述する。これは、分割キャッシュの修復を実行する際に使用される。本発明の教示により構築されたCACHE_LEVEL要素のデータ構造の詳細を表24に提示した。
Figure 2005004777
FLOOD_CONTROLS−型0x0043要素には、FLOODを処理する際に使用する情報が含まれる。FLOODが送信された理由が唯一使用されるコードである。本発明の教示により構築されたFLOOD_CONTROLS要素のデータ構造の詳細を表25に提示した。
Figure 2005004777
CPA_SOURCE−型0x0058は、SOLICITメッセージ内の送信元CPAとして使用されるCPAである。CPAは、ネットワーク送信用に符号化される。本発明の教示により構築されたCPA_SOURCE要素のデータ構造の詳細を表26に提示した。
Figure 2005004777
CPA_BEST_MATCH−型0x0059要素は、RESOLVEまたはRESPONSEにおける「最良一致」として使用されるCPAである。CPAは、ネットワーク送信用に符号化される。本発明の教示により構築されたCPA_BEST_MATCH要素のデータ構造の詳細を表27に提示した。
Figure 2005004777
PNRP_ID_ARRAY−型0x0060要素は、配列内に格納されているADVERTISEおよびREQUESTメッセージのPNRP IDを含む。配列サイズを含む、このデータについては後述する。本発明の教示により構築されたPNRP_ID_ARRAY要素のデータ構造の詳細を表28に提示した。
Figure 2005004777
IPV6_ENDPOINT_ARRAY−型0x0071は、すでに訪れたすべてのノードの配列である。フラッディングされたメッセージはさまざまなノードを訪れる。すでに訪れたノードまたは送信先となったノードはそれぞれ、この配列に入れられる。配列サイズを含むデータについては後述する。本発明の教示により構築されたIPV6_ENDPOINT_ARRAY要素のデータ構造の詳細を表29に提示した。
Figure 2005004777
IPV6_REFERRAL_ADDRESS−型0x0072要素は、RESOLVEを送信するための代替アドレスを指定するために特に使用されるIPv6エンドポイントである。このフィールドは、ノード側ではRESOLVEを転送したくないが、他の何らかのノードが試みることができるアドレスを指定したい場合に、AUTHORITYメッセージ内で使用される。本発明の教示により構築されたIPV6_REFERRAL_ADDRESS要素のデータ構造の詳細を表30に提示した。
Figure 2005004777
IPV6_REFERRAL_ID−型0x0073要素は、参照に使用されているPNRP IDを示すためにIPv6_Referral_Addressとともに使用される。本発明の教示により構築されたIPV6_REFERRAL_ID要素のデータ構造の詳細を表31に提示した。
Figure 2005004777
CertChain(CERT_CHAIN)−型0x0080要素は、Windows(登録商標)CAPI APIを使用して作成される。最初に、この連鎖を構成する認証をCAPIメモリ内認証ストア(CAPI in−memory cert store)に入れ、その後、PKCS7符号化認証ストア(PKCS7 encoded cert store)としてエクスポートする。このエクスポートされたストアは、修正されることなく送信される。
WCHAR−型0x0084要素は、単一のUNICODE文字を保持するため定義される。クラシファイアなど、UNICODE配列フィールドの一部としてのみ使用される。
CLASSIFIER−型0x0085要素は、ピア名の基盤として使用されたUNICODEクラシファイア文字列である。これは、WCHAR要素の配列として符号化される。本発明の教示により構築されたCLASSIFIER要素のデータ構造の詳細を表32に提示した。
Figure 2005004777
HASHED_NONCE−型0x0092要素は、ADVERTISEメッセージに含まれる暗号化されたNonce値である。受信側は、Nonceを解読する鍵を持っていることが考えられる。本発明の教示により構築されたHASHED_NONCE要素のデータ構造の詳細を表33に提示した。
Figure 2005004777
NONCE−型0x0093要素は、REQUESTメッセージに含まれる解読されたNonce値である。受信側は、解読されたNonceが暗号化の前に送信された値と一致することを確認することが期待される。本発明の教示により構築されたNONCE要素のデータ構造の詳細を表34に提示した。
Figure 2005004777
SPLIT_CONTROLS−型0x0098要素は、長いメッセージが、単一メッセージではなく、一連のフラグメントとして送信されるときに使用される。各フラグメントには分割コントロールフィールドが含まれており、これにより受信側はメッセージを構築することができる。本発明の教示により構築されたSPLIT_CONTROLS要素のデータ構造の詳細を表35に提示した。
Figure 2005004777
PNRP_TRACE−型0x0099要素は、RESOLVEメッセージとRESPONSEメッセージとの間でホップからホップへ伝達できるデータを保持するためデバッグ時に使用される。トレースするデータを格納するために使用される。最終バージョンのプロトコルではサポートされない場合がある。
本発明のさまざまな実施形態の前記説明は、図の説明と解説を目的として提示した。この説明は網羅的であることを意図しておらず、また本発明を開示した実施形態だけに限る意図もない。上記の教示に照らして、数多くの修正またはバリエーションが可能である。説明した実施形態は、本発明の原理とその実際の応用を最もよく理解できるように選択され、説明されており、したがって、当業者であれば、さまざまな実施形態において、考察されている特定の用途に適したさまざまな修正を加えることにより本発明を利用できるであろう。このようなすべての修正およびバリエーションは、公正で、合法的で、公平な権利を有する範囲において解釈したときに特許請求の範囲により規定されている本発明の範囲に収まる。
本発明が属するコンピュータシステム例の概要を例示するブロック図である。 ピアツーピア名前解決プロトコル(PNRP)の機能要素を例示する簡略化したブロック図である。 本発明の一態様を例示するプロトコルメッセージの流れ図である。 本発明の別の態様を例示するプロトコルメッセージの流れ図である。 本発明のメッセージを構築することができる本発明の拡張可能なデータ構造モデルを例示するデータ構造図である。 本発明のメッセージ例の構築を例示する簡略化したデータ構造図である。
符号の説明
100 コンピューティングシステム環境
110 コンピュータ
120 処理ユニット
121 システムバス
130 システムメモリ
131 ROM
132 RAM
133 基本入出力システム
134 オペレーティングシステム
135 アプリケーションプログラム
136 プログラムモジュール
137 プログラムデータ
141 ハードディスクドライブ
144 オペレーティングシステム
145 アプリケーションプログラム
146 プログラムモジュール
147 プログラムデータ
151 磁気ディスクドライブ
152 取り外し可能な不揮発性磁気ディスク
155 光ディスクドライブ
156 取り外し可能な不揮発性光ディスク
160 ユーザ入力インターフェース
161 ポインティングデバイス
162 キーボード
170 アダプタ
171 ローカルエリアネットワーク(LAN)
173 ワイドエリアネットワーク(WAN)
180 リモートコンピュータ
181 メモリ記憶デバイス
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
200 サービス管理コンポーネント
202 RPCサーバおよびスタブ
206 キャッシュマネージャ
208 プロトコルマネージャ
212 ノードA
214 ノードB
216 SOLICITメッセージ
218 ADVERTISEメッセージ
220 REQUESTメッセージ
222 ACK
224 FLOODメッセージ
226 ACK
228 ノードA
230 ノードB
232 ノードT
234 RESOLVEメッセージ
236 RESOLVEメッセージ
238 AUTHORITY
242 AUTHORITYメッセージ
244 REPONSEメッセージ
246 ACK
260 基本メッセージデータ構造
262 フィールド
264 フィールドデータ構造
266 型コンポーネント
268 長さコンポーネント
270 実際の内容またはペイロード
272 長さ
280 RESOLVEメッセージ
294 PNRP_HEADERデータ構造
296 フィールドID
298 長さ
300 プロトコルコンポーネント
302 メジャーバージョンコンポーネント
304 マイナーバージョンコンポーネント
306 メッセージタイプコンポーネント
308 メッセージIDコンポーネント
310 フィールドデータ構造
312 フィールドID
314 長さコンポーネント
316 P2P IDコンポーネント
318 サービスロケーションコンポーネント

Claims (100)

  1. ピアツーピア名前解決プロトコル(PNRP)で使用するデータ構造を格納したコンピュータ可読媒体であって、
    第1のメッセージ要素が格納されている第1のメッセージフィールドと、
    第2のメッセージ要素が格納されている少なくとも第2のメッセージフィールドとを備え、
    各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とするコンピュータ可読媒体。
  2. メッセージ要素がそれぞれ格納されている複数のメッセージフィールドをさらに備えることを特徴とする請求項1に記載のコンピュータ可読媒体。
  3. 前記第1のメッセージフィールドに格納されている第1のメッセージ要素は、ヘッダメッセージ要素を含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  4. 前記ヘッダメッセージ要素の前記ペイロードは、メッセージタイプをRESOLVE、RESPONSE、SOLICIT、ADVERTISE、REQUEST、FLOOD、INQUIRE、AUTHORITY、ACK、およびREPAIRメッセージのうちの1つであると識別する情報を含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  5. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをRESOLVEメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素は解決コントロールメッセージ要素を含み、前記RESOLVEは、PNRPターゲット識別メッセージ要素を含む第3のメッセージフィールド、妥当性確認PNRP識別メッセージ要素を含む第4のメッセージフィールド、認証ピアアドレス(CPA)最良一致メッセージ要素を含む第5のメッセージフィールド、IPV6エンドポイント配列メッセージ要素を含む第6のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  6. 前記解決コントロールメッセージ要素の前記ペイロードは、コンテキスト固有のフラグのビットフィールド、RESOLVEメッセージが訪れることができるノードの最大数、解決オペレーションを制御するオペレーションコード、一致する精度有効ビット数、RESOLVEを開始する理由を説明する理由コード、応答を返す理由を説明する結果コード、およびトランザクション識別値を含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  7. 前記ターゲットPNRP識別メッセージ要素の前記ペイロードは、ターゲットピアのピア名および広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  8. 前記妥当性確認PNRP識別メッセージ要素の前記ペイロードは、妥当性確認およびオーソリティが要求されたノードのピア名ならびに妥当性確認およびオーソリティが要求されたノードの広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  9. 前記CPA最良一致メッセージ要素の前記ペイロードは符号化されたCPAを含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  10. 前記IPV6エンドポイント配列メッセージ要素の前記ペイロードは、配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびすでに訪れたかまたはRESPONSEメッセージの送信先の各ノードのアドレスの配列を含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  11. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをRESPONSEメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素は解決コントロールメッセージ要素を含み、前記RESPONSEメッセージは、解決コントロールメッセージ要素を含む第3のメッセージフィールド、ターゲットPNRP IDメッセージ要素を含む第4のメッセージフィールド、CPA最良一致メッセージ要素を含む第5のメッセージフィールド、IPV6エンドポイント配列メッセージ要素をさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  12. 前記解決コントロールメッセージ要素の前記ペイロードは、コンテキスト固有のフラグのビットフィールド、RESOLVEメッセージが訪れることができるノードの最大数、解決オペレーションを制御するオペレーションコード、一致する精度有効ビット数、RESOLVEを開始する理由を説明する理由コード、応答を返す理由を説明する結果コード、およびトランザクション識別値を含むことを特徴とする請求項11に記載のコンピュータ可読媒体。
  13. 前記ターゲットPNRP識別メッセージ要素の前記ペイロードは、ターゲットピアのピア名および広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項11に記載のコンピュータ可読媒体。
  14. 前記CPA最良一致メッセージ要素の前記ペイロードは符号化されたCPAを含むことを特徴とする請求項11に記載のコンピュータ可読媒体。
  15. 前記IPV6エンドポイント配列メッセージ要素の前記ペイロードは、配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびすでに訪れたかまたはRESPONSEメッセージの送信先の各ノードのアドレスの配列を含むことを特徴とする請求項11に記載のコンピュータ可読媒体。
  16. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをSOLICITメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はCPA送信元メッセージ要素を含み、前記SOLICITメッセージは、ハッシュされたnonceメッセージ要素を含む第3のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  17. 前記CPA送信元メッセージ要素の前記ペイロードは符号化された送信元CPAを含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
  18. 前記ハッシュされたnonceメッセージ要素の前記ペイロードは符号化されたnonce値を含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
  19. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをADVERTISEメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はPNRPヘッダ肯定応答メッセージ要素を含み、前記ADVERTISEメッセージは、PNRP ID配列メッセージ要素を含む第3のメッセージフィールド、およびハッシュされたnonceメッセージ要素を含む第4のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  20. 前記PNRPヘッダ肯定応答メッセージ要素の前記ペイロードは肯定応答されているメッセージのメッセージ識別を含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
  21. 前記PNRP ID配列メッセージ要素の前記ペイロードは、PNRP ID配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびPNRP IDの配列を含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
  22. 前記ハッシュされたnonceメッセージ要素の前記ペイロードは符号化されたnonce値を含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
  23. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをREQUESTメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はnonceメッセージ要素を含み、前記REQUESTメッセージは、PNRP ID配列メッセージ要素を含む第3のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  24. 前記nonceメッセージ要素の前記ペイロードは暗号解読されたnonce値を含むことを特徴とする請求項23に記載のコンピュータ可読媒体。
  25. 前記PNRP ID配列メッセージ要素の前記ペイロードは、PNRP ID配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびPNRP IDの配列を含むことを特徴とする請求項23に記載のコンピュータ可読媒体。
  26. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをFLOODメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はフラッドコントロールメッセージ要素を含み、前記FLOODメッセージは、CPA最良一致メッセージ要素を含む第3のメッセージフィールド、およびIPV6エンドポイント配列メッセージ要素を含む第4のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  27. 前記フラッドコントロールメッセージ要素の前記ペイロードはコンテキスト固有のフラグに対するビットフィールドおよびFLOODメッセージを開始する理由を説明する理由コードを含むことを特徴とする請求項26に記載のコンピュータ可読媒体。
  28. 前記CPA最良一致メッセージ要素の前記ペイロードは符号化されたCPAを含むことを特徴とする請求項26に記載のコンピュータ可読媒体。
  29. 前記IPV6エンドポイント配列メッセージ要素の前記ペイロードは、配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびすでに訪れたかまたはRESPONSEメッセージの送信先の各ノードのアドレスの配列を含むことを特徴とする請求項26に記載のコンピュータ可読媒体。
  30. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをINQUIREメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はフラグフィールドメッセージ要素を含み、前記INQUIREメッセージは、妥当性確認PNRP識別メッセージ要素を含む第3のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  31. 前記フラグフィールドメッセージ要素の前記ペイロードはコンテキスト固有のフラグのビットフィールドを含むことを特徴とする請求項30に記載のコンピュータ可読媒体。
  32. 前記妥当性確認PNRP識別メッセージ要素の前記ペイロードは、妥当性確認およびオーソリティが要求されたノードのピア名ならびに妥当性確認およびオーソリティが要求されたノードの広告されたサービスアドレスから導かれたサービスロケーションのハッシュを含むことを特徴とする請求項30に記載のコンピュータ可読媒体。
  33. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをAUTHORITYメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はPNRPヘッダ肯定応答メッセージ要素を含み、前記AUTHORITYメッセージは、分割コントロールメッセージ要素を含む第3のメッセージフィールド、フラグフィールドメッセージ要素を含む第4のメッセージフィールド、妥当性確認PNRP IDメッセージ要素を含む第5のメッセージフィールド、認証連鎖メッセージ要素を含む第6のメッセージフィールド、IPV6参照アドレスメッセージ要素を含む第7のメッセージフィールド、IPV6参照識別メッセージ要素を含む第8のメッセージフィールド、およびクラシファイアメッセージ要素を含む第9のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  34. 前記PNRPヘッダ肯定応答メッセージ要素の前記ペイロードは肯定応答されているメッセージのメッセージ識別を含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  35. 前記分割コントロールメッセージ要素の前記ペイロードはフラグメント化のサイズおよび前記フラグメント化のオフセットの情報を含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  36. 前記フラグフィールドメッセージ要素の前記ペイロードはコンテキスト固有のフラグのビットフィールドを含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  37. 前記妥当性確認PNRP識別メッセージ要素の前記ペイロードは、妥当性確認およびオーソリティが要求されたノードのピア名ならびに妥当性確認およびオーソリティが要求されたノードの広告されたサービスアドレスから導かれたサービスロケーションのハッシュを含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  38. 前記認証連鎖メッセージ要素の前記ペイロードはPKCS7符号化認証ストアを含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  39. 前記IPV6参照アドレスメッセージ要素の前記ペイロードはノードエンドポイントの経路フラグ、IPプロトコル番号、IPV6ポート、および代替ノードのアドレスとしてのIPV6アドレスを含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  40. 前記IPV6参照識別メッセージ要素の前記ペイロードは、参照先のノードに対するピア名およびサービスロケーションのハッシュを含むことを特徴とする請求項33に記載のコンピュータ可読媒体。
  41. 前記クラシファイアメッセージ要素の前記ペイロードは、ピア名の基盤として使用されたUnicodeのクラシファイア文字列を含み、前記文字列はアドレス配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびUnicode文字の配列を含むWCHAR要素の配列として符号化されることを特徴とする請求項33に記載のコンピュータ可読媒体。
  42. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをACKメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はPNRPヘッダ肯定応答メッセージ要素を含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  43. 前記PNRPヘッダ肯定応答メッセージ要素の前記ペイロードは肯定応答されているメッセージのメッセージ識別を含むことを特徴とする請求項42に記載のコンピュータ可読媒体。
  44. 前記ヘッダメッセージ要素の前記ペイロードはメッセージタイプをREPAIRメッセージであると識別する情報を含み、前記第2のフィールドに格納されている前記第2のメッセージ要素はターゲットPNRP識別メッセージ要素を含み、前記REPAIRメッセージは、キャッシュレベルメッセージ要素を含む第3のメッセージフィールド、およびIPV6エンドポイントメッセージ要素を含む第4のメッセージフィールドをさらに含むことを特徴とする請求項3に記載のコンピュータ可読媒体。
  45. 前記ターゲットPNRP識別メッセージ要素の前記ペイロードは、ターゲットピアのピア名および広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項44に記載のコンピュータ可読媒体。
  46. 前記キャッシュレベルメッセージ要素の前記ペイロードは修復を実行するときに使用するキャッシュレベルを識別するキャッシュレベル番号を含むことを特徴とする請求項44に記載のコンピュータ可読媒体。
  47. 前記ヘッダメッセージ要素の前記ペイロードは、特定のメッセージへの応答を追跡できるようにする前記特定のメッセージを識別する情報をさらに含むことを特徴とする請求項4に記載のコンピュータ可読媒体。
  48. 前記長さフィールドは、前記フィールド識別フィールドの長さ、前記長さフィールド、およびペイロードを含む、前記メッセージ要素の長さを識別する情報を含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  49. ピアツーピア名前解決プロトコル(PNRP)で使用するRESOLVEメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    解決コントロールメッセージ要素を有する第2のメッセージフィールドと、
    PNRPターゲット識別メッセージ要素を有する第3のメッセージフィールドと、
    妥当性確認PNRP識別メッセージ要素を有する第4のメッセージフィールドと、
    認証ピアアドレス(CPA)最良一致メッセージ要素を有する第5のメッセージフィールドと、
    IPV6エンドポイント配列メッセージ要素を有する第6のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  50. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項49に記載のコンピュータ可読媒体。
  51. 前記解決コントロールメッセージ要素の前記ペイロードは、コンテキスト固有のフラグのビットフィールド、RESOLVEメッセージが訪れることができるノードの最大数、解決オペレーションを制御するオペレーションコード、一致する精度有効ビット数、RESOLVEを開始する理由を説明する理由コード、応答を返す理由を説明する結果コード、およびトランザクション識別値を含むことを特徴とする請求項50に記載のコンピュータ可読媒体。
  52. 前記ターゲットPNRP識別メッセージ要素の前記ペイロードは、ターゲットピアのピア名および広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項50に記載のコンピュータ可読媒体。
  53. 前記妥当性確認PNRP識別メッセージ要素の前記ペイロードは、妥当性確認およびオーソリティが要求されたノードのピア名ならびに妥当性確認およびオーソリティが要求されたノードの広告されたサービスアドレスから導かれたサービスロケーションのハッシュを含むことを特徴とする請求項50に記載のコンピュータ可読媒体。
  54. 前記CPA最良一致メッセージ要素の前記ペイロードは符号化されたCPAを含むことを特徴とする請求項50に記載のコンピュータ可読媒体。
  55. 前記IPV6エンドポイント配列メッセージ要素の前記ペイロードは、配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびすでに訪れたかまたはRESPONSEメッセージの送信先の各ノードのアドレスの配列を含むことを特徴とする請求項50に記載のコンピュータ可読媒体。
  56. ピアツーピア名前解決プロトコル(PNRP)で使用するRESPONSEメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    解決コントロールメッセージ要素を有する第2のメッセージフィールドと、
    解決コントロールメッセージ要素を有する第3のメッセージフィールドと、
    ターゲットPNRP IDメッセージ要素を有する第4のメッセージフィールドと、
    認証ピアアドレス(CPA)最良一致メッセージ要素を有する第5のメッセージフィールドと、
    IPV6エンドポイント配列メッセージ要素を有する第6のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  57. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項56に記載のコンピュータ可読媒体。
  58. 前記解決コントロールメッセージ要素の前記ペイロードは、コンテキスト固有のフラグのビットフィールド、RESOLVEメッセージが訪れることができるノードの最大数、解決オペレーションを制御するオペレーションコード、一致する精度有効ビット数、RESOLVEを開始する理由を説明する理由コード、応答を返す理由を説明する結果コード、およびトランザクション識別値を含むことを特徴とする請求項57に記載のコンピュータ可読媒体。
  59. 前記ターゲットPNRP識別メッセージ要素の前記ペイロードは、ターゲットピアのピア名および広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項57に記載のコンピュータ可読媒体。
  60. 前記CPA最良一致メッセージ要素の前記ペイロードは符号化されたCPAを含むことを特徴とする請求項57に記載のコンピュータ可読媒体。
  61. 前記IPV6エンドポイント配列メッセージ要素の前記ペイロードは、配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびすでに訪れたかまたはRESPONSEメッセージの送信先の各ノードのアドレスの配列を含むことを特徴とする請求項57に記載のコンピュータ可読媒体。
  62. ピアツーピア名前解決プロトコル(PNRP)で使用するSOLICITメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    CPA送信元メッセージ要素を有する第2のメッセージフィールドと、
    ハッシュされたnonceメッセージ要素を有する第3のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  63. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項62に記載のコンピュータ可読媒体。
  64. 前記CPA送信元メッセージ要素の前記ペイロードは符号化された送信元CPAを含むことを特徴とする請求項63に記載のコンピュータ可読媒体。
  65. 前記ハッシュされたnonceメッセージ要素の前記ペイロードは符号化されたnonce値を含むことを特徴とする請求項63に記載のコンピュータ可読媒体。
  66. ピアツーピア名前解決プロトコル(PNRP)で使用するADVERTISEメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    PNRPヘッダ肯定応答メッセージ要素を有する第2のメッセージフィールドと、
    PNRP ID配列メッセージ要素を有する第3のメッセージフィールドと、
    ハッシュされたnonceメッセージ要素を有する第4のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  67. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項66に記載のコンピュータ可読媒体。
  68. 前記PNRPヘッダ肯定応答メッセージ要素の前記ペイロードは肯定応答されているメッセージのメッセージ識別を含むことを特徴とする請求項67に記載のコンピュータ可読媒体。
  69. 前記PNRP ID配列メッセージ要素の前記ペイロードは、PNRP ID配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびPNRP IDの配列を含むことを特徴とする請求項67に記載のコンピュータ可読媒体。
  70. 前記ハッシュされたnonceメッセージ要素の前記ペイロードは符号化されたnonce値を含むことを特徴とする請求項67に記載のコンピュータ可読媒体。
  71. ピアツーピア名前解決プロトコル(PNRP)で使用するREQUESTメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    nonceメッセージ要素を有する第2のメッセージフィールドと、
    PNRP ID配列メッセージ要素を有する第3のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  72. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項71に記載のコンピュータ可読媒体。
  73. 前記nonceメッセージ要素の前記ペイロードは暗号解読されたnonce値を含むことを特徴とする請求項72に記載のコンピュータ可読媒体。
  74. 前記PNRP ID配列メッセージ要素の前記ペイロードは、PNRP ID配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびPNRP IDの配列を含むことを特徴とする請求項72に記載のコンピュータ可読媒体。
  75. ピアツーピア名前解決プロトコル(PNRP)で使用するFLOODメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    フラッドコントロールメッセージ要素を有する第2のメッセージフィールドと、
    CPA最良一致メッセージ要素を有する第3のメッセージフィールドと、
    IPV6エンドポイント配列メッセージ要素を有する第4のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  76. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項75に記載のコンピュータ可読媒体。
  77. 前記フラッドコントロールメッセージ要素の前記ペイロードはコンテキスト固有のフラグに対するビットフィールドおよびFLOODメッセージを開始する理由を説明する理由コードを含むことを特徴とする請求項76に記載のコンピュータ可読媒体。
  78. 前記CPA最良一致メッセージ要素の前記ペイロードは符号化されたCPAを含むことを特徴とする請求項76に記載のコンピュータ可読媒体。
  79. 前記IPV6エンドポイント配列メッセージ要素の前記ペイロードは、配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびすでに訪れたかまたはRESPONSEメッセージの送信先の各ノードのアドレスの配列を含むことを特徴とする請求項76に記載のコンピュータ可読媒体。
  80. ピアツーピア名前解決プロトコル(PNRP)で使用するINQUIREメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    フラグフィールドメッセージ要素を有する第2のメッセージフィールドと、
    妥当性確認PNRP識別メッセージ要素を有する第3のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  81. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項80に記載のコンピュータ可読媒体。
  82. 前記フラグフィールドメッセージ要素の前記ペイロードはコンテキスト固有のフラグのビットフィールドを含むことを特徴とする請求項81に記載のコンピュータ可読媒体。
  83. 前記妥当性確認PNRP識別メッセージ要素の前記ペイロードは、妥当性確認およびオーソリティが要求されたノードのピア名ならびに妥当性確認およびオーソリティが要求されたノードの広告されたサービスアドレスから導かれたサービスロケーションのハッシュを含むことを特徴とする請求項81に記載のコンピュータ可読媒体。
  84. ピアツーピア名前解決プロトコル(PNRP)で使用するRESOLVEメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    PNRPヘッダ肯定応答メッセージ要素を有する第2のメッセージフィールドと、
    分割コントロールメッセージ要素を有する第3のメッセージフィールドと、
    フラグフィールドメッセージ要素を有する第4のメッセージフィールドと、
    妥当性確認PNRP IDメッセージ要素を有する第5のメッセージフィールドと、
    認証連鎖メッセージ要素を有する第6のメッセージフィールドと、
    IPV6参照アドレスメッセージ要素を有する第7のメッセージフィールドと、
    IPV6参照識別メッセージ要素を有する第8のメッセージフィールドと、
    クラシファイアメッセージ要素を有する第9のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  85. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項84に記載のコンピュータ可読媒体。
  86. 前記PNRPヘッダ肯定応答メッセージ要素の前記ペイロードは肯定応答されているメッセージのメッセージ識別を含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  87. 前記分割コントロールメッセージ要素の前記ペイロードはフラグメント化のサイズおよび前記フラグメント化のオフセットの情報を含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  88. 前記フラグフィールドメッセージ要素の前記ペイロードはコンテキスト固有のフラグのビットフィールドを含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  89. 前記妥当性確認PNRP識別メッセージ要素の前記ペイロードは、妥当性確認およびオーソリティが要求されたノードのピア名ならびに妥当性確認およびオーソリティが要求されたノードの広告されたサービスアドレスから導かれたサービスロケーションのハッシュを含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  90. 前記認証連鎖メッセージ要素の前記ペイロードはPKCS7符号化認証ストアを含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  91. 前記IPV6参照アドレスメッセージ要素の前記ペイロードはノードエンドポイントの経路フラグ、IPプロトコル番号、IPV6ポート、および代替ノードのアドレスとしてのIPV6アドレスを含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  92. 前記IPV6参照識別メッセージ要素の前記ペイロードは、参照先のノードに対するピア名およびサービスロケーションのハッシュを含むことを特徴とする請求項85に記載のコンピュータ可読媒体。
  93. 前記クラシファイアメッセージ要素の前記ペイロードは、ピア名の基盤として使用されたUnicodeのクラシファイア文字列を含み、前記文字列はアドレス配列内のエントリの個数、前記配列の全長、それぞれの配列エントリの型の識別子、各配列要素の長さ、およびUnicode文字の配列を含むWCHAR要素の配列として符号化されることを特徴とする請求項85に記載のコンピュータ可読媒体。
  94. ピアツーピア名前解決プロトコル(PNRP)で使用するACKメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    PNRPヘッダ肯定応答メッセージ要素を有する第2のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  95. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項94に記載のコンピュータ可読媒体。
  96. 前記PNRPヘッダ肯定応答メッセージ要素の前記ペイロードは肯定応答されているメッセージのメッセージ識別を含むことを特徴とする請求項95に記載のコンピュータ可読媒体。
  97. ピアツーピア名前解決プロトコル(PNRP)で使用するREPAIRメッセージデータ構造を格納したコンピュータ可読媒体であって、
    PNRPヘッダメッセージ要素を有する第1のメッセージフィールドと、
    ターゲットPNRP識別メッセージ要素を有する第2のメッセージフィールドと、
    キャッシュレベルメッセージ要素を有する第3のメッセージフィールドと、
    IPV6エンドポイントメッセージ要素を有する第4のメッセージフィールドとを含むことを特徴とするコンピュータ可読媒体。
  98. 各メッセージ要素はフィールド識別フィールド、長さフィールド、およびペイロードを含むメッセージ要素データ構造を含むことを特徴とする請求項97に記載のコンピュータ可読媒体。
  99. 前記ターゲットPNRP識別メッセージ要素の前記ペイロードは、ターゲットピアのピア名および広告されたサービスアドレスから導かれるサービスロケーションのハッシュを含むことを特徴とする請求項98に記載のコンピュータ可読媒体。
  100. 前記キャッシュレベルメッセージ要素の前記ペイロードは修復を実行するときに使用するキャッシュレベルを識別するキャッシュレベル番号を含むことを特徴とする請求項98に記載のコンピュータ可読媒体。

JP2004176212A 2003-06-13 2004-06-14 ピアツーピア名前解決ワイヤプロトコルで使用するデータ構造を格納したコンピュータ可読媒体 Expired - Fee Related JP4786882B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/461,940 2003-06-13
US10/461,940 US7533184B2 (en) 2003-06-13 2003-06-13 Peer-to-peer name resolution wire protocol and message format data structure for use therein

Publications (3)

Publication Number Publication Date
JP2005004777A true JP2005004777A (ja) 2005-01-06
JP2005004777A5 JP2005004777A5 (ja) 2008-03-13
JP4786882B2 JP4786882B2 (ja) 2011-10-05

Family

ID=33299879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004176212A Expired - Fee Related JP4786882B2 (ja) 2003-06-13 2004-06-14 ピアツーピア名前解決ワイヤプロトコルで使用するデータ構造を格納したコンピュータ可読媒体

Country Status (14)

Country Link
US (1) US7533184B2 (ja)
EP (2) EP1487180B1 (ja)
JP (1) JP4786882B2 (ja)
KR (1) KR101021360B1 (ja)
CN (1) CN1574840B (ja)
AU (1) AU2004202255B8 (ja)
BR (1) BRPI0401924A (ja)
CA (1) CA2465997C (ja)
HK (1) HK1071252A1 (ja)
MX (1) MXPA04005718A (ja)
MY (1) MY140075A (ja)
RU (1) RU2385488C2 (ja)
TW (2) TWI379548B (ja)
ZA (1) ZA200403431B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006319909A (ja) * 2005-05-16 2006-11-24 Konica Minolta Holdings Inc データ通信の方法、ピアツーピア型のネットワーク、および情報処理装置
JP2016501463A (ja) * 2012-11-12 2016-01-18 アルカテル−ルーセント 管理アクションが仮想シャーシの分割をトリガーするという警告を発行するかどうかが決定される、ネットワークノード、および仮想シャーシシステム内で動作可能であるノードにおける方法

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
WO2003015341A2 (en) * 2001-08-04 2003-02-20 Kontiki, Inc. Method and apparatus for facilitating secure distributed content delivery across a computer network
US20040267875A1 (en) * 2003-06-30 2004-12-30 Hennessey Wade L. Method and apparatus for establishing peering rules for distributed content delivery
US7450524B2 (en) * 2003-06-30 2008-11-11 Kontiki, Inc. Method and apparatus for determining network topology in a peer-to-peer network
WO2005022397A1 (en) * 2003-08-28 2005-03-10 Trihedron Co., Ltd. Method of data synchronization in multiplayer network games
US20050149732A1 (en) * 2004-01-07 2005-07-07 Microsoft Corporation Use of static Diffie-Hellman key with IPSec for authentication
US20050193106A1 (en) * 2004-03-01 2005-09-01 University Of Florida Service discovery and delivery for ad-hoc networks
US7747797B2 (en) * 2004-09-28 2010-06-29 Microsoft Corporation Mass storage device with near field communications
US7848332B2 (en) * 2004-11-15 2010-12-07 Cisco Technology, Inc. Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary
EP1834230A1 (en) * 2004-12-30 2007-09-19 Samsung Electronics Co., Ltd. A terminal data format and a communication control system and method using the terminal data format
US7640329B2 (en) * 2005-02-15 2009-12-29 Microsoft Corporation Scaling and extending UPnP v1.0 device discovery using peer groups
US7647394B2 (en) * 2005-02-15 2010-01-12 Microsoft Corporation Scaling UPnP v1.0 device eventing using peer groups
US7543023B2 (en) * 2005-03-15 2009-06-02 Microsoft Corporation Service support framework for peer to peer applications
US7493413B2 (en) * 2005-03-15 2009-02-17 Microsoft Corporation APIS to build peer to peer messaging applications
US7912959B2 (en) * 2005-03-15 2011-03-22 Microsoft Corporation Architecture for building a peer to peer messaging platform
US20060242235A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Presence monitoring in a serverless peer-to-peer system
US8036140B2 (en) * 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US7616594B2 (en) * 2005-04-22 2009-11-10 Microsoft Corporation Wireless device discovery and configuration
US20060239206A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Apparatus and method for network identification among multiple applications
US7603482B2 (en) * 2005-04-22 2009-10-13 Microsoft Corporation DNS compatible PNRP peer name encoding
US7817647B2 (en) * 2005-04-22 2010-10-19 Microsoft Corporation Flower-petal resolutions for PNRP
US7788378B2 (en) * 2005-04-22 2010-08-31 Microsoft Corporation Apparatus and method for community relay node discovery
US7571228B2 (en) * 2005-04-22 2009-08-04 Microsoft Corporation Contact management in a serverless peer-to-peer system
WO2006120530A2 (en) * 2005-05-06 2006-11-16 Nokia Corporation Mechanism to discover 802.21 remote events and information services
US8230221B2 (en) * 2005-08-15 2012-07-24 Telefonaktiebolaget L M Ericsson (Publ) Routing advertisement authentication in fast router discovery
US7594031B2 (en) * 2005-09-15 2009-09-22 Microsoft Corporation Network address selection
US20070073859A1 (en) * 2005-09-29 2007-03-29 Microsoft Corporation Peer name resolution and discovery
US8255546B2 (en) * 2005-09-30 2012-08-28 Microsoft Corporation Peer name resolution protocol simple application program interface
US7797427B2 (en) * 2005-12-13 2010-09-14 Cisco Technology, Inc. System and method for applying a communication feature extension
US8108548B2 (en) * 2005-12-22 2012-01-31 Microsoft Corporation Methodology and system for file replication based on a peergroup
ATE467299T1 (de) * 2005-12-22 2010-05-15 Microsoft Corp Peer-to-peer-nachrichtenformat
US20070204003A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Downloading a file over HTTP from multiple servers
GB0606071D0 (en) * 2006-03-27 2006-05-03 Siemens Ag Indication of dtm handover command
FR2903268A1 (fr) * 2006-06-30 2008-01-04 Thomson Licensing Sas Procede de reception de services audio/video, terminal et systeme correspondants
US8489701B2 (en) * 2007-01-30 2013-07-16 Microsoft Corporation Private virtual LAN spanning a public network for connection of arbitrary hosts
US8982887B2 (en) * 2007-05-18 2015-03-17 International Business Machines Corporation System, method and program for making routing decisions
US9838365B2 (en) * 2007-07-10 2017-12-05 Qualcomm Incorporated Peer to peer identifiers
US20090055346A1 (en) * 2007-08-23 2009-02-26 Yahoo! Inc. Scalable Ticket Generation in a Database System
US7729366B2 (en) * 2007-10-03 2010-06-01 General Instrument Corporation Method, apparatus and system for network mobility of a mobile communication device
US20090116579A1 (en) * 2007-11-02 2009-05-07 Arya Abraham Interprocessor communication link for a load control system
US8429715B2 (en) * 2008-08-08 2013-04-23 Microsoft Corporation Secure resource name resolution using a cache
CA2734953A1 (en) * 2008-09-04 2010-03-11 Trilliant Networks, Inc. A system and method for implementing mesh network communications using a mesh network protocol
EP2338256A4 (en) * 2008-09-17 2012-03-28 Vuze Inc ASSOCIATIVE PREPARATION OF MULTIMEDIA SUBSCRIPTIONS
US9900779B2 (en) * 2008-12-30 2018-02-20 Qualcomm Incorporated Centralized control of peer-to-peer communication
US8228822B2 (en) * 2009-03-03 2012-07-24 Cisco Technology, Inc. Hierarchical flooding among peering overlay networks
US20100293223A1 (en) * 2009-05-18 2010-11-18 Cisco Technology, Inc. Limiting storage messages in peer to peer network
US9325787B2 (en) * 2009-05-18 2016-04-26 Cisco Technology, Inc. Limited broadcast, peering among DHTs, broadcast put of limited content only
US8729814B2 (en) 2009-11-25 2014-05-20 Lutron Electronics Co., Inc. Two-wire analog FET-based dimmer switch
US9083541B1 (en) * 2010-07-29 2015-07-14 Crimson Corporation Retransmitting lost packets for multicast data distribution
US9148390B2 (en) 2010-08-04 2015-09-29 Alcatel Lucent System and method for virtual chassis split prevention
US9781205B2 (en) 2011-09-12 2017-10-03 Microsoft Technology Licensing, Llc Coordination engine for cloud selection
US20140007098A1 (en) * 2011-12-28 2014-01-02 Paul M. Stillwell, Jr. Processor accelerator interface virtualization
KR102005771B1 (ko) 2012-02-24 2019-10-01 삼성전자주식회사 무선 통신 네트워크에서 ip 주소 할당 방법 및 장치
US9130907B2 (en) * 2012-05-01 2015-09-08 Harris Corporation Switch for communicating data in a dynamic computer network
US9444564B2 (en) 2012-05-10 2016-09-13 Qualcomm Incorporated Selectively directing media feeds to a set of target user equipments
US9277013B2 (en) * 2012-05-10 2016-03-01 Qualcomm Incorporated Storing local session data at a user equipment and selectively transmitting group session data to group session targets based on dynamic playback relevance information
US10530684B2 (en) * 2015-05-19 2020-01-07 International Business Machines Corporation Management of unreachable OpenFlow rules
US10452648B1 (en) 2015-12-07 2019-10-22 Gravic, Inc. Method of ensuring transactional integrity of a system that includes a plurality of subsystems, one of which takes an action upon a loss of transactional integrity
US9922074B1 (en) 2015-12-07 2018-03-20 Gravic, Inc. Method of ensuring real-time transaction integrity in the indestructible scalable computing cloud
US10394798B1 (en) 2015-12-07 2019-08-27 Gravic, Inc. Method of ensuring transactional integrity of a system that includes a first subsystem and a second subsystem
US9760598B1 (en) * 2015-12-07 2017-09-12 Gravic, Inc. Method of ensuring real-time transaction integrity in the cloud
US11567818B2 (en) * 2016-04-26 2023-01-31 Akimbo Technologies Inc. Method of detecting faults in a fault tolerant distributed computing network system
EP4030738A1 (en) * 2018-03-16 2022-07-20 Acklio Method and apparatus for processing message data
US11277305B2 (en) * 2019-10-09 2022-03-15 Qualcomm Incorporated Edge discovery techniques in wireless communications systems
CN111010274B (zh) * 2019-12-30 2022-08-12 烽火通信科技股份有限公司 一种安全低开销的SRv6实现方法
US20220294665A1 (en) * 2021-03-09 2022-09-15 Arista Networks, Inc. Packet Forwarding Between Hybrid Tunnel Endpoints

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204748A (ja) * 1990-01-08 1991-09-06 Hitachi Ltd Osi電文組立方式
JP2002335269A (ja) * 2001-04-02 2002-11-22 Microsoft Corp ピアツーピア名前解決プロトコル(pnrp)およびそれと共に使用するためのマルチレベルキャッシュ
US20030056093A1 (en) * 2001-09-19 2003-03-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US20030196060A1 (en) * 2002-04-15 2003-10-16 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586264A (en) 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6269099B1 (en) * 1998-07-01 2001-07-31 3Com Corporation Protocol and method for peer network device discovery
US6898200B1 (en) * 1999-10-29 2005-05-24 Nortel Networks Limited Method for improving signaling efficiency and performing service load balancing in a connection oriented network
US6748420B1 (en) * 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
US7031268B1 (en) * 2000-05-17 2006-04-18 Cisco Technology, Inc. Call optimization in ad-hoc conference calls
JP2001326632A (ja) * 2000-05-17 2001-11-22 Fujitsu Ltd 分散グループ管理システムおよび方法
EP1162794B1 (en) * 2000-06-09 2014-02-26 Broadcom Corporation Gigabit switch with fast filtering processor
US6636854B2 (en) * 2000-12-07 2003-10-21 International Business Machines Corporation Method and system for augmenting web-indexed search engine results with peer-to-peer search results
US6826198B2 (en) * 2000-12-18 2004-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Signaling transport protocol extensions for load balancing and server pool support
US20040213220A1 (en) * 2000-12-28 2004-10-28 Davis Arlin R. Method and device for LAN emulation over infiniband fabrics
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US6985958B2 (en) * 2001-03-14 2006-01-10 Microsoft Corporation Messaging infrastructure for identity-centric data access
US7272636B2 (en) * 2001-04-24 2007-09-18 Sun Microsystems, Inc. Peer group name server
US6961723B2 (en) * 2001-05-04 2005-11-01 Sun Microsystems, Inc. System and method for determining relevancy of query responses in a distributed network search mechanism
US7493363B2 (en) 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7299351B2 (en) * 2001-09-19 2007-11-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US6674459B2 (en) 2001-10-24 2004-01-06 Microsoft Corporation Network conference recording system and method including post-conference processing
US7177929B2 (en) * 2002-03-27 2007-02-13 International Business Machines Corporation Persisting node reputations in transient network communities
US7206862B2 (en) * 2002-04-24 2007-04-17 Microsoft Corporation Method and apparatus for efficiently matching responses to requests previously passed by a network node
US7051102B2 (en) * 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US20040181487A1 (en) 2003-03-10 2004-09-16 Microsoft Corporation Digital media clearing house platform
US7577750B2 (en) 2003-05-23 2009-08-18 Microsoft Corporation Systems and methods for peer-to-peer collaboration to enhance multimedia streaming
US7454465B2 (en) 2004-03-26 2008-11-18 Microsoft Corporation Real-time collaboration and communication in a peer-to-peer networking infrastructure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204748A (ja) * 1990-01-08 1991-09-06 Hitachi Ltd Osi電文組立方式
JP2002335269A (ja) * 2001-04-02 2002-11-22 Microsoft Corp ピアツーピア名前解決プロトコル(pnrp)およびそれと共に使用するためのマルチレベルキャッシュ
US20030056093A1 (en) * 2001-09-19 2003-03-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US20030196060A1 (en) * 2002-04-15 2003-10-16 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006319909A (ja) * 2005-05-16 2006-11-24 Konica Minolta Holdings Inc データ通信の方法、ピアツーピア型のネットワーク、および情報処理装置
JP2016501463A (ja) * 2012-11-12 2016-01-18 アルカテル−ルーセント 管理アクションが仮想シャーシの分割をトリガーするという警告を発行するかどうかが決定される、ネットワークノード、および仮想シャーシシステム内で動作可能であるノードにおける方法

Also Published As

Publication number Publication date
JP4786882B2 (ja) 2011-10-05
CN1574840A (zh) 2005-02-02
HK1071252A1 (en) 2005-07-08
EP1487180B1 (en) 2014-06-04
EP1487180A2 (en) 2004-12-15
MY140075A (en) 2009-11-30
TWI379548B (en) 2012-12-11
KR20040107420A (ko) 2004-12-20
US7533184B2 (en) 2009-05-12
TWI339518B (en) 2011-03-21
TW200843412A (en) 2008-11-01
KR101021360B1 (ko) 2011-03-14
AU2004202255B8 (en) 2010-01-07
CA2465997C (en) 2016-02-23
TW200503475A (en) 2005-01-16
CN1574840B (zh) 2010-07-14
ZA200403431B (en) 2005-07-27
RU2385488C2 (ru) 2010-03-27
RU2004117797A (ru) 2006-01-10
MXPA04005718A (es) 2005-03-23
US20050004916A1 (en) 2005-01-06
AU2004202255A1 (en) 2005-01-06
BRPI0401924A (pt) 2005-01-25
CA2465997A1 (en) 2004-12-13
EP2584764A1 (en) 2013-04-24
EP1487180A3 (en) 2011-08-31
AU2004202255B2 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
JP4786882B2 (ja) ピアツーピア名前解決ワイヤプロトコルで使用するデータ構造を格納したコンピュータ可読媒体
US7051102B2 (en) Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7336623B2 (en) Peer-to-peer cloud-split detection and repair methods
Zapata et al. Securing ad hoc routing protocols
Dineshbabu et al. Prevention of Spoofing Attacks in Wireless Sensor Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110322

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20110325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110325

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees