Четыре отметки вместо одного звонка
Чтобы понять, насколько часы устройства отстают от эталонных, протоколу мало получить ответ «сейчас столько-то». Время уходит на дорогу туда и обратно, поэтому сервер и клиент фиксируют четыре момента: когда запрос отправлен, когда он принят сервером, когда сервер послал ответ и когда ответ дошёл до устройства.
По этим отметкам можно отделить время обработки запроса на сервере от времени, проведённого в сети. Оставшееся — примерная задержка пути. А разница между часами двух устройств оценивается по тому, в какие моменты запрос и ответ пересекли границы клиента и сервера.
Где расчёт встречает реальную сеть
Здесь есть инженерное допущение: сигнал идёт к серверу и обратно примерно одинаковое время. Если один участок пути заметно медленнее другого, вычисленная поправка смещается. Поэтому особенно загруженный или нестабильный маршрут способен ухудшить синхронизацию, даже если сами вычисления точны.
Сеть также меняет задержку от запроса к запросу. Протокол может собирать несколько измерений и опираться на более надёжные, а не доверять одному случайному ответу. Это помогает отличить устойчивое расхождение часов от краткого всплеска трафика.
Поправка не обязана быть скачком
Получив оценку, устройство может не переставлять часы резко назад или вперёд, а постепенно ускорять или замедлять их ход. Это важно для программ, которые измеряют интервалы: внезапное изменение времени способно нарушить порядок событий или сбить таймер.
В итоге синхронизация — не доставка единственного «точного времени», а постоянная оценка с поправкой на дорогу и её изменчивость. Чем менее предсказуем маршрут, тем осторожнее приходится обращаться с каждым измерением.






