NTP

Vernon Schryver vjs at rhyolite.wpd.sgi.com
Fri Oct 13 03:52:08 AEST 1989


Given the microsecond resolution in the IRIX adjtime(2) and the sub-second
resolution in gettimeofday(2), NTP should be an easy port.  Other issues
such as signals should be trivial, particularly in view of the similarities
between SVR3 "reliable" and BSD signals.

NTP does wonders for synchronizing clocks.  However, it requires each host
to be individually configured.  That can be a pain in large networks.
Broadcast, election schemes such as that used by timed(1m) are much easier
to administer, although they cannot hope for the microsecond accuracy
achieved by NTP.  Given the general sloppiness of UNIX time and process
scheduling, fractional second accuracy for things like NFS and make(1) is
usually necessary and sufficent.  Better accuracy is generally an academic
exercise, albeit one which I personally find a lot of fun.  (Before
flaming, usec time can be useful for things like network performance
research and development). 

If I had a bunch of IRIS's near one or more NTP true-tickers, I would
nominate one IRIS as a timemaster, use timeslave(1m) to synchronize the
IRIS timemaster to the nearest NTP ticker, and timed(1m) to synchronize the
rest of the IRIS's to the timemaster.

The thousands of IRIS's in SGI's internal network are synchronized in a
similar fashion.  One machine listens to a  WWV receiver with timeslave(1m).
A second machine follows the first with `timeslave -H first` and uses
`timed -M -F itself` to be the corporate timemaster.  All other machines
use `timed -M -G timelords`.  The machines in the "timelords" YP netgroup
are IP gateways between networks (i.e. routers).  The netgroup permits the
semi-automatic, centrally adminstrated construction of a hierachy of time
keepers.

I think the -G argument for timed was not present until 3.2, but the same
effect, except for the central administration, is available with -F.

When I checked a few minutes ago, the SGI network appears to be
synchronized to about 30 milliseconds.  Much better values are possible in
IRIX 3.3 where the system clock can be trimmed using the values suggested
by timeslave(1m) and timed(1m) in /usr/adm/SYSLOG.

Timedc(1m) is a useful tool for measuring differences in time of day.


Vernon Schryver
Silicon Graphics
vjs at sgi.com



More information about the Comp.sys.sgi mailing list