Common Functionality in the 2.6 Linux* Network Stack
This paper is an outline of the network stack and the most widely used mechanisms of the 2.6 Linux* kernel focusing mainly on the Internet Protocol (IP). Firstly, this work describes the functionality of the network stack itself, briefly describing the NAPI, the socket buffer structure, and the Netfilter framework. Then it focuses on reception of packets, bridging, IP forwarding, transmission of packets from local processes, and QoS. It gives a more detailed description on each topic and, where appropriate, refers to the kernel functions involved and the Netfilter hooks traversed.
The Linux kernel is a very challenging and fast changing software project. Patches, updates, optimizations, and additions occur frequently, and any software engineer who develops software in kernel space needs to be aware of these updates.
Due to the extremely fast and dynamic nature of the development of the Linux kernel, attempts at fully documenting the current kernel cannot easily be kept up to date. In this paper we present some of the main networking functionality of the 2.6 Linux kernel.
Read the full Common Functionality in the 2.6 Linux* Network Stack White Paper.