Network Timekeeping: NTP vs. SNTP

In the world of modern computing, accurate timing is everything. As networks grow increasingly complicated, they demand reliable standards that ensure everything is running on the same unified schedule.

NTP, or Network Time Protocol, is a standard method for synchronizing different computer clocks. Here's how it compares to SNTP, or Simple Network Time Protocol.

Why Timing Is Important

Timing helps network operators perform many tasks. For instance, if your data center keeps records of time-stamped access events for security purposes, it helps to have all of the individual machines synchronized to the same clock. When you schedule events to run on remote devices, you want to be certain that their time tables match yours precisely.

NTP Basics

NTP dates back to at least the early 1980s. It depends on a client-server relationship in which clients, such as individual computers, ask the NTP server for updated information about the current time as necessary.

The NTP network organizes its time sources in groups known as strata according to their accuracy and reliability. The highest level, Stratum 0, is a reference clock that provides UTC time with little or no latency, such as the atomic clocks in GPS satellites. A Stratum 1 server is usually equipped with a GPS or GNSS receiver and receives its time from a Stratum 0 clock. Devices that reference a Stratum 1 server are Stratum 2 devices, and so on. NTP allows up to 16 stratum levels.

When unsynchronized devices request time updates, the network finds the quickest path to the Stratum 1 sources to provide the fastest response. It also uses multiple servers to produce a more accurate, best-fit estimate and determines how far out of sync the client computer is to make a single adjustment to its clock.

NTP timekeeping is a critical aspect of the modern Internet because it accounts for phenomena like:

  • Different computer clocks ticking at slightly distinct rates
  • NTP messages taking time to travel between computers
  • Large errors that require corrective measures

NTP also includes embedded security capabilities. By using the MD5 algorithm to encode the time stamps they create, servers can authenticate their replies to let clients know that they came from valid sources.

SNTP Basics

Some small networks use SNTP time. While this protocol can use NTP time servers, the "Simple" aspect of its name means that it employs less correction and consults fewer sources to obtain information. As a result, SNTP typically has to make multiple requests to time servers and repeatedly adjust the client clock.

Software that uses SNTP doesn't account for problems like:

  • Sources that provide inconsistent time stamps
  • Bad actors who might intentionally create inaccurate servers to introduce errors or security exploits
  • Situations where users need exact timing

Which Network Timing Protocol Should You Use?

NTP is far more accurate and precise than SNTP, and this makes it the de facto winner in most enterprise applications. On the other hand, the simplicity of SNTP makes it more appropriate for things like IP cameras, DVRs and some network switches. These types of hardware lack the processing resources to handle more complex protocols, but as connected devices become increasingly powerful, that may change.

One major weak point of SNTP is that you can't make it more accurate by retrieving time from multiple sources like Network Time Protocol does by default. It's worth noting, however, that in many aspects, the two protocols are practically interchangeable. For example, both:

  • Involve clients sending request packets to servers that reply with time stamp packets
  • Share the same packet data format
  • Can be implemented in Linux, OS/X, Windows and other operating systems
  • Let users configure their timing setups

While the high accuracy of an NTP server is usually best, you may find it necessary to switch to SNTP for certain hardware, like a micro-controller or an old PC running Windows XP. It's usually wisest to choose solutions geared towards your specific network timing needs and computing resources.