Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

站点精选

2025-08-19

关注星融元

站点精选

一文看懂 PTP(精确时间协议)及SONiC上的最新优化实践

2025-08-19

什么是PTP?

PTP,简写自 Precision Time Protocol(精确时间协议) 。顾名思义,PTP 用于为时间同步敏感的系统和应用程序在局域网或广域网上创造高精度时间同步的环境,往往需要通过硬件辅助才能实现。

PTP 在 IEEE 1588 标准中定义,目前已发展到的 IEEE 1588 v2 具有双向通道、纳秒级精度、广泛适应不同接入环境。

PTP 网络的基本架构如下图所示:所有时钟都会按照主从(Master-Slave)关系组织在一起,以GMC为起始点,向各节点逐级同步时钟。

需要注意的是,这种主从关系是相对而言的,因为一些设备不但会从上层设备同步时钟(此时作为从节点/时钟),也会向下层设备发布时钟(此时作为主节点/时钟)。

PTP架构图

  • Grandmaster Clock:(GMC,大师钟)最高级别的时钟,作为时钟源为整个PTP域提供参考时间。设备一般需要具有GNSS(全球导航卫星系统,例如GPS,北斗等)接收器。GMC的产生方式,可以是手工配置一个静态的,也可以通过最佳主时钟 BMC(Best Master Clock)算法动态选举。
  • Boundary Clock(BC,边界时钟):提供两个或多个物理端口参与PTP域的时间同步,其中一个端口与上游设备同步时间,其他端口将时间发送给下游设备。
  • Transparent Clock(TC,透明时钟):不与其他设备同步时间,仅在其 PTP 端口之间转发 PTP 消息并测量消息的链路延迟。
  • Ordinary Clock(OC,普通时钟):仅提供一个物理端口参与PTP域内的时间同步,通常用作网络的终端节点,连接到需要同步的终端设备。

设备上运行 PTP 协议的端口称为 PTP 端口,其中发布同步时间的端口称为“主端口(Master Port)”,接收同步时间的端口则称为“从端口(Slave Port)”。此外,也有既不接收也不发送同步时间的“被动端口”(Passive Port),它只存在于边界时钟(BC)上。

PTP 如何工作?

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

  1. 建立主从关系,选取大师时钟(GMC)、协商端口主从状态等。
  2. 频率同步(Frequency synchronization),从节点时间与主节点同步,信号之间保持恒定相位差。
  3. 相位同步(Phase synchronization),从节点时间与主节点同步,信号之间相位差恒定为零。

ptp工作流程

PTP 报文

要实现高精度时间同步,很关键的一点是让“从时钟”通过 PTP 报文中携带的时间戳信息,计算与“主时钟”之间的偏移和延时,并据此调整本地时钟来实现时间同步。

根据报文是否携带时间戳,我们可以将PTP报文分为两类:

  • 非时间概念报文,进出设备时不会打上时间戳;用于 PTP 网络系统主从关系的建立、时间信息的请求和发布,
  • 时间概念报文,进出设备端口会打上精确时间戳;PTP 网络系统会根据报文携带的时间戳计算链路延迟。该类报文包含以下四种:Sync、Delay_Req、Pdelay_Req和Pdelay_Resp

PTP的延迟测量机制

PTP 网络如何从 PTP 报文中计算得出偏移和延时信息呢?这里就必须说到延迟测量机制,主要有“端到端(E2E)”和“点对点 (P2P) ”两种。

E2E 的测量机制

E2E 机制下,中间设备(E2E TC)在转发计时消息的同时,会添加一个停留时间 (rt) ,E2E 机制使用双向消息计算总路径延迟作为时间补偿。

E2E机制

计算公式:
t₂ – t₁ = 偏移 + 延迟
t₄ – t₃ = 延迟 – 偏移
延迟 = (t₂-t₁)+(t₄-t₃)/2
偏移量 = (t₂-t₁)-(t₄-t₃)/2
T_OC_new = T_Master ± 偏移量

P2P 的测量机制

不同于 E2E 机制,P2P 的测量机制在会在每一跳交换消息以测量链路延迟,从而实时测量并纠正每跳延迟。

p2p测量机制

计算公式:
PD1 = (pt2-pt₁)+(pt₃-pt2)/2
PD2 = (pt₄-pt₁)+(pt₄-pt₃)/2
校正字段(correction field) = PD1 + rt
偏移量 = t₂ – t₁ – 校正字段 – PD2
T_OC_new = T_Master ± 偏移量
对比图

在SONiC上的PTP优化:精度从1000ns提升至20ns

LinuxPTP

在 Linux 中,PTP 协议的实现称为 Linux PTP,它基于 IEEE 1588 标准,软件包有 ptp4l 和 phc2sys。

LinuxPTP

我们基于 ptp4l 和 Linux 网卡做了测试,可以看到:同步精度分布在 1000ns(1μs)以内,并且存在 8000ns(8μs)以上的不稳定跳变。

测试

在没有额外调优工作的前提下,这样的同步精度对于个人爱好者或一般实验环境或许足够,但离企业级商用场景还远远不够。

作为参考,此处列出 ITU(国际电信联盟)提出的时间同步能力分类,

  • A类:时间误差≤50ns,适用于对同步精度要求较低的一般电信网络。
  • B类:时间误差≤20ns,适用于更严格的时间同步场景,如5G基站同步。
  • C类:时间误差≤10ns,主要用于对同步精度要求极高的场景,例如5G前传。

SONiC(AsterNOS) PTP

深入研究上述原理和机制后,我们发现 SONiC 开放架构不但能够灵活地满足各种时间同步要求,还能为广大客户提供自由选择,消除供应商锁定。

早在2024年上半年,星融元就引领社区开始着手在 SONiC 中实现 PTP ,并优化其在企业级 SONiC 发行版 AsterNOS 上的性能。

下图是 AsterNOS 内的 PTP 子系统示意图,包含一个运行 Linux PTP / ptp4l 并与 RedistDB 和底层硬件驱动程序交互的 PTP 容器。此外这套系统还支持多种网络管理协议,例如 RESTful API、RESTconf 和 Netconf,给到更优的系统集成和互操作性。

 AsterNOS 内的 PTP 子系统示意图

通过硬件加速和软件算法优化的星融元 PTP 交换机的时间同步精度分布在 20ns 以内,并且不同延迟测量模式获得的偏差结果几乎相同。

不同延迟测量模式

  • one-step:Sync 报文带报文发送时刻的时间戳
  • two-step:Sync 报文不带报文发送时刻的时间戳,只记录本报文发送时的时间,由Follow_Up报文带上该报文发送时刻的时间戳。

目前,星融元 CX-M 交换机产品已经系列化地支持了 PTP ,兼容 E2E 和 P2P 模式和多种配置文件。

兼容 E2E 和 P2P 模式和多种配置文件

园区交换机

可在设备模拟器体验 PTP 功能特性 👉vAsterNOS Campus v6.0

应用场景(广播媒体行业)

case

该图展示了一个典型广播和媒体网络拓扑,采用星融元的 PTP 交换机提供多个 PTP 域和冗余时钟源(主备切换),为音频和视频分配单独的域号,在网络中实现 20ns 时间同步精度,确保音频、视频和其他数据流量的无缝对齐。

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2