gPTP 时间同步报文详解

📅 2026/7/31 16:40:38
gPTP 时间同步报文详解
gPTPIEEE 802.1AS的核心同步报文分事件报文和通用报文两类下面按同步流程拆开说一、同步流程概览主时钟 (Grandmaster) 从时钟 (Slave) │ │ │──── Sync (follow_up 模式 ── 第1次) ──→│ t1主发 │ │ │── Follow_Up携带精确 t1──────────→│ │ │ t2从收 │◄── Pdelay_Req ──────────────────────│ t3从发 │ │ │──── Pdelay_Resp ────────────────────→│ t4主收 │ │ │── Pdelay_Resp_Follow_Up(携带t4) ────→│ │ │ │ ←── 从时钟算出 │ │ offset (t2 - t1 - delay) │ │ 然后调本地时钟 │二、5 种核心报文Sync同步报文— EtherType0x88F7方向主 → 从内容估计的发送时刻精确时间靠 Follow_Up频率默认 125ms8 次/秒两步模式时只带粗略时间戳精确时间戳在 Follow_Up 里一步模式One-stepSync 报文本身携带精确时间戳硬件打戳时不需要 Follow_Up2️⃣ Follow_Up跟进报文方向主 → 从内容Sync 报文的精确发送时间 t1作用两步模式的精确时刻携带者关联通过 followUpCorrectionField 修正 Sync 的发送时间3️⃣ Delay_Req延迟请求方向从 → 主精密硬件打戳记录 t3从时钟发出时刻Sync/Follow_Up 路径时延只能单向算主→从必须用 Delay_Req/Resp 来算往返4️⃣ Delay_Resp延迟响应方向主 → 从内容主时钟收到 Delay_Req 的时刻 t4两条链路计算的完整路径延时5️⃣ Pdelay_Req/Pdelay_Resp/Pdelay_Resp_Follow_Up路径延迟测量平均链路延迟 [(t4 - t3) (t2 - t1)] / 2Pdelay 类报文专门用于链路延迟补偿Delay 类用于端到端测量三、时钟偏移计算过程从时钟收到 5 个时刻后算出时间偏移链路延迟 delay [(t4 - t3) (t2 - t1)] / 2 时间偏移 offset (t2 - t1) - delay (t2 - t1) - [(t4 - t3) (t2 - t1)] / 2 [(t2 - t1) - (t4 - t3)] / 2四、tcpdump 看完整同步过程抓一条完整的同步流tcpdump -i eth0.21 -c 20 -e -xx ether proto 0x88f7输出示例关键字段解析# Sync 报文 15:23:01.000000 eth0.21 PTPv2: Sync (5) seq 0 domain 0, sourcePortIdentity: 00:30:11:ff:fe:22:33:44-1 originTimestamp 15:23:01.000000000 # Follow_Up 报文携带精确 t1 15:23:01.000100 eth0.21 PTPv2: Follow_Up (8) seq 0 preciseOriginTimestamp 15:23:01.000000123 # Delay_Req 报文从→主可省略例子 # Pdelay_Req 报文两者间测量五、实际应用中常见定位方法异常排查要点主时钟无 Sync 发出主时钟无 Sync 发出 检查主时钟状态AP/MLD 锁定、电缆、端口从时钟收不到 Sync检查 VLAN 配置、IGMP/组播、41-48 位 MAC 组播过滤offset 突变大网络抖动 / 邻居交换机 PTP 配置不一致 / 红钟锁定不稳定大量 Follow_Up 缺失两步模式出错或资源不足检查主时钟的一步/两步模式设置偏移不为 0 且在漂移正常 PI 伺服器调节过程幅度过大需检查红钟质量和链路对称性一句话总结gPTP 本质就是连续互发 4 次——Sync/Follow_Up 测主→从时间差Delay_Req/Resp 测算路径延迟从时钟根据两边的差连续微调自己的本地时钟维持与主时钟在亚微秒级的同步。