NTP Server Systems - The Network Time Protocol
by David Evans
The Network Time Protocol (NTP) is utilized by NTP Server systems to distribute
accurate time information to network time clients. The NTP protocol is widely
used throughout the Internet to provide synchronization of computers and
processes. This article discusses how NTP server systems utilize 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 synchronization 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 utilize 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 synchronized 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 utilizes 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
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 utilized
when authentication is required and provides the message authentication code.