Understanding Linux Network Internals: Guided Tour to Networking on Linux
By 作者: Christian Benvenuti
ISBN-10 书号: 0596002556
ISBN-13 书号: 9780596002558
Edition 版本: 1
出版日期: 2006-01-08
pages 页数: (1066 )
If you’ve ever wondered how Linux carries out the complicated tasks assigned to it by the IP protocols — or if you just want to learn about modern networking through real-life examples — Understanding Linux Network Internals is for you.
Like the popular O’Reilly book, Understanding the Linux Kernel, this book clearly explains the underlying concepts and teaches you how to follow the actual C code that implements it. Although some background in the TCP/IP protocols is helpful, you can learn a great deal from this text about the protocols themselves and their uses. And if you already have a base knowledge of C, you can use the book’s code walkthroughs to figure out exactly what this sophisticated part of the Linux kernel is doing.
Part of the difficulty in understanding networks — and implementing them — is that the tasks are broken up and performed at many different times by different pieces of code. One of the strengths of this book is to integrate the pieces and reveal the relationships between far-flung functions and data structures. Understanding Linux Network Internals is both a big-picture discussion and a no-nonsense guide to the details of Linux networking. Topics include:
Key problems with networking
Network interface card (NIC) device drivers
System initialization
Layer 2 (link-layer) tasks and implementation
Layer 3 (IPv4) tasks and implementation
Neighbor infrastructure and protocols (ARP)
Bridging
Routing
ICMP
Author Christian Benvenuti, an operating system designer specializing in networking, explains much more than how Linux code works. He shows the purposes of major networking features and the trade-offs involved in choosing one solution over another. A large number of flowcharts and other diagrams enhance the book’s understandability.
Understanding Linux Network Internals
Preface
I. General Backround
1. Introduction
2. Critical Data Structures
3. User-Space-to-Kernel Interface
II. System Initialization
4. Notification Chains
5. Network Device Initialization
6. The PCI Layer and Network Interface Cards
7. Kernel Infrastructure for Component Initialization
8. Device Registration and Initialization
III. Transmission and Reception
9. Interrupts and Network Drivers
10. Frame Reception
11. Frame Transmission
12. General and Reference Material About Interrupts
13. Protocol Handlers
IV. Bridging
14. Bridging: Concepts
15. Bridging: The Spanning Tree Protocol
16. Bridging: Linux Implementation
17. Bridging: Mi scellaneous Topics
V. Internet Protocol Version 4(IPv4)
18. Internet Protocol Version 4(IPv4): Concepts
19. Internet Protocol Version 4(IPv4): Linux Foundations and Features
20. Internet Protocol Version 4(IPv4): Forwarding and Local Delivery
21. Internet Protocol Version 4(IPv4): Transmission
22. Internet Protocol Version 4(IPv4): Handling Fragnentation
23. Internet Protocol Version 4(IPv4): Mi scellaneous Topics
24. Layer Four Protocol and Raw IP Handling
25. Internet Control Message Protocol (IOMPv4)
VI. Nei ghboring Subsystem
26. Nei ghboring Subsystem: Concepts
27. Nei ghboring Subsystem: Infrastructure
28. Nei ghboring Subsystem: Address Resolution Protocol (ARP)
29. Nei ghboring Subsystem: Miscellaneous Topics
VII. Routing
30. Routing: Concepts
31. Routing: Advanced
32. Routing: Li nux Implementation
33. Routing: The Routing Cache
34. Routing: Routing Tables
35. Routing: Lookups
36. Routing: Miscellaneous Topics
About the Author
Colophon
Copyright