4. What is NTP?

Last update: April 1, 2022 14:23 UTC (c85de503f)

4.1. Overview

This section tries to introduce and explain the most basic features of NTP, the Network Time Protocol. The discussion here will be limited to the more theroretical aspects of NTP, while the next section will go further towards real life.

4.1.1 What is NTP?
4.1.2 What is SNTP?
4.1.3 Why should Time be synchronized?
4.1.4 What are the basic features of NTP?
4.1.5 Which Operating Systems are supported?
4.1.6 How many NTP servers are available in the Internet?
4.1.7 Which version of NTP should I use?
4.1.8 What’s the difference between xntp and ntp?


4.1.1 What is NTP?

NTP stands for Network Time Protocol, and it is an Internet protocol used to synchronize the clocks of computers to some time reference. NTP is an Internet standard protocol originally developed by Professor David L. Mills at the University of Delaware.


4.1.2 What is SNTP?

SNTP (Simple Network Time Protocol) is basically also NTP, but lacks some internal algorithms that are not needed for all types of servers. As a full implementation of the NTP protocol seemed too complicated for many systems, a simplified version of the protocol, namely SNTP had been defined.


4.1.3 Why should Time be synchronized?

Time usually just advances. If you have communicating programs running on different computers, time will still advance if you switch from one computer to another. Obviously if one system is ahead of the others, the others are behind that particular one. From the perspective of an external observer, switching between these systems would cause time to jump forward and back, a non-desirable effect.

As a consequence, isolated networks may run their own wrong time, but as soon as you connect to the Internet, effects will be visible. Imagine an email message arriving five minutes before it was sent, with a reply dated two minutes before the message was sent.

Even on a single computer some applications have trouble when the time jumps backwards. For example, database systems using transactions and crash recovery like to know the time of the last good state. Even if a database like Oracle uses integer numbers for transaction sequencing internally, users may want to perform time-based recovery.

Therefore, air traffic control was one of the first applications for NTP.


4.1.4 What are the basic features of NTP?

There exist several protocols to synchronize computer clocks, each having distinguished features. Here is a list of NTP’s features:


4.1.5 Which Operating Systems are supported?

The implementation described in 4.3.2 UNIX Systems works for most popular UNIX operating systems, including AIX, FreeBSD, HP-UX, Linux, NetBSD, OpenBSD, and Solaris.

Meinberg provides a GUI installer for Window XP and later.

For more detailed information see Section 4.3.


4.1.6 How many NTP servers are available in the Internet?

According to A Survey of the NTP Network(1999) there were at least 175,000 hosts running NTP in the Internet. Among these there were over 300 valid stratum-1 servers. In addition there were over 20,000 servers at stratum 2, and over 80,000 servers at stratum 3.


4.1.7 Which version of NTP should I use?

RFC 5905 Network Time Protocol Version 4: Protocol and Algorithms Specification is the current standard, obsoleting RFC 1305 Network Time Protocol (Version 3) Specification, Implementation and Analysis.

It is recommended to run the latest series and patch level (currently 4.2.8p15) to ensure the system has the latest features and security fixes.

If you are worried about compatibility issues, older client versions can generally talk to newer version servers automagically as newer servers know how to answer older client queries, but the other direction requires manual configuration using the version keyword.

See also Section 6.4 Compatibility.


4.1.8 What’s the difference between xntp and ntp?

Obviously the difference is an x, and its meaning some years ago was (according to Professor David L. Mills):

Dennis Fergusson intended the x as “experimental”. I got maybe twenty messages over the years suggesting the x was not appropriate for code in use over a decade and I dropped it for NTPv4. See the paper on NTP history.

In practice xntp refers to an implementation of version three or older while ntp refers to implementations of version four or later.