Network Time Protocol is a TCP/IP protocol for synchronizing computer clock times over a network. Accurate time across a network is highly important. NTP servers a best solution for this concern! NTP was initiated by Dave L. Mills at the University of Delaware. He was trying to achieve a high accuracy time synchronization for computers connected across a network. After his contributions, Network Time Protocol (NTP) version 1 made its debut in 1980. Since then NTP has continuously been optimized and is widely used around the world. It runs over port 123 UDP at Transport Layer. NTP version 4, which is a significant revision of the previous NTP standards, is the latest development version.
NTP uses Coordinated Universal Time (UTC) to synchronize computer clock times. UTC time can be obtained by using several methods like radio or satellite mechanisms. NTP uses a modified version of Marzullo’s algorithm to select accurate time servers. It highly mitigates the effects of various network latencies. NTP applies to both the protocol and the client/server programs that run on computers. In simple terms, the NTP client initiates a time request exchange with the Time Server. As a result of this time exchange, client is able to calculate the delay and adjust its local clock to the server computer’s clock. The NTP package contains a background program (daemon or service) that helps to synchronize the computer’s system time to one or more external reference time sources.
The NTP program is configured using the /etc/ntp.conf file. The most basic ntp.conf file will simply list 2 servers, one that it wishes to synchronize with, and a pseudo IP address for itself . The pseudo IP can be used just in case of any network problems or in case if the remote NTP server goes down.NTP servers are classified in a hierarchical system with many levels called strata: the devices which are considered as independent time sources are classified as stratum 0 sources. The servers directly connected to stratum 0 devices are classified as stratum 1 sources, servers connected to stratum 1 sources are then classified as stratum 2 sources and so on. The term stratum in the NTP context does not indicate a certain class of accuracy, it’s just an indicator of the hierarchy level. You don’t have to worry about where to choose the NTP time servers from. NTP time servers list can be obtained at http://www.pool.ntp.org. The NTP Pool provides a collection of over 220 publicly accessible NTP servers distributed throughout different regions of the world.
NTP’s native operating system is UNIX. However today, NTP runs with many UNIX-like systems. Now NTP version 4 has also been adapted to Windows operating system and can be used with different versions of the same! Windows NT, Windows 2000 and newer Windows versions up to Windows Vista and Windows 7 can work with NTP
Another simplified version of the NTP protocol is available which is called SNTP (Simple Network Time Protocol). It uses the same TCP/IP packet structure as that of NTP. But due to its simple algorithm, the precision is not much accurate. NTP protocol supports an accuracy of time down to nanoseconds. However, the maximum achievable accuracy also depends on the operating system and the network performance. Unfortunately, the NTP protocol can be exploited and used for denial of service (DoS) attacks.