# Clock Synchronization. Problem 5:33 5:57 5:20 4:53 6:01.

## Presentation on theme: "Clock Synchronization. Problem 5:33 5:57 5:20 4:53 6:01."— Presentation transcript:

Clock Synchronization

Problem 5:33 5:57 5:20 4:53 6:01

Why is this hard? Hard to set the clocks simultaneously Hardware clocks have a small drift rate Network messages have random delay This delay is unbounded Various types of faults are possible: –Process failure –Communication failure

Making it Tractable Clocks have higher resolution than needed e.g. clocks measure microseconds, but we only care about milliseconds Drift rate ρ of clock H is known ρ is very small Small bounded error in measurement allowable: (1 - ρ)(t - t’) ≤ H(t) - H(t’) ≤ (1 + ρ)(t - t’) A message is on-time if sent and delivered within maxp time units Minimum transmission time min is known

Reading a Remote Clock 5:305:33 Real time P Q 5:31 P sends “Time = ?” to Q

Reading a Remote Clock 5:305:33 Real time P Q 5:31 5:355:41 5:37 Q sends “Time = 5:41” to P P sends “Time = ?” to Q Q receives “Time = ?” from P

Reading a Remote Clock 5:305:33 Real time P Q 5:31 5:355:40 5:37 P sends “Time = ?” to Q 5:425:46 5:44 P receives “Time = 5:41” from Q Q sends “Time = 5:41” to P Q receives “Time = ?” from P

Reading a Remote Clock 5:305:33 Real time P Q 5:31 5:355:40 5:37 P sends “Time = ?” to Q 5:425:46 5:44 P receives “Time = 5:41” from Q Q sends “Time = 5:41” to P Q receives “Time = ?” from P P measures the roundtrip delay to be 12 = 2D

What does P know about Q? P sends “Time = ?” to Q at P(t) P receives “Time = T” from Q at P(t’) Roundtrip delay = P(t’) – P(t) = 2D Drift rate ρ for P and Q Minimum message travel time min At P(t’), Q(t’) in interval [T + min(1 - ρ), T + 2D(1 + 2ρ) - min(1 + ρ)]

What does P know about Q? P sends “Time = ?” to Q at P(t) = 5:30 P receives “Time = 5:41” from Q at P(t’) = 5:42 Roundtrip delay = 12 minutes = 2D Drift rate ρ = 0.25 for P and Q Minimum message travel time min = 4 minutes At P(t’) = 5:42, Q(t’) in interval [T + min(1 - ρ), T + 2D(1 + 2ρ) - min(1 + ρ)] = ?

What does P know about Q? P sends “Time = ?” to Q at P(t) = 5:30 P receives “Time = 5:41” from Q at P(t’) = 5:42 Roundtrip delay = 12 minutes = 2D Drift rate ρ = 0.25 for P and Q Minimum message travel time min = 4 minutes At P(t’) = 5:42, Q(t’) in interval [5:41 + 4(1–.25), 5:41 + 12(1 +.5) - 4(1 +.25)] = [5:44, 5:54]

P’s Best Guess For Q(t’) At P(t’), Q(t’) in interval [T + min(1 - ρ), T + 2D(1 + 2ρ) - min(1 + ρ)] In example: [5:44, 5:54] To P, Q(t’) could be anywhere in the interval What should P guess that Q(t’) is equal to?

P’s Best Guess For Q(t’) At P(t’), Q(t’) in interval [T + min(1 - ρ), T + 2D(1 + 2ρ) - min(1 + ρ)] In example: [5:44, 5:54] To P, Q(t’) could be anywhere in the interval What should P guess that Q(t’) is equal to? The midpoint! Q(t’) = T + D(1 + 2ρ) - minρ Q(t’) = 5:41 + 6(1 +.5) – 4(.25) = 5:49

How Precise is the Measurement? Max error e = D(1 + 2ρ) - min P wants to know Q(t’) within error ε Only guaranteed if D ≤ U where U = (1 - 2ρ)(ε + min) Then P reaches rapport with Q Pick ε such that U > min(1+ ρ) If D > U then need to try again

Time Service 5:33 5:57 5:20 4:53 6:01 Q P2 P3P1 Master Slave P4 Slave

Time Service 5:33 5:57 5:20 4:53 6:01 Q P2 P3P1 Master Slave P4 Slave All slaves try to maintain rapport with Q

How Should P Change it’s Clock? At P(t’) = 5:42, P estimates Q(t’) = 5:49 What should P do?

How Should P Change it’s Clock? At P(t’) = 5:42, P estimates Q(t’) = 5:49 What should P do? Gradually adjust clock to eventually match Q Let P(t) = H(t) + A(t)  H(t) is the value of the hardware clock  A(t) = mH(t) + N is an adjustment to P’s clock Set m and N so P(t’ + x) = Q(t’ + x)  x is the amortization parameter  m = (Q(t’) - P(t’)) / x  N = P(t’) - (1 + m)×H(t’)

Master-Slave Synchronization Slave tries up to k syncs with master Remember: rapport means D ≤ U Sync retry every W time units until rapport  W > 2U At rapport, gradually adjust according to P(t) = H(t) + A(t) Slave knows it is out of sync after k tries

Importance Reliable Clock Synchronization required for: –Synchronous Atomic Broadcast http://www.cs.utexas.edu/~schrum2/cs386c/sab.php –Processor Group Membership Agreement Any distributed system needs accurate Clock Synchronization