Peerfear.orgFear for no peers!
Network Timing: NTP Time Servers
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.
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: 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. 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.