The Linux Networking Architecture [Electronic resources]

Klaus Wehrle

نسخه متنی -صفحه : 187/ 1
نمايش فراداده

Sitemap

The Linux Networking Architecture: Design and Implementation of Network Protocols in the Linux Kernel

Table of Contents

Copyright

Preface

Organization of this Book

Additional Sources of Information

Conventions

Acknowledgments

Part I: The Linux Kernel

Chapter 1. Motivation

1.1 The Linux Operating System

1.2 What is Linux?

1.3 Reasons for Using Linux

Chapter 2. The Kernel Structure

2.1 Monolithic Architectures and Microkernels

2.2 Activities in the Linux Kernel

2.3 Locking--Atomic Operations

2.4 Kernel Modules

2.5 Device Drivers

2.6 Memory Management in the Kernel

2.7 Timing in the Linux Kernel

2.8 The Proc File System

2.9 Versioning

Part II: Architecture of Network Implementation

Chapter 3. The Architecture of Communication Systems

3.1 Layer-Based Communication Models

3.2 Services and Protocols

Chapter 4. Managing Network Packets in the Kernel

4.1 Socket Buffers

4.2 Socket-Buffer Queues

Chapter 5. Network Devices

5.1 The net_device Interface

5.2 Managing Network Devices

5.3 Network Drivers

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.1 Introduction

7.2 Slip Implementation in the Linux Kernel

Chapter 8. The Point-to-Point Protocol (PPP)

8.1 Introduction

8.2 PPP Configuration in Linux

8.3 PPP Implementation in the Linux Kernel

8.4 Implementing the PPP Daemon

Chapter 9. PPP over Ethernet

9.1 Introduction

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.1 Introduction

10.2 Implementing ATM in Linux

10.3 Configuration

Chapter 11. Bluetooth in Linux

11.1 Host Controller Interface (HCI)

11.2 L2CAP

11.3 Other Protocols

Chapter 12. Transparent Bridges

12.1 Introduction

12.2 Basics

12.3 Configuring a Bridge in Linux

12.4 Implementation

Part IV: Network Layer

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.3 IP Options

14.4 Internet Control Message Protocol (ICMP)

Chapter 15. Address Resolution Protocol (ARP)

15.1 Using the Address Resolution Protocol

15.2 The ARP Command

15.3 Implementing the ARP Instance in the Linux Kernel

Chapter 16. IP Routing

16.1 Introduction

16.2 Configuration

16.3 Implementation

Chapter 17. IP Multicast for Group Communication

17.1.1 Unicast

17.2 IP Multicast

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.1 Introduction

18.2 Basic Structure of Traffic Control in Linux

18.3 Traffic Control in the Outgoing Direction

18.4 Kernel Structures and Interfaces

18.5 Ingress Policing

18.6 Implementing a Queuing Discipline

18.7 Configuration

Chapter 19. Packet Filters and Firewalls

19.1 Introduction

19.2 The Ipchains Architecture of Linux 2.2

19.3 The Netfilter Architecture of Linux 2.4

Chapter 20. Connection Tracking

20.1 Introduction

20.2 Implementation

Chapter 21. Network Address Translation (NAT)

21.1 Introduction

21.2 Configuring NAT in Linux

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

23.1 Introduction

23.2 IPv6 Features

23.3 IPv6 Implementation

Part V: Layer IV--Transport Layer

Chapter 24. Transmission Control Protocol (TCP)

24.1.1 Requirements on TCP

24.2 Implementing The TCP Protocol Instance

24.3 Connection Management

24.4 Protocol Mechanisms For Data Exchange

24.5 Timer Management In TCP

Chapter 25. User Datagram Protocol (UDP)

25.1 Introduction

25.2 Data Structures

25.3 Sending and Receiving UDP Datagrams

Chapter 26. The Concept of Sockets

26.1 Introduction

26.2 BSD Sockets

26.3 Protocol-Specific Sockets

Part VI: Layer V--Application Layer

Chapter 27. Network Programming With Sockets

27.1 Introduction

27.2 Functions of the Socket API

27.3 Examples

Part VII: Appendices

Appendix A. The LXR Source-Code Browser

A.1 Functionality

A.2 Installation

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

C.7 Other Tools

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

G.1 SERVER

G.2 CLIENT

Bibliography

index

SYMBOL

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

Z