Professional Documents
Culture Documents
03b Clocks Slides
03b Clocks Slides
Week 3: Part 1
Clock synchronization
If slow (behind):
Make the clock run faster until it synchronizes
1. Redefine the rate at which system time is advanced with each interrupt
or
e
tim
ct
rfe
pe
UTC time, t
Computer’s time, C
Now we’re drifting again!
e
tim
ct
rfe
pe
UTC time, t
Tserver
server
request reply
client
T0 T1 time
T1 −T0
T new =Tserver +
2
range = T1 - T0 - 2Tmin
T1 −T0
accuracy of result = ± −T min
2
800
#""$!"" &""
Error = ± % − 200 = ± %
− 200 = ±200 𝑚𝑠
leader
3:00
9:
: 25 2:50
10
3
leader
3:00
9:
: 25 2:50
10
3
3 : 25 + 2 : 50 + 3 : 00
= 3 : 05
3
February 5, 2023 CS 417 © 2023 Paul Krzyzanowski 24
Berkeley Algorithm: example
leader
3:00
-6
: 20 :0
5
-0 +0:15
• June 2010
– Internet Standard, version 4: RFC 5905-5908
– IPv6 support
– Improve accuracy to tens of microseconds
– Dynamic server discovery
• November 2020
– Draft standard, NTP v5
February 5, 2023 CS 417 © 2023 Paul Krzyzanowski 26
NTP Goals
• Enable clients across Internet to be accurately synchronized to UTC despite
message delays
– Use statistical techniques to filter data and gauge quality of results
Synchronization Subnet
February 5, 2023 CS 417 © 2023 Paul Krzyzanowski 28
NTP Synchronization Modes
Broadcast (or multicast) mode Not supported in NTPv5
– Lower accuracy but efficient; for high-speed LANs
• Jitter (dispersion)
– Difference in successive measurements
– Due to network delays, OS delays, and clock oscillator instability
• Accuracy
– How close is the clock to UTC?
request reply
client
T1 T4 time
request reply
time
client
T1=1100 T4=1200
Offset = ((800 - 1100) + (850 - 1200)) / 2
= ((-300) + (-350)) / 2 (𝑇!−𝑇") + (𝑇# − 𝑇$)
= -650 / 2 = -325 Time offset: 𝑡 =
2
request reply
Ts time
client
T1 T4
𝑇" + 𝑇#
Just define 𝑇! =
2
– NTP: track jitter, error, stratum, and delay among several NTP servers to
choose the best one to synchronize from
master T1
time
syn
c
slave
T2 time
master T1 T4
time
st
ue
Offset + Delay = T2 - T1
syn
req
c
lay
de
slave
T2 T3 time
Slave needs to figure out the network delay. Send a delay request
master T1 T4
time
de
st
lay
ue
Offset + Delay = T2 - T1
syn
req
res
c
po
lay
nse
de
slave
T2 T3 time
master T1 T4
time
de
st
lay
ue
Delay + Offset = T2 - T1
syn
req
res
c
Delay - Offset = T4 - T3
po
lay
nse
de
slave
T2 T3 time
de
20
st
lay
ue
syn
delay = 40
req
res
offset = 235
po
lay
... but we don’t know this yet
nse
de
slave
T2 T3 time
1060 1100 1120 1160 1185 1225
T2 – T1 = 1100-825 = 275 = delay + offset
T4 – T3 = 925-1120 = -195 = delay – offset
master_slave_difference = T2 – T1 = delay + offset
275 – (-195) = 470 = 2(offset)
slave_master_difference = T4 – T3 = delay – offset
offset = 470/2 = 235
master_slave_difference – slave_master_difference = 2(offset) Time is set to 1225 - offset
offset = (T2 – T1 – T4 + T3) ÷ 2 = 1225 – 235 = 990
when we receive last msg
February 5, 2023 CS 417 © 2023 Paul Krzyzanowski 45
NTP vs. PTP
• Range
– NTP: nodes widely spread out on the Internet
– PTP: local area networks
• Often implemented at the physical layer to eliminate OS & scheduling overhead
• Accuracy
– NTP usually several milliseconds on WAN
– PTP usually sub-microsecond on LAN (around 1 µs)
• PTP can be 10,000x more precise than NTP!