分享

关于精确时间协议你需要知道的一些知识?

 通信百科 2023-10-23 发布于陕西

在网络中可以使用几种时间同步机制。最常见的标准是网络时间协议 (NTP)和精确时间协议 (PTP)。


NTP(Network TimeProtocol,网络时间)是由美国德拉瓦大学的David L. Mills教授于1985年提出,由时间协议、ICMP时间戳消息及IP时间戳选项发 展而来,主要是为了实现亚毫秒范围内的精度而开发的,并被广泛用于网络计时。

但由于 NTP 是是基于无连接的IP协议和UDP协议的应用层协议,即基于软件时间戳 ,达到以毫秒精度同步时钟,因此对于某些需要高级同步的工业应用来说,精度度可能达不在要求。因此为了满足更高精确时钟需求,出现了精确时间协议 (PTP)。

什么是 PTP?

精确时间协议 (PTP) 是一种基于网络的时间同步标准,旨在通过基于数据包的网络从时钟源分配精确的时间和频率。PTP使用硬件时间戳,并考虑了同步时间时的设备延迟。因此,PTP可以使交换机和路由器能够以比 NTP 更高的精度提供同步。

PTP也称为IEEE 1588。1588分为1588v1和1588v2两个版本,1588v1只能达到亚毫秒级的时间同步精度,而1588v2可以达到亚微秒级同步精度。注意:后文我们说PTP一般指1588v2。2020年6月正式发布了 IEEE1588-2019 D2.1版本。据了解,1588v3应该还没有。


PTP 时钟类型

PTP主要支持如下几种时钟类型:普通时钟(Ordinary Clock,OC),边界时钟(Boundary Clock, BC),透明时钟(Transparent Clock,TC)。其中 透明时钟又可分为E2E(End to End)透明时钟,也叫E2E-TC;以及P2P(Pear to Pear)透明时钟,也叫P2P-TC。时钟类型如下图所示。

  • 边界时钟BC (Boundary Clock):一种网络设备,它作为其主设备的从设备和作为其从设备的主设备。 
  • 普通时钟 OC(Ordinary Clock):作为主时钟或从时钟运行的时钟。在从属的情况下,时钟被同步的端点(通常是主机/服务器)。
  • 透明时钟TC(Transparent Clock):计算PTP事件报文的停留时间并在转发消息之前更新事件消息的校正字段(CF)的设备。端口不处于任何特定状态。

同时,在PTP中还包括了最高级时钟GMC(Grandmaster Clock)和主时钟 MC(Master Clock)。GMC是来源于精确时钟的参考时间源,例如 GNSS 驱动时钟(即 GPS、GLONASS、GALILEO)等。而MC作为主时钟运行的时钟,其时序能力从时钟链一直到 GMC。它通常用作 BC 上的端口,连接到作为从属运行的主机。

边界时钟 (BC) 在连接到主时钟的端口上充当辅助时钟,并将时间分配给所有其他下游设备。辅助端口从上游 PTP 设备同步时间。透明时钟 (TC) 在更新 PTP 事件消息的驻留时间后转发 PTP 消息。

上图是各个时钟类型在PTP域中的位置。在整个PTP网络中,所有时钟都会按照主从(Master-Slave)层次关系组织在一起,各节点逐级同步时钟,最终完成与系统的最优时钟Grandmaster的同步


PTP 时间戳TimeStamp

主时钟提供同步消息,从时钟用于校正其本地时钟。在主时钟和从时钟上捕获精确的时间戳。这些时间戳用于确定将 Slave 同步到 Master 所需的网络延迟。通常每两秒钟从 Master 发送一条同步消息,从 Slave 发送一条延迟请求消息的频率较低,大约每分钟一个请求。在主时钟和从时钟之间捕获四个时间戳。Slave偏移量计算需要时间戳。时间戳通常称为 T1、T2、T3 和 T4。
我们必须计算两条延迟路径:Master-Slave 和 Slave - Master。

首先:找到Master到Slave的差异:

第一个时间戳是T1,是来自 Master 的同步消息的精确时间。该时间戳在后续消息中发送,因为在以太网端口上传输同步消息时采样了 T1 的时间。第二个时间戳是 T2。它是从设备接收到的同步消息的准确时间。

一旦 T1 和 T2 在 Slave 上可用,就可以计算 Master-Slave 的差异:
Master-Slave = T2 – T1

其次:找出Slave到Master的差异:

第三个时间戳是T3,是
来自从站的延迟请求消息的准确时间。第四个时间戳是 T4,它是在 Master 收到延迟请求消息的准确时间。一旦 T3 和 T4 在从站可用,就可以计算Slave - Master的差异:
Slave - Master = T4 – T3

一旦在从站获得Master-Slave 和 Slave - Master的差异,就可以计算单向延迟:
单向延迟 = (Master - Slave 差异 + Slave - Master 差异) / 2

偏移量Offset用于校正从时钟:
Offset= 主从差异 – 单向延迟
Offset = ((T2 - T1) - (T4 - T3)) / 2

PTP的基本原理和NTP相同。NTP 协议运行在应用层,测量出来的时间差除了在实际物理网络上的时间,还包括软件系统的处理时间。而PTP报文是在物理芯片上打时间戳,而不是在上层网络,这样能最大程度上保证时间戳的准确。因此,与传统的应用层协议NTP相比,PTP的精度更高。

PTP同步实现机制

接口方式

PTP时间同步的实现可以分为带内(1588协议接口)和带外(1PPS+ToD接口)两种接口。

  • 带外(1PPS+ToD接口)接口。
  • 带内(1588协议接口,以太网业务接口)接口通过交换1588报文,并实现1588协议栈。

其中:

  • 1pps:秒脉冲信息,脉冲的上升沿标记一秒的开始;

  • ToD:绝对时间信息;按照GPS时钟格式表示,记时起点是1980年1月1日00:00:00;ToD消息分为时间信息消息和时间状态消息两种。ToD帧格式如下图所示。


PTP 报文


该协议定义了事件报文和通用报文。事件报文是定时消息,其中在发送和接收时间都生成准确的时间戳。通用报文不需要准确的时间戳。

事件报文:在离开和到达一台设备时必须打时标(记录本地时间)

(1) Sync 

(2) Delay_Req 

(3) Pdelay_Req 

(4) Pdelay_Resp 

通用报文(General 报文):不需要打时间戳

(1) Announce 

(2) Follow_Up 

(3) Delay_Resp 

(4) Pdelay_Resp_Follow_Up 

(5) Management (可选,本规范暂不作规定具体报文内容) 

(6) Signaling (可选,本规范暂不作规定具体报文内容) 

BMC算法

最优时间源算法BMC(Best Master Clock )是1588时间同步的应用层技术,能够自动选择时间同步网中的最优时间源,自动选择同步路径,在时间源故障和链路故障时,自动实现时间源和同步路径的切换。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多