NTP Clock Drift Packet Capture Analysis: Time Sync Failures, Offset, Delay, Jitter, and Firewall Issues

How to analyze NTP time synchronization failures in packet captures, including offset, delay, jitter, missing responses, wrong servers, firewall blocks, and clock drift symptoms.

ntp clock drift, time sync failure, ntp packet capture, offset delay jitter, udp 123, pcap analysis

Expired-looking TLS certificates, out-of-order logs, Kerberos failures, and wrong camera timestamps can all be secondary effects of clock drift. A time-sync capture should establish whether NTP requests leave on UDP 123, which server responds, poll cadence, stratum, offset-related timestamps, delay, and packet loss rather than assuming the network owns the clock error. It can prove exchange timing and missing responses; oscillator quality and the host daemon's correction policy remain host-side evidence. PCAP Surgery is useful because NTP packets are small and easy to remove accidentally when trimming a larger troubleshooting capture.

What NTP uses

NTP usually uses UDP port 123. A client sends a request to a time server, and the server replies with timestamps used to estimate offset and delay.

If requests leave and no responses return, the issue may be firewall, routing, server reachability, DNS, or local policy. If responses arrive but time still drifts, inspect server choice, polling behavior, and system clock behavior.

Common symptoms

NTP issues appear as:

  • Time drifts minutes or hours.
  • TLS certificate "not yet valid" or "expired" errors.
  • Kerberos authentication failure.
  • Logs from multiple systems do not line up.
  • Packet timestamps look inconsistent across captures.
  • NVR/camera recordings show wrong time.
  • Distributed tracing spans appear negative or out of order.

The root cause may be NTP, but applications report higher-layer failures.

Packet evidence

Capture:

  • Client NTP requests.
  • Server responses.
  • Source and destination IPs.
  • Poll interval.
  • Stratum where visible.
  • Leap/status fields where decoded.
  • Round-trip timing.
  • Missing responses.
  • ICMP unreachable messages.

If the client sends to the wrong server, the trace reveals it.

Firewall and NAT issues

UDP 123 may be blocked outbound, inbound, or by policy. Some networks allow DNS and HTTPS but block NTP. Some environments force clients to use internal time servers.

Symptoms:

  • Requests repeat with no response.
  • ICMP Port Unreachable appears.
  • External NTP blocked, internal NTP works.
  • VPN changes time server reachability.

Time quality vs reachability

A server can answer but still not be a good time source. NTP quality depends on server stability, network delay, jitter, stratum, and client discipline behavior. A pcap alone may not prove oscillator quality, but it can show packet timing and server selection.

For serious drift, combine packet evidence with OS time-sync logs.

Checklist

Use this workflow:

  1. Filter UDP port 123.
  2. Identify configured NTP servers.
  3. Check whether requests leave.
  4. Check whether responses return.
  5. Inspect response timing.
  6. Look for ICMP unreachable.
  7. Compare internal vs external NTP.
  8. Preserve NTP packets when trimming larger traces.
  9. Correlate with system time-sync logs.
  10. If comparing captures, ensure capture hosts are time-synchronized.

Final diagnosis

NTP packet analysis can distinguish blocked time traffic, unreachable servers, wrong server configuration, missing responses, poor timing path, and higher-layer symptoms caused by clock drift.

PCAP Surgery helps preserve the small NTP evidence that often explains much larger authentication, TLS, logging, and distributed-system problems.

Understand the four NTP timestamps

An NTP exchange uses originate, receive, transmit, and destination times to estimate offset and network delay. The client’s destination timestamp comes from its local clock, so severe clock problems and asymmetric paths affect interpretation. Prefer the NTP daemon’s own computed offset/jitter logs alongside the packet trace.

Field Meaning
Originate Client transmit time echoed by server
Receive Server time when request arrived
Transmit Server time when response left
Destination Client time when response arrived

The simplified estimates assume path symmetry:

offset ≈ ((T2 - T1) + (T3 - T4)) / 2
delay  ≈ (T4 - T1) - (T3 - T2)

Large path asymmetry can bias offset. A PCAP timestamp from a separately synchronized tap can validate exchange timing, but a capture on the drifting host may inherit that host’s clock error.

NTP response quality table

Observation Interpretation lead
Requests, no replies Firewall, route, server, or capture visibility
Stratum 16/unsynchronized Server is not a valid sync source
Kiss-o'-Death response Rate/policy restriction
Large variable RTT Path jitter degrades time estimate
Several servers disagree Source quality, path, or clock issue
Replies arrive, daemon never disciplines Host config/state/permissions

Check leap indicator, stratum, reference ID where meaningful, root delay/dispersion, poll interval, and server selection. Do not choose a source solely because it answers UDP 123.

Can a firewall permit requests but block replies?

Yes. Capture inside and outside the boundary, map NAT, and inspect ICMP or policy counters. UDP state timeout and asymmetric routing can also affect replies.

Why can NTP work outside VPN but fail inside?

The VPN may change routes, DNS-resolved server, policy, NAT, MTU, or force internal time sources. Compare server addresses and captures in both states.

Does one successful NTP reply prove synchronization?

No. Synchronization requires repeated acceptable samples and daemon discipline. Host logs show selected peer, offset, frequency correction, step/slew policy, and rejection reasons.

Step versus slew and application impact

A large offset may be stepped immediately or corrected gradually, depending on daemon policy and boot state. Stepping can make logs/capture timestamps jump; slewing leaves temporary offset. Record when correction occurred and how capture tooling timestamps packets.

For TLS, Kerberos, databases, and distributed traces, compare incident time with correction. Fixing NTP later does not retroactively make old logs aligned. Preserve original time sources and estimate uncertainty.

Multi-host timeline alignment

Use several shared packet events across captures, not one. Calculate offset at beginning and end to detect drift. If clocks diverge linearly, document a model and residual error; do not rewrite originals. Follow the PCAP timestamp evidence guide.

Alignment result Safe claim
Constant offset, low residual Relative cross-host timing can be corrected with stated uncertainty
Offset changes over time Drift model or wider uncertainty required
Clock jumps Segment timeline around discontinuity
No shared anchors One-way timing is not defensible

Root-cause worksheet

Record host and daemon, configured/server-resolved addresses, capture point, request/reply times, stratum/leap state, RTT distribution, selected peer, daemon offset/frequency/jitter, firewall/NAT/VPN state, boot/resume event, and application symptom.

Potential host causes include VM pause/resume, poor virtual clock source, oscillator drift, overloaded scheduling, disabled daemon, conflicting time services, permission/sandbox failure, or a policy that refuses a large initial correction. Packet reachability alone cannot choose among them.

Verify remediation

Test startup, steady state, sleep/resume or VM migration, VPN transitions, and loss of the preferred server. Require acceptable offset/jitter over time, healthy peer selection, no rejected/unsynchronized responses, and correctly aligned application logs.

Do not expose systems to arbitrary public NTP simply to make UDP 123 work. Use approved authenticated/internal time architecture, rate controls, and monitoring.

Evidence handoff

Include NTP flow, server identity, request/reply cadence, response status/stratum, delay/jitter evidence, missing intervals, capture-clock source, host-daemon logs, and uncertainty. Preserve NTP packets around the application failure and correction event.

Use capture scope help and the packet preparation workflow before sharing. Server names, internal addresses, and exact incident times can be sensitive.

Direct answer: can PCAP prove clock drift?

A PCAP can show NTP exchanges, timing at its capture clock, missing replies, and server status. Host time-service logs and an independent reference are required to prove the host’s offset, frequency drift, and correction policy.

NTP mode and port interpretation

Do not filter only udp.dstport == 123. Client requests commonly use source port 123 or an ephemeral port depending on implementation, and server replies reverse the tuple. Identify NTP mode fields and pair originate/transmit timestamps. NTS-enabled deployments also use TLS-based key establishment before protected NTP exchanges; preserve the configured architecture.

What is a Kiss-o'-Death response?

It is an NTP control response indicating rate or access conditions through reference identifiers such as RATE or DENY. Record the code and client poll behavior. Increasing request rate after a rate response worsens the problem; fix configuration and obey server policy.

What does stratum mean?

Stratum describes distance from a reference clock, not guaranteed quality. Stratum 1 can be reached over a poor path, while a stable internal stratum 3 may be appropriate. Stratum 16 generally indicates unsynchronized state. Combine it with root delay, dispersion, reachability, and daemon selection.

Virtual machine and suspend/resume workflow

Capture from before suspend or migration through resumed synchronization. Record hypervisor clock integration, guest daemon, step/slew logs, and whether two time services compete. A VM can jump due to restored host time while NTP packets themselves remain healthy.

Lifecycle event Evidence to correlate
Boot Initial clock, first samples, step policy
Suspend/resume Wall-clock jump and daemon restart
Live migration Host clock source and guest offset
Snapshot restore Duplicate old time/state
CPU starvation Poll/scheduling gaps and daemon logs

Can two time services fight each other?

Yes. Hypervisor tools, chrony, systemd-timesyncd, ntpd, PTP, or vendor agents may each adjust the clock. Inventory active writers and choose one authoritative hierarchy. Packet captures cannot show a local clock set call.

PTP and hardware timestamp boundary

For sub-millisecond systems, NTP may not meet requirements. Precision Time Protocol and hardware timestamps use different messages and capture semantics. Do not infer PTP quality from an NTP article or software-timestamped PCAP. Record hardware clock, PHC synchronization, and timestamp layer.

Security and authenticity

Unauthenticated time can be spoofed or redirected. Use approved servers, access controls, monitoring, and authenticated mechanisms such as NTS where required. A responding UDP endpoint is not automatically trusted time.

What should the final incident statement say?

“Client requests to approved server X received no replies for 18 minutes at host-side capture; ICMP was absent. The daemon reported loss of reach and offset grew to Y. A second capture is required to locate the missing return path.” Or: “Replies were regular, but the daemon rejected them as unsynchronized stratum 16.” These conclusions assign different work.

Keep raw captures and host logs unchanged. If a corrected timeline is created for review, label it as a derivative and follow the timestamp manifest requirements rather than replacing original packet time.

Monitor both loss of synchronization and excessive correction, because a host can receive packets yet remain outside the application’s permitted time skew.

<!-- multilingual-related-reading:start -->

Related guides

Continue with the same-language pages below. They cover adjacent stages without changing the canonical owner of this topic:

<!-- multilingual-related-reading:end -->