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 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.
This book isn't meant to be read from cover to cover. Text is very dry always linking to other parts of the book. Not much is explained in terms of why things were implemented the way they were and most of the focus is on how things were implemented with some usage examples in different drivers.
I guess if you want to write a driver, you can use this book as a reference. But if you want to read about different networking concepts, the way they were implemented in the kernel with which trade-offs... you should look in a different place.
I didn't fully read it. It is way too technical for me. I though it explain network mechanisms for linux yet what I found was kernel sources and programming. I am not going to rate it.