Optimal Clock Synchronization with Bounded Rates

We present a novel clock synchronization algorithm and prove that this algorithm achieves an essentially optimal upper bound on the worst-case clock skew between any two participants in any given distributed system. More importantly, the clock skew that can occur in the worst case between neighboring participants is (asymptotically) at most a factor of two larger than the best possible bound. Furthermore, the algorithm minimizes the number of messages that need to be exchanged in a given time period and also the number of bits that any node must store locally. The algorithm achieves these goals while guaranteeing that the clocks run smoothly, i.e., all clock rates are always within adjustable, pre-specified bounds, an essential quality of any practical clock synchronization algorithm. These results all hold in a general model where both the clock drifts and the message delays may vary arbitrarily within pre-specified bounds, and algorithms are bound to act only at discrete clock pulses.