Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум проекта HSDN _ NTP-серверы _ Поясните пожалуйста

Автор: YaShum 24.8.2016, 14:03

У вас на сайте написано, цитирую: "шкала времени в NTP повторяется каждые 232 секунды (136 лет)", каким образом шкала повторяется каждые 232 секунды и каким образом с этим связано 136 лет?
"получатель должен хотя бы примерно знать текущее время (с точностью 50 лет)" - почему получатель обязан знать с точностью до 50 лет, что будет если получатель не знает?
"Если же временное смещение слишком велико — больше 1000 с, то NTP-сервер или NTP-клиент прекращает настраивать время и ждет вмешательства оператора" - почему синхронизация невозможно если ошибка 1000 с? Значит всё-таки получатель должен знать дату с точностью до 1000 с, а не 50 лет?

Автор: Admin 24.8.2016, 17:09

Текст составляли не мы. Вы верно заметили, по тексту присутствует противоречие. Скорее всего оно возникло из-за того, что часть текста была скопирована с одного ресурса (Википедия), а другая часть - с другого неизвестного источника (найти его сейчас проблемно, т.к. уже прошло почти 10 лет).

1) Правильно будет не "232 секунды", а 2 секунды в 32 степени. Это ошибка в верстке HTML-страницы, отсутствовал тег <sup>. Исправлено.

2) Но поводу "50 лет" также имелась ошибка. Правильным значением будет 68 лет, согласно текущей информации на https://www.eecis.udel.edu/~mills/time.html. На тот момент, когда данная часть статьи была скопирована с Википедии, там, была https://ru.wikipedia.org/w/index.php?title=NTP&type=revision&diff=78578751&oldid=75789902. Исправлено.

3) Про "1000 секунд" - убрано, чтобы не вызывать противоречие.

Благодарим за ценные замечания!

Автор: YaShum 19.9.2016, 1:31

Цитата(Admin @ 24.8.2016, 20:09) *
Благодарим за ценные замечания!

Это хорошо что всё стало правильно =)
Но мне всё таки не понятно зачем знать точность до 68 лет, ведь время отсчитывается от известной даты(1900 года) и количество битов недвусмысленно говорит о текущей дате.
И ещё, почему если на моём компьютере время сбрасывается на заводское(при обнулении БИОСа), то время обновлять не хочет, хотя правило "68 лет" соблюдено?

Автор: Admin 19.9.2016, 13:55

Из личного опыта, как показала практика, время синхронизировать нельзя, если время на часах слишком сильно отличаются от реального времени.

Вероятнее всего это происходит из-за того, что NTP-клиент запрашивает у сервера не полный временной штамп (64-битное число с фиксированной запятой без знака, которое указывает число секунд с нуля часов 1-го января 1900 года), а лишь так называемый оффсет (смещение в секундах), на основе которого производится подстройка часов, а не их переустановка по альманаху. О чем свидетельствует выдержка из мануала ОС FreeBSD:

Цитата(https://www.freebsd.org/doc/ru/books/handbook/network-ntp.html)
Программа ntpd(8) изменяет время постепенно, тогда как ntpdate(8) устанавливает время вне зависимости от того, насколько велика разница между текущим временем машины и точным временем.

Также данные ограничения могут накладываться со стороны ПО намеренно. В Windows это параметры реестра MaxPosPhaseCorrection и MaxNegPhaseCorrection. По умолчанию значение составляет 54000 сек. (15 часов), следовательно, если время отличается на такую разницу, процедура синхронизация завершится ошибкой.

Для решения проблемы синхронизации при большиих разницах во времени, в системах семейства Unix предусмотрен специальный флаг -g для демона ntpd, позволяющий осуществить синхронизацию даже если образовалась большая разница (в пределах 68 лет). Либо можно просто воспользоваться программой ntpdate.

Для систем Windows решение описано здесь: http://support.microsoft.com/kb/884776/ru

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)