Помощь - Поиск - Пользователи
Полная версия этой страницы: Поясните пожалуйста
Форум проекта HSDN > Проекты > NTP-серверы
YaShum
У вас на сайте написано, цитирую: "шкала времени в NTP повторяется каждые 232 секунды (136 лет)", каким образом шкала повторяется каждые 232 секунды и каким образом с этим связано 136 лет?
"получатель должен хотя бы примерно знать текущее время (с точностью 50 лет)" - почему получатель обязан знать с точностью до 50 лет, что будет если получатель не знает?
"Если же временное смещение слишком велико — больше 1000 с, то NTP-сервер или NTP-клиент прекращает настраивать время и ждет вмешательства оператора" - почему синхронизация невозможно если ошибка 1000 с? Значит всё-таки получатель должен знать дату с точностью до 1000 с, а не 50 лет?
Admin
Текст составляли не мы. Вы верно заметили, по тексту присутствует противоречие. Скорее всего оно возникло из-за того, что часть текста была скопирована с одного ресурса (Википедия), а другая часть - с другого неизвестного источника (найти его сейчас проблемно, т.к. уже прошло почти 10 лет).

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

2) Но поводу "50 лет" также имелась ошибка. Правильным значением будет 68 лет, согласно текущей информации на сайте поддержки NTP. На тот момент, когда данная часть статьи была скопирована с Википедии, там, была неверная информация. Исправлено.

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

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

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

Вероятнее всего это происходит из-за того, что 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
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2019 IPS, Inc.