Поделиться через


Одноранговые распознаватели

Чтобы подключиться к сетке, одноранговому узлу требуются IP-адреса других узлов. Получение IP-адресов обычно происходит в результате обращения к службе арбитра, которая принимает идентификатор сетки и возвращает список адресов, соответствующих узлам, зарегистрированным для конкретного идентификатора сетки. Арбитр сохраняет список зарегистрированных адресов, которые он создает при регистрации в службе всех узлов сетки.

С помощью свойства Resolver привязки NetPeerTcpBinding можно задать конкретную службу однорангового распознавателя для использования.

Поддерживаемые одноранговые распознаватели

Одноранговые каналы поддерживают распознаватели двух типов: протокол PNRP и пользовательские службы распознавателя.

По умолчанию для обнаружения одноранговых и соседних узлов в сетке используется служба однорангового распознавателя PNRP. Для ситуаций и платформ, где PNRP недоступен или недоступен, Windows Communication Foundation (WCF) предоставляет альтернативную службу обнаружения на основе сервера — это CustomPeerResolverService. Кроме того, можно явным образом определить пользовательскую службу распознавателя, написав класс, который реализует интерфейс IPeerResolverContract.

Протокол PNRP

PNRP, используемый по умолчанию для Windows Vista, — это распределенная, бессерверная служба сопоставителя имен. PNRP также можно использовать в Windows XP с пакетом обновления 2 (SP2), установив расширенный сетевой пакет. Любые два клиента, выполняющие одну и ту же версию PNRP, могут находить друг друга с помощью этого протокола, если соблюдаются определенные условия (например, между клиентами нет брандмауэра). Обратите внимание, что версия PNRP, которая поставляется с Windows Vista, является более новой, чем версия, включенная в расширенный сетевой пакет. Проверьте Центр загрузки Майкрософт для обновлений PNRP для Windows XP с пакетом обновления 2 (SP2).

Пользовательские службы распознавателя

Если служба PNRP недоступна, или если требуются возможности управления структурой сетки, можно применять пользовательские службы распознавателя на базе сервера. Можно явным образом определить эту службу путем написания класса распознавателя, реализующего интерфейс IPeerResolverContract, или с помощью готовой реализации по умолчанию CustomPeerResolverService.

При использовании реализации службы по умолчанию срок регистрации клиента истекает через заданный промежуток времени, если клиент явным образом не обновляет регистрацию. Клиенты, использующие службу распознавателя, должны учитывать максимальное время задержки при взаимодействии между клиентом и сервером, чтобы вовремя обновлять регистрацию. Для этого необходимо установить в службе распознавателя соответствующее значение времени ожидания обновления (RefreshInterval). (Дополнительные сведения см. в разделе Внутри CustomPeerResolverService: регистрация клиентов.)

Кроме того, разработчик приложения должен подумать о защите подключений между клиентами и пользовательской службой распознавателя. Для этого можно воспользоваться параметрами безопасности привязки NetTcpBinding, которую клиенты используют для связи со службой распознавателя. Необходимо задать учетные данные (если они используются) в объекте ChannelFactory, который используется для создания однорангового канала. Эти учетные данные передаются в объект ChannelFactory, который используется для создания каналов пользовательского распознавателя.

Примечание.

При использовании локальных или импровизированных сетей с пользовательским распознавателем настоятельно рекомендуется включать в приложения, которые используют или поддерживают локальные и импровизированные сети, механизм для выбора при подключении одного локального адреса. Это позволит избежать ошибок, связанных с компьютерами с несколькими локальными адресами. Поэтому одноранговый канал поддерживает одновременное использование только одного локального адреса. Этот адрес можно указать в свойстве ListenIpAddress привязки NetPeerTcpBinding.

Демонстрация реализации пользовательского сопоставителя см. в разделе "Пользовательский сопоставитель одноранговых каналов".

В этом разделе

Подробная информация о CustomPeerResolverService: регистрация клиентов

См. также