Koduleht » kuidas » Kuidas NTP-serverid jäävad nii täpseks?

    Kuidas NTP-serverid jäävad nii täpseks?

    Paljud meist on olnud aeg-ajalt probleemiks meie arvutite ja muude seadmetega, mis säilitavad täpsed aja seaded, kuid kiire sünkroonimine NTP-serveriga teeb kõik jälle hästi. Aga kui meie enda seadmed ei suuda täpsust kaotada, siis kuidas saavad NTP-serverid nii täpsed?

    Tänane küsimuste ja vastuste seanss saabub meiega kohtades, kus on SuperUser-Stack Exchange'i alajaotis, kogukondlikult juhitav Q&A veebisaitide rühmitus.

    Foto viisakalt LEOL30 (Flickr).

    Küsimus

    SuperUser-lugeja Frank Thornton soovib teada, kuidas NTP-serverid on nii täpsed:

    Olen märganud, et minu serverites ja teistes masinates liiguvad kellad alati nii, et nad peavad sünkroniseerima, et jääda täpseks. Kuidas NTP-serveri kellad triivivad ja jäävad alati nii täpseks?

    Kuidas NTP-serverid jäävad nii täpseks?

    Vastus

    SuperUser'i toetaja Michael Kjorlingil on meile vastus:

    NTP-serverid tuginevad täpse ajaarvestuse jaoks väga täpsetele kelladele. Keskne NTP-serverite ühine ajaallikas on aatomkellad või GPS-vastuvõtjad (pidage meeles, et GPS-satelliitidel on aatomkellad). Need kellad on täpselt määratletud, kuna need annavad väga täpse ajaviite.

    Ei ole midagi maagilist GPS-i või aatomkellade kohta, mis muudavad need teile täpselt, millal see on. Kuna aatomkellad töötavad, on nad lihtsalt väga head, olles kunagi öelnud, millal see on, pidamine täpne aeg (kuna teine ​​määratletakse aatomi mõjudena). Tegelikult väärib märkimist, et GPS-aeg erineb UTC-st, mida me rohkem harjuma näeme. Need aatomkellad on omakorda sünkroniseeritud Rahvusvahelise Aatomiaja või TAI-ga, et mitte ainult täpselt öelda aja möödumist, vaid ka the aega.

    Kui teil on täpne aeg ühel süsteemil, mis on ühendatud võrguga nagu Internet, on protokolliprotseduur, mis võimaldab täpsete aegade ülekandmist hostide vahel ebausaldusväärses võrgus. Sellega seoses ei erine Stratum 2 (või kaugemal tegelikust allikast) NTP-server teie töölaua süsteemide sünkroonimisega NTP-serverite komplekti vastu.

    Selleks ajaks, kui teil on mõned täpsed ajad (nagu on saadud NTP-serveritest või mujal) ja teate oma kohaliku kella edenemise kiirust (mida on lihtne kindlaks määrata), saate arvutada kohaliku kella triivi määra võrreldes „usutavate täpsete Aja möödumine. Kui see väärtus on lukus, saab seda väärtust kasutada kohaliku kella pidevaks reguleerimiseks, et muuta see väärtustest väga täpseks ajaperioodiks, isegi kui kohalik reaalajas kell ise on väga ebatäpne. Niikaua kui teie kohalik kella pole väga ebaühtlane, see peaks võimaldama täpset aega mõnda aega hoida isegi siis, kui teie ülesvooluaja allikas ei ole mingil põhjusel kättesaadav.

    Mõned NTP kliendi rakendused (tõenäoliselt enamik ntpd deemon või süsteemi teenuse rakendused) seda teevad ja teised (nt ntpd'i kaaslane ntpdate, mis lihtsalt seab kella ühe korra). Seda nimetatakse tavaliselt kui a triivfail sest see säilitab püsivalt kella triivi mõõtmise, kuid rangelt öeldes ei pea seda salvestama kindla failina kettal.

    NTP-s on Stratum 0 määratluse järgi täpne ajaallikas. Stratum 1 on süsteem, mis kasutab ajaallikana Stratum 0 ajaallikat (ja on seega veidi vähem täpne kui Stratum 0 ajaallikas). Stratum 2 on veidi vähem täpne kui Stratum 1, sest see sünkroniseerib aega Stratumi 1 allikaga ja nii edasi. Praktikas on see täpsuse kaotus nii väike, et see on kõigis, kuid kõige äärmuslikumates olukordades täiesti tühine.


    Kas teil on midagi lisada selgitusele? Heli on kommentaarides välja lülitatud. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Vaadake siin täielikku arutelu lõiku.