索引 / 001 ZH-CN
TCP/IP Illustrated, Volume 1: The Protocols(TCP/IP详解 卷1:协议) cover

计算机科学

计算机科学

TCP/IP Illustrated, Volume 1: The Protocols(TCP/IP详解 卷1:协议)

Kevin R. Fall; W. Richard Stevens

英文原名: TCP/IP Illustrated, Volume 1: The Protocols

一本详尽的互联网协议族参考书,借助标准工具抓取的数据包轨迹,展示每个协议在真实网络中的行为并加以解释。Kevin Fall 修订的第2版围绕当前实践重构了 W. Richard Stevens 的原著,纳入 IPv6、网络地址转换、现代 TCP 行为以及协议安全等内容。

需要的基础: 修过涵盖分层、编址以及 TCP 和 UDP 基础的本科计算机网络课程,并有一定命令行使用经验。

难度等级
高级
学术层次
高级
computer networkstcp/ipinternet protocolspacket analysisnetwork security参考书

01 / 导读

导读

引用

Fall, K. R., & Stevens, W. R. (2011). TCP/IP Illustrated, Volume 1: The Protocols (2nd ed.). Addison-Wesley Professional.

章节概要

第二版共十八章,约 1,050 页,前有序言和两篇前言(一篇为本版所写,一篇改写自第一版),后附缩略语表。第 1–11 章讲传输层以下各层及域名系统;第 12–17 章专讲 TCP;第 18 章转向安全。几乎每章末尾都有一节讲针对该协议的攻击,随后是小结和参考文献。

第1章:引言

阐述互联网的体系结构原则、协议的设计与实现,以及 TCP/IP 协议族的结构。还涉及互联网、内联网与外联网,应用程序的设计,标准化过程,现有的实现,以及利用互联网体系结构本身的攻击。

第2章:互联网地址体系结构

说明 IPv4 与 IPv6 地址的书写方式和结构,包括 CIDR 与路由聚合、特殊用途地址、地址分配和单播地址的分配。

第3章:链路层

涵盖以太网与 IEEE 802 标准、全双工、省电与自动协商、网桥与交换机、无线局域网(IEEE 802.11)、点对点协议、环回、MTU 与路径 MTU,以及隧道基础。

第4章:ARP:地址解析协议

篇幅较短,讲 ARP 缓存、帧格式、超时、代理 ARP、无故 ARP 与地址冲突检测、arp 命令,以及针对 ARP 的攻击。

第5章:网际协议(IP)

介绍 IPv4 与 IPv6 首部、IPv6 扩展首部、IP 转发、移动 IP,以及主机处理数据报的方式。

第6章:系统配置:DHCP 与自动配置

开头用较长篇幅讲 DHCP,随后是 IPv6 无状态地址自动配置(SLAAC)、DHCP 与 DNS 的相互作用,以及以太网上的 PPP。

第7章:防火墙与网络地址转换(NAT)

讲防火墙与网络地址转换、NAT 穿越、包过滤防火墙与 NAT 的配置,以及用于 IPv4/IPv6 共存与过渡的 NAT。

第8章:ICMPv4 与 ICMPv6:互联网控制报文协议

介绍 ICMP 报文、差错报文以及查询或信息类报文,然后是 IPv6 邻居发现,以及 ICMPv4 与 ICMPv6 之间的转换。

第9章:广播与本地组播(IGMP 与 MLD)

讲广播、组播,以及组管理协议 IGMP 与 MLD。

第10章:用户数据报协议(UDP)与 IP 分片

涵盖 UDP 首部与校验和、IPv6 上的 UDP、UDP-Lite、IP 分片、基于 UDP 的路径 MTU 发现、最大数据报长度、UDP 服务器设计,以及 UDP/IPv4 与 UDP/IPv6 数据报之间的转换。

第11章:名字解析与域名系统(DNS)

篇幅很大,讲 DNS 名字空间、名字服务器与区、缓存和 DNS 协议本身,其后是分离式 DNS 与轮询、DynDNS、DNS64、LLMNR 与 mDNS、LDAP,以及针对 DNS 的攻击。

第12–13章:TCP 预备知识;TCP 连接管理

第 12 章(TCP: The Transmission Control Protocol (Preliminaries))介绍 TCP、其首部与封装;出版社将其作为免费样章提供。第 13 章讲连接的建立与终止、TCP 选项、路径 MTU 发现、状态转换、复位报文段和服务器的运作。

第14–15章:TCP 超时与重传;TCP 数据流与窗口管理

第 14 章讨论重传超时的设置、基于定时器的重传、快速重传、选择性确认、伪超时、乱序与重复。第 15 章涵盖交互式通信、延迟确认、Nagle 算法、流量控制与窗口管理,以及紧急机制。

第16–17章:TCP 拥塞控制;TCP 保活

第 16 章介绍经典拥塞控制算法及其演进、一个扩展示例、TCP 友好性、高速与基于时延的变体、缓冲区膨胀,以及主动队列管理与 ECN。第 17 章篇幅较短,讲保活机制。

第18章:安全:EAP、IPsec、TLS、DNSSEC 与 DKIM

从信息安全基本原理、威胁和密码学讲起,再依次介绍证书与公钥基础设施、网络接入控制(802.1X、EAP)、IPsec、TLS 与 DTLS、DNSSEC 和 DKIM。

核心概念

第1–5章:体系结构、编址、链路层、ARP 与 IP

  • 体系结构原则:TCP/IP 协议族背后的设计目标,以及各协议如何配合。
  • CIDR 与聚合:无类编址,是 IPv4 与 IPv6 地址结构的基础。
  • 路径 MTU:不经分片即可通过一条路径的最大数据报。
  • IPv6 扩展首部:对基本 IPv6 首部加以扩展的可选首部。

第6–11章:配置、NAT、ICMP、组播、UDP 与 DNS

  • DHCP 与 SLAAC:配置主机地址的有状态与无状态两种方式。
  • NAT 穿越:在地址转换器之间实现通信的技术。
  • 邻居发现:接替 ARP 工作的 IPv6 机制。
  • IGMP 与 MLD:分别用于 IPv4 与 IPv6 组播的组管理协议。
  • DNS 缓存与区:名字空间如何划分、查询如何得到应答。

第12–17章:TCP

  • 重传超时与快速重传:TCP 如何判断报文段已经丢失。
  • Nagle 算法与延迟确认:影响小报文段流量的相互作用。
  • 拥塞控制:把发送速率限制在网络容量以内的算法。
  • 缓冲区膨胀与 ECN:排队问题及应对它们的信号机制。

第18章:安全

  • IPsec、TLS 与 DTLS:在网络层和传输层保护流量的协议族。
  • DNSSEC 与 DKIM:为域名系统和电子邮件增加的认证。

评析

优点

  • 展示协议的实际运行。 出版社介绍称,本书通过 Linux、Windows 和 Mac OS 上的真实示例展示每个协议的运作,并解释这些协议为何如此工作。
  • 逐层完整,结构一致。 目录显示各协议章节遵循同一模式:引言、机制、攻击一节、小结与参考文献。这样不必读完全章就能找到某协议的易受攻击之处。
  • 对 TCP 讲得深。 六章(第 12–17 章)共 220 多页,覆盖连接管理、超时与重传、窗口管理、拥塞控制和保活,远比一般网络教材详细。
  • IPv6 融入正文而非附录。 编址、首部、扩展首部、邻居发现、SLAAC、IPv6 上的 UDP 以及过渡用 NAT 都出现在主体章节中。

局限

  • 篇幅与节奏。 全书约 1,050 页,更像参考书而非课程教材;个别章节,例如 DHCP 一节(约 40 页)或 DNS 协议一节(约 45 页),深度远超多数课程所需。
  • 预备知识。 本书介绍了 TCP/IP 的目标与体系结构,但默认读者熟悉网络术语,并非网络的第一本入门书。
  • 边缘部分已显陈旧。 本书出版于 2011 年,因此拥塞控制一章对高速、基于时延和 ECN 机制的论述反映的是当时的状况,目录中没有后来的 TCP 发展。

在课程中的定位

在计算机网络系列中,本书担当协议层面的参考书。Kurose 与 Ross 从应用层出发自上而下展开,Tanenbaum 的教材则从物理层向上逐层讲解;Forouzan 的书是较为平易的、自下而上介绍 TCP/IP 协议族的入门读物,Comer 的书则是不涉及数学的互联网工作原理读本。这几本任何一本都适合作为第一门课,之后再读 Fall 与 Stevens,了解各协议在线路上的具体行为。

Varghese 与 Xu 的 Network Algorithmics 是一本关于如何让网络软硬件更快的研究生教材,提出的是另一类问题:它假定协议已被理解,研究的是实现中的瓶颈。先读本书的 TCP 各章,可为它打下背景。

如何使用本书

本书最适合学完网络入门课、想看清数据包究竟是什么样子的学生,适合排查实际系统的网络工程师和管理员,也适合需要精确了解协议行为的安全分析人员。

实用读法:

  • 核心: 第 1、2、5 章(体系结构、编址与 IP);第 12–16 章(TCP),按顺序阅读。
  • 按需查阅: 第 3 章(链路层)、第 4 与 6 章(ARP、DHCP)、第 8 章(ICMP)、第 10 章(UDP)和第 11 章(DNS),视课程或排错任务而定。
  • 专题: 第 7 章(NAT 与防火墙)、第 9 章(组播)、第 17 章(保活)和第 18 章(安全,本身即可构成一门短课)。

阅读时可在实验机器上用抓包工具捕获流量,与书中的抓包记录对照。学习网络安全时,可把各章的攻击一节当作检查清单。