Oltre a tcp/ip, esistono molti modi per sincronizzare il tempo. Alcuni richiedono solo un telefono normale, mentre altri necessitano di costosi, rari e sensibili apparecchi elettronici. Un'ampia infrastruttura di sistemi di sincronizzazione del tempo comprende osservatori, istituti statali, stazioni radio, costellazioni satellitari e molto altro.
Oggi parlerò di come funziona la sincronizzazione del tempo senza internet e come realizzare un server NTP "satellitare" fai-da-te.
Radiodiffusione in onde corte
Negli Stati Uniti, il NIST trasmette ora e frequenza esatti su radiofrequenze di 2.5, 5, 10, 15 e 20 MHz dalla stazione WWVH a Fort Collins, Colorado, e su frequenze di 2.5, 5, 10 e 15 MHz dalla stazione WWVH a Kauai, Hawaii. Il codice temporale viene trasmesso attraverso un intervallo di 60 secondi a una velocità di 1 b/s utilizzando la modulazione di ampiezza a impulsi su una portante di 100 Hz.
Il Consiglio Nazionale di Ricerca (NRC) del Canada diffonde informazioni temporali e di frequenza a 3,33, 7,85 e 14,67 MHz dalla stazione CHU a Ottawa, nella provincia dell'Ontario.

Formato di trasmissione WWVH
La diffusione del segnale dalle stazioni a onde corte avviene generalmente attraverso il riflesso dagli strati superiori dell'ionosfera. Le trasmissioni del segnale possono essere ricevute a grandi distanze, ma la precisione del tempo è dell'ordine di un millisecondo.
Lo standard attuale NTPv4 include driver audio per WWV, WWVH e CHU.
Radiodiffusione a onde lunghe
NIST trasmette anche il tempo e la frequenza esatti su onde radio lunghe a 60 kHz da Boulder, in Colorado. Ci sono altre stazioni di trasmissione di segnali di tempo esatto su onde lunghe.
Indicatori e posizione
Frequenza (kHz)
Potenza (kW)
WWVB Fort Collins, Colorado, USA
60
50
DCF77 Mainflingen, Germania
77.5
30
MSF Rugby, Regno Unito
60>
50
HBG Prangins, Svizzera
75
20
JJY Fukushima, Giappone
40
50
JJY Saga, Giappone
60
50
Stazioni di Tempo a Basse Frequenze
Il codice temporale viene trasmesso attraverso intervalli di 60 secondi a una velocità di 1 b/s, proprio come avviene presso le stazioni ad onde corte. Anche i formati di trasmissione dati sono simili per entrambi gli standard. La diffusione del segnale avviene attraverso i livelli inferiori dell'ionosfera, che sono relativamente stabili e presentano fluttuazioni previsibili dell'altezza quotidiana. Grazie a questa prevedibilità dell'ambiente fisico, la precisione aumenta fino a 50 μs.

Formato di trasmissione WWVB
Satellite operativo geostazionario per l'osservazione dell'ambiente
Negli Stati Uniti, il NIST trasmette anche dati su tempo e frequenza precisi a circa 468 MHz da satelliti geostazionari per l'ambiente (GOES). Il codice temporale si alterna a messaggi utilizzati per interrogare sensori remoti. Esso è composto da 60 BCD semi-byte, trasmessi con un intervallo di 30 s. Le informazioni sul codice temporale sono simili ai servizi terrestri.
Sistemi di posizionamento globale
Il Ministero della Difesa degli Stati Uniti utilizza il GPS per una navigazione precisa sulla terra, in mare e in aria. Questo sistema offre una copertura globale 24 ore su 24 tramite una costellazione di satelliti in orbite di 12 ore, inclinate a un angolo di 55°.
Il raggruppamento iniziale di 24 satelliti è stato ampliato a 31 satelliti in una configurazione irregolare, in modo tale che almeno 6 satelliti siano sempre visibili e 8 o più siano visibili nella maggior parte del mondo.
Servizi simili al GPS sono gestiti o pianificati da altri paesi. Il sistema GLONASS russo è attivo da oltre dieci anni, a partire dal 2 settembre 2010, quando il numero totale di satelliti è stato portato a 26 — la costellazione è stata completamente dispiegata per garantire una copertura totale della Terra.

I satelliti GPS attorno al globo.
Il sistema di navigazione satellitare dell'Unione Europea si chiama 'Galileo'. Si prevedeva che 'Galileo' iniziasse a funzionare nel 2014-2016, quando sarebbero stati messi in orbita tutti e 30 i satelliti pianificati. Tuttavia, nel 2018, la costellazione di satelliti 'Galileo' non aveva ancora raggiunto il numero necessario di dispositivi.
Esiste anche il cinese «Beidou», che in traduzione significa «balena». Questo sistema, composto da 16 satelliti, è stato avviato in operatività commerciale il 27 dicembre 2012, come sistema regionale di posizionamento. Si prevede che il sistema raggiunga piena capacità entro il 2020. Oggi, su Habr, è stato pubblicato , riguardo al successo del lancio di un satellite di questo sistema.
Matematica per la determinazione delle coordinate tramite SRNS
Come fa il navigatore GPS/Glonass sul tuo smartphone a determinare la posizione con tale precisione utilizzando il sistema di radiocomunicazione (SRNS)? Per comprendere il principio dei calcoli, è necessario ricordare la stereometria e l'algebra delle scuole superiori, o dei corsi di fisica e matematica.
Ogni satellite comunica al ricevitore l'ora esatta. I satelliti sono dotati di orologi atomici, pertanto la loro tempistica è affidabile. Conoscendo la velocità della luce, è semplice determinare il raggio della sfera sulla cui superficie si trova il satellite. Questa sfera, toccando la Terra, forma un cerchio, su cui si trova il ricevitore GPS/Glonass.
Quando il segnale arriva da due satelliti, già abbiamo l'intersezione della Terra e delle due sfere, il che fornisce solo due punti sul cerchio. La sfera del terzo satellite dovrebbe idealmente colpire uno di questi due punti, definendo definitivamente le coordinate del ricevitore.
In linea di principio, anche con due satelliti si possono dedurre indirettamente quale delle due punti sia più vicina alla verità, e gli algoritmi moderni del software di navigazione possono gestire tale compito. Ma allora, perché abbiamo bisogno di un quarto satellite?

Determinazione della posizione tramite una costellazione di satelliti.
Non è difficile notare che in questo quadro idealizzato ci sono molti fattori che influenzano la precisione dei calcoli. Il tempo nel ricevitore è forse la fonte di errore più evidente. Affinché tutto funzioni come dovrebbe, il tempo del ricevitore GPS/Glonass deve essere sincronizzato con il tempo del satellite. Senza ciò, l'errore sarebbe di ∓ 100.000 km.
Dalla formula della velocità, del tempo e della distanza S = v*t otteniamo l'equazione di base per la trasmissione del segnale GNSS. La distanza dal satellite è uguale al prodotto della velocità della luce per la differenza di tempo tra il satellite e il ricevitore.

Principalmente questo avviene perché, anche dopo tutte le sincronizzazioni, conosciamo il tempo al ricevitore tₚʳ con un sufficiente grado di precisione. Tra il tempo reale e tₚʳ ci sarà sempre Δt, a causa del quale l'errore di calcolo diventa inaccettabile. Ecco perché è necessario un quarto satellite.
Per un'argomentazione matematica più chiara sull'esigenza di quattro satelliti, costruiamo un sistema di equazioni.

Per determinare le quattro incognite x, y, z e Δt è necessario che il numero di osservazioni sia uguale o maggiore del numero delle incognite. Questa è una condizione necessaria, ma insufficiente. Se la matrice delle normali equazioni risulta degenere, il sistema di equazioni non avrà soluzione.
Non dobbiamo inoltre dimenticare la Teoria della Relatività Speciale e gli effetti relativistici del rallentamento del tempo sui orologi atomici satellitari rispetto a quelli terrestri.

Se consideriamo che un satellite si muove in orbita a una velocità di 14.000 km/h, otteniamo un rallentamento del tempo di circa 7 μs (microsecondi). D'altra parte, agiscono gli effetti relativistici della Teoria della Relatività Generale.
Il fatto è questo: i satelliti in orbita si trovano a grande distanza dalla Terra, dove la curvatura del continuum spazio-temporale è minore rispetto alla superficie terrestre a causa della massa della Terra. Secondo la TRG, il funzionamento degli orologi posizionati più vicino a un oggetto massiccio apparirà più lento rispetto a quelli più distanti.

- G — costante gravitazionale;
- M — massa dell'oggetto, in questo caso della Terra;
- r — distanza dal centro della Terra al satellite;
- c — velocità della luce.
Il calcolo con questa formula dà un rallentamento del tempo di 45 μs per il satellite. In totale -7μs +45μs = 38μs di bilanciamento — effetti della TRS e della TRG.
Nelle applicazioni di determinazione della posizione tramite GNSS è necessario considerare anche i ritardi ionosferici e troposferici. Inoltre, correzioni di 46 ns sono associate all'eccentricità di 0,02 delle orbite dei satelliti GPS.
La possibilità di ricevere segnali da più di quattro satelliti GPS / GLONASS consente di aumentare ulteriormente l'accuratezza nella determinazione delle coordinate del ricevitore. Questo viene realizzato attraverso la risoluzione, da parte del navigatore, di un sistema di quattro equazioni con quattro incognite.
Il numero di volte e calcola il valore medio, migliorando l'accuratezza della valutazione finale secondo le leggi della statistica matematica.
Come configurare un server NTP Stratum 1 tramite comunicazione satellitare
Per configurare un server di tempo di alta qualità è sufficiente avere GPSD, NTP e un ricevitore GPS con uscita 1PPS (un impulso al secondo).
1. Installare gpsd e ntpd, o gpsd e chronyd. La versione di gpsd deve essere ≥ 3.20.
(1:1109)$ sudo emerge -av gpsd chrony
La copia locale dell'indice remoto è aggiornata e verrà utilizzata.
Calcolo delle dipendenze... fatto!
[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
Totale: 3 pacchetti (3 nuovi, 3 binari), Dimensione dei download: 1275 KiB
Vuoi unire questi pacchetti? [Sì/No]2. Collega il ricevitore GPS con supporto PPS alla porta seriale RS232 o alla porta USB.
Un normale ricevitore GPS economico non andrà bene; potrebbe essere necessario cercare un po' per trovare quello giusto.
3. Assicurati che il dispositivo stia effettivamente emettendo PPS, controllando la porta con l'utilità gpsmon.
4. Apri il file /etc/conf.d/gpsd e modifica la seguente riga.
Sostituisci
GPSD_OPTIONS=""con
GPSD_OPTIONS="-n"Questa modifica è necessaria affinché gpsd inizi subito a cercare fonti di NTP all'avvio.
5. Avvia o riavvia gpsd.
(1:110)$ sudo /etc/init.d/gpsd start
(1:111)$ sudo /etc/init.d/gpsd restart
Per le distribuzioni con systemd, utilizzare il comando systemctl appropriato.
6. Controlla l'output della console del comando cgps.
È necessario assicurarsi che i dati siano correttamente ricevuti dai satelliti. In console dovrebbe apparire qualcosa di simile all'illustrazione.

Output del comando della console cgps.
7. È tempo di modificare il file /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
La voce NTP0 superiore indica una fonte universale di tempo, disponibile quasi su tutti i dispositivi GPS. La voce NTP1 inferiore definisce una fonte PPS molto più precisa.
8. Riavviare ntpd.
(1:112)$ sudo /etc/init.d/ntpd restart Per le distribuzioni con systemd, utilizzare il comando systemctl.
$ sudo systemctl restart ntp
Materiali utilizzati
- David L Mills, Il Protocollo di Tempo di Rete sulla Terra e nello Spazio, Seconda Edizione.
Fonte: habr.com
