Network Time Protocol
Z Wikipedii
NTP (ang. Network Time Protocol) - protokół synchronizacji czasu, którego najnowsza wersja jest zdefiniowana w RFC 1305.
Spis treści |
[edytuj] Wprowadzenie
NTP - protokół umożliwiający precyzyjną synchronizację czasu pomiędzy komputerami. Wzorcowy czas UTC może pochodzić bezpośrednio z zegarów atomowych lub pośrednio ze specjalizowanych serwerów czasu (ang. Time Server NTP). Protokół NTP jest coraz powszechniej uznawany za światowy standard synchronizacji czasu w urządzeniach teleinformatycznych i telekomunikacyjnych. Ma swoją implementację dla większości współczesnych systemów operacyjnych, z Microsoft Windows NT/2K/XP/2003/VISTA włącznie.
Implementacja protokołu NTP dla konkretnych systemów operacyjnych wymaga sprzęgnięcia na niskim poziomie jądra systemu operacyjnego. Czas lokalny tworzony jest przez system poprzez dodanie stosownego przesunięcia uwzględniającego lokalną strefę czasową. Dla systemów operacyjnych Linux i FreeBSD istnieją specjalne nakładki na jądro systemowe umożliwiające obsługę biegu zegarów ze zwiększoną precyzją. Nakładki umożliwiają płynną regulację czasu systemowego poprzez przyspieszenie lub spowolnienie programowego zegara systemowego.
[edytuj] Historia
Badania nad protokołem prowadzone są na Uniwersytecie w Delaware od 1988 roku pod kierunkiem prof. Davida L. Millsa i są nieustannie rozwijane w ramach projektu NTP.
Początkowo protokół NTP został zaprojektowany dla wybranych systemów operacyjnych rodziny Unix i rozwijany był w kierunku zastosowań do synchronizacji czasu przez Internet. Jednak obecnie NTP jest z powodzeniem wykorzystywany również poza Internetem i to zarówno w małych sieciach lokalnych (LAN), jak i w dużych sieciach korporacyjnych (WAN).
Rozwój protokołu ilustrują dokumenty RFC 778, RFC 891, RFC 956, RFC 958 i RFC 1305. Obecnie dostępna jest wersja 4 protokołu. Jest to 5 generacja protokołu (wersja pierwsza oznaczona była numerem 0), która zawiera funkcje szyfrowania chociaż do dnia dzisiejszego opublikowana została w RFC tylko wersja 3 (pochodząca z 1992 roku).
Istnieje również uproszczona wersja protokołu NTP znana pod nazwą SNTP (ang. Simple Network Time Protocol - RFC 4330). Wersja ta znajduje powszechne zastosowanie w prostych systemach operacyjnych i rozwiązaniach, w urządzeniach przenośnych i w telefonach komórkowych.
[edytuj] Zalety synchronizacji za pomocą protokołu NTP
NTP pozwala na synchronizację czasu z bardzo dużą precyzją i jest rozwiązaniem bardzo stabilnym i bezpiecznym. NTP kalibruje czas płynnie - bez skoków czasu i konieczności przestawiania zegara (wykorzystuje technikę przyspieszania i spowalniania). Już przy zastosowaniu standardowego sprzętu komputerowego klasy PC, precyzja ta może wynosić kilka milisekund. Obecnie protokół ma swoje implementacje dla większości współczesnych systemów operacyjnych i urządzeń sieciowych.
Zaletą protokołu NTP jest możliwość jednoczesnej synchronizacji bardzo dużej liczby komputerów (rzędu dziesiątek tysięcy) bez przeciążenia łączy i procesorów. Implementacja protokołu nie wymaga wydajnych komputerów, procesorów ani szybkich łączy transmisyjnych.
Ogólnie dostępny kod źródłowy napisany w języku C pozwala rozszerzać NTP dla kolejnych nowych systemów operacyjnych i powstających nowych urządzeń. Protokół NTP przerwał wieloletnią rywalizację między producentami sprzętu komputerowego i oprogramowania, lansującymi własne standardy na rynku IT.
[edytuj] Czas wzorcowy UTC
W protokole NTP do synchronizacji czasu wykorzystywany jest czas uniwersalny UTC. Wzorcowy czas powinien pochodzić z atomowych zegarów cezowych. Jednak w związku z rozwojem technologii zezwala się na stosowanie czasu referencyjnego pochodzącego ze wzorców STRATUM 0 takich jak:
- cezowe zegary atomowe
- masery wodorowe
- zegary wykorzystujące generatory rubidowe
- czasowe wzorce laserowe
- satelitarne wzorce radiowe GPS,GLONASS,EGNOS,WAAS a w przyszłości GALILEO
- naziemne nadajniki radiowe RF AM (np. niemiecki DCF77)
- wysokiej jakości zegary kwarcowe wykorzystujące oscylatory OCXO, TCXO, VCXO
Powyższe zegary dołączane są do komputera pełniącego dalej funkcję serwera NTP dla innych urządzeń. Dostawa czasu UTC odbywa się przez łącza:
- RS-232 (dostarcza stempel czasu UTC)
- 1PPS (dostarcza wzorzec częstotliwości UTC)
- IRIG-B (dostarcza stempel czasu)
- SYSPLEX (dostarcza stempel czasu)
[edytuj] Struktura warstw STRATUM 0-15
Wszystkie komputery uczestniczące w procesie synchronizacji NTP można uporządkować w strukturze gałęziowej STRATUM. Zasada przekazywania informacji o czasie jest następująca: komputery warstwy STRATUM N mogą być serwerami czasu dla warstwy STRATUM N+1, ale nie na odwrót. Komputery STRATUM N mogą być jednocześnie klientami komputerów warstwy STRATUM N-1 itd. Wielowarstwowa struktura STRATUM ma na celu uporządkowanie i wprowadzenie pewnej hierarchii ważności komputerów, zgodnie z ich rzeczywistym przeznaczeniem i funkcją. Aby ograniczyć dodatkowe opóźnienia w propagacji czasu, wynikające z rozgałęzionej struktury NTP, wprowadzono ograniczenie łącznej liczby warstw do 16 (STRATUM 0-15).
Niektórym warstwom przypisano specjalne znaczenie. Warstwa STRATUM 0 jest zarezerwowana wyłącznie dla pierwotnych wzorców czasu, którymi są bezpośrednio zegary czasu UTC.
Warstwy STRATUM 1 i STRATUM 2 stanowią wierzchołek drzewa NTP i powinny być zarezerwowane dla dużych serwerów korporacyjnych, wysokiej jakości serwerów, superkomputerów lub dedykowanych sprzętowych serwerów czasu.
Warstwy STRATUM 3 i kolejne są przeznaczone dla lokalnych serwerów i komputerów komunikujących się z nimi.
Numer STRATUM informuje nas o tym, jak bardzo odległy jest synchronizowany komputer od zegara wzorcowego w strukturze synchronizacji NTP. W sieci o bardzo dużej liczbie komputerów poziom STRATUM nie ma znaczącego wpływu na jakość synchronizacji i precyzję uzyskiwanego czasu.
[edytuj] Zasada synchronizacji NTP
Jak już powiedziano we wprowadzeniu, implementacja protokołu NTP dla konkretnego systemu operacyjnego wymaga sprzęgnięcia go na niskim poziomie jądra systemu operacyjnego.
NTP jest protokołem znacznie różniącym się od typowych protokołów komunikacyjnych. Nie dotyczy on bowiem transmisji absolutnej wartości czasu, lecz regularnie przekazuje pełne statystyki opóźnień i korelacji czasowych, jakie zachodzą w sieci TCP/IP.
Do wymiany statystyk stosowane są pakiety UDP (72 bajty) wymieniane okresowo w przedziale od 4 s do 17 min (zwykle okres wymiany wynosi 64 sekundy). Protokół NTP używa w tym celu portu 123 (jest też wersja z SSL korzystająca z portu 563). Przesyłane dane pozwalają każdemu z komputerów, tzw. klientów NTP, samodzielnie wyliczyć własne opóźnienie względem idealnego czasu UTC. Znając bieżące opóźnienie względem czasu UTC, każdy klient NTP sam kalibruje wskazania własnego, lokalnego zegara systemowego. Kalibracja polega na płynnym przyspieszaniu lub spowalnianiu pracy lokalnego zegara programowego. Przy dużych różnicach czasu, większych od 128ms, NTP stosuje jednorazową synchronizację skokową. W ten sposób każdy z klientów NTP asymptotycznie zmierza ku wskazaniom wzorcowego zegara czasu UTC.
Pierwotne wzorcowe wskazania czasu UTC powinny zawsze pochodzić z wzorców STRATUM 0. Komputery bezpośrednio synchronizujące czas własny z wymienionymi wzorcami stają się serwerami NTP STRATUM 1. Kolejne komputery synchronizują swój czas korzystając z protokołu TCP/IP i stają się klientami NTP warstwy N-1, pełniąc zarazem funkcję serwerów warstwy N dla kolejnych komputerów uczestniczących w synchronizacji NTP.
[edytuj] Oficjalne serwery NTP dostarczające urzędowy czas UTC(PL) w Polsce
- tempus1.gum.gov.pl [ 212.244.36.227 ] (źródło: atomowy zegar cezowy 5071A Główny Urząd Miar)
- tempus2.gum.gov.pl [ 212.244.36.228 ] (źródło: atomowy zegar cezowy 5071A Główny Urząd Miar)
[edytuj] Serwery NTP grupy laboratoriów d/s porównań wzorców czasu
- vega.cbk.poznan.pl [ 150.254.183.15 ] (źródło: atomowy zegar cezowy 5071A CBK w Borowcu k/ Poznania)
- ntp.elproma.com.pl [ 83. 19.137.3 ] (źródło: rubidowy atomowy wzorzec firmy STANFORD Research, Łomianki k/ Warszawy)
[edytuj] Lista publicznych serwerów NTP w Polsce
- ntp.ntp-servers.eu
- ntp.man.poznan.pl
- ntp.nask.pl
- ntp.certum.pl
- info.cyf-kr.edu.pl
- ntp.icm.edu.pl
- ucirtr.agh.edu.pl
- ntp.task.gda.pl
- time.atman.pl
- ntp.net.pl
- ntp.us.edu.pl
[edytuj] Populacje serwerow NTPpool
- 1.pl.pool.ntp.org (Polska)
- 1.europe.pool.ntp.org (Europa)
- 1.pool.ntp.org (Świat)
[edytuj] Linki zewnętrzne
Warstwa aplikacji
ADSP (AppleTalk) • APPC • AFP (AppleTalk) • DAP • DLC • DNS53 • ed2k • FTAM • FTP20,21 • Gopher • HTTP80 • HTTPS443 • IMAP143 • IRC194,529 • Named Pipes • NCP524 • NetBIOS137,138,139 • NWLink • NBT • NNTP119 • NTP123 • PAP • POP3110 • RPC • RTSP • SNMP161,162 • SMTP25 • SMB • SSL/TLS • SSH22 • TDI • Telnet23 • X.400 • X.500 • XDR • ZIP (AppleTalk)
(Cyfry w indeksie oznaczają numery portu)
Warstwa transportowa
ATP (AppleTalk) • NBP (AppleTalk) • NetBEUI • RTP • RTMP (AppleTalk) • SPX • TCP • UDP • SCTP
Warstwa sieciowa
IP • ICMP • IPsec • NAT • IPX • NWLink • NetBEUI • DDP (AppleTalk)
Warstwa dostępu do sieci
ARP • 10BASE-T • 802.11 WiFi • ADSL • Ethernet • EtherTalk • FDDI • Fibre Channel • ISDN • LocalTalk (AppleTalk) • NDIS • ODI • PPP • RS-232 • SLIP • Token Ring • TokenTalk (AppleTalk) • V.90