Miten NTP-palvelimet hallitsevat pysyä niin tarkkana?
Monilla meistä on ollut satunnainen ongelma tietokoneiden ja muiden laitteiden kanssa, joilla on tarkat aika-asetukset, mutta nopea synkronointi NTP-palvelimen kanssa tekee kaikki hyvin uudelleen. Mutta jos omat laitteet voivat menettää tarkkuutta, miten NTP-palvelimet pysyvät niin tarkkina?
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kuva: LEOL30 (Flickr).
Kysymys
SuperUser-lukija Frank Thornton haluaa tietää, miten NTP-palvelimet voivat pysyä niin tarkkina:
Olen huomannut, että palvelimessani ja muissa koneissa kellot aina ajelevat niin, että niiden on synkronoitava pysyäkseen tarkkana. Miten NTP-palvelimen kellot eivät jatka ajelehtimista ja pysyvät aina niin tarkkina?
Miten NTP-palvelimet pysyvät niin tarkoina?
Vastaus
SuperUser-avustaja Michael Kjorlingilla on vastaus meille:
NTP-palvelimet luottavat tarkkojen ajankäytön tarkkojen kellojen avulla. Keskeisten NTP-palvelimien yleinen aikalähde ovat atomikellot tai GPS-vastaanottimet (muista, että GPS-satelliiteilla on atomikellot). Nämä kellot on määritelty tarkoiksi, koska ne tarjoavat erittäin tarkan viiteajan.
Mikään ei ole maagista GPS: stä tai atomikelloista, jotka tekevät niistä kertomuksen tarkalleen, milloin se on. Koska atomikellot toimivat, he ovat yksinkertaisesti erittäin hyviä, kun heille on kerran kerrottu, mitä aikaa se on, pito tarkka aika (koska toinen määritellään atomivaikutusten perusteella). Itse asiassa on syytä huomata, että GPS-aika eroaa UTC: stä, jota olemme tottuneempia näkemään. Nämä atomikellot ovat vuorostaan synkronoituja kansainvälistä atomiaikaa tai TAI: ta vastaan, jotta ne eivät vain kerro tarkasti ajan kulkua, vaan myös aika.
Kun sinulla on tarkka aika yhdellä järjestelmällä, joka on kytketty verkkoon kuten Internetiin, on kyse protokollan suunnittelusta, joka mahdollistaa tarkan ajan siirtämisen isäntien välillä epäluotettavassa verkossa. Tässä suhteessa Stratum 2 (tai kauempana varsinaisesta ajan lähteestä) NTP-palvelin ei poikkea työpöytäjärjestelmän synkronoinnista NTP-palvelimien kanssa..
Kun sinulla on muutama täsmällinen aika (kuten NTP-palvelimilta tai muualta) ja tiedät paikallisen kellon etenemisnopeuden (joka on helppo määrittää), voit laskea paikallisen kellonsiirtonopeuden suhteessa "uskottuun tarkkaan " ajankulku. Kun lukitus on lukittu, tätä arvoa voidaan käyttää paikallisen kellon jatkuvaan säätämiseen, jotta se ilmoittaa arvot hyvin lähellä ajan tarkkaa kulkua, vaikka paikallinen reaaliaikakello olisikin erittäin epätarkka. Niin kauan kuin paikallinen kello ei ole kovin korkea arvaamaton, tämän pitäisi mahdollistaa tarkan ajan pitäminen jonkin aikaa, vaikka ylävirran aikalähde ei olisi käytettävissä jostain syystä.
Jotkut NTP-asiakkaan toteutukset (luultavasti useimmat ntpd-demoni tai järjestelmäpalvelun toteutukset) tekevät tämän, ja muut (kuten ntpd: n seuralainen ntpdate, joka vain asettaa kellon kerran). Tätä kutsutaan yleisesti nimellä a drift-tiedosto koska se tallentaa jatkuvasti kellonajon mittauksen, mutta tiukasti ottaen sitä ei tarvitse tallentaa tietylle tiedostolle levylle.
NTP: ssä Stratum 0 on määritelmän mukaan tarkka aika. Stratum 1 on järjestelmä, joka käyttää aikalähteenä Stratum 0 -aikalähdettä (ja on siten hieman vähemmän tarkka kuin Stratum 0 -aikalähde). Stratum 2 taas on hieman vähemmän tarkka kuin Stratum 1, koska se synkronoi aikaansa Stratum 1 -lähteeseen ja niin edelleen. Käytännössä tämä tarkkuuden menetys on niin pieni, että se on täysin vähäistä kaikissa paitsi äärimmäisissä tapauksissa.
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.