1588v2协议支持两种具体的时间同步机制:End-to-End(E2E,端到端)机制和Peer-to-Peer(P2P,点到点)机制。
这两种机制用于测量时钟之间的链路延迟,以实现时间同步。
E2E(End-to-End)机制
E2E机制实际上是直接测量两个主时钟(OC)或边界时钟(BC)之间的总链路延迟。这个链路延迟包括了两个时钟节点之间的所有中间透明时钟(TC)节点。
当E2E TC节点转发1588v2报文时,它会测量报文通过该节点的转发时延,并将这个时延信息嵌入报文中。在两个端点的OC或BC节点处,通过计算链路时延和时间偏差,可以实现时钟的同步。
E2E机制中的关键报文包括:
- Sync 报文:
- 主时钟节点周期性地发送Sync报文,用于向从时钟节点传递主时钟节点的时间信息。
- 在E2E机制中,Sync报文可以使用两种方式发送:
- One-Step 模式: Sync报文携带了本报文发送时刻的时间戳,即直接在Sync报文中包含了主时钟节点的时间信息。
- Two-Step 模式: Sync报文不携带本报文发送时刻的时间戳,而只是记录了本报文发送时的时间。实际的时间戳信息由后续的Follow_Up报文携带。
- Delay_Req 报文:
- 从时钟节点接收到Sync报文后,通过Delay_Req报文向主时钟节点请求主时钟节点的时间信息。
- Delay_Req报文携带了从时钟节点接收Sync报文的本地时间戳。
- Delay_Resp 报文:
- 主时钟节点接收到Delay_Req报文后,会回应一个Delay_Resp报文,其中包含了主时钟节点的时间戳。
- 从时钟节点通过Delay_Resp报文中的时间戳信息,计算出自身与主时钟节点之间的传输延迟。
通过以上的报文交互,从时钟节点能够获取主时钟节点的时间信息并计算出传输延迟,从而得知主时钟节点与自身时钟的时间偏差。通过调整本地时钟,从时钟节点可以逐步追赶主时钟节点,从而实现时间的同步。
💡记忆小技巧:E2E(End-to-End,端到端)机制是1588v2协议中用于主时钟节点与从时钟节点之间进行时间同步的一种机制。这个机制通过Sync、Delay_Req和Delay_Resp报文的交互,使得从时钟节点能够计算出自身与主时钟节点之间的时间偏差,并调整自身的时间以达到同步。
P2P(Peer-to-Peer)机制
P2P机制限定在仅测量两个直接相连的OC、BC或TC节点之间的逐点链路延迟。
在P2P TC节点中,不仅修正了报文的转发时延,还测量并修正了每个端口相连链路的链路时延。这有助于在两端的OC或BC节点计算时间偏差,从而实现时间同步。
P2P机制中的关键报文包括:
- Pdelay_Req 报文:
- 节点周期性地发送Pdelay_Req报文,用于向相邻节点请求链路传输的延迟信息。
- Pdelay_Req报文携带了节点接收到Sync报文的本地时间戳。
- Pdelay_Resp 报文:
- 相邻节点收到Pdelay_Req报文后,回应一个Pdelay_Resp报文,其中包含了相邻节点的时间戳。
- Pdelay_Resp报文可以使用两种方式发送:
- One-Step 模式: Pdelay_Resp报文携带了本报文发送时刻的时间戳。
- Two-Step 模式: Pdelay_Resp报文不携带本报文发送时刻的时间戳,而只是记录了本报文发送时的时间。实际的时间戳信息由后续的Pdelay_Resp_Follow_Up报文携带。
- Pdelay_Resp_Follow_Up 报文:
- 在Two-Step模式中,Pdelay_Resp_Follow_Up报文携带了Pdelay_Resp报文发送时刻的时间戳。
通过以上报文的交互,每个节点都能够计算得到与相邻节点之间的传输延迟。由于P2P机制不区分Master和Slave,所有节点都能够主动与相邻节点进行同步,从而实现整个网络的同步。
P2P机制的优势在于灵活性,适用于不同节点之间直接相连的情况。它为网络提供了一种去中心化的时间同步解决方案,适用于一些特定的拓扑结构或者应用场景。
💡记忆小技巧:P2P(Peer-to-Peer,点到点)机制是1588v2协议中的一种时间同步机制,不区分Master和Slave,所有节点都与相邻的节点进行P2P报文的交互,从而每个节点都能够计算得到与相邻节点之间的链路延迟。P2P机制通过Pdelay_Req、Pdelay_Resp和Pdelay_Resp_Follow_Up报文的交互来实现时间同步。
这两种机制的选择取决于网络的拓扑结构和要求。
E2E适用于链路包含多个中间节点的情况,而P2P适用于直连相邻节点的情况。
1588v2协议的灵活性允许根据网络结构和需求选择合适的时间同步机制。