Опубликован: 10.10.2007 | Уровень: специалист | Доступ: платный
Лекция 7:

Сетевой протокол времени NTP

Статусное слово партнера

Статусное слово партнера возвращается в статусном поле отклика на команду чтения статуса, а также чтения или записи переменных. Это слово появляется в списке идентификаторов ассоциации и статусных слов, присылаемых в ответ на команду чтения статуса с нулевым идентификатором ассоциации. Формат статусного слова партнера содержит следующие поля ( рис. 7.4)

Форматы статусных слов

Рис. 7.4. Форматы статусных слов

Статус партнера — 5-битный код, характеризующий состояние партнера, определяемого процедурой обмена. Значения этого поля представлены в таблице 7.8.

Таблица 7.8. Коды состояния партнера
Значение кода Функция
0 Сконфигурирован (peer.config)
1 Разрешена аутентификация (peer.authenable)
2 Аутентификация успешна (peer.authentic)
3 Партнер доступен (peer.reach)
4 Зарезервировано на будущее

Выбор партнера ( Sel ) — 3-битный код, который говорит о состоянии партнера, определенного в результате процедуры выбора часов. Значения кодов представлены в таблице 7.9.

Таблица 7.9. Коды выбора партнера
Значение кода Функция
0 Отклонен
1 Проверка соответствия прошла успешно (тесты 1 - 8)
2 Прошел проверки корректности (алгоритм пересечения)
3 Прошел проверки как кандидат
4 Проверка ресурсов прошла успешно (алгоритм кластеризации)
5 Текущий источник синхронизации; превышено максимальное расстояние (если используются предельные проверки)
6 Текущий источник синхронизации; максимальное расстояние в пределах нормы
7 Зарезервировано на будущее

Счетчик событий партнера — 4-битовое число событий (exception) партнера, которые произошли со времени последнего получения статусного слова в рамках отклика или сообщения TRAP. Счетчик сбрасывается при занесении кода в поле статуса отклика и перестает изменяться при достижении значения 15.

Код события партнера — 4-битовое целое число, идентифицирующее последнее событие партнера. Новое значение переписывает предыдущее. Значения кодов представлены в таблице 7.10.

Таблица 7.10. Коды события партнера
Значение кода Функция
0 Не специфицировано
1 IP-ошибка партнера
2 Ошибка аутентификации партнера (бит peer.authentic был равен 1, а теперь =0)
3 Партнер не достижим (peer.reach стал равен нулю)
4 Партнер достижим (peer.reach стал не равен нулю)
5 Проблема с часами партнера
6-15 Зарезервировано на будущее

Слово состояния часов

Существует два способа подключить эталонные часы к NTP -серверу: как специальный прибор, поддерживаемый операционной системой, или как партнера, управляемого NTP. Как и в случае команды чтения статуса, идентификатор ассоциации определяет, часы какого из партнеров имеются в виду. При нулевом идентификаторе речь идет о системных часах. Протокол поддерживает только одни системные часы, число часов-партнеров практически не ограничено. Статусное слово часов системы или партнера записывается в поле статуса отклика или в переменные, характеризующие часы. Это слово может рассматриваться как расширение системного статусного слова или статусного слова партнера. Формат слова описан ниже (см. также рис. 7.4).

Состояние часов — 8-битовое число, характеризующее текущее состояние часов. Допустимые значения этого числа и их смысл представлены в таблице 7.11.

Таблица 7.11. Коды состояния часов
Код Функция
0 Работа часов в пределах нормы
1 Тайм-аут отклика
2 Плохой формат отклика
3 Сбой оборудования или программы
4 Потеря при передаче
5 Неверный формат или значение даты
6 Неверный формат или значение времени
7-255 Зарезервировано на будущее

Код события для часов — 8-битовый код, идентифицирующий последнее событие для данных часов (exception). Новое значение переписывает предыдущее значение кода. Когда значение кода становится ненулевым для поля статуса радио-часов, этот код копируется в статусное поле кода события и считается, что произошло событие для системных часов или часов партнера.

Слово состояния ошибки

Статусное слово ошибки присылается в поле статуса отклика, если обнаружена ошибка в формате сообщения или в его содержимом. Его присутствие указывается равенствами E (error) и R (response) битов 1. Коды ошибки и их значения собраны в таблице 7.12.

Таблица 7.12. Коды ошибки
Код ошибки Значение
0 Не специфицировано
1 Неудачная аутентификация
2 Неверный формат или длина сообщения
3 Неверный код операции
4 Неизвестный идентификатор ассоциации
5 Неизвестное имя переменной
6 Неверное значение переменной
7 Административно запрещено
8-255 Зарезервировано на будущее

Команды

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

<identifier>[=<value>],<identifier> =<value> ],...

где <identifier> представляет собой имя переменной системы или партнера в форме ASCII-последовательности, а <value> является десятичным или шестнадцатеричным числом, или строкой, соответствующей синтаксису языка C. Для большей читаемости допускается применение пробелов (Whitespace). IP-адреса представляются в формате [n.n.n.n], где n — десятичное число. Скобки являются опционными.

Команды интерпретируются следующим образом.

Чтение статуса (1). Поле данных команды пусто или содержит список идентификаторов, разделенных запятыми. Команда работает по-разному в зависимости от значения идентификатора. Если идентификатор не равен нулю, отклик содержит идентификатор партнера и статусное слово. Если идентификатор ассоциации равен нулю, отклик включает в себя системный идентификатор (0) и статусное слово, в то время как поле данных содержит список пар двоичных кодов:

<идентификатор ассоциации> <статусное слово>,

по одному на каждую определенную в данный момент ассоциацию.

Чтение переменных (2). Поле данных команды пусто или содержит список идентификаторов, разделенных запятыми. Если идентификатор ассоциации не равен нулю, отклик включает в себя идентификатор запрашиваемого партнера и его статусное слово, в то время как в поле данных записывается список переменных партнера и их значения. Если идентификатор ассоциации равен нулю, поле данных содержит список системных переменных и их значения. Если партнер выбран в качестве источника синхронизации, отклик включает в себя идентификатор партнера и его статусное слово.

Запись переменных (3). Поле данных команды содержит список присвоений, описанный выше. Отклик идентичен отклику на команду чтения переменных.

Чтение переменных часов (4). Поле данных команды пусто или содержит список идентификаторов, разделенных запятыми. Идентификатор ассоциации выбирает переменные системных часов или партнера точно так же, как в случае команды чтения переменных. Отклик включает в себя запрошенные идентификатор часов и статусное слово, а поле данных несет в себе список переменных часов и их значений, включая последний временной код, полученный от часов.

Запись переменных часов (5). Поле данных команды содержит список присвоений, как это описано выше. Отклик имеет формат, как в случае команды чтения переменных часов.

Установка адреса/порта Trap (6). Идентификатор ассоциации команды, статус и поле данных игнорируются. Адрес и номер порта для последующих TRAP-сообщений берутся из самого управляющего сообщения. Исходное значение счетчика TRAP для сообщений откликов заимствуется из поля номера по порядку. Идентификатор ассоциации, статус и поле данных в отклике несущественны.

Отклик на TRAP (7). Это сообщение посылается, когда происходит некоторое событие (exception) в системе, у партнера или для данных часов. Код команды равен 7, а бит R=1. Содержимое trap-счетчика увеличивается на 1 для каждого сообщения данного типа. Поле номер по порядку сообщения равно содержимому этого счетчика. При посылке сообщения TRAP используется IP-адрес и номер порта, заданные командой установки адреса и порта TRAP. В случае системного TRAP идентификатор ассоциации устанавливается равным нулю, а поле статус содержит статусное слово системы. В случае TRAP партнера поле идентификатора ассоциации соответствует партнеру, а поле статус несет в себе его статусное слово. В поле данных опционно может быть включено любое символьное сообщение (ASCII).

Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Алексей Приходько
Алексей Приходько
Украина, Днепропетровск, Украинский государственный Химико-технологический университет, 2013
Юрий Волоховский
Юрий Волоховский
Украина, Харьков, ХарГАЖТ, 2007