The Network Time Protocol (NTP) is utilised by NTP Server systems to distribute accurate time information to network time clients. The NTP protocol is widely used throughout the Internet to provide synchronisation of computers and processes. This article discusses how NTP server systems utilise the Network Time Protocol to provide networks with an accurate reference of time.
NTP has been in use as an Internet protocol for over 25 years. It is the longest running continuously operating Internet protocol. The protocol was born through the need to provide synchronisation of time critical processes across the Internet. NTP primarily runs on LINUX and UNIX platforms including Free-BSD but has also been, in part, ported to Windows operating systems. Dedicated NTP server systems generally utilise the LINUX operating system.
The NTP Protocol
NTP is designed to provide network time clients with three products: system clock offset, round-trip delay and dispersion relative to a specified reference clock. Clock offset is the time difference between the local clock and reference clock. Round-trip delay measures the amount of time the protocol takes to receive a response from the server. Dispersion is the maximum error of the local clock relative to the specified reference.
NTP operates in a hierarchical manner, the primary reference followed by secondary references and clients. At the top of the hierarchy, the primary reference is usually synchronised to an external time source such as a radio or GPS clock. The primary reference is attributed a stratum of one. Each level down in the hierarchy is attributed a stratum one greater than the preceding level. As the stratum increases, the accuracy of the reference degrades slightly due to inconsistencies in network path timing. Secondary references have a stratum of between two and fifteen.
NTP utilises the UDP (User Data-gram Protocol) protocol. The 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 leap indicator warns of an impending leap second addition or deletion. The version number indicates the NTP version in use. Mode specified the NTP mode of the current message. Stratum is an eight-bit value indicating the hierarchical level of the reference clock. Poll interval specifies the maximum interval between messages. Precision specifies the accuracy of the local clock. Root delay indicates the round-trip delay time to the reference. Root dispersion indicates the nominal error relative to the primary reference. Reference identifier is a 4-character ASCII string identifying the reference source, such as GPS, DCF or MSF. Reference timestamp specifies the time at which the reference clock was last corrected. The Originate Timestamp specifies the time the NTP request message departed the client for the NTP server. Receive timestamp specifies the time the NTP request message was received by the NTP server. Transmit timestamp specifies the time the NTP response message was transmitted by the server to the client. The key identifier field is utilised when authentication is required and provides the message authentication code.
NTP Server Operation
A NTP server can operate in three modes: unicast; anycast and multicast. In unicast and anycast modes, the client transmits a NTP request message to the server. The server responds with a NTP time message that the client uses for time synchronisation. In multicast mode, NTP time messages are broadcast at periodic specified intervals.
NTP Reference Clocks
Primary NTP servers can synchronise with a number of external reference time sources. The GPS (Global Positioning System) is often used to provide an accurate timing reference. There is also a number of national time and frequency radio broadcasts available. The WWVB radio time broadcast is transmitted from Colorado and covers most of the US. The DCF-77 radio time signal is broadcast from Frankfurt, Germany, and covers much of central and Western Europe. The MSF radio time signal is broadcast from Rugby, UK, and covers the British Isles and much of Western Europe. Other local time and frequency radio broadcasts include: TDF, France, and CHU, Canada.
The current release of NTP is version 4. The only significant modification to the protocol between versions 3 and 4 is a slight header re-interpretation to accommodate IPv6.
SNTP – Simple Network Time Protocol
SNTP is a simplification of the Network Time Protocol, where the complexities of the full-blown protocol are not required. SNTP can be implemented when the high synchronisation performance of NTP is not required. The message format of the SNTP protocol is almost identical to that of the NTP protocol. However, the complex subroutines designed to maintain a highly accurate synchronised time are removed or simplified. Small computers with reduced processing power, such as micro-controllers or monitoring equipment most often use SNTP. The SNTP and NTP protocols are fully interchangeable, a SNTP client can synchronise to a NTP server without any issues.
More Information: NTP RFC's
The original Network Time Protocol was introduced in RFC 958 (Request for Comments: 958). The full NTP version 3 protocol and synchronisation algorithms are described in RFC 1305. The SNTP version 4 protocols are described in RFC 2030.
Dave Evans develops atomic clock time synchronisation systems to ensure accurate time on PC’s and networks. Click here to find out more about SNTP server and NTP Server systems.