Cristian's algorithm

Source: Wikipedia, the free encyclopedia.

Cristian's algorithm (introduced by

round-trip time
(RTT) of the request is short compared to required accuracy. It also suffers in implementations using a single server, making it unsuitable for many distributive applications where redundancy may be crucial.

Description

Cristian's algorithm works between a process P, and a time server S connected to a time reference source. Put simply:

  1. P requests the time from S at time t0.
  2. After receiving the request from P, S prepares a response and appends the time T from its own clock.
  3. P receives the response at time t1 then sets its time to be T + RTT/2, where RTT=t1-t0.

If the RTT is actually split equally between request and response, the synchronisation is error-free. But due to unpredictable influences, this assumption is regularly not true. Longer RTTs indicate interference that is generally asymmetrical. Offset and jitter of the synchronisation are thus minimised by selecting suitable RTT from a set of many request/response pairs. Whether an RTT can be accepted at a given time depends on the drift of the clock and on the statistics of the RTT. These quantities can be measured in the course of synchronisation, which optimises the method by itself.

See also

References

  1. S2CID 3170166