RFC: 5905
Оригинал: Network Time Protocol Version 4: Protocol and Algorithms Specification
Предыдущие версии: RFC 958, RFC 1059, RFC 1119, RFC 1305, RFC 1361, RFC 1769, RFC 2030, RFC 4330
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Мельников Дмитрий Анатольевич

6. Типы данных (логическая харктеристика)

Все значения NTP-времени представляются в бинарном формате (twos-complement format), в котором биты нумеруются, начиная с нуля, слева на право (причём крайний левый бит — бит высшего порядка или старший). В настоящее время существуют три формата NTP-времени:

  1. 32-битовый укороченный формат (рис.4,1)

    Этот формат используется в полях заголовка NTP-сообщения, содержащих значения задержки и дисперсии, когда использование значений с высокой точностью или в более широком диапазоне не приемлемо. Он включает 16-битовое поле целых секунд и 16-битовое поле долей секунды.

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Секунды              |         Доли секунды          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
    Рис.4,1. 32-битовый укороченный формат NTP-времени
  2. 64-битовый формат метки времени (рис.4,2)

    Этот формат используется в заголовках NTP-сообщений или в других полях с ограниченной длиной. Он включает 32-битовое поле целых секунд (136 лет) и 32-битовое поле долей секунды (точность 232 пикосекунды).

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                            Секунды                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Доли секунды                         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
    Рис.4,2. 64-битовый формат метки времени
  3. 128-битовый формат даты (рис.4,3)

    Этот формат используется только тогда, когда существует возможность хранения с достаточным объёмом памяти. Он включает 64-битовое поле целых секунд (584 млрд. лет) и 64-битовое поле долей секунды (0,05 аттосекунды или 0,5е-18). С целью согласования отображений между форматами поле целых секунд разделено на два субполя: 32-битовое поле номера эпохи и 32-битовое поле сдвига эпохи. Эпохи не могут напрямую формироваться NTP-протоколом, и в этом просто нет необходимости. Если это будет необходимо, то тогда номер эпохи может быть получен из внешних источников, например, из файловой системы или специализированного аппаратного устройства.

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Номер эпохи                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |            Сдвиг относительно точки отсчёта эпохи             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                         Доли секунды                          |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
    Рис.4,3. 128-битовый формат даты

В форматах даты и метки времени точкой отсчёта первичной эпохи, или основной датой нулевой эры (№0), является 0000 часов 1 января 1900 года по UTC-шкале времени, когда все биты нулевые. Необходимо заметить, что строго говоря, UTC-времени не существовало до 1 января 1972 года, но существует договорённость о том, что оно существовало все вечность, и даже в случае, когда вся информация о применении вставочных секунд могла быть потеряна. Все даты определяются относительно первичной эпохи. Если значение даты больше чем нулевой, то она представляется временем после точки отсчёта первичной эпохи, если же — меньше, то она представляется временем до точки отсчёта первичной эпохи.

Замечание. Поле «Сдвиг эпохи» в формате даты и поле «Секунды» в формате метки времени интерпретируются одинаково.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.