Poll Process (Computer Network Time Synchronization)

The poll process generates output packets at regular poll intervals and determines the state of the association as reachable, unreachable, or time-out. In the normal course of operation, it sometimes happens that a server becomes erratic or unreachable over the Internet. NTP deals with this using good Internet engineering principles developed from the ARPANET (Advanced Research Projects Agency Network) experience. Each client association has a reach register of eight bits. When a message is sent to the server, the register is shifted left by one bit, with zero replacing the vacant bit. When a valid message is received from the server, the rightmost bit is set to one. If one or more bits are set, the server is considered reachable; otherwise, it is not.

From a system management point of view, the reach register has proved to be a good indicator of server and network problems. The operator quickly learns from the pattern of bits whether the server is first coming online or going offline or the network paths have become lossy. If the rightmost four bits of the reach register become zero, the server is probably going down, so a dummy update is sent to the clock filter algorithm (see below) with peer dispersion equal to the maximum of 16 s. This causes the root distance to increase, eventually exceeding the distance threshold and causing the server to become unselectable.

It is sometimes useful to send a burst of packets instead of a single packet at each poll opportunity. At initial startup when associations are first mobilized, the system clock can be set within 10 s rather than waiting 4 min without the burst. Also, in cases with moderate-to-severe network congestion, especially with relatively large poll intervals, the clock filter algorithm performance can be considerably improved. Finally, when a dial-up connection is required, such as with DSL (digital subscriber line) and ISDN (Integrated Services Digital Network) services, there may be a delay of several seconds after the first packet is sent to the modem for it to complete the call. There are two options to enable burst mode: the iburst option, which is effective when the server is unreachable, and the burst option, which is effective when it is reachable. Either or both options can be enabled by configuration commands. In either option, if the packet is to be sent, a burst of six packets is sent instead.


The burst algorithm is carefully constrained to minimize excess traffic on the network. After the first packet in the burst is sent, the algorithm waits for a reply from the server before sending the remaining packets in the burst at 2-s intervals. If no reply is received within a 64-s time-out, the second packet is sent, and after another 64-s time-out the third packet, and so forth until all packets in the burst have been sent. In addition, the burst algorithm is constrained by the rate control mechanisms described in Section 3.14.

There are two timers among the poll process variables: the poll timer and the unreach timer. At each poll event, the poll timer is set to the number of seconds until the next poll event. After the event, the poll timer decrements once each second until reaching zero and initiating the next poll event. The unreach timer increments once each second until reaching a defined timeout threshold. On reaching this threshold for a persistent association, the association is placed in a time-out state and the poll interval set at the maximum of 1,024 s. On reaching this threshold for an ephemeral or preempt-able association, the association is demobilized. For all except preemptable associations, the unreach timer is set to zero on arrival of a valid packet. For a preemptable association, the unreach timer is set to zero only in the case that there are not less than a defined minimum number of survivors of the cluster algorithm in Section 3.9 and the association is among those survivors. The intent is to leave some wiggle room should servers of similar quality bob in and out of the survivor population.

Next post:

Previous post: