ntp протокол что это
Ntp протокол что это
Network Time Protocol
Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью.
NTP использует для своей работы протокол UDP. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи.
NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0,2 мс (1/5000 с) и лучше внутри локальных сетей.
NTP — один из старейших используемых протоколов. NTP разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера в 1985 году и в настоящее время продолжает совершенствоваться. Текущая версия — NTP 4.
NTP использует иерархическую систему «часовых уровней» (stratum). Уровень 1 синхронизирован с высокоточными часами, например, с системой GPS, ГЛОНАСС (Единая Государственная шкала времени РФ) или атомным эталоном времени. Уровень 2 синхронизируется с одной из машин уровня 1, и так далее.
Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 −32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 50 лет). Также следует учитывать, что время отсчитывается с полуночи 1 января 1900 года, а не с 1970, поэтому из времени NTP нужно вычитать почти 70 лет (с учётом високосных лет), чтобы корректно совместить время с Windows или Unix-системами.
Более простая реализация этого алгоритма известна как SNTP — простой синхронизирующий сетевой протокол. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени.
Подробная реализация протокола и системы в целом описана в:
NTP не следует путать с daytime protocol RFC 867 или time protocol RFC 868 (win программа FG Time Sync).
Часовые слои
NTP использует иерархическую, многоуровневую систему источников времени. Каждый уровень этой иерархии называется слоем, каждому слою присваивается номер, начиная с 0 (ноль) в верхней части. Уровень слоя определяет расстояние от эталонных часов и существует, чтобы предотвратить циклические зависимости в иерархии. Важно отметить, что слой не является показателем качества и надежности, это значит, что источник слоя 3 может дать сигнал более высокого качества, чем некоторые источники слоя 2. В основном, слои служат для распределения нагрузки и обеспечения большей площади покрытия. Это определение слоя также отличается от понятия часовых слоёв, используемых в телекоммуникационных системах.
Это компьютер, к которому напрямую подключены эталонные часы. Он выступает в качестве сетевого сервера времени и отвечает на NTP-запросы посылаемые компьютерами слоя 2.
Это компьютеры, которые получают время от серверов первого слоя, используя для этого протокол NTP. Обычно, компьютеры второго слоя обращаются к нескольким серверам первого слоя, и используя NTP-алгоритм, получают наилучший образец данных, отсеивая сервера с очевидно неверным временем. Компьютеры могут сравнивать свои данные с другими компьютерами своего слоя для получения стабильных и непротиворечивых данных на всех компьютерах слоя. Компьютеры второго слоя в свою очередь выступают в качестве серверов для компьютеров третьего слоя и отвечают на NTP-запросы.
Компьютеры третьего слоя работают точно так же как и компьютеры второго слоя, с той лишь разницей, что серверами для них являются компьютеры вышележащего второго слоя. Они так же могут выступать в качестве серверов для нижележащего слоя. NTP (в зависимости от версии) поддерживает до 256 слоев.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
NTP (Network Time Protocol)
Уровень (по модели OSI): | Прикладной |
---|---|
Семейство: | стек протоколов TCP/IP |
Порт/ID: | 123/UDP |
Назначение протокола: | Синхронизация часов |
Спецификация: | RFC 5905 |
Вступил в силу с: | 1985 |
NTP (англ. Network Time Protocol — протокол сетевого времени) — сетевой протокол, используемый для синхронизации внутренних системных часов компьютера с помощью сетей с переменной латентностью.
NTP использует для своей работы протокол UDP и учитывает время передачи. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0,2 мс (1/5000 с) и лучше внутри локальных сетей.
Более простая реализация этого алгоритма известна как SNTP — простой протокол сетевого времени. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени.
Содержание
Принцип работы
NTP-серверы работают в иерархической сети, каждый уровень иерархии называется ярусом (stratum). Ярус 0 представлен эталонными часами. За эталон берется сигнал GPS (Global Positioning System) или службы ACTS (Automated Computer Time Service). На нулевом ярусе NTP-серверы не работают.
NTP-серверы яруса 1 получают данные о времени от эталонных часов. NTP-серверы яруса 2 синхронизируются с серверами яруса 1. Всего может быть до 15 ярусов.
NTP-серверы и NTP-клиенты получают данные о времени от серверов яруса 1, хотя на практике NTP-клиентам лучше не делать этого, поскольку тысячи индивидуальных клиентских запросов окажутся слишком большой нагрузкой для серверов яруса 1. Лучше настроить локальный NTP-сервер, который ваши клиенты будут использовать для получения информации о времени.
Иерархическая структура протокола NTP является отказоустойчивой и избыточной. Рассмотрим пример его работы. Два NTP-сервера яруса 2 синхронизируются с шестью различными серверами яруса 1, каждый — по независимому каналу. Внутренние узлы синхронизируются с внутренними NTP-серверами. Два NTP-сервера яруса 2 координируют время друг с другом. В случае отказа линии связи с сервером яруса 1 или с одним из серверов уровня 2 избыточный сервер уровня 2 берет на себя процесс синхронизации.
Аналогично узлы и устройства яруса 3 могут использовать любой из серверов яруса 2. Что еще более важно, так это то, что наличие избыточной сети серверов NTP гарантирует постоянную доступность серверов времени. Синхронизируясь с несколькими серверами точного времени, NTP использует данные всех источников, чтобы высчитать наиболее точное время.
Надо отметить, что протокол NTP не устанавливает время в чистом виде. Он корректирует локальные часы с использованием временного смещения, разницы между временем на NTP-сервере и локальных часах. Серверы и клиенты NTP настраивают свои часы, синхронизируясь с текущим временем постепенно либо единовременно.
Заголовок
Отступ | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|Октет | Бит | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Индикатор коррекции | Номер версии | Режим | Часовой слой | Интервал опроса | Точность | ||||||||||||||||||||||||||
4 | 32 | Задержка | |||||||||||||||||||||||||||||||
8 | 64 | Дисперсия | |||||||||||||||||||||||||||||||
12 | 96 | Идентификатор источника | |||||||||||||||||||||||||||||||
16 | 128 | Время обновления | |||||||||||||||||||||||||||||||
20 | 160 | ||||||||||||||||||||||||||||||||
24 | 192 | Начальное время | |||||||||||||||||||||||||||||||
28 | 224 | ||||||||||||||||||||||||||||||||
32 | 256 | Время приёма | |||||||||||||||||||||||||||||||
36 | 288 | ||||||||||||||||||||||||||||||||
40 | 320 | Время отправки | |||||||||||||||||||||||||||||||
44 | 352 |
Часовой слой
Индикатор коррекции
При следующих значениях:
Номер версии
Режим
При следующих значениях:
Интервал опроса
Задержка
Точность
Идентификатор источника
Временные характеристики
Формат времени
Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 −32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 68 лет). Также следует учитывать, что время отсчитывается с полуночи 1 января 1900 года, а не с 1970, поэтому из времени NTP нужно вычитать почти 70 лет (с учётом високосных годов), чтобы корректно совместить время с Windows или Unix-системами.
Сетевой протокол времени
Сетевой протокол времени илиNTP— этопротокол,который синхронизирует черезкомпьютерную сетьлокальные часыкомпьютеровпо временной шкале.
Версия 3 NTP является самой популярной на сегодняшний день. Он формализован RFC 1305 и имеет статус « Проект стандарта (en) », то есть «окончательная спецификация», он определяет несколько аспектов:
Разработка этого протокола и алгоритмов проводилась одновременно с разработкой программного обеспечения, соответствующего этим спецификациям. В результате этот вариант осуществления служит справочным материалом в данной области и называется «программным обеспечением NTP», даже если существуют другие решения. Большая часть этой работы была проделана в Университете Делавэра благодаря профессору Дэвиду Л. Миллсу и большой команде добровольцев.
Сразу после выпуска версии 3 NTP появилась упрощенная версия, названная « Simple Network Time Protocol » (SNTP), которая также была предметом нескольких RFC. По сравнению с NTP, эта версия упрощена в том смысле, что в ней не указаны алгоритмы, которые должны быть реализованы на машинах.
Резюме
Обзор NTP
Протокол NTP включает:
Архитектурная часть
Сетевая архитектура NTP
Архитектура NTP предусматривает:
Схема архитектуры типичной основной сети протокола сетевого времени (NTP).
Желтые стрелки указывают на прямую связь между выделенными часами высокой точности (дает страницу, посвященную атомным часам ) и между компьютерными серверами для мастеров вещания ; красные стрелки указывают на подключение через компьютерную сеть.
Эту диаграмму следует понимать очень широко и очень гибко: например, узел уровня 2 вполне может, в свою очередь, быть сервером университета для синхронизации ПК (или персональных компьютеров) нескольких тысяч студентов. В этом случае студенты вряд ли захотят синхронизировать свои ПК (или персональные компьютеры) попарно, за исключением, возможно, особых случаев, когда студенты хотят иметь возможность продолжать обмен датированными данными, даже если домашний сервер. деактивирован или недоступен в желаемое время.
Каждый узел этой архитектуры должен быть настроен путем указания ему по крайней мере его родительских и / или дополнительных серверов. Каждый пользователь несет ответственность за выполнение этой настройки локально. Именно эта совокупность конфигураций шаг за шагом создает сеть NTP; она не существует ранее и даже не настраивается централизованно. Эта архитектура является гибкой, расширяемой и надежной, но ответственность за ее вклад лежит на пользователях.
Способы вещания времени
Время вещания основано на:
Часть обмена сообщениями
Обмен сообщениями NTP обеспечивает:
Когда выпускаются новые версии NTP, новая структура сообщения формируется путем агрегирования новой информации после сообщений предыдущей версии. Такой способ работы обеспечивает возможность взаимодействия различных версий, что облегчает общий перенос парка машин со старой версии на новую.
Алгоритмическая часть
Протокол NTP предоставляет алгоритмы для каждого клиента:
Подробное описание «работы NTP»
Сообщение с запросом времени, отправленное клиентом на сервер, и сообщение для ответа имеют одинаковую структуру. Это схематично показано ниже, это соответствует версии 3 NTP, но общий принцип, описанный ниже, сохраняется для всех версий; Основная информация, используемая в этом сообщении для расчета разницы во времени между клиентом и сервером, следующая:
Другая информация, содержащаяся в этом сообщении, используется в целях управления; их использование не подробно рассматривается в этой статье, мы можем обратиться к RFC 1305 для более подробной информации.
Описание модели NTP «клиент / сервер»
То, как клиент и сервер обрабатывают эту информацию, показано на диаграмме ниже:
Описание модели «симметричный активный / пассивный» NTP.
Эта модель близка к предыдущей со следующим отличием: как только начальный запрос отправлен, «сервер» и «клиент» поочередно обмениваются ролями, ответ одного становится запросом для другого, и это именно так. Как показано на картинке ниже.
Каждый из «Активных» и «Пассивных» узлов может затем рассчитать задержку передачи сообщений туда и обратно и разницу между его локальными часами и часами противоположного узла:
Описание «широковещательной» модели NTP
Отправляющий узел сообщения заполняет поле TT текущим временем T1, указанным его локальными часами. Получатель этого сообщения использует это время как местное время, сначала вычитая расчетное время передачи сообщения.
Зачем синхронизировать часы компьютера
С развитием компьютерных сетей возникла необходимость в синхронизации часов компьютерных систем, взаимодействующих друг с другом. Для некоторых областей абсолютно необходимо иметь справочное время, в частности, мы можем упомянуть:
Без хорошей синхронизации часов всех систем, взаимодействующих друг с другом, некоторые сервисы не могут быть корректно использованы. Таким образом, быстро необходимо было определить методы, позволяющие синхронизировать часы по эталонному времени. В случае NTP последний использует всемирное координированное время (UTC).
История
Версия 3 NTP является наиболее успешной на сегодняшний день, она определяет несколько аспектов:
Сразу после выпуска этой версии 3 NTP появилась упрощенная версия под названием Simple Network Time Protocol (SNTP), которая также была предметом нескольких RFC. По сравнению с NTP, эта версия упрощена в том смысле, что в ней не указаны алгоритмы, которые должны быть реализованы на машинах.
Таблица результатов
датированный | версия | RFC | статус |
---|---|---|---|
Сентябрь 1985 г. | v0 | RFC 958 | устарело по RFC 1059 |
Июль 1988 г. | v1 | RFC 1059 | устарело по RFC 1119 |
Октябрь 1989 г. | v2 | RFC 1119 | устарело RFC 1305 |
Март 1992 г. | v3 | RFC 1305 | устарело по RFC 5905 |
июнь 2010 | v4 | RFC 5905 | Предлагаемый стандарт |
Версия 0
Версия 1
В этой первой стабильной версии добавлены фильтры и алгоритмы выбора ( RFC 956 ), что обеспечивает явное улучшение точности. NTP достиг версии 1 в Июль 1988 г. ( RFC 1059 ).
Версия 2
Версия 3
Версия 4
С 1994 года идет новая редакция протокола. Версия 4 широко используется. Улучшения, в частности, касаются:
В то же время ведется работа над новой моделью часов для ядер операционной системы с наносекундной точностью.
датированный | версия | RFC | описание | статус |
---|---|---|---|---|
Август 1992 г. | RFC 1361 | SNTP | устарело согласно RFC 1769 | |
Март 1995 г. | v3 | RFC 1769 | SNTP | устарело по RFC 4330 |
Октябрь 1996 | v4 | RFC 2030 | SNTP для IPv4, IPv6 и OSI | устарело по RFC 4330 |
январь 2006 г. | v4 | RFC 4330 | SNTP для IPv4, IPv6 и OSI | Информационная |
Принцип
В дополнение к определению сетевого протокола, позволяющего передавать эталонное время, NTP определяет архитектуру, различные методы и алгоритмы, направленные на максимальное ограничение дрейфа относительно этого эталонного времени из-за времени передачи.
Что не делает NTP
Это ответственность операционной системы, которая в зависимости от того, где администратор объявил о расположении компьютера, должна внести соответствующие исправления для перехода на летнее время.
Механизм шифрования не предусмотрен, сообщения NTP распространяются по сети в незашифрованном виде.
Архитектура
Сеть NTP состоит из:
В 1999 году количество оценивалось:
из 175 000 серверов NTP
В декабрь 2006 г. количество клиентов NTP, несомненно, исчислялось десятками миллионов.
В настоящее время почти все операционные системы используют протокол NTP. Однако настройка по умолчанию не предназначена для обеспечения точного управления системными часами, а просто для того, чтобы время от времени грубо перезагружать машину.
Обратите внимание, что в домене Microsoft NTP синхронизирует рабочие станции из домена.
Выполнение
Время определяется как 64- битное целое число :
Таким образом, шкала времени составляет 232 секунды (или немногим более 136 лет) с теоретическим разрешением 2-32 секунды (что соответствует немногим менее 0,233 наносекунды ).
Программное обеспечение ntp можно заменить на chrony, специально разработанное для компьютеров Unix / Linux, периодически подключенных к Интернету.
Протоколы NTP и SNTP: различия и как они работают
NTP (Cеть Протокол времени) и SNTP (простой протокол сетевого времени) два основных протокола для правильного функционирования Интернета. Оба протокола позволяют всем устройствам в сети, таким как компьютеры, серверы, коммутаторы, маршрутизаторы, Smart TV или любые другие устройства, подключенные к Интернету, иметь возможность иметь правильное время в вашей системе, чтобы не возникало проблем. при просмотре. онлайн или выполнить любую задачу. Сегодня в этой статье мы собираемся подробно объяснить оба временных протокола, различия между NTP и SNTP, а также то, как они настроены на разных устройствах.
Что такое NTP (сетевой протокол времени) и как он работает?
Со временем проблемы безопасности, связанные с протоколом NTP были обнаружены как в реализации в различных операционных системах, в клиентах NTP на разных компьютерах, так и во внутренней безопасности самого протокола, который он не использует. любой тип аутентификации или шифрования данных для обмена сообщениями. Серверы NTP уязвимы для атак Man in the Middle, если пакеты не подписаны криптографически, то же самое касается самих компьютеров, он может выполнять атаки MitM для изменения времени на конечных компьютерах. Протокол NTP отправляет всю информацию в виде обычного текста, он не имеет какого-либо типа шифрования, аутентичность или целостность данных проверяется. Чтобы этого избежать, сетевое время Безопасность (NTS) был разработан протокол, который представляет собой безопасную версию NTP, использующую TLS и AEAD для защиты связи, и что никто не может выдавать себя за сервер NTP для неправильной настройки времени в нашей системе.
Что делать, если в моей системе нет правильного времени?
Как видите, у нас много проблем, когда дело доходит до неправильного времени в определенной компьютерной системе.
Что такое SNTP (простой протокол сетевого времени) и как он работает?
SNTPv4 обеспечивает упрощенный доступ для серверов и клиентов, которые используют текущую и предыдущую версии NTP и сам SNTP, доступ идентичен протоколу UDP / TIME, поэтому адаптация должна быть очень простой. Этот протокол разработан для работы в конфигурации с выделенным сервером, который включает в себя встроенные радиочасы, кроме того, были улучшены и контролировались задержки, точное время можно вводить за несколько микросекунд без каких-либо проблем.
Различия между NTP и SNTP
Основное различие между NTP и SNTP заключается в том, что последний не требует какого-либо типа хранения состояния в течение очень длительных периодов времени, что делает протокол NTP. Очень важным отличием для сетевых администраторов является работа связи, позволяющая или запрещать трафик на межсетевых экранах или создавать списки контроля доступа на управляемых коммутаторах.
Протокол NTP работает с протоколом UDP на порту 123, этот порт 123 UDP используется для связи как в источнике, так и в пункте назначения. Как мы объясняли ранее, если вы активировали «атаку Blat» в коммутаторах, и у вас есть устройство, которое использует чистый протокол NTP, оно наверняка блокирует трафик только от NTP без вашего ведома.
Как вы видели, протоколы NTP и SNTP являются двумя фундаментальными и очень важными протоколами для компьютерных систем, поэтому важно правильно настроить время либо в операционной системе вашего настольного компьютера, либо в другом сетевом оборудовании, которое у вас есть.