Packet Path/

NTP vs PTP: Choosing the Right Time Synchronization for Your Network

NTP gets you milliseconds; PTP gets you sub-microseconds. How each time-sync protocol works, typical accuracy numbers, and when your network needs which.

Timing · Intermediate · 10 min · October 4, 2026

Split illustration: a warm amber office scene with a grandfather clock beside networked desktops, and a cool teal data center with an atomic clock and trading servers, joined by a clock face split down the middle

Picture a symphony orchestra — except every musician is locked in a separate room, each reading from their own watch. If the watches disagree by a minute, the concert is a disaster. Computers have the same problem: every server has its own clock, and no two clocks tick at exactly the same speed. Left alone, a typical computer clock drifts by seconds per day.

The question is how far off you're allowed to be. For most of IT, "within a few milliseconds" is plenty. For a trading venue stamping orders under MiFID II — where regulators require timestamps accurate within 100 microseconds of UTC — or a 5G cell tower that must line up its radio bursts with its neighbors within about a microsecond, milliseconds are a joke. That split is why networks have two completely different time protocols: NTP and PTP.

In plain EnglishYour computer's clock is always drifting. NTP (Network Time Protocol) is the easy, free way computers agree on the time over a network — good to milliseconds, fine for almost all of IT. PTP (Precision Time Protocol) is the precision way — with special hardware it agrees to fractions of a microsecond, and it's what trading systems, 5G radios, and power grids need. This guide explains how each one works, how accurate each really is, and how to choose.

Why time sync matters

Time is the one thing every device in a network is supposed to share. Here is what breaks when they don't:

How NTP works: the copy-of-a-copy clock

NTP organizes time as a hierarchy of strata. Stratum 0 is the truth — an atomic clock or a GPS receiver. Stratum 1 servers sync directly to it. Your laptop usually sits at stratum 3 or 4: a copy of a copy of a copy. Each hop down adds a little error, like a photocopy of a photocopy.

A client polls its server over UDP port 123 and stamps four times: T1 when it sends the request, T2 when the server receives it, T3 when the server replies, T4 when the client gets the reply. Assuming the trip there took as long as the trip back, the client's offset from true time is ((T2−T1) + (T3−T4)) / 2. NTP polls slowly — every 64 seconds by default, stretching to 1,024 seconds when the clock looks stable — and smooths the results over many samples.

Typical accuracy: 1–50 milliseconds over the internet, and roughly 0.1–1 millisecond on a well-run LAN. NTP's blind spot: it assumes the path is symmetric. If the route there is slower than the route back, NTP bakes half the difference into your clock as a permanent error — and can never tell you.

NTP: each level down adds error (animated polling) Stratum 0GPS / atomic clock — the truth Stratum 1±100 µs Stratum 1±100 µs Stratum 2±1 ms Stratum 2±1 ms Stratum 2±1 ms Stratum 3 — your laptop±10 ms over the internet One poll every 64–1,024 s · four timestamps (T1…T4) · offset = ((T2−T1)+(T3−T4))/2
NTP's stratum tree: stratum 1 servers sync to GPS or atomic clocks, and each level down copies the level above — adding a little error each time. Typical numbers, well-run networks.

How PTP works: timestamping at the wire

PTP (IEEE 1588) starts from a grandmaster clock — usually disciplined by GPS — and does a four-message dance. The grandmaster sends Sync (timestamp T1), optionally followed by Follow_Up carrying the precise hardware send time; the slave records when Sync arrived (T2), then replies with Delay_Req (T3); the grandmaster stamps its arrival (T4) and returns it in Delay_Resp. The slave computes its clock error as ((T2−T1) − (T4−T3)) / 2. The round trip cancels the travel time, so the slave learns its offset directly instead of guessing.

The whole trick is hardware timestamping. NTP stamps packets in software, where operating-system scheduling jitter adds tens of microseconds of noise. PTP stamps at the network port itself, taking the OS out of the measurement entirely. With that plus PTP-aware switches, accuracy lands at sub-microsecond — often tens of nanoseconds per hop.

Switches can join the timing chain two ways. A boundary clock terminates the timing at each hop and starts fresh — jitter never accumulates down a long chain. A transparent clock just measures how long each PTP packet sat inside it and adds that to the packet's correction field.

One companion worth knowing: SyncE. PTP tells you the time of day; SyncE gives you a rock-solid tick rate. Telecom networks often run both — frequency from SyncE, time-of-day from PTP.

PTP: the four-message dance (animated) Grandmaster(GPS-disciplined) Boundary clockre-times each hop Slave serverordinary clock Sync — carries T1 Delay_Req — slave stamps T3 Delay_Resp — returns T4 offset = ((T2 − T1) − (T4 − T3)) / 2 The round trip cancels the travel time — valid only if the path is symmetric. All four timestamps are captured in hardware at the network port, not in software.
The slave learns its clock error directly: Sync gives it T1/T2, the Delay_Req/Delay_Resp pair gives it T3/T4, and the offset formula cancels the network travel time. (Follow_Up, used in two-step mode, is omitted for clarity.)

Example: timing fabric in a colocation cage

Here is what PTP looks like in a real trading colocation setup — the kind of place where a microsecond is a budget line:

Rooftop GPS antennathe ultimate truth Grandmaster clockstratum 1, GPS-disciplined Agg switch Aboundary clock Agg switch Bboundary clock Rack serversordinary clocks Rack serversordinary clocks Legacy VM clusterNTP only — ms accuracy PTPPTP ±50 ns/hopPTP ±50 ns/hop PTPPTP Every hop re-times from a clean source — except the legacy corner, which NTP keeps at millisecond accuracy (fine for its logs, useless for stamping trades).
A real colocation timing fabric: GPS feeds the grandmaster, boundary-clock switches re-time each hop, and rack servers stay within tens of nanoseconds. The legacy VM cluster (right) still runs plain NTP.

A PTP Sync message on the wire

PTP over Ethernet uses EtherType 0x88F7 and a multicast address every slave listens to. Here is a real-format Sync message — 58 bytes on the wire. Each color is one field — expand a field to see what every byte means:

01 1b 19 00 00 00  02 0f b5 11 22 33  88 f7 00 02
00 2c 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00  02 0f b5 ff fe 11 22 33  00 01
00 00 02 0f b5 ff fe 11 22 33 00 01 01 f4 00 00
00 00 6a b1 3b 80  1d cd 65 00

■ Ethernet header  ■ type + version  ■ length  ■ flags + correction  ■ source port identity  ■ sequence + control  ■ origin timestamp

Ethernet header — 14 bytes: 01:1b:19:00:00:00 → 02:0f:b5:11:22:33, 0x88F7

Destination 01:1b:19:00:00:00 is the PTP "event" multicast group — every Sync, Delay_Req, and other time-critical PTP message goes here, so slaves just listen instead of being addressed individually. Source is the grandmaster's NIC. EtherType 0x88F7 means "this is PTP over Ethernet" (PTP can also run over UDP ports 319/320).

Message type + version — 2 bytes: 00 02

Byte 14's low nibble is the message type: 0x0 = Sync (0x8 = Delay_Req, 0x9 = Delay_Resp, 0xB = Follow_Up). Byte 15 is the PTP version: 0x02, IEEE 1588-2008.

Message length — 2 bytes: 00 2c = 44

44 bytes of PTP message follow: a 34-byte header plus a 10-byte timestamp. (The 14-byte Ethernet header is not counted.)

Flags + correction field — 12 bytes, all zero here

Domain number 0x00 (PTP domains let several independent timing networks share one wire), one reserved byte, 2 flag bytes, and the 8-byte correction field — zero on this Sync, but a transparent clock would add its residence time here so the slave can subtract it.

Source port identity — 14 bytes: 00 00 00 00 + 02:0f:b5:ff:fe:11:22:33 + 0001

Four reserved bytes, then the 8-byte clock identity — usually the grandmaster's MAC with ff:fe inserted (EUI-64 style) — then port number 1. This is how the Best Master Clock Algorithm tells clocks apart when electing a grandmaster.

Sequence + control — 4 bytes: 01 f4 00 00

Sequence ID 500 — the slave uses it to match this Sync with its Follow_Up and Delay_Resp. Control 0x00 = Sync. Log message interval 0 = 2^0 = one Sync per second.

Origin timestamp — 10 bytes: 00 00 6a b1 3b 80 1d cd 65 00

The grandmaster's send time, captured in hardware: 1,790,000,000 whole seconds plus 500,000,000 nanoseconds — half a second past the second. Six bytes of seconds, four of nanoseconds. This is T1 in the dance above.

NTP vs PTP: the comparison

NTPPTP
Typical accuracy1–50 ms over the internet; ~0.1–1 ms on a LANSub-microsecond with hardware timestamping; tens of nanoseconds per hop
TimestampingSoftware (in the OS kernel)Hardware (at the network port) — the whole trick
TransportUDP port 123Ethernet (0x88F7) or UDP ports 319/320
Path modelAssumes symmetric delay; can't detect asymmetryAlso assumes symmetry — but measures both directions to cancel travel time
Network awarenessClient-server; the network is a black boxBoundary and transparent clocks make switches part of the timing chain
Setup effortPoint at a pool, doneGrandmaster, profiles, PTP-aware switches and NICs
CostFreeGPS grandmaster + PTP-capable hardware
Best forServers, logs, Active Directory, certificates — most of ITHFT timestamps, 5G radios, industrial TSN, power substations

Decision guide: which one do you need?

NTP is enough when:

You need PTP when:

Four real mistakes

  1. Running PTP over the public internet. Internet jitter is measured in milliseconds; PTP's math needs nanoseconds. PTP assumes a controlled LAN — across the internet, use NTP and accept the milliseconds.
  2. Asymmetric paths. PTP's offset formula assumes the trip there equals the trip back. If the fiber pair or routed path is slower one way, half the difference becomes a permanent, invisible clock error. Verify path symmetry before trusting PTP.
  3. Virtual machines without PTP-aware plumbing. A guest's clock is emulated by the hypervisor. Without paravirtualized time or NIC passthrough, software-timestamping jitter swamps PTP's precision — the VM believes it's synced, but it isn't.
  4. One grandmaster, no backup. The grandmaster is a single point of failure. PTP's Best Master Clock Algorithm only saves you if a second clock is standing by to be elected — deploy at least two.

Related guides

Key takeaways

Keep reading