Администрирование ОС Solaris



         

Алгоритм работы xntpd - часть 2


Затем он вкладывает в этот же пакет свое текущее системное время и отправляет пакет обратно;
  • клиент получает пакет и запоминает свое локальное время получения пакета.
  • Теперь клиент имеет возможность рассчитать задержку передачи пакета как половину от "времени передачи туда и обратно минус время обработки пакета сервером".

    Если разница между эталонным и текущим системным временем не превышает 128 миллисекунд, то xntpd подстраивает частоту системных часов так, чтобы они догнали или затормозились до эталонного времени. Подстройка происходит довольно медленно и плавно.

    Если разница превышает 1000 секунд, xntpd полагает, что имеет место фатальный сбой времени на локальной машине и завершается с предсмертным воплем, который запишется в /var/adm/messages.

    Если разница находится в пределах между 128 миллисекундами и 1000 секундами, то xntpd по умолчанию выставляет время сразу же, просто вызывая функцию settimeofday().

    Таким образом, коррекция времени может быть постепенной и резкой. При резкой коррекции системное время изменяется быстрым скачком, одномоментно. Можно запретить такое изменение демону xntpd, указав при запуске ключ -x. Особенно не рекомендуется изменять время резко, если часы спешат, поскольку ряд приложений, зависимых от времени (например, СУБД), могут в результате сохранить неверные данные. Впрочем, при постоянной работе сервера xntpd, как и при регулярном опросе такого сервера с помощью ntpdate, сильное расхождение времени нашего сервера и эталона исключено. Не следует использовать в качестве сервера времени компьютеры со сбоями аппаратуры или разряженной (неисправной) батарейкой CMOS (x86). Кроме того, сервер времени не должен быть сильно нагруженным ресурсоемкими задачами компьютером: иначе он не сможет обеспечить быстрый ответ и корректную обработку запроса.

    Для общения между собой серверы времени используют UDP порт 123.




    Содержание  Назад  Вперед