PTP高精度时间同步的核心:E2E与P2P延迟补偿机制

为什么要区分E2E和P2P?

PTP的核心目标是让网络中的所有时钟与最精确的时钟(Grandmaster Clock)同步。为了实现纳秒级的同步精度,PTP必须计算并补偿报文在网络中传输所产生的链路延迟(Link Delay)。

E2E和P2P就是两种计算这个链路延迟的不同方法。它们的根本区别在于:延迟计算的范围和由谁来计算。

E2E (End-to-End) 端到端延迟机制

延迟是从主时钟(Master) 到从时钟(Slave) 的整条路径上测量的。它计算的是这两个端点之间的总延迟。在这种机制中,普通时钟(Ordinary Clocks) 和透明时钟(Transparent Clocks) 必须支持E2E模式。

工作原理

  1. 路径延迟测量:主时钟和从时钟之间通过 Sync、Follow_Up、Delay_Req、Delay_Resp 报文交互,计算出它们之间的总路径延迟。
  2. 透明时钟的作用:网络中的E2E透明时钟(E2E-TC) 会侦听这些PTP报文。当它们转发报文时,会测量该报文在本设备内部的停留时间(驻留时间),并将这个时间值累加到一个专门的校正字段(correctionField)中。
  3. 从时钟的计算:从时钟最终收到报文时,会从报文的 correctionField 中获取所有经过的透明时钟的驻留时间之和。然后,它使用以下公式计算偏移:Offset = [(t2 - t1) - (总路径延迟)] / 2(其中 总路径延迟 = 计算出的链路延迟 + 所有透明时钟的驻留时间之和)

P2P (Peer-to-Peer) 点对点延迟机制

延迟是在每一段相邻的链路上,由两个直接相连的P2P设备之间单独测量的。它不是计算端到端的延迟,而是计算"跳"到"跳"的延迟。在这种机制中,边界时钟(BC) 和对等透明时钟(P2P-TC) 必须支持P2P模式。

工作原理

1**. 逐段延迟测量**:网络中的每一个支持P2P的设备(如P2P-TC或BC的每个端口),都会与它的直接上游邻居和直接下游邻居使用 Pdelay_Req、Pdelay_Resp、Pdelay_Resp_Follow_Up 报文进行交互,持续测量并维护它们之间这一段链路的延迟值。

2.传播时间校正:当主时钟发出的 Sync 报文经过一个P2P设备时,该设备会做两件事:

  • a) 像E2E-TC一样,测量并累加报文在本设备的驻留时间到 correctionField。
  • b) 再加上 从本设备到上游邻居设备的那段已经测量好的链路延迟,也累加到 correctionField 中。

**3. 从时钟的计算:**从时钟最终收到的报文的 correctionField 中,已经包含了从主时钟到它自己整条路径上所有设备的驻留时间和所有链路的延迟之和。从时钟无需再单独计算路径延迟,可以直接使用这个校正值来精确计算偏移。

LinuxPTP

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

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

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

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

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

SONiC(AsterNOS) PTP

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

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

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

CX-M 交换机产品已经系列化地支持了 PTP ,兼容 E2E 和 P2P 模式。

【更多详细内容,请访问 https://asterfusion.com/

相关推荐
阿珊和她的猫10 小时前
HTTP 状态码 301 和 302 的区别与使用场景
网络·网络协议·http
深度学习040711 小时前
【网络实验】-VLAN工作原理
网络
会飞的土拨鼠呀12 小时前
通过Linux进程id找到程序路径
linux·服务器·网络
GIS数据转换器12 小时前
GIS+大模型助力安全风险精细化管理
大数据·网络·人工智能·安全·无人机
让学习成为一种生活方式13 小时前
植物中验证蛋白相互作用的Pull-down和Co-IP技术--文献精读181
网络·网络协议·tcp/ip
普普通通的南瓜13 小时前
IP证书在关键信息基础设施安全防护中的实践与挑战
网络·数据库·网络协议·tcp/ip·安全·ssl
讨厌下雨的天空15 小时前
网络基础
网络·1024程序员节
0和1的舞者15 小时前
《网络编程核心概念与 UDP Socket 组件深度解析》
java·开发语言·网络·计算机网络·udp·socket
华普微HOPERF15 小时前
Matter协议,如何赋能智能家居构建跨生态的互操作网络?
网络·智能家居
河南博为智能科技有限公司16 小时前
动环监控终端-守护变电站安全运行的智能核心
运维·服务器·网络·物联网