Most of us are familiar with the term NTP servers because these are commonly used network elements and play a very important role in synchronizing network client hours and other devices. But how many of us know about the algorithms that enable these servers to perform this synchronization task? Below is a quick overview of the scenes for any NTP server.
The main algorithms that run behind each NTP server are the Marzullo algorithm and the algorithm algorithm. Marzullo invented the Marzullo algorithm in 1984. This is an agreement algorithm that is used to select the correct sources to find the exact time from different time sources. The algorithm works very quickly and produces the result in the optimum time. According to this, the best estimate from the estimate list is the smallest interval consistent with the largest number of sources. In a stricter form it is the smallest interval consistent with all sources, and if no such interval is found, then the interval that corresponds to a large number of sources is the winner. The algorithm also indicates that the desired result is the best value from the chosen interval and that it is the central value of the interval.
The main drawback or lack of the original Marzullo algorithm is that the result returned does not include the midpoint or the calculated displacement of the various sources of intersection. To overcome this modified version of the original algorithm it was introduced and was called the crosshair algorithm. This new mechanism is now part of the current version of NTP. This algorithm returns the best interval that is returned by Marzullo, but it will also include the midpoints and may therefore be greater than the interval returned by the Marzullo algorithm.