The Network Time Protocol, more commonly known as NTP, is a widely used Internet protocol for the transfer of time across a network. NTP is commonly used to synchronise network time clients to an accurate time source.
This article describes the Network Time Protocol and provides an overview of how NTP servers utilise NTP to provide an accurate source of time to network time clients.
A Brief History
The NTP protocol is one of the oldest Internet protocols still in use today. It has been in continuous use for more than 25 years. The protocol was originally designed to synchronise computers and time critical processes across the Internet. Initially developed for the Linux operating system, the protocol has recently been partly ported to the Microsoft Windows operating system. NTP is installed by default in many Linux Unix and Free BSD distributions. Most NTP server systems utilise the Linux operating system due to its specialised kernel timing algorithms.
About the Protocol
NTP is a client-server based protocol. The NTP protocol provides clients with 3 fundamental products: clock offset, network round-trip delay and reference clock dispersion. The clock offset specifies the difference between the local system time and an external reference clock. The round-trip delay specifies the time latencies measured during the transfer of packets around the network. Time dispersion specifies the maximum error associated with timing information received from the external reference clock.
The NTP protocol has a hierarchical structure. A stratum 1 time server is the primary reference server and sits at the top of the heirachy. The primary reference server it is followed by secondary reference servers and clients. A primary reference NTP server is generally synchronised by an external timing reference, such as a radio or GPS clock. At the highest level a primary reference NTP server has a stratum of one. Each lower-level NTP server and client is attributed a stratum one greater than the previous level. As the stratum increases, accuracy decreases due to inconsistencies in network path timing.
Network Time Protocol uses the UDP protocol which is an integral part of the TCP/IP protocol suite. Each NTP message consists of a number of fields: Leap Indicator; Version Number; Mode; Stratum; Poll; Precision; Root Delay; Root Dispersion; Reference Identifier; Reference Timestamp; Originate Timestamp; Receive Timestamp; Transmit Timestamp; Key Identifier and Message Digest. The fields are used to identify messages and provide time stamp and round-trip delay information.
The current release of NTP is version 4. All versions of the protocol are backwards compatible with previous versions. The only significant modification to the protocol between versions 3 and 4 is a slight header re-interpretation to accommodate IPv6.
NTP Server Modes of Operation
A stratum 1 NTP server has three modes of operation: unicast; anycast and multicast. The client initiates the unicast and anycast modes, the server responds with a NTP time message that the client uses for synchronisation. Multicast is a broadcast mode of operation, at periodic intervals time messages are broadcast to the entire sub-domain.
Accurate External Reference Clocks
The standard NTP distribution can operate with a number of external time references, or ‘reference clocks’. The Global Positioning System (GPS) is a popular choice since it provides a global precise time reference. A number of national time and frequency radio broadcasts are also available, such as WWVB (US), DCF-77 (Germany) and MSF (UK).
The Simple Network Time Protocol (SNTP)
SNTP is a simplified version of the full-blown Network Time Protocol. SNTP is generally used where the complexities and high accuracy of the NTP protocol is not required. The SNTP protocol is often used by micro-controllers and SBC computers. The SNTP and NTP protocols are fully interchangeable. Any SNTP client can synchronise with a full-blown NTP server.
David Evans provides a technical authoring service to many computer time server manufacturers. David has many years experience of network timing systems in the telecoms industry. Click here for more information on time server systems.