Understanding Linux Network Internals Front Cover

Understanding Linux Network Internals

  • Length: 1066 pages
  • Edition: 1
  • Publisher:
  • Publication Date: 2006-01-05
  • ISBN-10: 0596002556
  • ISBN-13: 9780596002558
  • Sales Rank: #475981 (See Top 100 Books)
Description

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.

Table of Contents

Part I. General Background
Chapter 1 Introduction
Chapter 2 Critical Data Structures
Chapter 3 User-Space-to-Kernel Interface

Part II. System Initialization
Chapter 4 Notification Chains
Chapter 5 Network Device Initialization
Chapter 6 The PCI Layer and Network Interface Cards
Chapter 7 Kernel Infrastructure for Component Initialization
Chapter 8 Device Registration and Initialization

Part III. Transmission and Reception
Chapter 9 Interrupts and Network Drivers
Chapter 10 Frame Reception
Chapter 11 Frame Transmission
Chapter 12 General and Reference Material About Interrupts
Chapter 13 Protocol Handlers

Part IV. Bridging
Chapter 14 Bridging: Concepts
Chapter 15 Bridging: The Spanning Tree Protocol
Chapter 16 Bridging: Linux Implementation
Chapter 17 Bridging: Miscellaneous Topics

Part V. Internet Protocol Version 4 (IPv4)
Chapter 18 Internet Protocol Version 4 (IPv4): Concepts
Chapter 19 Internet Protocol Version 4 (IPv4): Linux Foundations and Features
Chapter 20 Internet Protocol Version 4 (IPv4): Forwarding and Local Delivery
Chapter 21 Internet Protocol Version 4 (IPv4): Transmission
Chapter 22 Internet Protocol Version 4 (IPv4): Handling Fragmentation
Chapter 23 Internet Protocol Version 4 (IPv4): Miscellaneous Topics
Chapter 24 Layer Four Protocol and Raw IP Handling
Chapter 25 Internet Control Message Protocol (ICMPv4)

Part VI. Neighboring Subsystem
Chapter 26 Neighboring Subsystem: Concepts
Chapter 27 Neighboring Subsystem: Infrastructure
Chapter 28 Neighboring Subsystem: Address Resolution Protocol (ARP)
Chapter 29 Neighboring Subsystem: Miscellaneous Topics

Part VII. Routing
Chapter 30 Routing: Concepts
Chapter 31 Routing: Advanced
Chapter 32 Routing: Li nux Implementation
Chapter 33 Routing: The Routing Cache
Chapter 34 Routing: Routing Tables
Chapter 35 Routing: Lookups
Chapter 36 Routing: Miscellaneous Topics

To access the link, solve the captcha.