一种时钟频率同步方法及装置 【技术领域】
本发明涉及通信技术领域, 尤其涉及一种时钟频率同步方法及装置。背景技术 同步以太网 (syncE) 技术是通过提取物理链路层的物理时钟信号来恢复上游时 钟频率的一种技术, 其优点是时钟恢复性能稳定, 可靠性高 ; 缺点是必须逐跳恢复, 并且要 有物理硬件支持。PTP(Precision Time Synchronization Protocol, 精确时间同步协议 ) 技术是一种包恢复时钟方法, 其优点是可以透传中间设备, 可同时支持时钟频率与相位恢 复; 缺点是恢复的性能容易受中间网络影响, 稳定性相对较差。
在通信网络设备应用中, 既可以使用 PTP 包恢复方式实现频率同步, 也可以使用 同步以太网物理链路时钟恢复技术来实现频率同步。但是在存在同步以太网的网络中, 一 般还是优先选择同步以太网技术来恢复频率, 这是因为物理链路技术传输时钟的频率高, 并且传输的噪声小 ; 而在微波等不支持同步以太网的网络中, 则可以采用包恢复技术以弥 补物理链路技术的不足。
syncE 技术组网的时钟拓扑建立是采用 G.781 给出的系统时钟选择方法来建立时 钟拓扑, 其思路是通过时钟同步信息 (SSM) 向下游传递 syncE 定义的时钟等级 QL, 下游根 据 QL 以及自身配置的优先级等信息来选择最好的时钟源 ; PTP 技术是通过最佳主时钟算法 (BMCA) 来计算时钟拓扑, 其思路是通过 announce( 通告 ) 报文传递 PTP 协议定义的优先级、 时钟等级、 跳数等信息, 以供下游选择出最好的源同步。
但是, 目前还没有相应的规范来约定当上述两种技术混合应用时, 如何实现对接, 以及如何规范网络拓扑建立的规则。因此, 应如何完成 syncE 与 PTP 两种时钟技术对接, 以 及完成时钟拓扑结构的建立, 是现有技术需要解决的问题。
发明内容
本发明解决的技术问题是提供一种时钟频率同步方法及装置, 能够实现 syncE 与 PTP 两种时钟技术对接, 完成时钟拓扑建立。
为解决上述技术问题, 本发明提供了一种时钟频率同步方法, 所述方法包括 :
建立精确时间同步协议 (PTP) 与同步以太网 (SyncE) 的时钟等级 (QL) 之间的映 射关系 ;
作为从时钟的 PTP 时钟恢复出时钟频率、 锁定上游主 PTP 时钟源时, 根据所述映射 关系提取出映射后的 QL 等级, 并将此 PTP 包恢复线路作为线路时钟输送给系统时钟以选择 最优源。
进一步地, 所述映射关系具体为 : PTP 报文的时钟性能质量等级 (Clockclass) 字 段与 QL 的映射关系。
进一步地, 所述方法还包括 :
确定所述 PTP 包恢复线路两端 PTP 的端口状态 :强制确定主 (master) 端口与从 (slave) 端口状态 ; 或者,
依次比较 Clockclass、 PTP 协议配置的优先级 1、 PTP 协议收发包的端口号, 选择出 本端口中最好的一个外部源 ; 并将所述最好的外部源依次与本端口的本地时钟等级、 本地 优先级 1、 本地端口号进行比较, 如果本地较好, 则确定本地为 master 状态, 否则, 确定本地 为 slave 状态。
进一步地, 所述方法还包括以下环路检测 :
当 本 时 钟 设 备 选 择 PTP 线 路 时 钟 源 时, 将 上 游 的 时 钟 源 GM 信 息 放 在 通 告 (announce) 报文中, 并将跳数加 1 ;
当本时钟设备锁定 SyncE 线路时钟源时, 将自身数据当作祖母时钟 (GM) 信息放在 announce 报文中, 对于接收到的 GM 数据为自身数据的 announce 报文进行丢弃, 且不恢复该 PTP 线路时钟。
进一步地, 所述方法还包括 :
当最优源设备的 QL 等级发生变化时, 将此 QL 等级变化信息通知下游。
进一步地, 每个时钟设备具有一个或多个 slave 状态 ; 其中所述多个 slave 状态对 应于同一个或不同 PTP 包恢复线路的 master。
本发明还提供了一种时钟频率同步装置, 应用于 PTP 与 SyncE 混合组网, 所述装置 包括 :
Master-slave 状态确立模块, 用于确定 PTP 包恢复线路两端的端口状态 ;
PTP 告警检测模块, 用于检测 PTP 包恢复线路是否锁定上游主 PTP 时钟源 ;
QL 与 Clockclass 映射模块, 用于建立 PTP 与 SyncE 的 QL 之间的映射关系 ; 以及, 在作为从时钟的 PTP 时钟恢复出时钟频率、 锁定上游主 PTP 时钟源时, 根据所述映射关系提 取出映射后的 QL, 并将此 PTP 包恢复线路作为线路时钟输送给系统时钟以选择最优源。
进一步地, 所述 Master-slave 状态确立模块用于, 按照以下方式确定所述 PTP 包 恢复线路两端 PTP 的端口状态 :
强制确定主 (master) 端口与从 (slave) 端口状态 ; 或者,
依次比较 Clockclass、 PTP 协议配置的优先级 1、 PTP 协议收发包的端口号, 选择出 本端口中最好的一个外部源 ; 并将所述最好的外部源依次与本端口的本地时钟等级、 本地 优先级 1、 本地端口号进行比较, 如果本地较好, 则确定本地为 master 状态, 否则, 确定本地 为 slave 状态。
进一步地, 所述装置还包括环路检测模块, 所述环路检测模块用于进行以下环路 检测 :
当 本 时 钟 设 备 选 择 PTP 线 路 时 钟 源 时, 将 上 游 的 时 钟 源 GM 信 息 放 在 通 告 (announce) 报文中, 并将跳数加 1 ;
当本时钟设备锁定 SyncE 线路时钟源时, 将自身数据当作祖母时钟 (GM) 信息放在 announce 报文中, 对于接收到的 GM 数据为自身数据的 announce 报文进行丢弃, 且不恢复该 PTP 线路时钟。
进一步地, 所述装置包括至少一个 master 模块, 和至少一个 slave 模块,
其中, 所述 master 模块用于向外发送时钟 ; 以及, 当本时钟设备作为最优源设备 时, 如果 QL 等级发生变化, 则将此 QL 等级变化信息通知下游 ;所述 slave 模块用于向内接收时钟。
与现有技术相比较, 本发明具有如下有益效果 : 完成了 syncE 与 PTP 两种时钟技 术对接, 对 PTP 包恢复时钟进行 syncE 模式相互映射, 并给出 PTP 时钟的告警与主从模型设 计, 采用 syncE 的系统时钟选择方法统一管理拓扑结构, 完成时钟拓扑建立。 附图说明
此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。在附图中 :
图 1 为本发明实施例的时钟频率同步装置的组成模块示意图 ;
图 2 为纯 PTP 网络时钟设备组网的示意图 ;
图 3 为 syncE 与 PTP 混合组网的示意图。 具体实施方式
本实施方式提供一种时钟频率同步方法, 具体采用以下技术方案 :
实现 PTP 报文与 syncE 协议 QL 等级的映射 ; 实现 PTP 恢复频率检测 ; 实现 PTP 协 议部分 slave 端口与 master 端口状态确立。 具体说明如下 :
1) 全网采用 syncE 的主时钟选择算法来统一管理时钟网络 : 将 PTP 包恢复时钟作 为一种线路时钟, 与其他物理链路恢复方式一样参加系统时钟选择 ; PTP 包恢复时钟需提 供恢复时钟的 QL 等级, 遵循 syncE 的主时钟选择算法的选择原则, 以及, 提供时钟告警信 息, 手工配置各个 PTP 包恢复时钟的本地优先级, 等。
2) 实现 PTP 报文与 SSM 消息 QL 等级的映射 : 将 QL 等级映射到 announce 报文中 的 clockclass 字段。
具体地, 按照 1588v2 协议的约定, 当 clockclass 小于 128 时, 设备不用再恢复 PTP 时钟, 而 G.8265.1 给出的映射规则是采用的 80-110 范围, 不满足拓扑自动建立与倒换的需 求, 因此, 本实施方式中采用 133-170 这部分的扩展范围字段, 下表 1 给出一种映射关系的 具体示例, 但不限于表 1 中所示的映射规则, 只要映射区间在 133-170 范围内都可以。
表1
3) 实现 PTP 恢复频率检测 : 只有当 PTP 作为 slave 端, 并且正常恢复出频率 ( 即 本地 slave 端 PTP 恢复出的频率锁定了上游的 master PTP 源 ) 时, 此 PTP 包恢复线路才可 用, 置告警清除 ; 否则, 置此 PTP 包恢复线路存在告警, 不能参加系统时钟选择。
其原因在于, 对于物理链路恢复技术, 时钟恢复是快速并且可靠的, 当协议解析出 SSM 消息里传输的 QL 时, 物理链路层已经把外部时钟恢复成物理时钟信号送入系统时钟 选择模块供系统时钟选用。但对于 PTP 包恢复技术, 要把一系列报文转换为时钟信号需要 较长时间的滤波与累积一定数量报文来仿真出物理时钟信号, 这一过程是缓慢的, 与物理 链路时钟恢复方式在时间量度上不在一个数量级上, 并且在恢复过程中的时钟信号是不稳 定、 不可用的, 因此, 不能把这一时刻的 PTP 模块输出的恢复时钟直接给系统时钟。
4) 实现 PTP 协议部分 slave 端口与 master 端口状态确立 : 由于物理链路时钟恢 复计算可以双向同时发送时钟, 并且不占用带宽信息 ; 而 PTP 包恢复技术中, 只能由 master 段向 slave 端传输频率, 并且频率传输要占用一定带宽, 因此, 在设计 PTP 传输频率的时钟 时, 需要先确立一条时钟链路传递的方向, 即一个链路两端 PTP 的端口状态。
具体有如下两种端口状态确定方案 :
(1) 强制确定 master 与 slave ;
(2) 自动比较生成 master 与 slave : 例如, 比较顺序为 clockclass > priority1 > portid, 其中 clockclass 是 PTP 协议中定义的代表时钟性能的质量等级 ; priority1 是
PTP 协议本身配置的优先级 1 ; portid 是 PTP 协议收发包的端口 id。加入 priority1 到 比较项是为了通过手工配置来确定时钟传递方向, 即接收外边 announce 报文, 当报文中的 clockclass 字段值不在映射表中, 报文丢弃。然后按照 clockclass、 priority1、 portid 顺 序选择此 PTP 端口中最好的一个外部源 Erbest, 并将这个最好的外部源 Erbest 依次与本端 口的属性本地时钟等级 (localclockclass)、 本地优先级 1(localpriority1)、 本地端口号 (localportid) 进行比较, 当本地比外部好时, 本地为 master, 否则本地为 slave。
5) 在上述确定端口状态的过程中, 还需采用以下环路避免策略 : 保留 announce 消 息中的时钟源 GM(Grandmaster, 祖母时钟 ) 信息与跳数字段的意义, 用于避免环路纯 PTP 组网环路, 规则如下 : 当本设备选择 PTP 线路时钟源时, 将上游源的时钟源 GM 信息放到 announce 报文里, 并且跳数加 1 ; 当设备锁定 syncE 线路源时, PTP 发送的信息将本身数据 当作 GM 信息放到 announce 报文中, 如果设备接收到 GM 数据为本身的 announce 报文, 则将 该报文丢弃, 不恢复该 PTP 线路时钟。
6) 一个设备可以有多个 slave 状态共存, 多个 slave 状态对应于同一个或不同 PTP 包恢复线路的 master。即, 可以有多路 PTP 包恢复的时钟输送给系统时钟, 具体多少路 受控于设备能恢复出来的线路条目。 在 1588v2 协议中, slave 端口只能有一个, 其设计是建立在 ptp 线路全部正常的 情况下, 因而设备不检测具体 ptp 链路的性能。而本发明中, 经过上述的告警环节完成可靠 检测后, 需要接收处可以同时支持多路输入检测, 即存在多个 slave 端口, 这样可以实现多 路 ptp 线路同时输入, 保证了系统时钟能够及时切换到一个可能的时钟源。
7) 优选的, 还可以加入 syncE 链路恢复时钟优于 PTP 包恢复时钟的选项, 当开启该 选项时, 对于相同 QL 的时钟输入, 优先选择 syncE 信号。
为使本发明的目的、 技术方案和优点更加清楚明白, 下文中将结合附图对本发明 的实施例进行详细说明。 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中 的特征可以相互任意组合。
图 1 示出了本发明实施例的时钟频率同步装置的功能模块示意图。如图 1 所示, 主要包括以下功能模块 :
环路检测模块, 用于根据环路报文完成环路检测以及环路报文的丢弃 ;
master-slave 状态确定模块, 用于完成 PTP 端口状态的确立, 其中 master 状态负 责向外发送时钟, slave 状态负责向内接收时钟 ;
PTP-slaveXX 时钟是用于时钟频率恢复的 PTP 线路 ;
PTP 告警检测模块, 用于查看此路 PTP 线路是否能锁定上游时钟 ;
QL 与 classclock 映射模块, 用于完成此路时钟的 QL 提取, 即将 PTP 报文中的 clockclass 字段映射为 QL, 最后将一个没有告警的 PTP 时钟输送给选择模块进行选择。
syncE 硬件告警模块, 用于检测时钟有效性 ;
QL 检测模块, 用于提取 QL 信息, 并将 syncE 线路时钟输送给选择模块进行最优源 的选择。
如图 1 右边所示, 是标准的 syncE 提取过程, 先经过 syncE 硬件告警模块检测时钟 有效性, 再通过 QL 检测模块提取 QL 信息, 最后将一个 syncE 线路时钟输送给选择模块进行 选择。
其中, 所述的选择模块至少包括 syncE 最优系统时钟算法模块, 用于选择出本系 统的系统时钟, PTP-masterXX 将系统时钟向下游传递。该过程具体描述如下 : master 将系 统时钟的 QL 按照表 1 的映射表映射为相应的 clockclass 值 ; 添到 master 发送的 announce 报文的 clockclass 字段 ; 如果系统时钟选择的是 PTP 线路时钟 ; 则需要将该 PTP 线路时钟 的 GM 信息填充到 master 发送的 announce 报文中, 并且将跳数值 +1 ; 如果系统时钟选择其 他 syncE 时钟, 则 master 发送 announce 报文的 GM 信息添加本设备的时钟信息。
可选的, 还可以包括 SyncE 线路 ( 也称链路 ) 优先选择模块, 用于开启 syncE 优先 选择的选项, 即 syncE 链路恢复时钟优于 PTP 包恢复时钟的选项, 当开启时, 对于相同 QL 的 时钟输入, 优先选择 syncE 信号。
如图 2 所示, 设备 A, B, C 三台设备均为 PTP 设备。设定各个设备的 QL 等级都为 QL-SEC( 设备的 QL 等级是按照设备的时钟晶振来设计的 ; 一般网络中间的时钟等级设计为 QL-SEC), 则映射为 clockclass 为 164。 假定 A 设备 priority1 = 3 ; B 设备 priority1 = 2, C 设备 priority1 = 1, 则按照 clockclass > priority1 > portid 的选择规则, 端口状态应 该为 : A 与 B 相连的端口 ptp_port_A1 为 slave ; B 与 A 相连的端口 ptp_port_B1 为 master ; B 与 C 相连的端口 ptp_port_B2 为 slave ; C 与 B 相连的端口 ptp_port_C1 为 master。
当配置 A, B, C3 个设备的各个 PTP 端口参加系统时钟选择时, 最终的锁定关系是 : A 锁 B, B锁C;
此后, 如果给 A 设备接入标准时钟接口, 且假定此标准时钟接口传来的时钟的 QL 等级为 QL-PRC, 则此时应当是 A 设备为最好的时钟源。当配置标准时钟接口参加系统时钟 选择时, A 设备会将标准时钟接口与 PTP 的包恢复时钟一起送入 syncE 最优系统时钟选择 模块, 选择结果为 A 设备同步于外接的标准时钟接口 ; 此时, A 向下游传递的 QL 等级也变为 QL-PRC, 则 A 设备的 clockclass 数值变为 144。比较以后 A 与 B 相连的端口 ptp_port_A1 状态改变为 master ; B 与 A 相连的端口 ptp_port_B1 变为 slave。此时如果设备 B 在硬件 上设计了 2 个 1588 恢复环节, 则可以将 ptp_port_B1 与 ptp_port_B2 都作为 slave 用于恢 复时钟 ; 如果设备 B 只设计一个恢复环节, 则需对 ptp_port_B1 与 ptp_port_B2 再进行比 较, 确定用 ptp_port_B1 恢复时钟, 此时 ptp_port_B2 恢复的 1588 时钟会掐断, B 设备切换 到 holdover( 保持 ) 状态。当设备 B 锁定 ptp_port_B1 恢复的时钟后, ptp_port_B1 恢复 的 1588 时钟就会消除告警, B 设备的系统时钟也会选择 ptp_port_B1 恢复的 1588 时钟 ; 则 此时设备 B 向下游通告的 QL 等级变为 QL-PRC, 则 ptp_port_B2 口的 clockclass 变为 144, ptp_port_B2 端口状态变为 master ; C 设备的 ptp_port_C1 端口变为 slave ; 当 ptp_port_ C1 锁定此 ptp 包恢复时钟时, 设备 C 锁定设备 B。
如图 3 所示, 设备 A, B, C、 D 分别为时钟设备, 其中 B、 C 间通过 PTP 相连, 其他设备 间通过 syncE 相连。假定 D 锁定主外部输入源, A 上挂接备用输入源, 其中主输入源的 QL 等 级高于备输入源的 QL, 则, 按照 syncE 最优系统时钟选择算法, 可以推出网络稳定以后的组 网拓扑为设备 A 锁定设备 B, 设备 B 锁定设备 C, 设备 C 锁定设备 D。
如果抽去 D 设备的输入源, 则设备 D 会将 QL 下降的信息通过 SSM 消息通告给设备 C, 设备 C 再通告给设备 B, 设备 B 通告给设备 A。
设备 A 会转而去备用源, 设备 B 锁设备 A, 当设备 C 能恢复出设备 B 的 1588 源时, 设备 C 锁定设备 B, 设备 D 锁定设备 C, 从而完成链路倒换。可见, 当链路中穿插了 PTP 恢复的技术后, 网络拓扑的传播不像 syncE 那样迅速, 每个设备只有正常恢复以后, 才会向下游传递 ; 这样实现可以防止 PTP 恢复过程中的噪声 向本设备及下游扩散 ; 而下游设备可以通过 holdover 或者锁定其他时钟来进行过渡。
以上仅为本发明的优选实施案例而已, 并不用于限制本发明, 本发明还可有其他 多种实施例, 在不背离本发明精神及其实质的情况下, 熟悉本领域的技术人员可根据本发 明做出各种相应的改变和变形, 但这些相应的改变和变形都应属于本发明所附的权利要求 的保护范围。
显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所组成 的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以将它们存储 在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处的顺序执行所示 出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软件结合。