NTP и синхронизация времени

Сетевой протокол времени — это онлайн-протокол синхронизации времени. Он был разработан в 1985 году Дэвидом Миллсом из Университета штата Делавэр и по сей день обеспечивает высокую точность компьютерных часов и других устройств, подключенных к сети.

В средах, требующих высочайшей точности времени, используются аппаратные серверы/ Примером такого решения может быть сервер Npr Elproma NTS-5000, синхронизирующий время со спутниковым приемником GNSS (поддерживается GPS, ГЛОНАСС, Beidou, Galileo, IRNSS и Iridium) и оснащенный генератором рубидия и кварцевым генератором TCXO для поддержки времени. Подробнее смотрите на http://junipershop.ru/syntime.

Сетевой протокол времени (NTP) — один из самых старых интернет-протоколов, основанный на классической архитектуре клиент-сервер. Сервисный клиент отправляет запрос на отправку текущего времени. В ответ он получает набор адекватной информации, необходимой для синхронизации системных часов. Проблема в том, что с момента отправки его до получения пакета через Интернет, его обработки и синхронизации часов, проходит некоторое время.

Протокол NTP использует множество сложных математических и статистических алгоритмов, чтобы обеспечить чрезвычайно высокую точность синхронизации и смягчить эффект дрейфа тактовых импульсов, включая проблемы, связанные с преобразованием задержки пакета и коррекцией тактовой частоты. В результате NTPv4 теоретически позволяет синхронизировать тактовую частоту с точностью до наносекунды, хотя на практике точность NTP устанавливается на 1-2 мс в случае синхронизации по локальной сети и несколько десятков мс для синхронизации по Интернету.

NTP против SNTP

Реализация алгоритмов NTP требует выделения некоторой вычислительной мощности и памяти, что в случае таких устройств, как микроконтроллеры, камеры видеонаблюдения или сетевые коммутаторы, может быть недостаточным. С другой стороны, на многих устройствах, например ноутбуках сотрудников, такая высокая точность времени, гарантируемая NTP, просто не требуется. Это основная причина введения упрощенной версии протокола, называемого простым сетевым протоколом времени (SNTP), для общего пользования. Он имеет ряд ограничений, обсуждение которых, в то же время, позволяет представить гораздо более обширные возможности «полного» протокола NTP.

SNTP игнорирует ряд математических и статистических вычислений, поэтому невозможно обеспечить высокую точность синхронизированного времени, предлагаемого «полным» NTP. Более того, протокол SNTP позволяет синхронизировать время только из одного источника за раз — аппаратных часов компьютера или сервера времени в сети. Клиент SNTP не может обнаружить несоответствия или искажения, устанавливая часы без дополнительного резервирования в соответствии с отметкой времени, полученной от сервера. Для противовеса NTP позволяет осуществлять мониторинг многих источников, а встроенные алгоритмы позволяют оценить, какой из них следует считать наиболее надежным. NTP учитывает статистику задержек и временных корреляций в компьютерной сети. На основе меток, поступающих одновременно из разных источников времени, и алгоритма анализа, основанного на методе DTS, он может определить точное время. Высокая точность достигается благодаря еще одному аспекту — NTP регулирует время постепенно, ускоряя или замедляя системные часы, чтобы учесть даже самые маленькие изменения во времени. Многие клиенты SNTP применяют простую временную настройку времени в соответствии с полученной отметкой времени. Кроме того, NTP включает в себя множество функций безопасности, которые защищают от попыток атаковать сервер. Наиболее важным является вычисление контрольных сумм с использованием алгоритма MD5, которые подтверждают происхождение метки времени из правильного источника. SNTP не предлагает такие механизмы.

Однако среди всех ограничений протокола мы находим много общих элементов. Главной целью является синхронизация времени с главными часами, и протоколы NTP и SNTP считаются совместимыми. Пакеты, отправляемые между клиентом и сервером, идентичны в обоих случаях, что означает, что клиент SNTP может синхронизироваться с любого NTP-сервера. Поэтому основное различие между NTP и SNTP заключается не в разнице между отправляемой информацией, а в способе, которым алгоритмы могут рассчитывать текущее время с учетом сетевых задержек и других характеристик, которые влияют на точность синхронизации компьютерных часов.

Источник: vuz-chursin.ru

Уютный дом