Domain Time II uses a cascading time hierarchy to coordinate the time among multiple
machines. Changes propagate down the hierarchy; each server is responsible for
matching time with the server above it in the hierarchy, and providing the time
to servers or clients below it. Using a hierarchy reduces overall network traffic,
and also favors localized traffic for networks set up with subnets. Cascading
changes help ensure that the entire system, regardless of number of subnets or
servers, synchronizes quickly and uniformly.
Level 1 (Master)
The Primary Domain Controller (PDC) is the master time server for the
domain. The PDC may obtain its time from a network source, a cesium
clock, or other reference deemed to be accurate. When the PDCs time
changes due to a correction, or once every four hours (whichever happens
first), the PDC directs a Level 1 cascade signal to each slave.
The Level 1 cascade signal expects an acknowledgement from the slave. If a
slave fails to acknowledge (perhaps because it is currently offline), this
is noted in the master's log file. If no slaves at all acknowledge the
signal, the master broadcasts a special master-changed notice.
Level 2 (Slave)
Any Backup Domain Controller (BDC), member server, or member workstation
can be configured as a slave (this is the default for BDCs). A slave
that is a BDC synchronizes with the PDC. Slaves that are member servers or
workstations synchronize with the nearest BDC. If no BDC is available,
member servers and workstations fault up to the PDC.
When a slave receives a Level 1 cascade signal from the master, it immediately
synchronizes its clock and acknowledges the signal. The slave then broadcasts
a Level 2 cascade signal to its local subnet.
Level 3 (Independent Server)
Any NT machine except a PDC may be configured as an independent server
instead of as a slave. In this configuration, the independent server does not
participate in the cascading hierarchy unless there are neither slaves nor
a master on the local subnet.
The independent server is responsible for obtaining its time from a trusted source
exactly as if it were a master server. When an independent server corrects its
clock, it broadcasts a Level 3 cascade signal to its local subnet.
Independent servers acknowledge Level 1 cascade signals, but do not act upon
them. Independent servers ignore Level 2 cascade signals from slaves.
Mixing independent servers and a domain hierarchy on
the same subnet may result in unpredictable results (unless the independent
server gets its time directly from the PDC), since Domain Time II
cannot guarantee that the independent server's time matches the rest
of the servers on the network. Typically, independent servers are used
only where no NT domain exists.
Level 4 (Client)
A client both listens for cascade signals and queries its time source on a regular
At startup, the client uses discovery broadcasts to determine if any Level 2 (slave)
machines exist on the network. If so, the client enters normal operating mode, and
will synchronize its clock upon receipt of a Level 2 cascade signal.
If no Level 2 machine is found (perhaps because all slaves are currently offline, or
the client is not connected to the network), the client enters pessimistic mode. In
pessimistic mode, the client listens for all cascade signals and responds by synchronizing
its time with whatever machine sent the cascade signal and taking the following actions:
If the cascade signal comes from a master server, the client assumes that the network
has only a master and clients. From that point on, the client will ignore Level 3
cascade signals (independent servers). This is called master-only mode. Master-only
mode converts to normal mode upon receipt of the first cascade signal from a slave.
If the cascade signal comes from a slave server, the client assumes that slaves are
now present, and from that point on ignores both Level 1 (master) and Level 3 (independent
server) signals. This is normal mode.
If the cascade signal comes from an independent server, the client will sync with the
independent server, and assume the network has neither master nor slaves. The client
continues in pessimistic mode until a master or slave signal is seen.
Note that this procedure allows the time hierarchy to automatically collapse levels
so that clients respond only to the next-highest level at any time. If a slave comes online
after the client is started, the client will note this fact and move from master-only mode
to normal mode immediately. If, while in normal mode, no slave can provide the time, the
client will automatically move into master-only or pessimistic mode, as needed.
This hands-free configuration allows you to have any mix of master, slaves, and independent
servers on your network, any of which may be working or not at any given time, and still
use Domain Time II's hierarchy to (a) limit network traffic, and (b) ensure quick, uniform
updating of all levels when the highest-level time source is updated.