Computer Time Synchronization
A Beginner's Guide to Network Time Protocol (NTP)
Warning! This page contains obsolete information.
Installing NTP Clients and Servers on Windows
To some degree this page is obsolete because all the 9x
Windows systems are discontinued and unsupported as is NT. 2000 and XP
have limited Microsoft support for NTP included. For anyone still using a 9x
system either the Automachron or NetTime products discussed below should
work fine. They also have not been developed recently. For NT any of
the products discussed below should work. I am not personally
familiar with the newer Microsoft products, but from the description of
someone I trust, all the products described below are superior to the Microsoft
implementation in standard desktop version of XP. If you have one or a few desktop systems
and are looking for a very simple solution then Automachron is the
answer. At the opposite extreme, if you want a fully NTP standards
compliant server, that gives you control of all
options, then you want a binary port as discussed in the
fourth option below.
Three SNTP products for Windows are discussed here,
one client only and two client server.
All are free for personal and commercial use, but only NetTime is true open source.
If you're already running ntpd (or timed) on multiple Unix
machines, you may want to run NTP client only software on
your Windows machines, avoiding the minor additional complexity
introduced by Windows time servers.
What and How explains NTP basics and
Public NTP Servers tells how to find
public time servers referred to here.
The best Windows SNTP products I know of are 1) Automachron,
a reliable, simple but flexible, client
only time synchronizer that runs on all Windows platforms, with very good report and
logging options. 2) World Time 5 (as of April 2005, the current version is
WT6) is a versatile clock and scheduling product including client
and optional SNTP server synchronization for all Windows
platforms. 3) The open
source, NetTime, SNTP product has both client and server capabilities
on all Windows platforms. It runs as system tray and / or service
on NT and 2000. 4) A port of the current NTP source to Windows. This
provides full ntpd client server capabilities on NT and latter Windows
platforms.
1) Automachron: time sync only client, all Windows
2) World Time 5: clock & sync client, all Windows
3) NetTime: SNTP client and server, all Windows
4) Ntpd: full NTP client and server for Windows NT, 2000, XP
Recommendations and Suggested Configurations
Automachron
When I first searched for Windows computer time synchronization
software, I did not find any open source NTP Windows clients but
I did find an excellent, freeware product with no restrictions
regarding use in commercial environments. This is Automachron
from
http://www.oneguycoding.com/automachron/
which is mentioned on the
Other Time Software page. I forget
the install procedure because it was a standard, trivial Windows
install, that worked as it should, the first time.
Automachron typically runs as a system tray program on Windows 95
- 2000. On NT it can be made to run as service with the NT
resource kit program, srvany. Automachron has many options
starting with the ability to pick NTP servers, protocol version
and port, and save these settings for later use. It can poll
servers at any user specified interval or be a passive broadcast
client, if local ntpd servers are in broadcast mode. It has a
report only mode where it displays results without adjusting the
system clock. It can wait for a dial-up connection, set limits
on how much the clock can be adjusted, and log everything it does
with very detailed results. Automachron displays much more than
delay and offset information. In addition to supporting NTP it
also connects to Time Protocol servers (timed on UNIX). All
Automachron options can be changed at any time, by selecting
Properties from the system tray icon.
Automachron was my NTP solution on my Windows NT workstation
for about a year. I installed ntpd (the Trimble port) on my workstation
briefly but had problems and returned to
Automachron for my workstation time synchronization program.
Recently (June 2001) I began running Net Time instead but held Automachron in
reserve in case there are problems with Net Time. Automachron is so
simple and trouble free that there is little point in trying to
figure out what the problem is with any other software on the
workstation. I've never seen any visible time discrepancy
between the workstation and any other computers when Automachron
does the synchronizing.
World Time 5
I found World Time 5, available from
http://pawprint.net/wt/,
after my original time software searches. It's free
and runs on all Windows platforms. It uses Simple Network
Time Protocol (SNTP) to synchronize with public time servers. It
includes a long list of stratum 1 servers and has an option to
cycle through them or select a single server for use. You can add
others you know of. I had to turn the annoying default
synchronize sounds off. The World Time authors also provide an
SNTP server as a separate application downloadable from the same
web site. (This is now included.)
Time synchronization is only one of World Time's many time
related functions. I wanted a clock that would display UTC.
World Time will display as many clocks as you have room for in
any time or date and time format and display the correct time
from any geographical location. It includes an alarm manager with
audio and or visual reminders and the ability to start software.
There's also a calendar and as many stop watches as you want and
some other time related applications. This well done example of
freeware gets 5 stars at ZDNet.
I did have a problem with World Time though. The only computer
it could consistently get a connection to was bitsy.mit.edu. It
never connected to any of my local servers by name or IP address.
Automachron on the other hand appears to connect with complete
reliability wherever it's pointed and by name or IP address.
Maybe Automachron just tries harder and doesn't log individual
failed packets and World Time logs every failure. Still, I don't
like running software that's logging 2 or 3 failures for every
success. After a short time, I returned to Automachron for time
synchronization, while using World Time for it's other features.
As I had other time synchronization issues on my NT workstation
it's possible this was a workstation and not a Worldtime problem.
On the other hand, two different SNTP based products worked with
complete reliability in exactly the same environment.
NetTime
In June 2001, a reader brought NetTime, available from
http://sourceforge.net/projects/nettime/
to my attention. Unlike the other Windows specific products listed
on this page, which are simply freeware, NetTime is a true open
source product. It's an original implementation of the SNTP
protocol and available with source code under a
BSD open source license.
After downloading the NetTime install .EXE, you're prompted if you
want to install NetTime, and then presented a typical Installshield
screen. The first option is the install location and then Start Menu
group after which the actual install is performed taking only a few
seconds. On Windows NT and 2000, you are given an option to install
NetTime as a service, which I'd strongly recommend. The prompt tells
you that you must be logged in as an administrator for this to work.
Last you are prompted to configure NetTime. This is a necessary
step.
There is an Auto Configure option. It tries servers in its own
list and searches for local servers. In two attempts, it found
and recommended one of my local NTP servers, but does not enter
this information into the server address fields. It simply
locates the NTP or SNTP server with the smallest "netlag" which
is not synonymous with NTP synch distance. The suggested server
is probably a good single server choice.
NetTime allows up to five time server addresses by name or IP
number. It offers three protocol choices per server. I used the
SNTP protocol choice. The standard UNIX Time protocol on port 37
is also available as both TCP and UDP. For each potential server,
you can invoke the "Find" option which lets you select servers
from a geographical tree of known public time servers (a mixture
of stratum 1 and 2 public servers) and test each. Each that's
reached, is saved in a list with the net lag shown, allowing you
to select one as your time server. Find can also search for
local time servers not in NetTime's lists.
The last NetTime install option asks if you want it to run as a
system tray item. The answer is not important, if it's running
as a service on Windows NT or 2000. You can remove it from the
system tray at any time and put it back by selecting it from the
start program menu. On Windows 95, 98 and ME, if it's not
running in the system tray, it won't be running. The system tray
allows a forced manual time synchronization or brings up the
configuration dialog for updates. Any choice made during the
install can be changed at any time.
I installed NetTime on two NT workstations. Both found and
synchronized from both my Linux and NT NTP time servers and
neither could find my OpenBSD time server, but will use the
OpenBSD time server if pointed to it. The Linux and NT as
well as other client NTP machines have no difficulty locating the
BSD NTP server and Automachron on the same NT workstation also
finds and uses the BSD NTP server. On the other hand World Time,
mentioned above, cannot find any of the local NTP servers and has
difficulty with many outside public time servers. I've been
running NetTime on my NT workstation for about 6 months now
(Dec 2001) and have never had any problem with it. I think
it's a pretty clear first choice for an all around Windows
time synchronization product with no extra frills.
NetTime includes an option that allows it to act as a time server
to other machines. This is just a simple check box on the
configuration dialog. There is no reason to think that this
would not work on 95, 98 and ME machines but requires that the
desktop be open even if no user is actively using it. As a service
on NT or 2000 no user needs to be logged in.
If you change the time on a computer running NetTime, it will
almost immediately launch a dialog box telling you of the
discrepancy and giving you a choice of synchronizing the local
computer with the NTP server times or shutting down the NetTime
service. At first this seemed odd but makes sense. If you wish to
allow a
discrepancy between your computer time and that being reported by
NTP servers, there in no reason for NetTime to continue running, as it's
sole purpose is to synchronize with the servers.
Overall, NetTime is a fine implementation of SNTP, providing all
the choices any but the most demanding environments are likely to
want, in a simple package that NTP novices should have no
difficulty with.
Ntpd Port of NTP
Another option on NT is to get a full implementation of Network
Time Protocol. You could get the ntpd source package and build
and install it yourself. This is not recommended but
if you go this route, you'll want to look at the
NTP 4.x for Windows NT
page. This page has not been updated
since July 2003.
A much better way is to let someone else do the hard work
and create a standard Windows install application with a complete
current Windows ntpd implementation included. For several years
none was available but thanks to Meinberg Funkuhren, a German company
that makes a variety of precision time equipment, including a PC
radio clock and LAN time server, which use the
ntpd server (the PC or LAN server become a stratum 1 NTP server), new
Windows ports are now available for NT, 2000, 2003, and XP. Both a
stable and experimental version are available at
http://www.meinberg.de/english/sw/ntp.htm.
Be sure to look at the documentation page described as the
"NTP Installer Readme". The "NTP info page" up higher links to
an more general discussion of NTP, and also has links to Meinberg's two
NTP related hardware products. Unlike previous Windows ports
of NTP, this new Meinberg port has good online documentation
describing what you're getting before you download, so take advantage
of it. I no longer have a Windows system to test this on,
but I suspect that unlike many Windows installs, this one may
not be successful if you don't read the instructions.
There are also several commercial products but these can cost hundreds
of dollars per server plus client license fees. With Microsoft
providing at least basic NTP products and the real thing available
for free, it's beyond my comprehension why anyone would pay commercial
fees for a product like this. A computer professional whose prepared
to pay several hundred dollars for a GUI interface so he or his staff
doesn't have to look at a text configuration file doesn't merit the
designation professional.
Recommendations and Suggested Configurations
Which of the four Windows NTP or SNTP computer time
synchronizations products is the best choice depends largely on
three factors. How many computers need to be time synchronized,
the diversity of your computing environment, and the relative
importance you place on simplicity of install versus complete
accuracy of the time on the computers. Here, diversity of your
computing environment has to do more with whether or not it
contains multiple UNIX machines that must also be time
synchronized, rather than having multiple Window's family OSs.
I'll start with the smaller, simpler environments first.
I ran NetTime for about two years and never had a problem.
For most circumstances NetTime would now be my clear first choice in
Windows time synchronization products but under some situations I'd
consider Automachron. The previous was written at a time when no
binary port of NTP was available. Now (April 2005) that one is again,
I'd probably consider that as my first choice, except for the simplest
of situations where Automachron is appropriate.
What I might use under various circumstances follows.
If you have between one and five Windows only computers the
choice is between Automachron and NetTime. If you value
simplicity, choose Automachron and pick a nearby
public stratum 2 time server. Point
all your Windows PCs to the same time server. Don't use pool
servers if your computers are using Automachron and outside
servers, as each will have marginally different times.
If all use the same stratum 2 server, all your computers
will have the same time and it will nearly always be very close
to correct. Public stratum 2 time servers are rarely off by a
second if that much. I have, however, once seen one off by about
an hour and a half. If the selected server is wrong, all your
computers will have the wrong time unless the public server time
change is sudden, and exceeds the configuration limits set in
Automachron.
Public time servers are unlikely to drift much from the accurate time
but could accidentally be changed by an administrator or set
maliciously by an intruder. Using Automachron, you can
significantly reduce the chance of your computers accepting an
invalid time by changing the default Max Ahead and Max Back
settings from the default 3600 seconds and 600 seconds
respectively to 120 to 180 seconds each, after first accurately
setting the local computer times by conventional methods or by
using
The Official U.S. Time.
The day prior to daylight savings time changes you'd want to
change ahead or back to 3660 or 3720 and the following day
restore it to a more conservative value.
If accuracy is more important than simplicity of setup, then use
NetTime rather than Automachron. With more than one PC, on each
PC check "Allow other computers to sync to this computer". Once
NetTime is running on all your PCs, use the "Find" button then
"Find Local NTP Servers". Those that have been checked should
show (and each PC should find itself). With the ported version of
ntpd use "peer" in the configuration file and provide the IP address
or hostname of the other PCs.
With one Windows PC I'd use three to five different outside pool or public
stratum 2 time servers. With two PCs, I'd use three or four each public
time servers and the other PC as a fourth or fifth time server. With
three Windows PCs, I'd use three each outside time servers and
the other two PCs as a fourth and fifth. With four PCs, two
outside and three local time servers. With five PCs, I'd only
use one outside time server each and four local time servers.
With each of these setups, if one or even two bad times are
received from outside, NetTime should rely on the other local
PCs, whose times should closely agree, as the time sources.
The same logical setup could be done with a ported version of ntpd.
With four or more computers, you can, and with six or more, you
should move to a local server topology, where three computers that
are up 24 hours a day, become time servers for your LAN. See What NTP Does and How It Works for an
explanation. Each of the three local time serves, now stratum 3
servers, should get time from two or three outside sources, peer
with each other and act as time servers to the rest of the LAN.
Use different outside time servers for each of your top level
time servers. You can do this with NetTime or preferably you
can use the ported version of ntpd.
With NetTime, the setup would be similar to the three PC setup
described above, except that all other PCs would use the three
local NetTime Windows PCs as time servers and would not be set to
act as servers themselves. Only the three time server PCs would
directly connect to nine outside time sources and also use each
other as time sources. The setup for the ported version of ntpd
would be the same. The "server" command would specify the outside
servers in the configuration file of the time servers and the "peer"
command the other two servers. The client only PCs would all name
the three local servers as their servers with the "server" command
and not use peers. There is also a broadcast mode but I'm not
familiar with its pros and cons or setup options.
You could use Automachron on the client only computers but the
simplicity of the install is offset by using two different
software products in your environment. You'd have to select a
"primary" time server to which all the Automachron clients would
connect or different computers on the LAN could have different
times. This also eliminates the redundancy of having three top
level servers, any two of which can be down for moderate periods
without much affecting the overall time accuracy of clients
throughout the LAN. Ntpd is a very low overhead server and
can run on any machine that is normally up 24 hours a day
including desktop machines.
If you do want a very simple way to set up a local time server, it makes
better sense
to have a single NetTime or ntpd port server connecting to three to five
outside sources and serving as the sole server to a LAN of
Automachron clients. If you are setting up multiple local time
servers using NetTime or an ntpd port, it makes better sense to stick with
NetTime or the ntpd port consistently for all the clients as well.
If your environment includes three or more UNIX machines that are
up 24 hours a day, they should obviously be included in the local computer
time synchronization. This situation is quite different than an
all Windows environment. There aren't a lot of half way NTP
solutions in the UNIX world. If a computer uses the NTP
protocol, it will almost certainly be using ntpd and the only
difference between a client and a server will be the details of
the configuration file. Except for public time servers with many
thousands of clients, the load is negligible on an ntpd server.
Any UNIX machine that's normally up 24 hours
a day and is Internet connected, whether it's a server or desktop
should do. If I had such
machines mixed with Windows machines, I'd pick three UNIX
machines for use as stratum 3 time servers and run all Windows
machines as clients only.
There could still be a choice between Automachron and NetTime.
The issues discussed above apply. Automachron suggests the
selection of a "primary" time server. A single, reliable UNIX
machine could use several outside time sources and act as the
sole local time server; it's not the recommended configuration
but would work.
What about World Time? World Time 5 is a fine clock and
scheduling program but I cannot recommend it for computer time
synchronization. It may work well in other environments. Given
its over all quality, I'm surprised at what I've seen but in my
environment it simply was not acceptable for time synchronization.
The problems could have been my NT Workstation and not World Time as
two time products on this NT Workstation, WorldTime and Trimble's
ntpd port, have exhibited some anomalous behavior. If the many
other clock features of World Time appeal to you then it's worth
trying it's time synchronization capabilities. It's supposed to
work as either a client or optionally as a server so should fit
any strategy outlined above. If the time synchronization is not
reliable but the other clock features are valuable, one of the
other products could be added for time synchronization. I
continued to use World Time as long as I used NT even though
I did not use it for time synchronization after a day or so.
One very practical element to NTP that does not appear to be part
of SNTP is the ability to maintain accurate time without a
current outside time source. As it runs, ntpd calibrates the
current computer's clock and up to some limit of accuracy knows
how fast or slow it naturally runs. Absent outside time sources,
once the ntp.drift file has been calculated and saved, as long as
ntpd continues running, it can keep the local computer's time
accurate (within limits) for hours or even days.
Like Automachron, if NetTime has only a single outside time source, it
may slavishly set the local computers time to match. If it has
two different outside times it will average them not checking
either for plausibility.
My understanding of ntpd is that if the
outside times are not plausible, it won't use them and it won't
average unmatched times. So if accuracy and reliability are your
primary concern then you'll definitely choose the ntpd port.
If these are really a high priority you'd want to at least
investigate having your own stratum 1 server, i.e. check out
the Meinberg products at
http://www.meinberg.de/english/info/ntp.htm.
There are of course competing products so if these look seriously
interesting to you, you'll want to investigate at least some alternatives
before making any purchases.
Top of Page -
Site Map
Copyright © 2000 - 2014 by George Shaffer. This material may be
distributed only subject to the terms and conditions set forth in
https://geodsoft.com/terms.htm
(or https://geodsoft.com/cgi-bin/terms.pl).
These terms are subject to change. Distribution is subject to
the current terms, or at the choice of the distributor, those
in an earlier, digitally signed electronic copy of
https://geodsoft.com/terms.htm (or cgi-bin/terms.pl) from the
time of the distribution. Distribution of substantively modified
versions of GeodSoft content is prohibited without the explicit written
permission of George Shaffer. Distribution of the work or derivatives
of the work, in whole or in part, for commercial purposes is prohibited
unless prior written permission is obtained from George Shaffer.
Distribution in accordance with these terms, for unrestricted and
uncompensated public access, non profit, or internal company use is
allowed.
|