RFC: 5905
Оригинал: Network Time Protocol Version 4: Protocol and Algorithms Specification
Предыдущие версии: RFC 958, RFC 1059, RFC 1119, RFC 1305, RFC 1361, RFC 1769, RFC 2030, RFC 4330
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Мельников Дмитрий Анатольевич

Процедурная характеристика NTPv4-протокола обеспечивает вычисление сдвига времени θ и задержку петлевого маршрута δ с помощью самых «свежих» меток времени (рис.12). Несмотря на то, что, в принципе, существует возможность выполнить все вычисления (кроме разностей значений меток времени первого порядка) с использованием арифметических операций над числами с фиксированной точкой, всё равно гораздо проще преобразовать разности первого порядка в удвоенные значения с плавающей точкой и выполнить остальные вычисления с использованием арифметических операций над такими числами. Все последующие рассуждения будут основаны на этом предположении.

В процедуре опроса участвует 8-битовый регистр сдвига p.reach, который определяет достижимость удалённого сервера времени, а также являются ли полученные от него данные самыми «свежими». Это регистр сдвигается влево на один бит, когда передано NTPv4-сообщение, а крайний правый бит обнуляется. После получения корректных NTPv4-сообщений прикладной процесс packet() устанавливает крайний правый бит в 1. Если в этом регистре содержится любое количество ненулевых битов, то тогда считается, что удалённый сервер времени достижим, в противном случае — нет. Так как интервал опроса в прикладном NTPv4-модуле сервера времени может измениться после получения последнего NTPv4-сообщения, инициализируется прикладной процесс poll_update(), который выполняет задачу определения нового интервала опроса IP-узла.

Статистическая дисперсия ε(t) представляет собой максимальную ошибку, являющуюся следствием допустимого отклонения частоты и интервала времени с момента передачи последнего NTPv4-сообщения. В начальный момент дисперсия вычисляется следующим образом:

ε(t0) = r.ρ + s.ρ + Φ×(T4 - T1)

то есть измерение было сделано в момент времени t0, что соответствовало значению счётчика секунд. Переменная r.ρ — точность, указанная в NTPv4-сообщении, а s.ρ — точность системных часов, при этом обе переменные измеряются в секундах. Они необходимы для учёта погрешностей при считывании значений системного времени, и в прикладном NTPv4-модуле сервера, и в прикладном NTPv4-модуле клиента.

Затем дисперсия возрастает с постоянной скоростью Φ, другими словами, в момент времени t:

ε(t) = ε(t0) + Φ×(t - t0)

По умолчанию Φ = 15 РРМ, что составляет примерно 1,3 секунды за сутки. В дальнейшем аргумент t не будет использоваться, а дисперсия будет обозначаться одним символом ε. Остальные статистические параметры вычисляются с помощью процедуры фильтрации времени.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.