Pubblicazione e risoluzione di nomi di peerPeer Name Publication and Resolution

Pubblicazione di un nome di peerPublishing a Peer Name

Per pubblicare un nuovo ID PNRP, un peer esegue le operazioni seguenti:To publish a new PNRP ID, a peer performs the following:

  • Invia i messaggi di pubblicazione PNRP ai suoi vicini di cache (i peer che hanno registrato ID PNRP nel livello più basso della cache) per inizializzare le rispettive cache.Sends PNRP publication messages to its cache neighbors (the peers that have registered PNRP IDs in the lowest level of the cache) to seed their caches.

  • Sceglie casualmente nodi nel cloud che non sono adiacenti e invia loro richieste di risoluzione dei nomi PNRP per il proprio ID P2P.Chooses random nodes in the cloud that are not its neighbors and sends them PNRP name resolution requests for its own P2P ID. Il processo di determinazione dell'endpoint risultante inizializza le cache dei nodi casuali nel cloud con l'ID PNRP del peer di pubblicazione.The resulting endpoint determination process seeds the caches of random nodes in the cloud with the PNRP ID of the publishing peer.

-

I nodi della versione 2 PNRP non pubblicano ID PNRP se stanno solo risolvendo altri ID P2P.PNRP version 2 nodes do not publish PNRP IDs if they are only resolving other P2P IDs. Il valore del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PeerNet\PNRP\IPV6-Global\SearchOnly=1 (tipo REG_DWORD) specifica che i peer possono usare PNRP solo per la risoluzione dei nomi e mai per la pubblicazione dei nomi.The HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PeerNet\PNRP\IPV6-Global\SearchOnly=1 registry value (REG_DWORD type) specifies that peers only use PNRP for name resolution, never for name publication. Questo valore del Registro di sistema può essere configurato anche tramite Criteri di gruppo.This registry value can also be configured through Group Policy.

Risoluzione di un nome di peerResolving a Peer Name

L'individuazione di altri peer in una rete o cloud PNRP è un processo costituito da due fasi:Locating other peers in a PNRP network or cloud is a process comprised of two phases:

  1. Determinazione dell'endpointEndpoint Determination

  2. Risoluzione dell'ID PNRPPNRP ID Resolution

Nella fase di determinazione dell'endpoint peer, un peer che sta tentando di risolvere l'ID PNRP di un servizio in un altro computer determina l'indirizzo IPv6 di tale peer remoto.In the endpoint determination phase, a peer that is attempting to resolve the PNRP ID of a service on another computer determines the IPv6 address of that remote peer. Il peer remoto è quello che ha pubblicato o che è associato all'ID PNRP del computer o del servizio.The remote peer is the one that published, or is associated with, the PNRP ID of the computer or service.

Dopo avere verificato che l'endpoint remoto sia stato registrato nel cloud PNRP, nella fase di risoluzione dell'ID PNRP il peer richiedente invia una richiesta dell'ID PNRP del servizio desiderato a tale endpoint.After confirming that the remote endpoint has been registered into the PNRP cloud, the requesting peer in the PNRP ID resolution phase sends a request to that peer endpoint for the PNRP ID of the desired service. L'endpoint invia una risposta confermando l'ID PNRP del servizio, un commento e fino a 4 kilobyte di informazioni aggiuntive che il peer richiedente può usare per comunicazioni future.The endpoint sends a reply confirming the PNRP ID of the service, a comment, and up to 4 kilobytes of additional information that the requesting peer can use for future communication. Ad esempio, se l'endpoint desiderato è un server di gioco, i dati dei record dei nomi di peer aggiuntivi possono contenere informazioni sul gioco, il livello e il numero attuale di giocatori.For example, if the desired endpoint is a gaming server, the additional peer name record data can contain information about the game, the level of play, and the current number of players.

Nella fase di determinazione dell'endpoint, PNRP usa un processo iterativo per individuare il nodo che ha pubblicato l'ID PNRP. Nel processo, il nodo che esegue la risoluzione ha il compito di contattare in successione i nodi più vicini all'ID PNRP di destinazione.In the endpoint determination phase, PNRP uses an iterative process for locating the node that published the PNRP ID, in which the node performing the resolution is responsible for contacting nodes that are successively closer to the target PNRP ID.

Per eseguire la risoluzione dei nomi in PNRP, il peer esamina le voci nella propria cache per individuare una voce corrispondente all'ID PNRP di destinazione.To perform name resolution in PNRP, the peer examines the entries in its own cache for an entry that matches the target PNRP ID. Se viene trovata, il peer invia un messaggio di richiesta PNRP al peer e attende una risposta.If found, the peer sends a PNRP Request message to the peer and waits for a response. In caso negativo, il peer invia un messaggio di richiesta PNRP al peer che corrisponde alla voce che ha l'ID PNRP che assomiglia di più all'ID PNRP.If an entry for the PNRP ID is not found, the peer sends a PNRP Request message to the peer that corresponds to the entry that has a PNRP ID that most closely matches the target PNRP ID. Il nodo che riceve il messaggio di richiesta PNRP controlla nella sua cache ed esegue le operazioni seguenti:The node that receives the PNRP Request message examines its own cache and does the following:

  • Se trova l'ID PNRP, il peer dell'endpoint richiesto risponde direttamente al peer richiedente.If the PNRP ID is found, the requested endpoint peer replies directly to the requesting peer.

  • Se l'ID PNRP non viene trovato e un ID PNRP nella cache si avvicina di più all'ID PNRP di destinazione, il peer richiesto invia una risposta al peer richiedente contenente l'indirizzo IPv6 del peer che rappresenta la voce con un ID PNRP più simile all'ID PNRP di destinazione.If the PNRP ID is not found and a PNRP ID in the cache is closer to the target PNRP ID, the requested peer sends a response to the requesting peer containing the IPv6 address of the peer that represents the entry with a PNRP ID that more closely matches the target PNRP ID. Usando l'indirizzo IP nella risposta, il nodo richiedente invia un altro messaggio di richiesta PNRP all'indirizzo IPv6 per rispondere o esaminarne la cache.Using the IP address in the response, the requesting node sends another PNRP Request message to the IPv6 address to respond or examine its cache.

  • Se non trova l'ID PNRP e se nella sua cache non è presente alcun ID PNRP più simile a quello di destinazione, il peer che ha ricevuto la richiesta invia al richiedente una risposta con la situazione accertata.If the PNRP ID is not found and there is no PNRP ID in its cache that is closer to the target PNRP ID, the requested peer sends the requesting peer a response that indicates this condition. Il peer richiedente sceglie quindi il secondo ID PNRP più vicino.The requesting peer then chooses the next-closest PNRP ID.

-

Il peer richiedente continua questo processo con iterazioni successive, fino a individuare il nodo che ha registrato l'ID PNRP.The requesting peer continues this process with successive iterations, eventually locating the node that registered the PNRP ID.

All'interno dello spazio dei nomi System.Net.PeerToPeer esiste una relazione molti-a-molti tra i record PeerName che contengono gli endpoint e i cloud o le reti PNRP in cui comunicano.Within the System.Net.PeerToPeer namespace, there is a many-to-many relationship between the PeerName records that contain endpoints and PNRP clouds or meshes in which they communicate. In presenza di voci duplicate o non aggiornate o di più nodi con lo stesso nome di peer, i nodi PNRP possono ottenere informazioni aggiornate usando la classe PeerNameResolver.When there are duplicate or stale entries, or multiple nodes with the same peer name, PNRP nodes can obtain current information using the PeerNameResolver class. I metodi PeerNameResolver usano un singolo nome di peer per semplificare la prospettiva per i record dei nomi uno-a-molti per i peer e uno-a-molti per i cloud.The PeerNameResolver methods use a single peer name to simplify the perspective to one peer-to-many peer name records and the same one peer to many clouds. Il meccanismo è simile all'esecuzione di una query tramite un join su una tabella relazionale.This is similar to a query performed using a relational-table join. Al completamento, l'oggetto Resolver restituisce un PeerNameRecordCollection per il nome di peer specificato.Upon successful completion, the Resolver object returns a PeerNameRecordCollection for the specified peer name. Ad esempio, un nome di peer comparirebbe in tutti i record di nomi di peer della raccolta, ordinati in base al cloud.For example, a peer name would occur in all the peer name records in the collection, ordered by cloud. Queste sono le istanze del nome di peer i cui dati di supporto potrebbero essere richiesti da un'applicazione basata sul protocollo PNRP.These are the instances of the peer name whose supporting data may be requested by a PNRP-based application.

Vedere ancheSee Also

System.Net.PeerToPeer