This book is all about wrangling a herd of network computers so that all
display the correct time. This may seem like a really narrow business,
but the issues go far beyond winding the clock on your display taskbar.
Carefully coordinated, reliable, and accurate time is vital for traffic control
in the air and on the ground, buying and selling things, and TV network
programming. Even worse, ill-gotten time might cause domain name system
(DNS) caches to expire and the entire Internet to implode on the root
servers, which was considered a serious threat on the eve of the millennium
in 1999. Critical data files might expire before they are created, and
an electronic message might arrive before it was sent. Reliable and accurate
computer time is necessary for any real-time distributed computer
application, which is what much of our public infrastructure has become.
This book speaks to the technological infrastructure of time dissemination,
distribution, and synchronization, specifically the architecture, protocols,
and algorithms of the Network Time Protocol (NTP). NTP has been active
in one form or another for over almost three decades on the public Internet
and numerous private networks on the nether side of firewalls. Just about
everything today that can be connected to a network wire has support for
NTP: print servers, WI-FI access points, routers and printers of every stripe,
and even battery backup systems. NTP subnets are in space, on the seabed,
onboard warships, and on every continent, including Antarctica. NTP comes
with most flavors of Windows as well as all flavors of Unix. About 25 million
clients implode on the NTP time servers at the National Institute of Standards
and Technology (NIST) alone (J. Levine, NIST, personal communication).
This book is designed primarily as a reference book but is suitable for a
specialized university course at the senior and graduate levels in both computer
engineering and computer science departments. Some chapters may
go down more easily for an electrical engineer, especially those dealing with
mathematical concepts, others more easily for a computer scientist, especially
those dealing with computing theory, but each will learn from the other.
There are things for mathematicians, cryptographers, and spacefarers, even
something for historians.