PTP Clock Servo Algorithm
PTP as a protocol basically gives the timestamp values based on its messages
and operation for calculating offset and drift adjustment. The problem is that the Slave clock
cannot be simply corrected by setting the free running counter to a new value. If done this
way, there would be time intermission or time back scenarios, and inaccurate synchronization.
Thus the change to the slave clock should be brought in gradually while taking several other
factors into account that affect the working of PTP:
- Packet Error (if there is an error in time stamp)
- Extended Packet Loss (an outage scenario)
- Packet Delay Variation (network load increase)
Timestamps provided by PTP are used as an input to the Servo Algorithm. This algorithm
addresses all of above mentioned network impairments (PDV being the most critical one) and
gives an output for the amount of adjustment that should be made to the local slave clock.
1588v2 Specification does not define the Servo part. The Servo Algorithm‘s goal is to achieve
zero time difference between the master and the slave, and that the frequency of the slave
clock and master clock are locked (meaning the ratio should be constant).