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-модулях, в которых возможна арифметическая операция с удвоенными числами с плавающей точкой, разности первого порядка могут быть преобразованы в удвоенные значения с плавающей точкой, а суммы и разности второго порядка вычисляются с использованием этой операции. Так как значения второго порядка, как правило, очень малы относительно отклонений значений, указываемых в метках времени, и в этом смысле потери точности практически нет, и поэтому однозначный временной интервал от 34 до 68 лет может быть восстановлен.

В некоторых случаях, когда начальный сдвиг частоты в клиентском NTP-модуле относительно большой, а реальное время распространения сигнала мало, то тогда при вычислении задержки результат может быть отрицательным. Например, если разность частоты равна 100 промилей, а интервал T4 — T1 — 64 секунды, то тогда мнимая задержка составит -6,4 миллисекунд. Так как отрицательные значения являются «обманчивыми» при последовательном вычислении, значение δ должно быть ограничено значением не меньшим, чем s.ρ, где s.ρ представляет собой точность системы (в секундах).

Представленные выше рассуждения касаются наиболее общего случая, когда два удалённых сервера времени, функционирующих в симметричном режиме, независимо друг от друга измеряют сдвиги и задержки между собой. Если сервер находится в ином режиме, процедурная характеристика протокола может быть упрощена. Сервер времени копирует метки времени T3 и T4 из NTPv4-сообщения клиента в значения T1 и T2 NTPv4-сообщения сервера и добавляет метку времени T3 отправки ответного NTPv4-сообщения перед самой передачей последнего клиенту.

Процедурная характеристика NTPv4-протокола, по определению, способна защитить систему от повторной передачи ответного NTPv4-сообщения сервера. Однако, она не способна предотвратить повторную передачу ответного NTPv4-сообщения клиента, при реализации которой сервер отправит ответное NTPv4-сообщение с новыми значениями T2 и T3, и после этого будут рассчитаны некорректные значения сдвига и задержки. Эта уязвимость может быть устранена путём обнуления значения переменной состояния xmt после вычисления значений сдвига и задержки.

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