Annotation of 43BSDReno/share/doc/smm/08.timedop/timed.ms, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1986 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted
        !             5: .\" provided that the above copyright notice and this paragraph are
        !             6: .\" duplicated in all such forms and that any documentation,
        !             7: .\" advertising materials, and other materials related to such
        !             8: .\" distribution and use acknowledge that the software was developed
        !             9: .\" by the University of California, Berkeley.  The name of the
        !            10: .\" University may not be used to endorse or promote products derived
        !            11: .\" from this software without specific prior written permission.
        !            12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            15: .\"
        !            16: .\"    @(#)timed.ms    6.2 (Berkeley) 3/7/89
        !            17: .\"
        !            18: .TL
        !            19: Timed Installation and Operation Guide
        !            20: .AU
        !            21: Riccardo Gusella, Stefano Zatti, James M. Bloom
        !            22: .AI
        !            23: Computer Systems Research Group
        !            24: Computer Science Division
        !            25: Department of Electrical Engineering and Computer Science
        !            26: University of California, Berkeley
        !            27: Berkeley, CA 94720
        !            28: .AU
        !            29: Kirk Smith
        !            30: .AI
        !            31: Engineering Computer Network
        !            32: Department of Electrical Engineering
        !            33: Purdue University
        !            34: West Lafayette, IN 47906
        !            35: .FS
        !            36: This work was sponsored by the Defense Advanced Research Projects Agency
        !            37: (DoD), monitored by the Naval Electronics Systems
        !            38: Command under contract No. N00039-84-C-0089, and by the CSELT 
        !            39: Corporation of Italy.
        !            40: The views and conclusions contained in this document are those of the
        !            41: authors and should not be interpreted as representing official policies,
        !            42: either expressed or implied, of the Defense Research Projects Agency,
        !            43: of the US Government, or of CSELT.
        !            44: .FE
        !            45: .LP
        !            46: .EH 'SMM:8-%''Timed Installation and Operation'
        !            47: .OH 'Timed Installation and Operation''SMM:8-%'
        !            48: .SH 
        !            49: Introduction
        !            50: .PP
        !            51: The clock synchronization service for 
        !            52: the UNIX 4.3BSD operating system is composed of a collection of
        !            53: time daemons (\fItimed\fP) running on the machines in a local
        !            54: area network.
        !            55: The algorithms implemented by the service is based on a master-slave scheme.
        !            56: The time daemons communicate with each other using the 
        !            57: \fITime Synchronization Protocol\fP (TSP) which
        !            58: is built on the DARPA UDP protocol and described in detail in [4].
        !            59: .PP
        !            60: A time daemon has a twofold function.
        !            61: First, it supports the synchronization of the clocks 
        !            62: of the various hosts in a local area network.
        !            63: Second, it starts (or takes part in) the election that occurs
        !            64: among slave time daemons when, for any reason, the master disappears.
        !            65: The synchronization mechanism and the election procedure 
        !            66: employed by the program \fItimed\fP are described 
        !            67: in other documents [1,2,3].
        !            68: The next paragraphs are a brief overview of how the time daemon works.
        !            69: This document is mainly concerned with the administrative and technical
        !            70: issues of running \fItimed\fP at a particular site.
        !            71: .PP
        !            72: A \fImaster time daemon\fP measures the time
        !            73: differences between the clock of the machine on which it 
        !            74: is running and those of all other machines.
        !            75: The master computes the \fInetwork time\fP as the average of the 
        !            76: times provided by nonfaulty clocks.\**
        !            77: .FS
        !            78: A clock is considered to be faulty when its value 
        !            79: is more than a small specified
        !            80: interval apart from the majority of the clocks 
        !            81: of the other machines [1,2].
        !            82: .FE
        !            83: It then sends to each \fIslave time daemon\fP the
        !            84: correction that should be performed on the clock of its machine.
        !            85: This process is repeated periodically.
        !            86: Since the correction is expressed as a time difference rather than an 
        !            87: absolute time, transmission delays do not interfere with 
        !            88: the accuracy of the synchronization.
        !            89: When a machine comes up and joins the network,
        !            90: it starts a slave time daemon which
        !            91: will ask the master for the correct time and will reset the machine's clock
        !            92: before any user activity can begin.
        !            93: The time daemons are able to maintain a single network time in spite of 
        !            94: the drift of clocks away from each other. 
        !            95: The present implementation keeps processor clocks synchronized 
        !            96: within 20 milliseconds.
        !            97: .PP
        !            98: To ensure that the service provided is continuous and reliable,
        !            99: it is necessary to implement an election algorithm to elect a
        !           100: new master should the machine running the current master crash, the master
        !           101: terminate (for example, because of a run-time error), or 
        !           102: the network be partitioned.
        !           103: Under our algorithm, slaves are able to realize when the master has
        !           104: stopped functioning and to elect a new master from among themselves.
        !           105: It is important to note that, since the failure of the master results
        !           106: only in a gradual divergence of clock values, the election
        !           107: need not occur immediately.
        !           108: .PP
        !           109: The machines that are gateways between distinct local area
        !           110: networks require particular care.
        !           111: A time daemon on such machines may act as a \fIsubmaster\fP.
        !           112: This artifact depends on the current inability of
        !           113: transmission protocols to broadcast a message on a network
        !           114: other than the one to which the broadcasting machine is connected.
        !           115: The submaster appears as a slave on one network, and as a master
        !           116: on one or more of the other networks to which it is connected.
        !           117: .PP
        !           118: A submaster classifies each network as one of three types.
        !           119: A \fIslave network\fP is a network on which the submaster acts as a slave.
        !           120: There can only be one slave network.
        !           121: A \fImaster network\fP is a network on which the submaster acts as a master.
        !           122: An \fIignored network\fP is any other network which already has a valid master.
        !           123: The submaster tries periodically to become master on an ignored
        !           124: network, but gives up immediately if a master already exists.
        !           125: .SH
        !           126: Guidelines
        !           127: .PP
        !           128: While the synchronization algorithm is quite general, the election
        !           129: one, requiring a broadcast mechanism, puts constraints on
        !           130: the kind of network on which time daemons can run.
        !           131: The time daemon will only work on networks with broadcast capability
        !           132: augmented with point-to-point links.
        !           133: Machines that are only connected to point-to-point,
        !           134: non-broadcast networks may not use the time daemon.
        !           135: .PP
        !           136: If we exclude submasters, there will normally be, at most, one master time 
        !           137: daemon in a local area internetwork.
        !           138: During an election, only one of the slave time daemons
        !           139: will become the new master.
        !           140: However, because of the characteristics of its machine,
        !           141: a slave can be prevented from becoming the master.
        !           142: Therefore, a subset of machines must be designated as potential 
        !           143: master time daemons.
        !           144: A master time daemon will require CPU resources
        !           145: proportional to the number of slaves, in general, more than
        !           146: a slave time daemon, so it may be advisable to limit master time
        !           147: daemons to machines with more powerful processors or lighter loads.
        !           148: Also, machines with inaccurate clocks should not be used as masters.
        !           149: This is a purely administrative decision: an organization may
        !           150: well allow all of its machines to run master time daemons.
        !           151: .PP
        !           152: At the administrative level, a time daemon on a machine
        !           153: with multiple network interfaces, may be told to ignore all
        !           154: but one network or to ignore one network.
        !           155: This is done with the \fI\-n network\fP and \fI\-i network\fP
        !           156: options respectively at start-up time.
        !           157: Typically, the time daemon would be instructed to ignore all but
        !           158: the networks belonging to the local administrative control.
        !           159: .PP
        !           160: There are some limitations to the current
        !           161: implementation of the time daemon.
        !           162: It is expected that these limitations will be removed in future releases.
        !           163: The constant NHOSTS in /usr/src/etc/timed/globals.h limits the
        !           164: maximum number of machines that may be directly controlled by one
        !           165: master time daemon.
        !           166: The current maximum is 29 (NHOSTS \- 1).
        !           167: The constant  must be changed and the program recompiled if a site wishes to
        !           168: run \fItimed\fP on a larger (inter)network.
        !           169: .PP
        !           170: In addition, there is a \fIpathological situation\fP to
        !           171: be avoided at all costs, that might occur when
        !           172: time daemons run on multiply-connected local area networks.
        !           173: In this case, as we have seen, time daemons running on gateway machines
        !           174: will be submasters and they will act on some of those 
        !           175: networks as master time daemons.
        !           176: Consider machines A and B that are both gateways between
        !           177: networks X and Y.
        !           178: If time daemons were started on both A and B without constraints, it would be
        !           179: possible for submaster time daemon A to be a slave on network X
        !           180: and the master on network Y, while submaster time daemon B is a slave on 
        !           181: network Y and the master on network X.
        !           182: This \fIloop\fP of master time daemons will not function properly
        !           183: or guarantee a unique time on both networks, and will cause
        !           184: the submasters to use large amounts of system resources in the form
        !           185: of network bandwidth and CPU time.
        !           186: In fact, this kind of \fIloop\fP can also be generated with more
        !           187: than two master time daemons,
        !           188: when several local area networks are interconnected.
        !           189: .SH
        !           190: Installation
        !           191: .PP
        !           192: In order to start the time daemon on a given machine,
        !           193: the following lines should be
        !           194: added to the \fIlocal daemons\fP section in the file \fI/etc/rc.local\fP:
        !           195: .sp 2
        !           196: .in 1i
        !           197: .nf
        !           198: if [ -f /etc/timed ]; then
        !           199:        /etc/timed \fIflags\fP & echo -n ' timed' >/dev/console
        !           200: fi
        !           201: .fi
        !           202: .in -1i
        !           203: .sp
        !           204: .LP
        !           205: In any case, they must appear after the network 
        !           206: is configured via ifconfig(8).
        !           207: .PP
        !           208: Also, the file \fI/etc/services\fP should contain the following
        !           209: line:
        !           210: .sp 2
        !           211: .ti 1i
        !           212: timed          525/udp         timeserver
        !           213: .sp
        !           214: .LP
        !           215: The \fIflags\fP are:
        !           216: .IP "-n network" 13
        !           217: to consider the named network.
        !           218: .IP "-i network"
        !           219: to ignore the named network.
        !           220: .IP -t
        !           221: to place tracing information in \fI/usr/adm/timed.log\fP.
        !           222: .IP -M
        !           223: to allow this time daemon to become a master.
        !           224: A time daemon run without this option will be forced in the state of
        !           225: slave during an election.
        !           226: .SH
        !           227: Daily Operation
        !           228: .PP
        !           229: \fITimedc(8)\fP is used to control the operation of the time daemon.
        !           230: It may be used to:
        !           231: .IP \(bu
        !           232: measure the differences between machines' clocks,
        !           233: .IP \(bu
        !           234: find the location where the master \fItimed\fP is running,
        !           235: .IP \(bu
        !           236: cause election timers on several machines to expire at the same time,
        !           237: .IP \(bu
        !           238: enable or  disable  tracing  of  messages  received  by \fItimed\fP.
        !           239: .LP
        !           240: See the manual page on \fItimed\fP\|(8) and \fItimedc\fP\|(8)
        !           241: for more detailed information.
        !           242: .PP
        !           243: The \fIdate(1)\fP command can be used to set the network date.
        !           244: In order to set the time on a single machine, the \fI-n\fP flag
        !           245: can be given to date(1).
        !           246: .bp
        !           247: .SH
        !           248: References
        !           249: .IP 1.
        !           250: R. Gusella and S. Zatti, 
        !           251: \fITEMPO: A Network Time Controller for Distributed Berkeley UNIX System\fP,
        !           252: USENIX Summer Conference Proceedings, Salt Lake City, June 1984.
        !           253: .IP 2.
        !           254: R. Gusella and S. Zatti, \fIClock Synchronization in a Local Area Network\fP,
        !           255: University of California, Berkeley, Technical Report, \fIto appear\fP.
        !           256: .IP 3.
        !           257: R. Gusella and S. Zatti, 
        !           258: \fIAn Election Algorithm for a Distributed Clock Synchronization Program\fP,
        !           259: University of California, Berkeley, CS Technical Report #275, Dec. 1985.
        !           260: .IP 4.
        !           261: R. Gusella and S. Zatti,
        !           262: \fIThe Berkeley UNIX 4.3BSD Time Synchronization Protocol\fP,
        !           263: UNIX Programmer's Manual, 4.3 Berkeley Software Distribution, Volume 2c.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.