메시에 연결하려면 피어 노드에 다른 노드의 IP 주소가 필요합니다. IP 주소는 메시 ID를 가져와 해당 메시 ID에 등록된 노드의 주소 목록을 반환하는 '확인자 서비스'에 연결하여 얻습니다. 확인자는 각 노드가 서비스에 등록하도록 하여 생성한 등록된 주소 목록을 유지합니다.
Resolver
속성의 NetPeerTcpBinding을 사용하여 PeerResolver 서비스를 지정할 수 있습니다.
지원되는 피어 해결자
피어 채널은 PNRP(피어 이름 확인 프로토콜) 및 사용자 지정 확인자 서비스의 두 가지 유형의 확인자를 지원합니다.
기본적으로 피어 채널은 PNRP 피어 확인자 서비스를 사용하여 메시의 피어 및 인접 항목을 검색합니다. 사용할 수 없거나 실현 가능한 상황/플랫폼에서 PNRP가 없는 경우, Windows Communication Foundation(WCF)는 대체 서버 기반 검색 서비스를 제공합니다 - CustomPeerResolverService. IPeerResolverContract 인터페이스를 구현하는 클래스를 작성하여 커스텀 리졸버 서비스를 명시적으로 정의할 수도 있습니다.
PNRP(피어 이름 확인 프로토콜)
Windows Vista의 기본 해결 프로그램인 PNRP는 분산된 서버리스 이름 확인자 서비스입니다. 고급 네트워킹 팩을 설치하여 Windows XP SP2에서 PNRP를 사용할 수도 있습니다. 동일한 버전의 PNRP를 실행하는 두 클라이언트는 특정 조건(예: 중간 회사 방화벽 부족)을 충족하는 경우 이 프로토콜을 사용하여 서로를 찾을 수 있습니다. Windows Vista와 함께 제공되는 PNRP 버전은 고급 네트워킹 팩에 포함된 버전보다 최신 버전입니다. Windows XP SP2용 PNRP에 대한 업데이트는 Microsoft 다운로드 센터를 확인하세요.
사용자 지정 해결 프로그램 서비스
PNRP 서비스를 사용할 수 없거나 메시 셰이핑을 완전히 제어하려는 경우 사용자 지정 서버 기반 확인자 서비스를 사용할 수 있습니다. 인터페이스를 구현하는 IPeerResolverContract 확인자 클래스를 작성하거나 기본 구현 CustomPeerResolverService을 사용하여 이 서비스를 명시적으로 정의할 수 있습니다.
서비스의 기본 구현에서 클라이언트가 등록을 명시적으로 새로 고치지 않으면 특정 시간 후에 클라이언트 등록이 만료됩니다. 확인자 서비스를 사용하는 클라이언트는 등록을 제 시간에 성공적으로 새로 고치려면 클라이언트-서버 대기 시간의 상한을 알고 있어야 합니다. 여기에는 확인자 서비스에서 적절한 새로 고침 시간 제한(RefreshInterval
)을 선택하는 작업이 포함됩니다. (자세한 내용은 CustomPeerResolverService 내부: 클라이언트 등록을 참조하세요.)
또한 애플리케이션 작성기는 클라이언트와 사용자 지정 해결 프로그램 서비스 간의 연결을 보호하는 것을 고려해야 합니다. 클라이언트가 확인자 서비스에 문의할 때 사용하는 NetTcpBinding의 보안 설정을 통해 이 작업을 수행할 수 있습니다. 피어 채널을 만드는 데 사용하는 ChannelFactory
에 자격 증명(사용되는 경우)을 지정해야 합니다. 이 자격 증명은 사용자 지정 확인자에 대한 채널을 만드는 데 사용되는 ChannelFactory
에 전달됩니다.
비고
사용자 지정 확인자와 함께 로컬 및 즉석 네트워크를 사용하는 경우 링크-로컬 또는 즉석 네트워크를 사용하거나 지원하는 애플리케이션에는 연결할 때 사용할 단일 링크-로컬 주소를 선택하는 논리가 포함되어 있는 것이 좋습니다. 이렇게 하면 링크-로컬 주소가 여러 개인 컴퓨터에서 발생할 수 있는 혼동을 방지할 수 있습니다. 이에 따라 피어 채널은 한 번에 하나의 링크-로컬 주소만 사용하도록 지원합니다.
ListenIpAddress
의 NetPeerTcpBinding 속성을 사용하여 이 주소를 지정할 수 있습니다.
사용자 지정 확인자를 구현하는 방법에 대한 데모는 피어 채널 사용자 지정 피어 확인자를 참조하세요.
이 섹션 안에
CustomPeerResolverService 내부: 클라이언트 등록