Understanding Linux network internals

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...

Descripción completa

Detalles Bibliográficos
Otros Autores: Benvenuti, Christian, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Beijing ; Sebastapol, California : O'Reilly Media [2006].
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627172706719
Tabla de Contenidos:
  • Table of Contents; Preface; The Audience for This Book; Background Information; Organization of the Material; What Is Not Covered; Conventions Used in This Book; Using Code Examples; We'd Like to Hear from You; Safari Enabled; Acknowledgments; Part I; Introduction; Basic Terminology; Common Coding Patterns; Memory Caches; Caching and Hash Tables; Reference Counts; Garbage Collection; Function Pointers and Virtual Function Tables (VFTs); goto Statements; Vector Definitions; Conditional Directives (#ifdef and family); Compile-Time Optimization for Condition Checks; Mutual Exclusion
  • Conversions Between Host and Network OrderCatching Bugs; Statistics; Measuring Time; User-Space Tools; Browsing the Source Code; Dead Code; When a Feature Is Offered as a Patch; Critical Data Structures; The Socket Buffer: sk_buff Structure; Networking Options and Kernel Structures; Layout Fields; General Fields; Feature-Specific Fields; Management Functions; Allocating memory: alloc_skb and dev_alloc_skb; Freeing memory: kfree_skb and dev_kfree_skb; Data reservation and alignment: skb_reserve, skb_put, skb_push, and skb_pull; The skb_shared_info structure and the skb_shinfo function
  • Cloning and copying buffersList management functions; net_device Structure; Identifiers; Configuration; Interface types and ports; Promiscuous mode; Statistics; Device Status; List Management; Link Layer Multicast; Traffic Management; Feature Specific; Generic; Function Pointers; Files Mentioned in This Chapter; User-Space-to-Kernel Interface; Overview; procfs Versus sysctl; procfs; sysctl: Directory /proc/sys; Examples of ctl_table initialization; Registering a file in /proc/sys; Core networking files and directories; ioctl; Netlink; Serializing Configuration Changes; Part II
  • Notification ChainsReasons for Notification Chains; Overview; Defining a Chain; Registering with a Chain; Notifying Events on a Chain; Notification Chains for the Networking Subsystems; Wrappers; Examples; Tuning via /proc Filesystem; Functions and Variables Featured in This Chapter; Files and Directories Featured in This Chapter; Network Device Initialization; System Initialization Overview; Device Registration and Initialization; Basic Goals of NIC Initialization; Interaction Between Devices and Kernel; Hardware Interrupts; Interrupt types; Interrupt sharing
  • Organization of IRQs to handler mappingsInitialization Options; Module Options; Initializing the Device Handling Layer: net_dev_init; Legacy Code; User-Space Helpers; kmod; Hotplug; /sbin/hotplug; Virtual Devices; Examples of Virtual Devices; Interaction with the Kernel Network Stack; Tuning via /proc Filesystem; Functions and Variables Featured in This Chapter; Files and Directories Featured in This Chapter; The PCI Layer and Network Interface Cards; Data Structures Featured in This Chapter; Registering a PCI NIC Device Driver; Power Management and Wake-on-LAN
  • Example of PCI NIC Driver Registration