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

  2. Классификация наборов переменных в списке на основе компонента edge в следующем порядке: нижняя точка, средняя точка и верхняя точка этих интервалов, начиная с самого нижнего значения и заканчивая самым верхним значением. Присваиваем нулевое значение числу некорректных источников синхронизации (f = 0).

  3. Присваиваем нулевое значение числу средних точек (d = 0). Присваиваем с нулевое значение (с = 0). Проверяем все крайние точки, начиная с самой нижней и заканчивая самой верхней. Прибавляем к с единицу при проверке каждой нижней точки, и вычитаем единицу после каждой верхней точки, добавляем единицу к d после каждой средней точки. Если с ≥ m - f , процедура завершается, а текущему значению числа нижних точек присваивается единица.

  4. Присваиваем с нулевое значение (с = 0). Проверяем все крайние точки, начиная с самой верхней и заканчивая самой нижней. Прибавляем к с единицу при проверке каждой верхней точки, и вычитаем единицу после каждой нижней точки, добавляем единицу к d после каждой средней точки. Если с ≥ m - f , процедура завершается, а текущему числу верхних точек присваивается значение u.

  5. Проверяем равенство d = f и неравенство l < u. Если они выполняются, то тогда процедур завершилась успешно, а интервал перекрытия составляет [l, u]. Если же нет, то тогда увеличиваем на единицу значение f. После этого проверяем неравенство f < m/2. Если оно выполняется, то тогда процедура возвращается на третью итерацию. Если же оно не выполняется, то тогда процедура переходит на шестую итерацию.

  6. Процедура завершилась «неудачей». Максимальное число корректных часов не определено. Нет приемлемых кандидатов для корректировки системного времени.

Необходимо отметить, что эта процедура начинается в предположении, что некорректные часы отсутствуют (f = 0) и она «пытается» найти непустой интервал перекрытия, содержащий средние точки всех корректных серверов времени, то есть надёжных источников синхронизации. Если нельзя найти непустой интервал, то тогда число предполагаемых некорректных источников синхронизации увеличивается на единицу, а попытка отыскания непустого интервала повторяется. Если же непустой интервал найден, а число некорректных источников синхронизации меньше, чем корректных, то тогда считается, что найдена группа основных источников синхронизации и средняя точка каждого такого источника (θ) представляет собой кандидата, который в дальнейшем обрабатывается процедурой (алгоритмом) кластеризации.

Если же группа основных источников синхронизации не найдена, или если число корректных источников синхронизации меньше, чем значение параметра CMIN, то тогда для процесса настройки и корректировки системных часов не хватает приемлемых кандидатов. Параметр CMIN определяет минимальное количество серверов времени, удовлетворяющих требованиям корректности. Более внимательные сетевые администраторы могли бы установить такое значение параметра CMIN, которое бы гарантировало несколько дополнительных серверов времени, вполне приемлемых для их обработки соответствующими алгоритмами оптимизации. Однако, исторически сложилось так, что значение параметра CMIN, по-умолчанию, равно единице.

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