Network Time Protocol is an internet protocol used for the dissemination of accurate time around the internet and computer networks. It is a client-server based protocol, clients request accurate time from a server and the server responds accordingly. Many complex algorithms were developed for NTP to enable more accurate time synchronization and to alleviate drift. However, for many applications, particularly on smaller computers and micro-controllers, the complexity of NTP is not required. Moreover, these algorithms can consume too much available memory and processing power. For this reason, the Simple Network Time Protocol (SNTP) was developed.
This article attempts to describe some of the differences between the NTP and SNTP protocols, such as:
- NTP and SNTP server client communication.
- When can SNTP can be used in place of NTP.
- The Use of SNTP in Microsoft Windows.
NTP and SNTP Server Client Communication
The NTP protocol is a client-server protocol based on the exchange of packets of data using the UDP protocol over TCP/IP. A network time client sends a packet of information to request time from a NTP server, which duly responds with a packet containing timing information. SNTP works in exactly the same manner. Moreover, the definition of each packet of information is identical. This means that any SNTP client can synchronize to any NTP server. In fact a NTP server cannot tell whether a request for time originated from a NTP or SNTP client, they appear identical.
When can SNTP can be used in place of NTP
The main differences between NTP and SNTP are contained within the program itself. NTP has developed many complex algorithms that contain calibration techniques aimed at maintaining accurate time. It allows multiple time references to be monitored with selection algorithms to ascertain which is the most stable. Additionally, NTP adjusts the system time of a computer with very small skewed adjustments of the system clock in an attempt to make time corrections seamless. The system clock is speeded-up or slowed slightly to account for small time adjustments.
SNTP adopts a much simpler approach. Many of the complexities of the NTP algorithm are removed. Rather than skewing time, many SNTP clients step time. This is fine for many applications where a simple time-stamp is required. Additionally, SNTP lacks the ability to monitor and filter multiple NTP servers. Often a simple round-robin approach is used, where if one server fails, the next one in a list is used.
The Use of SNTP in Microsoft Windows
Microsoft Windows has been one of the most well-known operating systems to adopt SNTP. It’s Windows Time service (W32time.exe) uses the protocol to synchronize to NTP servers. It has been widely criticized for not providing Windows time servers with a robust time synchronization utility.
SNTP was developed for and is ideally suited to smaller computers and micro-controllers or applications that do not require the additional complexity of NTP algorithms. Many of these algorithms may not be easily implemented on smaller computers – consuming too much memory and processing power. NTP is better suited to synchronizing large clusters of clients, such as corporate networks or the internet. The added robustness of NTP’s calibration algorithms helps larger computer systems maintain accurate synchronization.