Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 20 章 使用 ptp4l 配置 PTP

20.1. PTP 简介

预告时间协议 (PTP)是一个用于同步网络中时钟的协议。与硬件支持配合使用时,P TP 可以采用次微秒精确度,这比 NTP 可获得的要好得多。PTP 支持在内核和用户空间间划分。Red Hat Enterprise Linux 中的内核包括对 PTP 时钟的支持,这些时钟由网络驱动程序提供。协议的实际实施称为 linuxptp,根据适用于 Linux 的 IEEE 标准 1588 实现 PTPv2

linuxptp 软件包包括用于时钟同步的 ptp4lphc2sys 程序。ptp4l 程序实现 PTP 边界时钟和普通时钟。使用硬件时间戳时,它用于将 PTP 硬件 时钟与主时钟同步,并将系统时钟与 master 时钟同步的软件时间戳。phc2sys 程序只需要硬件时间戳,才能将系统时钟与 网络接口卡 (NIC)上的 PTP 硬件时钟同步。

20.1.1. 了解 PTP

PTP 同步的时钟按主从层次结构组织。从接口同步到其主设备,主从设备可能是自有主设备的主接口。层次结构由最佳 master 时钟 (BMC)算法自动创建和更新,该算法在每个时钟上运行。当时钟只有一个端口时,它可以是 masterslave ,此类时钟被称为普通时钟(OC )。具有多个端口的时钟可以在一个端口和另一个端口上主,此类时钟称为边界时钟 (BC)。顶级主时钟称为协调主机时钟 ,可以通过使用全局定位系统 (NC )时间源同步。通过使用基于NC 的时间源,不同的网络可以与高度精确度同步。

图 20.1. PTPtenmaster、边界和从属时钟

显示 PTPumpmaster 的示意图

20.1.2. PTP 的优点

PTP网络时间协议 (NTP)相比有一个主要优势,那就是各种 网络接口控制器 (NIC)和网络交换机中存在硬件支持。这种特殊硬件允许 PTP 考虑消息传输的延迟,并极大地提高了时间同步的准确性。虽然可以在网络中使用非 PTP 启用的硬件组件,但这通常会导致 jitter 增加或引入非对称,从而导致同步不准确,这增加了通信路径中使用的多个非 PTP 识别组件。为了获得最佳准确性,建议启用 PTP 时钟间的所有网络组件。在大型网络中的时间同步,并非所有网络硬件都支持 PTP 可能更适合 NTP

对于硬件 PTP 支持,NIC 中有自己的板载时钟,用于为接收和传输的 PTP 信息添加时间戳。这是与 PTP master 同步的板载时钟,计算机的系统时钟与 NIC 上的 PTP 硬件时钟同步。对于软件 PTP 支持,系统时钟用于为 PTP 信息加上 时间戳,并直接与 PTP master 同步。硬件 PTP 支持提供更高的准确性,因为 NIC 可以在准确发送和接收时对 PTP 数据包进行时间戳,而软件 PTP 支持需要操作系统对 PTP 数据包进行额外的处理。