ピア名解決プロトコル

ピア名解決プロトコル( PNRP ) は、Microsoftによって設計されたピアツーピアプロトコルです。 PNRP は動的な名前の公開と解決を可能にし、IPv6を必要とします。

PNRPは、2001年11月のP2Pカンファレンスでのプレゼンテーションで初めて言及されました。2003年7月にWindows XPのAdvanced Networking Packに登場し、後にWindows XPのService Pack 2に含まれました。PNRP 2.0はWindows Vistaで導入され、Windows XP Service Pack 2のユーザーはダウンロードできるようになりました。[ 1 ] PNRP 2.1は、 Windows Vista SP1、Windows Server 2008Windows XP SP3に含まれています。PNRP v2は、Windows XP Professional x64 EditionやWindows Server 2003のどのエディションでも利用できません。[ 2 ]

Windows 7Windowsリモートアシスタンスは、 Easy Connectオプションを使用して接続するときにPNRP、Teredo、およびIPv6を使用します。[ 3 ]

PNRP の設計は、2006 年 6 月 20 日に発行された米国特許 #7,065,587 によって保護されています。

PNRP のサポートは、Windows 10バージョン 1909で削除されました。

PNRPサービス

PNRPは、インターネットホストが「ピア名」と対応するIPv6アドレス、そしてオプションでその他の情報を公開することを可能にする分散型名前解決プロトコルです。他のホストはピア名を解決し、対応するアドレスやその他の情報を取得し、ピアツーピア接続を確立することができます。

PNRPでは、ピア名は「権限」と「修飾子」で構成されます。権限は、関連付けられた公開鍵の安全なハッシュによって識別されます。ピア名が「保護されていない」場合は、プレースホルダ(数字の0)によって識別されます。修飾子は文字列であり、これにより、権限はサービスごとに異なるピア名を持つことができます。[ 4 ]

ピア名がセキュアな場合、PNRP名レコードは公開機関によって署名され、公開鍵を使用して検証できます。セキュアでないピア名は、検証なしで誰でも公開できます。

複数のエンティティが同じピア名を公開できます。例えば、ピア名がグループに関連付けられている場合、グループメンバーは誰でもそのピア名のアドレスを公開できます。

ピア名は指定されたスコープ内で公開および解決されます。スコープは、ローカルリンク、サイト(キャンパスなど)、またはインターネット全体のいずれかになります。

PNRPと分散ハッシュテーブル

PNRPは内部的には、 ChordPastryなどの分散ハッシュテーブルシステムに類似したアーキテクチャを採用しています。ピア名はハッシュ化されて128ビットのピア識別子が生成され、DHTに似たアルゴリズムを使用して、その識別子を公開しているホストの位置が取得されます。ただし、いくつか重要な違いもあります。

ChordやPastryなどのDHTシステムは、オブジェクトのインデックス(ハッシュ)を、そのハッシュに最も近い識別子を持つノードに保存し、ルーティングアルゴリズムはそのノードを見つけるように設計されています。一方、PNRPは常に、識別子を公開するノードにハッシュを保存します。したがって、ノードは、公開する識別子の数と同じ数のエントリをルーティングシステムに持つことになります。PNRPの設計は、セキュリティと堅牢性の向上と引き換えに、ルーティングコストの増加を招いていると言えるでしょう。

ほとんどのDHTシステムでは、特定のインデックスを公開するのは1つのノードのみであると想定されています。これに対し、PNRPでは複数のホストが同じ名前を公開できます。内部インデックスは、実際にはピア名の128ビットハッシュと、ノードのIPv6アドレスから得られる128ビットの位置識別子で構成されています。

PNRPはルーティングテーブルではなく、PNRPエントリのキャッシュを使用します。新しいキャッシュエントリは、進行中のトラフィックの副作用として取得されます。キャッシュ維持アルゴリズムにより、各ノードが「クラウド」に関する適切な情報を維持できるようになります。このアルゴリズムは、リクエストの解決時間がクラウドのサイズの対数に比例するように設計されています。

参照

参考文献