[翻译] understanding Linux Network internals

   Copyright 版权
   Preface 前言
        The Audience for This Book 本书的读者
        Background Information 背景知识
        Organization of the Material 材料组织
        Conventions Used in This Book 本书的(写作)习惯
        Using Code Examples 使用的示例代码
        We'd Like to Hear from You 欢迎与大家交流
        Safari Enabled 
        Acknowledgments 致谢

     Part I:  General Background 背景知识
            Chapter 1.  Introduction 简介
        Section 1.1.  Basic Terminology 基础技术
        Section 1.2.  Common Coding Patterns 通用程序模式
        Section 1.3.  User-Space Tools 用户空间的工具
        Section 1.4.  Browsing the Source Code 浏览代码
        Section 1.5.  When a Feature Is Offered as a Patch 一些特性什么时候以补丁的形式提供
            Chapter 2.  Critical Data Structures 重要数据结构
        Section 2.1.  The Socket Buffer: sk_buff Structure 套接字缓存:sk_buff结构
        Section 2.2.  net_device Structure net_device结构
        Section 2.3.  Files Mentioned in This Chapter 本章所涉及的到的(代码)文件
            Chapter 3.  User-Space-to-Kernel Interface 从用户空间到内核态的接口
        Section 3.1.  Overview 简介
        Section 3.2.  procfs Versus sysctl 
        Section 3.3.  ioctl 
        Section 3.4.  Netlink 网络链接
        Section 3.5.  Serializing Configuration Changes 不断的配置变化

     Part II:  System Initialization 系统初始化
            Chapter 4.  Notification Chains (消息)通知链
        Section 4.1.  Reasons for Notification Chains 通知链的原因
        Section 4.2.  Overview 简介
        Section 4.3.  Defining a Chain 定义一个链
        Section 4.4.  Registering with a Chain 注册链
        Section 4.5.  Notifying Events on a Chain 在链上标记事件
        Section 4.6.  Notification Chains for the Networking Subsystems 网络子层的标记链
        Section 4.7.  Tuning via /proc Filesystem 
        Section 4.8.  Functions and Variables Featured in This Chapter 本章所涉及的到的函数与变量
        Section 4.9.  Files and Directories Featured in This Chapter 本章所涉及的到的(代码)文件
            Chapter 5.  Network Device Initialization 网络设备初始化
        Section 5.1.  System Initialization Overview 系统初始化简介
        Section 5.2.  Device Registration and Initialization 设备注册与初始化
        Section 5.3.  Basic Goals of NIC Initialization NIC初始化的基本目标
        Section 5.4.  Interaction Between Devices and Kernel 设备与内核的交互
        Section 5.5.  Initialization Options 初始化选项
        Section 5.6.  Module Options 模块选项
        Section 5.7.  Initializing the Device Handling Layer: net_dev_init 设备处理层的初始化
        Section 5.8.  User-Space Helpers 用户空间的帮助
        Section 5.9.  Virtual Devices 虚拟设备
        Section 5.10.  Tuning via /proc Filesystem 
        Section 5.11.  Functions and Variables Featured in This Chapter 
        Section 5.12.  Files and Directories Featured in This Chapter 
            Chapter 6.  The PCI Layer and Network Interface Cards PCI层和网卡
        Section 6.1.  Data Structures Featured in This Chapter 本章的数据结构
        Section 6.2.  Registering a PCI NIC Device Driver PIC NIC设备驱动的注册
        Section 6.3.  Power Management and Wake-on-LAN 电源管理以及LAN唤醒
        Section 6.4.  Example of PCI NIC Driver Registration 示例
        Section 6.5.  The Big Picture 框架图
        Section 6.6.  Tuning via /proc Filesystem 
        Section 6.7.  Functions and Variables Featured in This Chapter 
        Section 6.8.  Files and Directories Featured in This Chapter 
            Chapter 7.  Kernel Infrastructure for Component Initialization 组件初始化的底层内核(实现)
        Section 7.1.  Boot-Time Kernel Options 内核启动选项
        Section 7.2.  Module Initialization Code 模块初始化
        Section 7.3.  Optimized Macro-Based Tagging 基于标记的模块优化
        Section 7.4.  Boot-Time Initialization Routines 启动时的初始化例程
        Section 7.5.  Memory Optimizations 内存优化
        Section 7.6.  Tuning via /proc Filesystem 
        Section 7.7.  Functions and Variables Featured in This Chapter 
        Section 7.8.  Files and Directories Featured in This Chapter 
            Chapter 8.  Device Registration and Initialization 设备的注册与初始化
        Section 8.1.  When a Device Is Registered 什么时候注册一个设备
        Section 8.2.  When a Device Is Unregistered 
        Section 8.3.  Allocating net_device Structures 给XX结构分配内存
        Section 8.4.  Skeleton of NIC Registration and Unregistration NIC注册与反注册的框架
        Section 8.5.  Device Initialization 设备初始化
        Section 8.6.  Organization of net_device Structures XX结构的组织
        Section 8.7.  Device State 设备状态
        Section 8.8.  Registering and Unregistering Devices 
        Section 8.9.  Device Registration 
        Section 8.10.  Device Unregistration 
        Section 8.11.  Enabling and Disabling a Network Device 网络设备的使能与去使能
        Section 8.12.  Updating the Device Queuing Discipline State 更新设备的Queuing状态
        Section 8.13.  Configuring Device-Related Information from User Space 从用户空间配置与设备相关的信息
        Section 8.14.  Virtual Devices 
        Section 8.15.  Locking 查找
        Section 8.16.  Tuning via /proc Filesystem 
        Section 8.17.  Functions and Variables Featured in This Chapter 
        Section 8.18.  Files and Directories Featured in This Chapter 

     Part III:  Transmission and Reception 传输与接收
            Chapter 9.  Interrupts and Network Drivers 网络设备的中断
        Section 9.1.  Decisions and Traffic Direction 数据流的方向与决策
        Section 9.2.  Notifying Drivers When Frames Are Received 在数据帧接收到时通知驱动
        Section 9.3.  Interrupt Handlers 中断处理
        Section 9.4.  softnet_data Structure XX数据结构
            Chapter 10.  Frame Reception 帧接收
        Section 10.1.  Interactions with Other Features 与其它特性交互
        Section 10.2.  Enabling and Disabling a Device 设备的使能与去使能
        Section 10.3.  Queues 队列
        Section 10.4.  Notifying the Kernel of Frame Reception: NAPI and netif_rx 帧接收时通知内核
        Section 10.5.  Old Interface Between Device Drivers and Kernel: First Part of netif_rx 内核到设备驱动之间的老的接口
        Section 10.6.  Congestion Management 阻塞管理
        Section 10.7.  Processing the NET_RX_SOFTIRQ: net_rx_action 
            Chapter 11.  Frame Transmission 帧传输
        Section 11.1.  Enabling and Disabling Transmissions 
            Chapter 12.  General and Reference Material About Interrupts 中断的常识和和参考
        Section 12.1.  Statistics 统计
        Section 12.2.  Tuning via /proc and sysfs Filesystems 
        Section 12.3.  Functions and Variables Featured in This Part of the Book 
        Section 12.4.  Files and Directories Featured in This Part of the Book 
            Chapter 13.  Protocol Handlers 协议处理
        Section 13.1.  Overview of Network Stack 
        Section 13.2.  Executing the Right Protocol Handler 
        Section 13.3.  Protocol Handler Organization 
        Section 13.4.  Protocol Handler Registration 
        Section 13.5.  Ethernet Versus IEEE 802.3 Frames 
        Section 13.6.  Tuning via /proc Filesystem 
        Section 13.7.  Functions and Variables Featured in This Chapter 
        Section 13.8.  Files and Directories Featured in This Chapter 

     Part IV:  Bridging 网桥
            Chapter 14.  Bridging: Concepts 
        Section 14.1.  Repeaters, Bridges, and Routers 中继器,网桥和路由器
        Section 14.2.  Bridges Versus Switches 网桥与交换机
        Section 14.3.  Hosts 服务器
        Section 14.4.  Merging LANs with Bridges 聚合LAN和网桥
        Section 14.5.  Bridging Different LAN Technologies 
        Section 14.6.  Address Learning 寻址
        Section 14.7.  Multiple Bridges 多网桥
            Chapter 15.  Bridging: The Spanning Tree Protocol 网桥,生成树协议
        Section 15.1.  Basic Terminology 基础技术
        Section 15.2.  Example of Hierarchical Switched L2 Topology 分级交换机的二层拓扑示例
        Section 15.3.  Basic Elements of the Spanning Tree Protocol 生成树协议的基本元素
        Section 15.4.  Bridge and Port IDs 网桥和端口ID
        Section 15.5.  Bridge Protocol Data Units (BPDUs) 交换机协议数据单元
        Section 15.6.  Defining the Active Topology 
        Section 15.7.  Timers 计时器
        Section 15.8.  Topology Changes 
        Section 15.9.  BPDU Encapsulation 
        Section 15.10.  Transmitting Configuration BPDUs 
        Section 15.11.  Processing Ingress Frames 
        Section 15.12.  Convergence Time 时间收敛
        Section 15.13.  Overview of Newer Spanning Tree Protocols 
            Chapter 16.  Bridging: Linux Implementation 桥接:Linux的实现
        Section 16.1.  Bridge Device Abstraction 
        Section 16.2.  Important Data Structures 
        Section 16.3.  Initialization of Bridging Code 
        Section 16.4.  Creating Bridge Devices and Bridge Ports 
        Section 16.5.  Creating a New Bridge Device 
        Section 16.6.  Bridge Device Setup Routine 
        Section 16.7.  Deleting a Bridge 
        Section 16.8.  Adding Ports to a Bridge 
        Section 16.9.  Enabling and Disabling a Bridge Device 
        Section 16.10.  Enabling and Disabling a Bridge Port 
        Section 16.11.  Changing State on a Bridge Port 
        Section 16.12.  The Big Picture 
        Section 16.13.  Forwarding Database 
        Section 16.14.  Handling Ingress Traffic 
        Section 16.15.  Transmitting on a Bridge Device 
        Section 16.16.  Spanning Tree Protocol (STP) 
        Section 16.17.  netdevice Notification Chain 
            Chapter 17.  Bridging: Miscellaneous Topics 桥接:其它的主题
        Section 17.1.  User-Space Configuration Tools 
        Section 17.2.  Tuning via /proc Filesystem 
        Section 17.3.  Tuning via /sys Filesystem 
        Section 17.4.  Statistics 
        Section 17.5.  Data Structures Featured in This Part of the Book 
        Section 17.6.  Functions and Variables Featured in This Part of the Book 
        Section 17.7.  Files and Directories Featured in This Part of the Book 

     Part V:  Internet Protocol Version 4 (IPv4) IP协议(V4)
            Chapter 18.  Internet Protocol Version 4 (IPv4): Concepts 
        Section 18.1.  IP Protocol: The Big Picture 
        Section 18.2.  IP Header 
        Section 18.3.  IP Options 
        Section 18.4.  Packet Fragmentation/Defragmentation 
        Section 18.5.  Checksums 
            Chapter 19.  Internet Protocol Version 4 (IPv4): Linux Foundations and Features 
        Section 19.1.  Main IPv4 Data Structures 
        Section 19.2.  General Packet Handling 
        Section 19.3.  IP Options 
            Chapter 20.  Internet Protocol Version 4 (IPv4): Forwarding and Local Delivery 
        Section 20.1.  Forwarding 
        Section 20.2.  Local Delivery 
            Chapter 21.  Internet Protocol Version 4 (IPv4): Transmission 
        Section 21.1.  Key Functions That Perform Transmission 
        Section 21.2.  Interface to the Neighboring Subsystem 
            Chapter 22.  Internet Protocol Version 4 (IPv4): Handling Fragmentation 
        Section 22.1.  IP Fragmentation 
        Section 22.2.  IP Defragmentation 
            Chapter 23.  Internet Protocol Version 4 (IPv4): Miscellaneous Topics 
        Section 23.1.  Long-Living IP Peer Information 
        Section 23.2.  Selecting the IP Header's ID Field 
        Section 23.3.  IP Statistics 
        Section 23.4.  IP Configuration 
        Section 23.5.  IP-over-IP 
        Section 23.6.  IPv4: What's Wrong with It? 
        Section 23.7.  Tuning via /proc Filesystem 
        Section 23.8.  Data Structures Featured in This Part of the Book 
        Section 23.9.  Functions and Variables Featured in This Part of the Book 
        Section 23.10.  Files and Directories Featured in This Part of the Book 
            Chapter 24.  Layer Four Protocol and Raw IP Handling 
        Section 24.1.  Available L4 Protocols 
        Section 24.2.  L4 Protocol Registration 
        Section 24.3.  L3 to L4 Delivery: ip_local_deliver_finish 
        Section 24.4.  IPv4 Versus IPv6 
        Section 24.5.  Tuning via /proc Filesystem 
        Section 24.6.  Functions and Variables Featured in This Chapter 
        Section 24.7.  Files and Directories Featured in This Chapter 
            Chapter 25.  Internet Control Message Protocol (ICMPv4) 
        Section 25.1.  ICMP Header 
        Section 25.2.  ICMP Payload 
        Section 25.3.  ICMP Types 
        Section 25.4.  Applications of the ICMP Protocol 
        Section 25.5.  The Big Picture 
        Section 25.6.  Protocol Initialization 
        Section 25.7.  Data Structures Featured in This Chapter 
        Section 25.8.  Transmitting ICMP Messages 
        Section 25.9.  ICMP Statistics 
        Section 25.10.  Passing Error Notifications to the Transport Layer 
        Section 25.11.  Tuning via /proc Filesystem 
        Section 25.12.  Functions and Variables Featured in This Chapter 
        Section 25.13.  Files and Directories Featured in This Chapter 

     Part VI:  Neighboring Subsystem 
            Chapter 26.  Neighboring Subsystem: Concepts 
        Section 26.1.  What Is a Neighbor? 
        Section 26.2.  Reasons That Neighboring Protocols Are Needed 
        Section 26.3.  Linux Implementation 
        Section 26.4.  Proxying the Neighboring Protocol 
        Section 26.5.  When Solicitation Requests Are Transmitted and Processed 
        Section 26.6.  Neighbor States and Network Unreachability Detection (NUD) 
            Chapter 27.  Neighboring Subsystem: Infrastructure 
        Section 27.1.  Main Data Structures 
        Section 27.2.  Common Interface Between L3 Protocols and Neighboring Protocols 
        Section 27.3.  General Tasks of the Neighboring Infrastructure 
        Section 27.4.  Reference Counts on neighbour Structures 
        Section 27.5.  Creating a neighbour Entry 
        Section 27.6.  Neighbor Deletion 
        Section 27.7.  Acting As a Proxy 
        Section 27.8.  L2 Header Caching 
        Section 27.9.  Protocol Initialization and Cleanup 
        Section 27.10.  Interaction with Other Subsystems 
        Section 27.11.  Interaction Between Neighboring Protocols and L3 Transmission Functions 
        Section 27.12.  Queuing 
            Chapter 28.  Neighboring Subsystem: Address Resolution Protocol (ARP) 
        Section 28.1.  ARP Packet Format 
        Section 28.2.  Example of an ARP Transaction 
        Section 28.3.  Gratuitous ARP 
        Section 28.4.  Responding from Multiple Interfaces 
        Section 28.5.  Tunable ARP Options 
        Section 28.6.  ARP Protocol Initialization 
        Section 28.7.  Initialization of a neighbour Structure 
        Section 28.8.  Transmitting and Receiving ARP Packets 
        Section 28.9.  Processing Ingress ARP Packets 
        Section 28.10.  Proxy ARP 
        Section 28.11.  Examples 
        Section 28.12.  External Events 
        Section 28.13.  ARPD 
        Section 28.14.  Reverse Address Resolution Protocol (RARP) 
        Section 28.15.  Improvements in ND (IPv6) over ARP (IPv4) 
            Chapter 29.  Neighboring Subsystem: Miscellaneous Topics 
        Section 29.1.  System Administration of Neighbors 
        Section 29.2.  Tuning via /proc Filesystem 
        Section 29.3.  Data Structures Featured in This Part of the Book 
        Section 29.4.  Files and Directories Featured in This Part of the Book 

     Part VII:  Routing 
            Chapter 30.  Routing: Concepts 
        Section 30.1.  Routers, Routes, and Routing Tables 
        Section 30.2.  Essential Elements of Routing 
        Section 30.3.  Routing Table 
        Section 30.4.  Lookups 
        Section 30.5.  Packet Reception Versus Packet Transmission 
            Chapter 31.  Routing: Advanced 
        Section 31.1.  Concepts Behind Policy Routing 
        Section 31.2.  Concepts Behind Multipath Routing 
        Section 31.3.  Interactions with Other Kernel Subsystems 
        Section 31.4.  Routing Protocol Daemons 
        Section 31.5.  Verbose Monitoring 
        Section 31.6.  ICMP_REDIRECT Messages 
        Section 31.7.  Reverse Path Filtering 
            Chapter 32.  Routing: Li nux Implementation 
        Section 32.1.  Kernel Options 
        Section 32.2.  Main Data Structures 
        Section 32.3.  Route and Address Scopes 
        Section 32.4.  Primary and Secondary IP Addresses 
        Section 32.5.  Generic Helper Routines and Macros 
        Section 32.6.  Global Locks 
        Section 32.7.  Routing Subsystem Initialization 
        Section 32.8.  External Events 
        Section 32.9.  Interactions with Other Subsystems 
            Chapter 33.  Routing: The Routing Cache 
        Section 33.1.  Routing Cache Initialization 
        Section 33.2.  Hash Table Organization 
        Section 33.3.  Major Cache Operations 
        Section 33.4.  Multipath Caching 
        Section 33.5.  Interface Between the DST and Calling Protocols 
        Section 33.6.  Flushing the Routing Cache 
        Section 33.7.  Garbage Collection 
        Section 33.8.  Egress ICMP REDIRECT Rate Limiting 
            Chapter 34.  Routing: Routing Tables 
        Section 34.1.  Organization of Routing Hash Tables 
        Section 34.2.  Routing Table Initialization 
        Section 34.3.  Adding and Removing Routes 
        Section 34.4.  Policy Routing and Its Effects on Routing Table Definitions 
            Chapter 35.  Routing: Lookups 
        Section 35.1.  High-Level View of Lookup Functions 
        Section 35.2.  Helper Routines 
        Section 35.3.  The Table Lookup: fn_hash_lookup 
        Section 35.4.  fib_lookup Function 
        Section 35.5.  Setting Functions for Reception and Transmission 
        Section 35.6.  General Structure of the Input and Output Routing Routines 
        Section 35.7.  Input Routing 
        Section 35.8.  Output Routing 
        Section 35.9.  Effects of Multipath on Next Hop Selection 
        Section 35.10.  Policy Routing 
        Section 35.11.  Source Routing 
        Section 35.12.  Policy Routing and Routing Table Based Classifier 
            Chapter 36.  Routing: Miscellaneous Topics 
        Section 36.1.  User-Space Configuration Tools 
        Section 36.2.  Statistics 
        Section 36.3.  Tuning via /proc Filesystem 
        Section 36.4.  Enabling and Disabling Forwarding 
        Section 36.5.  Data Structures Featured in This Part of the Book 
        Section 36.6.  Functions and Variables Featured in This Part of the Book 
        Section 36.7.  Files and Directories Featured in This Part of the Book 
     About the Authors 
     Colophon 
     Index 

猜你喜欢

转载自blog.csdn.net/qq_28351465/article/details/81944288