NTP (Network Time Protocol) is the protocol designed for time distribution amongst a network. NTP is hierarchical. It organises a network into strata, which are the distance from a clock source and the device.
A dedicated NTP server that receives the time from a UTC source such as GPS or the national time and frequency signals is regarded as a stratum 1 device. Any device that is connected to a NTP server becomes a stratum 2 device and devices farther down the chain become stratum 2, 3 and so on.
Stratum layers exist to prevent cyclical dependencies in the hierarchy. But the stratum level is not an indication of quality or reliability.
NTP checks the time on all devices on the network it then adjusts the time according to how much drift it discovers. Yet NTP goes further than just checking the time on a the reference clock, the NTP program exchanges time information by packets (blocks of data) but refuses to believe the time it is told until several exchanges have taken place, each passing a set of tests known asprotocol specifications. It often takes about five good samples until a NTP server is accepted as a timing source.
NTP uses timestamps to represent the current time the day. As time is linear, each timestamp is always greater than the previous one. 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 for UTC) The NTP algorithm then uses this timestamp to determine the amount to advance or retreat the system or network clock.
NTP analyses the timestamp values including the frequency of errors and the stability. A NTP server will maintain an estimate of the quality of both its reference clocks and itself.