Secure .gov websites use HTTPS
NIST has established a mailing list (Google Group) to inform users of status changes of the Internet Time Service.
We are phasing out the ftp access to the time servers. All of the public files on the time servers, including example source code for programmers who want to write their own applications, have been moved to this public ftp site:
Most operating systems (i.e. Windows, Mac, Linux) have an option to automatically synchronize the system clock periodically using an NTP (network time protocol) server:
Windows: Double-click the system clock and then click on the Internet Time tab.
Mac: Applications > System Preferences > Date & Time
Linux: System > Admin >Time and DateIn the settings, you may be allowed to pick which NTP server the time comes from. NIST operates several stratum-1 network time servers, which means their time is directly linked to UTC(NIST), the official NIST time.
Here are the server names, locations, and IP addresses and current status.
There are some steps you may have to take when accessing the NIST Internet Time Service through a firewall.
NIST is now offering a network time service to deliver UT1 time. For details about the UT1 server, please see the UT1 NTP Information page.
The Internet Time Service and Leap Seconds
A leap second is announced in advanced in Bulletin C of the International Earth Rotation and Reference Service (www.iers.org).
The leap second can be either positive or negative, although only positive leap seconds have ever been used, and it is very unlikely that negative leap seconds will ever be required. The following discussion describes only the insertion of a positive leap second for this reason.
The leap second is added to the last minute of the last day of a month. The event can be scheduled for any month, but the months of June and December are preferred, and no other months have ever been used. The leap second event is linked to the UTC time scale (not local time as with daylight saving time), and therefore occurs at different local times in different time zones. For example, a leap second at the end of June will occur June 30 at 5:59:59 p.m. local time in Colorado (Mountain Daylight Saving Time, UTC-6).
The name of a positive leap second is 23:59:60, but systems that represent the current time as the number of seconds that have elapsed since some origin (NTP, for example) generally cannot represent that time. The next best thing is to add the extra leap second by stopping the clock for one second at 23:59:59, and that is what the NIST time servers do. That is, they repeat the binary time equivalent of 23:59:59 twice, and the next second is second 0 of the following day. The time tag corresponding to23:59:59 is therefore ambiguous, since two consecutive seconds have that name. For example, it can be difficult to establish the time-ordering of events in the vicinity of a leap second, since the time 23:59:59.2 in the leap second occurred after 23:59:59.5 in the first second with that name. A calculation of a time interval across the leap second has a similar ambiguity. There are no easy solutions to these ambiguities because the format of NTP messages does not have any means of distinguishing between the two seconds that have the same name.
There are two ways of realizing the leap second that we see as incorrect:
1) Some systems implement the leap second by repeating second 0 of the next day instead of second 23:59:59 of the leap second day. This has the same ambiguity problem of the NIST standard method, and also puts the extra second in the wrong day.
2) Some systems implement the leap second by a frequency adjustment that smears the leap second out over some longer interval. This has the advantage that the clock never stops or appears to run backward. However, it has both a time error and a frequency error with respect to legal UTC time during the adjustment period. To make matters worse, there is no universal way of realizing this idea, so that different systems that use this method may disagree during the adjustment period.
Both of these methods have the correct long-term behavior, of course, but neither of them is consistent with the legal definition of UTC. Therefore, any application that requires time that is legally traceable to national standards and uses these methods to realize the leap second, will have a time error on the order of 0.5 - 1 s in the vicinity of the leap second event.
All NIST time services provide some advance notice of the leap second, but the details vary from one service to another. For example, the NIST digital telephone service (ACTS) provides advance notice from the start of the month in which the leap second will occur. The NIST NTP servers provide advance notice starting from 00:00 UTC on the last day of the month when the leap second will occur.
Most versions of UNIX (and its derivatives, such as Linux, FreeBSD, ...) have support for the leap second built into the operating system. Many desktop systems do not have any native support at all for leap seconds, although there are some third-party applications that do this.
The simple text file, leap-seconds.list, which is available on the NIST FTP site (linked above) in folder /pub/time, contains a list of all past and announced future leap seconds. The structure of the file is explained in the comments section of the file. The file is updated at least twice per year based on messages received from the International Earth Rotation and Reference Service (iers.org).
Questions or comments: Judah Levine Time and Frequency Division NIST Boulder Judah.Levine [at] nist.gov
Protocols and Authentication
The time information provided by the service is directly traceable to UTC(NIST). The service responds to time requests from any Internet client in several formats including the DAYTIME, TIME, and NTP protocols.
Requests in these formats generally do not support authentication, and no keys or passwords are needed to use these services.
In addition to these services, we provide authenticated NTP messages using a symmetric-key algorithm that is compatible with the reference implementation of the NTP software. (For example, see www.ntp.org) The authentication ensures that the message originated from a NIST time server and was not modified during transit. This service is provided by servers that are independent of the systems described in the previous text. All of the servers are synchronized using the same algorithm, and the accuracy of the time stamps (at the server) should be comparable for any one of them. The accuracy of the time stamps as seen by a user will usually be determined largely by the stability and reciprocity of the network connection between the server and the user's systems. See the authenticated NTP description for more details.
Internet time code protocols are defined by a series of documents called Request for Comments, or RFCs. These documents are available on-line from several sites on the Internet. The protocols supported by the NIST Internet Time Service are:
Network Time Protocol (RFC-1305)
The Network Time Protocol (NTP) is the most commonly used Internet time protocol, and the one that provides the best performance. Large computers and workstations often include NTP software with their operating systems. The client software runs continuously as a background task that periodically gets updates from one or more servers. The client software ignores responses from servers that appear to be sending the wrong time, and averages the results from those that appear to be correct.
Many of the available NTP software clients for personal computers don't do any averaging at all. Instead, they make a single timing request to a signal server (just like a Daytime or Time client) and then use this information to set their computer's clock. The proper name for this type of client is SNTP (Simple Network Time Protocol).
The NIST servers listen for a NTP request on port 123, and respond by sending a udp/ip data packet in the NTP format. The data packet includes a 64-bit timestamp containing the time in UTC seconds since January 1, 1900 with a resolution of 200 ps.
Most of the NIST time servers do not require any authentication when requesting the time in NTP format, and no keys or passwords are needed to use this service. In addition to this standard NTP service, we also offer an authenticated version of NTP using four time servers which implement the symmetric key encryption method defined in the NTP documentation. In order to use these servers, you must apply to NIST for an encryption key, which will be linked to the network address(es) of your system. For more details, please see the authenticated ntp description.
Daytime Protocol (RFC-867)
This protocol is widely used by small computers running MS-DOS and similar operating systems. The server listens on port 13, and responds to requests in either tcp/ip or udp/ip formats. The standard does not specify an exact format for the Daytime Protocol, but requires that the time is sent using standard ASCII characters. NIST chose a time code format similar to the one used by its dial-up Automated Computer Time Service (ACTS), as shown below:
JJJJJ YR-MO-DA HH:MM:SS TT L H msADV UTC(NIST) OTM
Time Protocol (RFC-868)
This simple protocol is now used by only about 1% of ITS customers. It returns a 32-bit unformatted binary number that represents the time in UTC seconds since January 1, 1900. The server listens for Time Protocol requests on port 37, and responds in either tcp/ip or udp/ip formats. Conversion to local time (if necessary) is the responsibility of the client program. The 32-bit binary format can represent times over a span of about 136 years with a resolution of 1 second. There is no provision for increasing the resolution or increasing the range of years.
The strength of the time protocol is its simplicity. Since many computers keep time internally as the number of seconds since January 1, 1970 (or another date), converting the received time to the necessary format is often a simple matter of binary arithmetic. However, the format does not allow any additional information to be transmitted, such as advance notification of leap seconds or daylight saving time, or information about the health of the server.
Setting your computer clock using a downloaded program
Another way to synchronize your computer clock is by running software that queries an Internet time server. NIST provides a free (Windows) program called nistime-32bit.exe
Save the program, and when you run it, select:
Query Server > Now
Several programs have been written that can be used to synchronize a computer to NIST.
See our list of publishers of computer clock synchronization software for many different platforms.
We also have an FTP site with source code for programmers who want to write their own applications.