| Skrót | PTP |
|---|---|
| Rodzina standardów | IEEE 1588, IEC 61588 |
| Pierwsze wydanie | IEEE 1588-2002 |
| Aktualna rewizja bazowa | IEEE 1588-2019 / IEC 61588:2021 |
| Transport | UDP/IPv4, UDP/IPv6, Ethernet (warstwa 2) |
| Porty UDP | 319, 320 |
Precision Time Protocol (PTP) – protokół precyzyjnej synchronizacji zegarów w sieciach komputerowych, zdefiniowany w rodzinie standardów IEEE 1588. Służy do rozprowadzania czasu tam, gdzie typowa synchronizacja przez NTP nie zapewnia wymaganej dokładności. Stosuje się go m.in. w sieciach lokalnych, systemach pomiarowo-sterujących, automatyce przemysłowej, telekomunikacji, elektroenergetyce i profesjonalnych systemach medialnych.
Pierwsze wydanie standardu opublikowano w 2002 roku. Aktualną wersją bazową jest IEEE 1588-2019 (nieformalnie PTPv2.1), przyjęta jako międzynarodowa publikacja IEC 61588:2021. W każdej domenie synchronizacji wybierany jest zegar odniesienia (zegar nadrzędny, ang. grandmaster), a hierarchia zegarów zwykłych i granicznych jest porządkowana automatycznie algorytmem BMCA. Zegary transparentne w tej hierarchii nie uczestniczą. Mechanizm synchronizacji opiera się na wymianie komunikatów z dokładnymi znacznikami czasu i pozwala wyznaczyć opóźnienie ścieżki oraz przesunięcie zegara względem zegara nadrzędnego.
Szczegółowe parametry pracy dla różnych branż określają profile, m.in. SMPTE ST 2059-2 (broadcast), profil medialny AES67 (profesjonalne audio), IEC/IEEE 61850-9-3 (energetyka) oraz ITU-T G.8275.1 (telekomunikacja). Specyfikacje IEEE 1588 stosuje też norma IEEE 802.1AS (gPTP) dla sieci mostkowanych, a rozszerzeniem PTP jest White Rabbit, stosowany m.in. w metrologii. W sieciach ze sprzętowym znacznikowaniem czasu PTP może osiągać dokładność poniżej mikrosekundy, a w odpowiednio zaprojektowanej sieci nawet subnanosekundową. Osiągalna dokładność zależy jednak od cech urządzeń i od projektu sieci, m.in. od zmienności opóźnień, kompensacji opóźnienia ścieżki i jej symetrii.
Pierwsza wersja protokołu została opublikowana jako IEEE 1588-2002 pod tytułem Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. Jej celem było wypełnienie luki między powszechnym, ale mniej dokładnym NTP a kosztowną lub niedostępną w każdym węźle synchronizacją bezpośrednio z odbiornika GPS.
W 2008 roku opublikowano IEEE 1588-2008, zwykle nazywany PTPv2. Wersja ta wprowadziła pojęcie profilu PTP i obejmuje zegary transparentne, ale nie jest zgodna z PTPv1. Rewizja IEEE 1588-2019, nieformalnie określana jako PTPv2.1, zachowuje zgodność wsteczną z PTPv2. Rozszerzono w niej m.in. możliwości kalibracji asymetrii, izolację profili, interakcje między domenami, mechanizmy bezpieczeństwa (TLV do kontroli integralności komunikatów) oraz standardowe metryki wydajności. Po IEEE 1588-2019 opublikowano poprawki 1588a, 1588b, 1588c, 1588d, 1588e i 1588g, dotyczące m.in. doprecyzowania BMCA, mapowania PTP na Optical Transport Network, alternatywnej terminologii ról, zarządzania kluczami GDOI oraz modułów MIB/YANG. W czerwcu 2021 roku standard IEEE 1588-2019 przyjęła IEC jako IEC 61588:2021.
| Wydanie | Rok | Najważniejsze zmiany |
|---|---|---|
| IEEE 1588-2002 | 2002 | pierwsza wersja standardu (PTPv1); podstawowy mechanizm dwukierunkowej wymiany znaczników czasu |
| IEEE 1588-2008 | 2008 | PTPv2: profile, zegary transparentne, brak zgodności wstecznej z PTPv1 |
| IEEE 1588-2019 | 2019 | PTPv2.1: zgodność wsteczna z PTPv2, mechanizmy bezpieczeństwa, profil wysokiej dokładności, metryki wydajności |
| IEC 61588:2021 | 2021 | przyjęcie IEEE 1588-2019 jako międzynarodowego standardu IEC |
PTP działa w domenach synchronizacji. W każdej domenie wybierany jest zegar odniesienia, nazywany zegarem ang. grandmaster, a pozostałe urządzenia synchronizują swoje zegary względem niego. W terminologii standardu mówi się o zegarach nadrzędnych i podrzędnych (ang. master, ang. slave). Poprawka IEEE 1588g-2022 wskazała dla tych ról alternatywne określenia, używane w implementacjach i profilach PTP.
Podstawowym typem urządzenia jest zegar zwykły (ang. ordinary clock), czyli węzeł z pojedynczym portem PTP, który może być źródłem czasu albo odbiorcą synchronizacji. Zegar graniczny ma więcej niż jeden port i przenosi synchronizację między segmentami sieci, działając względem jednego segmentu jako odbiorca czasu, a względem kolejnych jako jego źródło. Zegar transparentny nie staje się osobnym źródłem czasu, lecz mierzy lub uwzględnia czas przebywania komunikatów PTP w urządzeniu pośredniczącym i zapisuje tę korektę w polu korekcyjnym komunikatu. Dzięki temu możliwe jest ograniczenie wpływu przełączników i zmiennych kolejek pakietów na końcową synchronizację.
| Typ | Liczba portów | Rola w domenie |
|---|---|---|
| zegar zwykły (ang. ordinary clock) | 1 | pojedynczy węzeł będący źródłem czasu lub odbiorcą synchronizacji |
| zegar graniczny (ang. boundary clock) | ≥ 2 | pośredniczy między segmentami sieci, dla każdego segmentu działając jako odbiorca lub źródło czasu |
| zegar transparentny (ang. transparent clock) | ≥ 2 | nie staje się źródłem czasu; mierzy czas przejścia komunikatów PTP i koryguje pole korekcyjne |
| zegar w roli grandmaster | ≥ 1 | główny zegar odniesienia w domenie, wybrany przez BMCA; rolę tę pełni zegar zwykły lub graniczny |
Hierarchia PTP może zostać wyznaczona automatycznie. Zegary ogłaszają swój priorytet i parametry jakości w komunikatach Announce, a algorytm wyboru najlepszego zegara nadrzędnego (BMCA, od ang. Best Master Clock Algorithm) porządkuje na tej podstawie zegary w hierarchię i wyznacza stan każdego portu (zwykle nadrzędny, podrzędny lub pasywny). Zegar, który nie jest najlepszy w sieci, przestaje wysyłać komunikaty Announce i przechodzi w stan pasywny jako zapasowe źródło czasu, a gdy w sieci nie ma już lepszego zegara, zaczyna udostępniać czas.
Osiągalna dokładność synchronizacji zależy od cech urządzeń i od projektu sieci. Wpływ zmienności opóźnień w sieci ograniczają zegary transparentne i graniczne, opóźnienie ścieżki należy mierzyć i kompensować, a asymetrię sieci w razie potrzeby zmierzyć i skompensować ręcznie.

Synchronizacja w PTP opiera się na wymianie komunikatów z dokładnymi znacznikami czasu. Zegar nadrzędny wysyła komunikat Sync, a w trybie dwukrokowym dodatkowy komunikat Follow_Up zawierający dokładny czas nadania. Odbiorca porównuje czas otrzymania komunikatu z własnym zegarem, a następnie bierze udział w wymianie Delay_Req i Delay_Resp, aby oszacować opóźnienie ścieżki między zegarem nadrzędnym a podrzędnym.
W klasycznym opisie wymiana składa się z czterech znaczników czasu:
Przy założeniu symetrycznych opóźnień w obu kierunkach średnie opóźnienie ścieżki d oraz przesunięcie zegara podrzędnego względem nadrzędnego o wyznacza się ze wzorów:
Dodatnia wartość o oznacza, że zegar podrzędny wyprzedza zegar nadrzędny i powinien zostać skorygowany w tył; ujemna o – że jest opóźniony i powinien zostać skorygowany w przód. Przykładowo dla T1 = 0 ns, T2 = 120 ns, T3 = 1000 ns i T4 = 1080 ns otrzymuje się d = 100 ns oraz o = 20 ns, co odpowiada zegarowi podrzędnemu wyprzedzającemu nadrzędny o 20 ns. Dokładność wyznaczonego przesunięcia zależy od jakości znacznikowania w obu zegarach oraz od stopnia symetrii ścieżki w czasie trwania całej wymiany.
W trybie end-to-end opóźnienie wyznacza się dla całej ścieżki między zegarem podrzędnym a nadrzędnym. W trybie peer-to-peer opóźnienia mierzy się między sąsiednimi urządzeniami, co ułatwia skalowanie sieci, bo urządzenia podrzędne nie muszą wysyłać żądań pomiaru opóźnienia do zegara nadrzędnego. W obu przypadkach założenie symetrii opóźnień i małych, przewidywalnych opóźnień lokalnego znacznikowania czasu jest kluczowe. Asymetria łączy, konwersje mediów, przeciążenia sieci i brak sprzętowego znacznikowania czasu mogą zauważalnie pogorszyć dokładność.
PTP zwykle operuje na skali czasu powiązanej z TAI, a zegar nadrzędny przekazuje informację o różnicy między TAI i UTC, aby urządzenia mogły wyznaczać również czas UTC. Skala czasu zegara nadrzędnego zależy jednak od implementacji i zastosowania.
Komunikaty PTP dzielą się na komunikaty zdarzeniowe i ogólne. Do pierwszej grupy należą komunikaty, których dokładny czas nadania lub odbioru bezpośrednio wpływa na wynik synchronizacji; komunikaty ogólne przenoszą dane sterujące (wybór hierarchii, zarządzanie domeną, znaczniki czasu z trybu dwukrokowego), ale same nie wymagają tak precyzyjnego znacznikowania na granicy medium transmisyjnego.
| Komunikat | Typ | Rola |
|---|---|---|
| Sync | zdarzeniowy | podstawowy komunikat synchronizujący, wysyłany przez zegar nadrzędny |
| Follow_Up | ogólny | przenosi dokładny czas nadania Sync w trybie dwukrokowym |
| Delay_Req | zdarzeniowy | żądanie pomiaru opóźnienia, wysyłane przez zegar podrzędny (tryb end-to-end) |
| Delay_Resp | ogólny | zawiera czas odebrania Delay_Req przez zegar nadrzędny |
| Pdelay_Req | zdarzeniowy | żądanie pomiaru opóźnienia między sąsiadami w trybie peer-to-peer |
| Pdelay_Resp | zdarzeniowy | odpowiedź na Pdelay_Req, znacznikowana czasowo w trybie peer-to-peer |
| Pdelay_Resp_Follow_Up | ogólny | przenosi dokładny znacznik czasu odpowiedzi Pdelay_Resp w trybie dwukrokowym |
| Announce | ogólny | ogłaszanie właściwości zegara dla potrzeb BMCA |
| Management | ogólny | zarządzanie konfiguracją i monitorowanie zegarów PTP |
| Signaling | ogólny | negocjacja parametrów pracy między zegarami |
PTP może być przenoszony przez UDP/IPv4, UDP/IPv6 albo bezpośrednio w warstwie 2 IEEE 802.3 Ethernet. Standard dopuszcza transmisję multicast, unicast oraz konfiguracje mieszane. W typowym mapowaniu UDP komunikaty zdarzeniowe używają portu 319/UDP, a komunikaty ogólne portu 320/UDP. W sieciach Ethernet ruch PTP bywa przesyłany w ramkach ze znacznikiem VLAN, co przewiduje m.in. energetyczny profil IEEE C37.238.
Standard IEEE 1588 definiuje mechanizmy ogólne, natomiast szczegółowe parametry pracy często ustalane są przez profile dostosowane do konkretnej branży. Profile określają m.in. tryb opóźnienia, częstotliwość komunikatów, zakres dopuszczalnych opcji, sposób wyboru transportu oraz wymagania wobec dokładności i interoperacyjności. W rewizji z 2019 roku opisano także profil wysokiej dokładności, przeznaczony dla odpowiednio zaprojektowanych sieci, w których możliwy jest transfer czasu z dokładnością lepszą niż 1 ns. Dzięki temu PTP stosuje się m.in. w aparaturze pomiarowo-sterującej, sieciach telekomunikacyjnych, energetyce, automatyce przemysłowej i systemach medialnych.
W elektroenergetyce PTP jest używany m.in. do rozprowadzania czasu w sieciach opartych na rodzinie IEC 61850 oraz do synchronizacji pomiarów synchrofazorowych. W takich zastosowaniach precyzyjny wspólny czas jest potrzebny do porównywania pomiarów wykonywanych w różnych punktach sieci energetycznej.
W profesjonalnych instalacjach audio-wideo PTP jest podstawą profili używanych do synchronizacji urządzeń nadawczych i produkcyjnych. Przykładem jest SMPTE ST 2059-2, czyli profil PTP dla zastosowań broadcastowych. Raport AES-R16 wskazuje parametry, które powinny umożliwić współdziałanie urządzeń zgodnych z tym profilem i z profilem medialnym standardu AES67 dla sieciowego transferu dźwięku. Z kolei uogólniony PTP (gPTP) z rodziny IEEE 802.1AS jest elementem sieci czasoczułych używanych w transmisji audio, wideo i sterowaniu w sieciach mostkowanych.
Profil PTP dla automatyki elektroenergetycznej określa norma IEC/IEEE 61850-9-3, a norma IEC 62439-3, dotycząca sieci automatyki z redundancją PRP/HSR, uwzględnia synchronizację zegarów według IEC 61588 z pomiarem opóźnienia end-to-end i peer-to-peer. W telekomunikacji stosuje się profile ITU-T: G.8265.1 (synchronizacja częstotliwości), G.8275.1 (synchronizacja fazy i czasu przy pełnym wsparciu sieci) oraz G.8275.2 (synchronizacja fazy i czasu przy częściowym wsparciu sieci). W akceleratorach cząstek, detekcji promieniowania kosmicznego, metrologii i sieciach transakcji finansowych stosuje się także ang. White Rabbit – opracowane w CERN rozszerzenie PTP łączące go z ang. Synchronous Ethernet i pozwalające na synchronizację z dokładnością subnanosekundową.
| Profil | Branża / zastosowanie | Charakterystyka |
|---|---|---|
| IEEE 802.1AS (gPTP) | sieci czasoczułe (TSN), audio, wideo, sterowanie | specyfikacje IEEE 1588 w sieciach mostkowanych Ethernet |
| SMPTE ST 2059-2 | profesjonalny broadcast | synchronizacja sygnałów audio i wideo w produkcji telewizyjnej |
| AES67 | profesjonalne audio nad IP | profil medialny, parametry współdziałania z SMPTE ST 2059-2 w raporcie AES-R16 |
| IEC/IEEE 61850-9-3 | elektroenergetyka, automatyka podstacji | profil PTP dla sieci IEC 61850 |
| IEC 62439-3 | automatyka przemysłowa | synchronizacja IEC 61588 (end-to-end i peer-to-peer) w sieciach z PRP/HSR |
| ITU-T G.8265.1, G.8275.1, G.8275.2 | telekomunikacja | dystrybucja częstotliwości, czasu i fazy w sieciach operatorskich |
| Profil wysokiej dokładności (IEEE 1588-2019) | metrologia, pomiary precyzyjne | dokładność lepsza niż 1 ns w odpowiednio zaprojektowanych sieciach |
| White Rabbit | metrologia, fizyka wysokich energii | rozszerzenie PTP o Synchronous Ethernet; dokładność subnanosekundowa |
PTP bywa porównywany z NTP, ale oba protokoły odpowiadają na inne potrzeby. NTP jest powszechnym protokołem ogólnej synchronizacji czasu w Internecie i systemach komputerowych. Docelowa dokładność NTP w systemach rozproszonych w Internecie wynosi kilka milisekund, a w szybkich sieciach lokalnych klienci NTP utrzymują dokładność rzędu kilkuset mikrosekund. PTP jest natomiast przeznaczony dla systemów lokalnych, obejmujących kilka podsieci. Ze sprzętowym znacznikowaniem czasu może osiągać dokładność poniżej mikrosekundy, a w odpowiednio zaprojektowanej sieci nawet subnanosekundową. W dobrze zaprojektowanej sieci PTP może zastąpić konieczność instalowania odbiornika GNSS w każdym urządzeniu końcowym, choć sam często korzysta z zegara nadrzędnego dyscyplinowanego przez GNSS lub inny wzorzec czasu.
W podstacjach elektroenergetycznych PTP może również pełnić rolę sieciowej alternatywy dla IRIG-B, który wymaga osobnego kabla do urządzeń. PTP umożliwia jednak dokładność submikrosekundową, ale jej nie gwarantuje.
| Metoda | Typowa dokładność | Infrastruktura | Główne ograniczenia |
|---|---|---|---|
| NTP | milisekundy w Internecie, podmilisekundowa w LAN | wspólna sieć IP, dowolne urządzenia | zmienne opóźnienia w Internecie, asymetria ścieżek |
| PTP | submikrosekundowa w LAN z obsługą sprzętową, do subnanosekundowej w wybranych profilach | sieć z obsługą PTP w przełącznikach (zegary graniczne/transparentne) | wymaga wsparcia w urządzeniach pośredniczących i symetrii ścieżek |
| GNSS (np. GPS) | submikrosekundowa | odbiornik radiowy i procesor w każdym węźle | – |
| IRIG-B | od ok. 100 ns do 1 µs | dedykowane okablowanie i generatory kodu | osobna infrastruktura okablowania |
Najważniejsze ograniczenia PTP wynikają z asymetrii opóźnień i z niedeterministycznego działania sieci. Jeśli czas propagacji w kierunku od zegara nadrzędnego do odbiorcy różni się od czasu propagacji w kierunku przeciwnym, odbiorca może obliczyć błędne przesunięcie zegara. Podobny problem powodują urządzenia pośredniczące, które nie obsługują PTP i wprowadzają zmienne opóźnienia kolejkowania. Dlatego w systemach wymagających wysokiej dokładności stosuje się zegary transparentne, zegary graniczne, kalibrację asymetrii i wydzielanie ruchu czasu.
Synchronizacja czasu jest także ważnym elementem cyberbezpieczeństwa, a PTP bywa wymieniany jako środek zapobiegania atakom na synchronizację czasu w rozproszonej infrastrukturze krytycznej. Rewizja IEEE 1588-2019 wprowadziła m.in. TLV bezpieczeństwa do kontroli integralności komunikatów i ich źródła oraz standardowe metryki wydajności.