Synchronization is essential in networks (especially mobile networks) in order to ensure proper operation.
PTP is one of the synchronization types that exists in phase/time.
So What is PTP?
Precision Time Protocol (PTP) is a protocol for synchronizing clocks in computer networks. It provides precise time synchronization for systems that require it, such as mobile networks.
PTP operates over Ethernet networks and uses a hierarchical, master-slave architecture to distribute time information. A single master device on the network acts as a reference clock, and the slave devices synchronize their clocks to the master. The protocol is designed to provide accurate time synchronization, with typical accuracy in the sub-microsecond range.
PTP is specified in the IEEE 1588 standard, which provides a set of specifications for implementing time synchronization over Ethernet networks. The standard provides guidelines for implementing PTP in both hardware and software, and has been widely adopted in a variety of industries and applications.
The Precision Time Protocol (PTP) has a higher level of accuracy than the Network Time Protocol (NTP) due to its use of hardware timestamping. While NTP can synchronize clocks with an accuracy of milliseconds, PTP can achieve synchronization at the sub-microsecond level.
PTP uses Best Master Clock Algorithm
When implementing a brand-new precision timing protocol (PTP) network, you will come across the term BMCA or “Best Master Clock Algorithm” (sometimes just BMC).
The BMCA is an algorithm to help choose which clock to use as the source of timing on your network
- Master—A clock that provides time to other clocks in the network.
- Slave—A clock that receives time from other clocks in the network.
- Passive—A port that is neither a master not a slave.
How Does PTP Work?
PTPv2 uses a series of messages to synchronise the time between clocks. The master clock sends a Sync message to the slave clock and makes a note of the timestamp t1 as the message leaves.
When the slave clock receives this message, it too makes a note of when it arrived, t2. The master clock also sends a Follow_Up message to the slave that contains the value it noted for t1. The slave sends a Delay_Req message to the master and makes a note of when it was sent, t3. When the master gets this message, it makes a note of the time it was received, t4, and sends that value back to the slave in a Delay_Resp message.
The slave clock now possesses all four timestamps that can be used to compute the offset of the slave clock relative to the master, and the propagation time between the two clocks.