Что происходит во время запроса
В этом разделе описывается, как сеть обрабатывает запрос, когда 32-разрядный клиент ищет имя в собственном домене.
Когда клиентское приложение вызывает RpcNsBindingImportBegin, указатель, размещенный на клиентском компьютере, попытается выполнить этот запрос. Если в кэше ничего нет, запрос RPC перенаправит в указатель master. Если указатель master ничего не находит в кэше, он отправляет запрос на все компьютеры в домене с помощью трансляции слота почты. Если совпадение есть, указатель на каждом компьютере будет отвечать с помощью слота направленной почты. (Например, если процесс на этом компьютере экспортировал интерфейс.) Ответы сопоставляются, и RPC завершается из указателя процесса клиента, который будет отвечать самому клиентскому процессу.
В домене указатель клиента ищет указатель master в следующих местах:
- На основном контроллере домена
- На каждом резервном контроллере домена
Если совпадение не найдено, указатель клиента объявляет себя указателем master. Таким образом, он будет транслировать запросы, если они не могут быть удовлетворены локально.
В рабочей группе указатель клиента поддерживает кэш компьютеров, указатели которых ведут широковещательную трансляцию. Он использует тот, который работает дольше всего в качестве указателя master. Если этот компьютер недоступен, используется следующий компьютер с самым длинным вещанием и т. д. Если клиенту нужен указатель master, а кэш пуст, он пополняет кэш, отправляя специальную трансляцию слота почты, которая запрашивает ответ master указателей. Если ответов нет, указатель клиента объявляет себя указателем master и будет транслировать запросы, если они не могут быть удовлетворены локально.
Это меняется, если клиентское приложение является 16-разрядной программой или программой на основе MS-DOS. В этом случае на клиентском компьютере не выполняется указатель, и Rpcns1.dll или Rpcnslm.rpc содержит код для поиска master указателя. Все запросы перенаправляются непосредственно в указатель master.
Эти рекомендации допустимы для имен в домене клиента, например имен для "/.:/ entryname". Если клиент запрашивает имя из другого домена с помощью "/.../DOMAIN/entryname;", указатель клиента перенаправит запрос в указанный домен, который будет транслировать его, если у него нет ответа. Если домен не работает или фактически является рабочей группой, запрос завершится ошибкой.
Примечание
При работе с записями в службе имен помните следующее:
- Клиент не может использовать синтаксис "/.../DOMAIN/entryname" для поиска записи в своем домене. Используйте синтаксис "/.:/ entryname". Однако вы можете использовать "/.../DOMAIN/entryname", чтобы найти запись в другом домене.
- Доменное имя в "/.../DOMAIN/entryname" должно быть прописным. При поиске совпадения указатель учитывает регистр.
- Имена записей указателя также чувствительны к регистру, но не должны быть прописными.
- Когда клиент использует "/.:/ Синтаксис entryname" — указатель не будет искать записи в других доменах, даже если у них есть отношение доверия с доменом входа.
- Широковещательные передачи не пересекают сегменты локальной сети (например, подсети). Таким образом, полезность указателя ограничена в организации с несколькими подсетями.