PTP,也称为 IEEE1588v2,是一种基于以太网的定时协议,旨在通过数据包的硬件时间戳和累积延迟计算向终端设备提供高精度的定时数据包。它在某种意义上类似于 NTP,并被开发用于提供亚微秒或者说纳秒的计时精度。
PTP 是如何工作的?
与 NTP 一样,PTP 使用乒乓方法将准确的时间传输到从设备。参考图 1 所示的简化图像,该过程从主时钟向网络发送同步数据包开始。根据使用的设置,这将作为单播或多播消息发送。数据包在从时钟发送时带有时间戳。此同步数据包包含准确的 TAI 时间以及数据包离开端口 TS1 的“准确”时间(< 100 ns)。从设备接收数据包并在处理数据包并将其发送回主设备之前应用时间戳 TS2,在数据包离开时对其进行时间戳 TS3。这称为延迟请求数据包。
主机接收到延迟请求数据包并在收到它时加上时间戳,然后将其作为延迟响应消息发送回来,现在包括 TS4 时间戳。PTP 是否使用 UTC 时间?
PTP 使用称为国际原子时或简称 TAI 的时基。TAI 基本的形式是 UTC 时间加上自 1972 年“时间开始”以来添加的“闰秒”。截至 2016 年 12 月 31 日,TAI 时间正好比 UTC 早 37 秒。是什么让 PTP 如此准确?
PTP 使用所谓的硬件时间戳来实现亚微秒级精度。在 PTP 感知设备中,传入的数据包在进入端口时会带有 TAI 时间标记;在任何数据包处理完成之前。随着时间标记在硬件中完成,软件处理数据包需要多长时间不再重要,消除了由软件延迟造成的不准确或变化。