Реклама:

info.krc.karelia.ru

win -:|:- koi -:|:- iso -:|:- dos -:|:- mac

Start -:|:- Проекты -:|:- О нас

Network time protocol (версия 3)

 

Назначение: синхронизация клиента или сервера с сервером или источником времени (радио, атомные часы или еще что). Обеспечивает точность до милисекунды в пределах LAN и десятков милисекунд посредством WAN. Предусмотрена криптографическая защита (шифрование контрольной суммы), одновременное подключение к нескольким серверам на случай аварии, алгоритмы усреднения и т.д. Поддерживает самонстраиваемую иерархическую архитектуру сети синхронизации (симметричный механизм обмена пакетами). Главные сервера (напрямую присоединенные к источнику времени) образуют первый слой (stratum), присоединенные непосредственно к ним - второй слой, и т.д. Протокол класса UDP (connectionless). Используется фильтрация, селекция и комбинация пакетов на принципах максимальной вероятности. Множество резервных серверов и путей передачи (выбор лучшего на основе алгоритма взвешенного голосования). Достигаемая точность первичного сервера - милисекунды. Типичный интервал опроса - от 1 минуты (в начале работы) до 17 минут (если все хорошо).

Классы обслуживания:

  1. multicast: для использования в быстрой локальной сети с множеством клиентов и без необходимости в высокой точности, один или более NTP-серверов рассылают broadcast, клиенты определяют время исходя из предположения, что задержка составляет несколько милисекунд; сервер не принимает ответных NTP сообщений;
  2. procedure-call: в условиях когда нужна высокая точность, а multicast недоступен; NTP-клиент посылает NTP-запрос на сервер, который обрабатывает его и немедленно посылает ответ; сервер не синхронизируется с клиентом
  3. symmetric: динамически реконфигурируемая иерархия серверов, каждый сервер синхронизирует и синхронизируется своими соседями в соответствии с правилами выбора соседей; активный режим используется серверами низшего уровня (большой номер страта) с преконфигурированными адресами соседей, пассивный режим используется серверами близкими к корню и взаимодействующими с соседями с заранее неизвестными адресами. Для каждой пары серверов, обменивающися сообщениями, создается ассоциация.

В качестве значения времени используется беззнаковое 64-битовое число с фиксированной точкой, число секунд в UTC. Первый 32 бита - число секунд, вторые 32 бита - дробная часть. Точность 232 пикосекунды. Старший бит взведен где-то в 1968 году, переполнение наступит в 2036 году. 0 означает неопределенное время.

Стандарты

1305  PS  D. Mills, "Network Time Protocol (v3)", 04/09/1992. (Pages=120)отменил RFC-1119, RFC-1059, RFC-958
           (Format=.txt) (Obsoletes RFC1119) 
1165  E   J. Crowcroft, J. Onions, "Network Time Protocol (NTP) over the OSI  NTP в условиях сервиса,
           Remote Operations Service", 06/25/1990. (Pages=9) (Format=.txt) ориентированного на соединение
										(не наш случай)
1129      D. Mills, "Internet time synchronization: The Network Time  более свежая версия текста
           Protocol", 10/01/1989. (Pages=29) (Format=.txt, .ps) 
1128      D. Mills, "Measured performance of the Network Time Protocol in the 1% хостов поддерживает NTP
           Internet system", 10/01/1989. (Pages=20) (Format=.txt, .ps) 30% из них дает точность 30мс,
		99% дает точность 10 секунд, NTP дает точность в 1000 раз выше, чем TIME или ICMP Time-
		stamp.

Термины

стабильность
способность удерживать постоянную частоту
точность (аккуратность)
совпадение с национальным стандартом
разрешение
точность измерения
смешение часов
разница во времени между ними
skew
разница в частоте между ними
надежность
доля времени, в которое часы доступны
синхронизация часов
синхронизация частоты и времени
первичный (primary) источник
синхронизированный с национальным стандартом (провод, радио, атомные часы)

Формат NTP-пакета

LI (leap indicator) - в конце суток должна быть вставлена секунда для синхронизации атомных и астрономических часов.

VN - номер версии (3).

mode - режим работы.

stratum - слой

precision - разрешение местных часов.

poll interval - интервал запросов (используется минимальный из своего и соседского).

synchronization distance - полный цикл обмена сообщениями (roundtrip delay) до первичного источника.

synchronization dispersion - дисперсия этих задержек.

reference clock identifier - тип опорных часов.

reference timestamp - время последнего изменения опорных часов (используется для управления).

originate timestamp - время соседа, когда последнее NTP-сообщение было отправлено (копировано по прибытии из transmit timestamp).

receive timestamp - местное время получения этого последнего NTP-сообщения.

transmit timestamp - местное время отправки текущего сообщения.

authenticator (96 bit) - опция - ключ и шифрованная контрольная сумма сообщения.

Переменные состояния.

32-битные IP-адерса и 16-битные номера портов сервера и соседа, определяющие ассоциацию.

Счетчик, управляющий интервалами посылки NTP-сообщений (определяется динамически).

Достижим ли сосед.

Регистр фильтра: измеренные задержка/смещение и отдельный экземпляр задержки/смещения.

Задержка, смещение, дисперсия.

Источник синхронизации: сосед определенный алгоритмом выбора.

Местные часы.

Защита от помех.

Если в течении 8 последовательных интервалов опроса от соседа не было сообщений, то он цчитается недостижимым.

Делается проверка времен: если время передачи совпадает с предыдущим сообщением, то это несомненно дубль; если originate timestamp в сообщении не совпадает со значением передачи в переменных данной ассоциации, то нас пытаются обмануть.

Делаются дополнительные защиты от очень старых сообщений и не полностью синхронизованных ассоциаций.

Аутентикатор состоит из ключа и шифрованной контрольной суммы деляется с помощью DES и DES cipher block-chaning, обеспечивает непрерывную цепочку сообщений между узлами, в которую невозможно влезть (необходима компенсация времени шифровки).

Типовая конфигурация.

Типовая конфигурация включает 3 местных сервера, каждый из которых подключен к двум внешним серверам (различным!) и соединены между собой. Клиенты подключены к каждому из трех местных серверов.

Реализация:

UNIX: xntpd

Cisco

клиент для Apple: macntp

Ссылки:

Публичные NTP-сервера

2 88ms www.demos.su. (M9 - 7 hops)
2 bgm.rosprint.net.
2 234ms crocus.gamma.ru. (M9 - radio-msu - 10 hops)
2 190ms news.gamma.ru. (M9 - radio-msu - 10 hops)
3 117ms news.demos.su. (M9 - 7 hops)
2 153ms unisun.radio-msu.net. (M9 - 9 hops)

официальный список NTP-серверов слоя 1

официальный список NTP-серверов слоя 2

а можно обнаглеть и использовать официальные правительственные (США) сервера страты-1 (свободные,;надежные - уж если они не работают...; близкие - всего 10 хопов; подсоединены напрямую к эталону времени, а не к каким-то простым атомным часам ;):

 

Rambler's Top100 Service Яндекс цитирования