13.2. Процессы (операции) процедуры опроса
Как было указано ранее, каждую секунду в период процедуры корректировки времени происходит обращение к прикладному процессу clock_adjust()
. Этот процесс обращается к другому прикладному процессу poll()
при каждом очередном информационном взаимодействии по конкретному виртуальному соединению. Если время отправки очередного запрашивающего NTPv4-сообщения превысило значение счётчика секунд, то тогда прикладной процесс передаёт такое сообщение незамедлительно. В период функционирования виртуальных соединений в симметричном режиме (режимы 1, 2), в клиентском режиме (режим 3) и в широковещательном режиме сервера (режим 5) регулярно передаются полнофункциональные NTPv4-сообщения, содержащие все требуемые переменные и параметры. В широковещательном режиме клиента (режим 6) полнофункциональные NTPv4-сообщения не передаются, а передаются специализированные NTPv4-сообщения, содержащие только переменные достижимости удалённых серверов времени. Прикладной процесс poll()
, в свою очередь, обращается к процессу peer_xmit()
с целью передачи NTPv4-сообщения. Если флаг BURST
установлен (имеет значение 1
), то тогда никаких последующих операций не проводится, за исключением обращения к прикладному процессу poll_update()
с целью установки значения интервала следующего опроса. Если же флаг BURST
не установлен (равен 0
), то тогда значение переменной достижимости сдвигается влево на один бит, а крайний правый бит обнуляется. Если удалённый сервер времени не был обнаружен в течении последних трёх интервалов опроса, то тогда происходит обращение к прикладному процессу clock_filter()
с целью увеличения значения дисперсии.
Если флаг BURST
установлен, а сервер достижим и может выступать в роли корректного источника синхронизации, то тогда клиентский NTPv4-модуль передает последовательность из восьми (BCOUNT
= 8) NTPv4-сообщений в течение каждого интервала опроса. Интервал между поочерёдной передачей NTPv4-сообщений составляет две секунды. Если флаг IBURST
установлен, а это означает, что это переданное сервером NTPv4-сообщение является первым, причём этот удаленный сервер считался недостижимым, то тогда клиентский NTPv4-модуль передает NTPv4-сообщение с установленным флагом BURST
. Такая операция обмена флагами весьма полезна для ускоренного уменьшения расстояния синхронизации ниже предельного значения и быстрой синхронизации часов.