时间同步协议
一、(g) PTP 通用精确时间协议
在802.1AS中,时间同步是按照“域”(domain)划分的,包含多个PTP节点。在这些PTP节点中,有且仅有一个全局主节点(GrandMaster PTP Instance),其负责提供时钟信息给所有其他从节点。
PTP节点又分为两类:PTP End Instance(PTP端节点)和PTP Relay Instance(PTP转发节点)。
- PTP End Instance或者作为全局主节点,或者接收来自全局主节点的时间同步信息
- PTP Relay Instance从某一接口接收时间同步信息,修正时间同步信息后,转发到其他接口
时间同步过程
802.1AS中通过手动配置或者BMCA确立全局主节点时钟GrandMaster后,GrandMaster周期性的发送Sync和Follow_Up报文提供主时钟基准;
在实现节点同步之前,各个PTP节点通过Signaling报文协商计算NeighborRateRatio的间隔、计算MeanLinkDelay的间隔等信息;
最后,各PTP从节点利用已有的NeighborRateRatio、MeanLinkDelay以及接受到的Sync及Follow_Up报文,利用Follow_Up报文中的correctionField信息修正后,就能得出主时钟现在的时刻,从而完成时间同步。
多域冗余
![](https://keymotek.com/wp-content/uploads/2024/06/多域冗余.jpg)
多域冗余主要分为两种方式:
- 同一个全局主节点时钟被划分成多个域,每个域生成同步路径实现冗余
- 多个全局主节点时钟,每个全局主节点维护一个域并生成同步路径,多个全局主节点之间有主次之分,次全局主节点和主全局主节点进行同步
“一步”处理
![](https://keymotek.com/wp-content/uploads/2024/06/一步处理.jpg)
“一步”处理的Sync报文
“一步”处理(On the Fly)是指在发送报文的同时,将在接近物理层的发送时间戳添加到报文中直接发送出去,这样将所需要的信息放在一帧报文中,更加高效,但是需要额外的硬件支持。对于接收节点,同样需要对“一步法”报文解析的能力。
![](https://keymotek.com/wp-content/uploads/2024/06/两步处理.jpg)
“两步”处理的Sync报文
与之相对的是“两步法”,这种方法仅在Sync或Pdelay_Resp报文发送时记录发送时间戳,再把这一信息封装在Follow_Up或Pdelay_Resp_Follow_Up报文中发送,从而在不需要额外的硬件支持下获得精确的时间戳。
二、PTP 精确时间协议
PTP(Precision Time Protocol,精确时间协议)是一种IEEE 1588标准定义,用于在以太网中实现高精度的时间同步网络协议。它能够为网络中的所有设备提供一个统一的时间参考,从而确保数据的时效性和一致性。采用硬件时间戳,可以大幅减少软件处理时间,同步精度可以达到亚微秒级。此外,PTP可以运行在L2层(MAC层)和L4层(UDP层),在L2层网络运行时,可以在MAC层中直接进行报文解析,避免在UDP层处理,减少协议栈中驻留时间,进一步提高时间同步精度,十分适用于自动驾驶系统。
PTP网络由一个主时钟(Master Clock)和多个从时钟(Slave Clock)组成。主时钟通常连接到一个高精度的时间源,如GPS;从时钟则分布在网络中的各个设备上,如各类传感器。同时定义了三种时钟节点,包括普通时钟,边界时钟和透明时钟。
- 普通时钟(Ordinary Clock):基本的从时钟,只有一个PTP通信端口,只同步时间。
- 边界时钟(Boundary Clock):有多个PTP通信端口的时钟,可以接收一个时间信号并转发到另一个网络段,如交换机或路由器。
- 透明时钟(Transparent Clock):通过它的报文不需要进行任何处理,直接转发。
PTP通过在主从设备之间交互同步报文,并记录下报文发送时间,从而计算网络传输延迟和主从设备间时钟的偏差。同步报文包括:Sync、Follow_Up、Delay_Req和Delay_Resp,时间同步过程如下:
![](https://keymotek.com/wp-content/uploads/2024/06/PTP时间同步过程-1024x955.webp)
PTP时间同步过程
1)主时钟周期性的发送 Sync 报文(预计时间) → 从时钟接收 Sync 报文(时间 t2)
2)主时钟发送 Follow_Up 报文(实际发送时间 t1) → 从时钟接收 Follow_Up 报文
3)从时钟发送 Delay_Req 报文(发送时间 t3) → 主时钟接收 Delay_Req 报文(接收时间 t4)
3)主时钟发送 Delay_Resp 报文(包含时间 t4)→ 从时钟接收 Delay_Resp 报文
三、gPTP(802.1AS)和PTP(IEEE 1588)的区别
gPTP / 802.1AS | PTP / IEEE 1588 |
在OSI第2层数据链路层使用以太网帧进行通信 | 支持多种第2层和第3-4层的通信方法,比如UDP |
仅允许时间感知系统(支持802.1AS协议的系统) | 在通信路径上支持非时间感知的系统 |
需要“点对点”延迟机制 | 提供“端到端”机制可选 |
知道四种端口状态 Master、Slave、Disable和Passive | 定义了其他不同的端口状态 |
仅使用“两步”处理 | 允许“一步”和“两步”处理 |
定义了两种时间感知系统 终端设备(普通时钟)和桥接设备(边界时钟) | 普通时钟、边界时钟、端到端透明时钟和点到点透明时钟 |