Примеры сетевых топологий

         

Формат сообщений NTP


Протоколы NTP и SNTP используют в качестве транспортного протокол UDP. При этом работает UDP-порт 123 (NTP), который проставляется как в поле порта отправителя, так и получателя UDP-заголовка.

Ниже приводится описание формата сообщений NTP/SNTP v.4, которые размещаются после UDP-заголовка. Этот формат идентичен описанному в RFC-1305, за исключением содержимого поля идентификатора эталона (reference identifier). Поля заголовка представлены на рис. 4.4.16.2:

Рис. 4.4.16.2. Формат заголовка SNTP-пакета

Поле LI (Leap Indicator) содержит два бита кода предупреждения о добавлении/удалении секунды в последней минуте текущего дня. Значения кодов поля LI приведены в таблице 4.4.16.1:

Таблица 4.4.16.1 Значения кодов поля LI

LIВеличинаЗначение
000предупреждения нет
011последняя минута содержит 61 секунду
102последняя минута содержит 59 секунд
113аварийный сигнал (часы не синхронизованы)

Поле VN (Version Number - номер версии) имеет длину три бита и содержит номер версии протокола NTP/SNTP. Это поле содержит 3 для V.3 (только IPv4) и 4 для V.4 (IPv4, IPv6 и OSI).

Поле режим также содержит три бита и указывает на код режима. Значения кодов режима представлены в таблице 4.4.16.2.

Таблица 4.4.16.2. Значение кодов поля режим

РежимЗначение
0зарезервировано
1симметричный активный
2симметричный пассивный
3клиент
4сервер
5широковещательный
6для управляющих сообщений NTP
7зарезервировано для частного использования

В уникастном и эникастном режиме клиент при запросе устанавливает это поле равным 3 (клиент), а сервер в отклике устанавливает его равным 4. В мультикастном режиме сервер записывает в данное поле код 5 (широковещательный).

Поле слой (Stratum) содержит восемь бит, указывающих на уровень локальных часов. Значения кодов поля слой представлены в таблице 4.4.16.3.

Таблица 4.4.16.3. Значения кодов поля слой (stratum)

СлойЗначение
0не специфицирован или не доступен
1первичный эталон (например, радио часы)
2-15вторичный эталон (через NTP или SNTP)
16-255зарезервировано на будущее


Поле интервал запросов (Poll Interval - регистрация) содержит 8 бит и указывает на максимальный интервал между последовательными сообщениями. Код (k) характеризует показатель степени 2. Интервал между запросами равен 2k секунд. Значения, которые могут появиться в этом поле лежат в диапазоне от 4 (16 сек) до 14 (16284 сек); однако большинство приложений использует субдиапазон от 6 (64 сек.) до 10 (1024 сек).

Поле точность содержит 8 бит и характеризует точность локальных часов, в секундах (показатель степени 2, как и в предыдущем поле). Значения кодов в этом поле лежат в диапазоне -6 для частоты сети переменного тока до -20 для микросекундных часов.

Поле Root Delay представляет собой 32-битовое число с фиксированной запятой, характеризующее RTT в секундах до эталона точного времени. Запятая в этом числе располагается между битами 15 и 16. Заметим, что эта переменная может быть положительной или отрицательной. Диапазон значений кодов этого поля лежит в диапазоне от минус нескольких миллисекунд до плюс нескольких сотен миллисекунд.

Поле Root Dispersion представляет собой 32-битовое число без знака с фиксированной запятой, указывающее на номинальное значение временной ошибки относительно эталона в секундах. Разброс значений этого поля лежит в пределах от нуля до нескольких сот миллисекунд.

Поле идентификатор эталона представляет собой 32-битовую строку, которая позволяет однозначно идентифицировать эталон времени. В случае первичных серверов (слой 0 или 1) NTP V.3 или V.4, идентификатор представляет собой четырех символьную ASCII-строку, размещенную в левой части поля. Свободная часть поля заполняется нулями. Для вторичных серверов NTP V.3, идентификатор равен 32-битовому адресу эталонного источника (IPv4). Для вторичных серверов NTP V.4, в качестве идентификатора используются младшие 32 бита последней временной метки эталонного источника. Первичные серверы NTP (слой 1) должны заносить в это поле коды, идентифицирующие внешние эталоны согласно таблице 4.4.16.4. Если код в таблице отсутствует, допускаются и другие коды.



Таблица 4.4.16.4. Коды идентификатора эталона
ID-кодВнешний эталонный источник
LOCL В качестве первичного эталона для субсети используются некалиброванные внутренние часы, которые не имеют внешнего источника синхронизации
PPSАтомные часы или другой источник, выдающий импульс каждую секунду и индивидуально калиброванный с использованием национального стандарта времени
ACTSМодемная служба NIST (работает через коммутируемую телефонную сеть)
USNOМодемная служба USNO
PTBМодемная служба PTB (Германия)
TDFРадио 164 кГц (Allouis Франция)
DCFРадио 77.5 кГц (Mainflingen, Германия)
MSFРадио 60 кГц (Rugby, Англия)
WWVРадио 2.5, 5, 10, 15, 20 МГц (Ft. Collins, США)
WWVBРадио 60 кГц (Boulder, US)
WWVHРадио 2.5, 5, 10, 15 МГц (Кауи Гавайи, США)
CHUРадио 3330, 7335, 14670 кГц (Оттава, Канада)
LORCРадионавигационная система LORAN-C
OMEGРадионавигационная система OMEGA
GPSГлобальная служба определения местоположения
GOESГеостационарный спутник контроля за окружающей средой


Поле эталонная временная метка характеризует время, когда локальные часы были установлены или поправлены (64-битовый формат временной метки).

Поле Originate Timestamp (исходная временная метка) соответствует времени, когда клиент направил запрос серверу (64-битовый формат временной метки).

Поле Receive Timestamp характеризует время, когда запрос пришел на сервер (64-битовый формат временной метки).

Поле Transmit Timestamp соответствует времени, когда сервер послал отклик клиенту (64-битовый формат временной метки).

Поле аутентификатор (опционно) используется, когда необходима аутентификация, и содержит в себе ключевой идентификатор и сообщение.

Поле дайджест хранит код аутентификации сообщения MAC (Message Authentication Code).


Содержание раздела