@ Карта сайта News Автора!

Bog BOS: Network Time Protocol

Последние изменения:
2015.11.18: hard: обновлена статья про ИБП и их мониторинг

Последнее изменение файла: 2007.06.26
Скопировано с www.bog.pp.ru: 2016.07.28

Bog BOS: Network Time Protocol

Рекомендуется предварительное знакомство с системами отсчета времени.

В статье описывается высокоточный протокол синхронизации времени NTP (Network Time Protocol), его реализация в Unix (Linux) и Cisco, приводятся ссылки на списки публичных NTP серверов, которые можно использовать для синхронизации.

Базовые сведения о протоколе NTP

Назначение протокола состоит в синхронизации клиента или сервера с сервером или источником точного времени (радио, атомные часы или еще что). Стандартизована (Draft Standard) версия 3 протокола NTP (RFC-1305), но текущая реализация поддерживает как 3-ю, так и 4-ю версии. Синхронизируется не только текущее значение времени, но и частота отсчета таймера. Обеспечивает точность до милисекунды в пределах LAN и десятков милисекунд посредством WAN. Предусмотрена криптографическая защита (шифрование контрольной суммы), одновременное подключение к нескольким серверам на случай аварии, алгоритмы усреднения и т.д. Поддерживает самонастраиваемую иерархическую архитектуру сети синхронизации (симметричный механизм обмена пакетами). Главные сервера (напрямую присоединенные к источнику точного времени) образуют первый слой (stratum), присоединенные непосредственно к ним - второй слой, и т.д. Для обмена информацией между используется протокол UDP (порт 123). Используется довольно сложные алгоритмы фильтрации, селекции и комбинации пакетов на принципах максимальной вероятности. Протокол обеспечивает поддержку множества резервных серверов и путей передачи (выбор лучшего на основе алгоритма взвешенного голосования). Достигаемая точность первичного сервера - милисекунды. Типичный интервал опроса - от 1 минуты (в начале работы) до 17 минут (если все хорошо). Сервер непрерывно корректирует ход локальных часов, используя вычисленную информацию об отклонениях их частоты от истинной. Это позволяет уменьшить частоту опроса и удерживать отклонения показаний часов от истинных при временных сбоях сети. Подстройка частоты обеспечивает приличную точность часов даже при модемном соединении с Интернет. При больших отклонениях (более 128 мс) местного времени от времени выбранного сервера коррекция производится скачком, иначе путем подстройки частоты местных часов.

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

Возможные классы обслуживания:

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

При описании алгоритма используются следующие термины

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

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

Хотя для обмена информацией используется протокол UDP (connectionless), сервера хранят информацию о соседях в переменных состояния:

Для защиты от помех и ошибок передачи (UDP!) используются следующие методы:

Версия 4 (непринятая, но уже реализованная) обеспечивает большую точность за счет учета дрожания (jitter) источника и скорости работы сети, улучшенных алгоритмов обработки и подстройки локальных часов, более быстрой "сходимости" при запуске (минуты вместо дней). Это позволяет уменьшить частоту опроса клиентом серверов. Добавлены возможности наносекундного разрешения локальных часов (Linux?), управления с помощью SNMP и автоматической конфигурации клиентов (multicast) с обеспечением безопасности методами криптографии. В дополнение к алгоритмам симметричного шифрования (к DES CBC добавлен MD5) используется алгоритм с открытым ключом (autokey, работы не завершены).

Реализация серверов и клиентов NTP

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

В любом случае для надежной работы рекомендуется организовать от 3 до 5 локальных серверов NTP, объединенных "соседскими" связями и каждый из которых синхронизуется не менее чем с 3 внешними серверами желательно с использованием различных маршрутов доступа. Крайне нежелательно использовать несимметричные маршруты (туда по модему, обратно по спутниковому каналу).

RFC

Ссылки

@ Карта сайта News Автора!

Bog BOS: Network Time Protocol

Последние изменения:
2015.11.18: hard: обновлена статья про ИБП и их мониторинг

TopList
купить аккаунт warface
Copyright © 1996-2015 Sergey E. Bogomolov; www.bog.pp.ru (КГБ знает все, даже то что у Вас на диске ;)