Как NTP-серверам удается сохранять точность?

У многих из нас возникали случайные проблемы с нашими компьютерами и другими устройствами, сохраняющими точные настройки времени, но быстрая синхронизация с NTP-сервером делает все хорошо. Но если наши собственные устройства могут потерять точность, как NTP-серверам удается оставаться такими точными?

Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser — подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.

Фото предоставлено LEOL30 (Flickr).

Вопрос

Читатель SuperUser Фрэнк Торнтон хочет знать, как NTP-серверы могут оставаться такими точными:

Я заметил, что на моих серверах и других машинах часы всегда дрейфуют, поэтому они должны синхронизироваться, чтобы оставаться точными. Как часы NTP-сервера не дрейфуют и всегда остаются такими точными?

Как серверам NTP удается оставаться такими точными?

Ответ

У автора SuperUser Майкла Кёрлинга есть ответ для нас:

NTP-серверы используют высокоточные часы для точного хронометража. Распространенным источником времени для центральных серверов NTP являются атомные часы или приемники GPS (помните, что на спутниках GPS есть атомные часы). Эти часы определены как точные, поскольку они обеспечивают очень точную временную привязку.

В GPS или атомных часах нет ничего волшебного, чтобы они точно указывали, который час. Из-за того, как работают атомные часы, они просто очень хороши, когда однажды сказали, сколько времени, хранят точное время (поскольку второе определяется с точки зрения атомных эффектов). На самом деле, стоит отметить, что время GPS отличается от времени UTC, которое мы привыкли видеть. Эти атомные часы, в свою очередь, синхронизируются с Международным атомным временем или TAI, чтобы не только точно определять ход времени, но также время .

Если у вас есть точное время в одной системе, подключенной к сети, такой как Интернет, это вопрос разработки протокола, позволяющий передавать точное время между хостами по ненадежной сети. В этом отношении NTP-сервер Stratum 2 (или дальше от фактического источника времени) ничем не отличается от вашей настольной системы, синхронизирующейся с набором NTP-серверов.

К тому времени, когда у вас есть несколько точных значений времени (полученных с серверов NTP или из других источников) и вы знаете скорость продвижения ваших локальных часов (которую легко определить), вы можете рассчитать коэффициент смещения ваших локальных часов относительно «точной веры». » Течение времени. После блокировки это значение затем можно использовать для непрерывной настройки локальных часов, чтобы они передавали значения очень близко к точному течению времени, даже если сами локальные часы реального времени очень неточны. Пока ваши локальные часы не очень неустойчивы , это должно позволить сохранять точное время в течение некоторого времени, даже если ваш источник времени в восходящем направлении становится недоступным по какой-либо причине.

Некоторые реализации клиента NTP (вероятно, большинство реализаций демона ntpd или системной службы) делают это, а другие (например, сопутствующий ntpd ntpdate, который просто устанавливает время один раз) этого не делают. Обычно это называется дрейфовый файл , потому что он постоянно хранит меру смещения тактовой частоты, но, строго говоря, его не нужно хранить как отдельный файл на диске.

В NTP Stratum 0 по определению является точным источником времени. Stratum 1 — это система, которая использует источник времени Stratum 0 в качестве источника времени (и, следовательно, немного менее точен, чем источник времени Stratum 0). Уровень 2 снова немного менее точен, чем уровень 1, потому что он синхронизирует свое время с источником уровня 1 и так далее. На практике эта потеря точности настолько мала, что она совершенно незначительна во всех случаях, кроме самых крайних.

Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.

Оцените статью
TutoryBird.Ru
Добавить комментарий