Hardware - разное

       

Точность - вежливость серверов


Евгений Патий, IT News

Еще будучи студентом-первокурсником, впервые в жизни столкнувшимся с компьютерными технологиями (это были мощные по тем временам 386-е машины), я долго ломал голову, каким образом компьютер всегда знает точное время. Потом, конечно, стало ясно, что время-то вводится вручную и хранится в недрах машины при поддержке маленькой батарейки...

Впоследствии возникли и другие вопросы: где гарантия, что это время точное и не "плывет" постепенно? Можно ли автоматизировать его коррекцию, не прибегая к способу "мануальной" синхронизации с наручными часами? Каков, в конце концов, собственно механизм этого процесса?

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

С развитием сети Интернет появилась возможность решить большинство проблем, связанных с поддержанием точного времени, посредством специальных протоколов, среди которых NTP (Network Time Protocol), DTSS (Digital Time Synchronization Protocol). Несмотря на легкость процесса для конечного пользователя (который, впрочем, может и вовсе не участвовать в коррекции времени), сам алгоритм решения достаточно интересен и не так прост, как может показаться на первый взгляд.

В основу используемой большинством стран стандартной временной шкалы - UTC (Coordinated Universal Time) положены величина промежутка времени суточного вращения Земли вокруг своей оси и григорианский календарь, учитывающий период вращения Земли вокруг Солнца. Временная шкала UTC, в свою очередь, корректируется на основе сведений атомных часов (International Atomic Time, TAI) путем "вставки" соответствующего количества секунд со знаком плюс или минус примерно раз в 18 месяцев. В данном случае речь идет именно о секундах, так как на больший временной интервал шкала не разбалансируется. [Прим. ред. CITForum.ru: наши читатели указали, что UTC определяется не совсем так.
Более точное определение есть, например, здесь]

Шкала UTC, как основная, применяется в самых различных сферах: радио- и спутниковых навигационных системах, телефонных модемах, портативных часах и т. д. Специальные узкоцелевые ресиверы сигналов времени используются во множестве систем, для работы которых важна исключительная точность временной шкалы - это, например, системы глобального позиционирования GPS, а также другие устройства и службы, чья работа находится под пристальным внимание государства, ведь вопрос коррекции времени имеет, как правило, четкий юридический фундамент.

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

Вот почему и возникла необходимость в специальном протоколе, способном считывать и интерпретировать сигналы времени с приемника, передавать считанное время клиентам и регулировать клиентские часы. Наиболее популярный из существующих ныне протоколов - Network Time Protocol (NTP). О нем и пойдет речь.


Содержание раздела