Я заметил, что на моих серверах и других машинах часы всегда смещаются, поэтому они должны синхронизироваться, чтобы оставаться точными.
Как часы NTP-сервера не дрейфуют и всегда остаются правильными?
Я заметил, что на моих серверах и других машинах часы всегда смещаются, поэтому они должны синхронизироваться, чтобы оставаться точными.
Как часы NTP-сервера не дрейфуют и всегда остаются правильными?
Ответы:
NTP-серверы используют высокоточные часы для точного хронометража. Распространенным источником времени для центральных серверов NTP являются атомные часы или приемники GPS (помните, что на спутниках GPS есть атомные часы). Эти часы определены как точные, поскольку они обеспечивают очень точную временную привязку. Нет ничего волшебного в GPS или атомных часах, которые заставляют их точно сказать, который час; из-за того, как работают атомные часы, они просто очень хороши, когда однажды сказали, который час, продолжают указывать точное время (поскольку секунда определяется с точки зрения атомных эффектов ). На самом деле, стоит отметить, что время GPS отличается от времени UTC, которое мы привыкли видеть. Эти атомные часы в свою очередь синхронизируются сМеждународное атомное время или TAI для того , чтобы не только точно сказать течение времени , но и на время.
Когда у вас есть точное время в одной системе, подключенной к сети, такой как Интернет, вопрос протокольной инженерии позволяет передавать точное время между хостами по ненадежной сети. В этом отношении NTP-сервер уровня 2 (или дальше от фактического источника времени) ничем не отличается от вашей настольной системы, синхронизирующейся с набором NTP-серверов.
К тому времени, когда у вас есть несколько точных значений времени (полученных с NTP-серверов или из других источников) и вы знаете скорость продвижения ваших локальных часов (которую легко определить), вы можете рассчитать коэффициент смещения ваших локальных часов относительно «точной точности». " Течение времени. После блокировки это значение можно затем использовать для непрерывной настройки локальных часов, чтобы они передавали значения очень близко к точному течению времени, даже если сами локальные часы реального времени очень неточны; если ваши локальные часы не очень неустойчивы, это должно позволить сохранять точное время в течение некоторого времени, даже если ваш источник времени в восходящем направлении становится недоступным по какой-либо причине. Некоторые реализации клиента NTP (вероятно, большинство реализаций ntpd
демона или системного сервиса) делают это, а другие (например, компаньон ntpd)ntpdate
который просто устанавливает часы один раз) не надо. Это обычно называется дрейфовым файлом, потому что он постоянно хранит меру сдвига тактовой частоты, но, строго говоря, его не нужно хранить как отдельный файл на диске.
В NTP слой 0 по определению является точным источником времени. Stratum 1 - это система, которая использует источник времени stratum 0 в качестве источника времени (и, следовательно, немного менее точен, чем источник времени stratum 0). Слой 2 снова немного менее точен, чем слой 1, потому что он синхронизирует свое время с источником слоя 1. И так далее. На практике эта потеря точности настолько мала, что она совершенно незначительна во всех случаях, кроме самых крайних.
В сетевом хронометраже спецификация, которая сообщает вам, как сервер получает свой источник времени, называется уровнем уровня. Чем ниже уровень, тем лучше время хранения этого сервера.
Устройства уровня 0 не подключены напрямую к сети. Они сами являются фактическим устройством хронометража и должны быть подключены к компьютеру для получения фактического времени. Затем этот компьютер становится NTP-сервером уровня 1.
Компьютер, подключающийся к уровню 1 уровня, также может стать сервером времени, но тогда это будет уровень 2-го уровня. Поскольку компьютеры подключаются к серверам времени, чем ниже уровень уровня, тем точнее может быть время.
Устройства уровня 0 включают атомные часы, участвующие в TAI (международное атомное время)или синхронизируются с ним и приемники сигнала времени, отправленные такими часами. Чаще всего это GPS-приемники хронометража с соответствующим интерфейсом, который включает сигнал GPS PPS. Сигнал PPS, когда GPS имеет хорошую блокировку на нескольких спутниках, посылает один импульс в секунду, и передний фронт этого импульса находится в наносекундах от фактического начала этой секунды. В зависимости от спецификации приемника GPS сигнал PPS может быть более или менее точным. Это потому, что у каждого спутника GPS есть атомные часы. Как только GPS-приемник найдет свое местоположение и местоположение спутников GPS, которые он слушает, он может скорректировать радиочастотное распространение и дать вам время, почти такое же точное, как наличие атомных часов прямо на GPS-приемнике.
Таким образом, серверы уровня 1 подключаются к атомным часам или приемникам GPS, а NTP-серверы подключаются к ним. Даже подключение к серверу уровня 2 или 3 уровня с частыми настройками обеспечит вашему компьютеру точность синхронизации, измеряемую в наносекундах. Но если вам нужно улучшить синхронизацию, подключитесь к серверу первого уровня или купите соответствующий приемник GPS с хронометражем и сами станьте источником первого уровня.
Все часы в некоторой степени дрейфуют, это зависит от источника сигнала синхронизации и от того, насколько хорошо он отслеживается. В настоящее время это ПК HPET, но при перегрузке ПК может потерять счет того, сколько тиков прошло.
Серверы NTP, к которым обращается ваша машина, вероятно, тоже теряют время, однако они возвращаются к лучшему источнику.
В конечном счете, лучшими источниками являются высокоточные часы, такие как атомные часы. Вы можете думать о NTP как о сети машин, каждый из которых будет иметь несколько источников, на которые он полагается в течение времени, и искажает свое время до того, что считается более точным.
Это регулируется источником, объявившим свой пласт. Атомные или GPS-часы - это уровень 0, который определяет время. Каждый слой, выходящий из этого, является следующим слоем - слоем 1, и будет проверять количество источников слоя 0 вместе со сверстниками на том же уровне, чтобы проверить правильность источников времени.
Скорее всего, вы говорите с источником времени 2 или 3 уровня.
То, что написали другие, правда: сервер Stratum 1 получает время от устройства Stratum 0. Я не знаю, в каких временных интервалах это происходит, но я думаю, что они достаточно точны.
Сервер Stratum n с n> 1 получает свое время через NTP от сервера Stratum n-1. Это означает, что он синхронизируется с ним через равные промежутки времени. После запуска службы NTP синхронизация происходит через довольно короткие интервалы, и со временем интервалы начинают увеличиваться. В конце концов, интервал составляет 1024 с, около 17 минут.
Что не было решено, так это вопрос, что происходит между тем временем? Ну, есть объект, который называется дрейф файл . Это помогает NTP отслеживать любой сдвиг между местными часами и опорными часами. Частота локальных часов затем регулируется в соответствии с обнаруженным дрейфом, так что время также является точным между опросами сервера.
В других реализациях NTP могут использоваться другие средства, но часто встречается одна вещь: необходимость и возможность настройки тактовой частоты.