Precision Time Protocol
Protokół PTP, nazywany też IEEE 1588 jest protokołem synchronizacji czasu w sieciach kom-puterowych. Genezą jego powstania jest osiągnięcie wysokiej dokładności synchronizacji czasu. Poprzednik PTP, Network Time Protocol pozwala na synchronizacje czasu z dokładnością do 100 ms. PTP pozwala na osiągnięcie dokładności w granicach mikrosekundy.
Podział urządzeń ze względu na role
W omawianym protokole kluczowym elementem staje się odpowiednia klasyfikacja zegarów. Dzielimy je na następujące role:
- Master Clock – Najdokładniejszy zegar, będący podstawą czasu dla innych zegarów w sieci.
- Slave Clock – Zegary o mniejszej dokładności, które synchronizują swój czas względem Master Clock. Są nimi wszystkie zegary danego systemu z wyjątkiem zegara głównego.
- Boundary Clock – Jest zegarem granicznym, którego rolą jest przekazanie odpowiedniego czasu, uzyskanego od zegara master, dla innych zegarów jemu podlegających.
- Transparent Clock – Zegar, który działa podobnie do Boundary Clock. Jego głównym zadaniem jest przekazanie pakietów synchronizacji do dalszych urządzeń. Jedynym wpływem na pakiety otrzymane przez Master Clock jest modyfikacja czasu o czas potrzebny na przekazanie informacji z portu wejściowego do wyjściowego.
Synchronizacja czasu pomiędzy zegarami master i slave
Dwa zegary w protokole PTP mogą przekazywać sobie czasy według dwóch metod, wybieranych zależnie od hardware’u zegara Master. Metoda jednokrokowa jest wykorzystywana w urządzeniach dokładnych, w których czas nadania pakietu i czas rzeczywistego wysłania pakietu jest pomijalnie mały oraz Metoda Dwukrokowa – dla urządzeń w których zachodzi spora różnica czasu pomiędzy nadaniem komunikatu i wysłaniem komunikatu.
- Zegar master wysyła pakiet synchronizacyjny (sync) zawierający aktualny czas tm. W metodzie jednokrokowej ten czas przyjmowany jest jako t1, natomiast w dwukrokowej po pakiecie sync następuje pakiet follow up(t1) zawierający dokładny czas wysłania pakietu sync.
- Zegar slave zapisuje czas dotarcia pakietu sync, lub follow up jako t2 i oblicza różni-cę względem master korzystając ze wzoru:
dt=t1 – t2 - Zegar slave dodaje do swojego aktualnego czasu ową różnicę zbliżając się do zegara master do różnicy czasu propagacji sygnału pomiędzy master i slave.
- Zegar slave wysyła zapytanie o opóźnienie (delay request) i zapamiętuje czas jego wysłania jako t3.
- Master clock wysyła odpowiedź na rządanie opóźnienia zawierającą czas otrzymania wiadomości delay request. Czas ten jest określony jako t4.
- Zegar slave liczy opóźnienie korzystając z zależności:
Dp = (t4 – t3)/2 - Zegar slave zostaje zostaje zsynchronizowany przez dodanie opóźnienia „dp” do swojego aktualnego czasu.
Metoda jednokrokowa
Metoda dwukrokowa