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 章(安全,本身即可構成一門短課)。
閱讀時可在實驗機器上用抓包工具捕獲流量,與書中的抓包記錄對照。學習網路安全時,可把各章的攻擊一節當作檢查清單。
