Kaip „NTP“ serveriai valdo tokį tikslumą?
Daugelis iš mūsų kartais susidūrė su problemomis, susijusiomis su kompiuteriais ir kitais įrenginiais, kurie išlaikė tikslius laiko nustatymus, tačiau greitas sinchronizavimas su NTP serveriu vėl gerai veikia. Bet jei mūsų prietaisai gali prarasti tikslumą, kaip NTP serveriai sugeba išlikti tokie tikslūs?
Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.
„LEOL30“ („Flickr“) nuotrauka.
Klausimas
„SuperUser“ skaitytojas Frank Thornton nori sužinoti, kaip „NTP“ serveriai gali išlikti tokie tikslūs:
Pastebėjau, kad mano serveriuose ir kitose mašinose laikrodžiai visada nukreipiami taip, kad jie turėtų sinchronizuoti, kad liktų tikslūs. Kaip NTP serverio laikrodžiai išlaiko dreifą ir visada lieka tokie tikslūs?
Kaip NTP serveriai sugeba išlikti tokie tikslūs?
Atsakymas
„SuperUser“ autorius Michaelas Kjorlingas mums atsako:
NTP serveriai remiasi labai tiksliais laikrodžiais, kad būtų galima tiksliai laikytis. Paprastas laiko šaltinis centriniams NTP serveriams yra atominiai laikrodžiai arba GPS imtuvai (atminkite, kad GPS palydovai turi atominius laikrodžius). Šie laikrodžiai apibrėžiami kaip tikslūs, nes jie suteikia labai tikslią laiko nuorodą.
Nėra nieko stebuklingo apie GPS ar atominius laikrodžius, dėl kurių jie tiksliai pasakys, koks laikas yra. Dėl to, kaip veikia atominiai laikrodžiai, jie paprasčiausiai yra labai geri, kai kada buvo pasakyta, koks laikas yra, laikymas tikslus laikas (nuo antrojo yra apibrėžiamas atomų poveikis). Tiesą sakant, verta paminėti, kad GPS laikas skiriasi nuo UTC, kad mes labiau matome. Šie atominiai laikrodžiai savo ruožtu sinchronizuojami su Tarptautiniu atominiu laiku arba TAI, kad ne tik tiksliai pasakytų apie laiko praėjimą, bet ir laikas.
Kai vienoje sistemoje, kuri yra prijungta prie tinklo, pvz., Interneto, yra tikslus laikas, tai yra protokolų inžinerijos klausimas, leidžiantis tiksliai perkelti tarp šeimininkų per nepatikimą tinklą. Šiuo atžvilgiu „Stratum 2“ (arba toliau nuo faktinio laiko šaltinio) NTP serveris nesiskiria nuo darbalaukio sistemos sinchronizavimo su NTP serverių rinkiniu.
Iki to laiko, kai turite keletą tikslių kartų (kaip gauta iš NTP serverių ar kitur) ir žinote vietinio laikrodžio pažangos tempą (kurį lengva nustatyti), galite apskaičiuoti vietinio laikrodžio dreifo rodiklį, palyginti su „tikėtinu tiksliu „Laiko eiga. Kai ši reikšmė užrakinta, ji gali būti naudojama nuolat reguliuoti vietinį laikrodį, kad jis praneštų reikšmes, kurios yra labai artimos tiksliam laikui, net jei vietinis realaus laiko laikrodis yra labai netikslus. Tol, kol jūsų vietinis laikrodis nėra labai didelis nepastovus, tai turėtų leisti tam tikrą laiką tiksliai laikytis, net jei jūsų pradinio laiko šaltinis dėl kokių nors priežasčių nepasiekiamas.
Kai kurie NTP kliento diegimai (tikriausiai dauguma ntpd demono ar sistemos paslaugų diegimo) tai daro, o kiti (pvz., Ntpd kompanionas ntpdate, kuris tiesiog nustato laikrodį vieną kartą). Tai paprastai vadinama a dreifavimo failas nes jis nuolat saugo laikrodžio dreifo matą, tačiau griežtai kalbant, jis neturi būti saugomas kaip konkretus failas diske.
NTP, Stratum 0 pagal apibrėžimą yra tikslus laiko šaltinis. Stratum 1 yra sistema, kuri laiko laiko šaltiniu naudoja Stratum 0 laiko šaltinį (ir todėl yra šiek tiek mažiau tiksli, nei Stratum 0 laiko šaltinis). „Stratum 2“ vėl yra šiek tiek mažiau tiksli nei „Stratum 1“, nes ji sinchronizuoja laiką su „Stratum 1“ šaltiniu ir pan. Praktiškai toks tikslumo praradimas yra toks mažas, kad jis yra visiškai nereikšmingas visais, bet labiausiai nutolusiais atvejais.
Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.