The Network Time Protocol is a means of precisely synchronizing time between multiple computers on a network. Most computer clocks lose at least a full second of time every day, which is not that important to the average user. Many security and event-logging systems must track computers on several networks including the Internet. These systems rely on clock synchronization of their linked computers with the Network Time Protocol. This protocol frequently updates the exact time on its clients from servers which maintain the international atomic time standard.
Also known by the acronym NTP, the Network Time Protocol was first established as a standard in the late 1980s. Several revisions were made throughout the 1990s to improve authentication, algorithms, precision and external synchronization. In 2010, NTP Version 4 was proposed by the Internet Engineering Task Force (IETF) in Request For Comments (RFC) 5905. Version 4 includes public-key cryptography, nanosecond time precision and a method of locating a time server automatically. It also includes improved algorithms and accuracy as well as support for new hardware reference clocks and operating systems.
A user on a small local network may only be mildly annoyed when email or file modification timestamps are out of order. Networks with many users and shared resources on the Internet will be significantly affected by this, however. For financial transaction databases, industrial control applications and network monitoring software, accurate time is usually critical, not only on the system recording the transaction, but on all computers reporting data, 24 hours a day. The Network Time Protocol and the international time servers which support it can address these needs.
A network administrator could update the time daily on each client manually from a time server. Systems can also be configured to reload the time on each reboot. Time drift from hour to hour is significant, however, due to many factors including temperature and operating system issues. The best solution is usually to automatically reset each clock in very small increments multiple times a day with the Network Time Protocol. Using this method, systems and users are not "surprised" by relatively large, sudden leaps forward or backward in time.
A client using the Network Time Protocol can obtain the accurate time from an Internet-based server or a hardwired external time source. Ultimately, both sources get the Coordinated Universal Time (UTC) from an international time server. A hardwired source may receive it directly or indirectly via a special radio signal. A network source usually obtains it indirectly through several layers of servers running NTP software. While there are only a few time servers wired directly to atomic clocks, tens of thousands of servers worldwide relay the time to local systems.
Network time-related software running on each NTP client keeps its clock updated with extreme accuracy and regularity. When a client is not connected to the Internet, the NTP algorithms estimate the current time based on past performance. Systems which do not need the full capabilities of NTP can use a stripped-down version called the Simple Network Time Protocol (SNTP).