Time synchronization over the Internet using an adaptive frequency-locked loop
This paper describes the operation of an algorithm for synchronizing the time of computers using messages transmitted over packet-switched networks such as the Internet. The algorithm configures itself to realize any specified performance level at minimum cost (measured in computer cycles or network bandwidth). If the highest possible accuracy is requested, the performance will be limited by the larger of the instability of the local clock oscillator or the noise in the measurement process between the client and the server; uncertainties of about 8 ms RMS have been obtained using standard workstations and average network connections. Lower accuracy can be realized at substantially lower cost because the cost varies approximately as the inverse of the accuracy squared over a wide range of these parameters. The algorithm makes better use of scarce network bandwidth than previous methods. This improvement is realized by using a pure frequency-locked loop (rather than mixed frequency/phase locking algorithms currently proposed for the NTP) with unequal spacing between calibration cycles. The result is a cleaner separation between network noise and clock noise, which is especially important when the highest possible accuracy is desired. In addition, the algorithm is an improvement over the pure-FLL "Interlock" algorithm described previously because it is self configuring. In addition to supporting an explicit trade-off between cost and accuracy, the algorithm provides better performance than previous methods because it is better able to adapt itself to fluctuations in the asymmetry of the network delay.