HomeGuides › Timing

The timing error with no symptom

One metre of fibre length difference is 2.45 nanoseconds of time error, every timestamp agrees with every other, and nothing anywhere increments.

An error with no symptom

Most timing faults announce themselves. Jitter appears as variance. A lost reference raises an alarm. A drifting oscillator shows up in the phase record. Path asymmetry does none of that, and the reason is structural rather than an oversight in somebody's implementation.

PTP determines a clock's offset by measuring a round trip and dividing by two. That division is not a convenient approximation — it is the only information the protocol has. It cannot separate the forward path is slow from my clock is late, because the two produce identical timestamps.

So when the two directions do not take equally long, every clock downstream sits at a constant offset of exactly half the difference. Every packet agrees with every other packet. Every measurement inside the protocol is self-consistent. Nothing anywhere increments. The only way to find it is to know the physical path.

Two metres of fibre is a timing problem

Light takes about 4.9 nanoseconds to travel a metre of fibre, and PTP halves any difference, so a metre of length difference between the two directions is 2.45 ns of time error.

That figure converts a cabling question into a timing one, and the results are uncomfortable:

Two strands of a fibre pair are cut, spliced and coiled by people. A metre of difference is ordinary; ten metres on a route with several joints is unremarkable. None of it appears in any alarm, any counter, or any acceptance test that does not specifically measure time error against an external reference.

The fix is not better measurement. It is single-fibre bidirectional working, where both directions traverse literally the same glass and the term stops existing.

The same fibre, and still an error

This one is genuinely surprising the first time, because there is nothing wrong with the cable. One fibre. One length. No splice imbalance. And still a time error — because the two directions use different wavelengths, and chromatic dispersion means different wavelengths do not travel at the same group velocity.

Δt = D·Δλ·L, then halved as always. Over 100 km of standard fibre:

CWDM's whole appeal is that its wide channel spacing tolerates cheap uncooled lasers. That same wide spacing is what turns dispersion into a timing error, and it is easy to deploy a CWDM system for cost reasons without anyone connecting it to the sync budget.

The fix is the same wavelength in both directions, or a deliberately compensated pair.

Constant error adds; it does not average

The other common mistake is statistical rather than physical.

A boundary clock contributes two kinds of time error. Dynamic time error varies and largely averages out over a chain. Constant time error does not: it is a fixed offset in a fixed direction, a property of that particular clock, and it accumulates linearly.

Ten class B clocks are 200 ns, not 63. Combining them in quadrature is the right thing to do for independent random errors and the wrong thing here, and it is optimistic by the square root of the hop count — on a twenty-hop chain, a factor of four and a half in the direction that gets you into trouble.

The budget you get is not the budget you need

An application requirement covers everything, including the end equipment. The network gets what is left over, and the difference is not small.

Basic TDD needs ±1.5 µs at the air interface. G.8271.1 leaves 1100 ns of that for the network. Designing a transport chain against 1500 ns spends 400 ns that belongs to somebody else, and the person who finds out is the radio engineer.

The gap widens as requirements tighten. Positioning wants 100 ns end to end and leaves around 60 for the network — which at class B is three hops, before a single metre of asymmetry.

What SyncE does and does not do

SyncE carries frequency, not phase. It is genuinely useful: a chain holding good frequency between PTP corrections is far more stable than one that is not, and for FDD, which needs only frequency accuracy, it removes the need for time of day altogether.

What it cannot do is anything about asymmetry. A constant phase offset stays exactly where it is regardless of how well the frequency is held. SyncE improves the noise; it does not touch the offset.

Holdover, and what actually ends it

The arithmetic here is unusually friendly: one part per billion is one nanosecond of drift per second, so 3.6 µs an hour. A 1100 ns margin at 1 ppb lasts about eighteen minutes.

The catch is that a ppb figure is a specification under stated conditions, and the condition that matters is temperature. In practice holdover ends when the air conditioning fails or the sun moves round to that side of the cabinet, not when the oscillator ages. A holdover figure derived from a datasheet is a best case.

What a budget calculation is not

It is a design aid, not a measurement. Real time error is measured with a tester at the far end against a reference, and no amount of adding up replaces that — particularly because the terms that dominate are precisely the ones a design cannot know: how much longer one strand of a pair happens to be, whether somebody coiled slack in one direction after a repair, which way protection last switched.

It also uses only the constant time error per clock class. Dynamic time error and noise transfer matter on a long chain and need the full G.8273.2 treatment. And none of it describes what happens during a rearrangement, which is often when time error is worst.

Frequently asked questions

Why can't PTP see path asymmetry?

Because it measures a round trip and divides by two, and that division is the only information available. It cannot separate 'the forward path is slow' from 'my clock is late' — the two produce identical timestamps. No extra measurement, no filtering and no better oscillator helps, because the error is not noise.

How much time error comes from a metre of fibre?

2.45 ns, for a metre of difference between the two directions. Light takes 4.9 ns per metre and PTP halves any difference. A 1100 ns network budget is consumed by 449 m of accumulated difference; a 60 ns positioning budget by 25 m.

How can one fibre with no length difference still cause time error?

If the two directions use different wavelengths. Chromatic dispersion means they travel at different group velocities, so they do not arrive at the same time. Over 100 km, DWDM's 0.8 nm spacing gives 0.68 ns and CWDM's 20 nm gives 17 ns — a fifth of a class A node budget from a perfectly good cable.

Should time error be added linearly or in quadrature?

Constant time error adds linearly. Quadrature is correct for independent random errors and constant time error is neither — it is a fixed offset in a fixed direction from each node. Ten class B clocks are 200 ns, not 63, and quadrature is optimistic by the square root of the hop count.

Why is the network budget smaller than the application requirement?

Because the application requirement covers the end equipment too. Basic TDD needs ±1.5 µs at the air interface and G.8271.1 leaves 1100 ns for the network. Designing against 1500 ns spends 400 ns belonging to somebody else.

Does SyncE help with asymmetry?

No. SyncE carries frequency, not phase. It makes a chain more stable between PTP corrections and it is all FDD needs, but a constant offset from asymmetry is untouched by how well frequency is held.

How long does holdover last?

Margin divided by drift rate, and 1 ppb is 1 ns/s — so 3.6 µs an hour. A 1100 ns margin at 1 ppb is about eighteen minutes. In practice a datasheet ppb is a best case: holdover usually ends because the temperature changed, not because the oscillator aged.

Is a calculated budget enough?

No. It is a design aid. Real time error is measured with a tester against a reference, and the terms that dominate are exactly the ones a design cannot know — how much longer one strand happens to be, whether slack was coiled one way after a repair, which way protection last switched.

Open the PTP Time Error Budget →