Network Time Protocol (NTP) is a protocol used to synchronise computer /Network time clock in a network. It belongs to TCP/IP protocol suite. The term NTP applies to both the protocol and the client-server programs that run on computers or servers.
NTP clients and servers synchronise to the Coordinated Universal Time (UTC) time used by national laboratories. This is a global timescale and has no provisions to correct for local time zone or daylight savings time, however these functions can be performed by the operating system on a per-user basis.
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 Ethernet LANs with accuracy level upto 200 microseconds under lab conditions.
The Hierarchical setup of NTP using strata is detailed below –
- Stratum 0 are high-precision timekeeping devices such as cesium, rubidium clocks or GPS clocks. They generate a very accurate pulse per second signal that triggers an interrupt and timestamp on a connected computer. Stratum 0 devices are also known as reference clocks. Stratum-0 servers cannot be used on the network, instead, they are directly connected to computers which then operate as stratum-1 servers.
- Stratum 1 includes systems whose clocks are synchronized to within a few microseconds of their attached stratum 0 devices. They are also referred to as primary time servers.
- A Stratum 2 server is connected to the stratum 1 server over IP Network. Stratum 2 servers may also peer with other stratum 2 servers for accuracy of time for all devices in the peer group.
- Stratum 3 servers are synchronized to stratum 2 servers.
The higher limit of hierarchy of stratum is 15 , with stratum 16 used to indicate that a device is unsynchronized. Timestamps generated by an Stratum 1 Time Server will have 10 microseconds accuracy. A stratum-2 server will have anywhere from 1/2 to 100 ms accuracy and each subsequent stratum layer (stratum-3, etc.) will add an additional 1/2-100 ms of inaccuracy
One use case where NTP uses Hierarchical layer will help us understand NTP Stratum requirement in a better way.
In a big organization, generally we have primary NTP server (Stratum 1) which all the network elements will synchronise for time. However, at times security policy may not allow unsecured and Secured Zones to communicate directly. For e.g. – Network Elements in unsecured Zone like Internet cannot synchronise directly from primary NTP source in Secured Zone. Hence a hierarchy may be required where NTP server (Stratum 2) in semi secured Zone like DMZ will be synchronised to Primary time Source (Stratum 1) in Secured Zone and will further provide NTP clock time to elements in Internet/Unsecured Zone.
As shown in the diagram, Following are the clients which will synchronise to Primary NTP (Stratum 1) –
- Network Devices in Secured Zone
- Servers/Computers in Secured Zone
- NTP Server (Stratum 2) in DMZ Zone
Further, following is the list of clients which synchronise to Stratum 2 Server in DMZ Zone –
- Network Devices in DMZ Zone
- Servers/Computers in DMZ Zone
- Network Devices in Unsecured Internet Zone