Kako NTP poslužitelji upravljati ostati tako precizan?
Mnogi od nas imali su povremene probleme s našim računalima i drugim uređajima koji su zadržali točne postavke vremena, ali brza sinkronizacija s NTP poslužiteljem opet čini sve dobro. Ali ako naši vlastiti uređaji mogu izgubiti točnost, kako NTP poslužitelji uspijevaju ostati tako točni?
Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.
Fotografija zahvaljujući LEOL30 (Flickr).
Pitanje
Čitač SuperUser Frank Thornton želi znati kako NTP poslužitelji mogu ostati tako točni:
Primijetio sam da na mojim poslužiteljima i drugim strojevima, satovi uvijek drift, tako da oni moraju sinkronizirati do ostati točni. Kako NTP poslužitelj satovi čuvati od splavarenja i uvijek ostati tako točne?
Kako NTP poslužitelji uspijevaju ostati tako točni?
Odgovor
Suradnik Superkorisnik Michael Kjorling ima odgovor za nas:
NTP poslužitelji se oslanjaju na vrlo precizne satove za precizno mjerenje vremena. Uobičajeni vremenski izvor za središnje NTP poslužitelje su atomski satovi ili GPS prijemnici (imajte na umu da GPS sateliti imaju ugrađene atomske satove). Ovi satovi su definirani kao točni jer pružaju vrlo preciznu vremensku referencu.
Ne postoji ništa čarobno oko GPS-a ili atomskih satova koji bi ih natjerali da vam točno kažu u koje je vrijeme. Zbog načina na koji atomski satovi rade, oni su jednostavno vrlo dobri, nakon što su jednom rekli koliko je sati, čuvanje točno vrijeme (budući da je druga definirana u smislu atomskih učinaka). Zapravo, vrijedi spomenuti da se GPS vrijeme razlikuje od UTC-a koji smo više navikli vidjeti. Ovi atomski satovi su zauzvrat sinkronizirani s Međunarodnim atomskim vremenom ili TAI-jem kako bi se ne samo točno utvrdilo proteklo vrijeme, nego i vrijeme.
Jednom kada imate točno vrijeme na jednom sustavu povezanom s mrežom kao što je internet, stvar je protokolarnog inženjeringa koji omogućuje prijenos točnog vremena između domaćina preko nepouzdane mreže. U tom smislu NTP poslužitelj Stratum 2 (ili dalje od stvarnog vremena) se ne razlikuje od sinkronizacije vašeg stolnog sustava s nizom NTP poslužitelja.
Do vremena kada imate nekoliko točnih vremena (dobivenih od NTP poslužitelja ili negdje drugdje) i znate stopu napredovanja vašeg lokalnog sata (što je lako odrediti), možete izračunati brzinu pomjeranja vašeg lokalnog sata u odnosu na „vjerovanje točno - protjecanje vremena. Nakon zaključavanja, ova se vrijednost može upotrijebiti za kontinuirano podešavanje lokalnog sata kako bi se izvješćivalo o vrijednostima koje su vrlo blizu točnom prolasku vremena, čak i ako je lokalni sat realnog vremena vrlo netočan. Sve dok vaš lokalni sat nije visok nepravilan, to bi trebalo omogućiti zadržavanje točnog vremena neko vrijeme čak i ako vaš izvorni izvor vremena postane nedostupan iz bilo kojeg razloga.
Neke implementacije NTP klijenata (vjerojatno većina ntpd demona ili implementacija sistemskih usluga) to čine, a druge (kao što je ntpd-ov pratilac ntpdate koji jednostavno postavlja sat jednom) to ne čine. To se obično naziva a drift datoteka jer ustrajno pohranjuje mjeru pomaka sata, ali strogo govoreći, ne mora se pohraniti kao određena datoteka na disku.
U NTP-u, sloj 0 je po definiciji točan izvor vremena. Stratum 1 je sustav koji koristi vremenski izvor Stratum 0 kao izvor vremena (i stoga je nešto manje točan od vremenskog izvora Stratum 0). Stratum 2 je opet nešto manje točan od Stratuma 1 jer sinkronizira svoje vrijeme s izvorom Stratuma 1 i tako dalje. U praksi, ovaj gubitak točnosti je toliko mali da je potpuno zanemariv u svim slučajevima, osim u ekstremnim slučajevima.
Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.