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 系内核机制剖析)