3.1. Поиск функционирующего сервера
Существуют два специальных типа виртуальных соединений: многоадресное (manycast) клиента и многоадресное сервера, — которые реализуют процедуру поиска функционирующего сервера. Также существуют два типа многоадресных виртуальных соединения клиента: постоянное и временное. Постоянное многоадресное соединение клиента предназначено для передачи клиентских NTP-сообщений (режим №3) по специализированному широковещательному или групповому IPv4/v6-адресу. Специализированные многоадресные серверы в пределах временного интервала, указанного в поле «time-to-live» (TTL) заголовка IP-пакета, контролируют трафик на предмет обнаружения IP-пакетов с определенным широковещательным или групповым IP-адресом. Если сервер приемлем для синхронизации, то тогда он передаёт своё ответное NTP-сообщение (режим №4), используя для этого IP-пакет, в котором указывает уникальный адрес клиента. После получения этого NTP-сообщения клиент формирует временное виртуальное соединение (режим №3). Временное виртуальное соединение клиента поддерживается до окончания тайм-аута или возникновения ошибки или сбоя.
Клиент, функционирующий в многоадресном режиме, продолжает передавать NTP-сообщения с целью установления минимального числа виртуальных соединений. Клиент начинает поиск со значения TTL, равного единице, и в последующем увеличивает это значение на единицу до тех пор, пока не будет установлено минимальное число виртуальных соединений или пока TTL достигнет своего максимального значения.
Если TTL достигает своего максимального значения, но при этом сформировано не достаточное количество виртуальных соединений, то тогда клиент прекращает передачу на период тайм-аута и разрывает все установленные соединения, а затем повторяет поиск. Если сформировано минимально число виртуальных соединений, то тогда клиент начинает передачу по одному NTP-сообщению через интервал тайм-аута с целью поддержания этих соединений. Поле допускает следующие предельные значения — минимально равно единице, а максимальное — 255. Эти предельные значения могут быть изменены, если это необходимо для конкретных прикладных систем.
Временные виртуальные соединения конкурируют между собой. Как только сформированы новые соединения, клиентский NTP-модуль запускает алгоритмы оптимизации (фильтрации, селекции, кластеризации и суммирования) с целью выбора наилучших претендентов для синхронизации, а оставшиеся соединения прерываются по окончании тайм-аута. Таким образом, группа серверов времени включает только наилучших кандидатов, которые отправили наиболее приемлемые ответные NTP-сообщения для обслуживания системного времени.