Domača » kako » Kako NTP strežniki upravljajo, da ostanejo tako natančni?

    Kako NTP strežniki upravljajo, da ostanejo tako natančni?

    Mnogi od nas so imeli občasne težave z našimi računalniki in drugimi napravami, ki ohranjajo natančne nastavitve časa, vendar pa je hitra sinhronizacija s strežnikom NTP znova dobra. Toda, če lahko naše naprave izgubijo natančnost, kako lahko NTP strežniki ostanejo tako natančni?

    Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.

    Fotografija z dovoljenjem LEOL30 (Flickr).

    Vprašanje

    Bralnik SuperUser Frank Thornton želi vedeti, kako lahko NTP strežniki ostanejo tako natančni:

    Opazil sem, da na mojih strežnikih in drugih strojih ure vedno drsijo, tako da se morajo sinhronizirati, da ostanejo točne. Kako NTP strežnik ure obdržati od visečih in vedno ostanejo tako natančni?

    Kako strežniki NTP uspejo ostati tako natančni?

    Odgovor

    Prispevek SuperUser Michael Kjorling ima odgovor za nas:

    NTP strežniki se zanašajo na zelo natančne ure za natančno merjenje časa. Skupni časovni vir za centralne strežnike NTP so atomske ure ali GPS sprejemniki (ne pozabite, da imajo sateliti GPS na krovu atomske ure). Te ure so opredeljene kot točne, saj zagotavljajo zelo natančen časovni sklic.

    Nič ni čarobnega glede GPS ali atomskih ur, ki bi vam povedale, kakšen je čas. Zaradi tega, kako delujejo atomske ure, so preprosto zelo dobre, ko so že enkrat povedali, koliko je ura, ohranjanje točen čas (ker je drugi definiran v smislu atomskih učinkov). Pravzaprav je treba omeniti, da se čas GPS-a razlikuje od časa UTC, ki smo ga vajeni. Te atomske ure so nato sinhronizirane z mednarodnim atomskim časom ali TAI, da ne samo natančno povemo, kako poteka čas, ampak tudi čas.

    Ko v enem sistemu, ki je povezan z omrežjem, kot je internet, dobite točen čas, gre za načrtovanje protokolov, ki omogoča prenos natančnih časov med gostitelji preko nezanesljivega omrežja. V zvezi s tem se stratum 2 (ali dlje od dejanskega časovnega vira) NTP strežnik ne razlikuje od sinhronizacije namiznega sistema z nizom strežnikov NTP.

    Do takrat, ko boste imeli nekaj natančnih časov (pridobljenih s strežnikov NTP ali kje drugje) in poznate stopnjo napredovanja vaše lokalne ure (kar je enostavno določiti), lahko izračunate hitrost premika vaše lokalne ure glede na »verjetne točne« »Čas. Ko je ta vrednost zaklenjena, jo lahko uporabite za nenehno prilagajanje lokalne ure, da se sporoči vrednosti, ki so zelo blizu natančnemu prehodu časa, tudi če je lokalna ura realnega časa zelo netočna. Dokler vaša lokalna ura ni zelo visoka nenavadno, to bi moralo omogočiti, da se za nekaj časa ohrani točen čas, tudi če iz katerega koli razloga vaš izvor časa v zgornjem toku ne bo na voljo.

    Nekatere implementacije NTP odjemalcev (verjetno večine izvajalcev ntpd ali sistemskih storitev) to počnejo, druge (kot ntpd-jev spremljevalec ntpdate, ki preprosto nastavi uro) pa ne. To se običajno imenuje a datoteka za odnašanje ker vztrajno shranjuje merilo pomika ure, vendar strogo gledano ni treba shraniti kot določeno datoteko na disku.

    V NTP je Stratum 0 po definiciji točen časovni vir. Stratum 1 je sistem, ki uporablja časovni vir Stratum 0 kot svoj časovni vir (in je zato nekoliko manj natančen od časovnega vira Stratum 0). Stratum 2 je spet nekoliko manj natančen kot Stratum 1, ker sinhronizira svoj čas z virom Stratum 1 in tako naprej. V praksi je ta izguba natančnosti tako majhna, da je popolnoma zanemarljiva v vseh primerih, razen v najbolj ekstremnih primerih.


    Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.