정밀 시각 프로토콜(Precision Time Protocol, PTP)은 네트워크 간 정확한 동기화를 가능케하는 IEEE 1588 표준 시간 전송 프로토콜이다.하드웨어에서 생성하는 타임스탬프를 사용할 때 나노초 단위의 정확도까지 보장해 준다.
이 프로토콜의 목적은 slave 장치가 자신의 클럭과 master 장치의 클럭간에 offset를 결정하게 해줌에 있다. offset을 o(t)라고 가정할 때 식은 다음과 같다:
o(t) = s(t) - m(t)
s(t)는 물리적 시간 t에서의 slave 장치의 시간, m(t)는 master장치의 시간을 나타낸다.
이 프로토콜에서 마스터 장치는 주기적으로 슬레이브와 메시지 교환을 하며, 이것은 슬레이브가 offset을 재계산하는데 도움을 준다. 이 offset은 시간에 따라 약간씩 변동하며, 따라서 이 주기적 메시지 교환은 클럭 동기화에서의 변동 효과(drift)를 완화시킨다. 첫 번째 가정은 이 메시지 교환은 매우작아 이 offset은 안전하게 constant로 고려된다. 다른 가정은 마스터에서 슬레이브까지의 전송시간과 슬레이브에서 마스터까지의 전송시간은 같다. 마지막으로, 마스터와 슬레이브는 그들이 메시지를 전송하거나 받는 시간을 측정할 수 있다.
각 메시지 교환은 마스터에서 모든 슬레이브로 보내지는 multicast SYNC 메시지에 의해 시작된다. 마스터 이 메시지를 보낼 때 시간을 측정하고 T1에 기록한다. 슬레이브는 이 메시지를 받을 때 T2에 자신의 클럭을 기록한다. 만약에 d가 이 메시지의 전송시간이고, o가 constant offset이라면, 다음과 같다.
T2 - T1 = o + d
각 슬레이브는 이제 T1과 T2를 안다. 각 슬레이브는 이제 RESPONSE 메시지를 마스터에게 다시 보낸다. 슬레이브는 메시지를 보낼 때 T3를 측정하고, 마스터는 그 메시지를 받을 때 T4를 측정한다.
T4 - T3 = -o + d
이제 슬레이브는 T1,T2,T3,T4를 안다. 이 두 식을 이용해서 다음과 같은 식을 얻는다.
o = (T2 + T3 - T1 - T4) / 2
슬레이브는 이 과정에서 offset o를 얻는다. 이 offset이 drift할 동안에, 그건은 이 과정이 시작되는 다음 시간에 보정된다.