AVB简介--第二篇:gPTP简介-腾讯云开发者社区-腾讯云

gPTP时钟同步(时间同步)协议简介-CSDN博客

3. 绝对时间同步

下图包含一个主时钟(Master time)和一个从时钟(Slave time),二者时间不同步。现在要把从时钟的时间校准到主时钟的时间,其中t1、t4为主时钟对应的时间,t2、t3为从时钟对应的时间。

主要流程如下:

  1. 主时钟在t1时刻发送Sync命令,从时钟在t2时刻收到同步指令。这时候从时钟并不知道主时钟是在什么时候发出这个Sync命令的,但是知道自己是在t2时刻收到该命令的。
  2. 主时钟发送一个Follow_Up命令,该命令中携带t1的值。从时钟收到后,知道上面的Sync指令是在t1时刻发出的。此时从时钟拥有t1、t2两个值。
  3. 从时钟在t3时刻发送一个Delay_Req命令,主时钟在t4时刻收到该命令。此时从时钟知道t1、t2、t3三个值。
  4. 主时钟接着发送一个Delay_Resp响应从时钟的Delay_Req,该命令中携带t4的值。从时钟收到后,知道主时钟是在t4时刻收到的Delay_Req命令的。此时从时钟知道t1、t2、t3、t4四个值。
  5. 我们假设路径传输延时是对称的,即去程的传输延时和回程的传输延时相等。从时钟可以根据下面的公式计算路径传输延时(path_delay),以及自己与主时钟的偏差(clock_offset): t2 – t1 = path_delay + clock_offset t4 – t3 = path_delay - clock_offset 由此可以算出: path_delay = (t4 – t3 + t2 – t1) / 2 clock_offset = (t3 – t4 + t2 – t1) / 2 
  6. 假设 10  8     7   4 , path_delay = (10 -8  +  7 -4 )/2 = 2.5,  clock_offset = (8-10 + 7 - 4)/2 = 0.5
  7. 现在从时钟知道了自己与主时钟的时差clock_offset,就可以调整自己的时间了。另外,从时钟还知道自己与主时钟的路径传输延时path_delay,该值对于switch意义重大,因为在gPTP的P2P校时方式中,switch需要转发主时钟的校时信号,在转发的时候,需要将该值放在补偿信息中(后面章节会详细介绍)。

从上面的流程可以看到,传输延时path_delay的精度/稳定性会影响校时精度。而传输延时又可以划分为:各段链路传输时间总和 + 中间节点转发导致的驻留时间(缓存时间)。

4. 相对时间同步

PTP协议定义了2种消息:事件消息和通用消息。

事件消息需要在发送和接收的时候打上精确的时间戳。而通用消息不需要。

事件消息包括: Sync Delay_Req Pdelay_Req Pdelay_Resp

通用消息包括 Announce Follow_Up Delay_Resp Pdelay_Resp_Follow_Up Management Signaling

Sync, Delay_Req, Follow_Up, Delay_Resp.消息是用来产生和交互时间信息的,这些信息用来同步时间的。

Pdelay_Req, Pdelay_Resp, Pdelay_Resp_Follow_Up用来测量link延时。

Announce消息用来建立同步层次。

Management消息用来查询和设置PTP时钟的时钟数据。

Signaling消息是用来PTP时钟之间进行交互(如协商消息的周期等)

所有消息均使用TLV格式以利于扩展。

透明时钟

时间跳变.相位同步,

频率同步,

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐