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.