IEEE Std 1588-2008 Precision Time Protocol (PTP)
The Precision Time Protocol allows to synchronize clocks over a distributed network with a precision range below the microsecond. A reference clock is defined (the grandmaster clock) and all other clocks (slaves) adjust their time to it. Timing messages exchanged between a master and a slave enable the slave to determine and correct the clock offset as well as the network delay.
There are two elements to synchronize: offset and delay.
First the slaves corrects the offset depending on a messages received from the master. This message called Sync contains the current time of the master. To include the exact time of transmission (moment when the first byte of the message is placed on the transmission line) in a message, special hardware (like the NS DP83640 Precision PHYTER) is required. Therefore the Sync message can also be empty and is then chased by a Follow_Up message containing the transmission time of the Sync message.
In a second step the network delay is calculated. The slave sends a Delay_Req message to the master. The master then responds with a Delay_Resp message containing the reception time of the Delay_Req message. With this information the slave determines the delay of the network by calculating the difference of the transmission time of the Delay_Resp message and the reported reception time.
- The PTP assumes that the network delay from master to slave is the same as from slave to master. If this is not the case, the delay calculation will be wrong.
- The PTP can endure missing, duplicated or disordered messages, as long as they arrive relatively seldom.
PTP over UDP/IPv4
The PTP master Sync message is a multicast frame sent to MAC address
01:00:5E:00:01:81 and IP address
E0:00:01:81) on port 319.
It can be followed by a Follow-up message, which is also a multicast frame to the same address but to port 320.
The Delay_Request message is sent back to the master as a unicast frame on port 319.
The Delay_Response message comes back as unicast frame on port 320.
- NIST IEEE 1588
- "IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems," IEEE Std 1588-2008 (Revision of IEEE Std 1588-2002) , vol., no., pp.c1-269, July 24 2008
- Wikipedia article