ptp-general 是什么
320/udp 是 PTP 的通用报文端口,IANA 登记名为 ptp-general。Announce(主时钟宣告)、Follow_Up(Sync 的精确发送时戳)、Delay_Resp(延迟响应)等不直接要求硬件打时戳的报文走这里,与 319/udp 的事件报文配对,共同完成一次主从时间同步。
基本信息
| 服务名 | ptp-general(PTP General Messages) |
|---|---|
| 端口/协议 | 320,UDP(默认组播 224.0.1.129) |
| 规范 | IEEE 1588-2008(PTPv2) |
| 配对端口 | 319/udp 事件报文 |
| 典型用途 | 主时钟选举、时戳传递、延迟测量 |
| IANA 登记 | PTP General Messages,登记人 Kang Lee |
典型使用场景
- 主时钟选举:域内多台设备通过 Announce 比较优先级,选出最佳主时钟
- 时戳传递:Follow_Up 携带 Sync 的精确发送时刻,供从时钟计算偏移
- 延迟测量:Delay_Req/Delay_Resp 往返测量链路时延,是同步精度的一部分
- 迁移与故障切换:主时钟失效后观察 Announce 收敛时间
- 排障:判断是链路不通、域号不一致还是伺服无法收敛
- 验收:结合 pmc 查询的时钟状态做上线验收记录
抓包与状态核查
抓包与状态核查
tcpdump -ni eth0 'udp port 319 or udp port 320' -c 10 # 两个端口一起抓更易判读
ss -lunp | grep -E ':(319|320) ' # 本机监听情况
pmc -u -b 0 'GET TIME_STATUS_NP' # 查时钟状态与偏移
pmc -u -b 0 'GET PARENT_DATA_SET' # 查当前主时钟信息
journalctl -u ptp4l -n 30 2>/dev/null # ptp4l 日志,看是否进入锁定状态PTP 报文与端口
| 端口/地址 | 报文 | 用途 |
|---|---|---|
| 319/udp | 事件报文 | Sync、Delay_Req 等携带精确时戳 |
| 320/udp | 通用报文 | Announce、Follow_Up、Delay_Resp |
| 224.0.1.129 | 默认组播地址 | PTP 域内消息分发 |
| — | 域号(domainNumber) | 两端域号不一致时互相忽略对方的报文 |
排障提示:抓到 Announce 只说明主时钟在广播,能否锁定还要看 Sync/Delay 往返与时钟伺服状态,用 pmc 查询 TIME_STATUS_NP 判读;如果 PARENT_DATA_SET 长期为空,通常意味着没有选出主时钟。
PTP 默认走组播:跨三层需要交换机做 PIM 或改为 unicast 模式,纯二层环境下则要确认 VLAN 与 IGMP snooping 没有把 224.0.1.129 过滤掉,这是同步失败最常见的原因。
上线验收建议留一份可复核的记录:抓包证明 319 与 320 双向都有报文、pmc 查询显示时钟已锁定、偏移量与抖动在验收指标以内。只写「已部署 PTP」而不留这三项证据,后续出问题时无法判断是从来没同步过,还是后来才劣化。