Я ніколи не використовував ntpstat
(це не стандартна установка на debian / ubuntu), але я використовував ntp протягом багатьох років і, як правило, дивлюся на вихід ntpq -nc peer
або ntpq -np
який, ймовірно, показує подібну інформацію. Результат ntpq
показує позитивні та негативні значення.
В основному, якщо ntp (stat) каже, що він синхронізований (або вихід ntpq позначає сервер з '*'), то він максимально близький, але може продовжувати намагатися і вдосконалюватись.
Спрощене пояснення роботи NTP полягає в тому, що він регулярно надсилає пакети на сервери часу, що містять часову позначку часу, який місцева машина вважає, що це. Потім сервер додає свою часову позначку і повертає пакет на локальну машину. Як тільки він прибуде, місцева машина має 3-ю мітку часу, час прибуття. Якщо припустити, що пакет потрапив на сервер і повернувся назад, NTP може розробити час локальної машини, коли сервер додав часові позначки і, отже, може обчислити різницю та здійснити коригування.
Мережеві пакети зазвичай займають кілька десятків мілісекунд, щоб дістатися до сервера і повернутися. Через різницю мережевого трафіку вихідний та вхідний час транзиту можуть бути не однаковими, але немає можливості визначити це, отже, NTP повинен вважати, що вони однакові. Як результат, NTP ніколи не може наблизитись до декількох мілісекунд до точної синхронізації і оголосить синхронізацію, коли часові позначки відправки та прийому закріплюють часову мітку сервера.
Навіть при синхронізації NTP продовжить обмінюватися пакетами і намагатиметься регулювати час, щоб мінімізувати різниці в часі. Це робиться шляхом невеликих налаштувань (насправді, незначно збільшуючи або зменшуючи кількість "тиків" за секунду), щоб не було раптових стрибків і щоб уникнути проблем через аномалії мережі.
Тож, коли ntpstat
кажуть, що це синхронізація, це приблизно настільки ж близько, наскільки це може бути, але це дає найкращу оцінку того, наскільки далеко це може бути.