Measuring Asymmetric latency via NTP, part 2

See the first part for the math

Let's use a third party (stratum 2) observer to compare the stratum 1 NTP clocks.

Round trip times

First, a graph of the $rtt times from the third party to various stratum 1 NTP clocks. This is best to be both flat and as low as possible. But flat is more important. You can see that the NTP clock behind the cable modem "sandfish" is not very flat, and has a 4.2ms standard deviation.

Round Trip Times

NTP Offsets

Next, NTP's recorded clock offsets. The "smq", "lon", and "your" clocks all move in same direction at the same time, and are mostly mirrors of each other. By comparison, the "sandfish" clock moves as mostly noise.

NTP offsets

DOCSIS upstream

If we compare the "sandfish" clock's $response_latency to the other clock's offsets, it doesn't match very well. This is the modem-to-internet direction. The other clocks are shifted by a static 17.235ms and 18.235ms.

sandfish upstream

DOCSIS downstream

If we compare the "sandfish" clock's $request_latency to the other clock's offsets, it fits very well. It has more noise (jitter) than the other clocks, but the overall pattern is easy to see. The other clocks are shifted a static 6.175ms and 5.175ms. This is the internet-to-modem direction.

sandfish downstream


The round trip time averages 23.4ms. If this third party observer has the proper offset (and it might not), it takes 5.2ms for the request to arrive and 18.2ms for the response to return. The path the request takes is over Hurricane Electric and the response goes over TeliaSonera.