Except in broadcast mode, an NTP association is formed when
two peers exchange messages and one or both of them create and maintain an instantiation of the protocol machine, called an
association. The association can operate in one of five modes as indicated by the host-mode variable (peer.mode): symmetric active,
symmetric passive, client, server and broadcast, which are defined as follows:
Symmetric Active (1): A host operating in this mode sends periodic messages regardless of the reachability state or stratum of
its peer. By operating in this mode the host announces its willingness to synchronize and be synchronized by the peer.
Symmetric Passive (2): This type of association is ordinarily created upon arrival of a message from a peer operating in the
symmetric active mode and persists only as long as the peer is reachable and operating at a stratum level less than or equal to the
host; otherwise, the association is dissolved. However, the association will always persist until at least one message has been sent
in reply. By operating in this mode the host announces its willingness to synchronize and be synchronized by the peer.
Client (3): A host operating in this mode sends periodic messages regardless of the reachability state or stratum of its peer.
By operating in this mode the host, usually a LAN workstation, announces its willingness to be synchronized by, but not to synchronize
Server (4): This type of association is ordinarily created upon arrival of a client request message and exists only in order to
reply to that request, after which the association is dissolved. By operating in this mode the host, usually a LAN time server,
announces its willingness to synchronize, but not to be synchronized by the peer.
Broadcast (5): A host operating in this mode sends periodic messages regardless of the reachability state or stratum of the
peers. By operating in this mode the host, usually a LAN time server operating on a high-speed broadcast medium, announces its
willingness to synchronize all of the peers, but not to be synchronized by any of them.
A host operating in client mode occasionally sends an NTP message to a host operating in server mode, perhaps right after rebooting
and at periodic intervals thereafter. The server responds by simply interchanging addresses and ports, filling in the required
information and returning the message to the client. Servers need retain no state information between client requests, while clients
are free to manage the intervals between sending NTP messages to suit local conditions. In these modes the protocol machine described
in this document can be considerably simplified to a simple remote-procedure-call mechanism without significant loss of accuracy or
robustness, especially when operating over high-speed LANs.
In the symmetric modes the client/server distinction (almost) disappears. Symmetric passive mode is intended for use by time servers
operating near the root nodes (lowest stratum) of the synchronization subnet and with a relatively large number of peers on an
intermittent basis. In this mode the identity of the peer need not be known in advance, since the association with its state variables
is created only when an NTP message arrives. Furthermore, the state storage can be reused when the peer becomes unreachable or is
operating at a higher stratum level and thus ineligible as a synchronization source.
Symmetric active mode is intended for use by time servers operating near the end nodes (highest stratum) of the synchronization
subnet. Reliable time service can usually be maintained with two peers at the next lower stratum level and one peer at the same
stratum level, so the rate of ongoing polls is usually not significant, even when connectivity is lost and error messages are being
returned for every poll.
Normally, one peer operates in an active mode (symmetric active, client or broadcast modes) as configured by a startup file, while the
other operates in a passive mode (symmetric passive or server modes), often without prior configuration. However, both peers can be
configured to operate in the symmetric active mode. An error condition results when both peers operate in the same mode, but not
symmetric active mode. In such cases each peer will ignore messages from the other, so that prior associations, if any, will be
demobilized due to reachability failure.
Broadcast mode is intended for operation on high-speed LANs with numerous workstations and where the highest accuracies are not
required. In the typical scenario one or more time servers on the LAN send periodic broadcasts to the workstations, which then
determine the time on the basis of a preconfigured latency in the order of a few milliseconds. As in the client/server modes the
protocol machine can be considerably simplified in this mode; however, a modified form of the clock selection algorithm may prove
useful in cases where multiple time servers are used for enhanced reliability.