O NTPv3 RFC descreve cinco modos de operação:
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 the peer.
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.
Parece-me, porém, que qualquer host, exceto um nó folha, provavelmente estaria em vários modos. Por exemplo, posso ter uma rede local com três servidores NTP, cada um no modo Ativo Simétrico (1) em relação um ao outro. Cada um deles também seria cliente (3) de um dos muitos servidores públicos de dois estratos públicos . Por fim, todos eles seriam servidores como servidores (4) para muitos clientes locais.
O ponto é que eles estão apenas em um determinado modo por um momento durante a sincronização? Se sim, como um host sabe mudar? Estou procurando apenas profundidade suficiente aqui para discutir o problema de maneira educada, não para escrever um servidor de horário personalizado.