Meet the Guy Whose Software Keeps the World’s Clocks in Sync

Back in 1993, a physicist named Judah Levine had a bright idea: distributing time over the Internet

3 min read
Meet the Guy Whose Software Keeps the World’s Clocks in Sync
Photo: NIST

Clocks sprang forward last weekend in about 75 countries. Over time, technology has spared many citizens who observe daylight saving time the headache of physically changing their clocks. Electronic clocks automatically reset the time—a subtle convenience made possible by the rise of the global Internet, a network of real-life atomic clocks, and a physicist who has spent decades finding smarter ways to distribute time.  

In many cases, the internal clock that ticks away in a laptop or desktop computer is synchronized to an official time service maintained by the U.S. National Institute of Standards and Technology (NIST). This free service shares Coordinated Universal Time with personal devices, Web browsers, financial trading software and e-mail programs throughout the world. The service receives 150,000 requests per second (roughly 16 billion a day) from systems that repeatedly ask, “What time is it?

“If you have a PC, it's probably synchronized to the time service,” says Judah Levine, the man who originally built servers and programmed software to send time over the Internet for NIST back in 1993.

Here’s how it works: electronic clocks are programmed to check in (once an hour, on average) and record the time from a network of 20 “timeservers” scattered throughout the U.S. Three of those servers—two in Boulder, Colo., and a third in Fort Collins, Colo.—are physically linked to atomic clocks, the newest of which is so accurate, it gains or loses only a second every 300 million years. At those sites, an electric pulse signifying the start of each second is generated by the atomic clock and delivered to a server.

Once the pulse has arrived at a server, the signal is translated to the precise hour, minute and second of the day in Coordinated Universal Time using a string of characters sent separately from the clock to the server. This code enables the server to identify a given second as 16:02:56 UTC, for example. 

Next, this information is shared with the other NIST servers through a phone line and distributed to devices and systems over the Internet, primarily in 48-byte packets via the Network Time Protocol. Adjustments for time zones, daylight saving time, or leap seconds are made by Internet service providers or handled by instructions built into a network or device.

While many nations operate an official time service, NIST has the highest-capacity timekeeping network. It’s also the most popular. Jeff Sherman, a NIST physicist, recently tracked requests to two NIST timeservers for one month. He found requests originating from 316 million unique IP addresses, which he estimates represents about 8.5 percent of all the devices currently connected to the Internet. Those addresses were registered in 244 nations.

This system has served the Internet well for more than 20 years. But Levine expects demand for the time service to grow exponentially with the rise of internet-connected wearables and household electronics. These days, the 76-year-old physicist is thinking hard about how to prepare the network for the onslaught of requests it expects to receive in the era of the Internet of Things.

“The growth rate has sort of been steady at a few percent a month,” Levine says. “We should be able to handle the next two or three years of growth. After that, we're going to have to think again.”He isn’t even sure how many requests per day the current system could handle.

One way to absorb such growth might be to add more layers to the time service. For personal devices that do not require the precise time down to the thousandth of a second, companies such as Apple, Google or Microsoft could make a single request to NIST and then provide the time indirectly to thousands of customers through layers, or stratums, of service.

“One would hope that if a toaster is connected to the Internet,” Sherman says, “it doesn't need the same degree of accuracy as a power plant and someone would arrange for that toaster to be in that stratum system.” In fact, many companies already do this—but more may need to adopt the practice as the Internet of Things takes off.

Another option would be to rely more heavily on alternatives to the NIST time service that already provide the time to many devices and networks. For example, most cell phones rely on GPS satellites maintained by the U.S. Naval Observatory to track time. Many Web browsers synchronize to clocks maintained by other sources through the Network Time Protocol, which pre-dates Levine’s service.

For now, NIST is considering restructuring its timeservers so that every server is directly linked to an atomic clock. Levine says the plan is to build a fourth atomic clock at NIST’s headquarters inGaithersburg, Md., and maintain about 12 timeservers total between the four sites. This would simultaneously improve the system’s accuracy and boost its capacity for delivering the answer to the question, “What time is it?”

The Conversation (0)

Why Functional Programming Should Be the Future of Software Development

It’s hard to learn, but your code will produce fewer nasty surprises

11 min read
Vertical
A plate of spaghetti made from code
Shira Inbar
DarkBlue1

You’d expectthe longest and most costly phase in the lifecycle of a software product to be the initial development of the system, when all those great features are first imagined and then created. In fact, the hardest part comes later, during the maintenance phase. That’s when programmers pay the price for the shortcuts they took during development.

So why did they take shortcuts? Maybe they didn’t realize that they were cutting any corners. Only when their code was deployed and exercised by a lot of users did its hidden flaws come to light. And maybe the developers were rushed. Time-to-market pressures would almost guarantee that their software will contain more bugs than it would otherwise.

Keep Reading ↓Show less
{"imageShortcodeIds":["31996907"]}