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
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Мельников Дмитрий Анатольевич

Метки времени представляют собой беззнаковые значения времени, а выполнение операций над ними приводит к результату, который относится к той же самой или смежной эпохе. Нулевая эра включает даты, начиная с точки отсчёта первичной эпохи до определённого момента времени в 2036 году, когда поле метки времени полностью заполниться единицами и в следующий момент времени обнулиться, и после этого начнётся первая эра (№1). В обоих форматах нулевое значение представляет собой особый случай, при котором неизвестно время или отсутствует возможность синхронизировать время. На рис.5 представлено несколько исторических NTP-дат и их значения в соответствие с Модифицированным Юлианским днём (Modified Julian Date — MJD), NTP-эпохой и NTP-меткой времени.

ДатаMJDNTP-эпоха (эра)NTP-метка времени (сдвиг эпохи)Сдвиг
1 января -4712 года-2,400,001-491,795,583,1041-ый день Юлианского календаря
1 января -1 года-679,306-14139,775,7442 век до нашей эры
1 января 0 года-678,491-14171,311,7441 век до нашей эры
1 января 1 года-678,575-14202,939,1441 век нашей эры
4 октября 1582 года-100,851-32,873,647,488Последний день Юлианского календаря
15 октября 1582 года-100,840-32,874,597,8881-ый день Григорианского календаря
31 декабря 1899 года15019-14,294,880,896Последний день NTP-эпохи -1 (эра № -1)
1 января 1900 года1502000Первый день NTP-эпохи 0 (эра № 0)
1 января 1970 года40,58702,208,988,800Первый день UNIX-эпохи
1 января 1972 года41,31702,272,060,800Первый день UTC-эпохи
31 декабря 1999 года51,54303,155,587,200Последний день 20-го века
8 февраля 2036 года64,731163,104Первый день NTP-эпохи 1 (эра № 1)
Рис.5. Наиболее интересные исторические NTP-даты

Пусть p будет число старших битов, отведенных для дробной части секунды. Тогда точность часов определяется выражением 2-p в секундах. С целью минимизации отклонения и содействия в формировании максимально непредсказуемых для нарушителя значений меток времени младшие биты должны быть установлены в форме реальной случайной последовательности битов. Точность часов представляет собой текущее время для считывания системного времени, в секундах.

Замечание. Точность, определённая таким образом в этом стандарте, может быть больше или меньше, чем разрешение. Параметр ρ, используемый в данном стандарте для обозначения точности, всегда больше двух.

При обработке значений дат и меток времени допускается только одна арифметическая операция — вычитание по модулю два, в результате которого получается 127- или 63- битовое знаковое значение. Чрезвычайно необходимо, чтобы разности первого порядка между двумя датами сохраняли полную 128-битовую точность, а разности первого порядка между двумя метками времени сохраняли полную 64-битовую точность. Однако, разности обычно представляют собой весьма малые значения, как правило, сравнимые с коротким промежутком времени в несколько секунд, и поэтому они могут быть преобразованы в удвоенный формат с плавающей запятой (точкой) для последующей обработки, причём без снижения точности.

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