Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Understanding Linux Network InternalsDecember 2005
Publisher:
  • O'Reilly Media, Inc.
ISBN:978-0-596-00255-8
Published:01 December 2005
Skip Bibliometrics Section
Reflects downloads up to 02 Feb 2025Bibliometrics
Skip Abstract Section
Abstract

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 include:Key problems with networkingNetwork interface card (NIC) device driversSystem initializationLayer 2 (link-layer) tasks and implementationLayer 3 (IPv4) tasks and implementationNeighbor infrastructure and protocols (ARP)BridgingRoutingICMPAuthor 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.

Cited By

  1. Kadi M, Suleiman M, Jammoul S and Pu C (2021). Performance Analysis of Identifier Locator Communication Cache Effects on ILNPv6 Stack, Journal of Computer Networks and Communications, 2021, Online publication date: 1-Jan-2021.
  2. Lee C, Lee K, Kang M and Lee H EANeM Proceedings of the 57th ACM/EDAC/IEEE Design Automation Conference, (1-6)
  3. ACM
    Hanford N, Ahuja V, Farrens M, Tierney B and Ghosal D (2018). A Survey of End-System Optimizations for High-Speed Networks, ACM Computing Surveys, 51:3, (1-36), Online publication date: 31-May-2019.
  4. Hong C, Lee K, Hwang J, Park H and Yoo C (2018). Kafe, IEEE/ACM Transactions on Networking, 26:6, (2734-2747), Online publication date: 1-Dec-2018.
  5. ACM
    Narayan A, Cangialosi F, Goyal P, Narayana S, Alizadeh M and Balakrishnan H The Case for Moving Congestion Control Out of the Datapath Proceedings of the 16th ACM Workshop on Hot Topics in Networks, (101-107)
  6. ACM
    He K, Rozner E, Agarwal K, Felter W, Carter J and Akella A (2015). Presto, ACM SIGCOMM Computer Communication Review, 45:4, (465-478), Online publication date: 22-Sep-2015.
  7. ACM
    He K, Rozner E, Agarwal K, Felter W, Carter J and Akella A Presto Proceedings of the 2015 ACM Conference on Special Interest Group on Data Communication, (465-478)
  8. Moreno V, Ramos J, Santiago del Rio P, Garcia-Dorado J, Gomez-Arribas F and Aracil J (2015). Commodity Packet Capture Engines: Tutorial, Cookbook and Applicability, IEEE Communications Surveys & Tutorials, 17:3, (1364-1390), Online publication date: 1-Jul-2015.
  9. ACM
    Watkins L, Robinson W and Beyah R (2015). Using Network Traffic to Infer Hardware State, ACM Transactions on Embedded Computing Systems, 14:3, (1-22), Online publication date: 21-May-2015.
  10. Hanford N, Ahuja V, Farrens M, Ghosal D, Balman M, Pouyoul E and Tierney B Analysis of the effect of core affinity on high-throughput flows Proceedings of the Fourth International Workshop on Network-Aware Data Management, (9-15)
  11. ACM
    Hanford N, Ahuja V, Farrens M, Ghosal D, Balman M, Pouyoul E and Tierney B Impact of the end-system and affinities on the throughput of high-speed flows Proceedings of the tenth ACM/IEEE symposium on Architectures for networking and communications systems, (259-260)
  12. ACM
    Giordano E, Codecà L, Geffon B, Grassi G, Pau G and Gerla M MoViT Proceedings of the ninth ACM international workshop on Vehicular inter-networking, systems, and applications, (3-12)
  13. Gilad Y and Herzberg A Fragmentation considered vulnerable Proceedings of the 5th USENIX conference on Offensive technologies, (2-2)
  14. Zheng Y and Nicol D A Virtual Time System for OpenVZ-Based Network Emulations Proceedings of the 2011 IEEE Workshop on Principles of Advanced and Distributed Simulation, (1-10)
  15. Ortiz A, Ortega J, Díaz A and Prieto A (2010). Network interfaces for programmable NICs and multicore platforms, Computer Networks: The International Journal of Computer and Telecommunications Networking, 54:3, (357-376), Online publication date: 1-Feb-2010.
  16. Batista A, Kobayashi T, Medeiros J, Brito A and Pires P Application filters for TCP/IP industrial automation protocols Proceedings of the 4th international conference on Critical information infrastructures security, (111-123)
  17. Clément E and Dagenais M (2009). Traces synchronization in distributed networks, Journal of Computer Systems, Networks, and Communications, 2009, (1-11), Online publication date: 1-Jan-2009.
  18. Spanos S, Meliones A and Stassinopoulos G (2008). The internals of advanced interrupt handling techniques, Computer Communications, 31:14, (3460-3468), Online publication date: 1-Sep-2008.
  19. Papadimitriou S and Terzidis K Comparative evaluation of the recent Linux and Solaris kernel architectures Proceedings of the 11th WSEAS International Conference on Computers, (460-463)
  20. ACM
    Carneiro D, Pinheiro P, Prudêncio P, Cavalcante D, Sousa D, Braquehais R, Marrocos T and Fernandez M IP-checksum incremental update method proposal for efficient use of energy in wireless environments Proceedings of the 2007 Euro American conference on Telematics and information systems, (1-7)
Contributors

Reviews

Radu State

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. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations