Utrzymywanie dokładnego czasu na komputerach

Wszystkie komputery i urządzenia sieciowe korzystają z zegarów, aby utrzymać wewnętrzny czas systemu. Te zegary, zwane układami zegara czasu rzeczywistego (RTC), dostarczają informacji o czasie i dacie. Chipy są zasilane bateryjnie, dzięki czemu nawet podczas przerw w zasilaniu mogą utrzymać czas. Jednak komputery osobiste nie są zaprojektowane jako idealne zegary, ich konstrukcja została zoptymalizowana pod kątem masowej produkcji i niskich kosztów, zamiast utrzymywania dokładnego czasu.

Te wewnętrzne zegary są podatne na dryfowanie i chociaż dla wielu zastosowań może to być całkiem odpowiednie, często maszyny muszą współpracować w sieci i jeśli komputery dryfują z różnymi prędkościami, komputery będą się zlewały ze sobą i mogą pojawić się problemy, szczególnie z transakcjami czasowymi.

Network Time Protocol (NTP) to jeden z najstarszych używanych protokołów internetowych, opracowany przez dr Davida Millsa z University of Delaware, który jest wykorzystywany od 1985. NTP to protokół przeznaczony do synchronizacji zegarów na komputerach i sieciach w Internecie lub w sieciach lokalnych (LAN).

NTP (wersja 4) może utrzymywać czasu przez Internet publicznego w ciągu milisekund 10 (1 / 100th sekundy) i może wykonywać jeszcze lepiej nad sieciami LAN z dokładnością 200 mikrosekund (1 / 5000th sekundy) w idealnych warunkach.

NTP działa w ramach pakietu TCP / IP i opiera się na UDP, mniej skomplikowana forma NTP istnieje nazywa Simple Network Time Protocol (SNTP), która nie wymaga przechowywania informacji o poprzednich komunikatach, potrzebnych NTP. Jest on stosowany w niektórych urządzeniach i aplikacjach gdzie wymagana jest wysoka dokładność synchronizacji nie jest tak ważne.

Wiele systemów operacyjnych, w tym Windows, UNIX i LINUX, może wykorzystywać NTP i SNTP, a synchronizacja czasu z NTP jest stosunkowo prosta, synchronizuje czas w odniesieniu do niezawodnego źródła zegara. To źródło może być względne (zegar wewnętrzny komputera lub czas na zegarze nadgarstka) lub bezwzględne (A UTC - Universal Coordinated Time - źródło zegara tak dokładne, jak to tylko możliwe).
Wszystkie wersje systemu Microsoft Windows od 2000 zawierają usługę czasu systemu Windows (w32time.exe), która umożliwia synchronizację zegara komputera z serwerem NTP.
 
Istnieje wiele hostowanych przez Internet serwerów NTP, które synchronizują się z zewnętrznymi odniesieniami UTC, takimi jak time.nist.gov lub ntp.my-inbox.co.uk, ale należy zauważyć, że Microsoft i inni zalecają, aby zewnętrzne źródło było używane do zsynchronizuj swoje maszyny, ponieważ referencje internetowe nie mogą być uwierzytelnione. Dostępne są specjalistyczne serwery czasu NTP, które mogą synchronizować czas w sieci przy użyciu MSF (lub odpowiednika) lub sygnału GPS.

Najczęściej używane są serwery czasu GPS, które korzystają z systemu GPS do przekazywania dokładnego czasu. System GPS składa się z wielu satelitów zapewniających dokładną lokalizację i informacje o położeniu. Każdy satelita GPS może to zrobić tylko przez użycie zegara atomowego, który z kolei może być użyty jako odniesienie czasowe.

Typowy odbiornik GPS może dostarczyć informacji o taktowaniu do kilku nanosekund UTC tak długo, jak jest antena położony z dobrym widokiem nieba.

Istnieje szereg krajowych transmisji radiowych w czasie i częstotliwościach, które można wykorzystać do synchronizacji serwera NTP. W Wielkiej Brytanii sygnał (zwany MSF) jest nadawany przez National Physics Laboratory w Cumbrii, który służy jako krajowe odniesienie czasowe w Wielkiej Brytanii, istnieją również podobne systemy w Kolorado, USA (WWVB) i we Frankfurcie w Niemczech (DCF-77). Sygnały te zapewniają czas UTC z dokładnością do mikrosekund 100, jednak sygnał radiowy ma skończony zakres i jest podatny na zakłócenia.

Ten post został napisany przez

Richard N Williams

Richard N Williams jest autorem techniczny i specjalista w branży Server i synchronizacji czasu NTP. Richard N Williams na Google+