Many
engineers overlook
the importance of accurate
timekeeping
on a
router. It is often extremely
useful to be able to accurately pinpoint when a particular event occurred. You
may want to compare network event messages from various routers on your network
for fault isolation, troubleshooting, and security purposes. This is impossible
if their clocks are not set to a common source. In fact, merely setting the
clocks to a single common standard is not enough, because some clocks run a
little bit fast and others run a little bit slow. So router clocks need to be
continuously adjusted and synchronized.
Network Time Protocol
(NTP) is the de facto standard for Internet time synchronization.The protocol allows devices to communicate over UDP port 123 to
obtain time from an authoritative time source such as a radio clock, atomic
clock, or GPS-based time source. An NTP server connected directly to one of
these known reliable time sources is called a Stratum 1 timeserver.
Stratum 2 timeservers receive their time via NTP from a Stratum 1 server, and so
forth, up to a maximum of Stratum 16. Stratum numbers are analogous to hop
counts from the authoritative time source. NTP generally prefers lower stratum
servers to higher stratum servers unless the lower stratum server's time is
significantly different.
The algorithm is able to detect when a time source is likely to
be extremely inaccurate, or insane, and to prevent synchronization in
these cases, even if the inaccurate clock is at a lower stratum level. And it
will never synchronize a device to another server that is not synchronized
itself.
The NTP protocol is extremely efficient and lightweight. It can
synchronize a client device's clock with the server device's clock to within
milliseconds, while exchanging packets as rarely as once every 1024 seconds
(roughly 17 minutes). Even over WAN links, NTP is able to synchronize clocks to
within tens of milliseconds. To achieve this, it has algorithms that estimate
and reduce the affects of network jitter and latency. It is also able to use
multiple time sources simultaneously for improved reliability and fault
tolerance.
As the multiple stratum levels suggest, NTP uses a hierarchical
topology. However, this is relevant only to the relationships between clients
and servers, which do not need to be physically adjacent on the network. The
protocol does not require any particular underlying network topology. Cisco has recently
added multicast support, In the master/slave mode, the client device periodically sends
a message to one or more servers to request synchronization. Because the server
is closer to the original time source, its clock is assumed to be more reliable.
So the server will synchronize the client's time, but will not allow the client
to change its own clock. The server passively listens for these synchronization
requests from clients.
In the symmetric peer-to-peer mode, both NTP devices
synchronize one another. Peers can operate in active or passive mode. However,
at least one of a pair of peers must be active or nobody will ever start the
conversation.
The broadcast and multicast modes of operation are used to
synchronize a large number of passive client devices in a network. This has the
advantage of saving bandwidth caused by multiple requests for synchronization.
In most cases, the overhead caused by every device making separate requests is
minimal, however. The broadcast and muliticast modes have the disadvantage of
being less precise than a poll-response model because there is no way for the
client device to estimate network latency. The multicast mode is somewhat more
useful than the broadcast mode because it allows you to synchronize devices on
many network segments from a single source. However, multicast routing must be
enabled on the network.
Organizations can purchase their own authoritative time sources
or obtain time services via the Internet. There are small, cost-effective GPS
Stratum 1 servers on the market today, which you can use as an extremely
accurate reference clock. These devices typically cost a few thousand dollars
and can be easily rack-mounted in a computer room in the core of your network.
Alternatively, there are hundreds of public Stratum 1 and 2 timeservers
available on the Internet that allow devices to connect and synchronize with
them free of charge. Sending synchronization signals through the public Internet
introduces some additional jitter that is somewhat more difficult to estimate.
So this method is slightly less accurate than using your own timeserver, but the
difference is rarely more than a few milliseconds, and you can reduce the impact
of this problem by synchronizing with multiple servers. For most applications,
the publicly available servers are more than adequate.
More Information about NTP can be fount at -
http://www.ntp.org/
http://www.eecis.udel.edu/~mills/ntp/html/release.html