Atomic Clocks History and Development

  |   By

This article discusses the development of atomic clocks, why accuracy is so important, how they developed and the next generation of atomic clocks that offer increased accuracy.

Atomic clocks have been with us for over fifty years now and most people have heard of them and know they are very accurate, but how accurate are they and why do we need such accurate clocks?

Atomic clocks are used by many of us even if we are not aware of it. The time they tell is relayed around the world and picked up by time servers using the protocol NTP to synchronise networks, they are vital for lots of technologies, such as global satellite navigation, and TV signal timings.

Before the development of the atomic clock the most precise timekeeping devices were electronic clocks which would lose a second or two every week. These had largely replaced mechanical clocks which were less accurate still.

Mankind has always had a fascination for keeping track of the time but knowing the precise time has never been too important. A second or even a minute’s difference does not affect our day-to-day lives.

However, as technology has advanced the need for more precise timekeeping has increased. Satellites that have to be navigated and communicate with the Earth from hundred, thousands and even millions of miles away require exact timing. Light and therefore radio waves can travel 300,000 km every second so slight inaccuracies in time can have massive differences.

The first accurate atomic clock was built y Britain’s National Physical Laboratory in 1955 by Dr Louis Essen who based his clock around the oscillation of the caesium -133 atom. The idea was actually first conceived as far back as 1879 when Lord Kelvin proposed that time-keeping based on how atoms behaved would be a better way to count time intervals than anything else.

The first generation of atomic clocks (also known as caesium oscillators) used the frequency of this atom which oscillates 9,192,631,770 times every second. Essen’s model was accurate to a second every 300 years but developments of the caesium oscillator mean they can now achieve accuracies of one second every 80 million years.

Yet as technologies get more advanced, scientists strive to make better and more accurate clocks. Rubidium standard clocks offer no better accuracy than caesium models but are smaller and cost less (caesium oscillators are generally only to be found in large-scale physics laboratories).

Clocks using just a single atom have been developed that offer even more accuracy. A clock based on a single mercury atom has achieved accuracies of one second in 400 million years and it is expected that a new type of strontium clock that uses light will go even better.

The future for atomic clocks is ever increasing accuracy combined with scaling down the size and cost of them. The American National Institute of Standards and Technology (NIST) have unveiled a chip-sized atomic clock that boasts millisecond accuracy.

Atomic clocks are now part and parcel of our lives without the time signals they transmit to the world that are picked up by NTP servers modern communication from Internet shopping and GPS and technological advances such as satellite navigation would become impossible.

Configuring a LINUX based NTP Time Server

  |   By

Summary: This article gives a step-by-step guide in configuring LINUX to act as an authoritative time server using NTP (Network Time Protocol).

Computer time synchronisation is highly important in modern computer networks, precision and time synchronization is critical in many applications, particularly time sensitive transactions. Just imagine buying an airline seat only to be told at the airport that the ticket was sold twice because it was purchased afterwards on a computer that had a slower clock!

Modern computers do have internal clocks called Real Time Clock chips (RTC) that provide time and date information. These chips are battery backed so that even during power outages, they can maintain time but 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.

For many applications, this is can be quite adequate, although, quite often machines need time to be synchronised with other PC’s on a network and when computers are out of sync with each other problems can arise such as sharing network files or in some environments even fraud!

Network Time Protocol (NTP) is an Internet protocol used for the transfer of accurate time, providing time information along so that a precise time can be obtained. As NTP was originally written for LINUX many LINUX based operating systems already have a version of NTP installed. However the source code is free to download from the NTP website (ntp.org) the most recent version being v 4.2.4.

NTP (version 4) 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 works within the TCP/IP suite and relies on UDP, a less complex form of NTP exists called Simple Network Time Protocol (SNTP) that does not require the storing of information about previous communications, needed by NTP. It is used in some devices and applications where high accuracy timing is not as important.

The NTP background program is configured with the file ‘ntp.conf’. this may contain a list of public NTP server references that can be used to synchronise time. NTP time servers are specified using the ‘server’ command, any characters after the ‘#’ symbol are comments:

Example
server time-a.nist.gov # Public NTP server: Maryland
When configured, NTP can be controlled using the commands ‘ntpd start’ ‘ntpd stop’ ‘ ntpq –p’ (displays status)

NTP can also authenticate timing resources Note: It is strongly recommends that you configure a time server with a hardware source rather than from the internet where there is no authentication. Authentication codes are specified in the ‘ntp.keys’ file.

Specialist NTP servers are available that can receive transmissions from either GPS or national time reference broadcasts. They are relatively cheap and the signal is authenticated providing a secure time reference.

Authentication for NTP has been developed to prevent malicious tampering with system synchronisation just as firewalls have been developed to protect networks from attack but as with any system of security it only works if it is utilised.

How to Configure a NTP Network Time Server in Windows 2000

  |   By

Computer time synchronisation is highly important in modern computer networks, precision and time synchronization is critical in many applications, particularly time sensitive transactions. Just imagine buying an airline seat only to be told at the airport that the ticket was sold twice because it was purchased afterwards on a computer that had a slower clock!

Modern computers do have internal clocks called Real Time Clock chips (RTC) that provide time and date information. These chips are battery backed so that even during power outages, they can maintain time but 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.

For many applications, this is can be quite adequate, although, quite often machines need time to be synchronised with other PC’s on a network and when computers are out of sync with each other problems can arise such as sharing network files or in some environments even fraud!

Microsoft Windows 2000 has a time synchronisation utility built into the operating system called Windows Time (w32time.exe) which can be configured to operate as a network time server. Microsoft and others strongly recommend that you configure a time server with a hardware source rather than from the internet where there is no authentication.

If you want to configure Windows Time service to use the internal hardware clock, then first check that w32time is located in the system services list in the registry, to check:

Click Start, Run then type regedit then click ok.
Locate and then click the following registry entry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time

It is highly recommended that you back up the registry as serious problems may occur if you modify the registry incorrectly, modifications to the registry are done at your own risk.

To begin configuration for an internal clock, click on the following subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
In the right pane, right-click ReliableTimeSource, then click modify.
In Edit DWORD Value, type 1 in the Value Data box, then click OK
Exit Registry Editor

To restart the Windows Time Service click Start, Run (or alternatively use the Command Prompt facility).
Type: net stop w32time && net start w32time
Then press enter.

To reset the local computers’ time, type the following on all computers except for the time server which must not be synchronised with itself:
w32tm –s

To configure the Windows Time service to use an external time source, click Start, Run and type regedit then click OK.

Locate the following subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
In the right pane, right-click Type then click Modify, in edit Value type NTP in the Value data box then click OK.

Now in the right pane, right click ReliableTimeSource, then click Modify.
In the Edit DWORD Value box, under Value Data, type 0, then click OK.

Right-click NtpServer in the right pane then click Modify.
In Edit Value, type the Domain Name System (DNS), each DNS must be unique.
Now click Ok.

For Windows 2000 Service Pack 4 only, set the time correction settings to do this locate:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
In the right pane, right-click MaxAllowedClockErrInSecs, then Modify in the Edit DWORD Value box, , type a time in seconds max number of seconds difference between the local clock and the time received from the NTP server in order to be considered a valid new time.
Click OK.

To set the poll intervals locate:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
In the right pane, right-click Period, then click Modify.
In the Edit DWORD Value box, under Value Data, type 24 then OK
Exit Registry Editor

Click Start, then Run then type the following and press Enter:
Net stop w32time && net start w32time

To reset the local computers’ time, type the following on all computers except for the time server which must not be synchronised with itself:

Network Time Protocol (NTP) is an Internet protocol used for the transfer of accurate time, providing time information along so that a precise time can be obtained

To enable the Network Time Protocol; NTPserver, locate and click:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\
In the right pane, right-click Enabled, then click Modify.
In the Edit DWord Value box, type 1 under Value data, then click OK.

Now go back and click on
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
In the right pane, right-click NtpServer, then Modify, in the Edit DWORD Value under Value Data type In the right pane, right-click NtpServer, then Modify, in the Edit DWORD Value under Value Data type the Domain Name System (DNS), each DNS must be unique and you must append 0x1 to the end of each DNS name otherwise changes will not take effect.
Now click Ok.

Locate and click the following
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
In the right pane, right-click SpecialPollInterval, then click Modify.
In the Edit DWORD Value box, under Value Data, type the number of seconds you want for each poll, ie 900 will poll every 15 minutes, then click OK.

To configure the time correction settings, locate:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\config
In the right pane, right-click MaxPosPhaseCorrection, then Modify, in the Edit DWORD Value box, under Base, click Decimal, under Value Data, type a time in seconds such as 3600 (an hour) then click OK.

Now go back and click:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\config
In the right pane, right-click MaxNegPhaseCorrection, then Modify.
In the Edit DWORD box under base, click Decimal, under value data type the time in seconds you want to poll such as 3600 (polls in one hour)

Exit Registry Editor
Now to restart windows time service, click Start, Run (or alternatively use the command prompt facility) and type:
net stop w32time && net start w32time

And on each computer, other than the time server, type:
W32tm/ -s
And that’s it your time server should be now up and running.

Calendars and the Measurement of Time

  |   By

We are all aware of the passing of time; it governs us throughout our lives constantly ebbing away, dictating when we should eat, sleep, wake or work.

Yet, the concept of time has baffled philosophers and scientists for millennia and we are still unsure of exactly what time is; although the work of Einstein and others has led us some way in its understanding.

However, exactly what time is does not really matter in the running of our day-to-day lives, but measuring its passing has preoccupied people for thousands of years. Calendars have been around for millennia, agricultural, religious and social reasons have made them essential in forecasting when to harvest crops or when to celebrate a religious event.

The majority of all calendar systems have been based on the movement of the Earth or Moon. A complete rotation is a day; the Moon’s orbit of the Earth is a month; and an orbit of the Sun is a year.

Calendars based on the movement of Moon are known as lunar calendars whilst those based around Earth’s orbit of the Sun are called solar calendars. Because the number of days in a year is not a whole number (the Earth takes 365 days and six hours to orbit the Sun) solar calendars have to fudge the figures, usually by adding an extra day every few years (a leap day) making a leap year a day longer than the rest of the years.

Problems arise with lunar calendars too. While the Moon takes 28 days to circle the Earth, which can be divided into seven (four weeks) a year can’t be divided into equal lunar cycles, so months have to have a different number of days (the moon actually goes around the Sun 13 times in 364 days).

The baseline for calendars (the date they start counting) depends on cultural or religious reasons. The Gregorian calendar, adopted in Europe throughout the middle ages, used the birth of Christ; whilst a year in Japan is based on the current emperor’s reign (2008 is year 18 of the Emperor Akihito).

The main use of calendars has always been to identify events and in modern times they are often combined and used along with time to create a complete timescale. A calendar based on the movement of the Earth or Moon are less relevant today since the advent of accurate timepieces and modern technologies such atomic clocks, NTP servers (Network Time protocol) and GPS (Global Positioning System). These have allowed the development of a global standardised time scale (known as UTC – Coordinated Universal Time).

However, thanks to these technologies, we now know that the movement of the Earth is not as accurate as our modern clocks (an atomic clock is 1,000,000 times more stable than the Earth’s rotation). The Earth actually slows down (and sometimes accelerates) in its orbit. If nothing was done to compensate for this, eventually noon would become midnight and vice versa (albeit in many millennia) so leap seconds are added to the standard time scale just as days are added in a leap year.

In modern times calendars are still used. The Gregorian calendar is widespread throughout the West and other calendars have been developed such as fiscal calendar, developed by business as a way of comparing productivity or profit from month to month and year to year. For this reason fiscal calendars have a fixed number of weeks in a month, January may have five weeks while March may have four. Other calendars exist too such as those used by schools or sports.

Time Servers and the Importance of Synchronisation

  |   By

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.

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.

There are authenticated alternatives to the Internet, the most common being to use the GPS network. As the Global Positioning System is reliant on knowing exactly what time it is to ensure reliable location information, this information can be utilised by a time server.

A simple GPS antenna connected to the time server will allow the GPS timing reference to be regularly checked by the time server. A GPS time server will be accurate to within a few hundred nanoseconds (a nanosecond = a billionth of a second).

There are also a number of national radio broadcasts such as the WWVB signal from Colorado in the US, the MSF signal from Cumbria in the UK and the DCF-77 signal from Frankfurt in Germany.

These radio signals are limited in their range though and even in major cities such as London it can be difficult to receive a decent enough signal.

Most timing servers use NTP (Network Time protocol) there are other protocols available but NTP is predominately used and is thought of as the standard for timing protocols. NTp has been around for over 25 years and is currently on version 4 but is always being updated which is probably why it is by fat the most common timing protocol.

NTP time servers work within the TCP/IP suite and rely on UDP (User Datagram Protocol). A less complex form of NTP – Simple Network Time Protocol (SNTP) 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 from ntp.org).

A Guide to Time Synchronisation with Windows Vista

  |   By

All computers have clocks of course although the real time chips (RTC) that inhabit most PC’s are not the most accurate of timepieces and are prone to drift.

This may not matter much to the average home user although when it comes to time sensitive applications this inaccuracy can be at best annoying (an email arriving before its been sent) or at worst leaving your machine open to security threats.

A universal time (UTC) does exist and allows the global industry to communicate and trade even across time zones. UTC was developed to ensure that everybody used the same time reference, preventing problems with time sensitive transactions such as on the stock exchange.

Windows Vista has an inbuilt time synchronisation facility already installed called Windows Time and it is pretty easy to setup and to synchronise a machine with UTC over the Internet. This will ensure that the clock on your computer is accurate to UTC time and is constantly updated to ensure the time does not drift.

To synchronise your Windows Vista machine to an Internet UTC source simply follow these instructions:

1. Right click the clock in the system tray.
2. Click adjust time and date.
3. Click the Internet time tab.
4. Click change settings.
5. If you are prompted for a password or for confirmation, type the password, or click Continue.
6. Select the server you want to use (such as windows.time)
7. Click the Update now button.
8. Click Ok twice.
If problems occur then another method of synchronising your computer is possible via the command prompt by running w32tm / resync. This should activate the windows time service.

Note: Microsoft and other operating system manufacturers recommend that an external hardware source should be used to synchronise a computers clock as Internet time servers can not be authenticated leaving systems vulnerable to security threats.

There are specialist time servers that connect to a UTC source using either the GPS network or a specialist radio transmission. These servers use NTP (Network Time Protocol) to synchronise machines on a network to one UTC source and are easily installed and relatively inexpensive.

Window Vista also has a facility to add extra clocks to the system tray. This allows different times from different time zones to be displayed on the computer. If the clock has been synchronised with a UTC source then all these clock will present UTC time converted to whatever time zone is required.

To add additional clocks simply follow these instructions:
Choose change date and time settings.
1. Left click the clock and click Additional Clocks tab.
4. Put a check mark in Show this Clock.
5. Select the time zone.
6. Enter a name for your new clock.
7. Click apply, then when you click on the Clock icon you’ll see your new clocks.

How to Run a Network Time Server in Windows XP

  |   By

Time synchronisation in modern computer networks is essential. It not only provides the only frame of reference between all devices, it is critical in everything from securing, planning and debugging a network to providing a time stamp for applications such as data acquisition or email.

Microsoft Windows XP has a time synchronisation utility built into the operating system called Windows Time (w32time.exe) which can be configured to operate as a network time server. It can be configured to both synchronise a network using the internal clock or an external time source.

For many applications, an internal clock can be quite adequate, although, on a network, problems can arise with applications such as sharing network files or in some environments even fraud, so it is vital for security reasons to use an accurate timing source for your network.

NTP (Network Time Protocol) is a protocol already installed on Windows XP and is used by Windows Time to keep machines synchronised to the single time source. There are several timing sources available on the Internet but Microsoft and others strongly recommend that you configure a time server with a hardware source rather than from the Internet where there is no authentication.

Specialist NTP servers are available that can receive a reliable time source via the GPS signal or specialist radio transmissions that get their time from atomic clocks.

If you wish to configure Windows XP to operate as a time server then first thing is to locate the Windows Time subkey. To do this:
Run Regedit (Click start/run/then type REGEDIT/and click enter.

Note: editing your system registry can cause problems with your system. It is advisable to back up your system before editing the registry.

Now locate the following subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\parameters\
Right click the right-hand side and click Modify. In the Edit Value box, under Value Data, type NTP and then click OK.
Now go to the Config folder and right-click AnnounceFlags, Modify and in the Edit DWORD Value box, under Value Data, type 5, and then click OK.

Locate this subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\

Right-click in the right-side window and Modify. Edit the DWORD value box and type the number of seconds you want for each poll under Value data, i.e.: 900 will equal 15 minutes. The poll field represents the polling interval between NTP poll packets.

To enable the NTP server locate the subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\
Right click enabled (in the right-hand window) then Modify. Edit the DWORD Value and type 1. Right-click NtpServer, then Modify and in the Edit DWORD Value under Value Data type Peers, then click OK.

Locate:  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\config
In the right pane, right-click MaxPosPhaseCorrection, then Modify, in the Edit DWORD Value box, under Base, click Decimal, under Value Data, type a time in seconds such as 3600 (an hour) then click OK. This adjusts the connection settings.

Now go back and click:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\config

In the right pane, right-click MaxNegPhaseCorrection, then Modify.
In the Edit DWORD box under base, click Decimal, under value data type the time in seconds you want to poll such as 3600 (an hour).

Exit Registry then restart windows time service by clicking Start/Run then typing:
net stop w32time && net start w32time and on each computer, other than the domain controller, type: W32tm/resync/rediscover.
The time server should be now up and running.

Installing a NTP Server using a Radio Reference Source

  |   By

Network Time Protocol (NTP) 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 (version 4) 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 works within the TCP/IP suite and relies on UDP, a less complex form of NTP exists called Simple Network Time Protocol (SNTP) that does not require the storing of information about previous communications, needed by NTP. It is used in some devices and applications where high accuracy timing is not as important.

Time synchronisation with NTP is relatively simple, it synchronises time with reference to a reliable clock source. This source could be relative (a computer’s internal clock or the time on a wrist-watch) or absolute (A UTC – Universal Coordinated Time – clock source that is accurate as is humanely possible).

It is strongly recommended by Microsoft and others, that external based timing should be used rather than Internet based, as these can’t be authenticated. Specialist NTP servers are available that can synchronise time on networks using either the MSF (or equivalent) or GPS signal.

Atomic clocks are the most absolute time-keeping devices; however, they are extremely expensive and are generally only to be found in large-scale physics laboratories. However, NTP can synchronise networks to an atomic clock by using either the Global Positioning system (GPS) network or specialist radio transmission (MSF in Britain).

The MSF national time and frequency radio transmissions used to synchronise an NTP server is broadcast by the National Physics Laboratory in Cumbria which serves as the United Kingdom’s national time reference, there are also similar systems in Colorado, US (WWVB) and in Frankfurt, Germany (DCF-77).

A radio based NTP server usually consists of a rack-mountable time server, and an antenna, consisting of a ferrite bar inside a plastic enclosure, which receives the radio time and frequency broadcast. The antenna should always be mounted horizontally at a right angle toward the transmission for optimum signal strength. Data is sent in pulses, 60 a second. These signals provides UTC time to an accuracy of 100 microseconds, however, the radio signal has a finite range and is vulnerable to interference.

A radio referenced NTP server is easily installed and can provide an organization with a precise time reference enabling the synchronization of entire networks.

How an NTP Server Works

  |   By

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

NTP (currently version 4)  is actually three things in one; a software program that runs in the background of Windows or UNIX; a protocol that exchanges time values between servers and clients; and a suite of algorithms that process the time values to advance or retreat the system clock.

NTP uses an algorithm (Marzullo’s algorithm) to synchronise time on a network using a time reference. Although networks can be synchronized with internal clocks or Internet based timing references, it is highly recommended by Microsoft and others that an external timing reference should be used to guarantee authentication. An absolute timing reference should use UTC (Coordinated Universal Time or Temps Universel Coordonné) which supports such features as leap seconds – added to compensate for the slowing of the Earth’s rotation.

NTP works within the TCP/IP suite and relies on UDP, a less complex form of NTP exists called Simple Network Time Protocol (SNTP) that does not require the storing of information about previous communications, needed by NTP. It is used in some devices and applications where high accuracy timing is not as important, it is also included in most Windows operating systems but more recent versions have the full NTP already installed, which is also free to download via the Internet.

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.

NTP uses timestamps to represent the current time of the day each timestamp is ephemeral, in other words it is always greater than the previous timestamp as time never runs backwards. NTP analyses the timestamp values including the frequency of errors and the stability. A NTP server will maintain an estimate of the quality of its reference clocks and of itself.

The distance from the reference clock is known as the stratum levels and they exist to prevent cycles in the NTP. Stratum 0 are devices such as reference clocks connected directly to a computer. Stratum 1 are computers attached to stratum 0 devices, while Stratum 2 are computers that send NTP requests to Stratum 1 servers. NTP can support up to 256 strata.

NTP timestamps are in two formats but they relay the seconds from a set point in time (known as the prime epoch, set at 00:00 1 January 1900) The NTP algorithm then uses this timestamp to determine the amount to advance or retreat the system or network clock.

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

A typical GPS time server can provide timing information to within a few nanoseconds of UTC as long as there is an antenna situated with a good view of the sky.

There are also a number of national time and frequency radio transmissions that can be used to synchronise a NTP server. In Britain the signal (called MSF) is broadcast by the National Physics Laboratory in Cumbria which serves as the United Kingdom’s national time reference, there are also similar systems in Colorado, US (WWVB) and in Frankfurt, Germany (DCF-77). These signals provides UTC time to an accuracy of 100 microseconds, however, the radio signal has a finite range and is vulnerable to interference.

Introduction to Network Time Protocol (NTP)

  |   By

Network Time Protocol (NTP) is one of the Internet’s oldest protocols still utilised today. 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 Area Networks (LANs).

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).

Time synchronisation with NTP is relatively simple, it synchronises time with reference to a reliable clock source. This source could be relative (a computer’s internal clock or the time on a wrist-watch) or absolute (A UTC clock source, like an atomic clock, that is accurate as is humanely possible).

Atomic clocks are the most absolute time-keeping devices. They work on the principle that the atom, caesium-133, has an exact number of cycles of radiation every second (9,192,631,770). This has proved so accurate the International System of Units (SI) has now defined the second as the duration of 9,192,631,770 cycles of radiation of the caesium-133 atom.

However, atomic clocks are extremely expensive and are generally only to be found in large-scale physics laboratories. However, NTP can synchronise networks to an atomic clock by using either the Global Positioning system (GPS) network or specialist radio transmission.

The most widely used is the GPS system which consists of a number of satellites providing accurate positioning and location information. Each GPS satellite can only do this by utilising an atomic clock which in turn can be can be used as a timing reference.

A typical GPS receiver can provide timing information to within a few nanoseconds of UTC as long as there is an antenna situated with a good view of the sky.

There are also a number of national time and frequency radio transmissions that can be used to synchronise a NTP server. In Britain the signal (called MSF) is broadcast by the National Physics Laboratory in Cumbria which serves as the United Kingdom’s national time reference, there are also similar systems in Colorado, US (WWVB) and in Frankfurt, Germany (DCF-77). These signals provides UTC time to an accuracy of 100 microseconds, however, the radio signal has a finite range and is vulnerable to interference.

The distance from the reference clock is known as the stratum levels and they exist to prevent cycles in the NTP and confirm accuracy. Stratum 0 are devices such as atomic clocks connected directly to a computer. Stratum 1 are computers attached to stratum 0 devices (like via a GPS receiver), while Stratum 2 are computers that send NTP requests to Stratum 1 servers. NTP can support up to 256 strata.

All Microsoft Windows versions since 2000 include the Windows Time Service (w32time.exe) which has the ability to synchronise the computer clock to an NTP server. It should be noted that Microsoft recommend that external time references are used rather than Internet based ones as these can’t be authenticated. Specialist NTP servers are available that can synchronise time on networks using either the MSF (or equivalent) or GPS signal.