Помимо tcp/ip, существует множество способов синхронизация времени. Некоторые из них требуют лишь наличие обычного телефона, в то время, как другие требуют дорогостоящего, редкого и чувствительного электронного оборудования. Обширная инфраструктура систем синхронизации времени включает в себя обсерватории, государственные институты, радиостанции, спутниковые группировки и многое другое.
Сегодня я расскажу, как устроена синхронизация времени без интернета и как сделать “спутниковый” NTP сервер своими руками.
Радиовещание на коротких волнах
В Соединенных Штатах Америки NIST передает точное время и частоту по 2.5, 5, 10, 15 и 20 МГц радиоволнам со станции WWVH в Форт-Коллинсе, штат Колорадо, и на частотах 2.5, 5, 10 и 15 МГц со станции WWVH в Кауаи, штат Гавайи. Временной код передается через 60-секундный интервал на скорости 1 б/с. с использованием широтно — импульсной модуляции на поднесущей 100 Гц.
Национальный исследовательский совет (NRC) Канады осуществляет распространение временной и частотной информации на 3.33, 7.85 и 14.67 МГц со станции CHU в Оттаве, провинция Онтарио.
Формат вещания WWVH
Распространение сигнала от коротковолновых станций обычно происходит путем отражения от верхних слоев ионосферы. Передачи сигнала могут быть получены на больших расстояниях, однако точность времени составляет порядка одной миллисекунды.
Текущий стандарт NTPv4 включает в себя аудио драйверы для WWV, WWVH и CHU.
Радиовещание на длинных волнах
NIST также передает точное время и частоту по длинным радиоволнам на волне 60 kHz из Боулдера в штате Колорадо. Есть и другие станции передачи сигналов точного времени на длинных волнах.
Позывные и локация Частота (kHz) Мощность (kW)
WWVB Форт-Коллинс, Колорадо, США
60
50
DCF77 Mainflingen, Germany
77.5
30
MSF Rugby, United Kingdom
60>
50
HBG Prangins, Switzerland
75
20
JJY Fukushima, Japan
40
50
JJY Saga, Japan
60
50
Низкочастотные Станции Стандартного Времени
Временной код передается через 60-секундный интервал на скорости 1 б/с, точно так же, как на коротковолновых станциях. Форматы передачи данных тоже сходны для обоих стандартов. Распространение сигнала происходит через нижние слои ионосферы, которые относительно стабильны и имеют предсказуемые суточные колебания высоты. Благодаря этой предсказуемости физической среды точность повышается до 50 μs.
Формат вещания WWVB
Геостационарный эксплуатационный спутник наблюдения за окружающей средой
В США NIST также передает данные о точном времени и частоте примерно на 468 МГц с геостационарных эксплуатационных спутников окружающей среды (GOES). Временной код чередуется с сообщениями, используемыми для опроса удаленных датчиков. Он состоит из 60 BCD полубайтов, передаваемых с интервалом в 30 с. Информация временного кода аналогична наземным службам.
Системы глобального позиционирования
Министерство обороны США использует GPS для точной навигации на суше, на море и в воздухе. Эта система обеспечивает 24-часовой охват земного шара с помощью группировки спутников на 12-часовых орбитах, наклоненных под углом 55°.
Первоначальная группировка из 24 спутников была расширена до 31 спутника в неоднородной конфигурации, так что по крайней мере 6 спутников всегда находятся в поле зрения, а 8 или более спутников находятся в поле зрения в большей части света.
Услуги, подобные GPS, эксплуатируются или планируются другими странами. Российский ГЛОНАСС работает уже с десяток лет, если считать со 2 сентября 2010 года, когда общее количество спутников было доведено до 26 — группировка была полностью развёрнута для полного покрытия Земли.
Спутники GPS вокруг земного шара.
Спутниковая система навигации Европейского Союза называется «Галилео». Ожидалось, что «Галилео» начнет работать в 2014—2016 годах, когда на орбиту будут выведены все 30 запланированных спутников Но на 2018 год спутниковая группировка «Галилео» так и не достигла необходимого количества аппаратов.
Есть еще китайский «Бэйдооу», что в переводе означает «кит». Группировка в составе 16 спутников была запущена в коммерческую эксплуатацию 27 декабря 2012, в качестве региональной система позиционирования. Планируется, что на полную мощность система выйдет к 2020 году. Как раз сегодня, на Хабре вышла статья, про успешный запуск спутника этой системы.
Математика определения координат по СРНС
Как GPS/Глонасс навигатор на вашем смартфоне определяет местоположение с такой точностью с помощью системы радионавигационной связи (СРНС)? Чтобы понять принцип расчетов нужно вспомнить стереометрию и алгебру в пределах старших классов средней, или физмат школы.
Каждый спутник сообщает приемнику точное время. На спутнике установлены атомные часы и поэтому им можно верить. Зная скорость света нетрудно определить радиус сферы на поверхности которой находится спутник. Это же сфера соприкасаясь с Землей образует круг, на котором находится GPS / Глонасс приемник.
Когда сигнал приходит с двух спутников, мы уже имеем пересечение Земли и двух сфер, что дает лишь две точки на круге. Сфера третьего спутника в идеале должна попасть в одну из этих двух точек, окончательно определив координаты приемника.
В принципе даже с двух спутников по косвенным признакам можно понять, какая из двух точек ближе к истине и современные алгоритмы навигационного программного обеспечения могут справиться с такой задачей. Зачем же тогда нам нужен четвертый спутник?
Определение местоположения с помощью спутниковой группировки.
Нетрудно заметить, что в этой идеализированной картине есть много нюансов, от которых зависит точность расчетов. Время на приёмнике, пожалуй самый очевидный источник погрешностей. Для того, чтобы все заработало как надо время GPS / Глонасс приёмника должны быть синхронизированы со временем спутника. Без этого погрешность составила бы ∓ 100 тыс. км.
Из формулы скорости, времени и расстояния S = v*t получаем базовое уравнение для передачи сигнала СРНС. Расстояние до спутника равно произведению скорости света на разницу времени на спутнике и приёмнике.
Главным образом это происходит вследствие того, что даже после всех синхронизаций время на приёмнике tпр мы знаем с достаточной степенью точности. Между истинным временем и tпр всегда будет существовать Δt, из-за которой погрешность вычислений становится неприемлема. Вот почему нужен четвертый спутник.
Для более ясного математического обоснования необходимости четырех спутников построим систему уравнений.
Для определения четырех неизвестных x, y, z, и Δt необходимо, чтобы число наблюдений равнялось или было больше, чем число неизвестных. Это необходимое, но недостаточное условие. Если матрица нормальных уравнений окажется вырожденной, у системы уравнений не будет решения.
Не стоит также забывать про Специальную Теорию Относительности и релятивистские эффекты с замедлением времени на спутниковых атомных часах относительно наземных.
Если считать, что спутник движется по орбите со скоростью 14 тыс. км./ч., то получаем замедление времени около 7 μс (микросекунд). С другой стороны действуют релятивистские эффекты Общей Теории Относительности.
Дело вот в чем, спутники на орбитах находятся на большом расстоянии от Земли, где кривизна пространственно-временного континуума меньше, чем на земной поверхности из-за массы Земли. Согласно ОТО ход часов, расположенных ближе к массивному объекту, будет казаться медленнее, чем тех, что находятся дальше от него.
G — гравитационная постоянная;
M — масса объекта, в данном случае Земли;
r — расстояние от центра Земли до спутника;
c — скорость света.
Вычисление по этой формуле даёт замедление времени 45 μс на спутнике. Итого -7μс +45μс = 38μс баланс — эффектов СТО и ОТО.
В прикладных задачах определения местоположения с помощью СРНС следует также принять во внимание ионосферные и тропосферные задержки. Помимо того, корректировки 46 ns связаны c эксцентричностью 0.02 орбиты спутников GPS.
Возможность получать сигналы одновременно более чем с четырех спутников GPS / ГЛОНАСС позволяет еще больше увеличить точность определения координат приёмника. Это достигается за счет того, что навигатор решает систему их четырех уравнений с четырьмя неизвестными число раз и берет среднее значение, повышая точность итоговой оценки согласно законам математической статистики.
Как настроить NTP сервер Stratum 1 по спутниковой связи
Для настройки высококачественного сервера времени необходимо всего лишь GPSD, NTP и GPS-приёмник, с выходом 1PPS (один импульс в секунду).
1. Установите gpsd и ntpd, либо gpsd и chronyd. Версия gpsd должна быть ≥ 3.20
(1:1109)$ sudo emerge -av gpsd chrony
Local copy of remote index is up-to-date and will be used.
Calculating dependencies... done!
[binary N ] net-misc/pps-tools-0.0.20120407::gentoo 31 KiB
[binary N ] net-misc/chrony-3.5-r2::gentoo USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB
[binary N ] sci-geosciences/gpsd-3.17-r3:0/23::gentoo USE="X bluetooth cxx dbus ipv6 ncurses python shm sockets udev usb -debug -latency-timing -ntp -qt5 -static -test" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 navcom ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tnt tripmate tsip ublox -fury -geostar -nmea0183 -nmea2000 -passthrough" PYTHON_TARGETS="python2_7" 999 KiB
Total: 3 packages (3 new, 3 binaries), Size of downloads: 1275 KiB
Would you like to merge these packages? [Yes/No]
2. Подключите GPS-приёмник с поддержкой PPS к последовательному RS232 или USB порту.
Обычный дешевый GPS-приемник не подойдет; возможно, придется немного побегать, чтобы найти подходящий.
3. Убедитесь, что устройство действительно выдаёт PPS, для этого проверьте порт утилитой gpsmon.
4. Откройте файл /etc/conf.d/gpsd и отредактируйте следующую строку.
Заменить
GPSD_OPTIONS=""
так, чтобы стало
GPSD_OPTIONS="-n"
Это изменение требуется для того, чтобы gpsd при старте сразу же начинал поиск источников СРНС.
Для дистрибутивов с systemd, используйте соответствующую команду systemctl.
6. Проверьте консольный вывод команды cgps.
Нужно удостовериться в том, что данные исправно поступают со спутников. В консоли должно быть нечто схожее с иллюстрацией.
Вывод консольной команды cgps.
7. Настало время отредактировать файл /etc/ntp.conf.
# GPS Serial data reference (NTP0)
server 127.127.28.0
fudge 127.127.28.0 time1 0.9999 refid GPS
# GPS PPS reference (NTP1)
server 127.127.28.1 prefer
fudge 127.127.28.1 refid PPS
Верхняя запись NTP0 указывает на универсальный источник времени, доступный почти на всех устройствах GPS. Нижняя запись NTP1 определяет гораздо более точный PPS источник.
8. Перезапустить ntpd.
(1:112)$ sudo /etc/init.d/ntpd restart
Для дистрибутивов с systemd, используйте команду systemctl.
$ sudo systemctl restart ntp