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.

  1. 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.
  2. 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

  3. 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.
  4. Zegar slave wysyła zapytanie o opóźnienie (delay request) i zapamiętuje czas jego wysłania jako t3.
  5. 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.
  6. Zegar slave liczy opóźnienie korzystając z zależności:
    Dp = (t4 – t3)/2

  7. Zegar slave zostaje zostaje zsynchronizowany przez dodanie opóźnienia „dp” do swojego aktualnego czasu.


Metoda jednokrokowa


Metoda dwukrokowa






Ostatnia modyfikacja: wtorek, 2 maj 2017, 15:07