TCP/IP详解卷2:实现 — 全书章节索引

来源:云盘 /田浩然上传的资料/电子书/TCPIP/TCP-IP详解卷2:实现/目录.TXT(GBK 编码目录文件,896 页巨著的完整目录)。本书为 W. Richard Stevens 经典,逐行剖析 BSD 4.4 Lite 的 Net/2 网络源代码实现。本笔记是结构索引,便于按需回查云盘电子书正文。

书籍定位

  • 作者 W. Richard Stevens,《TCP/IP详解》三部曲之二,讲”实现”(卷1讲协议,卷3讲 TCP 事务)
  • 分析对象:BSD 4.4 Lite 发布版中去掉许可证限制的 Net/2 网络代码
  • 结构特点:每章均按”引言 → 代码介绍(全局变量/统计)→ 逐函数剖析 → 小结”展开

章节结构(32 章,按主题分组)

基础设施层(第 1-5 章)

  • 第1章 概述:源代码表示、API、mbuf 与输入输出处理总览、中断级别与并发
  • 第2章 mbuf:存储器缓存 — 全书核心数据结构。m_get/MGET/m_retry/m_pullup、簇引用计数、IP 分片重组与 m_pullup 的关系
  • 第3章 接口层:ifnet/ifaddr/sockaddr 结构、if_attach、网络初始化
  • 第4章 接口:以太网 — leintr/leread/ether_input/ether_output、ioctl 系统调用
  • 第5章 接口:SLIP 和环回 — SLIPDISC 线路规程

编址与协议框架(第 6-7 章)

  • 第6章 IP 编址:sockaddr_in、inetaddr 表、广播/多播/环回地址
  • 第7章 域和协议:域名与协议族切换(pfswitch/domsw/protsw)、协议请求 pr_ctlinput

IP 层(第 8-14 章)

  • 第8章 IP:网际协议 — ip_input/ip_output 主流程、ip_fastforward
  • 第9章 IP 选项处理 — ip_pcbopts、记录路由、时间戳
  • 第10章 IP 的分片与重装 — ip_fragment/ip_reass、分片算法的历史讨论
  • 第11章 ICMP — 差错报文 icmp_error、pmtu(路径 MTU 发现)
  • 第12章 IP 多播 — inm_ifnets 成员关系、多播路由器接口
  • 第13章 IGMP — igmp_input/output、查询器机制
  • 第14章 IP 多播选路 — mrouted 内核部分、mr_ifnet、虚拟叶子网

插口层(第 15-17 章)

  • 第15章 插口层 — socket/sockbuf 结构、soallocate 等内核 API
  • 第16章 插口 I/O — sosend/soreceive 完整流程(全书最复杂章节之一,非阻塞/控制信息/select 语义)
  • 第17章 插口选项 — sogetresv/soanalysopt/soo_setsockopt

选路(第 18-20 章)

  • 第18章 Radix 树路由表 — rn_inithead/rn_add/rn_match/rn_delete,最长前缀匹配实现
  • 第19章 选路请求和选路消息 — SIOC[SG]ROUTE、rt_msghdr
  • 第20章 选路插口 — PF_ROUTE,quagga 等守护进程的内核基础

链路层与传输层公共机制(第 21-23 章)

  • 第21章 ARP — arptimer/arpresolve、arpcache
  • 第22章 协议控制块 — in_pcbbind/in_pcbconnect、哈希表 PCBhash 查找
  • 第23章 UDP — udp_input/udp_output、校验和计算

TCP(第 24-30 章,全书重心)

  • 第24章 TCP:传输控制协议 — tcpcb 状态变量总览
  • 第25章 TCP 的定时器 — 200ms/500ms/持久/保活四类定时器、tcp_timer_xxx
  • 第26章 TCP 输出 — tcp_output、慢启动/拥塞避免/窗口探测发送
  • 第27章 TCP 的函数 — tcp_template/tcp_respond 选项选项编辑
  • 第28章 TCP 的输入 — tcp_input 首部(连接查找、序列号检查)
  • 第29章 TCP 的输入(续)— ACK 处理、快速重传与快速恢复、紧急方式、首部压缩
  • 第30章 TCP 的用户需求 — tcp_usrreq 状态机转换(被动打开/同时打开)

分组过滤与原始 IP(第 31-32 章)

  • 第31章 BPF — bpf_tap/catchpacket,tcpdump 底层机制
  • 第32章 原始 IP — rip_input/output,ping/traceroute 的内核路径

收尾

  • 结束语、附录A 部分习题解答、附录B 源代码的获取、附录C RFC 1122 有关内容、参考文献

关键知识点速记

  • mbuf 体系是理解全书的钥匙:128 字节 mbuf + 2048 字节簇(cluster),链式组织,m_pullup 保证首部连续
  • 中断级别与 Net/2 的 SPL 机制(第1章 1.12)解释了当时内核并发模型
  • Radix 树(第18章)是路由表最长前缀匹配的经典实现,现代 OS 仍沿用其思想
  • 快速重传/快速恢复算法(第29章 29.4)在代码层面展示了 Reno 行为的落地
  • BPF(第31章)与原始 IP(第32章)是抓包工具两类内核通路

可行动点

  • 调试嵌入式 Linux 网络问题时,可参照本书概念理解 SKB 与 mbuf 的对应关系
  • 需要精确 TCP 行为(如 TIME_WAIT、持久定时器)时,先查本书对应章而非猜现代实现

关联

  • 云盘同目录含卷2正文分章 PDF;卷1协议详解亦在 /田浩然上传的资料/电子书/TCPIP/ 下
  • Solaris进程间通信IPC实验教程(同为 BSD 系内核机制剖析)