Monilla meistä on ollut toisinaan ongelmia siitä, että tietokoneemme ja muut laitteemme säilyttävät tarkat aika-asetukset, mutta nopea synkronointi NTP-palvelimen kanssa tekee kaiken jälleen hyvin. Mutta jos omat laitteemme voivat menettää tarkkuuden, miten NTP-palvelimet onnistuvat pysymään niin tarkkoina?
Tämän päivän Kysymys- ja vastausistunto tulee meille SuperUser-yhteisöstään, joka on Stack Exchangen osasto.
Kuva: LEOL30 (Flickr) .
Kysymys
SuperUser-lukija Frank Thornton haluaa tietää, kuinka NTP-palvelimet pystyvät pysymään niin tarkkoina:
Olen huomannut, että palvelimillani ja muilla koneillani kellot ajautuvat aina niin, että niiden on synkronoitava pysyäkseen tarkkoina. Kuinka NTP-palvelimen kellot eivät ajaudu ja pysyvät aina niin tarkkoina?
Kuinka NTP-palvelimet onnistuvat pysymään niin tarkkoina?
Vastaus
SuperUser-avustaja Michael Kjorlingilla on vastaus meille:
NTP-palvelimet tukevat tarkkoja kelloja tarkkaan ajanottoon. Keskitettyjen NTP-palvelimien yleinen aikalähde ovat atomikellot tai GPS-vastaanottimet (muista, että GPS-satelliiteissa on atomikellot). Nämä kellot on määritelty tarkkoiksi, koska ne tarjoavat erittäin tarkan aikaviitteen.
GPS: ssä tai atomikelloissa ei ole mitään maagista, mikä saa ne kertomaan sinulle tarkan ajankohdan. Atomikellojen toiminnan takia ne ovat yksinkertaisesti erittäin hyviä, kun heille on kerran kerrottu, mikä aika on, pitäminen tarkka aika (vuodesta toinen määritellään atomivaikutusten perusteella ). Itse asiassa se on syytä huomata GPS-aika eroaa UTC: stä jonka olemme tottuneet näkemään. Nämä atomikellot ovat puolestaan synkronoituja International Atomic Time or TAI jotta ei vain kerrota ajan kulumista, vaan myös aika.
Kun sinulla on tarkka aika yhdessä järjestelmässä, joka on kytketty verkkoon, kuten Internet, kyseessä on protokollatekniikka, joka mahdollistaa tarkan ajan siirtämisen isäntien välillä epäluotettavan verkon kautta. Tässä suhteessa Stratum 2: n (tai kauempana todellisesta aikalähteestä) NTP-palvelin ei eroa työpöytäjärjestelmän synkronoinnista NTP-palvelinjoukon kanssa.
Siihen mennessä, kun sinulla on muutama tarkka aika (saatu NTP-palvelimilta tai muualta) ja tiedät paikallisen kellosi etenemisnopeuden (mikä on helppo määrittää), voit laskea paikallisen kellosi ajautumisnopeuden suhteessa "uskottuun tarkkaan " ajankulku. Lukittuaan tätä arvoa voidaan sitten käyttää paikallisen kellon jatkuvaan säätämiseen siten, että se raportoi arvot hyvin lähellä tarkkaa ajan kulumista, vaikka itse paikallinen reaaliaikainen kello onkin erittäin epätarkka. Niin kauan kuin paikallinen kellosi ei ole kovin korkea arvaamaton , tämän pitäisi sallia tarkan ajan pitäminen jonkin aikaa, vaikka ylävirran aikalähteesi ei olisi jostain syystä käytettävissä.
Jotkut NTP-asiakastoteutukset (luultavasti useimmat ntpd-daemon- tai järjestelmäpalvelutoteutukset) tekevät tämän ja toiset (kuten ntpd: n kumppani ntpdate, joka asettaa kellon yksinkertaisesti kerran) eivät. Tätä kutsutaan yleisesti nimellä ajotiedosto koska se tallentaa jatkuvasti kellonsiirtymämäärän, mutta tarkkaan ottaen sitä ei tarvitse tallentaa erityisenä tiedostona levylle.
NTP: ssä Stratum 0 on määritelmän mukaan tarkka aikalähde. Stratum 1 on järjestelmä, joka käyttää Stratum 0 -aikalähdettä aikalähteenään (ja on siten hieman epätarkempi kuin Stratum 0 -aikalähde). Stratum 2 on jälleen hieman epätarkempi kuin Stratum 1, koska se synkronoi aikansa Stratum 1 -lähdettä ja niin edelleen. Käytännössä tämä tarkkuuden menetys on niin pieni, että se on täysin merkityksetön kaikissa paitsi äärimmäisissä tapauksissa.
Onko sinulla jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta teknisesti taitavilta Stack Exchangen käyttäjiltä? Katso koko keskusteluketju täältä .