[ntp:questions] Query about NTP accuracy

Brian Utterback brian.utterback at sun.com
Sun May 31 21:20:31 UTC 2009


Hal Murray wrote:
> In article <1243711613.525216 at news1nwk>,
>  Brian Utterback <brian.utterback at sun.com> writes:
>> David Woolley wrote:
> 
>>> It only requires 2.  The argument about having four initially is about 
>>> having a clear majority even after rejecting one.
>> I am not sure what you are saying. Are you saying that 4 servers allow 
>> you to have a failed server and then outvote a falseticker. I don't 
>> think that is true. And it definitely takes three servers to outvote 
>> one falseticker in some cases. NTP deals in intervals, and it takes 
>> two servers to define one interval, and then one more to make that 
>> interval outvote all the others possible intervals. So, three servers 
>> will always outvote a single falseticker, but two will not always 
>> outvote a single falseticker.
> 
> What cases does it take 3 servers to outvote a falseticker?
> 
> I thought the idea behind using 4 severs was that 3 was the magic
> number (2 could outvote a falseticker) and you still had 3 after
> 1 (of the 4) died.
> 

Nope. NTP works with intervals. Each server has two intervals that it 
is contributing, the offset to the offset minus the dispersion, and 
the offset to the offset plus the dispersion. It then finds the 
interval that has the most overlap. In the case of three servers, any 
particular interval can have one, two or three "votes". When it finds 
the interval with the most votes, it takes the servers that 
contributed (i.e. voted) for that interval as acceptable and goes on 
to the next step, choosing which to use. You can easily see that 
server 1 and 2 might be close together in offset, but there 
dispersions might only overlap a little, giving that overlap two 
votes. Then if server 3 is far away from the other two but has a large 
dispersion, overlapping the dispersion of server two but not all the 
way to its offset, the overlap also has two votes. There is no 
location with 3 votes, so either one might be chosen. Server 3 can 
have a offset and dispersion that does not overlap the real time 
anywhere, which is the definition of a falseticker, and still get chosen.

If you add a fourth server, there will be a combination of that 
overlaps with three, and this will outvote the interval with the 
falseticker that has two. So, you see? It takes 4 servers to outvote a 
falseticker.




More information about the questions mailing list