피어 이름을 게시하다
새 PNRP ID를 게시하기 위해 피어는 다음을 수행합니다.
PNRP 게시 메시지를 해당 캐시 이웃(캐시의 가장 낮은 수준에서 PNRP ID를 등록한 피어)에 보내 캐시를 초기화합니다.
클라우드에서 인접 노드가 아닌 임의 노드를 선택하고 자체 P2P ID에 대한 PNRP 이름 확인 요청을 보냅니다. 결과적으로 생성된 엔드포인트 결정 프로세스는 게시 피어의 PNRP ID를 사용하여 클라우드 내 임의 노드들의 캐시를 초기화합니다.
PNRP 버전 2 노드는 다른 P2P ID만 확인하는 경우 PNRP ID를 게시하지 않습니다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PeerNet\PNRP\IPV6-Global\SearchOnly=1 레지스트리 값(REG_DWORD 형식)은 피어가 이름 확인을 위해 PNRP만 사용하고 이름 게시에는 사용하지 않도록 지정합니다. 이 레지스트리 값은 그룹 정책을 통해 구성할 수도 있습니다.
피어 이름 확인
PNRP 네트워크 또는 클라우드에서 다른 피어를 찾는 프로세스는 다음 두 단계로 구성됩니다.
엔드포인트 결정
PNRP ID 확인
엔드포인트 결정 단계에서 다른 컴퓨터에서 서비스의 PNRP ID를 확인하려는 피어는 해당 원격 피어의 IPv6 주소를 결정합니다. 원격 피어는 네트워크를 통해 컴퓨터 또는 서비스의 PNRP ID를 게시하거나 이에 연결된 피어입니다.
원격 엔드포인트가 PNRP 클라우드에 등록되었는지 확인한 후 PNRP ID 확인 단계의 요청 피어는 원하는 서비스의 PNRP ID에 대한 해당 피어 엔드포인트에 요청을 보냅니다. 엔드포인트는 요청 피어가 향후 통신에 사용할 수 있는 서비스의 PNRP ID, 주석 및 최대 4KB의 추가 정보를 확인하는 회신을 보냅니다. 예를 들어 원하는 엔드포인트가 게임 서버인 경우 추가 피어 이름 레코드 데이터에는 게임, 플레이 수준 및 현재 플레이어 수에 대한 정보가 포함될 수 있습니다.
엔드포인트 결정 단계에서 PNRP는 PNRP ID를 게시한 노드를 찾기 위한 반복 프로세스를 사용합니다. 이 경우 확인을 수행하는 노드는 대상 PNRP ID에 연속적으로 가까운 노드에 연결합니다.
PNRP에서 이름 확인을 수행하기 위해 피어는 자체 캐시의 항목에서 대상 PNRP ID와 일치하는 항목을 검사합니다. 이 경우 다른 피어를 발견하면 피어가 PNRP 요청 메시지를 해당 피어로 보내고 응답을 기다립니다. PNRP ID에 대한 항목을 찾을 수 없는 경우, 피어는 대상 PNRP ID와 가장 유사한 PNRP ID를 가진 항목과 상응하는 피어에게 PNRP 요청 메시지를 보냅니다. PNRP 요청 메시지를 수신하는 노드는 자체 캐시를 검사하고 다음을 수행합니다.
PNRP ID가 발견되면 요청된 엔드포인트 피어가 요청 중인 피어에 직접 회신합니다.
PNRP ID를 찾을 수 없으며 캐시의 PNRP ID가 대상 PNRP ID에 더 가까울 경우 요청된 피어는 대상 PNRP ID와 더 밀접하게 일치하는 PNRP ID가 있는 항목을 나타내는 피어의 IPv6 주소를 포함하는 요청 피어에 응답을 보냅니다. 응답에서 IP 주소를 사용하여 요청 노드는 다른 PNRP 요청 메시지를 IPv6 주소로 보내 해당 캐시에 응답하거나 검사합니다.
PNRP ID를 찾을 수 없고 대상 PNRP ID에 가까운 PNRP ID가 캐시에 없으면 요청된 피어는 요청된 피어에게 이 조건을 나타내는 응답을 보냅니다. 그런 다음 요청 피어는 다음에 가장 가까운 PNRP ID를 선택합니다.
요청 피어는 연속 반복을 통해 이 프로세스를 계속하며 결국 PNRP ID를 등록한 노드를 찾습니다.
System.Net.PeerToPeer 네임스페이스 내에서, 엔드포인트를 포함하는 PeerName 레코드와 그들이 통신하는 PNRP 클라우드 또는 메시 간에 다 대 다 관계가 있습니다. 중복 또는 부실 항목 또는 동일한 피어 이름을 가진 여러 노드가 있는 경우 PNRP 노드는 클래스를 사용하여 PeerNameResolver 현재 정보를 가져올 수 있습니다. 이 메서드는 PeerNameResolver 단일 피어 이름을 사용하여 한 피어와 여러 피어 이름 기록 간의 관계를 단순화하고, 한 피어가 여러 클라우드에 연결되도록 합니다. 관계형 테이블 조인을 사용하여 수행되는 쿼리와 비슷합니다. 성공적으로 완료되면 Resolver 개체는 지정된 피어 이름에 대한 값을 반환 PeerNameRecordCollection 합니다. 예를 들어, 피어 이름은 클라우드별로 정렬된 컬렉션 내 모든 피어 이름 레코드에서 나타납니다. PNRP 기반 애플리케이션에서 관련 데이터를 요청할 수 있는 피어 이름의 각 인스턴스입니다.
참고하십시오
.NET