shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

252
active users

#NTP

0 posts0 participants0 posts today

Okay, hopefully that's it for #NTP for now:

scottstuff.net/posts/2025/05/1

I'm seeing up to 200 ns of difference between various GPS devices on my desk (one outlier, should really all be closer to that) plus 200-300 ns of network-induced variability on NTP clients, giving me somewhere between 200 and 500 ns of total error, depending on how I measure it.

So, it's higher than I'd really expected to see when I started, but *well* under my goal of 10 μS.

scottstuff.net · The Limits of NTP Accuracy on LinuxLately I’ve been trying to find (and understand) the limits of time syncing between Linux systems. How accurate can you get? What does it take to get that? And what things can easily add measurable amounts of time error? After most of a month (!), I’m starting to understand things. This is kind of a follow-on to a previous post, where I walked through my setup and goals, plus another post where I discussed time syncing in general. I’m trying to get the clocks on a bunch of Linux systems on my network synced as closely as possible so I can trust the timestamps on distributed tracing records that occur on different systems. My local network round-trip times are in the 20–30 microsecond (μS) range and I’d like clocks to be less than 1 RTT apart from each other. Ideally, they’d be within 1 μS, but 10 μS is fine. It’s easy to fire up Chrony against a local GPSTechnically, GNSS, which covers multiple satellite-backed navigation systems, not just the US GPS system, but I’m going to keep saying “GPS” for short. -backed time source and see it claim to be within X nanoseconds of GPS, but it’s tricky to figure out if Chrony is right or not. Especially once it’s claiming to be more accurate than the network’s round-trip time20 μS or so. , the amount of time needed for a single CPU cache miss50-ish nanoseconds. , or even the amount of time that light would take to span the gap between the server and the time source.About 5 ns per meter. I’ve spent way too much time over the past month digging into time, and specifically the limits of what you can accomplish with Linux, Chrony, and GPS. I’ll walk through all of that here eventually, but let me spoil the conclusion and give some limits: GPSes don’t return perfect time. I routinely see up to 200 ns differences between the 3 GPSes on my desk when viewing their output on an oscilloscope. The time gap between the 3 sources varies every second, and it’s rare to see all three within 20 ns of each other. Even the best GPS timing modules that I’ve seen list ~5 ns of jitter on their datasheets. I’d be surprised if you could get 3-5 GPS receivers to agree within 50 ns or so without careful management of consistent antenna cable length, etc. Even small amounts of network complexity can easily add 200-300 ns of systemic error to your measurements. Different NICs and their drivers vary widely on how good they are for sub-microsecond timing. From what I’ve seen, Intel E810 NICs are great, Intel X710s are very good, Mellanox ConnectX-5 are okay, Mellanox ConnectX-3 and ConnectX-4 are borderline, and everything from Realtek is questionable. A lot of Linux systems are terrible at low-latency work. There are a lot of causes for this, but one of the biggest is random “stalls” due to the system’s SMBIOS running to handle power management or other activities, and “pausing” the observable computer for hundreds of microseconds or longer. In general, there’s no good way to know if a given system (especially cheap systems) will be good or bad for timing without testing them. I have two cheap mini PC systems that have inexplicably bad time syncing behavior,1300-2000 ns. and two others with inexplicably good time syncing20-50 ns . Dedicated server hardware is generally more consistent. All in all, I’m able to sync clocks to within 500 ns or so on the bulk of the systems on my network. That’s good enough for my purposes, but it’s not as good as I’d expected to see.

Ah ha! Here we go, a reasonably fundamental limit to #NTP accuracy on my network.

I'm starting think that ~300ns is about the limit of time accuracy on my network, and even that's probably a bit optimistic.

Here's one solid example. I have 2 identical NTP servers (plus several non-identical ones that I'm ignoring here) with their own antennas connected at different points on my network. Then I have 8 identical servers syncing their time from NTP once per second using Chrony.

This is a graph of the delta between NTP1's 1-hour median offset and NTP2's 1-hour median offset, showing one line for each server.

Notice that half of them think that NTP1 is faster and half think that NTP2 is faster.

This is almost certainly due to ECMP; each server is attached to 2 L3 switches. Each NTP server is connected to a different L2 switch, and each of those L2 switches are connected to both L3 switches via MLAG.

For some reason, one ECMP path seems to be faster than the other, so server-NTP pairs that hash onto the fast path go 200-400ns faster than server-NTP pairs that take the other path.

Let's take a moment to remember the guy who made sure we don't have to change Every Goddamn Clock today, David L. Mills, creator of Network Time Protocol (NTP) who passed last year.

My wristwatch is synced to my phone, which is synced to the internet, which knows that time it is right now thanks to David Mills. Cheers to his memory 🥃

cse.engin.umich.edu/stories/re

Computer Science and EngineeringRemembering alum David Mills, who brought the internet into perfect timeMills created the Network Time Protocol, which enables any device online to know precisely what time it is.
Replied in thread

@feoh @controlfreak @catsalad

Recently, I moved a server/router/desktop to another motherboard. Upon booting, ping worked, but web browsing didn't. All #DNS lookups were failing.

Turns out the clock was off by half a day. The DNS server couldn't resolve with an incorrect clock, and #NTP couldn't discover the correct time because it couldn't use DNS to look up NTP servers' IP addresses.

So yeah, it's DNS. It's always DNS.

Could it be that the atomic clock of the PTB in Germany is somehow 2ms off to the GPS time?

I have some odd results by comparing this thing to a bunch of stratum 1 NTP Server, and it is such an outlier that it is significant.

Although I want not to believe that we have different time keepers that just do a little bit of their own thing it is still possible… but pls don’t.

This is quite an interesting article about Dave Mills, who passed away last month, with a lot of details about his time at Michigan (BSE Engineering Science 1961, BSE Mathematics 1961, MSE Electrical Engineering 1962, MS Communication Sciences 1964, PhD Computer and Communications Science 1971).

cse.engin.umich.edu/stories/re

Computer Science and EngineeringRemembering alum David Mills, who brought the internet into perfect timeMills created the Network Time Protocol, which enables any device online to know precisely what time it is.
Replied in thread

@memory
RIP: David Mills

In 1977, Mills began working at #COMSAT.

There he worked on synchronizing the clocks of computers connected to #ARPANET, inventing the Network Time Protocol. #NTP

He told The New Yorker in 2022 that he enjoyed working on synchronized time because no one else was working on it, giving him his own "little fief".

In the mid-2000s, Mills turned over full control of the NTP reference implementation to Harlan Stenn.

Mills was the chairman of the Gateway Algorithms and Data Structures Task Force ( #GADS ) and the first chairman of the Internet Architecture Task Force.

He invented the DEC LSI-11 based #Fuzzball router that was used for the 56 kbit/s NSFNET (1985), inspired the author of #ping for BSD (1983), and had the first #FTP implementation. He authored numerous #RFCs.