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...
Otros Autores: | |
---|---|
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