PeerresolverPeer Resolvers

Um eine Verbindung mit einem Mesh herzustellen, erfordert ein Peerknoten die IP-Adressen anderer Knoten.In order to connect to a mesh, a peer node requires the IP addresses of other nodes. IP-Adressen werden bezogen, indem eine Verbindung zu einem Auflösungsdienst hergestellt wird, der die Netz-ID annimmt und eine Liste von Adressen zurückgibt, die mit dieser bestimmten Netz-ID registrierten Knoten entsprechen.IP addresses are obtained by contacting a resolver service, which takes the mesh ID and returns a list of addresses corresponding to nodes registered with that particular mesh ID. Der Resolver behält eine Liste registrierter Adressen bei, die durch Registrierung jedes Knotens im Mesh mit dem Dienst erstellt wird.The resolver keeps a list of registered addresses, which it creates by having each node in the mesh register with the service.

Mithilfe der Resolver-Eigenschaft der NetPeerTcpBinding können Sie den zu verwendenden PeerResolver-Dienst angeben.You can specify which PeerResolver service to use through the Resolver property of the NetPeerTcpBinding.

Unterstützte PeerresolverSupported Peer Resolvers

Peerkanal unterstützt zwei Arten von Resolvern: Peer Name Resolution-Protokoll (PNRP)-Resolverdienste und benutzerdefinierte Resolverdienste.Peer Channel supports two types of resolvers: Peer Name Resolution Protocol (PNRP), and custom resolver services.

Standardmäßig verwendet Peerkanal den PNRP-Peerresolverdienst, um Peers und Nachbarn im Netz zu ermitteln.By default, Peer Channel uses the PNRP peer resolver service for discovery of peers and neighbors in the mesh. Für Situationen/Plattformen, in denen PNRP nicht verfügbar oder möglich ist, Windows Communication Foundation (WCF) stellt einen alternativen, serverbasierten Ermittlungsdienst - die CustomPeerResolverService.For situations/platforms where PNRP is not available or feasible, Windows Communication Foundation (WCF) provides an alternative, server-based discovery service - the CustomPeerResolverService. Sie können auch explizit einen benutzerdefinierten Resolverdienst definieren. Schreiben Sie hierzu eine Klasse, die die IPeerResolverContract-Schnittstelle implementiert.You can also explicitly define a custom resolver service by writing a class that implements the IPeerResolverContract interface.

Peer Name Resolution-Protokoll (PNRP)Peer Name Resolution Protocol (PNRP)

PNRP, der Standardresolver für Windows VistaWindows Vista, ist ein verteilter, serverloser Namensauflösungsdienst.PNRP, the default resolver for Windows VistaWindows Vista, is a distributed, serverless name resolver service. PNRP kann auch auf Windows XP SP2Windows XP SP2 verwendet werden, indem das Advanced Networking Pack installiert wird.PNRP can also be used on Windows XP SP2Windows XP SP2 by installing the Advanced Networking Pack. Zwei Clients., auf denen die gleiche Version von PNRP ausgeführt wird, können sich mithilfe dieses Protokolls suchen, falls sie bestimmte Voraussetzungen erfüllen (wie das Fehlen einer dazwischen stehenden Unternehmens-Firewall).Any two clients running the same version of PNRP can locate each other using this protocol, provided they meet certain conditions (such as the lack of an intervening corporate firewall). Die mit Windows VistaWindows Vista gelieferte Version von PNRP ist neuer als die im Advanced Networking Pack enthaltene Version.Note that the version of PNRP that ships with Windows VistaWindows Vista is newer than the version included in the Advanced Networking Pack. Suchen Sie im Microsoft Download Center nach Updates auf PNRP für Windows XP SP2Windows XP SP2.Check the Microsoft Download Center for updates to PNRP for Windows XP SP2Windows XP SP2.

Benutzerdefinierte AuflösungsdiensteCustom Resolver Services

Wenn der PNRP-Dienst nicht verfügbar ist oder Sie die vollständige Kontrolle über die Netzstruktur benötigen, können Sie einen benutzerdefinierten, serverbasierten Resolverdienst verwenden.When the PNRP service is unavailable, or you want complete control over mesh shaping, you can use a custom, server-based resolver service. Dieser Dienst kann durch Schreiben einer Resolverklasse, die die IPeerResolverContract-Schnittstelle implementiert, oder durch Verwenden der im Lieferumfang enthaltenen Standardimplementierung CustomPeerResolverService explizit definiert werden.You can explicitly define this service by writing a resolver class implementing the IPeerResolverContract interface, or by using the in-box default implementation, CustomPeerResolverService.

Bei der Standardimplementierung des Dienstes laufen die Clientregistrierungen nach einer bestimmten Zeit ab, wenn der Client die Registrierung nicht explizit aktualisiert.Under the default implementation of the service, client registrations expire after a certain amount of time if the client does not explicitly refresh the registration. Clients, die den Auflösungsdienst verwenden, benötigen eine bestimmte obere Begrenzung für die Client-Server-Wartezeit, um die Registrierung rechtzeitig erfolgreich aktualisieren zu können.Clients using the resolver service must be aware of the upper bound on client-server latency in order to successfully refresh registrations in time. Dies schließt ein, ein entsprechendes Aktualisierungstimeout (RefreshInterval) für den Auflösungsdienst auszuwählen.This involves choosing an appropriate refresh time-out (RefreshInterval) on the resolver service. (Weitere Informationen finden Sie unter in CustomPeerResolverService: Clientregistrierungen.)(For more information, see Inside the CustomPeerResolverService: Client Registrations.)

Auch muss der Anwendungsautor die Sicherung der Verbindung zwischen Clients und dem benutzerdefinierten Resolverdienst berücksichtigen.The application writer must also consider securing the connection between clients and the custom resolver service. Sie können dazu die Sicherheitseinstellungen der NetTcpBinding verwenden, über die Clients eine Verbindung zum Auflösungsdienst herstellen.You may do this by using security settings on the NetTcpBinding that clients use to contact the resolver service. Anmeldeinformationen müssen (sofern verwendet) für die zum Erstellen von Peerkanal verwendete ChannelFactory angegeben werden.You must specify credentials (if used) on the ChannelFactory used to create Peer Channel. Diese Anmeldeinformationen werden an die zum Erstellen von Kanälen für den benutzerdefinierten Resolver verwendete ChannelFactory übergeben.These credentials are passed to the ChannelFactory used to create channels to the custom resolver.

Hinweis

Bei der Verwendung lokaler und provisorischer Netzwerke mit einem benutzerdefinierten Resolver wird dringend empfohlen, dass Anwendungen, die verbindungslokale oder provisorische Netzwerke nutzen oder unterstützen, Logik einfügen, die für das Herstellen einer Verbindung eine einzelne verbindungslokale Adresse auswählt.When using local and impromptu networks with a custom resolver, it is strongly advised that applications using or supporting link-local or impromptu networks include logic that selects a single link-local address to use when connecting. Dadurch werden möglicherweise durch Computer mit mehreren verbindungslokalen Adressen verursachte Probleme verhindert.This prevents any confusion potentially caused by computers with multiple link-local addresses. In Übereinstimmung damit unterstützt Peerkanal nur die Verwendung jeweils einer einzelnen verbindungslokalen Adresse.In accordance with this, Peer Channel only supports using a single link-local address at any one time. Sie können diese Adresse mit der ListenIpAddress-Eigenschaft der NetPeerTcpBinding angeben.You may specify this address with the ListenIpAddress property on the NetPeerTcpBinding.

Zeigt, wie einen benutzerdefinierten Konfliktlöser implementieren, finden Sie unter Peer Channel benutzerdefinierte PeerResolver.For a demonstration of how to implement a custom resolver, see Peer Channel Custom Peer Resolver.

In diesem AbschnittIn This Section

Einblicke in den CustomPeerResolverService: ClientregistrierungenInside the CustomPeerResolverService: Client Registrations

Siehe auchSee Also

PeerkanalbegriffePeer Channel Concepts
PeerkanalsicherheitPeer Channel Security
Erstellen einer PeerkanalanwendungBuilding a Peer Channel Application