How Does NTP Keep Distributed Clocks in Sync?
Learn how NTP computes clock offset and delay, its stratum hierarchy, and why clients slew instead of stepping the clock.
Expected Interview Answer
NTP (Network Time Protocol) keeps distributed clocks in sync by having each client exchange timestamped request/response pairs with a hierarchy of time servers, computing its offset and round-trip delay from those exchanges, then gradually adjusting its local clock toward the corrected estimate.
NTP servers are organized into strata, with stratum 0 being reference clocks (atomic or GPS), stratum 1 servers directly attached to them, and lower strata synchronizing from higher ones, forming a tree that fans out time to millions of clients. A client sends a request stamped with its local send time; the server stamps its own receive and send times; the client records its own receive time โ from those four timestamps it computes both the network round-trip delay and its clock offset relative to the server, assuming (often reasonably) that the delay is roughly symmetric in each direction. Rather than jumping the clock instantly to the corrected value, well-behaved NTP clients slew the clock gradually, because stepping time backward can break applications that assume time only moves forward. NTP typically achieves millisecond-level accuracy over the public internet and can reach sub-millisecond accuracy on well-controlled local networks, though it remains vulnerable to asymmetric network paths and cannot eliminate uncertainty entirely.
- Provides widely available, millisecond-level clock agreement across the public internet
- Hierarchical stratum design lets time distribution scale to enormous numbers of clients
- Offset and delay are computed from a simple four-timestamp exchange, no special hardware required
- Gradual slewing avoids the correctness hazards of a clock suddenly jumping backward
AI Mentor Explanation
NTP is like a national broadcaster relaying an official time signal down through regional relay towers to local grounds, each tier trusting the tier above it rather than every ground calling the master clock directly. A ground sends a query stamped with its own clock reading, the relay tower stamps when it received and replied, and the ground computes both the round-trip delay and how far off its own clock is. The ground then nudges its clock gradually toward the correct time instead of snapping it forward or backward abruptly, which would confuse anyone timing an over mid-broadcast. That tiered, gradual correction across many grounds is exactly how NTP distributes accurate time.
Step-by-Step Explanation
Step 1
Client sends a timestamped request
The client records t0, its local send time, and sends it to an NTP server.
Step 2
Server stamps receive and send times
The server records t1 (receive) and t2 (send) and returns all three timestamps to the client.
Step 3
Client computes offset and delay
Using t0, t1, t2 and its own receive time t3, the client derives round-trip delay and clock offset.
Step 4
Clock is slewed toward the correction
The client gradually adjusts its local clock rate rather than instantly stepping it, avoiding backward time jumps.
What Interviewer Expects
- Explains the four-timestamp exchange (t0-t3) and how offset/delay are derived
- Mentions NTP stratum hierarchy for scalability
- Distinguishes slewing from stepping and why backward jumps are dangerous
- Gives a realistic accuracy range (milliseconds over the internet, better on LANs)
Common Mistakes
- Assuming NTP gives perfectly exact, zero-uncertainty time
- Not knowing the stratum concept and assuming every client hits an atomic clock directly
- Confusing NTP (software, millisecond-level) with PTP (hardware-assisted, sub-microsecond)
- Ignoring that asymmetric network delay in each direction breaks the offset assumption
Best Answer (HR Friendly)
โNTP is the protocol most computers use to keep their clocks accurate by regularly checking in with trusted time servers. Each check-in involves a quick exchange of timestamps that lets the computer figure out how far off its clock is and how much network delay was involved, then it gently corrects its clock rather than jumping it suddenly, which keeps everything in the system working smoothly with accurate timestamps.โ
Code Example
import time
def ntp_exchange(client_send_fn, server_response_fn):
t0 = time.time() # client send time
t1, t2 = server_response_fn(t0) # server receive, server send
t3 = time.time() # client receive time
round_trip_delay = (t3 - t0) - (t2 - t1)
offset = ((t1 - t0) + (t2 - t3)) / 2
return {
"offset_seconds": offset,
"round_trip_delay_seconds": round_trip_delay,
"uncertainty_seconds": round_trip_delay / 2,
}
def apply_slew(current_clock, offset, max_slew_rate=0.0005):
# cap how fast the clock is nudged per adjustment cycle
correction = max(-max_slew_rate, min(max_slew_rate, offset))
return current_clock + correctionFollow-up Questions
- What is the difference between NTP and PTP (Precision Time Protocol)?
- Why does NTP assume symmetric network delay, and when does that assumption break down?
- What is a stratum 1 server and how does the stratum hierarchy limit load on reference clocks?
- How would you detect and reject a malicious or faulty NTP server response?
MCQ Practice
1. What does an NTP client compute from the four exchanged timestamps?
The four timestamps let the client derive both how far its clock is offset and how much delay the exchange took.
2. What is an NTP stratum?
Strata form a tree: stratum 0 is reference hardware, stratum 1 servers attach directly to it, and lower strata sync from higher ones.
3. Why do NTP clients slew the clock instead of stepping it directly to the corrected value?
A sudden backward step can violate assumptions in running software; gradual slewing avoids time ever appearing to reverse.
Flash Cards
What does NTP stand for? โ Network Time Protocol, used to synchronize clocks across a network.
What are the four NTP timestamps used for? โ Computing the client clock offset and the round-trip network delay.
What is NTP stratum 0? โ A reference clock source, such as an atomic clock or GPS receiver.
Slew vs step? โ Slewing gradually nudges the clock; stepping jumps it instantly and risks moving time backward.