Computing Reviews

Understanding Linux network internals
Benvenuti C., O’Reilly Media, Inc.,Sebastopol, CA,2005. 1062 pp.Type:Book
Date Reviewed: 03/20/07

With network connectivity becoming almost ubiquitous, we take it for granted that a device can be plugged into a network and work seamlessly. Behind the scenes, however, the networking stack of the device is doing a hard and tedious job: configuring the network interfaces, sending and receiving packets from the network interface to the kernel and up to the application layer, routing packets, shaping the traffic, and filtering incoming and outgoing packets.

All of these tasks are done silently by the kernel and very rarely is a user concerned or even aware of its existence. This book unveils this hidden activity and shows how it is implemented by a modern operating system (Linux). Using Linux as an underlying support is very judicious, given its open-source nature and its large user base. I very much admire this excellent work; the author has provided one of the best introductions to the innermost implementation details of the networking stacks in Linux.

Although written in a very pedagogical way, with numerous illustrations and many chapters and sections self-contained in terms of the knowledge needed, this book is highly technical and requires a background in Linux kernel architecture and system programming. I will not provide a chapter-by-chapter overview for the book, because it would be impossible to adequately cover the 1,000-plus pages. Among the many topics addressed by the book are network device driver implementations in Linux, communications between the kernel and the device drivers, bridging and spanning tree implementation, the Linux Internet protocol version 4 (IPv4) stack, and the description of the routing plane in Linux. Each of these topics is covered by multiple chapters, where the general presentation consists of a first chapter addressing the basic concepts, followed by other chapters describing the detailed implementation in the Linux kernel of the particular function. The typical presentation of such a function covers both the fundamental data structures required by the implementation, as well as the relevant pseudocode.

This is an outstanding book on a very relevant and important aspect of the Linux kernel. Those interested in Linux kernel programming or embedded Linux, as well as those who want to learn about how system-level implementations of a networking stack are done are encouraged to read it. Graduate students taking a class on operating systems or advanced networking should also consider it. This book can be read either in a linear manner from cover to cover, or in a more selective section- or chapter-driven fashion. As of today, this is the ultimate and most detailed reference guide to the Linux network stack.

Reviewer:  Radu State Review #: CR134057 (0803-0240)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy