Precision Time Protocol Explained

The Precision Time Protocol (PTP) is a protocol for clock synchronization throughout a computer network with relatively high precision and therefore potentially high accuracy. 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.

The first version of PTP, IEEE 1588-2002, was published in 2002. IEEE 1588-2008, also known as PTP Version 2, is not backward compatible with the 2002 version. 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. is an adaptation of PTP, called gPTP, for use with Audio Video Bridging (AVB) and Time-Sensitive Networking (TSN).

History

According to John Eidson, who led the IEEE 1588-2002 standardization effort, "IEEE 1588 is designed to fill a niche not well served by either of the two dominant protocols, NTP and GPS. IEEE 1588 is designed for local systems requiring accuracies beyond those attainable using NTP. It is also designed for applications that cannot bear the cost of a GPS receiver at each node, or for which GPS signals are inaccessible."[2]

PTP was originally defined in the IEEE 1588-2002 standard, officially entitled Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems, and published in 2002. In 2008, IEEE 1588-2008 was released as a revised standard; also known as PTP version 2 (PTPv2), it improves accuracy, precision and robustness but is not backward compatible with the original 2002 version.[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.[5]

Architecture

The IEEE 1588 standards describe a hierarchical master–slave architecture for clock distribution consisting of one or more network segments and one or more clocks. An ordinary clock is a device with a single network connection that is either the source of or the destination for a synchronization reference. A source is called a leader, a.k.a. master, and a destination is called a follower, a.k.a. slave. A boundary clock has multiple network connections and synchronizes one network segment to another. A single, synchronization leader is selected, a.k.a. elected, for each network segment. The root timing reference is called the grandmaster.[6]

A relatively simple PTP architecture consists of ordinary clocks on a single-segment network with no boundary clocks. A grandmaster is elected and all other clocks synchronize to it.

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). While the Unix time is based on Coordinated Universal Time (UTC) and is subject to leap seconds, PTP is based on International Atomic Time (TAI). The PTP grandmaster communicates the current offset between UTC and TAI, so that UTC can be computed from the received PTP time.

Protocol details

Synchronization and management of a PTP system is achieved through the exchange of messages across the communications medium. To this end, PTP uses the following message types.

Messages are categorized as event and general messages. Event messages are time-critical in that accuracy in transmission and receipt timestamp accuracy directly affects clock distribution accuracy. Sync, Delay_Req, Pdelay_Req and Pdelay_resp are event messages. General messages are more conventional protocol data units in that the data in these messages is of importance to PTP, but their transmission and receipt timestamps are not. Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, Management and Signaling messages are members of the general message class.

Message transport

PTP messages may use the User Datagram Protocol over Internet Protocol (UDP/IP) for transport. IEEE 1588-2002 uses only IPv4 transports, but this has been extended to include IPv6 in IEEE 1588-2008. 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. Multicast transmissions use IP multicast addressing, for which multicast group addresses are defined for IPv4 and IPv6 (see table). 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.

+ Multicast group addresses
MessagesIPv4IPv6IEEE 802.3 EthernetType
All except peer delay messages224.0.1.129FF0x::18101-1B-19-00-00-00Forwardable
Peer delay messages: Pdelay_Req, Pdelay_Resp and Pdelay_Resp_Follow_Up224.0.0.107FF02::6B01-80-C2-00-00-0ENon-forwardable

In IEEE 1588-2008, encapsulation is also defined for DeviceNet, ControlNet and PROFINET.

Domains

A domain is an interacting set of clocks that synchronize to one another using PTP. Clocks are assigned to a domain by virtue of the contents of the Subdomain name (IEEE 1588-2002) or the domainNumber (IEEE 1588-2008) fields in PTP messages they receive or generate. Domains allow multiple clock distribution systems to share the same communications medium.

Subdomain name field contents IPv4 multicast address
domainNumber
Notes
_DFLT224.0.1.1290Default domain
_ALT1224.0.1.1301Alternate domain 1
_ALT2224.0.1.1312Alternate domain 2
_ALT3224.0.1.1323Alternate domain 3
Application specific up to 15 octets224.0.1.130, 131 or 132 as per hash function on Subdomain name4 through 127User-defined domains

Best master clock algorithm

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:

  1. Priority 1the user can assign a specific static-designed priority to each clock, preemptively defining a priority among them. Smaller numeric values indicate higher priority.
  2. Classeach clock is a member of a given class, each class getting its own priority.
  3. Accuracyprecision between clock and UTC, in nanoseconds (ns)
  4. Variancevariability of the clock
  5. Priority 2final-defined priority, defining backup order in case the other criteria were not sufficient. Smaller numeric values indicate higher priority.
  6. Unique identifierMAC address-based selection is used as a tiebreaker when all other properties are equal.

IEEE 1588-2002 uses a selection algorithm based on similar properties.

Clock properties are advertised in IEEE 1588-2002 Sync messages and in IEEE 1588-2008 Announce messages. The current leader transmits this information at regular interval. A clock that considers itself a better leader will transmit this information in order to invoke a change of leader. Once the current leader recognizes the better clock, the current leader stops transmitting Sync messages and associated clock properties (Announce messages in the case of IEEE 1588-2008) and the better clock takes over as leader. The BMCA only considers the self-declared quality of clocks and does not take network link quality into consideration.

Synchronization

Via BMCA, PTP selects a source of time for an IEEE 1588 domain and for each network segment in the domain.

Clocks determine the offset between themselves and their leader.[8] Let the variable

t

represent physical time. For a given follower device, the offset

o(t)

at time

t

is defined by:

o(t)=s(t)-m(t)

where

s(t)

represents the time measured by the follower clock at physical time

t

, and

m(t)

represents the time measured by the leader clock at physical time

t

.

The leader periodically broadcasts the current time as a message to the other clocks. Under IEEE 1588-2002 broadcasts are up to once per second. Under IEEE 1588-2008, up to 10 per second are permitted.

Each broadcast begins at time

T1

with a Sync message sent by the leader to all the clocks in the domain. A clock receiving this message takes note of the local time

T1'

when this message is received.

The leader may subsequently send a multicast Follow_Up with accurate

T1

timestamp. Not all leaders have the ability to present an accurate timestamp in the Sync message. It is only after the transmission is complete that they are able to retrieve an accurate timestamp for the Sync transmission from their network hardware. Leaders with this limitation use the Follow_Up message to convey

T1

. Leaders with PTP capabilities built into their network hardware are able to present an accurate timestamp in the Sync message and do not need to send Follow_Up messages.

In order to accurately synchronize to their leader, clocks must individually determine the network transit time of the Sync messages. The transit time is determined indirectly by measuring round-trip time from each clock to its leader. The clocks initiate an exchange with their leader designed to measure the transit time

d

. The exchange begins with a clock sending a Delay_Req message at time

T2

to the leader. The leader receives and timestamps the Delay_Req at time

T2'

and responds with a Delay_Resp message. The leader includes the timestamp

T2'

in the Delay_Resp message.

Through these exchanges a clock learns

T1

,

T1'

,

T2

and

T2'

.

If

d

is the transit time for the Sync message, and

\tilde{o}

is the constant offset between leader and follower clocks, then

T1'-T1=\tilde{o}+dandT2'-T2=-\tilde{o}+d

Combining the above two equations, we find that

\tilde{o}=

1
2

(T1'-T1-T2'+T2)

The clock now knows the offset

\tilde{o}

during this transaction and can correct itself by this amount to bring it into agreement with their leader.

One assumption is that this exchange of messages happens over a period of time so small that this offset can safely be considered constant over that period. Another assumption is that the transit time of a message going from the leader to a follower is equal to the transit time of a message going from the follower to the leader. 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.

Optional features

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]

Related initiatives

External links

Notes and References

  1. Web site: IEEE-1588 Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems, a Tutorial. National Institute of Standards and Technology (NIST) . Eidson . John . 10 October 2005.
  2. Book: Eidson , John C. . Measurement, Control and Communication Using IEEE 1588. Springer. April 2006. 978-1-84628-250-8.
  3. Web site: IEEE 1588 Standard Version 2 - A Tutorial . 2 October 2006 . John . Eidson . https://web.archive.org/web/20100331083017/http://ieee1588.nist.gov/2006%20IEEE1588%20Agenda/Eidson_1588_Version%202.pdf . 31 March 2010 . 12 June 2008 . dead.
  4. Web site: 1588-2019 - IEEE Approved Draft Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems . IEEE . 2020-02-15.
  5. Web site: What's coming In the Next Edition of IEEE 1588? . Douglas Arnold . 24 September 2017 . 2020-02-15.
  6. Web site: Meanings of common terms used in IEEE 1588 . https://web.archive.org/web/20100527161310/http://ieee1588.nist.gov/terms.htm . 27 May 2010 . National Institute of Standards and Technology . 19 May 2006 . dead.
  7. Web site: AN-1838 IEEE 1588 Boundary Clock and Transparent Clock Implementation Using the DP83640 . ti.com . Texas Instruments . 17 July 2019.
  8. [International standard]
  9. http://www.ispcs.org ISPCS website
  10. https://www.smpte.org/sites/default/files/users/user27446/AES67%20for%20Audio%20Production-Background%20Applications%20and%20Challenges.pdf
  11. Web site: PTPv2 Timing protocol in AV networks . 6 June 2017 . Q-LAN updated to PTPv2 approximately two years ago. . Luminex.