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
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Мельников Дмитрий Анатольевич

11.2.3. Процедура (алгоритм) суммирования

Оставшиеся претенденты на роль основных источников синхронизации обрабатываются прикладным процессом clock_combine() с целью определения наилучших и заключительных значений параметров, которые будут в последующем использоваться процедурой (алгоритмом) корректировки (настройки) времени (часов). Прикладной процесс clock_combine() обрабатывает статистические значения сдвига и джиттера с целью определения суммарного системного значения сдвига Θ и системного значения джиттера Ψp удалённого сервера, при этом статистическому параметру каждого сервера времени присваивается весовой коэффициент на основе вычисления значения обратной величины корневого расстояния синхронизации и нормирования результата.

Суммарное значение Θ используется прикладным процессом clock_update(). Первый претендент из списка основных источников синхронизации именуется как системный удалённый сервер времени с идентификатором p. Джиттер системного удалённого сервера времени Ψp является компонентом системного джиттера Ψ. Значение Ψp всё время используется совместно со значением селективного джиттера Ψs для определения системного джиттера:

Ψ = [(Ψs)2 + (Ψp)2]½

Каждый раз обновление данных синхронизации осуществляется с помощью прикладного процесса clock_update(), к которому происходит обращение после получения соответствующего NTPv4-сообщения от системного сервера времени. В соответствие с существующим правилом, данные обновления времени (синхронизации) уничтожаются, если время их поступления p.t было не строго более поздним, чем системное время s.t последнего обновления данных синхронизации. Передаваемые маркеры IGNOR, PANIC, ADJ и STEP определяют ответную реакцию прикладного процесса local_clock() и означают следующее:

  1. IGNOR

    Данные обновления времени (синхронизации) были проигнорированы, так как принадлежали «отбракованному» источнику синхронизации.

  2. PANIC

    Значение сдвига на много превысило критическое пороговое значение PANICT (1000 сек). В связи с этим целесообразно завершить программу обработки и передать диагностическое сообщение системному администратору сети с последующей регистрацией данного события.

  3. STEP

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

  4. ADJ

    Значение сдвига не превысило «пошаговое» пороговое значение STEP и поэтому данные обновления времени (синхронизации) являются корректными. В этом случае, значения системных переменных обновляются на основе значений переменных удалённых серверов времени (рис.22).

    Системные переменныеПеременные системного сервера времени
    s.leapp.leap
    s.stratump.stratum + 1
    s.offsetΘ
    s.jitterΨ
    s.rootdelayp .δr + δ
    s.rootdispp.εr + p.ε + p.ψ + Φ×(s.t - p.t) + |Θ|
    s.refidp.refid
    s.reftimep.reftime
    s.tp.t
    Рис.22. Обновление системных переменных
2007 - 2017 © Русские переводы RFC, IETF, ISOC.