Computers run NTP Client programs that use the Network Time Protocol (NTP) to sychronize their times. This website contains some helpful information and links about using NTP and developing NTP client software.
The National Institute of Standards and Technology (NIST) coordinates NTP time data via a round-robin list of NTP servers called up using the domain name time.nist.gov. This is done to help balance the load across all of the time servers.
A list of the time servers is available at NIST Internet Time Service servers. Some of these servers are time-a.nist.gov, time-b.nist.gov, and time-c.nist.gov. Additional time servers are available from The NTP Pool Project.
It is now also possible to purchase relatively inexpensive GPS based Network Time Servers. The Time Machines TM 1000A GPS Network Time Server can be placed on your network for use by all of your NTP clients.
Another that is slightly more expensive is the Eco NtpServer. This firm has several others that are rack mountable. They also have information about using W32TM on Windows Servers.
The Network Time Protocol (NTP) is described in RFC 5905
Very simply, an NTP Client opens a network connection to a NTP server on UDP port 123 to find out what time it is. The NTP Client typically records how long it took to get an answer from the NTP server, and makes adjustments accordingly. Over time, if the client computer finds that its internal time keeping is very accurate, it may space out time synchronization calls over a longer amount of time. Alternately, if it finds that its internal time keeping is not very accurate, it may speed up the time between its time synchronization calls.
Network Time Protocol on WikipediaThis article also tells you how to turn your server into an authoritative time source so you can use W32TM /stripchart /computer:myserver.com - to monitor the time on your server, and eliminate error: 0x800705B4 Configuring an authoritative time source for your Windows domain
W32TM Error 0x800705B4 occurs when the calling NTP Client program, W32TM in this case, can't connect to the destination time server, either because that time server isn't running NTP server software, or UDP port 123 is blocked on the server.
Basically, on the NTP server, you've got to set registry key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" value "Enabled" to 1, and reboot or restart the Windows Time Service. You've also got to open UDP port 123 on the server you want to query.