Mulți dintre noi au avut o problemă ocazională cu computerele și alte dispozitive care păstrează setările de timp exacte, însă un sincronizare rapidă cu un server NTP se face din nou bine. Dar dacă propriile noastre dispozitive pot pierde precizia, cum pot gestiona serverele NTP să rămână atât de exacte?
Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.
Fotografie prin amabilitatea LEOL30 (Flickr).
Cititorul super-utilizator Frank Thornton dorește să știe cum serverele NTP pot rămâne atât de precise:
Am observat că pe serverele și alte mașini, ceasurile sunt mereu derivează, astfel încât acestea să se sincronizeze pentru a rămâne exacte. Cum păstrează ceasurile serverelor NTP de la drift și rămân mereu atât de exacte?
Cum reușesc serverele NTP să rămână atât de exacte?
Contribuabilul SuperUser Michael Kjorling are răspunsul pentru noi:
Serverele NTP se bazează pe ceasuri foarte precise pentru ceasuri de precizie. O sursă de timp comună pentru serverele centrale NTP sunt ceasurile atomice sau receptoarele GPS (amintiți-vă că sateliții GPS au ceasuri atomice la bord). Aceste ceasuri sunt definite ca fiind precise, deoarece oferă o referință de timp foarte exactă.
Nu este nimic magic despre GPS sau ceasuri atomice care îi fac să vă spună exact ce moment este. Din cauza felului în care funcționează ceasurile atomice, ei sunt pur și simplu foarte buni, după ce li s-au spus cândva, păstrare timpul exact (deoarece al doilea este definit în termeni de efecte atomice). De fapt, este demn de remarcat faptul că timpul GPS este diferit de UTC pe care suntem mai obișnuiți să îl vedem. Aceste ceasuri atomice sunt, la rândul lor, sincronizate cu Timpul Atomic Internațional sau TAI, pentru a nu numai să spună exact trecerea timpului, dar și timp.
Odată ce aveți un timp exact pe un sistem conectat la o rețea precum Internetul, este vorba de o inginerie de protocol care permite transferul de timpuri precise între gazde printr-o rețea nesigură. În acest sens, un server NTP Stratum 2 (sau mai departe de sursa de timp efectivă) nu se deosebește de sistemul de desktop care se sincronizează cu un set de servere NTP.
Până când aveți câteva momente corecte (obținute de la serverele NTP sau în altă parte) și cunoașteți viteza de avansare a ceasului local (care este ușor de determinat), puteți calcula rata de deviație a ceasului local relativ la " " trecerea timpului. Odată blocat, această valoare poate fi apoi utilizată pentru reglarea continuă a ceasului local pentru a face ca valorile să fie raportate foarte aproape de trecerea exactă a timpului, chiar dacă ceasul local în timp real este foarte inexact. Atâta timp cât ceasul local nu este foarte bun neregulat, acest lucru ar trebui să permită păstrarea timpului exact pentru o anumită perioadă de timp, chiar dacă sursa de timp în amonte devine indisponibilă din orice motiv.
Unele implementări ale clientului NTP (probabil cele mai multe ntpd implementări de daemon sau serviciu de sistem) fac acest lucru, iar altele (ca ntpdd ntpd însoțitor ntpdate care setează doar ceasul o dată) nu. Aceasta este denumită în mod obișnuit a drift file deoarece stochează în mod constant o măsură a drift-ului de ceas, 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ă. Stratul 1 este un sistem care utilizează o sursă de timp Stratum 0 ca sursă de timp (și este deci puțin mai precisă decât sursa de timp Stratum 0). Stratul 2 este din nou puțin mai precis decât Stratum 1, deoarece se 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 decât cele extreme.
Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.