Understanding NTP Stratum Ranking and how this Affects Clock Accuracy
The NTP protocol uses strata to indicate the expected accuracy of system clocks. The device that has the most accuracy is the ‘reference’ clock—the clock with which the other devices on the system, such as workstations and servers, synchronize their time.
A machine’s time can be synchronized directly with the ‘reference’ clock, or via another machine (an ‘NTP Server’) which either synchronizes its own clock directly with the ‘reference’ clock, or with the clock of another NTP server. Each level of synchronization is assigned a different stratum number. The lower the stratum number or level, the higher the accuracy of the system clock(s) at that level. Additionally, each clock’s accuracy is also affected by the stability of the ‘reference’ clock itself, and the particular network path(s) that are used for the NTP time synchronization.
In summary:
- Stratum 0 refers to the ‘reference’ clock itself—typically an atomic clock, GPS clock, or radio clock.
- Stratum 1 refers to any machine that synchronizes its system clock directly with the ‘reference’ clock that resides at Stratum 0. For example, a server that has a GPS unit plugged into one of its serial ports.
- Stratum 2 refers to any machine that synchronizes its system clock with the clock on a Stratum 1 server.
- Stratum 3 refers to any machine that synchronizes its system clock with the clock on a Stratum 2 server, and so on.
The furthest possible level is Stratum 16. A machine at this level is deemed to not have a synchronized time source.
A machine that has just started up will initially be at Stratum 16, until it synchronizes its clock with an NTP server (or directly with the ‘reference’ clock). Once synchronized, its stratum will update to indicate its new level. (Should synchronization be unsuccessful, the machine will remain at Stratum 16.)
With machines that are configured to synchronize their system clocks via one of several NTP time sources, the stratum level can vary, depending which source is used. Such machines synchronize with whichever NTP time source has the lower Stratum level (and therefore the highest time accuracy). If both time sources are at the same Stratum level, the machine will synchronize its clock with whichever NTP device it is able to communicate with first.
Be aware that whenever a machine synchronizes its time and that synchronization causes its clock to update its time by a significant amount, that machine will indicate Stratum 16 and attempt to further re-synchronize its time. On Geo SCADA Expert systems on which the NTP Monitor driver is being used to monitor a machine’s stratum and a stratum of 16 is configured to raise an alarm, such a situation will result in ‘false positives’—an alarm will be raised due to the machine synchronizing its clock successfully if, in doing so, that synchronization causes the clock’s time to change significantly.
ATTENTION: This note only applies to machines that are running Windows Server 2012 R2 or earlier versions of Windows. With such versions of Windows, the W32Time service is not a full-featured NTP solution. Therefore, for high accuracy environments (such as ones in which time needs synchronizing to within an accuracy of 1 to 2 seconds), use an NTP client to maintain accurate time, and disable Windows Time (W32Time).
Windows Time uses the Simple Network Time Protocol (SNTP), which is a simplified version of Network Time Protocol (NTP). As such, high accuracy tolerances such as that mentioned above are outside of the design specification of the W32Time service. For more information, see https://support.microsoft.com/en-us/kb/939322.
(With computers that are running Windows Server 2016 and newer operating system versions, high accuracy time can be achieved using W32Time, providing that certain criteria are satisfied. For more information, see https://support.microsoft.com/en-us/kb/939322.)