1. 主节点(Master)向从节点(Slave)发送一个“同步”(Sync)报文,并将发送时间T1记入寄存器。
2. 从节点(Slave)收到这个“同步”报文,记上接收到的时间T2。
3. 主节点(Master)向从节点(Slave)发送“跟随”(Follow_Up)报文,将时间T1嵌入到“跟随”报文中。
4. 从节点向主节点发送一个“延时请求”(Delay_Req)报文,并嵌入时间戳T3。
5. 主节点收到“延时请求”报文并记住时间T4。
6. 主节点将T4嵌入“延时应答”(Delay_Resp)报文中,发送给从节点。
根据这四个时间可计算出Slave和Master之间的延时(Delay)和时间偏移(Offset):
T2-T1 = Delay + Offset
T4-T3 = Delay - Offset
平均路径时延:
平均时间偏差:
根据该Offset即可校正Slave端时钟,实现同步。