|
Większość urządzeń Elpromy obsługuje protokół NTP (Network
Time Protocol
RFC
1305 i
RFC 2030). Jest to specjalny protokół pozwalający na precyzyjną (nawet piko
sekundową) synchronizację czasu wszystkich komputerów i routerów pracujących w sieci TCP/IP.
Niestety ograniczenia
sprzętowe współczesnych komputerów ciągle jeszcze zawężają precyzję
NTP do milisekund, a systemy operacyjne (takie jak Microsoft
Windows) wręcz obcinają ją do dziesiątek milisekund. Nie zmienia to jednak
faktu, że protokół NTP jest już światowym standardem synchronizacji czasu i z
pewnością nim pozostanie. Nowopowstający sprzęt i systemy operacyjne są coraz
częściej
adoptowane do protokołu NTP tak aby wykorzystać w pełni jego możliwości. Przykładem może
tu być rejestr TSC w procesorach serii Intel Pentium czy specjalna wersja jądra systemów
operacyjnych Linux i FreeBSD - tzw. nanojądro. NTP jest modelem synchronizacji czasu we współczesnym świecie ...
Współczesny świat bazuje na gigantycznej sieci rozproszonych komputerów, w której
miliony niezależnych urządzeń komunikują się między sobą (np. przy pomocy
Internetu). Rosnąca popularność rozwiązań mobilnych
sprzyja szybkiemu rozwojowi technologii IT, a te narzucają konieczność
utrzymania ładu i porządku którego istotnym fundamentem staje się synchronizacja czasu.
Problem synchronizacji czasu jest bowiem tak znany jak długo człowiek potrafi
odmierzać czas. Era komputerów dostarczyła wiele ciekawych pomysłów i metod
synchronizacji czasu. Jednak dotychczas brakowało ogólnoświatowego standardu,
który mógłby być zaakceptowany przez wszystkich i który skutecznie potrafiłby
sobie radzić z tak wielką liczbą działających w świecie komputerów. Cechy takie
jak: stabilność synchronizacji, precyzja, możliwość implementacji w różnorodnych
środowiskach systemowych, bezpieczeństwo, czy efektywność rozumiana jako
niewielkie obciążenie łącz transmisyjnych to podstawowe stawiane warunki.
Założeniom tym jak dotąd sprostał tylko protokół NTP.
Projekt NTP
Opracowanie uniwersalnej a zarazem skutecznej
metody synchronizacji komputerów rozproszonych powierzono profesorowi
Dawidowi Mills'owi (Uniwersytet w Delaware) który stając na czele
projektu NTP od
kilkunastu lat prowadzi wraz ze swoim zespołem badania nad NTP i nadzoruje
kolejne implementacje protokołu NTP. Badania sponsorowane są przez wiele
firm IT i agencje rządowe USA.
Założenia synchronizacji NTP
Protokół NTP oparto o założenie, że będzie on synchronizował
czas dużej a nawet wielkiej liczby niezależnie pracujących urządzeń (klientów NTP)
względem niewielkiej liczby wzorcowych źródeł czasu (serwerów
czasu NTP) . Redundancja dostępu do źródeł czasu (ang. Timeservers NTP) jest jednym z fundamentalnych założeń działania protokołu NTP.
Zadbano przy tym aby NTP nie obciążał sieci, był możliwie w pełni automatyczny i
inteligentny. Nie zapomniano również o bezpieczeństwie i ochronie. Całość implementacji umieszczono w środowisku TCP/IP
i umiejętnie dopasowano do zastosowań komunikacyjnych związanych z Internetem.
Oto niektóre przykłady zastosowań protokołu NTP:
|
- stempel czasu w
podpisie elektronicznym
- zgodność czasu
routerów CISCO
- elektroniczna
bankowość i e-biznes
- systemy bilingowe
(telekomunikacja, energetyka)
- certyfikacja,
autoryzacja i ochrona danych
- szyfrowanie
transmisji
- cyfrowe przekazy
obrazów i dźwięku (telekonferencje)
- sterowanie ruchem
naziemnym i lotniczym
- zdalne systemy
monitoringu (np. pracy serca) w medycynie
- zdalne systemu
ochrony osób i mienia
- automatyka
przemysłowa (kontrola automatycznej produkcji)
- systemy czasu
rzeczywistego
- środowiska
wieloserwerowe
- klastry i
macierze komputerowe
- systemy
wieloprocesorowe
- systemy
rozproszone
- badania naukowe
oparte o symulacje
- obliczenia
astronomiczne |
 |
| |
Na czym polega odmienność NTP ?
NTP jest protokołem komunikacyjnym
przeznaczonym do synchronizacji czasu. Jest protokołem znacznie różniącym się od
typowych protokołów komunikacyjnych. Upraszczając rozumowanie, protokół NTP nie
transportuje czasu, ale przekazuje jedynie precyzyjne statystyki o czasie UTC
(Uniwersalny Czas Koordynujący).
Co to jest czas UTC ?
W odróżnieniu od czasu lokalnego
czas UTC jest czasem pozbawionym wszelkich zmian związanych z lokalizacją
geograficzną państwa czy kontynentu. Jest to czas odmierzany w taki sam sposób
na całym świecie bez przesunięć zimowo-letnich itd. Dla ułatwienia przyjmuje
się, że czas UTC jest zgodny z czasem GMT (Greenweth) chociaż w woli ścisłości
jest różnica między obydwoma czasami.
Jak działa NTP ?
Protokół NTP tworzy i przekazuje każdemu ze swoich klientów statystykę dostępu do wybranego źródła czasu UTC
jakim są np. serwery czasu (ang.
Timeservers NTP) podłączone do zegarów atomowych
(ang. atomic clocks). Podmiotowa statystyka zawiera między innymi informacje o bieżącej precyzji
wzorcowego zegara UTC oraz lokalnego zegara systemowego (ang. jitter).
Protokół NTP zawiera też informację o istniejących opóźnieniach sieciowych LAN/WAN,
gromadzi statystykę dostępu do źródła UTC i szacuje bezwzględne różnice czasu między
lokalnym zegarem a rzeczywistym czasem UTC. Znając bieżące opóźnienie panujące w sieci TCP/IP oraz dysponując bogatą statystyką
NTP pozwala każdemu z klientów NTP samemu indywidualnie skalibrować czas swojego
lokalnego zegara systemowego. Kalibracja polega na przyspieszaniu lub ewentualnym spowalnianiu pracy zegara.
Jest to możliwe dla różnic czasu mniejszych od 128ms. Przy większych
rozbieżnościach protokół NTP dopuszcza
synchronizację "skokową". Synchronizacja taka powinna mieć jednak miejsce jedynie w początkowej fazie procesu
synchronizacji ponieważ prawidłowa konfiguracja NTP zasadniczo gwarantuje
ciągłą synchronizację płynną z precyzją większą od 100mS.
NTP - im dłużej pracuje tym większa jest precyzja synchronizacji ....
Z pewnością NTP wymaga od administratora dużej cierpliwości. Proces
synchronizacji NTP jest bowiem bardzo powolny. Pierwsze rezultaty są widoczne
dopiero po kilkunastu minutach, a precyzja nie jest bynajmniej zadowalająca.
Pierwsze chwile procesu synchronizacji to "skokowe" dosynchronizowanie
wstępne. Klient NTP uzyskuje w ten sposób czas źródła UTC odbiegający nie więcej niż o
wartość 128mS. Wartość ta jest niezbędną granicą do rozpoczęcia dalszej już płynnej
kalibracji czasowej. Dopiero płynne przyspieszanie/spowalnianie interfejsu
lokalnego zegara pozwala na zwiększenie stopnia precyzji. Proces
synchronizacji może trwać od kilku minut to kilkunastu
godzin. Dlatego
Timeserwery NTP (ang. Time
servers NTP) powinny pracować nieustannie, a
liczba ich włączeń/wyłączeń ograniczona do niezbędnego minimum. Dobrym zwyczajem
jest stosowanie wiele źródeł synchronizacji jednocześnie tak aby awaria jednego
nie wstrzymywała całego procesu synchronizacji.
NTP - nie obciąża sieci
Do wymiany statystyk NTP wykorzystuje kilkudziesięciobajtowe ciągi (pakiety UDP)
wymieniane okresowo w przedziale od 4 sekund do kilku godzin. Standardową wartość interwału wymiany pakietów NTP ustala na 64
sekundy. Początkowa faza synchronizacji odbywa się właśnie przy wymianie
pakietów z taką częstotliwością. Im dłużej NTP pracuje tym
okres próbkowania NTP wydłuża się. Pozwala to na istotne zmniejszenie
częstotliwości wymiany statystyk a zarazem zmniejsza obciążenie sieci.
NTP - synchronizacja względem ASCII (BCD) czy PPS ?
Większość zegarów radiowych (DCF77/GS) dostarcza czas w
formacie ASCII/BSD. Format ten pozwala na synchronizację z precyzją co najwyżej
100mS. Do płynnej kalibracji czasowej niezbędne jest wzorcowy sygnał PPS (puls
na sekundę). Sygnał taki zatrzaskuje się w tzw. zamkniętej pętli
fazowej i częstotliwościowej PLL/FLL. Zaburzenia stabilności częstotliwości
wycina się specjalnym filtrem dolnoprzepustowym.

Ogólnie o
synchronizacji PLL/FLL z wykorzystaniem sygnału PPS
Stosuje się ją w systemach NTP gdzie pożądany jest
efekt uzyskiwania wyjątkowo precyzyjnej synchronizacji. Najczęściej technikę tę
wykorzystuje się przy bezpośrednim włączeniu rubidowego lub cezowego rezonatora
do komputera. W ostatnich latach synchronizację PLL/FLL stosuje się także do
synchronizacji czasu komputerów z wykorzystaniem satelitarnego systemu
GPS a dokładnie mówiąc
do synchronizacji z wykorzystaniem wzorcowego sygnału o częstotliwości PPS (Puls
Per Second).
Koncepcja synchronizacji z
wykorzystaniem układów: zamkniętej pętli fazowej (PLL - ang. Phase Locked Loop)
i zamkniętej pętli częstotliwości (FLL - Frequency Locked Loop) powstała już w
1932 roku przy okazji badań nad synchronicznym odbiorem sygnałów radiowych jakie
prowadził de Bellescize.
Ogólna struktura układu
synchronizacji jest zgodna ze strukturą układów automatycznej regulacji, w
których zarejestrowany błąd (powstający przez porównanie informacji wejściowej z
wyjściową) po stosownej modyfikacji koryguje informację wyjściową (w pętli
sprzężenia zwrotnego) dając efekt auto-korekcji. Działanie układu polega na
wykrywaniu i korygowaniu niewielkich różnic wartości przesunięcia fazowego (i
częstotliwości) sygnału wejściowego i wyjściowego. W skład układu wchodzi
detektor fazy, filtr dolnoprzepustowy i generator o częstotliwości sterowanej
wyjściem filtra. Detektor fazy porównuje sygnał wejściowy fi
z sygnałem z wyjścia generatora fo.
Detektor jest zazwyczaj układem mnożącym (łatwo implementowanym numerycznie),
który wytwarza sygnał zwierający składowe (fi
+ fo) oraz (fi
- fo). Składowa o większej
częstotliwości jest odcinana w filtrze dolnoprzepustowym, a składowa
częstotliwościowa służy do sterowania generatorem VFO. Jeżeli częstotliwości fi
i fo są zsynchronizowane, to na
wyjściu filtru otrzymuje się wartość proporcjonalną do różnicy faz. Wywołuje on
korekcję fazy, a więc również korekcję częstotliwości sygnału generatora (w taki
sposób aby utrzymać synchronizm częstotliwości).
Numeryczna implementacja pętli
PLL/FLL pozwala obliczyć błąd - poślizg zegara systemowego (jitter) i dzięki
autokorekcji wprowadza tzw. dyscyplinę czasową. Poprawia to stabilność zegara
komputerowego nawet gdy nie jest on synchronizowany względem zewnętrznego
źródła.
Zastosowanie specjalnego nanojądra dostarcza
precyzję czasu niezbędną do próbkowania sygnału PPS. Wiele implementacji
pozwala na obsługę PPS przy pomocy mechanizmu przerwań sprzętowych. Odbierając
regularnie przerwania PPS można odliczać i synchronizować czas w systemie komputerowym.

Istnieje możliwość dalszego
zwiększanie precyzji synchronizacji czasu. Wymaga to jednak wprowadzenia nowych
konstrukcji sprzętowych. Obecny sprzęt stanowi "wąskie gardło" dalszego rozwoju
systemów teleinformatycznych zdyscyplinowanych czasowo i osiągających precyzję
poniżej mikrosekund (uS). Większe precyzje stosuje się w przypadku gdy
zastosowania NTP wkraczają np. w dziedzinę astronomii czy symulacji zjawisk
fizyki jądrowej.
Link do strony producentów
oprogramowania NTP:
http://www.boulder.nist.gov/timefreq/general/softwarelist.htm |