Miesięcznik informatyków i menedżerów IT sektora publicznego

Artur Pęczak

NTP i synchronizacja czasu

Network Time Protocol jest internetowym protokołem synchronizacji czasu. Został zaprojektowany w 1985 r. przez Davida Millsa z Uniwersytetu w Delaware i do dziś zapewnia wysoką precyzję zegarów komputerów oraz innych urządzeń podłączonych do Sieci.

W środowiskach wymagających najwyższej precyzji czasu stosuje się sprzętowe serwery czasu. Przykładem takiego rozwiązania może być serwer NTP Elproma NTS-5000 synchronizujący czas z satelitarnym odbiornikiem GNSS (obsługiwane GPS, GLONASS, Beidou, Galileo, IRNSS i Iridium) i wyposażony w generator rubidowy oraz oscylator kwarcowy TCXO do podtrzymania czasu.

Network Time Protocol (NTP) jest jednym z najstarszych protokołów internetowych opartych na klasycznej architekturze klient–serwer. Klient usługi wysyła żądanie przesłania aktualnego czasu. W odpowiedzi dostaje zaś zestaw adekwatnych informacji niezbędnych do synchronizacji zegara systemowego. Problem w tym, że od momentu wysłania do otrzymania pakietu przez internet, jego przetworzenia i synchronizacji zegara mija nieco czasu.

Protokół NTP używa wielu wyrafinowanych matematycznych i statystycznych algorytmów, aby zapewnić niezwykle wysoką precyzję synchronizacji oraz złagodzić efekt dryfu zegarów, w tym problemy związane z przeliczaniem opóźnień transmisji pakietów oraz korekcją częstotliwości zegarów. W rezultacie NTPv4 teoretycznie umożliwia synchronizację zegara z dokładnością rzędu nanosekund, choć w praktyce dokładność NTP określana jest na poziomie 1–2 ms w przypadku synchronizacji przez sieć LAN i kilku dziesiątek ms dla synchronizacji przez internet.

NTP vs. SNTP

Wykonanie algorytmów NTP wymaga zalokowania pewnej mocy obliczeniowej i pamięci, która w przypadku takich urządzeń jak mikrokontrolery, kamery monitoringu wizyjnego czy przełączniki sieciowe może być niewystarczająca. Z drugiej zaś strony na wielu urządzeniach, np. laptopach pracowników, tak wysoka precyzja czasu gwarantowana przez NTP nie jest po prostu wymagana. To główny powód wprowadzenia do powszechnego użycia uproszczonej wersji protokołu o nazwie Simple Network Time Protocol (SNTP). Ma on szereg ograniczeń, których omówienie pozwala jednocześnie zaprezentować znacznie bardziej rozbudowane możliwości „pełnego” protokołu NTP. 

SNTP pomija szereg obliczeń matematyczno-statystycznych, a więc nie ma możliwości zapewnienia wysokiej dokładności synchronizowanego czasu oferowanej przez „pełny” NTP. Co więcej, protokół SNTP pozwala na synchronizację czasu tylko z jednego źródła naraz – zegara sprzętowego komputera lub serwera czasu w sieci. Klient SNTP nie potrafi wykrywać rozbieżności czy przekłamań, ustawiając bez dodatkowych zastrzeżeń zegar według znacznika czasu otrzymanego od serwera. Dla przeciwwagi NTP umożliwia monitorowanie wielu źródeł, a wbudowane algorytmy pozwalają ocenić, które z nich należy uznać za najbardziej wiarygodne. NTP uwzględnia statystyki opóźnień oraz korelacji czasowych w sieci komputerowej. Na podstawie znaczników pochodzących jednocześnie z różnych źródeł czasu oraz algorytmu analizy opartej na metodzie DTS potrafi ustalić precyzyjny czas. Wysoka precyzja jest możliwa do osiągnięcia dzięki jeszcze jednemu aspektowi – NTP koryguje czas stopniowo, przyspieszając lub spowalniając zegar systemowy, aby uwzględnić nawet najmniejsze zmiany czasu. Wiele klientów SNTP wymusza proste, chwilowe ustawienie czasu zgodnie z otrzymanym znacznikiem czasu. Dodatkowo NTP zawiera wiele funkcji zabezpieczeń, które chronią przed podszywaniem i innymi próbami ataku na serwer. Najważniejsze to obliczanie sum kontrolnych algorytmem MD5, które potwierdzają pochodzenie znacznika czasu od właściwego źródła. SNTP takich mechanizmów nie oferuje.

Wśród wszystkich ograniczeń protokołu znajdziemy jednak wiele elementów wspólnych. Nadrzędnym celem jest synchronizacja czasu z zegarem wzorcowym, a protokoły NTP i SNTP uważa się za interoperacyjne. Pakiety przesyłane między klientem a serwerem w obu przypadkach są identyczne, co oznacza, że klient SNTP może synchronizować z dowolnego serwera NTP. Zasadnicza różnica miedzy NTP a SNTP nie wynika zatem z różnic między przesyłanymi informacjami, ale ze sposobu, w jaki algorytmy potrafią na ich podstawie wyliczyć aktualny czas, uwzględniając opóźnienia w sieci i inne charakterystyki mające wpływ na precyzję synchronizacji zegarów komputerów.

pool.ntp.org

Projekt pool.ntp.org zbiera informacje o serwerach czasu z całego świata, grupując je w rozproszone geograficznie pule. Znając tylko standardowy adres puli (a te tworzone są według ustalonego, zrozumiałego schematu), można szybko podłączyć się do serwerów z danego kraju lub regionu, bez konieczności samodzielnego wprowadzania nazw czy adresów IP konkretnych serwerów. Dla przykładu pula serwerów czasu działających w Polsce liczy ok. 30 aktywnych maszyn dla IPv4 i ok. 15 serwerów dla IPv6. W celu zdefiniowania takiej puli w konfiguracji serwera NTP można się do niej odwołać w następujący sposób:

pool 0.pl.pool.ntp.org
pool 1.pl.pool.ntp.org
pool 2.pl.pool.ntp.org
pool 3.pl.pool.ntp.org

Kolejne adresy 0, 1, 2 oraz 3 wskazują na serwery, których lista zmienia się co godzina. W rezultacie synchronizacja czasu odbywa się z różnymi serwerami. Jednocześnie dokumentacja projektu stwierdza, że najlepsze rezultaty daje umieszczenie w konfiguracji ntpd odwołania do najbardziej ogólnej strefy pool.ntp.org (lub 0.pool.ntp.org, 1.pool.ntp.org itd.). System DNS zwróci adres serwera lub serwerów czasu najbliższy dla danej lokalizacji. Do projektu pool.ntp.org może przyłączyć się każdy, kto dysponuje działającym serwerem czasu z przypisanym statycznym adresem oraz stabilnym łączem internetowym. Warto o tym pamiętać z jeszcze jednego powodu: wiele serwerów w puli utrzymywanych jest przez wolontariuszy i choć jakość dostarczanego w ten sposób czasu jest na bardzo wysokim poziomie, to w systemach o krytycznym znaczeniu, biznesie albo ochronie zdrowia warto rozważyć zakup sprzętowego serwera czasu takich firm, jak Elproma, Meinberg, End Run czy Spectracom. 

[...]

Autor zawodowo zajmuje się informatyką. Publikuje w magazynach komputerowych i serwisach internetowych.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej