From: vjs@rhyolite.wpd.sgi.com (Vernon Schryver)
Newsgroups: comp.sys.sgi
Subject: Re: NTP Time?
Date: 4 Jan 93 20:07:27 GMT
Organization: Silicon Graphics, Inc.  Mountain View, CA

In article <srp.726165968@cgl.ucsf.edu>, srp@babar.mmwb.ucsf.edu (Scott R. Presnell) writes:
> shenkin@still3.chem.columbia.edu (Peter Shenkin) writes:
> 
> >2.  Would there be any advantage to someone in my position's running NTP 
> >    rather than timeslave/timed?  My position is as follows:  several 
> >    machines at Columbia will be running NTP synched to a Higher Authority;  
> >    as I understand it, several hosts will be NTP servers in some sense, 
> >    to provide redundancy.  We could synch to them either by means of 
> >    timeslave/timed or else by running NTP ourselves.  My understanding 
> >    so far is that the advantage of running NTP would be a smaller load 
> >    on system/network resources (though I find it hard to imagine that 
> >    timeslave/timed constitutes a heavy load), and possibly the ability 
> 
> There is a substantial difference in the algorithms used to keep and
> calculate time offests, timeslave is similar to ntpd in result, but timed
> averages over a network, I believe - but VS would be the best to tackle
> that.

When running in isolation, the `timed` "master" is really a moderator,
averaging and distributing the time of all particpating machines.
(Recent SGI versions actually compute the median of the times instead
of the average computed by the 4.3BSD code.)

When using `timed` to synchronize a gaggle of other machines to a
master, there is much less difference functional between NTP and
timed.  `Timed` uses a relatively primitive method of measuring the
difference between the master and each client.  That method is fine on
an ethernet, but lacks the filtering needed for a wide area link, where
packet delays vary widely and where varying assymmetric delays are
common.  The Silicon Graphics `timed` client adjusts the premanent
frequence of the system clock ("-P") and does not always do always do
exactly the adjustment the master orders, all to improve the resulting
accuracy.  With all of that, `timed` does not do as well as timeslave
or NTP.  You only get between 10 and 150 milliseconds as measured by
`timedc clockdiff host`.  Of course, by default, 10 ms is one system
clock tick.

(I have always distrusted the accuracy measurements of NTP's results
reported by NTP implementations.  It seems optimistic to trust clock
code to accurately report on itself.)


> I cannot answer to machine load, but to network load there is an advantage
> - say to timeslave: timeslave uses 10 pings to ntp's *one.* (atleast simple
> ntpd - I don't run xntpd) my understanding is that ntpd gets you the
> highest precision per network buck (accuracy is up to you).

The network load is insignicant in all reasonable cases for all of
these protocols, even if you do as I do and run timeslave over very low
speed network links.

The number of packets used by timeslave varies depending on how well
timeslave has predicted the variation in the drift of the local clock.
It is also subject to the -T and -t args (see `man timeslave`).  If
things are stable and the network is not overloaded, and the symmetry
of network delays have not changed (what happens if a file transfer
starts over a SLIP line), timeslave with the default settings should
use a total of 5 round trips, 1 UDP to get the date and 4 ICMP
timestamps to get the time.  (I presume "10 pings" meant 10 round
trips, not 10 packets.)  10 small packets every 210 seconds is about
0.05% of an ethernet, fewer than the number of ARP's probably present.


Vernon Schryver,  vjs@sgi.com