Daudziem no mums ir neregulāra problēma ar mūsu datoriem un citām ierīcēm, saglabājot precīzus laika iestatījumus, taču ātra sinhronizācija ar NTP serveri atkal padara to par labu. Bet, ja mūsu ierīces var zaudēt precizitāti, kā NTP serveriem izdodas palikt tik precīzs?
Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.
Foto pieklājīgi no LEOL30 (Flickr).
SuperUser lasītājs Frank Thornton vēlas zināt, kā NTP serveri spēj palikt tik precīzi:
Esmu pamanījis, ka manos serveros un citās mašīnās pulksteņi vienmēr ir novecojuši, lai tie būtu sinhronizēti, lai tie būtu precīzi. Kā NTP servera pulkstenis attur no dreifēšanas un vienmēr paliek tik precīzs?
Kā NTP serveri spēj saglabāt tik precīzu?
SuperUser atbalstītājs Michael Kjorling mums ir atbilde:
NTP serveri izmanto ļoti precīzus pulksteņus precizitātes laika noteikšanai. Centrālo NTP serveru kopējais laika avots ir atomiskie pulksteņi vai GPS uztvērēji (atcerieties, ka GPS pavadoņiem ir atomiskie pulksteņi). Šie pulksteņi ir definēti kā precīzi, jo tie nodrošina ļoti precīzu laika atskaites rādītāju.
Nav nekas neparasts par GPS vai atomu pulksteņiem, kas viņiem padara precīzi precīzi, kad tas ir. Tā kā atomu pulksteņi darbojas, viņi vienkārši ir ļoti labi, kad kādreiz ir teicis, cik ilgi tas ir uzturēšana precīzs laiks (jo otrais tiek definēts kā atomu efekts). Faktiski ir vērts atzīmēt, ka GPS laiks atšķiras no UTC, kuru mēs esam vairāk izmantojuši, lai redzētu. Šie atomu pulksteņi savukārt ir sinhronizēti pret Starptautisko Atomisko Laiku vai TAI, lai ne tikai precīzi pateiktu laika pagājušo laiku, bet arī the laiks.
Kad jums ir precīzs laiks vienā sistēmā, kas savienots ar tīklu, piemēram, internetu, tas ir protokola inženierijas jautājums, kas ļauj pārsūtīt precīzus laikus starp saimniekiem pa neuzticamu tīklu. Šajā ziņā 2. strata (vai tālāk no faktiskā laika avota) NTP serveris neatšķiras no darbvirsmas sistēmas sinhronizācijas pret NTP serveru kopumu.
Līdz tam laikam, kad jums ir daži precīzi laiki (kā iegūti no NTP serveriem vai citur) un jūs zināt vietējā pulksteņa attīstību (ko ir viegli noteikt), jūs varat aprēķināt vietējā pulksteņa dreifa ātrumu attiecībā pret "ticēto pareizo "Laika pagājis. Pēc tam, kad tas ir bloķēts, šo vērtību pēc tam var izmantot, lai nepārtraukti pielāgotu vietējo pulksteni, lai ziņojuma vērtības būtu ļoti tuvas precīzam laika periodam, pat ja vietējais reāllaika pulkstenis pats par sevi ir ļoti neprecīzs. Kamēr jūsu vietējais pulkstenis nav ļoti augsts nepareizs, tam vajadzētu ļaut paturēt precīzu laiku kādu laiku pat tad, ja jūsu avota laika avots kāda iemesla dēļ kļūst nepieejams.
Daži NTP klienta implementāti (iespējams, visvairāk ntpd dēmonu vai sistēmas pakalpojumu implementācijas) to dara, un citi (piemēram, ntpd pavadonis ntpdate, kas vienkārši nosaka pulksteni vienu reizi) nav. To parasti sauc par a drifta fails jo tas pastāvīgi saglabā pulksteņa dreifa mērījumus, bet, stingri sakot, tas nav jāuzglabā kā konkrēts diskā esošs fails.
NTP Stratum 0 pēc definīcijas ir precīzs laika avots. Stratums 1 ir sistēma, kas kā laika avotu izmanto Time Stratum 0 laika avotu (un tādējādi ir nedaudz precīzāka nekā Stratum 0 laika avots). Stratums 2 atkal ir nedaudz precīzāks par Stratum 1, jo tas sinhronizē savu laiku pret Stratum 1 avotu un tā tālāk. Praksē šis precizitātes zudums ir tik mazs, ka tas ir pilnīgi niecīgs visos gadījumos, izņemot ārkārtējos gadījumus.
Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.