Mulți dintre noi am avut ocazional probleme cu computerele și alte dispozitive care păstrează setări de timp exacte, dar o sincronizare rapidă cu un server NTP face totul din nou bine. Dar dacă dispozitivele noastre își pot pierde acuratețea, cum reușesc serverele NTP să rămână atât de precise?
Sesiunea de Întrebări și Răspunsuri de astăzi ne vine prin amabilitatea SuperUser - o subdiviziune a Stack Exchange, un grup de site-uri web de întrebări și răspunsuri bazat pe comunitate.
Fotografie oferită de LEOL30 (Flickr) .
Intrebarea
Cititorul SuperUser, Frank Thornton, vrea să știe cum serverele NTP sunt capabile să rămână atât de exacte:
Am observat că pe serverele mele și pe alte mașini, ceasurile se deplasează întotdeauna, astfel încât acestea trebuie să se sincronizeze pentru a rămâne corecte. Cum se păstrează ceasurile serverului NTP de la deriva și rămân mereu atât de precise?
Cum reușesc serverele NTP să rămână atât de exacte?
Răspunsul
Contribuitorul SuperUser Michael Kjorling are răspunsul pentru noi:
Serverele NTP se bazează pe ceasuri de înaltă precizie pentru o precizie a cronometrării. O sursă de timp comună pentru serverele NTP centrale sunt ceasurile atomice sau receptoarele GPS (amintiți-vă că sateliții GPS au ceasuri atomice la bord). Aceste ceasuri sunt definite ca fiind exacte, deoarece oferă o referință de timp foarte exactă.
Nu există nimic magic în GPS sau ceasuri atomice care să le facă să vă spună exact ce oră este. Datorită modului în care funcționează ceasurile atomice, acestea sunt pur și simplu foarte bune, după ce li s-a spus odată ce oră este, păstrarea ora exactă (de când al doilea este definit în termeni de efecte atomice ). De fapt, merită menționat acest lucru Ora GPS este diferită de UTC că suntem mai obișnuiți să vedem. Aceste ceasuri atomice sunt la rândul lor sincronizate cu Timpul internațional atomic sau TAI pentru a spune nu numai cu exactitate trecerea timpului, ci și timp.
Odată ce aveți o oră exactă pe un sistem conectat la o rețea precum Internetul, este o chestiune de inginerie a protocolului care permite transferul orelor precise între gazde pe o rețea nesigură. În acest sens, un server NTP Stratum 2 (sau mai departe de sursa de timp reală) nu diferă de sincronizarea sistemului desktop cu un set de servere NTP.
Până când aveți câteva ore exacte (obținute de pe servere NTP sau din alte părți) și cunoașteți rata de avans a ceasului local (care este ușor de determinat), puteți calcula rata de derivare a ceasului local în raport cu „credința exactă " trecerea timpului. Odată blocată, această valoare poate fi apoi utilizată pentru a regla continuu ceasul local pentru a face să raporteze valori foarte apropiate de trecerea exactă a timpului, chiar dacă ceasul local în timp real este foarte inexact. Atâta timp cât ceasul dvs. local nu este foarte ridicat neregulat , acest lucru ar trebui să permită menținerea timpului precis timp de ceva timp, chiar dacă sursa dvs. de timp din amonte devine indisponibilă din orice motiv.
Unele implementări ale clientului NTP (probabil cele mai multe implementări de daemon sau servicii de sistem ntpd) fac acest lucru, iar altele (cum ar fi ntpdate însoțitoare ale ntpd, care pur și simplu setează ceasul o dată) nu. Acest lucru este denumit în mod obișnuit ca fișier drift deoarece stochează în mod persistent o măsură de derivare a ceasului, dar strict vorbind nu trebuie să fie stocată ca un fișier specific pe disc.
În NTP, Stratum 0 este prin definiție o sursă de timp precisă. Stratum 1 este un sistem care folosește o sursă de timp Stratum 0 ca sursă de timp (și, prin urmare, este puțin mai precisă decât sursa de timp Stratum 0). Stratum 2 este din nou puțin mai precis decât Stratum 1, deoarece își sincronizează timpul cu sursa Stratum 1 și așa mai departe. În practică, această pierdere de precizie este atât de mică încât este complet neglijabilă în toate cazurile, cu excepția celor mai extreme.
Aveți ceva de adăugat la explicație? Sună în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori ai Stack Exchange? Consultați aici firul complet de discuție .