Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices, Second Edition takes an interdisciplinary approach to applying principles for efficient implementation of network devices, offering solutions to the problem of network implementation bottlenecks. In designing a network device, there are dozens of decisions that affect the speed with which it will perform - sometimes for better, but sometimes for worse. The book provides a complete and coherent methodology for maximizing speed while meeting network design goals. The book is uniquely focused on the seamless integration of data structures, algorithms, operating systems and hardware/software co-designs for high-performance routers/switches and network end systems.
Thoroughly updated based on courses taught by the authors over the past decade, the book lays out the bottlenecks most often encountered at four disparate levels of implementation: protocol, OS, hardware and architecture. It then develops fifteen principles key to breaking these bottlenecks, systematically applying them to bottlenecks found in end-nodes, interconnect devices and specialty functions located along the network. Later sections discuss the inherent challenges of modern cloud computing and data center networking.
Table of Contents
Part I: Rules of the Game 1. Introducing Network Algorithmics 2. Network Implementation Models 3. Fifteen Implementation Principles 4. Principles in Action
Part II: Playing with Endnodes 5. Copying Data 6. Transferring Control 7. Maintaining Timers 8. Demultiplexing 9. Protocol Processing
Part III: Playing with Routers 10. Exact-Match Lookups 11. Prefix-Match Lookups 12. Packet Classification 13. Switching 14. Scheduling Packets 15. Routers as Distributed Systems
Part IV: Endgame 16. Measuring Network Traffic 17. Network Security 18. Conclusions
Appendix: Detailed Models