Condividi tramite


Resolver del peer

Per connettersi a una mesh, un nodo peer necessita dell'indirizzo IP di altri nodi. Gli indirizzi IP si ottengono contattando un servizio resolver, che accetta l'ID della rete e restituisce un elenco di indirizzi corrispondenti ai nodi registrati con quel particolare ID di rete. Il resolver mantiene un elenco di indirizzi registrati, creato facendo in modo che ogni nodo nella mesh venga registrato con il servizio.

È possibile specificare il servizio PeerResolver da utilizzare tramite la proprietà Resolver di NetPeerTcpBinding.

Resolver peer supportati

Il canale peer supporta due tipi di resolver, il protocollo PNRP (Peer Name Resolution Protocol) e i servizi resolver personalizzati.

Per impostazione predefinita, il canale peer utilizza il servizio resolver peer PNRP per l'individuazione di peer e di elementi adiacenti nella rete. Per le situazioni o le piattaforme in cui PNRP non è disponibile o applicabile, Windows Communication Foundation (WCF) fornisce un'alternativa, il servizio di individuazione basato su server CustomPeerResolverService. È possibile definire anche in modo esplicito un servizio resolver personalizzato scrivendo una classe che implementa l'interfaccia IPeerResolverContract.

Protocollo PNRP (Peer Name Resolution Protocol)

PNRP, resolver predefinito di Windows Vista, è un servizio di risoluzione dei nomi distribuito senza server. PNRP può essere utilizzato anche in Windows XP SP2 installando l'Advanced Networking Pack. Due client qualsiasi che eseguono la stessa versione di PNRP possono individuarsi reciprocamente utilizzando questo protocollo, a condizione di soddisfare determinate condizioni, ad esempio il mancato intervento di un firewall aziendale. Si noti che la versione di PNRP fornita con Windows Vista è più recente di quella inclusa nell'Advanced Networking Pack. Verificare l'Area download Microsoft per gli aggiornamenti a PNRP per Windows XP SP2.

Servizi resolver personalizzati

Quando il servizio PNRP non è disponibile o si desidera disporre del controllo completo sulla definizione della rete, è possibile utilizzare un servizio resolver basato su server personalizzato. È possibile definire questo servizio in modo esplicito scrivendo una classe resolver che implementi l'interfaccia IPeerResolverContract o utilizzando l'implementazione predefinita inclusa CustomPeerResolverService.

Nell'implementazione predefinita del servizio, le registrazioni client scadono dopo un determinato periodo di tempo se non vengono esplicitamente aggiornate. I client che utilizzano il servizio resolver devono conoscere il limite superiore della latenza client-server per poter aggiornare correttamente le registrazioni entro il periodo di tempo previsto. Questo implica la scelta di un timeout di aggiornamento appropriato (RefreshInterval) sul servizio resolver. Per ulteriori informazioni, vedere CustomPeerResolverService: registrazioni client.

L'autore dell'applicazione deve prendere in considerazione anche la protezione della connessione tra i client e il servizio resolver personalizzato. A questo scopo è possibile utilizzare impostazioni di sicurezza sulla classe NetTcpBinding utilizzata dai client per contattare il servizio resolver. È necessario specificare credenziali (se utilizzate) sulla classe ChannelFactory utilizzata per creare il canale peer. Queste credenziali vengono passate alla classe ChannelFactory utilizza per creare canali per il resolver personalizzato.

Aa702771.note(it-it,VS.100).gifNota:
Quando si utilizzano reti locali e improvvisate con un resolver personalizzato, è consigliabile che le applicazioni che utilizzano o supportano reti improvvisate e locali rispetto al collegamento includano la logica per la selezione di un solo indirizzo locale rispetto al collegamento da utilizzare per la connessione. Ciò evita la confusione che può essere causata da computer con più indirizzi locali rispetto al collegamento. In conformità a quanto sopra, il canale peer supporta l'utilizzo di un solo indirizzo di collegamento locale alla volta. È possibile specificare questo indirizzo con la proprietà ListenIpAddress sulla classe NetPeerTcpBinding.

Per una dimostrazione sull'implementazione di un resolver personalizzato, vedere Peer Channel Custom Peer Resolver.

Argomenti della sezione

CustomPeerResolverService: registrazioni client

Vedere anche

Concetti

Concetti relativi al canale peer
Protezione del canale peer
Creazione di un'applicazione del canale peer