NTP Time Servers and the Network Time Protocol
Sunday, 07.01.2007, 12:47pm (GMT)
The Network Time Protocol (NTP) is a standard Internet protocol for
distributing time around a computer network. The protocol is widely
used to synchronise computers and time critical applications to an
accurate time reference.
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: system clock offset, round-trip
delay and time dispersion of a specified external reference clock (such
as GPS). The clock offset specifies the difference between the local
system time and an external reference clock. Round-trip delay measures
the network latencies experienced during the transfer of packets of
information. 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.
NTP utilises the User Data-gram Protocol (UDP), 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.
|