Krótka historia czasu NTP

NTP (protokół czasu sieci) jest protokołem internetowym. Protokoły to po prostu zestaw instrukcji, które komputer będzie śledził, a NTP został zaprojektowany i opracowany w celu synchronizacji sieci komputerowych.

Został opracowany w 1985 przez profesora Davida Millsa z University of Delaware, gdy Internet był jeszcze w powijakach. Profesor Mills zdał sobie sprawę z potrzeby synchronizacji między komputerami, gdy rozmawiali ze sobą.

Protokół NTP wykorzystuje algorytm Marzullo, który jest algorytmem zgodności używanym do wyboru źródeł do szacowania dokładnego czasu z wielu hałaśliwych źródeł czasu. NTP działa poprzez dystrybucję jednego źródła czasu. Podczas gdy tym razem odniesieniem może być coś takiego jak zegarek na rękę, nie ma sensu synchronizowanie sieci z niczym innym niż czasem UTC.

UTC (Coordinated Universal Time) to globalna skala czasu oparta na czasie określonym przez zegary atomowe. Zegary atomowe mają tak wysoki poziom dokładności, że nie tracą ani nie zyskują ani sekundy dłużej niż milion lat.

Poprzez synchronizację ze źródłem czasu UTC można wpływać na sieć z każdą inną siecią wykorzystującą czas UTC.

Po wybraniu źródła czasu demon NTP (lub usługa w systemie Windows) nie tylko rozpowszechnia odniesienie do czasu, ale także stale sprawdza dokładność i błędy.

NTP jest systemem hierarchicznym. Odległość od serwera czasu jest określana jako poziom warstwy. Warstwowy serwer 0 jest samym źródłem czasu, takim jak zegar atomowy, warstwa 1 jest serwerem czasu NTP, podczas gdy serwer warstwy 2 jest urządzeniem, które odbiera czas od serwera czasu, a serwery warstwy 3 odbierają sygnał czasu przez serwer warstwy 2.

Podział sieci na warstwy oznacza, że Serwer czasu NTP może rozdzielić czas na setki, a nawet na tysiące maszyn, bez sieci i serwera czasu, który jest przeciążony ruchem. Chociaż należy zauważyć, że im niższy poziom warstwy w urządzeniu, można oczekiwać spadku precyzji.

Rzeczywisty sygnał czasu UTC może być odbierany na wiele sposobów. Z Internetu, chociaż może to powodować problemy z bezpieczeństwem, ponieważ sygnał czasu nie może zostać uwierzytelniony, co jest wbudowaną miarą bezpieczeństwa NTP. Znacznie bezpieczniej jest odbierać sygnał czasu z sygnału radiowego nadawanego przez kilka krajowych laboratoriów fizycznych, a nawet sieć GPS, której wbudowane zegary atomowe mogą być wykorzystywane jako źródło taktowania, jeśli Serwer czasu NTP jest wyposażony w odbiornik GPS.

Wybór serwera NTP i wybór najlepszego źródła czasu dla ciebie

. Serwer NTP jest integralną częścią nowoczesnej sieci komputerowej. Bez Network Time Protocol i Serwery czasu NTP wiele nowoczesnych funkcjonalności komputerów, które przyjmujemy za oczywiste, takich jak rezerwacja online, handel internetowy i komunikacja satelitarna, byłoby niemożliwe.

Synchronizacja w komputerach jest obsługiwana przez NTP. Serwery NTP i NTP korzystają z pojedynczego odwołania czasowego do synchronizacji wszystkich komputerów w sieci do tego czasu. Tym razem odniesienie może być czymkolwiek, na przykład czasem na zegarze. Synchronizacja jest jednak bezcelowa, chyba że używane jest źródło czasu UTC (skoordynowane czas uniwersalny), ponieważ UTC zostało opracowane, aby umożliwić całemu światu synchronizację w tym samym czasie, umożliwiając prawdziwie globalną synchronizację.

Czas UTC jest oparty na czasie określonym przez zegary atomowe, chociaż środki kompensujące, takie jak sekundy wyskoku, są dodawane do UTC, aby utrzymać je w linii z Greenwich Meantime (GMT).

Zegary atomowe są bardzo drogimi i niezwykle delikatnymi urządzeniami, a nie rzeczami, które można pomieścić w serwerowni biurowej. Na szczęście serwer NTP może odbierać źródło czasu UTC z kilku różnych lokalizacji.

Internet jest prawdopodobnie najczęściej używanym źródłem odniesienia do czasu. Niestety istnieją jednak nieszczęścia w korzystaniu z Internetu dla źródła czasu. Po pierwsze, źródła czasu internetowego nie mogą być uwierzytelniane. Uwierzytelnianie jest środkiem bezpieczeństwa stosowanym przez NTP w celu sprawdzenia, czy źródło taktowania jest oryginalne. Po drugie, użycie punktu odniesienia w Internecie oznacza, że ​​w zaporze sieciowej musi pozostać otwór, co jeszcze bardziej zmniejsza bezpieczeństwo. Po trzecie, internetowe źródła czasu są notorycznie niedokładne, a te, które nie są, często mogą być zbyt odległe od klienta, aby zapewnić jakąkolwiek użyteczną precyzję.

Jeśli jednak bezpieczeństwo i wysoki poziom dokładności do czasu UTC nie jest wymagany, Internet może zapewnić proste i niedrogie rozwiązanie.

Znacznie bezpieczniejszą metodą odbierania odniesienia czasowego UTC jest wykorzystanie wyspecjalizowanej krajowej transmisji czasu i częstotliwości nadawanej przez kilka krajów. W Wielkiej Brytanii (MSF), USA (WWVB), Niemczech (DCF) i Japonii (JJY) wszystkie mają długi sygnał czasowy. O ile sygnały te mają ograniczony zasięg i siłę, o ile są dostępne, stanowią idealne źródło taktowania, ponieważ odbiornik radiowy może odbierać te sygnały z wnętrza budynku. Transmisje te można również uwierzytelnić, zapewniając wysoki poziom bezpieczeństwa.

Trzecie i prawdopodobnie najprostsze rozwiązanie to użycie serwera NTP GPS. Wykorzystują one sygnały wysyłane z Globalnego Systemu Pozycjonowania, który zawiera informacje o taktowaniu. Jest to idealne rozwiązanie, ponieważ sygnał GPS może być odbierany dosłownie w dowolnym miejscu na świecie, więc jeśli nie ma transmisji radiowej w danym obszarze, sieć GPS zapewni bezpieczne i uwierzytelnione rozwiązanie.

Jedyną wadą GPS jest to, że antena musi mieć dobry widok na niebo i dlatego musi być umieszczona na dachu. To oczywiście ma logistyczne wady, jeśli serwerownia znajduje się w piwnicy drapacza chmur.

Wybierając źródło czasu, najważniejszą rzeczą do zapamiętania jest to, gdzie Serwer NTP będzie się znajdować. Jeśli jest w pomieszczeniu i nie ma możliwości biegania i anteny do dachu, to transmisje radiowe będą najlepszą alternatywą. Jeśli w twoim kraju / regionie nie ma transmisji radiowej lub sygnały są blokowane przez lokalną topografię, GPS jest idealnym rozwiązaniem.

Jeśli jednak dokładność i bezpieczeństwo nie stanowią problemu, Internet byłby najbardziej oczywistym rozwiązaniem.

Opis serwera GPS NTP

A Serwer NTP GPS jest typem serwera czasu, który wykorzystuje Network Time Protocol (NTP) jako metodę synchronizacji czasu na urządzeniach sieciowych i komputerach po otrzymaniu sygnału czasu z sieci GPS.

Sieć GPS (Global Positioning System) to konstelacja satelitów będących własnością i obsługiwanych przez armię USA. Większość ludzi zdaje sobie sprawę z GPS jako pomocy dla nawigacji satelitarnej. W rzeczywistości podstawą transmisji transmitowanych przez satelity GPS jest sygnał czasowy. Ten sygnał czasu jest generowany przez wbudowany zegar atomowy satelity. Jest to informacja, którą system nawigacji satelitarnej odbiera i oblicza przez triangulację odległość od satelitów.

Ten sygnał taktowania wykorzystywany jest przez serwer NTP GPS jako odniesienie do synchronizacji sieci. NTP następnie dystrybuuje ten czas do wszystkich routerów i komputerów w tej sieci.

A Serwer NTP GPS składa się z odbiornika GPS, anteny GPS i oprogramowania NTP. Antena GPS powinna znajdować się na dachu, co da najlepszą możliwość odbioru transmisji z satelitów.

Odbiornik GPS przekształca te informacje w informacje o taktowaniu, które mogą być odczytywane i dystrybuowane przez NTP.

Podczas gdy zegary atomowe na satelitach GPS nie przesyłają kodu taktowania UTC (Coordinated Universal Time). Jednak NTP ma możliwość konwersji zegara atomowego z satelitów na UTC. Umożliwia to synchronizację sieci komputerowych z tym samym uniwersalnym źródłem czasu, bez względu na to, gdzie się znajdują na świecie.

Korzystając z dedykowanego serwera NTP GPS, sieć może zostać zsynchronizowana w ciągu kilku milisekund czasu UTC z dokładnością rzędu kilkuset nanosekund za pośrednictwem sieci LAN.

Serwery czasu: Utrzymywanie dokładnego czasu na komputerach

Sieci komputerowe opierają się na pomiarze czasu prawie wszystkich aplikacji, od wysłania wiadomości e-mail do zapisywania danych, znacznik czasu jest potrzebny do śledzenia komputera. Wszystkie routery i przełączniki muszą działać z tą samą szybkością, niezsynchronizowane urządzenia mogą prowadzić do utraty danych, a nawet do całych połączeń.

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. Jednak 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 problemy mogą powstają szczególnie w przypadku transakcji wrażliwych na czas.

W przypadku niektórych transakcji konieczne jest perfekcyjne zsynchronizowanie komputerów, nawet kilka sekund różnicy między komputerami może mieć poważne skutki, takie jak znalezienie biletu lotniczego, który zarezerwowałeś, zostało sprzedane kilka chwil później innemu klientowi lub możesz wyciągnąć oszczędności z bankomat i kiedy twoje konto jest puste, możesz szybko przejść do innej maszyny i wycofać ją ponownie.

Serwery czasu są jak inne serwery komputerowe w tym sensie, że zwykle znajdują się w sieci. Serwer czasu zbiera informacje o taktowaniu, zwykle z zewnętrznego źródła sprzętowego, a następnie synchronizuje sieć do tego czasu.

Większość serwerów czasu używa NTP (Network Time Protocol), który jest jednym z najstarszych używanych protokołów internetowych, wynalezionym przez dr Davida Millsa z University of Delaware, jest on wykorzystywany od 1985. NTP to protokół przeznaczony do synchronizacji zegarów na komputerach i sieciach w Internecie lub w sieciach lokalnych (LAN).

Protokół NTP wykorzystuje zewnętrzny punkt odniesienia, a następnie synchronizuje wszystkie urządzenia w sieci do tego czasu.

Często serwery czasu są zsynchronizowane ze źródłem UTC (czas uniwersalny koordynowany), który jest globalną standardową skalą czasu i umożliwia synchronizację komputerów na całym świecie dokładnie w tym samym czasie. Ma to oczywiste znaczenie w branżach, w których liczy się dokładny czas, na przykład giełda lub linia lotnicza.

Istnieją różne źródła, które serwer czasu może wykorzystać jako odniesienie czasowe. Internet jest oczywistym źródłem, jednak internetowe odniesienia do czasu z Internetu, takie jak nist.gov i windows.time, nie mogą być uwierzytelniane, przez co serwer czasu, a tym samym sieć, jest podatna na zagrożenia bezpieczeństwa.

Zrozumienie znaczników czasu komputera za pomocą NTP

Sposób, w jaki komputer radzi sobie z czasem, jest zupełnie inny niż ludzie, którzy go postrzegają. Organizujemy czas na sekundy, minuty, godziny, dni, tygodnie, miesiące i lata, podczas gdy komputery z drugiej strony ustalają czas jako pojedynczą liczbę reprezentującą sekundy, które przeszły z jednego punktu w czasie, znany jako pierwsza epoka.

Większość komputerów używa NTP (Network Time Protocol), aby poradzić sobie z czasem i wieloma sieciami, są synchronizowane za pomocą dedykowanego serwera czasu NTP. NTP nie wie nic o dniach, latach czy wiekach, tylko o sekundach od pierwszej epoki. Ta największa epoka jest ustawiona (dla większości systemów) o północy na przełomie XX i XX wieku, dla człowieka będzie zapisana jako coś takiego: 00: 00 - 01,01,1900.

Komputery jednak liczą czas jako liczbę sekund po tym punkcie. Jeśli komputer znajdował się w 1900, jego sygnatura czasowa na północy stycznia 1 byłaby 0, podczas gdy w 1972 w tym samym dniu znacznik czasu byłby 2,272,060,800, który reprezentuje liczbę sekund od 1900.

Znaczniki czasu uruchamiają się ponownie co 136 w następnym opakowaniu należnym w 2036, co wywołało niepokój u niektórych, którzy obawiają się scenariusza typu Millennium Bug, chociaż większość wątpliwości dotyczy takich zdarzeń, jednak w przypadku zawijania znacznika czasu zdarza się era zostanie dodana (+ 1), aby umożliwić komputerom radzenie sobie z przedziałami czasu obejmującymi więcej niż jedno zawijanie. Jeśli komputery i NTP muszą radzić sobie z czasem, który obejmuje przed epoką główną, używana jest ujemna liczba całkowita (dla roku 1500 a -3 będzie używany do reprezentowania trzech cykli 136 lat).

Znaczniki czasu są używane praktycznie we wszystkich transakcjach wykonywanych przez nowoczesne komputery, takich jak wysyłanie wiadomości e-mail, debugowanie i programowanie. Ponieważ czas jest liniowy, komputer wie, że każdy znacznik jest zawsze większy niż poprzedni, a zatem komputery i NTP mają trudności z radzeniem sobie z niedokładnościami w czasie, szczególnie gdy czas nagle wydaje się cofać.

Może się to zdarzyć, jeśli komputery nie są zsynchronizowane w tym samym czasie. Jeśli wiadomość e-mail zostanie wysłana na komputer z wolniejszym zegarem, komputer zostanie odebrany, zanim zostanie wysłany. Brak synchronizacji może mieć poważne problemy, a nawet może sprawić, że system będzie podatny na złośliwe ataki, a nawet oszustwa.

Z tego powodu większość sieci komputerowych jest zsynchronizowana z UTC (Coordinated Universal Time). UTC to globalna skala czasowa i taka sama dla wszystkich na całym świecie oparta jest na czasie, który charakteryzują zegary atomowe, które są bardzo dokładne, ani nie zyskują ani nie tracą sekundy w ciągu milionów lat.

Większość sieci komputerowych używa dedykowanego Serwer czasu NTP aby otrzymać czas UTC do synchronizacji również ich komputerów. UTC jest dostępny przez Internet (choć niezabezpieczony), za pośrednictwem sieci GPS (Global Positioning System) lub przez odbieranie krajowych transmisji czasu i częstotliwości za pośrednictwem fal długich.

NTP synchronizuje komputer, sprawdzając odebrany czas UTC i dodając lub zatrzymując znacznik czasu komputera, dopóki nie zostanie idealnie dopasowany do czasu UTC. Używając dedykowanego serwera czasu NTP, UTC może być utrzymywane w sieci przez kilka milisekund czasu UTC.

Przewodnik dla początkujących na serwerze NTP

Sieci komputerowe to jeden z najtrudniejszych aspektów technologii informacyjno-komunikacyjnych (ICT). Logistyka terminali łączących, routerów, drukarek i wszystkich innych urządzeń może pozostawić wielu administratorów z ciągłym bólem głowy.

Jednym z najważniejszych aspektów, które często są pomijane i mogą mieć katastrofalne konsekwencje, jest synchronizacja czasu.

Konieczne jest, aby wszystkie urządzenia w sieci powiadamiały o tym samym czasie co sygnatury czasowe, format, w jakim komputer przekazuje sobie nawzajem czas, jest jedyną formą odniesienia, którą komputer może wykorzystać do ustalenia sekwencji zdarzeń. Jeśli różne urządzenia w sieci informują o różnych czasach, to nieprzewidziane konsekwencje, takie jak e-maile przychodzące, zanim zostaną technicznie wysłane, a inne anomalie spowodują jeszcze większy ból głowy administratora.

Co więcej, niezsynchronizowana sieć komputerowa jest narażona na zagrożenia bezpieczeństwa, a nawet oszustwa. Na szczęście Serwer czasu NTP istnieje od wielu lat i może złagodzić ból głowy związany z synchronizacją czasu.

Protokół NTP (Network Time Protocol) jest jednym z najstarszych protokołów używanych przez sieci komputerowe. Opracowany prawie trzydzieści lat temu NTP to protokół, który sprawdza czas na wszystkich urządzeniach w sieci i dodaje lub odejmuje wystarczająco dużo czasu, aby zapewnić, że wszystkie są zsynchronizowane.

Protokół NTP wymaga odwołania do czasu, aby zsynchronizować zegary sieciowe z. Chociaż NTP może synchronizować sieć w dowolnym momencie, autorytatywne źródło czasu jest oczywiście najlepszym rozwiązaniem. UTC (Coordinated Universal Time) to globalnie wykorzystywana skala czasowa oparta na czasie określonym przez zegary atomowe. Ponieważ zegary atomowe tracą mniej niż sekundę czasu w ciągu ponad tysiąca lat, UTC jest zdecydowanie najlepszym źródłem czasu do synchronizacji sieci. Twoja sieć nie tylko będzie idealnie zsynchronizowana, ale także Twoja sieć zostanie zsynchronizowana w tym samym czasie, co miliony sieci komputerowych z całego świata.

A Serwer NTP może odbierać odniesienia czasowe UTC z kilku źródeł. Internet jest najbardziej oczywistym źródłem, jednak źródła czasowe Internetu są notorycznie niedokładne, a te, które nie są, mogą być względnie bezużyteczne, jeśli odległość jest zbyt duża. Również umieszczenie serwera NTP bezpiecznie za zaporą ogniową wydaje się bezcelowe, aby pozostawić w nim otwartą dziurę, aby umożliwić serwerowi NTP sondowanie odniesienia czasowego z całej sieci i pozostawić całą sieć narażoną na atak, w szczególności jako uwierzytelnianie NTP (NTP własny środek bezpieczeństwa) nie jest możliwe przez Internet.

Istnieją dwie znacznie bezpieczniejsze i dokładniejsze metody otrzymywania odniesienia czasowego UTC. Pierwszym z nich jest wykorzystanie krajowych transmisji czasu i częstotliwości, które kilka krajów transmituje z krajowych laboratoriów fizycznych. Zazwyczaj są one nadawane za pośrednictwem długiej fali, co ma tę zaletę, że można je odbierać w serwerowni, chociaż wiele krajów nie ma takiego sygnału.

Jednak wiele serwerów NTP może wykorzystywać sygnał taktowania transmitowany przez wbudowane zegary atomowe satelitów GPS (Global Positioning System). Ten sygnał jest dostępny wszędzie, ale wymagana jest antena GPS, dzięki której można uzyskać wyraźny widok nieba.

Wykorzystując źródło taktowania UTC za pośrednictwem sieci transmisji radiowej GPS, sieć komputerowa może być zsynchronizowana w ciągu kilku milisekund czasu UTC.

Wprowadzenie do Network Time Protocol

Network Time Protocol (NTP) jest jednym z najstarszych protokołów Internetu w użyciu. Opracowany przez dr Davida Millsa z University of Delaware, był w ciągłym użyciu i stale aktualizowany od 1985. NTP to protokół przeznaczony do synchronizacji zegarów na komputerach i sieciach w Internecie lub w sieciach lokalnych lub szerszych (LAN / WANS).

W nowoczesnej gospodarce światowej synchronizacja czasu jest niezbędna do realizacji transakcji czasochłonnych, takich jak rezerwacja biletu lotniczego do licytacji na stronie aukcji internetowej. Jeśli zegary nie zostały zsynchronizowane w tym samym czasie, może się okazać, że twoje gniazdo lotnicze zostało sprzedane po jego zakupie, a administratorzy Ebaya nie byliby w stanie odkryć, która oferta była ostatnia.

NTP to wielopoziomowy system, z którego każdy poziom nazywany jest warstwą. Serwery na każdym poziomie komunikują się ze sobą (peer) i zapewniają czas na obniżenie warstw. Serwery w górnej warstwie, warstwa 1, łączą się z zegarem atomowym za pośrednictwem Internetu lub radia lub odbiornika GPS, natomiast serwer warstwy 2 łączy się z warstwą 1.

NTP używa algorytmu (algorytmu Marzullo) do synchronizacji czasu w sieci przy użyciu skal czasowych takich jak UTC (Coordinated Universal Time lub Temps Universel Coordonné) i może obsługiwać takie funkcje, jak sekundy przestępne - dodane w celu kompensacji spowolnienia obrotu Ziemi.

NTP (najnowsza wersja 4) może utrzymywać czas w publicznym Internecie z dokładnością do 10 milisekund (1 / 100th of sekunda) i może działać jeszcze lepiej w sieciach LAN z dokładnością mikrosekund 200 (1 / 5000 sekundy) w idealnych warunkach .

Serwery czasu NTP działają w ramach pakietu TCP / IP i polegają na UDP (User Datagram Protocol). Mniej skomplikowana forma NTP zwana Simple Network Time Protocol (SNTP), która nie wymaga przechowywania informacji o wcześniejszej komunikacji, potrzebnej przez NTP, jest używana w niektórych urządzeniach i aplikacjach, w których synchronizacja z wysoką dokładnością nie jest tak ważna i jest również uwzględniana jako standardowy w oprogramowaniu Windows (chociaż nowsze wersje systemu Microsoft Windows mają zainstalowany pełny NTP, a kod źródłowy jest darmowy i łatwo dostępny w Internecie).

Program NTP (znany jako demon w systemie UNIX i usługa w systemie Windows) działa w tle i nie chce uwierzyć w czas, w jaki jest on przekazywany, dopóki kilka wymian nie będzie miało miejsca, a każdy z nich przejdzie zestaw testów. Jeśli odpowiedzi serwera spełniają te "specyfikacje protokołu", serwer jest akceptowany. Zwykle potrzeba około pięciu dobrych próbek (pięć minut), dopóki serwer NTP nie zostanie zaakceptowany jako źródło synchronizacji.

Synchronizacja z NTP jest stosunkowo prosta, to synchronizuje czas z odniesieniem do wiarygodnego źródła zegara, takie jak zegar atomowy, chociaż są one bardzo drogie i zazwyczaj można znaleźć tylko w dużych laboratoriach fizyki, jednak NTP można użyć Global Positioning System (GPS) lub specjalista sieć transmisji radiowej, aby otrzymać czas UTC z tych zegarów.

Dostępna jest uproszczona wersja NTP o nazwie Simple Network Time Protocol (SNTP), która nie wymaga przechowywania informacji o wcześniejszych połączeniach wymaganych przez NTP. Jest używany w niektórych urządzeniach i aplikacjach, w których synchronizacja z wysoką dokładnością nie jest tak ważna i jest instalowana w starszych wersjach systemu Microsoft Windows. Windows od 2000 zawiera usługę czasu systemu Windows (w32time.exe), która używa SNTP do synchronizacji zegara komputera. NTP jest również dostępny w UNIX i LINUX (pobierz przez NTP.org).

Serwer NTP GPS do zastosowań krytycznych czasowo

GPS (Global Positioning System) to globalny nawigacyjny system satelitarny (GNSS) kontrolowany i zarządzany przez Stany Zjednoczone Ameryki.

Systemy GNSS działają za pomocą satelitów znajdujących się kilka tysięcy mil nad powierzchnią Ziemi, które przekazują informację o taktowaniu do odbiornika GNSS (jak jednostka nawigacji satelitarnej w naszych samochodach). To właśnie ta informacja jest używana przez odbiornik GPS do precyzyjnego określenia położenia. Mogą to zrobić tylko dzięki wbudowanemu własnemu, bardzo dokładnemu zegarowi atomowemu, tak jak odległość satelitów od Ziemi, nawet niedokładność sekundy lub dwóch może oznaczać, że lokalizacja nawigacji satelitarnej może być oddalona o milę.

W wyniku posiadania dokładnych źródeł czasu, GPS i nowa seria systemów GNSS mogą być wykorzystane do otrzymania czasu absolutnego lub czasu UTC (Universal Coordinated Time). To źródło czasu może być używane przez sieci komputerowe z uruchomionym systemem Serwer NTP (Network Time Protocol), aby synchronizować wszystkie urządzenia i urządzenia w tym samym czasie.

NTP to protokół przeznaczony do synchronizowania komputerów i urządzeń sieciowych z zewnętrznym punktem odniesienia.

GPS to idealne odniesienie do czasu i częstotliwości, ponieważ może zapewnić bardzo dokładny czas w dowolnym miejscu na świecie przy użyciu stosunkowo tanich komponentów. Każdy satelita GPS transmituje na dwóch częstotliwościach L2 do użytku wojskowego, a L1 do użytku przez cywilów transmitowanych na 1575 MHz, tanie anteny GPS i odbiorniki są teraz szeroko dostępne, a dedykowane serwery NTP GPS są teraz stosunkowo tanie.

Sygnał radiowy nadawany przez satelitę mogą przejść przez okna, ale może być blokowany przez budynki więc idealnym miejscem dla anteny GPS jest na dachu z dobrym widokiem nieba. Im więcej satelitów może otrzymać z lepszym sygnałem. Jednak anteny dachowej może być skłonny do strajków oświetlenia lub innych przepięć tak tłumik jest wysoce zalecane jest zainstalowany na kablu inline GPS.

A Serwer NTP GPS idealnie nadaje się do dostarczania serwerów czasu NTP lub samodzielnych komputerów z bardzo dokładnym zewnętrznym odnośnikiem do synchronizacji. Nawet przy stosunkowo tanich urządzeniach dokładność rzędu nanosekund (nanosekunda = jedna miliardowa część sekundy) można racjonalnie osiągnąć, wykorzystując GPS jako odniesienie zewnętrzne.

Zrozumienie znaczników czasu komputera za pomocą NTP

Sposób, w jaki komputer radzi sobie z czasem, jest zupełnie inny niż ludzie, którzy go postrzegają. Organizujemy czas na sekundy, minuty, godziny, dni, tygodnie, miesiące i lata, podczas gdy komputery z drugiej strony ustalają czas jako pojedynczą liczbę reprezentującą sekundy, które przeszły z jednego punktu w czasie, znany jako pierwsza epoka.

Większość komputerów korzysta z NTP (Network Time Protocol), aby poradzić sobie z czasem i sieciami, wiele z nich jest synchronizowanych za pomocą dedykowanego serwera czasu NTP. NTP nie wie nic o dniach, latach czy wiekach, tylko o sekundach od pierwszej epoki. Ta największa epoka jest ustawiona (dla większości systemów) o północy na przełomie XX i XX wieku, dla człowieka będzie zapisana jako coś takiego: 00: 00 - 01,01,1900.

Komputery jednak liczą czas jako liczbę sekund po tym punkcie. Jeśli komputer znajdował się w 1900, jego sygnatura czasowa na północy stycznia 1 byłaby 0, podczas gdy w 1972 w tym samym dniu znacznik czasu byłby 2,272,060,800, który reprezentuje liczbę sekund od 1900.

Znaczniki czasu uruchamiają się ponownie co 136 w następnym opakowaniu należnym w 2036, co wywołało niepokój u niektórych, którzy obawiają się scenariusza typu Millennium Bug, chociaż większość wątpliwości dotyczy takich zdarzeń, jednak w przypadku zawijania znacznika czasu zdarza się era zostanie dodana (+ 1), aby umożliwić komputerom radzenie sobie z przedziałami czasu obejmującymi więcej niż jedno zawijanie. Jeśli komputery i NTP muszą radzić sobie z czasem, który obejmuje przed epoką główną, używana jest ujemna liczba całkowita (dla roku 1500 a -3 będzie używany do reprezentowania trzech cykli 136 lat).

Znaczniki czasu są używane praktycznie we wszystkich transakcjach wykonywanych przez nowoczesne komputery, takich jak wysyłanie wiadomości e-mail, debugowanie i programowanie. Ponieważ czas jest liniowy, komputer wie, że każdy znacznik jest zawsze większy niż poprzedni, a zatem komputery i NTP mają trudności z radzeniem sobie z niedokładnościami w czasie, szczególnie gdy czas nagle wydaje się cofać.

Może się to zdarzyć, jeśli komputery nie są zsynchronizowane w tym samym czasie. Jeśli wiadomość e-mail zostanie wysłana na komputer z wolniejszym zegarem, komputer zostanie odebrany, zanim zostanie wysłany. Brak synchronizacji może mieć poważne problemy, a nawet może sprawić, że system będzie podatny na złośliwe ataki, a nawet oszustwa.

Z tego powodu większość sieci komputerowych jest zsynchronizowana z UTC (Coordinated Universal Time). UTC to globalna skala czasowa i taka sama dla wszystkich na całym świecie oparta jest na czasie, który charakteryzują zegary atomowe, które są bardzo dokładne, ani nie zyskują ani nie tracą sekundy w ciągu milionów lat.

Większość sieci komputerowych używa dedykowanego Serwer czasu NTP aby otrzymać czas UTC do synchronizacji również ich komputerów. UTC jest dostępny przez Internet (choć niezabezpieczony), za pośrednictwem sieci GPS (Global Positioning System) lub przez odbieranie krajowych transmisji czasu i częstotliwości za pośrednictwem fal długich.

NTP synchronizuje komputer, sprawdzając odebrany czas UTC i dodając lub zatrzymując znacznik czasu komputera, dopóki nie zostanie idealnie dopasowany do czasu UTC. Używając dedykowanego serwera czasu NTP, UTC może być utrzymywane w sieci przez kilka milisekund czasu UTC.

Network Time Server utrzymujący kontrolę nad czasem

Sieci komputerowe mogą wydawać się zastraszającym przedsięwzięciem. Jednak sieć komputerowa to tak naprawdę tylko kilka maszyn połączonych ze sobą w celu ułatwienia transferu danych i bezpieczeństwa. Mogą być bardzo małe, takie jak dwa komputery w sieci domowej, do naprawdę dużych sieci składających się z setek i tysięcy komputerów.

Gdy komputer lub urządzenie jest podłączone do sieci, istnieje tylko jeden punkt odniesienia, który komputery mogą wykorzystać do ustalenia kolejności zdarzeń i aplikacji, czyli czasu.

Czas, w postaci znaczników czasu, jest wykorzystywany przez większość aplikacji i wtedy mogą wystąpić problemy w sieciach komputerowych.

Komputery podają czas za pomocą zegara oprogramowania. Jest to oparte na zegarze systemowym, który utrzymuje czas, gdy komputer jest wyłączony. Jednak wewnętrzne zegary komputerów są całkowicie niedokładne. Mają tendencję do dryfowania do kilku sekund w tygodniu. W sieci, w której występuje więcej niż jeden komputer, może to spowodować poważne problemy, jeśli maszyny dryfują z różnymi prędkościami.

Wiadomości e-mail mogą nadejść, zanim zostaną wysłane, a cała sieć może być narażona na zagrożenia bezpieczeństwa, a nawet oszustwa!

A sieciowy serwer czasu służy do synchronizacji sieci komputerowej do pojedynczego źródła czasu. Tym razem źródłem może być dowolna informacja: od wewnętrznego zegara na komputerze po czas opowiadany przez zegarek na rękę. Jednak, aby zapewnić doskonałą dokładność i utrzymać synchronizację sieci z resztą świata, należy użyć źródła czasu UTC.

UTC (Coordinated Universal Time) to globalna skala czasowa oparta na czasie określonym przez zegary atomowe. Sieciowy serwer czasu może odbierać źródło czasu UTC z Internetu (choć niezabezpieczone), za pośrednictwem sieci GPS (globalnego systemu pozycjonowania) lub za pośrednictwem specjalistycznej transmisji radiowej z krajowych laboratoriów fizycznych.

Większość sieciowych serwerów czasu używa NTP (Network Time Protocol), aby dystrybuować referencję czasową w całej sieci. NTP nie jest jedynym protokołem taktowania zaprojektowanym do tego celu, mimo że jest on zdecydowanie najczęściej wykorzystywany.