
С распространением сетей и межсистемных процессов возникла необходимость найти единое решение для синхронизации системного времени. Официальным стандартом стал протокол сетевого времени (NTP), который использует различные алгоритмы для коррекции отклонений и использует официальное мировое время в качестве эталонных часов. Выпуск упрощенной версии под названием простой протокол сетевого времени (SNTP) в начале 1990-х годов объясняется в первую очередь ограниченной вычислительной мощностью компьютеров, доступных в то время. При синхронизации по SNTP вычислительная мощность используется гораздо меньше, чем при использовании основного протокола, NTP, что освобождает процессор для других задач — однако большинство современных устройств имеют вычислительную мощность, способную выдержать сложность NTP.
Что такое SNTP?
Простой сетевой протокол времени (SNTP) — это протокол синхронизации времени семейства протоколов TCP/IP. Он основан на протоколе пользовательских дейтаграмм (UDP) без соединения и может использоваться на всех поддерживающих устройствах для синхронизации системного времени в IP-сетях (IPv4 и IPv6). В основе лежит клиент-серверная структура, в которой отдельные клиенты получают информацию о времени от выбранного сервера времени в той же сети. В случае, если он недоступен, в качестве резервных доступны дополнительные серверы времени. Первая версия SNTP датируется 1992 годом и описана в RFC 1361. В нем протокол описывается как упрощенный вариант протокола сетевого времени, который также используется для корректировки системного времени в сетях.
После нескольких пересмотров протокол, разработанный рабочей группой в Университете Делавэра, теперь доступен в своей четвертой версии (SNTPv4). Эта версия была опубликована университетом в 2006 году в RFC 4330.
Простой сетевой протокол времени (SNTP) — это протокол семейства интернет-протоколов, используемый для синхронизации системного времени в сетях. Текущая версия SNTPv4 поддерживает сети IPv4 и IPv6 и более подробно описана в RFC 4330. Клиенты SNTP используют ранее выбранный сервер времени для корректировки.
Как работает синхронизация SNTP?
Как и NTP, SNTP используется для простой синхронизации системного времени всех устройств в сети. Для этого используется модель клиент-сервер и официальное мировое время («координированное универсальное время») в качестве эталонного времени. Так называемые серверы времени выступают в роли «распределителей» времени для клиентов SNTP, то есть соответствующих устройств, системное время которых должно быть синхронизировано с помощью простого протокола сетевого времени. Необходимые для этой функции IP-пакеты передаются через UDP-порт 123, а поскольку SNTP очень похож на NTP, для процесса синхронизации часто используются серверы NTP.
Передача IP-пакетов может осуществляться либо через простые прямые соединения (unicast) между клиентом и сервером, либо через многоточечные соединения между сервером и несколькими клиентами (broadcast и multicast).
Различия между SNTP и NTP
SNTP и NTP можно различать по двум следующим пунктам:
- Количество серверов, используемых для процесса синхронизации
- Количество алгоритмов, используемых для компенсации временных отклонений и обеспечения максимально точных результатов.
Синхронизация SNTP часто основана на одном сервере времени
В отличие от более сложного протокола NTP, простой протокол сетевого времени ставит во главу угла простоту. Спецификация SNTP рекомендует получать информацию о времени только от одного сервера, и следует избегать любой дальнейшей зависимости клиент-сервер. Более того, использование SNTP на стороне сервера предполагается только в том случае, если нет другого источника синхронизации. Синхронизация через NTP, с другой стороны, опирается на сложную конструкцию из различных серверов, которые передают информацию в иерархической системе уровней. В зависимости от расположения в цепочке, системы, участвующие в процессе, могут быть как клиентами, так и серверами.
Простой протокол сетевого времени содержит меньше алгоритмов
SNTP не использует некоторые алгоритмы, которые предусмотрены спецификацией NTP в качестве стандартных. Эти алгоритмы служат для компенсации отклонений в локальном системном времени, чтобы всегда иметь возможность обеспечить наилучшее соотношение с мировым временем. В результате SNTP обеспечивает более низкий уровень точности, чем NTP, что делает упрощенный протокол непригодным для приложений и процессов, требующих невероятно точной синхронизации времени. Благодаря сочетанию меньшего количества алгоритмов и связи клиент-сервер, синхронизация SNTP требует значительно меньше ресурсов, что особенно полезно для простых устройств или систем с низкой вычислительной мощностью.
Протокол SNTP больше не играет роли в синхронизации времени на имеющихся в продаже компьютерах в связи с улучшением вычислительной мощности. Более сложные протоколы, такие как NTP, используются стандартно и не оказывают заметного влияния на производительность.