Найти в Дзене

NTP. "Почему у всех одинаковое время?"

NTP - Network Time Protocol (протокол сетевого времени) широко используется в Интернете для синхронизации счета часов. Технология позволяет автоматически синхронизировать часы посредством локальной сети или сети Интернет. Таким образом, используя NTP-сервер, можно обеспечить точным временем любой компьютер или другое устройство. А откуда же на сервере берется информация, она ведь на всех серверах должна быть одинакова!? NTP-серверы имеют иерархическую (уровневую) структуру, каждый уровень которой называется ярусом (stratum). Изначальную информацию о точном всемирном координированном времени (UTC - Universal Time Coordinated) NTP-серверы получает от авторитетного источника часов, такого как атомные часы или GPS. Отклонение счета которых не превышает 1 сек за 300 000 лет. это и есть stratum 0. На этом ярусе NTP-серверы не работают. С устройств stratum 0 информация снимается специализированными компьютерами, которые и являются stratum 1. На этом ярусе устройства уже не так точны, как на 0

NTP - Network Time Protocol (протокол сетевого времени) широко используется в Интернете для синхронизации счета часов. Технология позволяет автоматически синхронизировать часы посредством локальной сети или сети Интернет. Таким образом, используя NTP-сервер, можно обеспечить точным временем любой компьютер или другое устройство.

А откуда же на сервере берется информация, она ведь на всех серверах должна быть одинакова!?

NTP-серверы имеют иерархическую (уровневую) структуру, каждый уровень которой называется ярусом (stratum).

Изначальную информацию о точном всемирном координированном времени (UTC - Universal Time Coordinated) NTP-серверы получает от авторитетного источника часов, такого как атомные часы или GPS. Отклонение счета которых не превышает 1 сек за 300 000 лет. это и есть stratum 0. На этом ярусе NTP-серверы не работают.

С устройств stratum 0 информация снимается специализированными компьютерами, которые и являются stratum 1. На этом ярусе устройства уже не так точны, как на 0-ом, и отклонение значения на них может достигать микросекунды.

Далее информация передается на NTP-серверы и NTP-клиенты находящиеся на stratum 2, которые будут иметь отклонение в пределах от микросекунды до миллисекунды. Однако синхронизация с серверами stratum 2 доступна не каждому (хотя многие бы хотели синхронизироваться именно с ними). Это связано с тем, что множество индивидуальных клиентских запросов окажут слишком большую нагрузку для серверы. Поэтому данные с серверов stratum 2, передаются на сервера stratum 3, на котором погрешность еще немного выше.

Всего данная структура может достигать 15 ярусов.

Структура протокола NTP является отказоустойчивой и избыточной. Т.к. сервера каждого яруса синхронизируются не только внутри одного уровня, но и с несколькими серверами предыдущего.

Рисунок 1: Структура NTP
Рисунок 1: Структура NTP

Где же они, эти серверы?

Серверы-NTP, предоставляющие публичные данные времени, широко доступны в Интернете, их насчитывается несколько тысяч в большинстве стран и на каждом континенте земного шара, включая Антарктиду (а иногда и в космосе), на кораблях и на морском дне. Эти серверы поддерживают, более чем 25 миллионов устройств в глобальной сети.

Наиболее популярные сервисы на территории РФ:

ntp0.ntp-servers.net; (доступны ntp0...ntp6)

0.ru.pool.ntp.org; (доступны 0...1)

ntp0.NL.net;

ntp1.vniiftri.ru; (доступны ntp1...ntp5)

ntp.ix.ru;

ntps1-1.cs.tu-berlin.de;

Что еще нужно знать?

Значение времени в данном протоколе не имеет привычного нам формата, типа часы-минуты-секунда, а передается 64-битным значением секунд (долей секунд), прошедших от начала отсчета. Следует учитывать, что NTP-серверы считают за начало отсчета 1 января 1900г., в отличии от Windows или Unix-системам, в которых отчет "начат" 1970г., соответственно при получении данных с сервера необходима коррекция не только по часовому поясу, но и разницы разных систем.

Традиционно NTP использует для своей работы протокол UDP, однако это не исключает его работу поверх TCP.

Официальный сайт NTP - https://www.ntp.org