ピア リゾルバ

メッシュに接続するには、ピア ノードに他のノードの IP アドレスが必要です。IP アドレスを取得するには、リゾルバ サービスにアクセスします。このサービスは、メッシュ ID を受け取り、そのメッシュ ID で登録されているノードに対応するアドレスの一覧を返します。リゾルバは登録されたアドレスのリストを保持します。そのリストには、メッシュ レジスタの各ノードとサービスが含まれます。

使用する PeerResolver サービスは、NetPeerTcpBindingResolver プロパティから指定できます。

サポートされるピア リゾルバ

ピア チャネルは、PNRP (Peer Name Resolution Protocol) サービスとカスタム リゾルバ サービスの 2 種類のリゾルバをサポートします。

既定で、ピア チャネルは PNRP ピア リゾルバ サービスを使用して、メッシュ内のピアと近隣ノードを検出します。PNRP が利用できない、または適切でない状況やプラットフォームでは、別の方法として、サーバー ベースの検索サービスである CustomPeerResolverService が Windows Communication Foundation (WCF) に用意されています。また、IPeerResolverContract インターフェイスを実装するクラスを書き込むと、カスタム リゾルバ サービスを明示的に定義することもできます。

PNRP (Peer Name Resolution Protocol)

PNRP (Windows Vista の既定のリゾルバ) は、分散型でサーバーを使用しない、名前のリゾルバ サービスです。PNRP は、Advanced Networking Pack をインストールすれば Windows XP SP2 でも使用できます。2 つのクライアントが同じバージョンの PNRP を実行している場合、特定の条件 (途中に企業のファイアウォールが存在しないなどの条件) を満たせば、このプロトコルを使用してお互いを検索できます。Windows Vista に付属する PNRP は、Advanced Networking Pack に含まれているバージョンよりも新しいバージョンです。Windows XP SP2 用の PNRP への更新については、Microsoft ダウンロード センターで確認してください。

カスタム リゾルバ サービス

PNRP サービスを利用できない場合、またはメッシュ形状を完全に制御する必要がある場合は、サーバー ベースのカスタム リゾルバ サービスを使用できます。このサービスは、IPeerResolverContract インターフェイスを実装するリゾルバ クラスを記述するか、既定の受信トレイ実装 (CustomPeerResolverService) を使用することで、明示的に定義できます。

サービスの既定の実装では、クライアント登録は、クライアントが明示的に更新しない限り、特定の期間が経過した後に期限切れになります。そこで、リゾルバ サービスを使用するクライアントは、登録を時間内に正常に更新するために、クライアントとサーバー間の待ち時間に上限の概念を設ける必要があります。そのために、リゾルバ サービスに適切な更新タイムアウト (RefreshInterval) を選択します。(詳細については、「CustomPeerResolverService 内部 : クライアント登録」を参照してください)。

アプリケーションを記述する際には、クライアントとカスタム リゾルバ サービス間の接続をセキュリティで保護することも考慮する必要があります。これは、クライアントがリゾルバ サービスへのアクセスに使用する NetTcpBinding のセキュリティ設定を使用することで実現できます。資格情報を使用する場合は、ピア チャネルの作成に使用する ChannelFactory で、それを指定する必要があります。この資格情報は、カスタム リゾルバへのチャネルの作成に使用される ChannelFactory に渡されます。

Aa702771.note(ja-jp,VS.90).gifメモ :
ローカル ネットワークや即席のネットワークでカスタム リゾルバを使用するときは、リンク ローカル ネットワークまたは即席のネットワークを使用またはサポートするアプリケーションに、接続時に使用するリンク ローカル アドレスを 1 つだけ選択するロジックを含めることを強くお勧めします。これにより、複数のリンク ローカル アドレスを持つコンピュータによって発生する可能性のある混乱をすべて回避できます。このロジックに従って、ピア チャネルは、1 度に 1 つのリンク ローカル アドレスを使用することだけをサポートします。このアドレスは、NetPeerTcpBindingListenIpAddress プロパティを使用して指定できます。

カスタム リゾルバを実装する方法の例については、「Peer Channel Custom Peer Resolver」を参照してください。

このセクションの内容

CustomPeerResolverService 内部 : クライアント登録

関連項目

概念

ピア チャネルの概要
ピア チャネルのセキュリティ
ピア チャネル アプリケーションの構築