Udostępnij przez


Rozwiązania równorzędne

Aby nawiązać połączenie z siatką, węzeł równorzędny wymaga adresów IP innych węzłów. Adresy IP są uzyskiwane przez skontaktowanie się z usługą rozpoznawania nazw, która pobiera identyfikator siatki i zwraca listę adresów odpowiadających węzłom zarejestrowanym przy użyciu tego konkretnego identyfikatora siatki. Resolver przechowuje listę zarejestrowanych adresów, którą tworzy, gdy każdy węzeł w siatce rejestruje się w usłudze.

Możesz określić, która usługa PeerResolver ma być używana poprzez właściwość Resolver z NetPeerTcpBinding.

Obsługiwane rozwiązania równorzędne

Kanał równorzędny obsługuje dwa typy rezolwerów: protokół PNRP (Peer Name Resolution Protocol) oraz niestandardowe usługi rezolwerów.

Domyślnie kanał równorzędny używa usługi rozpoznawania równorzędnego PNRP do odnajdywania elementów równorzędnych i sąsiadów w siatkach. W sytuacjach/platformach, w których protokół PNRP jest niedostępny lub wykonalny, program Windows Communication Foundation (WCF) udostępnia alternatywną usługę odnajdywania opartą na serwerze — CustomPeerResolverService. Możesz również jawnie zdefiniować niestandardową usługę resolvera, pisząc klasę, która implementuje interfejs IPeerResolverContract.

Protokół rozpoznawania nazw równorzędnych (PNRP)

PNRP, domyślne narzędzie rozpoznawania nazw w systemie Windows Vista, jest rozproszoną usługą rozpoznawania nazw bezserwerowych. Protokół PNRP można również używać w systemie Windows XP z dodatkiem SP2, instalując pakiet Advanced Networking Pack. Każdy dwóch klientów z tą samą wersją protokołu PNRP może zlokalizować siebie nawzajem przy użyciu tego protokołu, pod warunkiem, że spełniają określone warunki (takie jak brak pośredniczącej zapory firmowej). Należy pamiętać, że wersja PNRP dostarczana z systemem Windows Vista jest nowsza niż wersja zawarta w pakiecie Advanced Networking Pack. Sprawdź Centrum pobierania Microsoft, aby uzyskać aktualizacje protokołu PNRP dla systemu Windows XP z dodatkiem SP2.

Niestandardowe usługi rozwiązywania problemów

Gdy usługa PNRP jest niedostępna lub chcesz mieć pełną kontrolę nad kształtowaniem siatki, możesz użyć niestandardowej usługi rozpoznawania opartej na serwerze. Tę usługę można jawnie zdefiniować, pisząc klasę resolvera implementującą interfejs IPeerResolverContract, lub używając wbudowanej domyślnej implementacji CustomPeerResolverService.

W ramach domyślnej implementacji usługi rejestracje klientów wygasają po upływie określonego czasu, jeśli klient nie odświeży jawnie rejestracji. Klienci korzystający z usługi rozpoznawania muszą mieć świadomość górnego ograniczenia opóźnienia klient-serwer, aby pomyślnie odświeżyć rejestracje na czas. Obejmuje to wybranie odpowiedniego limitu czasu odświeżania (RefreshInterval) w usłudze resolvera. (Aby uzyskać więcej informacji, zobacz Inside the CustomPeerResolverService: Client Registrations (Wewnątrz usługi CustomPeerResolverService: rejestracje klienta).

Autor aplikacji musi również rozważyć zabezpieczenie połączenia między klientami a niestandardową usługą rozwiązywania nazw. Do tego można użyć ustawień zabezpieczeń na NetTcpBinding, którego klienci używają do kontaktowania się z usługą rozpoznawania nazw. Należy określić poświadczenia (jeśli są używane) na ChannelFactory, które jest używane do tworzenia Peer Channel. Te poświadczenia są przekazywane do ChannelFactory używanego do tworzenia kanałów dla niestandardowego resolvera.

Uwaga / Notatka

W przypadku korzystania z sieci lokalnych i ad-hoc z niestandardowym resolverem zdecydowanie zaleca się, aby aplikacje korzystające z lub wspierające sieci lokalne lub ad-hoc zawierały logikę, która wybiera pojedynczy adres link-local do użycia podczas nawiązywania połączenia. Zapobiega to wszelkim nieporozumieńom potencjalnie spowodowanym przez komputery z wieloma adresami lokalnymi linków. Zgodnie z tym rozwiązaniem kanał równorzędny obsługuje tylko używanie pojedynczego adresu lokalnego linku w dowolnym momencie. Możesz określić ten adres jako właściwość ListenIpAddress na NetPeerTcpBinding.

Aby zobaczyć demonstrację, jak zaimplementować niestandardowy moduł rozwiązywania, zobacz Niestandardowy moduł rozwiązywania dla kanału równorzędnego.

W tej Sekcji

Wewnątrz CustomPeerResolverService: Rejestracje klientów

Zobacz także