Written by the creator of the OSPF (Open Shortest Path First) protocol, this book demonstrates the protocol in action with a complete OSPF implementation. It shows how the protocol's theory is realized in a real-time distributed software system, reveals many of the finer points of OSPF, and offers experienced-based optimization and porting techniques.
The implementation described and examined in this book is written in C++ and designed with porting in mind. The book details the software architecture of the implementation and describes in-depth key OSPF functions, illustrated by numerous code samples. It also includes a guide to porting OSPF software to different environments, with an explanation of the software layer between the OSPF implementation and the operating system. In addition, two sample ports are included–a routing daemon for Linux and an OSPF routing simulator for Linux and Windows.
Key topics covered include:
Implementation architecture, including I/O, data flow, and data structures
Porting considerations, including handling different types of CPU chips
AVL trees, Patricia trees, priority queues, timers, and logging messages
The IP routing table
Link-state database, including aging LSAs
Neighbor discovery and the neighbor state machine
Synchronization of link-state databases through the flooding algorithm
Routing calculations, including intra-area, inter-area, and external routes
An implementation of the Multicast Extensions to OSPF (MOSPF)
Configuration and monitoring, including cryptographic authentication
Together, OSPF: Anatomy of an Internet Routing Protocol and OSPF Complete Implementation provide an in-depth view into the theory and inner workings of OSPF, and the knowledge you need to make full use of this important protocol in Internet-based applications.