Publikation och lösning för peer-namn

Publicera ett peer-namn

För att publicera ett nytt PNRP-ID utför en peer följande:

  • Skickar PNRP-publiceringsmeddelanden till cachegrannarna (de peer-datorer som har registrerat PNRP-ID:n på den lägsta nivån i cacheminnet) för att fylla på sina cacheminnen.

  • Väljer slumpmässiga noder i molnet som inte är dess grannar och skickar PNRP-namnmatchningsbegäranden för sitt eget P2P-ID. Den resulterande slutpunktsbestämningsprocessen skapar cacheminnen för slumpmässiga noder i molnet med PNRP-ID:t för publiceringskollegan.

PNRP version 2-noder publicerar inte PNRP-ID:er om de bara löser andra P2P-ID:er. Registervärdet HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PeerNet\PNRP\IPV6-Global\SearchOnly=1 (REG_DWORD typ) anger att peer-datorer endast använder PNRP för namnmatchning, aldrig för namnpublicering. Det här registervärdet kan också konfigureras via grupprincip.

Lösa ett peer-namn

Att hitta andra peer-datorer i ett PNRP-nätverk eller moln är en process som består av två faser:

  1. Slutpunktsbestämning

  2. PNRP-ID-upplösning

I fasen för bestämning av slutpunkten avgör en jämlike som försöker lösa en tjänsts PNRP-ID på en annan dator IPv6-adressen för den fjärranslutna jämliken. Fjärr-peer är den som publicerade, eller är associerad med, PNRP-ID för datorn eller tjänsten.

När du har bekräftat att fjärrslutpunkten har registrerats i PNRP-molnet skickar den begärande peern i PNRP-ID-lösningsfasen en begäran till den peer-slutpunkten för PNRP-ID:t för den önskade tjänsten. Slutpunkten skickar ett svar som bekräftar PNRP-ID:t för tjänsten, en kommentar och upp till 4 kilobyte ytterligare information som den begärande peer kan använda för framtida kommunikation. Om den önskade slutpunkten till exempel är en spelserver kan ytterligare data för peer-namnposten innehålla information om spelet, spelnivån och det aktuella antalet spelare.

I slutpunktsbestämningsfasen använder PNRP en iterativ process för att hitta noden som publicerade PNRP-ID:t, där noden som utför upplösningen ansvarar för att kontakta noder som successivt ligger närmare mål-PNRP-ID:t.

För att utföra namnuppslag i PNRP undersöker peeren posterna i sin egen cache för en post som matchar det målinriktade PNRP-ID:t. Om den hittas skickar noden ett PNRP-begärandemeddelande till den andra noden och väntar på ett svar. Om en post för PNRP-ID:t inte hittas, skickar peeren ett PNRP-begärandemeddelande till den peer som motsvarar den post som har ett PNRP-ID som bäst matchar målets PNRP-ID. Noden som tar emot meddelandet PNRP-begäran undersöker sin egen cache och gör följande:

  • Om PNRP-ID:n hittas svarar den begärda slutpunktpeeren direkt på den begärande peeren.

  • Om PNRP-ID:t inte hittas och ett PNRP-ID i cacheminnet ligger närmare mål-PNRP-ID:t skickar den begärande peeren ett svar till den begärande peeren som innehåller IPv6-adressen till peeren som representerar posten med ett PNRP-ID som bättre matchar mål-PNRP-ID:t. Med hjälp av IP-adressen i svaret skickar den begärande noden ett annat PNRP-begärandemeddelande till IPv6-adressen för att svara eller undersöka dess cacheminne.

  • Om PNRP-ID:t inte hittas och det inte finns något PNRP-ID i cacheminnet som ligger närmare mål-PNRP-ID:t, skickar den begärda peer-peeren ett svar som anger det här villkoret. Den begärande peer väljer sedan det nästnärmaste PNRP-ID:t.

Den begärande peer fortsätter den här processen med efterföljande iterationer och lokaliserar slutligen noden som registrerade PNRP-ID:t.

Inom System.Net.PeerToPeer namnområdet finns det en många-till-många-relation mellan de PeerName poster som innehåller ändpunkter och PNRP-moln eller nät där de kommunicerar. När det finns duplicerade eller inaktuella poster, eller flera noder med samma peer-namn, kan PNRP-noder hämta aktuell information med hjälp av PeerNameResolver klassen. Metoderna PeerNameResolver använder ett enda peer-namn för att förenkla perspektivet till en peer-to-many-peer-namnpost och samma peer till många moln. Detta liknar en fråga som utförs med hjälp av en relationstabellkoppling. När det har slutförts returnerar Resolver-objektet ett PeerNameRecordCollection för det angivna peer-namnet. Ett kamratnamn skulle till exempel förekomma i alla kamratnamnposter i samlingen, ordnade efter molnet. Det här är instanserna av peer-namnet vars tillhörande data kan begäras av ett PNRP-baserat program.

Se även