【时间同步】PTP基本原理

同步的概念

在现代通信网络中,大多数电信业务的正常运行要求全网设备之间的频率或时间差异保持在合理的误差水平内,即网络时钟同步。

网络时钟同步包括频率同步和相位同步两个概念。

  • 频率同步

    频率同步(Frequency synchronization),是指信号之间的频率或相位上保持某种严格的特定关系,信号在其相对应的有效瞬间以同一速率出现,以维持通信网络中所有的设备以相同的速率运行,即信号之间保持恒定相位差。

  • 相位同步

    相位同步(Phase synchronization),也称为时间同步,是指信号之间的频率和相位都保持一致,即信号之间相位差恒定为零。

为防止概念混淆,下文中时间同步统一表示相位同步时钟同步表示同时进行相位同步和频率同步

时间同步与频率同步示意图

时钟同步原理

应用网络时钟同步的网络,称为时钟同步网。时钟同步网的结构如下图所示。时钟同步网分为两级,其中一级节点采用1级时钟同步设备,二级节点采用2级时钟同步设备,二级节点以下是客户端设备,即需要时钟同步的设备。

客户端时间同步链路是时钟同步网节点至客户端的时钟同步链路,因为这段链路需进行包括以太时钟同步、NTP在内的多种同步方式,它包括NTP传送方式在内的各种传输链路。节点时钟同步链路是时钟同步网节点之间的时钟同步链路,它包括除NTP传送方式以外的各种传输链路,主要采用DCLS(DC Level Shifter,是IRIG-B码的另一种传输码形,用直流电位来携带码元信息,比较适用于双绞线局内传输)传送方式的专线链路。

整个PTP网络中,所有时钟都会按照主从(Master-Slave)层次关系组织在一起,系统的最优时钟Grandmaster向各节点逐级同步时钟。整个同步的过程是通过交换PTP报文来完成的。从时钟通过PTP报文中携带的时间戳信息计算与主时钟之间的偏移和延时,据此调整本地时钟达到与主时钟的同步。

分级时钟同步网

PTP基本概念

  • PTP域

    应用了PTP协议的网络称为PTP域。网络中可能含有多个PTP域,PTP域是独立PTP时钟同步系统,一个PTP域内有且只有一个时钟源,域内的所有设备都与该时钟源保持同步。

  • 1588v2时钟节点

    PTP域中的节点称为时钟节点,PTP协议定义了以下三种类型的基本时钟节点:
    • 普通时钟OC(Ordinary Clock):同一个PTP域内,只存在单个物理端口参与PTP时间同步。设备通过该端口从上游节点同步时间,或者向下游节点发布时间。
    • 边界时钟BC(Boundary Clock):同一个PTP域内,可以存在两个或两个以上物理端口参与PTP时间同步。其中一个端口从上游设备同步时间,其余多个端口向下游设备发布时间。此外,当时钟节点作为时钟源,同时通过多个PTP端口向下游时钟节点发布时间,也称其为BC。
    • 透明时钟TC(Transparent Clock):TC与BC、OC最大的不同是BC和OC都要保持本设备与其他设备的时间同步,但TC则不需要与其他设备保持时间同步。TC有多个PTP端口,它只是在这些PTP端口之间转发PTP报文,对其进行转发时延校正,并不从任何一个端口同步时间。
  • 设备支持的1588v2时钟类型
    • 普通时钟OC(Ordinary Clock)
    • 边界时钟BC(Boundary Clock)
    • Delay机制透明时钟E2ETC(End to End Transparent Clock):一种延迟测量机制已经确定为Delay方式的透明时钟,使用时,不需要再配置设备的延迟测量机制类型。
    • Pdelay机制透明时钟P2PTC(Peer to Peer Transparent Clock):一种延迟测量机制已经确定为Pdelay方式的透明时钟,使用时,不需要再配置设备的延迟测量机制类型。
    • Delay机制透明时钟和普通时钟E2ETCOC:一种特殊的TC节点,其在时间同步方面和TC节点相同,但额外增加了根据PTP报文同步频率,实现与上游节点频率同步的功能。其中用作TC功能的端口使用Delay方式的延迟测量机制。
    • Pdelay机制透明时钟和普通时钟P2PTCOC:同上,其中用作TC功能的端口使用Pdelay方式的延迟测量机制。
    • 透明边界时钟TCandBC:设备的部分PTP端口用作BC的功能,同步其他时钟,或向其他设备同步时钟,另有部分PTP端口用作TC的功能,仅传输PTP报文,不进行延迟计算。
  • G.8275.1时钟节点

    G.8275.1支持的时钟节点为:
    • T-GM(Telecom Grandmaster,电信级主时钟):只能为主时钟,可以有一个或者多个PTP端口,但不能跟踪其他的PTP时钟源。
    • T-BC(Telecom Boundary Clock,电信级边界时钟):边界时钟,可以为主时钟,也可以跟踪其他的PTP时钟。
    • T-TSC(Telecom Time Slave Clock,电信级从时钟):只能为从时钟,不能作为主时钟。
  • 设备支持的G.8275.1时钟类型:T-BC(Telecom Boundary Clock,电信级边界时钟)
  • PTP端口

    设备上运行了PTP协议的端口称为PTP端口,PTP端口的按角色可分为以下三种。
    • 主端口(Master Port):发布同步时间的端口,可存在于T-BC、BC或OC上。
    • 从端口(Slave Port):接收同步时间的端口,可存在于T-BC、BC或OC上。
    • 被动端口(Passive Port):不接收同步时间,也不对外发布同步时间,闲置备用的端口,只存在于T-BC或BC上。
  • 主从关系

    PTP域的节点设备按照一定的主从关系(Master-Slave)进行时钟同步。主从关系是相对而言的,同步时钟的节点设备称为从节点,发布时钟的节点设备称为主节点,一台设备可能同时从上层节点设备同步时钟,然后向下层节点设备发布时钟。

    对于相互同步的一对时钟节点来说,存在如下主从关系:

    • 发布同步时间的节点称为主节点,而接收同步时间的节点则称为从节点。
    • 主节点上的时钟称为主时钟,而从节点上的时钟则称为从时钟。
    • 发布同步时间的端口称为主端口,而接收同步时间的端口则称为从端口。
  • 最优时钟

    PTP域中所有的时钟节点都按一定层次组织在一起,整个域的参考时钟就是最优时钟GMC(Grandmaster Clock),即最高层次的时钟。通过各时钟节点间PTP报文的交互,最优时钟的时间最终将被同步到整个PTP域中,因此也称其为时钟源。最优时钟可以通过手工配置静态指定,也可以通过最佳主时钟BMC(Best Master Clock)算法动态选举。

  • PTP报文

    PTP通过主从节点间交互报文,实现主从关系的建立、时间和频率同步。根据报文是否携带时间戳,可以将PTP报文分为两类,事件报文和通用报文。
    • 事件报文:时间概念报文,进出设备端口时打上精确的时间戳,PTP根据事件报文携带的时间戳,计算链路延迟。事件报文包含以下4种:Sync、Delay_Req、Pdelay_Req和Pdelay_Resp。
    • 通用报文:非时间概念报文,进出设备不会产生时间戳,用于主从关系的建立、时间信息的请求和通告。通用报文包含以下6种:Announce、Follow_Up、Delay_Resp、Pdelay_Resp_Follow_Up、Management和Signaling,目前设备不支持Management、Signaling报文。
报文1588v2G.8275.1报文作用
Sync支持支持Master端发送到Slave端,携带Master端打的t1时间戳。
Sync发送方式可以分为单步方式/双步方式(one-step/two-step):
  • one-step:Sync报文带有本报文发送时刻的时间戳。
  • two-step:Sync报文并不带有本报文发送时刻的时间戳,而是只记录本报文发送时的时间,由后续报文(Follow_Up)带上该报文发送时刻的时间戳。
Delay_Req支持支持Delay时间同步方式,Slave端发送到Master端,携带Slave端打的t3时间戳。
Pdelay_Req支持不支持Peer Delay时间同步方式,Slave端发送到Master端,携带Slave端打的t3时间戳。
Pdelay_Resp支持不支持Peer Delay时间同步方式,Master端发送到Slave端,携带Master端打的t4时间戳和请求的端口ID。
Announce支持支持用于时钟节点之间交换时间源信息,以确定主从结构。
Follow_Up支持支持Delay时间同步方式,在双步(two-way)模式下出现,从Master端到Slave端发送Sync报文后会再发送一个Follow_up报文,携带Master端打的t1时间戳。
Delay_Resp支持支持Delay时间同步方式,Master端发送到Slave端,携带Master端打的t4时间戳和请求的端口ID。
Pdelay_Resp_Follow_Up支持不支持Peer Delay时间同步方式,在双步(two-way)模式下出现,从Master端到Slave端发送Sync报文后会再发送一个Follow_up报文,携带Master端打的t1时间戳。
Management支持不支持交换机暂时不支持该报文。
Signaling支持不支持

报文封装方式

1588v2报文封装方式

1588v2报文可以封装在二层和三层报文中进行传输。根据1588v2报文传输所采用的链路类型不同,1588v2报文可分为MAC封装和UDP封装。
  • MAC封装

    1588v2报文在二层链路上传输时,选择此封装模式,对应的以太网类型Ethernet Type为0x88F7。此时可以设置1588v2报文封装时携带的VLAN ID和802.1p优先级。

不带Tag的MAC封装报文
带Tag的MAC封装报文
  • UDP封装

1588v2报文在三层链路上传输时,选择此封装模式,对应的目的UDP端口号为319(非Announce报文)或者320(Announce报文)。此时可以设置1588v2报文封装时携带的VLAN ID、802.1p优先级和DSCP优先级。

不带Tag的UDP封装报文
带Tag的UDP封装报文

G.8275.1报文封装方式

G.8275.1协议定义的报文封装方式为二层组播(不带tag),对应的以太网类型Ethernet Type为0x88F7,组播目的MAC有两种:不可转发组播MAC(0180-C200-000E)和可转发组播MAC(011B-1900-0000)。

不带Tag的二层组播封装报文

时钟同步步骤

时钟同步的实现主要包括3个步骤:

  1. 建立主从关系,选取最优时钟、协商端口主从状态等。

  2. 频率同步,实现从节点频率与主节点同步。

  3. 时间同步,实现从节点时间与主节点同步。

与其他时钟同步协议的比较

时钟协议是否支持频率同步是否支持时间同步时间同步精度信号传输方式
NTP毫秒级通过NTP协议报文传输时间信号。
以太时钟同步通过物理层的串行数据码流传输时钟信号,不影响上层业务和CPU性能。
PTP亚微秒级通过PTP协议报文传输时钟和时间信号,通过硬件辅助达到更高的时间精度。