Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



14.07.2021

Platforma AQUILA

IBM zaprezentował platformę opartą na sztucznej inteligencji służącą do kompleksowej, w...
14.07.2021

Przenoszenie Javy do chmury

JBoss Enterprise
14.07.2021

Nowe okna

Windows 11
14.07.2021

Monitoring sieci

nVision 12.5
14.07.2021

Automatyczna ochrona

Nowości w FortiEDR
14.07.2021

Seria monitorów...

Firma Newline prezentuje serię monitorów interaktywnych MIRA.
14.07.2021

Modularne routery IoT

Cisco Catalyst
14.07.2021

Nowy poziom pracy

Radeon PRO W6000
14.07.2021

SI w monitoringu

Kamery i-PRO S-Series

W służbie czasu – protokoły i urządzenia

Data publikacji: 27-05-2021 Autor: Adam Kamiński

Nasze potoczne rozumienie czasu sprawia, że lekceważymy znaczenie utrzymywania w systemach formalnych dokładnego, identyfikowalnego z globalnym wzorcem czasu. Tymczasem w świecie systemów informatycznych, będących z nielicznymi wyjątkami elementem ogólnoświatowej sieci informatycznej, poprawne, czyli i jednolite datowanie ma istotne znaczenie dla ich funkcjonowania i bezpieczeństwa.

 

Jednym ze sposobów radzenia sobie z niejednoznacznością datowania jest przyjęcie w miejsce kryterium daty kryterium kolejności zdarzeń. Takiego kryterium używają informatyczne systemy giełdowe – moment transakcji jest rejestrowany, lecz o kolejności transakcji decyduje kolejność zgłoszeń, a nie data. Dostęp do skal czasu odtwarzających UTC uzyskuje się powszechnie za pośrednictwem: protokołu NTP, sygnału GPS, radiowych sygnałów czasu nadawanych na falach długich czy sygnałów telefonii komórkowej.

> NTP

Za światowy standard synchronizacji czasu w urządzeniach teleinformatycznych i telekomunikacyjnych powszechnie uznawany jest Network Time Protocol. NTP to protokół komunikacyjny przeznaczony do synchronizacji zegarów systemów komputerowych za pośrednictwem sieci. 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ą. NTP zawiera mechanizmy zapewniające wysoką niezawodność oraz odporność na zmienne opóźnienia w przesyłaniu pakietów. Standardy NTP opisują między innymi: hierarchiczną architekturę struktury dystrybucji czasu, protokoły transmisji stempli czasowych, algorytmy synchronizacji, algorytmy szyfrowania transmisji.

Wszystkie urządzenia korzystające z usługi synchronizacji za pomocą tego protokołu są przydzielone do jednej z czterech warstw określającej poziom w hierarchii źródeł synchronizacji czasu. Na poziomie najwyższym (Stratum 0) znajdują się znane i ogólnodostępne serwery czasu renomowanych laboratoriów utrzymania czasu (NIST, USNO, PTB, NPL) oraz systemy nawigacji satelitarnej, np. GPS. Źródła czasu pracujące na najwyższym poziomie hierarchicznym Stratum 0 wyznaczają czas z dokładnością nanosekundową oraz dodatkowo mogą synchronizować się ze sobą. Czas propagacji pakietu niosącego informację o czasie podlega w sieciach pakietowych znacznym zmianom, dlatego użytkowa dokładność odtworzonego w komputerze czasu jest o sześć–siedem rzędów wielkości mniejsza.

Można wyróżnić trzy tryby konfiguracji urządzenia korzystającego z protokołu NTP. W pierwszym urządzenie, oprócz tego, że będzie synchronizowało się z wybranym wzorcem, będzie też umożliwiało innym urządzeniom synchronizację z nim (tryb unicast). Jest to tryb serwera, dzięki któremu w przypadku np. kilku redundantnych urządzeń można mieć gwarancję stałej dostępności któregokolwiek. Drugi tryb powoduje odpytywanie serwera lub serwerów czasu przez klientów (tryb multicast). Główną wadą tej często spotykanej konfiguracji jest niepotrzebne generowanie ruchu w sieci i obciążanie serwera, zaletą natomiast – szybszy start procesu klienta bez czekania na komunikaty rozsyłane przez serwer, co ma istotne znaczenie w momencie uruchamiania urządzenia, np. stacji roboczej. W ten sposób są skonfigurowane serwery w sieci Instytutu Łączności, które wysyłają zapytania do serwera czasu. Trzeci tryb pracy klienta (tryb anycast) powoduje wysłanie zapytania do grupy urządzeń lub do wszystkich urządzeń w segmencie sieci i oczekiwanie na pierwszą, dowolną odpowiedź.

Istnieje również uproszczona wersja protokołu NTP znana pod nazwą SNTP (ang. Simple Network Time Protocol – RFC 4330↓). Oba protokoły, STNP oraz NTP, używają takich samych pakietów sieciowych. SNTP weryfikuje czas względem jednego serwera NTP, a jeśli ten jest niedostępny, wybierany jest jeden z serwerów zapasowych. NTP weryfikuje czas względem wielu serwerów NTP i odrzuca serwery o małej wiarygodności. SNTP dopasowuje czas za pomocą pojedynczych korekt, co może powodować duże skoki czasu. NTP natomiast dokonuje dopasowania czasu w taki sposób, aby upływ czasu był w miarę możliwości monotoniczny oraz by nie zdarzały się sytuacje cofania w czasie. Wykorzystanie protokołu SNTP do synchronizacji czasu zaleca się tylko w ostateczności. Serwer SNTP może funkcjonować nadrzędnie tylko w podsieci i tylko w sytuacji, gdy nie ma innych niezawodnych źródeł synchronizacji. Klienci SNTP powinni pracować wyłącznie podrzędnie i tylko w takiej konfiguracji, w której inni klienci będą niezależni od klienta SNTP.

 

> PTP

Pierwszym dostępnym standardem, który umożliwiał synchronizację zegarów w różnych urządzeniach końcowych połączonych za pośrednictwem sieci pakietowej z dokładnością osiągającą pojedyncze części jednej mikrosekundy, był Precyzyjny Protokół Czasu IEEE 1588 (ang. Precise Time Protocol). Opublikowany przez IEEE w 2002 r. standard PTP pozwala na utrzymanie bardzo precyzyjnej synchronizacji czasu w sieciach wykorzystujących Ethernet. Podobnie jak inne protokoły PTP opiera się na bardzo precyzyjnym pomiarze czasu przesyłania nadawanych i odbieranych pakietów synchronizacyjnych. Odmiennie niż SNTP znaki czasu nie muszą być przesyłane w pakietach synchronizacyjnych, ale są przesyłane w następnym pakiecie. W ten sposób pomiary czasu wysyłania i odebrania pakietów mogą być rozdzielone. Podstawową regułą działania protokołu IEEE 1588 jest synchronizacja wszystkich zegarów w sieci przez ten najbardziej precyzyjny.

Precyzja zegara, w największym stopniu wynikająca z jakości źródła sygnału podstawy czasu (generatora), jest przyporządkowana przez protokół jednej z klas jakościowych (Stratum). Przyporządkowanie to ma charakter formalny i nie ma związku z rzeczywistą precyzją nadawanych za pośrednictwem zegara znaków czasu. Wyselekcjonowanie najlepszego zegara w sieci według oceny jego faktycznych parametrów w porównaniu z parametrami innych zegarów wchodzących w skład danej sieci jest realizowane automatycznie przy wykorzystaniu algorytmu najlepszego zegara nadrzędnego (ang. Best Master Clock). Protokół PTP korzysta z architektury Master – Slave. Po wyborze przez urządzenia zegara nadrzędnego następuje synchronizacja do niego zegarów podrzędnych. Podzielona jest ona na dwie fazy – w pierwszej fazie liczona jest różnica pomiędzy zegarami urządzeń Slave oraz Master. W drugiej fazie liczone jest opóźnienie transmisji pomiędzy zegarami.

Dla zapewnienia wysokiej dokładności IEEE 1588 polega na sprzętowej technice stemplowania wiadomości czasem bardzo blisko warstwy fizycznej zarówno na wejściu, jak i wyjściu. Dzięki temu wiadomości Sync PTP przenoszą dokładne stemple czasowe z portu PTP master do portu PTP slave. Dla dystrybucji czasu niezbędna jest dwustronna wymiana informacji (mechanizm DelayReq/DelayResp) umożliwiająca wyznaczenie czasu propagacji pomiędzy portami master i slave. Zegary zwykłe (ang. ordinary clocks) zdefiniowane przez IEEE 1588 mają pojedynczy port, który może działać zarówno jako master, jak i slave. Źródłem czasu dla domeny PTP jest zegar główny określany mianem GrandMaster. IEEE 1588 definiuje również dwa inne typy zegarów używanych do budowy sieci synchronizacyjnej:

 

  • brzegowy (ang. boundary clock) – zegar PTP z wieloma portami PTP, który może odbierać, regenerować i retransmitować czas odniesienia z innych zegarów PTP. Zegar brzegowy utrzymuje lokalnie czas PTP;
  • transparentny (ang. transparent clock) – zegar PTP z wieloma portami PTP. Standard IEEE-1588-2008 definiuje dwa typy zegarów transparentnych: peer-to-peer (P2P) oraz end-to-end (E2E). Zegary E2E uzupełniają komunikaty PTP o czas przebywania wiadomości PTP wewnątrz węzła sieci zawierającego ten zegar i wprowadzają tę informację w polu correction field wiadomości PTP, tak że następny zegar PTP odbierający wiadomość może skompensować opóźnienie o tę wartość. Zegary P2P dodatkowo uwzględniają opóźnienie pomiędzy węzłami. Oba typy zegarów transparentnych nie synchronizują samych siebie do przechodzących ramek synchronizacyjnych, a jedynie pośredniczą w ich przepływie.


Precyzja synchronizacji jest w dużym stopniu uzależniona od właściwości sieci i elementów w tej sieci użytych. Z tych powodów przenoszenie znaczników czasu przez mniej deterministyczne elementy, np. routery i przełączniki, jest również możliwe do realizacji przez protokół przy użyciu zegarów brzegowych, które mają realizowane programowo właściwości filtrujące. IEEE 1588 jest przeznaczony dla lokalnych systemów wymagających dokładności wykraczających poza możliwe do osiągnięcia za pomocą NTP. Jest również przeznaczone do zastosowań, które nie mogą ponosić kosztów odbiornika GPS w każdym węźle lub dla których sygnały GPS są niedostępne. Największe zainteresowanie zdeterminowanymi sieciami Ethernet narasta obecnie w automatyce, zwłaszcza w aplikacjach związanych ze sterowaniem przemieszczeniami, tam gdzie konieczne jest utrzymanie wspólnej podstawy czasu. Nie zawsze istotna jest absolutna zbieżność z czasem międzynarodowym UTC, ale często wystarcza wzajemna synchronizacja zegarów np. w obrębie zakładu produkcyjnego wykorzystującego wspólną sieć Ethernet, bez konieczności wykonywania licznych indywidualnych połączeń pomiędzy elementami sterującymi a wykonawczymi. Zsynchronizowane ze sobą urządzenia poprzez cały czas działania protokołu wysyłają zapytania do zegara nadrzędnego (lub do urządzeń sąsiadujących w przypadku trybu P2P) o aktualny czas opóźnienia. Pozwala to dynamicznie reagować na zmiany zachodzące w sieci.

Zastosowanie protokołu PTP pozwala uniknąć konieczności stosowania odbiorników GPS w urządzeniach końcowych lub użycia oddzielnego medium transmisyjnego jak w przypadku protokołu IRIG-B. Obecnie główny kierunek wykorzystania zsynchronizowanych zegarów jest związany z zaspokojeniem potrzeb automatyki i robotyki w zastosowaniach przemysłowych o ograniczonym zakresie przestrzennym, podlegających obsłudze przez sieć lokalną LAN. PTP jest aktualnie wykorzystywany do synchronizacji transakcji finansowych, transmisji z wież telefonii komórkowej, podmorskich macierzy akustycznych i sieci, które wymagają precyzyjnego pomiaru czasu, ale nie mają dostępu do sygnałów nawigacji satelitarnej.

 

[...]

 

Autor jest testerem oprogramowania. Redaktor „IT Professional”.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"