Archive for the ‘NTP Basics’ Category

Receiving a Time Source

Thursday, September 18th, 2008

A NTP Server connects to a computer network with the purpose of synchronising all computers, routers and other devices to the exact same time. NTP servers use Network Time Protocol to adjust the drift of different machines to match the reference time.

NTP servers rely on using a reference clock; most networks that use a NTP server will use a UTC (Coordinated Universal Time) time source. UTC is based on the time told by the incredibly accurate and expensive atomic clocks.

Atomic clocks work on the principle that a single atom (in most cases the caesium -133) will resonate at an exact rate at certain energy levels. The accuracy of atomic clocks is so proficient that UTC was developed to allow international Atomic Time (TAI) and Greenwich Meantime (GMT) to be combined, allowing for the slowing of the Earth’s rotation by adding leap seconds and therefore keeping the Sun at the Earth’s meridian at noon.

Failure to account for this slowing in the Earth’s spin would result in the eventual drift of day and night (albeit in many millennia).
A NTP server can be set to receive a UTC time signal from across the Internet although these can vary tremendously in accuracy and are reliant on reasonably close distances from client and server.

Relying on an Internet based timing references can also leave a network open to malicious users as they can not utilise NTP authentication which is a security measure used to ensure a timing reference is what it says it is.

Many dedicated NTP servers are designed to receive a more accurate and authenticated timing reference. One method utilises radio transmissions that are broadcast by several national physics laboratories such as NIST (National Institute for Standards and Technology) in the US (WWVB signal) and NPL (National Physical Laboratory) in the UK (MSF signal). These signals are broadcast in long wave and can be picked up within the broadcast area although the signals can be blocked by local geographical features.

Another method to receive a UTC timing reference is to use the onboard atomic clocks on GPS (Global Positioning System) network. While GPS is most commonly known as a positioning system the satellite actually relays timing information which is used by GPS receivers to calculate the time it has travelled and therefore the distance.
While the GPS signals are not broadcast in UTC format they are highly accurate and NTP has no problem in converting them.

The NTP server checks the time stamp from the UTC source and uses the information to calculate if the network clocks are drifting and adds or subtracts a second to match the reference clock. The NTP server will do this at set intervals, normally every fifteen minutes to ensure perfect accuracy.

NTP is accurate to within 1/100th of a second (10 milliseconds) over the public Internet and can perform even better over LANs and WANS with accuracies of 1/5000th of a second (200 microseconds) not unheard of.

To ensure further accuracy the NTP service (or daemon on Linux) runs in the background and does not believe the time it is told until after several exchanges and each one has passed a protocol specification (a test), the server is then considered. It usually takes about five good samples) until a NTP server is accepted as a timing source.

A Brief History of NTP Time

Wednesday, September 17th, 2008

NTP (network time protocol) is an Internet protocol. Protocols are simply a set of instructions that a computer will follow and NTP has been designed and developed to synchronize computer networks.

It was developed in the 1985 by Professor David Mills from the University of Delaware when the Internet was still in its infancy. Professor Mills realised the need for synchronisation amongst computers when they were talking to each other.

NTP uses Marzullo’s Algorithm which is an agreement algorithm used to select sources for estimating accurate time from a number of noisy time sources.  NTP works by distributing a single time source. Whilst this time reference can be anything such as a wrist watch, it makes little sense to synchronise a network to anything other than UTC time.

UTC (Coordinated Universal Time) is a global time scale based on the time told by atomic clocks. Atomic clocks boast such high levels of accuracy that they do not lose or gain a second in over a million years.

By synchronizing to a UTC time source a network can in affect be synchronised to every other network that uses UTC time.

Once a time source has been selected the NTP daemon (or service on Windows) not only distributes the time reference it also continually checks for accuracy and errors.

NTP is a hierarchical system. The distance from a time server is referred to as a stratum level. A stratum 0 server is a time source itself such as an atomic clock, a stratum 1 server is the NTP time server whilst a stratum 2 server is  a device that receives the time from the time server and stratum 3 servers receive the time signal via a stratum 2 server.

Arranging the network into strata means that a NTP time server can distribute time to hundreds or even thousands of machines without the network or time server itself becoming congested with traffic.  Although it must be noted that the lower down the stratum level a device a fall in accuracy can be expected.

The actual UTC time signal can be received from a number of ways. From across the Internet although this can cause security issues as the time signal can’t be authenticated which is NTP’s inbuilt security measure. It is far safer to receive a time signal from a radio signal broadcast by several national physics laboratories or even the GPS network  whose onboard atomic clocks can be utilised as a timing source if the NTP time server is fitted with a GPS receiver.

Understanding a NTP GPS Server

Monday, September 8th, 2008

A NTP GPS Server is a type of time server that uses Network Time Protocol (NTP) as a method for synchronizing the time on network devices and computers after receiving a time signal from he GPS network.

The GPS (Global Positioning System) network is a constellation of satellites owned and operated by the USA military. Most people are aware of GPS as an aid for satellite navigation. In actual fact, the basis of the transmissions broadcast by the GPS satellites is a time signal. This time signal is generated by the satellite’s onboard atomic clock. It is this information that a satellite navigation system receives and calculates by triangulation the distance away from the satellites.

This timing signal is what is used by a NTP GPS server as a reference to synchronize a network too. NTP then distributes this time to all routers and computers on that network.

A NTP GPS server comprises of a GPS receiver, GPS antenna and NTP software. The GPS antenna should be situated on a rooftop which will give the best possibility of receiving the transmissions from the satellites.

The GPS receiver then converts this information into timing information that can be read and distributed by NTP.

While the atomic clocks onboard the GPS satellites do not transmit a UTC timing code (Coordinated Universal Time). However, NTP has the ability to convert the atomic clock from the satellites to UTC. This allows computer networks to be synchronized to the same universal time source no matter where they are in the world.

Using a dedicated NTP GPS server a network can be synchronized to within a few milliseconds of UTC time with accuracies of a few hundred nanoseconds made possible over LAN’s.

Time Servers: Maintaining Precise Time on Your Computers

Monday, September 8th, 2008

Computer networks rely on timekeeping for nearly all their applications, from sending an email to saving data, a timestamp is necessary for computer to keep track. All routers and switches need to run at the same rate, out of sync devices can lead to data being lost and even entire connections.

All PC’s and networking devices use clocks to maintain an internal system time. These clocks, called Real Time Clock chips (RTC) provide time and date information. The chips are battery backed so that even during power outages, they can maintain time.

However, personal computers are not designed to be perfect clocks, their design has been optimized for mass production and low-cost rather than maintaining accurate time. However, these internal clocks are prone to drift and although for many application this can be quite adequate, often machines need to work together on a network and if the computers drift at different rates the computers will become out of sync with each other and problems can arise particularly with time sensitive transactions.

For some transactions it is necessary for computers to be perfectly synchronised, even a few seconds difference between machines can have serious effects, such as finding an airline ticket you had booked had been sold moments later to another customer or you could draw your savings out of a cash machine and when your account is empty you could quickly going to another machine and withdraw it all again.

Time servers are like other computer servers in the sense they are usually located on a network. A time server gathers timing information, usually from an external hardware source and then synchronises the network to that time.

Most time servers use NTP (Network Time Protocol) which is one of the Internet’s oldest protocols still used, invented by Dr David Mills from the University of Delaware, it has been in utilized since 1985. NTP is a protocol designed to synchronize the clocks on computers and networks across the Internet or Local Area Networks (LANs).

NTP utilises an external timing reference and then synchronises all devices on the network to that time.

Often time servers are synchronised to a UTC (Coordinated Universal time) source which is the global standard time scale and allows computers all over the world to synchronised to exactly the same time. This has obvious importance in industries where exact timing is crucial such as the stock exchange or airline industry.

There are various sources that a time server can use as a timing reference. The Internet is an obvious source, however, internet timing references from the Internet such as nist.gov and windows.time can not be authenticated, leaving the time server and therefore the network vulnerable to security threats.

A Beginners Guide To The NTP Server

Monday, September 8th, 2008

Computer networking is one of the most difficult aspects of information and communications technology (ICT). The logistics of connecting terminals, routers, printers and all the other devices can leave many administrators with a constant headache.

One of the most important aspects that often gets overlooked and can have disastrous consequences is that of time synchronization.

It is imperative that all devices on a network are telling the same time as timestamps, the format a computer relays time to each other, are the only form of reference a computer can use to establish a sequence of events. If different machines on a network are telling different times then unforeseen consequences such as emails arriving before they have technically been sent and other anomalies will make the administrator’s headache even worse.

What’s more a computer network that is not synchronized is open to security threats and even fraud. Fortunately the NTP time server has been around for many years and can ease the headache of time synchronization .

NTP (Network Time Protocol) is one of the oldest protocols used by computer networks. Developed nearly three decades ago NTP is a protocol that checks the time on all devices on network and adds or subtracts enough time to ensure they are all synchronized.

NTP requires a time reference to synchronise the network’s clocks to. Whilst NTP can synchronize a network to any time an authoritative time source is obviously the best solution. UTC (Coordinated Universal Time) is a globally used timescale based on the time told by atomic clocks. As atomic clocks lose less than a second of time in over a thousand years, UTC is by far the best timing source to synchronize a network to. Not only will your network be perfectly synchronized together but also your network will be synchronized to the same time as millions of computer networks all from around the world.

A NTP server can receive a UTC time reference from several sources. The Internet is the most obvious source, however Internet timing sources are notoriously inaccurate and those that are not can be relatively useless if the distance is too far away. Also having placed your NTP server securely behind your firewall it does seem pointless to have to keep a hole open in it to allow the NTP server to poll the timing reference from across the web and leave the entire network vulnerable, particularly as NTP authentication (NTP’s own security measure) is not possible over the Internet.

There are two far more secure and accurate methods of receiving a UTC timing reference. The first is to utilise the national time and frequency transmissions that several countries broadcast from their national physics laboratories. These are usually broadcast via long wave which has an advantage of being able to be picked up inside a server room although many countries do not have such a signal.

However, many NTP servers can utilize the timing signal broadcast by the onboard atomic clocks of the GPS (Global Positioning System) satellites.  This signal is available everywhere but a GPS antenna is required that can get a clear view of the sky.

By utilizing a UTC timing source either through the GPS network of radio transmission a computer network can be synchronized to within a few milliseconds of UTC time.

Introduction to Network Time Protocol

Monday, September 8th, 2008

Network Time Protocol (NTP) is one of the Internet’s oldest protocols still in use. Developed by Dr David Mills from the University of Delaware, it has been in constant use and continually updated since 1985. NTP is a protocol designed to synchronize the clocks on computers and networks across the Internet or Local or Wider Area Networks (LANs/WANS).

In a modern global economy time synchronisation is essential for carrying out time sensitive transactions such as booking an airline ticket to bidding on an Internet auction site. If clocks were not synchronised to the same time you may find your airline seat sold after you had bought it and Ebay’s administrators would not be able to discover whose bid was the latest.

NTP is a multi-tiered system, each tier being called a stratum. Servers at each tier communicate with each other (peer) and provide time to lower strata. Servers at the top stratum, stratum 1 connect to an atomic clock either over the Internet or by a radio or GPS receiver while a stratum 2 server will connect to a stratum 1.

NTP uses an algorithm (Marzullo’s algorithm) to synchronise time on a network using time scales like UTC (Coordinated Universal Time or Temps Universel Coordonné) and can support such features as leap seconds – added to compensate for the slowing of the Earth’s rotation.

NTP (version 4 being the latest) can maintain time over the public Internet to within 10 milliseconds (1/100th of a second) and can perform even better over LANs with accuracies of 200 microseconds (1/5000th of a second) under ideal conditions.

NTP time servers work within the TCP/IP suite and rely on UDP (User Datagram Protocol). A less complex form of NTP called Simple Network Time Protocol (SNTP) that does not require the storing of information about previous communications, needed by NTP, is used in some devices and applications where high accuracy timing is not as important and is also included as standard in Windows software (although more recent versions of Microsoft Windows have the full NTP installed and the source code is free and readily available on the Internet).

The NTP program (known as a daemon on UNIX and a service on Windows) runs in the background and refuses to believe the time it is told until several exchanges have taken place, each passing a set of tests. If the replies from a server satisfy these ‘protocol specifications’, the server is accepted. It usually takes about five good samples (five minutes) until a NTP server is accepted as a source for synchronisation.

Synchronisation with NTP is relatively simple, it synchronises time with reference to a reliable clock source such as an atomic clock, although these are extremely expensive and are generally only to be found in large-scale physics laboratories, however NTP can use either the Global Positioning system (GPS) network or specialist radio transmission to receive UTC time from these clocks.

A simplified version of NTP called Simple Network Time Protocol (SNTP) exists that does not require the storing of information about previous communications as required by NTP. It is used in some devices and applications where high accuracy timing is not as important and is installed on older versions of Microsoft Windows. Windows since 2000 has included the Windows Time Service (w32time.exe) which uses SNTP to synchronise the computer clock. NTP is also available on UNIX and LINUX (download via NTP.org).

Network Time Server Keeping Control of Time

Monday, September 8th, 2008

Computer networking can seem an intimidating undertaking. However, a computer network is really just a number of machines connected together for ease of data transfer and security. They can be very small such as two computers in a home network to really large networks consisting of hundreds and thousands of machines.

When a computer or device is connected to a network then there is only one point of reference that the computers can use to establish the order of events and applications and that is time.

Time, in the form of time stamps are used by most applications and this is when problems in computer networks can occur.

Computers tell the time by using a software clock. This is based on a system clock that keeps time when the computer is off. However, computers internal clocks are wholly inaccurate. They tend to drift up to several seconds a week. On a network when there is more than one machine, this can cause severe problems if the machines are drifting at different rates.

Emails may arrive before they have been sent and the whole network can be vulnerable to security threats and even fraud!

A network time server is used to synchronize a computer network to a single time source. This time source can be anything from an internal clock on a computer to the time told by a wrist watch. However, to ensure perfect accuracy and to keep a network synchronized to the rest of the world then a UTC time source should be used.

UTC (Coordinated Universal Time) is a global timescale based on the time told by atomic clocks. A network time server can receive a UTC time source from across the Internet (although unsecured), via the GPS (global positioning system) network or via specialist radio transmission from national physics laboratories.

Most network time servers use NTP (Network Time Protocol) to distribute the timing reference throughout the network. NTP is not the only timing protocol designed to do this although it is, however, by far the most widely used.