Additional Sources of Information
1.1 The Linux Operating System
Chapter 2. The Kernel Structure
2.1 Monolithic Architectures and Microkernels
2.2 Activities in the Linux Kernel
2.3 Locking--Atomic Operations
2.6 Memory Management in the Kernel
2.7 Timing in the Linux Kernel
Part II: Architecture of Network Implementation
Chapter 3. The Architecture of Communication Systems
3.1 Layer-Based Communication Models
Chapter 4. Managing Network Packets in the Kernel
Part III: Layer I + II--Medium Access and Logical Link Layer
Chapter 6. Introduction to the Data-Link Layer
6.1 Structure of the Data-Link Layer
6.2 Processes on the Data-Link Layer
6.3 Managing Layer-3 Protocols
Chapter 7. The Serial-Line Internet Protocol (SLIP)
7.2 Slip Implementation in the Linux Kernel
Chapter 8. The Point-to-Point Protocol (PPP)
8.2 PPP Configuration in Linux
8.3 PPP Implementation in the Linux Kernel
8.4 Implementing the PPP Daemon
9.2 PPPOE Specification in RFC 2516
9.3 Implementation in the User Space
9.4 Implementation in the Linux Kernel
Chapter 10. Asynchronous Transfer Mode--ATM
10.2 Implementing ATM in Linux
Chapter 11. Bluetooth in Linux
11.1 Host Controller Interface (HCI)
Chapter 12. Transparent Bridges
12.3 Configuring a Bridge in Linux
Chapter 13. The TCP/IP Protocols
13.1 The Internet Protocol Suite
Chapter 14. The Internet Protocol V4
14.1.1 Routing IP Packets Across Routers
14.2 Implementing the Internet Protocol
14.4 Internet Control Message Protocol (ICMP)
Chapter 15. Address Resolution Protocol (ARP)
15.1 Using the Address Resolution Protocol
15.3 Implementing the ARP Instance in the Linux Kernel
Chapter 17. IP Multicast for Group Communication
17.3 Internet Group Management Protocol (IGMP)
17.4 Multicast Data Path in the Linux Kernel
17.5 Multicasting in Today''s Internet
17.6 Multicast Transport Protocols
Chapter 18. Using Traffic Control to Support Quality of Service (QoS)
18.2 Basic Structure of Traffic Control in Linux
18.3 Traffic Control in the Outgoing Direction
18.4 Kernel Structures and Interfaces
18.6 Implementing a Queuing Discipline
Chapter 19. Packet Filters and Firewalls
19.2 The Ipchains Architecture of Linux 2.2
19.3 The Netfilter Architecture of Linux 2.4
Chapter 20. Connection Tracking
Chapter 21. Network Address Translation (NAT)
21.3 Implementing the NAT Module
21.4 Interfaces to Extend the NAT Module
Chapter 22. Extending the Linux Network Architecture Functionality--KIDS
22.1 Managing Dynamically Extendable Functionalities
22.2 Structure of the KIDS Construction System
22.3 Using the KIDS Example to Extend the Linux Network Architecture
Chapter 23. IPv6--Internet Protocol Version 6
Part V: Layer IV--Transport Layer
Chapter 24. Transmission Control Protocol (TCP)
24.2 Implementing The TCP Protocol Instance
24.4 Protocol Mechanisms For Data Exchange
Chapter 25. User Datagram Protocol (UDP)
25.3 Sending and Receiving UDP Datagrams
Chapter 26. The Concept of Sockets
26.3 Protocol-Specific Sockets
Part VI: Layer V--Application Layer
Chapter 27. Network Programming With Sockets
27.2 Functions of the Socket API
Appendix A. The LXR Source-Code Browser
Appendix B. Debugging in the Linux Kernel
B.1 Log Outputs From the Linux Kernel
B.2 Creating Strings in the Kernel
B.3 Information in the /proc Directory
B.4 Using a Debugger with the Linux Kernel
Appendix C. Tools and Commands for Network Operation
C.1 Using ifconfig to Manage Network Devices
C.2 Using ping to Test the Reachability
C.3 Using netstat to View the Network State
C.4 Using route for Routing Information
C.5 Using tcpdump for Network Analysis
C.6 USING traceroute TO TRACE PACKETS
Appendix D. Example for a Kernel Module
Appendix E. Example for a Network-Layer Protocol
Appendix F. Example for a Transport Protocol
Appendix G. Example for Communication over Sockets