Precision Time Protocol

In a local area network (LAN), accuracy can be sub-microsecond – making it suitable for measurement and control systems.

[1] PTP is used to synchronize financial transactions, mobile phone tower transmissions, sub-sea acoustic arrays, and networks that require precise timing but lack access to satellite navigation signals.

IEEE 1588-2019 was published in November 2019 and includes backward-compatible improvements to the 2008 publication.

IEEE 1588-2008 includes a profile concept defining PTP operating parameters and options.

Several profiles have been defined for applications including telecommunications, electric power distribution and audiovisual uses.

IEEE 802.1AS is an adaptation of PTP, called gPTP, for use with Audio Video Bridging (AVB) and Time-Sensitive Networking (TSN).

IEEE 1588 is designed for local systems requiring accuracies beyond those attainable using NTP.

"[2] PTP was originally defined in the IEEE 1588-2002 standard, officially titled Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems, and published in 2002.

[3] IEEE 1588-2019 was published in November 2019,[4] is informally known as PTPv2.1 and includes backwards-compatible improvements to the 2008 publication.

An ordinary clock is a device with a single network connection that is either the source of or the destination for a synchronization reference.

IEEE 1588-2008 introduces a clock associated with network equipment used to convey PTP messages.

The transparent clock modifies PTP messages as they pass through the device.

[7] Timestamps in the messages are corrected for time spent traversing the network equipment.

This scheme improves distribution accuracy by compensating for delivery variability across the network.

PTP typically uses the same epoch as Unix time (start of 1 January 1970).

Synchronization and management of a PTP system is achieved through the exchange of messages across the communications medium.

[8]: Annex F  In IEEE 1588-2002, all PTP messages are sent using multicast messaging, while IEEE 1588-2008 introduced an option for devices to negotiate unicast transmission on a port-by-port basis.

[8]: Annex D and E  Time-critical event messages (Sync, Delay_req, Pdelay_Req and Pdelay_Resp) are sent to port number 319.

General messages (Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, management and signaling) use port number 320.

[8]: Annex I A domain[i] is an interacting set of clocks that synchronize to one another using PTP.

Domains allow multiple clock distribution systems to share the same communications medium.

The best master clock algorithm (BMCA) performs a distributed selection of the best clock to act as leader based on the following clock properties: IEEE 1588-2008 uses a hierarchical selection algorithm based on the following properties, in the indicated order:[8]: Figure 27 IEEE 1588-2002 uses a selection algorithm based on similar properties.

The leader periodically broadcasts the current time as a message to the other clocks.

A clock receiving this message takes note of the local time

Not all leaders have the ability to present an accurate timestamp in the Sync message.

In order to accurately synchronize to their leader, clocks must individually determine the network transit time of the Sync messages.

The clocks initiate an exchange with their leader designed to measure the transit time

Finally, it is assumed that both the leader and follower can accurately measure the time they send or receive a message.

The degree to which these assumptions hold true determines the accuracy of the clock at the follower device.

[8]: Clause 6.2 IEEE 1588-2008 standard lists the following set of features that implementations may choose to support: IEEE 1588-2019 adds additional optional and backward-compatible features:[5]

IEEE 1588 synchronization mechanism and delay calculation