On Sun, Mar 23, 2014 at 9:26 AM, Jason Rabel
Post by Jason Rabel
If there was some sort of feature in NTP (maybe there already is???), or even a separate program that could "test" a list of NTP
servers to try and pick the lowest latency, I think that could have a positive benefit on better time transfer.
Yes. This is exactly how NTP works. It constantly tests the servers
and selects the "best" subset of available reference clocks. This will
changes over time and it will change in real time.
There is a rather complex algorithm. First the set of clocks is
thinned down to what the code calls "true tickers", those are the
clocks the generally agree with the rest of the clocks. Then from
the clocks who are not "voted off the island" so to speak the time is
computed using a kind of weighting.
The assumption NTP makes is that you can judge the quality of a
server by the variance (of "jitter") in the time it reports.
So yes, the problem the problem and the solution you thought of was
build into NTP about 30 years ago. It fact that is the whole point of
it's being, to estimate the variance in round trip point times and use
this to determine how much to weight the results. NOW, the key
assumption NTP makes might be wrong and this is a large source of
error. It assumes the one-way jitter is 1/2 the round trip jitter.
If this is wrong it would give incorrect weight to a server.
NTP will eventually settle on the best few servers it finds but
continues to talk to all of them just because which are the "best"
will change over time.
A good example of this is a stratum 1 server that has a GPS connected.
Almost certainly it will also connect to other NTP servers and get
time from them as well as the GPS. Very quickly it will determine
that the GPS has the "best" performance and will use that. But if you
disconnect the GPS antenna it will very quickly find the next best
source(s) of time.
Another example is an "island network". Say you have five NTP servers
that are interconnected so that they each get time from the other
four. Normally they also use some Internet servers but when the
Internet goes down NTP will find which of the local island servers has
the most stable clock and those will cary the most weight in the
calculation of "consensus time" which is a weighted time based on all
Redondo Beach, California