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


Что происходит во время запроса

В этом разделе описывается, как сеть обрабатывает запрос, когда 32-разрядный клиент ищет имя в собственном домене.

Когда клиентское приложение вызывает RpcNsBindingImportBegin, локатор, размещенный на клиентском компьютере, попытается выполнить этот запрос. Если в кэше ничего нет, он перенаправит запрос с помощью удаленного вызова процедур (RPC) главному устройству поиска. Если основной локатор не находит ничего в своем кэше, он отправляет запрос всем компьютерам в домене с помощью почтовой рассылки через mail-slot. Если есть совпадение, локатор на каждом компьютере будет отвечать через определённый почтовый слот. (Например, если процесс на этом компьютере экспортировал интерфейс.) Ответы собираются, и RPC завершается через локатор процесса клиента, с помощью которого даётся ответ процессу клиента.

В домене клиентский локатор выполняет поиск главного локатора в следующих местах:

  • На основном контроллере домена
  • На каждом резервном контроллере домена

Если совпадение не найдено, локатор клиента объявляет себя ведущим локатором. Таким образом, он будет транслировать запросы, если они не могут быть удовлетворены локально.

В рабочей группе локатор клиента поддерживает кэш компьютеров, локаторы которых объявили о своем присутствии. Он использует тот, который работает дольше всего в качестве главного указателя. Если этот компьютер недоступен, используется следующий, самый длинный широковещательный компьютер и т. д. Если клиенту нужен главный указатель, а кэш пуст, он пополняет кэш, отправив специальное широковещательное сообщение с использованием почтового слота, которое просит главные указатели ответить. Если нет ответов, указатель клиента объявляет себя главным указателем и будет транслировать запросы, если они не могут быть удовлетворены локально.

Это изменится, если клиентское приложение является 16-разрядной или MS-DOS-программой. В этом случае локатор не запущен на клиентском компьютере, и Rpcns1.dll или Rpcnslm.rpc содержит код для поиска главного локатора. Все запросы перенаправляются непосредственно к мастер локатору.

Эти рекомендации действительны для имен в домене клиента, таких как имена "/.:/entryname". Если клиент запрашивает имя из другого домена с помощью "/.../DOMAIN/entryname;", указатель клиента перенаправит запрос в указанный домен, который будет транслировать его, если он не имеет ответа. Если домен отключен или фактически является рабочей группой, запрос завершится ошибкой.

Заметка

Помните следующее при работе с записями в службе имен:

 

  • Клиент не может использовать синтаксис "/.../DOMAIN/entryname" для поиска записи в собственном домене. Используйте синтаксис "/.:/entryname". Однако для поиска записи в другом домене можно использовать "/.../DOMAIN/entryname".
  • Имя домена в поле "/.../DOMAIN/entryname" должно быть прописным. При поиске совпадения локатор учитывает регистр символов.
  • Имена записей указателя также чувствительны к регистру, но не обязательно должны быть заглавными.
  • Если клиент использует синтаксис "/.:/entryname", локатор не будет искать записи в других доменах, даже если у них есть отношение доверия с доменом входа.
  • Широковещательные передачи не пересекают сегменты локальной сети (например, подсети). Таким образом, полезность локатора ограничена в организации с несколькими подсетями.