Molti di noi hanno avuto problemi occasionali con i nostri computer e altri dispositivi che conservano impostazioni dell'ora accurate, ma una rapida sincronizzazione con un server NTP fa di nuovo tutto bene. Ma se i nostri dispositivi possono perdere la precisione, come fanno i server NTP a rimanere così precisi?
La sessione di domande e risposte di oggi ci arriva per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento guidato dalla comunità di siti web di domande e risposte.
Foto per gentile concessione di LEOL30 (Flickr) .
La domanda
Il lettore SuperUser Frank Thornton vuole sapere come i server NTP sono in grado di rimanere così precisi:
Ho notato che sui miei server e su altre macchine gli orologi si spostano sempre in modo che debbano sincronizzarsi per rimanere precisi. Come fanno gli orologi del server NTP a non spostarsi e rimangono sempre così precisi?
Come fanno i server NTP a rimanere così precisi?
La risposta
Il collaboratore di SuperUser Michael Kjorling ha la risposta per noi:
I server NTP si basano su orologi estremamente precisi per il cronometraggio preciso. Una fonte di tempo comune per i server NTP centrali sono gli orologi atomici o ricevitori GPS (ricorda che i satelliti GPS hanno orologi atomici a bordo). Questi orologi sono definiti accurati poiché forniscono un riferimento temporale estremamente preciso.
Non c'è niente di magico nel GPS o negli orologi atomici che ti fanno dire esattamente che ore sono. A causa del modo in cui funzionano gli orologi atomici, sono semplicemente molto bravi, una volta che è stato detto che ore sono, mantenendo tempo preciso (da il secondo è definito in termini di effetti atomici ). In effetti, vale la pena notarlo L'ora GPS è diversa dall'UTC che siamo più abituati a vedere. Questi orologi atomici sono a loro volta sincronizzati Ora atomica internazionale o TAI per raccontare non solo con precisione il passare del tempo, ma anche il tempo.
Una volta che si dispone di un'ora esatta su un sistema connesso a una rete come Internet, è una questione di ingegneria del protocollo che consente il trasferimento di tempi precisi tra host su una rete inaffidabile. A questo proposito, un server NTP Stratum 2 (o più lontano dalla sorgente dell'ora effettiva) non è diverso dal sistema desktop che si sincronizza con un insieme di server NTP.
Quando si dispone di alcuni orari precisi (ottenuti dai server NTP o altrove) e si conosce la velocità di avanzamento dell'orologio locale (che è facile da determinare), è possibile calcolare la velocità di deriva dell'orologio locale rispetto al "ritenuto accurato "Passare del tempo. Una volta bloccato, questo valore può essere utilizzato per regolare continuamente l'orologio locale in modo che riporti valori molto vicini al passaggio preciso del tempo, anche se l'orologio in tempo reale locale stesso è altamente impreciso. Finché il tuo orologio locale non è altamente irregolare , questo dovrebbe consentire di mantenere l'ora esatta per un po 'di tempo anche se l'origine dell'ora a monte non è disponibile per qualsiasi motivo.
Alcune implementazioni di client NTP (probabilmente la maggior parte dei demoni ntpd o implementazioni di servizi di sistema) lo fanno, e altre (come il compagno ntpdate di ntpd che imposta semplicemente l'orologio una volta) non lo fanno. Questo è comunemente indicato come a file di deriva perché memorizza in modo persistente una misura della deriva del clock, ma in senso stretto non deve essere memorizzato come un file specifico su disco.
In NTP, Stratum 0 è per definizione un'origine temporale precisa. Stratum 1 è un sistema che utilizza una sorgente temporale Stratum 0 come sorgente temporale (ed è quindi leggermente meno accurata della sorgente temporale Stratum 0). Stratum 2 di nuovo è leggermente meno preciso di Stratum 1 perché sincronizza il suo tempo con la sorgente Stratum 1 e così via. In pratica, questa perdita di accuratezza è così piccola che è completamente trascurabile in tutti i casi tranne il più estremo.
Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere altre risposte da altri utenti esperti di tecnologia Stack Exchange? Dai un'occhiata al thread di discussione completo qui .