Study Plan
2110 Topo
This lesson explains how the 2059 Standard fits into the SMPTE ST 2110 stack.
• PTP V/A/TC Phase Alignment
• How it Works
• Timing
• PTP Control Loop
• Profile behavior
• BMCA
• Guidelines on when to use Transparent and Bountrary clocks
• Troubleshooting
• Keeping PTP "Small"
This standard is in two parts.
ST 2059-1: Defines how to derive broadcast reference signals (video frame/line phase, audio sample phase, and timecode) from a PTP timebase. In other words: how to turn PTP time into the equivalent of house black/tri-level and LTC/VITC alignment.
ST 2059-2: Defines the PTP profile for media facilities: clock roles, message types/behavior, and interoperable defaults so different vendors lock to the same time the same way.
PTP distributes a precise time-of-day clock across your IP fabric. ST 2059 tells media devices how to align their video/audio phases to that clock so every camera, mixer, multiviewer, and encoder shares the same frame and sample boundaries—just like genlock, but over Ethernet.

How it Works
Mock PTP Setup panelImportant details ST 2059 nails down
We use PTP’s precise time (TAI) as the master clock, and we handle UTC/leap seconds correctly so “wall-clock” time never gets fuzzy...
TAI (International Atomic Time) is a continuous, never-pausing time scale... A leap second is an extra one-second adjustment...
A leap second is an extra one-second adjustment occasionally added to UTC (the civil time we use on clocks) to keep it aligned with Earth’s slightly irregular rotation. When a leap second happens, UTC shows a weird time like 23:59:60 before rolling to 00:00:00. Because TAI never inserts that extra second, there’s a fixed-but-growing offset between TAI and UTC (on the order of a few dozen seconds).
Because devices derive RTP timestamps, frame boundaries, and audio sample cadence from that shared clock, their phases align predictably—switches and keys are clean, lip-sync holds, and hitless protection (2022-7) can merge legs deterministically. In short: one clock → one schedule → deterministic media behavior.
The clock itself (continuous)
Every device has a hardware oscillator that runs continuously. PTP doesn’t “tick” the time; instead, the device’s servo (phase-locked loop) disciplines its local clock to match the grandmaster. That means you can read time at any instant (e.g., 10.037 456 789 s) — it’s not quantized to 20 ms or any other step.
The PTP messages (discrete, periodic samples)
To keep that continuous clock aligned, devices exchange messages at configurable intervals. Typical (broadcast/2059-friendly) examples you’ll see:
Sync (/Follow_Up): sent many times per second (e.g., every 125 ms ⇒ 8 Hz; sometimes 62.5 ms ⇒ 16 Hz; sometimes 1 Hz).
Announce: slower, e.g., once per second (or 2 s), for BMCA/leader election.
Delay_Req/Delay_Resp: slaves probe path delay periodically (e.g., 1–4 per second).
Those messages are like measurement samples. Between samples, the servo predicts and smooths using the oscillator, so the timebase remains continuous; the next message nudges it to correct tiny drift and jitter.
Why it can look “frame-like”
A video frame period (e.g., 50 Hz ⇒ 20 ms, 59.94 Hz ⇒ ~16.683 ms, 60 Hz ⇒ 16.667 ms) is unrelated to PTP message timing. If you saw “regular 20 ms,” that was almost certainly a video frame cadence, not the PTP clock.
Bottom line:
PTP time = continuous.
PTP messages = discrete, tunable sample rate used to discipline that continuous time.
PTP isn’t a “stepped” clock—it's a control loop that disciplines each device’s local oscillator (PLL/servo). And yes, a servo needs samples (timestamps) at some rate to estimate and correct phase (and frequency) error.
Here’s the mental model:
Local clock = continuous. Your NIC/CPU has a free-running oscillator. It can tell time at any instant; it just drifts without discipline.
PTP provides samples of “true time.”
A Sync (plus Follow_Up in two-step) gives you the grandmaster send time t₁ with hardware precision.
Delay_Req/Delay_Resp (E2E) or peer-delay (P2P) plus switch correctionField (TC/BC) let you estimate path delay so you can align to the GM’s phase at your port.
Servo math (inside your device):

Compute phase error: (GM time at my port) – (my local time) from each Sync sample.
Estimate frequency error (drift) from the trend of those phase errors over time.
Adjust the local clock: nudge its frequency and apply gentle phase slews to drive error → 0.
Message rate vs “continuous time”:
Messages are discrete—e.g., Sync every 125 ms (8 Hz), 62.5 ms (16 Hz), 1 s (1 Hz), etc.
Between messages, your local clock runs continuously; the servo predicts using its oscillator, then corrects on each new sample.
Phase before frequency?
A single precise Sync sample + delay estimate gives you an instantaneous phase error (how far off you are “right now”).
Multiple samples over time reveal frequency error (slope), letting the PLL center its rate so phase doesn’t wander back out.
One-step vs two-step:
One-step: the final timestamp is written into the Sync on egress.
Two-step: Sync goes out, then Follow_Up carries the exact hardware send time. Either way, you get accurate t₁ for the phase measurement.
Why not make the rate huge?
Higher Sync rates improve tracking in noisy networks, but cost bandwidth/CPU and can amplify jitter if the servo is too “stiff.”
Lower rates rely more on oscillator quality. Broadcast profiles pick rates that balance stability, load, and jitter tolerance.
Bottom line:
You do need PTP timestamps at some finite message rate to feed the servo.
Those samples let you measure phase (and infer frequency) error.
The local clock stays continuous; the servo keeps it aligned to the GM between samples.
Why this equals “IP genlock:”
Practical deployment tips
BMCA (Best Master Clock Algorithm) is the PTP election process that automatically picks one Grandmaster per domain by comparing clocks via Announce messages (Priority 1, Clock Class, Clock Accuracy, Offset Scaled Log Variance, Priority 2, and Clock Identity (MAC/EUI-64). It sets each device’s port state (MASTER/SLAVE/PASSIVE), and if the GM disappears or a better one appears, BMCA re-elects quickly so the plant stays locked to a single authoritative time.
Mental model
Together, they give IP plants the same deterministic timing we relied on with genlock—just carried by packets.

When to use Transparent Clocks (TC)
Simple L2 fabrics, same switch family, short paths (≤3–4 hops): TC is easy and very accurate. Switches don’t become PTP masters; they just add their residence delay into the packet’s correctionField, so slaves see true path delay.When to use Boundary Clocks (BC)
Bigger, multi-hop, multi-domain, or mixed-vendor networks: BCs terminate and re-time PTP at each node (act as a slave upstream and a master downstream). This isolates jitter and vendor quirks hop-by-hop. While BCs do isolate network queueing jitter, they also introduce their own minor internal hardware clock filtering tracking errors (cascading jitter) if you chain too many of them togetherRules of thumb for ST 2110 plants
Red/Blue (ST 2022-7) fabrics: Mirror the timing design on both sides—BC on each fabric or TC everywhere on both, but keep it symmetric.Quick checklist
Bottom line:
Use Transparent Clocks for clean, compact L2 networks where simplicity wins. Use Boundary Clocks to segment, stabilize, and scale timing across larger or more varied topologies.
Check the Grandmaster (GM)
meanPathDelay stable? If it wanders with load, PTP is getting queued.What “good” looks like (targets)
To “keep PTP small,” you make sure its packets stay short, un-delayed, and never jumbo’d or tunneled. Practical checklist: