Udostępnij za pośrednictwem


Mechanizmy rozpoznawania elementów równorzędnych

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. Program rozpoznawania nazw przechowuje listę zarejestrowanych adresów, które tworzy przez utworzenie każdego węzła w rejestrze siatki w usłudze.

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

Obsługiwane rozwiązania równorzędne

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

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ę rozpoznawania nazw, pisząc klasę, która implementuje IPeerResolverContract interfejs.

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

PNRP, domyślnym narzędziem rozpoznawania nazw systemu 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 rozpoznawania nazw

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

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 nazw muszą mieć świadomość górnego ograniczenia opóźnienia klient-serwer, aby pomyślnie odświeżyć rejestracje w czasie. Obejmuje to wybranie odpowiedniego limitu czasu odświeżania (RefreshInterval) w usłudze rozpoznawania nazw. (Aby uzyskać więcej informacji, zobacz Wewnątrz elementu CustomPeerResolverService: Rejestracje klienta).

Składnik zapisywania aplikacji musi również rozważyć zabezpieczenie połączenia między klientami i niestandardową usługą rozpoznawania nazw. W tym celu można użyć ustawień zabezpieczeń używanych przez NetTcpBinding klientów do kontaktowania się z usługą rozpoznawania nazw. Należy określić poświadczenia (jeśli są używane) w kanale używanym do tworzenia kanału równorzędnego ChannelFactory . Te poświadczenia są przekazywane do ChannelFactory kanałów używanych do tworzenia kanałów do niestandardowego programu rozpoznawania nazw.

Uwaga

W przypadku korzystania z sieci lokalnych i improwizowane z niestandardowym narzędziem rozpoznawania nazw zdecydowanie zaleca się, aby aplikacje korzystające z linków lokalnych lub improwizowane sieci zawierały logikę, która wybiera pojedynczy adres lokalny 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 z właściwością ListenIpAddress w obiekcie NetPeerTcpBinding.

Aby zapoznać się z pokazem implementacji niestandardowego rozpoznawania nazw, zobacz Niestandardowy moduł rozpoznawania równorzędnego kanału równorzędnego.

W tej sekcji

Szczegóły usługi CustomPeerResolverService: rejestracje klienta

Zobacz też