Oprócz TCP/IP istnieje wiele sposobów synchronizacji czasu. Niektóre z nich wymagają jedynie zwykłego telefonu, podczas gdy inne potrzebują kosztownego, rzadkiego i wrażliwego sprzętu elektronicznego. Rozbudowana infrastruktura systemów synchronizacji czasu obejmuje obserwatoria, instytucje państwowe, stacje radiowe, grupy satelitarne i wiele innych.
Dziś opowiem, jak działa synchronizacja czasu bez internetu i jak stworzyć własny serwer NTP oparty na satelitach.
Nadawanie radiowe na krótkich falach
W Stanach Zjednoczonych NIST emituje dokładny czas i częstotliwość na falach radiowych 2,5, 5, 10, 15 i 20 MHz ze stacji WWVH w Fort Collins, w stanie Kolorado, oraz na częstotliwościach 2,5, 5, 10 i 15 MHz ze stacji WWV w Kauai, na Hawajach. Kod czasu przesyłany jest co 60 sekund z prędkością 1 b/s, używając szeroko-impulsowej modulacji na podnośnej 100 Hz.
Krajowa Rada Badawcza (NRC) Kanady przekazuje informacje o czasie i częstotliwości na 3,33, 7,85 i 14,67 MHz ze stacji CHU w Ottawie, w prowincji Ontario.

Format nadawania WWVH
Rozprzestrzenianie sygnału z krótkofalowych stacji zazwyczaj odbywa się poprzez odbicie od górnych warstw jonosfery. Sygnały można odbierać na dużych odległościach, jednak dokładność czasu wynosi około jednej milisekundy.
Aktualny standard NTPv4 obejmuje sterowniki audio dla WWV, WWVH i CHU.
Nadawanie radiowe na długich falach
NIST również emituje dokładny czas i częstotliwość na długich falach radiowych na fali 60 kHz z Boulder w stanie Kolorado. Istnieją także inne stacje nadające sygnały dokładnego czasu na długich falach.
Wezwiska i lokalizacja
Częstotliwość (kHz)
Moc (kW)
WWVB Fort Collins, Kolorado, USA
60
50
DCF77 Mainflingen, Niemcy
77.5
30
MSF Rugby, Wielka Brytania
60>
50
HBG Prangins, Szwajcaria
75
20
JJY Fukushima, Japonia
40
50
JJY Saga, Japonia
60
50
Niskoczęstotliwościowe Stacje Standardowego Czasu
Kod czasowy jest przesyłany w 60-sekundowym interwale z prędkością 1 b/s, dokładnie tak jak na stacjach krótkofalowych. Format przesyłania danych jest również podobny dla obu standardów. Rozprzestrzenianie sygnału odbywa się przez dolne warstwy jonosfery, które są stosunkowo stabilne i mają przewidywalne dobowé wahania wysokości. Dzięki tej przewidywalności środowiska fizycznego, dokładność wzrasta do 50 μs.

Format nadawania WWVB
Geostacjonarny satelita operacyjny do monitorowania środowiska
W USA NIST również przesyła dane o dokładnym czasie i częstotliwości na około 468 MHz z geostacjonarnych satelitów operacyjnych środowiska (GOES). Kod czasowy jest przeplatany z wiadomościami używanymi do sondowania zdalnych czujników. Składa się z 60 półbajtów BCD, przesyłanych co 30 sekund. Informacja kodu czasowego jest podobna do służb naziemnych.
Globalne systemy nawigacyjne
Ministerstwo Obrony USA wykorzystuje GPS do precyzyjnej nawigacji na lądzie, morzu i w powietrzu. System ten zapewnia 24-godzinne pokrycie Ziemi dzięki konstelacji satelitów na orbitach 12-godzinnych, nachylonych pod kątem 55°.
Pierwotna konstelacja składająca się z 24 satelitów została rozszerzona do 31 satelitów w niejednorodnej konfiguracji, aby co najmniej 6 satelitów zawsze znajdowało się w polu widzenia, a 8 lub więcej satelitów było widocznych w większej części świata.
Usługi podobne do GPS są eksploatowane lub planowane przez inne kraje. Rosyjski system GLONASS działa już od ponad dziesięciu lat, licząc od 2 września 2010 roku, kiedy całkowita liczba satelitów została zwiększona do 26 – konstelacja została w pełni wdrożona dla pełnego pokrycia Ziemi.

Satelity GPS wokół Ziemi.
Satelitarna system nawigacyjny Unii Europejskiej nazywa się „Galileo”. Oczekiwano, że „Galileo” zacznie działać w latach 2014–2016, gdy na orbitę zostaną wystrzelone wszystkie 30 planowanych satelitów. Jednak do 2018 roku konstelacja satelitów „Galileo” nie osiągnęła jeszcze wymaganego liczby aparatur.
Jest jeszcze chiński «Baidu», co w tłumaczeniu oznacza „wieloryb”. Grupa składająca się z 16 satelitów została uruchomiona komercyjnie 27 grudnia 2012 roku jako regionalny system pozycjonowania. Planowane jest, że system osiągnie pełną moc do 2020 roku. Właśnie dzisiaj na Habra pojawił się , po udanym wystrzeleniu satelity tego systemu.
Matematyka określania współrzędnych w SRNS
Jak GPS / GLONASS nawigator w Twoim smartfonie określa lokalizację z taką dokładnością dzięki systemowi radiowej nawigacji (SRNS)? Aby zrozumieć zasady obliczeń, trzeba przypomnieć sobie stereometrię i algebrę na poziomie szkół średnich, lub fizycznych.
Każdy satelita przesyła do odbiornika dokładny czas. Na satelicie zamontowane są zegary atomowe, więc można im ufać. Znając prędkość światła, łatwo określić promień sfery, na powierzchni której znajduje się satelita. Ta sfera stykając się z Ziemią tworzy okrąg, na którym znajduje się odbiornik GPS / GLONASS.
Gdy sygnał napływa z dwóch satelitów, mamy przecięcie Ziemi i dwóch sfer, co daje tylko dwa punkty na okręgu. Sfera trzeciego satelity powinna ideálně wpaść w jeden z tych dwóch punktów, ostatecznie określając współrzędne odbiornika.
Zasadniczo nawet z dwóch satelitów można na podstawie pośrednich oznak stwierdzić, który z dwóch punktów jest bliżej prawdy, a nowoczesne algorytmy oprogramowania nawigacyjnego mogą poradzić sobie z takim zadaniem. Po co zatem potrzebny jest czwarty satelita?

Określanie lokalizacji za pomocą grupy satelitów.
Nie trudno zauważyć, że w tym idealizowanym obrazie jest wiele niuansów, od których zależy dokładność obliczeń. Czas na odbiorniku, być może najbardziej oczywiste źródło błędów. Aby wszystko działało jak należy, czas odbiornika GPS / GLONASS musi być zsynchronizowany z czasem satelity. Bez tego błąd wynosiłby ∓ 100 tys. km.
Z formuły prędkości, czasu i odległości S = v*t otrzymujemy podstawowe równanie dla przekazu sygnału SRNS. Odległość do satelity równa się iloczynowi prędkości światła i różnicy czasu między satelitą a odbiornikiem.

Głównie odbywa się to dlatego, że nawet po wszystkich synchronizacjach czas na odbiorniku tпр znamy z wystarczającą dokładnością. Pomiędzy prawdziwym czasem a tпр zawsze będzie istniała Δt, przez co błąd obliczeń staje się nieakceptowalny. Dlatego potrzebujemy czwarty satellity.
Aby jaśniej matematycznie uzasadnić potrzebę czterech satelitów, skonstruujemy system równań.

Aby określić cztery niewiadome x, y, z i Δt, liczba obserwacji musi być równa lub większa niż liczba niewiadomych. To jest warunek konieczny, ale niewystarczający. Jeśli macierz równań normalnych okaże się degeneracyjna, system równań nie będzie miał rozwiązania.
Nie należy także zapominać o Specjalnej Teorii Względności i efektach relatywistycznych związanych z opóźnieniem czasu na satelitarnych zegarach atomowych w porównaniu do ziemskich.

Zakładając, że satelita porusza się po orbicie z prędkością 14 tys. km/h, otrzymujemy opóźnienie czasu około 7 μs (mikrosekund). Z drugiej strony działają efekty relatywistyczne Ogólnej Teorii Względności.
Chodzi o to, że satelity znajdują się na orbitach w znacznej odległości od Ziemi, gdzie krzywizna czasoprzestrzeni jest mniejsza niż na powierzchni ziemi z powodu masy Ziemi. Zgodnie z OTO, biegi zegarów znajdujących się bliżej masywnego obiektu będą wydawać się wolniejsze niż tych, które znajdują się dalej od niego.

- G — stała grawitacyjna;
- M — masa obiektu, w tym przypadku Ziemi;
- r — odległość od środka Ziemi do satelity;
- c — prędkość światła.
Obliczenie według tej formuły daje opóźnienie czasu wynoszące 45 μs na satelicie. W sumie -7μs +45μs = 38μs bilans — efektów SRT i OOT.
W zastosowaniach praktycznych określania lokalizacji za pomocą GPS należy również uwzględnić opóźnienia jonosferyczne i troposferyczne. Oprócz tego, korekty 46 ns są związane z ekscentrycznością 0.02 orbity satelitów GPS.
Możliwość odbierania sygnałów jednocześnie z więcej niż czterech satelitów GPS / GLONASS pozwala jeszcze bardziej zwiększyć dokładność określania współrzędnych odbiornika. Osiąga się to dzięki temu, że nawigator rozwiązuje system czterech równań z czterema niewiadomymi.
Liczba razy i średnia wartość zwiększa dokładność końcowej oceny zgodnie z zasadami statystyki matematycznej.
Jak skonfigurować serwer NTP Stratum 1 przez łączność satelitarną
Do skonfigurowania wysokiej jakości serwera czasu potrzebny jest tylko GPSD, NTP i odbiornik GPS z wyjściem 1PPS (jeden impuls na sekundę).
1. Zainstaluj gpsd i ntpd lub gpsd i chronyd. Wersja gpsd powinna być ≥ 3.20
(1:1109)$ sudo emerge -av gpsd chrony
Lokalna kopia zdalnego indeksu jest aktualna i zostanie wykorzystana.
Obliczanie zależności... zakończono!
[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
Razem: 3 pakiety (3 nowe, 3 binarne), Rozmiar pobrań: 1275 KiB
Czy chcesz połączyć te pakiety? [Tak/Nie]2. Podłącz odbiornik GPS obsługujący PPS do portu szeregowego RS232 lub USB.
Zwykły, tanioski odbiornik GPS może się nie nadać; może trzeba będzie trochę poszukać, aby znaleźć odpowiedni.
3. Upewnij się, że urządzenie rzeczywiście wydaje PPS, sprawdzając port za pomocą narzędzia gpsmon.
4. Otwórz plik /etc/conf.d/gpsd i edytuj następującą linię.
Zamień
GPSD_OPTIONS=""tak, aby było
GPSD_OPTIONS="-n"Ta zmiana jest wymagana, aby gpsd po uruchomieniu natychmiast zaczynał wyszukiwanie źródeł GNSS.
5. Uruchom lub zrestartuj gpsd.
(1:110)$ sudo /etc/init.d/gpsd start
(1:111)$ sudo /etc/init.d/gpsd restart
Dla dystrybucji z systemd użyj odpowiedniej komendy systemctl.
6. Sprawdź wyjście konsoli polecenia cgps.
Trzeba upewnić się, że dane poprawnie przychodzą z satelitów. Na konsoli powinno być coś podobnego do ilustracji.

Wyjście z polecenia konsolowego cgps.
7. Nadszedł czas na edytowanie pliku /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
Górny wpis NTP0 wskazuje na uniwersalne źródło czasu, dostępne niemal na wszystkich urządzeniach GPS. Dolny wpis NTP1 definiuje znacznie dokładniejsze źródło PPS.
8. Zrestartuj ntpd.
(1:112)$ sudo /etc/init.d/ntpd restart Dla dystrybucji z systemd użyj komendy systemctl.
$ sudo systemctl restart ntp
Wykorzystane materiały
- David L Mills, Protokół czasu sieciowego na Ziemi i w Kosmosie, Drugie wydanie.
Źródło: habr.com
