Part I. The Linux kernel -- 1. Motivation -- 2. The kernel structure -- Part II. Architecture of network implementation -- 3. The architecture of communication systems -- 4. Managing network packets in the kernel -- 5. Network devices -- Part III. Layer I+II: Medium access and logical link layer -- 6. Introduction to the data-link layer -- 7. The serial-line Internet protocol (SLIP) -- 8. The point-to-point protocol (PPP) -- 9. PPP over Ethernet -- 10. Asynchronous transfer mode: ATM -- 11. Bluetooth in Linux -- 12. Transparent bridges -- Part IV. Network layer -- 13. The TCP/IP protocols -- 14. The Internet protocol V4 -- 15. Address resolution protocol (ARP) -- 16. IP routing -- 17. IP multicast for group communication -- 18. Using traffic control to support quality of service (QoS) -- 19. Packet filters and firewalls -- 20. Connection tracking -- 21. Network address translation (NAT) -- 22. Extending the Linux network architecture functionality: KIDS -- 23. IPv6: Internet protocol version 6 -- Part V. Layer IV: Transport layer -- 24. Transmission control protocol (TCP) -- 25. User datagram protocol (UDP) -- 26. The concept of sockets -- Part VI. Layer V: Application layer -- 27. Network programming with sockets -- Part VII. Appendices -- A. The LXR source-code browser -- B. Debugging in the Linux kernel -- C. Tools and commands for network operation -- D. Example for a kernel module -- E. Example for a network-layer protocol -- F. Example for a transport protocol -- G. Example for communication over sockets.