Network Time Protocol is an Internet protocol used to synchronize computer clocks to a stable and precise time reference. NTP was originally developed by Professor David L. Mills at the University of Delaware in 1985 and is an Internet standard protocol.
NTP was developed to solve the problem of multiple computers working together and having the different time. Whilst, time usually just advances, if programs are running on different computers time should advance even if you switch from one computer to another. However, if one system is ahead of the other, switching between these systems would cause time to jump forward and back.
As a consequence, networks may run their own time, but as soon as you connect to the Internet, effects become visible. Just Email messages arrive before they were sent, and are even replied to before they were mailed!
Whilst this sort of problem may seem innocuous when it comes to receiving email, however, in some environments a lack of synchronisation can have disastrous results this is why air traffic control was one of the first applications for NTP.
NTP uses a single time source and distributes it amongst all devices on a network it does this by using an algorithm that works out how much to adjust a system clock to ensure synchronisation.
NTP works on a hierarchical basis to ensure there are no network traffic and bandwidth problems. It uses a single time source, normally UTC (coordinated universal time) and receives time requests from the machines on the top of the hierarch which then pass the time on further down the chain.
Most networks that utilise NTP will use a dedicated network time server to receive their UTC time signal. These can receive the time from the GPS network or radio transmissions broadcast by national physics laboratories. These dedicated NTP time servers are ideal as they receive time direct from an atomic clock source they are also secure as they are situated externally and therefore do not require interruptions in the network firewall.