Tomasz Widomski NTP (Network Time Protocol)
Założenia
do infrastruktury NTP
Projektując NTP zwrócono szczególną uwagę aby protokół spełniał takie kryteria jak:
Długoterminowa dobra stabilność czasu
Budowa o strukturze drzewa z hierarchią ważności (STRATUM 0-15)
1. Długoterminowa stabilność czasu
Uzyskanie dobrych parametrów synchronizacji czasu wymaga wielokrotnych porównań z wzorcem czasu. Im większa liczba wykonanych porównań tym lepsza uzyskiwana jest precyzja i stabilność długoterminowa czasu. W krótkoterminowym, początkowym procesie synchronizacji przez Internet możliwe jest osiągnięcie synchronizacji z dokładnością pojedynczych milisekund. Na przestrzeni godzin uzyskanie synchronizacji z dokładnością nie gorszą niż 1ppm (part per milion) nie powinno stanowić problemu. Zmiana czasu ma się odbywać płynnie bez skoków. Cofanie czasu wstecz jest zabronione.

2. Drzewo hierarchii STRATUM 0-15
Powyższe właściwości muszą byś osiągalne dla standardowych komputerów dołączonych do Internetu, a szybkość transmisji i parametry interfejsów sieciowych muszą być ograniczone do minimum. Należy założyć zmienność natężenia ruchu w sieci oraz złożoność topologii.
Dlatego w NTP wprowadzono hierarchiczny model warstwowy, w którym komputery warstw wyższych są jednocześnie serwerami dla komputerów warstw niższych. Strukturę tę nazwano STRATUM i wyróżniono w niej 16 poziomów ponumerowanych od 0 do 15. W hierarchii (drzewa) powinny się znajdować wysokiej jakości serwery (STRATUM-1) synchronizowane do referencyjnych źródeł czasu UTC (STRATUM-0). Rekomenduje się aby lokalny czas serwerów STRATUM-1 mógł być porównywany do atomowej skali czasu TAI oraz do wzorców urzędowych skal czasu (w Polsce rolę tę GUM - Główny Urząd Miar). Stosowany do synchronizacji serwerów warstwy STRATUM-1 czas UTC powinien pochodzić z zegarów atomowych (skala czasu TAI) i być korygowany o leap sekundy korygujące i uwzględniające nieregularność ruchu obrotowego ziemi. Jako źródła czasu UTC (STRATUM-0) dopuszcza się również wzorce czasu pochodzące z satelitarnych systemów GPS, Galileo*, Glonass; z radiowych systemów dystrybucji czasu: DCF77, WWV/B, WWVH, LORAN-C oraz wysokiej klasy zegarów rubidowych i maserów wodorowych. Należy jednak podkreślić, że czas tych ostatnich może być stosowany wyłącznie w przypadku gdy wzorce te są porównywane do atomowej skali czasu innych wzorców i korygowane o leap sekundy do czasu UTC.

NTP musi gwarantować ciągłość, stabilność oraz wysoką precyzję synchronizacji czasu zarówno przez Internet jak i w wewnętrznych sieciach i podsieciach LAN. Warunek ten musi być spełniony nawet w przypadku niestabilnych zachowań sprzętu i problemów z łącznością (nawet wielodniową). Dlatego NTP sprzęgnięto i oparto na protokole TCP/IP.
NTP musi zapewnić redundancję źródeł czasu na każdym poziomie drzewa STRATUM (0-15). Warunek ten dotyczy redundancji zarówno zegarów (STRATUM-0) jak i serwerów STRATUM 1-15.
NTP dopuszcza możliwość wprowadzania dynamicznie zmian w konfiguracjach podsieci, ich rozbudowę lub wyłączenie gwarantując brak jakiegokolwiek wpływu na zachodzący proces dystrybucji i synchronizacji czasu innych miejsc sieci. Każdy komputer, sieć i podsieć LAN należy traktować jak autonomiczny i niezależny zegar wymagający nie tylko synchronizacji, ale potrzebujący wprowadzenia wymogu nauki utrzymania samodzielnie dyscypliny czasu. Spełnienie tego warunku ma gwarantować wysoką bezwładność działania systemów teleinformatycznych synchronizowanych za pośrednictwem NTP nawet w przypadku utraty źródeł warstwy nadrzędnej.
Całość rozwiązania musi być jak najbardziej zautomatyzowana, ograniczająca rolę człowieka i możliwość jego ingerencji w zachodzący proces synchronizacji. Jedną z najsilniejszych stron protokołu NTP jest wbudowany mechanizm rozpoznawania dostawców fałszywego czasu ang. „Clock false-ticker”.

NTP musi dostarczać mechanizm pozwalający na korygowanie wskazań i regulację częstotliwości pracy zegarów oraz musi pozwalać na korygowanie błędów z zakresu metrologii czasu takich jak wpływ zmian temperatury na pracę kwarcu lub jego starzenie się. Mechanizm ten musi być na tyle uniwersalny aby mógł korygować zarówno zegary w komputerach domowych jak i zegary superkomputerów laboratoryjnych.

NTP musi dostarczać mechanizm ochrony i zabezpieczenia zarówno na poziomie transmisji danych jak i musi pozwalać na identyfikację każdego komputera uczestniczącego w procesie synchronizacji NTP. Ochrona musi być skuteczna zarówno w przypadku celowych ataków i włamań jak i w przypadku niestabilnych zachowań systemu, komputera czy łącza transmisyjnego.
Dlatego NTP oferuje szyfrowanie transmisji oraz identyfikację klientów i serwerów, ochronę w dostępu do serwerów, ograniczenie dostępu klientom synchronizowanym. Wtym celu NTP wykorzystuje wszystkie najnowsze rozwiązania w zakresie technik szyfrowania i identyfikacji włączając gotowość NTP do pracy w oparcie o infrastrukturę klucza publicznego, szyfrowanie SSL czy SSH.
Rozwiązanie musi zapewniać zestaw narzędzi do pomiaru rozbieżności czasu i różnic wskazań zegarów w dowolnym miejscu w sieci LAN/Internet. Narzędzia te muszą pozwalać zdalnie ocenić kondycję i stan każdego z zegarów w cieci, określać szum (jitter), oraz udostępniać informacje o opóźnieniach panujących w sieci.
Dostępne oprogramowanie klienckie oraz dystrybucje NTP powinny być dostępne nieodpłatnie w wersji dla większości współczesnych systemów teleinformatycznych i systemów operacyjnych. Wyjątku nie powinien stanowić nawet żaden z systemów firmy Microsoft !
Źródła C protokołu NTP oraz opis działania jest dostępny na stronach www.ntp.org
)