PTP Analyzer precisiontimeprotocol.com

Check your PTP synchronization

Drop in a network capture (.pcap / .pcapng) or a ptp4l/phc2sys log. The analyzer shows grandmaster, offset, path delay and sync intervals and flags common problems. Your file is processed entirely in your browser and is never uploaded anywhere.

Drop a file here or

Supported: pcap, pcapng (Ethernet, VLAN, Linux SLL/SLL2, raw IP) · PTPv2 over UDP/IPv4, UDP/IPv6 and Layer 2 · logs from ptp4l, phc2sys, ts2phc

Examples:

What is PTP?

The Precision Time Protocol (IEEE 1588) synchronizes clocks across a network – not to milliseconds like NTP, but to microseconds or even nanoseconds. The key is hardware timestamping: the network card timestamps packets the moment they are sent or received.

A reference clock, the grandmaster (often with a GNSS receiver), provides the time. Devices agree on which clock that is by exchanging Announce messages and running the Best Master Clock Algorithm: priority 1 → clock class → clock accuracy → variance → priority 2 → clock identity.

From four timestamps the slave calculates the network delay and its own offset:

Path delay = ((t2 − t1) + (t4 − t3)) / 2
Offset     = (t2 − t1) − path delay

This assumes a symmetric path. PTP-aware switches (transparent or boundary clocks) remove their own residence time via the correctionField. With the peer delay mechanism (P2P, e.g. gPTP) every link measures its own delay using Pdelay messages.

Master Slave Sync Follow_Up (carries t1) Delay_Req Delay_Resp (carries t4) t1 t2 t3 t4

Common profiles

Create a capture

The most meaningful capture is taken on the slave itself with its system clock synchronized by phc2sys – then the capture clock equals the slave clock and the offset can be read directly. Path delay, sync intervals, grandmaster and packet loss work with any capture.

sudo tcpdump -i eth0 --time-stamp-precision=nano -w ptp.pcap \
  'udp port 319 or udp port 320 or ether proto 0x88f7 or (vlan and (udp port 319 or udp port 320 or ether proto 0x88f7))'

With -j adapter_unsynced tcpdump uses the network card's hardware timestamps, if available. To get a log from linuxptp:

journalctl -u ptp4l -u phc2sys --since "1 hour ago" -o cat > ptp.log

Note: timestamps in software captures are only accurate to a few microseconds. For nanosecond-level statements, rely on the values in the ptp4l log (hardware timestamping).