[ntp:questions] Compensating for asymmetric delay on a per-peer/server basis?

William Unruh unruh at invalid.ca
Thu Sep 11 14:29:55 UTC 2014

On 2014-09-11, Martin Burnicki <martin.burnicki at meinberg.de> wrote:
> William Unruh wrote:
>> Not if you have gps reference at both ends, though why you would not use
>> the gps as the timesource then I do not know.
> The case mentioned by the original poster is just one possible reason.
> If you have a GPS controlled NTP server at home, and a fast internet 
> connection, and you are willing to contribute to the pool, then usually 
> external clients querying your server will see a systematic offset/error 
> depending on the ratio of the upload/download speed for your home 
> connection.

Agreed. There are two (at least) issues. One is making sure that the
clock on your local machine is accurate-- ie as close to UTC as
possible. The other is that the time you deliver to some remote machine
is as accurate as poosible (ie that the average of the timeout-timein on
the remote machine is as close to utc as possible. That of course is a
confluence of factors partly in your control or determination (ie
assymmetric delay on your own particular connection) and way outside
your control (assymetric connection of the remote machine's connection,
or assymetry on the network between you and them.) 

I think that ntpd should allow you to solve the first problem-- making
sure your local machine's time be as close to accurate as possible-- but
I agree that the second problem really is beyond ntpd's capability. 

However not being able even to accomplish the first is a in my mind a

> If you had a chance to measure this from an external node using another 
> GPS controlled NTP server you could try to compensate this, and thus 
> provide better accuracy to the clients coming from the pool.
> This is also what Rob has mentioned in another post of this thread, and 
> I agree with Rob that a one approach could be to specify (and configure 
> for ntpd) the systematic error due to asymmetry of your internet connection.
> However, this can also be pretty tricky if you have several NTP nodes on 
> your home network, if all nodes and the inet router are connected to the 
> same switch.
> For different nodes on you home net there is no asymmetry (thus no time 
> error), but for each of them who contacts also an external server there 
> is. And often a specific machine contacts the other internal devices as 
> well as the external ones via the same own LAN interface.
> So for your internal operation this means:
> - If you specify a fudge time for a specific interface this may be OK 
> for external servers but yield an error for internal servers, i.e. 
> exactly the other way round as without compensation.
> - You had indeed to specify a fudge time for servers of which you know 
> they are outside on the internet, e.g. other pool servers
> On the other hand, if your local NTP server shall be accessible both for 
> external pool clients, and local clients, how should you know where a 
> specific request comes from? Based on the IP address? Only if the local 
> network and the internet interface are connected via different interfaces?
> So even though it would be good to be able to specify some compensation 
> values, there should be different ways to do it, and putting all 
> together in a way that there is no error is tricky.
> Martin

More information about the questions mailing list