Точность — привилегия королей?

Точность — привилегия королей?

Введение
Новейшие технологии в области точного времени позволяют нам с одной стороны быть точными до наносекунды, а с другой — запутывают в нюансах открытий, связанных с временными измерениями и их использованием. В этой статье собраны основные данные о существующих в настоящее время технологиях для точного измерения времени, которые помогут вам обеспечить работу компьютерных часов с требуемой точностью.
Чтобы расставить все точки на "и", отметим, что в компьютере имеется две различные реализации часов:
1. Часы реального времени (Real Time Clock — RTC, CMOS clock, hardware clock).
2. Системные часы (system clock, software clock).

Часы реального времени представляют собой отдельную микросхему, размещенную на материнской плате, питающуюся от литиевой батарейки. Они работают независимо от того, включен компьютер или нет. Операционная система при загрузке считывает текущее время, после чего ведет свой счетчик времени (системные часы) самостоятельно, основываясь на подсчете количества специальных периодических прерываний. Недостаточная стабильность частоты стандартного кварцевого генератора, а также широкое распространение компьютеров так называемой "желтой" сборки приводят к тому, что рассинхронизация компьютерных часов достигает от 10 до 50 секунд в сутки. Для того чтобы представить себе, насколько это плохо, заметим, что точность -20/+40 сек/сутки предусматривалась стандартами бывшего СССР для механических часов, для часов с кварцевым механизмом точность оценивается величиной 20 сек/месяц.
Современные технологии позволяют использовать следующие методы поддержания точного времени на компьютере:
— на основе данных специального устройства получения точного времени (атомные часы, GPS-приемник и т.д.);
— с помощью данных о точном времени, полученных от других компьютеров посредством специального сетевого протокола (Network Time Protocol или Simple Network Time Protocol).
Далее будет использоваться термин уровень (stratum), значение которого характеризует достоверность поддержания точного времени компьютером и степень его логической удаленности от компьютеров, имеющих первый уровень (в некоторых публикациях термин "stratum" переводится как "слой").

Уровень может принимать значения от 1 до 15. Компьютеры первого уровня (stratum 1) точного времени имеют в своем составе специализированное оборудование для синхронизации от физических источников или приемников сигналов точного времени (атомные часы, спутниковая навигационная система GPS и пр.). Компьютеры второго уровня (stratum 2) обеспечиваются данными точного времени от компьютеров первого уровня с использованием специализированных сетевых протоколов (например, протокол NTP) и т.д.
Предлагаемый через Интернет сервис службы точного времени обычно построен на принципе синхронизации сервера точного времени по нескольким проверенным источникам в сети и гарантирует погрешность для серверов второго и третьего уровня от 1 мсек до 0,02 сек.
Протоколы синхронизации времени в локальной сети и Интеренет
В качестве основных протоколов на настоящий момент наиболее употребительными являются два временных протокола:
Network Time Protocol (NTP) — информация изложена в RFC1059, RFC119, RFC1305 и RFC2030. Протокол предложил D.Mills из университета Делавера в 1988 году. Он обеспечивает расхождение хода часов в миллисекунды внутри локальной сети и десятки миллисекунд при нормальной работе Интернет. В реализации протокола предусмотрена криптографическая защита (шифрование контрольной суммы), одновременное подключение к нескольким серверам на случай аварии, алгоритмы усреднения и т.д.
Simple Network Time Protocol (SNTP) — является облегченной версией протокола NTP, появился в 1995 г., описан в RFC1769 и является не более чем разрешением не заполнять некоторые поля в NTP-запросах. Рекомендуется для использования внутри локальной сети.
Устаревшими на настоящее время являются следующие протоколы для передачи данных точного времени: Daytime Protocol (RFC867), Time protocol (RFC868), ICMP Timestamp message (RFC792), IP Timestamp options (RFC781).

Возможности синхронизации времени в операционных системах Windows
Для Windows 2000 имеется встроенная возможность периодического получения точного времени по запросу с использованием команды NET TIME /SETSNTP:имя_сервера_службы_точного_времени. Информация об использовании может быть получена с помощью команды net time /?.
Далее всем управляет утилита w32tm.exe, позволяющая в том числе определить периодичность выполнения процедуры синхронизации. Более подробную информацию об использовании утилиты можно получить с помощью команды w32tm /?.
В Windows 9x отсутствуют встроенные средства работы по NTP, однако имеется множество shareware-программ, которые можно применять. Например, Tardis 2000 (http://www. colocall.net/files/tardis2000.zip) или Neutron 1.03 (http://www.ciklon-god.narod.ru/neutron.rar).
Отметим, что при построении системы синхронизации по серверам точного времени необходимо иметь в виду то, что система должна быть достаточно продуманной и логичной. Для размышления заметим, что применение для синхронизации нескольких равноправных серверов, которые независимо синхронизируются и имеют одинаковый уровень, не совсем удачно, так как у синхронизируемой системы отсутствует информация о том, какие часы предпочтительнее. Программное обеспечение может выбирать источник времени случайным образом или усреднять значение, в то время как разница между данными о времени источников может достигать 0,1 сек.

История развития системы времени
После изобретения в VII веке механических часов время измерялось астрономически. Интервал между двумя последовательными достижениями солнцем наивысшей точки на небе был назван солнечным днем, исходя из которого вычислялась солнечная секунда.
На всей территории Англии 2 августа 1880 г. парламентом было принято Гринвичское Среднее Время (Greenwich Mean Time — GMT), позднее названное также Универсальным Временем (Universal Time — UT), которое довольно точно измерялось астрономическими средствами в Гринвичской обсерватории Англии, которая была учреждена в 1675 году и располагалась в предместье Лондона.
Гринвичское время и разделение на часовые пояса были одобрены на всемирном уровне Международной конференцией по меридианам, которая состоялась 1 ноября 1884 г. в Вашингтоне.
В 1940 году было установлено, что период вращения земли не постоянен. Природа этого лежит, в основном, в тормозящем действии морских приливов, что увеличивает длительность среднего солнечного года приблизительно на 0,8 секунды за столетие, т.е. на 1 час за 450 тысяч лет.
С изобретением в 1948 году атомных часов появилась возможность точно измерять время независимо от колебаний солнечного дня. За секунду в атомных часах принимается определенное количество колебаний атомов цезия 133. С 1 июля 1958 г. было введено понятие, определившее Международное атомное время (TAI) на основе усредненного показания многих национальных атомных часов, и теперь оно отличается от GMT более чем на полминуты. Чрезвычайная точность атомных часов (погрешность — 1 секунда за 10 млн лет) делает их пригодными для использования в качестве официального эталона времени, однако атомное время не приспособлено для использования в повседневной жизни, синхронизированной с солнечным временем.
Отставание TAI от солнечного времени компенсируется добавлением секунды тогда, когда разница больше 800 мксек. Это скорректированное время, называемое Универсальное координированное время (Universal Coordinated Time — UTC), заменило прежний стандарт (среднее время по Гринвичу — астрономическое время) и сейчас используется как официальная мера времени в мире. По сути, время UTC течет как международное атомное время, а когда разница с Гринвичским временем достигает 1 сек., к шкале UTC добавляется 1 секунда, которая называется прыгающей (leap second). Гринвичское среднее время расходится с международным атомным временем приблизительно на 1 секунду за каждые 500 суток. Про добавление прыгающей секунды сообщается Международной Службой Вращения Земли (IERS), которая непрерывно контролирует скорость вращения.

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

Сигналы точного времени в теле- и радиосигналах
Эталонные часы времени имеются в составе телевизионных сигналов I и II программ общероссийского телевидения. В Москве точность составляет не хуже 1 мкс, для регионов России — не хуже 2 мкс. Кроме того, временные сигналы обеспечиваются рядом радиостанций всех крупных стран (для радиостанций России обеспечивается точность не хуже 20 мкс). Получение данных точного времени от радио- и телесигналов обеспечивают специальные приемники-компараторы. К сожалению, в настоящий момент различные радиостанции имеют различные типы кодирования сигналов точного времени (только в России их используется около 10, наиболее известными из которых являются излучения типа DXXXW, N0N, A1X, A1N). В связи с этим производителям радиочасов приходится жестко привязываться к особенностям работы конкретной передающей радиостанции точного времени. Стоимость таких часов с интерфейсом, обеспечивающим связь с компьютером, составляет от 50 до 150 долларов.
Большинство радиостанций точного времени работают на легко запоминающихся частотах: 5, 10, 12 и 15 тысяч килогерц. Российские станции аналогичного назначения работают на частотах с разницей плюс-минус 4 килогерца.
В ряде публикаций упоминается о возможности использования кодов IRIG, которые задействованы для передачи информации американской (Форт Коллинз, штат Колорадо) радиостанцией точного времени WWV (используется код IRIG-H) и в некоторых решениях для синхронизации вторичных часов (код IRIG-В дает полное время каждую секунду, позволяет подсоединять к первичным часам до 100 вторичных часов и использовать кабель длиной до 30 км).

Система определения координат с использованием космических спутников
Наиболее известная и используемая Система глобального позиционирования (Global Positioning System — GPS) — не только средство определения местоположения. Это еще и прекрасный эталон времени. Каждый спутник содержит две пары рубидиевых и цезиевых атомных часов. Они контролируются по атомным часам на Земле, а вся система непрерывно калибруется по мировому стандарту времени — Универсальному координированному времени (Universal Time Coordinated — UTC). Передаваемый для приемников GPS сигнал содержит данные точного времени. Аналогичные разработки имеются в России — система Глонасс. В настоящее время ведутся переговоры о создании общеевропейской системы определения местоположения.
Первым мировым опытом разработки бытовых часов точного времени с использованием GPS-приемника явились электронные часы фирмы CASIO. Ее модель SATELLITE NAVI PAT-2GP имеет интерфейс, обеспечивающий передачу и обработку GPS-данных через последовательный порт компьютера.
С учетом использования так называемого гражданского C/A (Clear/ Acquisition) кода (имеется и защищенный P (Protected) код военного назначения) для системы GPS погрешность составляет по одним данным 170 нс, по другим — 1 мкс. Система "Глонасс" с использованием ПТ-кода предполагает погрешность до 100 нс. Отметим, что Министерство обороны США может уменьшить точность в режиме C/A-кодов, включая так называемый S/A (Selective Availability) режим и создавая значительный и непредсказуемый уход спутниковых часов.

Другие технологии
Кроме того, могут использоваться сложные технологии получения и синхронизации сигналов непосредственно от хранителей времени (государственных организаций, функцией которых является хранение различных эталонов, в том числе времени). Данное решение позволяет обеспечить точность до одной десятимиллионной доли секунды. Согласно опубликованным данным, наиболее точными в мире сейчас являются атомные часы в Японии, погрешность которых не превышает 1 сек/20 млн лет.
Есть ряд решений, которые позволяют вести речь об обеспечении некоторой точности показателя времени. Одним из таких решений является использование электронного ключа DS1994 iButton с NV SRAM и часами реального времени, точность которого, согласно техническим характеристикам, не хуже, чем 4 сек/сутки.

Интернет-серверы точного времени
Наиболее известен в настоящее время Американский Национальный институт стандартов и технологий (National Institute of Standards and Technology — NIST), который предоставляет услугу Internet Time Service (ITS), позволяющую пользователям синхронизировать время компьютера через Интернет (http://www.nist.gov). Услуга доступна любым клиентам Internet и обеспечивает поддержку основных протоколов синхронизации времени (Network Time Protocol, Daytime Protocol, Time Protocol). Услуга Internet Time Service использует серверы точного времени первого уровня (stratum 1).
Американский Национальный институт стандартов и технологий (NIST) и Морская обсерватория США (USNO) открыли сервер http://www.time.gov/, использующий показания атомных часов, точность которых составляет одну десятимиллионную долю секунды, однако из-за задержек передачи данных в Интернете можно рассчитывать лишь на секундную погрешность.
Информацию по серверам точного времени стран бывшего СССР (в том числе первого уровня) можно без особых сложностей найти с помощью любой поисковой системы, используя ключевые фразы "stratum", "сервер синхронизации времени", "служба точного времени".

Заключение
Изучая положение относительно возможности получения точного времени с учетом особенностей Республики Беларусь, можно сделать вывод о том, что для условий, при которых достаточно точности в 1-10 сек/сутки, при наличии доступа в Интернет наиболее приемлемым будет использование синхронизации компьютера с помощью доступных интернет-серверов точного времени второго и третьего уровня. Такое решение не потребует никаких финансовых затрат и будет достаточным для коммерческих фирм и большинства государственных организаций.
Для организаций, использующих высокие технологии в сфере передачи данных, например, пейджинговых компаний (необходима точность около 1 мксек) или фирм, занимающихся организацией мобильной связи (погрешность не должна превышать 7 мксек/сутки), необходимо обеспечивать синхронизацию аппаратуры. Это может быть сделано с использованием аппаратуры, содержащей GPS-приемник.
Дополнительную информацию о механизмах реализации точного времени, а также полезные советы можно найти в следующих публикациях Интернета:
"Служба точного времени" ( http://www.colocall.net/ntp.ru.shtml ).
"The Clock Mini-HOWTO" ( http://linux.pk.ru/doc/12/mini/Clock.html ).
"Bog BOS: Network Time Protocol" ( http://www.bog.pp.ru/work/time.html )."Синхронизация от GPS" ( http://www.ecomm.kiev.ua/gps/primen/synhroniz.htm ).
Моменты, связанные с историей возникновения стандартов времени, достаточно подробно описаны в статье "Что такое UTC?" ( http://www.qrz.ru/help/utc.shtml ) (источник: журнал "РадиоХОББИ", №3/2000 г. А.Егоров. "Радиостанции точного времени и частот", стр. 5).

В настоящее время в Республике Беларусь принят ряд документов, разрешающих работу с электронными документами, обладающими той же юридической силой, что и бумажные, и описывающие некоторые правила и порядок организации такой работы:
СТБ 1176.2-99. Государственный стандарт Республики Беларусь. Информационная технология. Защита информации. Процедуры выработки и проверки электронной цифровой подписи.
Закон Республики Беларусь "Об электронном документе" №357 от 10.01.2000.
СТБ 34.101.1-2001 (ИСО/МЭК 15408-1-99), СТБ 34.101.2-2001 (ИСО/МЭК 15408-2). Государственный стандарт Республики Беларусь. Информационная технология. Методы и средства безопасности. Критерии оценки безопасности информационных технологий.
СТБ П 34.101.4-2002. Предварительный государственный стандарт Республики Беларусь. Информационная технология. Методы и средства безопасности. Профиль защиты электронной почты предприятия.

Термин "электронный документ" предполагает обязательное наличие электронной подписи. Одним из тонких моментов в технологии, использующей электронный документ, является установка метки времени в момент выработки или проверки электронной цифровой подписи. Все известные автору программы обработки электронных документов используют время системных часов (system clock, software clock), которое можно легко установить в любое значение для локального компьютера. Несколько сложнее фальсифицировать время в локальной сети, если работа организована в домене, однако и здесь злоумышленник может найти несложные решения.
Эти несложные рассуждения приводят к мысли о необходимости использования в технологиях, связанных с электронной цифровой подписью, т.н. "доверенного" источника данных о текущем времени. Кроме того, этот источник должен в условиях, когда работа с электронными документами ведется на государственном уровне, быть защищен, в первую очередь, от возможности оказания негативного влияния со стороны других государств. В этой связи возможности синхронизации времени через Интернет или устройства с GPS-приемниками на государственном уровне привлекаться не могут. В качестве источников данных о времени должны использоваться государственные хранители точного времени. Эталонными сигналами частоты и времени обладает Государственный институт метрологии. В 2003-2004 гг. планируется проведение работы по обеспечению заинтересованных организаций информацией точного времени. Это позволит в том числе организовать работу по передаче данных точного времени в теле- и радиосигналах. Это, возможно, позволит повысить значимость технологий, связанных с разработкой и использованием радиочасов.

Максим Костышин, maxim_kostyshin@mail.ru


Компьютерная газета. Статья была опубликована в номере 38 за 2003 год в рубрике hard :: технологии

©1997-2024 Компьютерная газета