産品特色
編輯推薦
Stevens經典網絡名著的整體重組和徹底更新
掌握當代網絡協議原理及實現技術的必備參考書
全麵闡述和透徹分析網絡常用協議的工作過程和實現細節。
涵蓋*新的網絡協議和*佳的實踐方法,顯著加強安全方麵內容。
內容簡介
《TCP/IP詳解》是已故網絡專傢、著名技術作傢W. Richard Stevens的傳世之作,內容詳盡且極具權*,被譽為TCP/IP領域的不朽名著。
本書是《TCP/IP詳解》第1捲的第2版,主要講述TCP/IP協議,結閤大量實例講述TCP/IP協議族的定義原因,以及在各種不同的操作係統中的應用及工作方式。第2版在保留Stevens卓越的知識體係和寫作風格的基礎上,新加入的作者Kevin R. Fall結閤其作為TCP/IP協議研究領域領導者的尖端經驗來更新本書,反映瞭*新的協議和*佳的實踐方法。首先,他介紹瞭TCP/IP的核心目標和體係結構概念,展示瞭它們如何能連接不同的網絡和支持多個服務同時運行。接著,他詳細解釋瞭IPv4和IPv6網絡中的互聯網地址。然後,他采用自底嚮上的方式介紹TCP/IP的結構和功能:從鏈路層協議(如Ethernet和Wi-Fi),經網絡層、傳輸層到應用層。
書中依次全麵介紹瞭ARP、DHCP、NAT、防火牆、ICMPv4/ICMPv6、廣播、組播、UDP、DNS等,並詳細介紹瞭可靠傳輸和TCP,包括連接管理、超時、重傳、交互式數據流和擁塞控製。此外,還介紹瞭安全和加密的基礎知識,闡述瞭當前用於保護安全和隱私的重要協議,包括EAP、IPsec、TLS、DNSSEC和DKIM。
本書適閤任何希望理解TCP/IP實現原理的人閱讀,更是TCP/IP領域研究人員和開發人員的*威參考書。無論你是初學者還是功底深厚的網絡領域高手,本書都是案頭必備,將幫助你更深入和直觀地理解整個協議族,構建更好的應用和運行更可靠、更高效的網絡。
作者簡介
凱文 R. 福爾(Kevin R. Fall)博士,有超過25年的TCP/IP工作經驗,並且是互聯網架構委員會成員。他還是互聯網研究任務組中延遲容忍網絡研究組(DTNRG)的聯席主席,該組緻力於探索極端和有挑戰性的環境下的網絡性能。他也是一位IEEE院士。
W. 理查德·史蒂文斯(W. Richard Stevens)博士,是國際知名的UNIX和網絡專傢、受人尊敬的技術作傢和谘詢顧問。他教會瞭一代網絡專業人員使用TCP/IP的功能,使互聯網成為人們日常生活的中心。Stevens於1999年9月1日去世,年僅48歲。在短暫而精彩的一生中,他著有多部經典的傳世之作,包括《TCP/IP 詳解》(三捲本)、《UNIX網絡編程》(兩捲本)以及《UNIX環境高級編程》。2000年他被國際*威機構Usenix追授“終身成就奬”。
吳功宜,南開大學信息技術科學學院教授、博士生導師。曾任南開大學計算機係主任、信息技術科學學院院長。研究方嚮為計算機網絡與信息係統、計算機網絡與信息安全,目前主要從事無綫網絡、P2P網絡機器安全問題的研究。主持和參加完成計算機網絡、數據通信與信息安全方嚮的科研項目20多項,獲部委與省市科技奬6項,發錶學術論文50餘篇;參加編著和齣版教材、譯著、專著30餘部。
吳 英,南開大學計算機與控製工程學院副教授,博士,碩士生導師。主要研究方嚮:無綫網絡與移動計算、網絡安全與管理、物聯網應用。主持和參與國傢自然科學基金、教育部博士點基金、天津市自然科學基金等多個項目;發錶學術論文20餘篇,其中EI檢索15篇;參與編著教材與譯著12本,其中2本列入國傢“十二五”規劃教材;主講“可視化編程”“物聯網導論”與“計算機網絡”等課程;獲得天津市級教學成果一等奬1項。
張 玉,南開大學計算機與控製工程學院副教授,博士,碩士生導師。主要研究方嚮:數據流挖掘、網絡與信息安全、計算機安全性分析等。主持國傢自然科學基金、教育部博士點基金、國傢242項目等多個項目;作為*一作者在《中國科學:信息科學》《 Computer Communications》《Concurrency and Computation:Practice and Experience》《IEICE Transactions on Information and Systems》等發錶學術論文10餘篇。
許昱瑋,南開大學計算機與控製工程學院講師,博士,碩士生導師。主要研究方嚮:無綫網絡與移動計算、物聯網、車載自組網。主持和參與國傢自然科學基金、教育部博士點基金、天津市自然科學基金等多個項目;發錶學術論文10餘篇,其中EI檢索10篇;參與編著教材與譯著6本;主講“物聯網通信技術”“計算機基礎”等課程;帶隊獲得中國大學生計算機設計競賽全國決賽三等奬2項。
精彩書評
“我認為本書之所以領先群倫、獨一無*,是源於其對細節的注重和對曆史的關注。書中介紹瞭計算機網絡的背景知識,並提供瞭解決不斷演變的網絡問題的各種方法。本書一直在不懈努力以獲得精確的答案和探索剩餘的問題域。對於緻力於完善和保護互聯網運營或探究長期存在的問題的可選解決方案的工程師,本書提供的見解將是無價的。作者對當今互聯網技術的全麵闡述和透徹分析是值得稱贊的。”
—— Vint Cerf,互聯網發明人之一、圖靈奬獲得者、榖歌公司副總裁兼首席互聯網宣傳官
目錄
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
齣版者的話
譯者序
本書評語
序
第2版前言
第1版前言(改編)
第1章 概述 1
1.1 體係結構原則 2
1.2 設計和實現 5
1.3 TCP/IP協議族結構和協議 9
1.4 Internet、內聯網和外聯網 13
1.5 設計應用 13
1.6 標準化進程 15
1.7 實現和軟件分發 16
1.8 與Internet體係結構相關的攻擊 17
1.9 總結 17
1.10 參考文獻 18
第2章 Internet地址結構 21
2.1 引言 21
2.2 錶示IP地址 21
2.3 基本的IP地址結構 23
2.4 CIDR和聚閤 31
2.5 特殊用途地址 34
2.6 分配 42
2.7 單播地址分配 44
2.8 與IP地址相關的攻擊 48
2.9 總結 48
2.10 參考文獻 49
第3章 鏈路層 54
3.1 引言 54
3.2 以太網和IEEE 802局域網/城域網標準 54
3.3 全雙工、省電、自動協商和802.1X流量控製 64
3.4 網橋和交換機 67
3.5 無綫局域網——IEEE 802.11(Wi-Fi) 76
3.6 點到點協議 89
3.7 環迴 99
3.8 MTU和路徑MTU 101
3.9 隧道基礎 102
3.10 與鏈路層相關的攻擊 106
3.11 總結 107
3.12 參考文獻 108
第4章 地址解析協議 113
4.1 引言 113
4.2 一個例子 113
4.3 ARP緩存 115
4.4 ARP幀格式 116
4.5 ARP例子 117
4.6 ARP緩存超時 119
4.7 代理ARP 119
4.8 免費ARP和地址衝突檢測 120
4.9 arp命令 121
4.10 使用ARP設置一颱嵌入式設備的IPv4地址 121
4.11 與ARP相關的攻擊 122
4.12 總結 122
4.13 參考文獻 123
第5章 Internet協議 124
5.1 引言 124
5.2 IPv4頭部和IPv6頭部 125
5.3 IPv6擴展頭部 133
5.4 IP轉發 143
5.5 移動IP 149
5.6 IP數據報的主機處理 152
5.7 與IP相關的攻擊 156
5.8 總結 156
5.9 參考文獻 157
第6章 係統配置:DHCP和自動配置 161
6.1 引言 161
6.2 動態主機配置協議 161
6.3 無狀態地址自動配置 191
6.4 DHCP和DNS交互 198
6.5 以太網上的PPP 199
6.6 與係統配置相關的攻擊 201
6.7 總結 203
6.8 參考文獻 204
第7章 防火牆和網絡地址轉換 209
7.1 引言 209
7.2 防火牆 209
7.3 網絡地址轉換 212
7.4 NAT穿越 221
7.5 配置包過濾防火牆和NAT 235
7.6 IPv4/IPv6共存和過渡中的NAT 238
7.7 與防火牆和NAT相關的攻擊 243
7.8 總結 243
7.9 參考文獻 244
第8章 ICMPv4和ICMPv6:Internet控製報文協議 248
8.1 引言 248
8.2 ICMP報文 249
8.3 ICMP差錯報文 253
8.4 ICMP查詢/信息類報文 267
8.5 IPv6中的鄰居發現 278
8.6 ICMPv4和ICMPv6轉換 298
8.7 與ICMP相關的攻擊 301
8.8 總結 303
8.9 參考文獻 303
第9章 廣播和本地組播(IGMP和MLD) 307
9.1 引言 307
9.2 廣播 308
9.3 組播 311
9.4 互聯網組管理協議和組播偵聽發現協議 318
9.5 與IGMP和MLD相關的攻擊 332
9.6 總結 332
9.7 參考文獻 333
第10章 用戶數據報協議和IP分片 335
10.1 引言 335
10.2 UDP頭部 335
10.3 UDP校驗和 336
10.4 例子 338
10.5 UDP和IPv6 340
10.6 UDP-Lite 345
10.7 IP分片 345
10.8 采用UDP的路徑MTU發現 349
10.9 IP分片和ARP/ND之間的交互 351
10.10 最大UDP數據報長度 352
10.11 UDP服務器的設計 353
10.12 UDP/IPv4和UDP/IPv6數據報的轉換 358
10.13 互聯網中的UDP 358
10.14 與UDP和IP分片相關的攻擊 359
10.15 總結 360
10.16 參考文獻 360
第11章 名稱解析和域名係統 362
11.1 引言 362
11.2 DNS名稱空間 362
11.3 名稱服務器和區域 366
11.4 緩存 366
11.5 DNS協議 367
11.6 排序列錶、循環和分離DNS 402
11.7 開放DNS服務器和DynDNS 403
11.8 透明度和擴展性 404
11.9 從IPv4嚮IPv6轉換DNS 404
11.10 LLMNR和mDNS 405
11.11 LDAP 406
11.12 與DNS相關的攻擊 406
11.13 總結 407
11.14 參考文獻 408
第12章 TCP:傳輸控製協議(初步) 412
12.1 引言 412
12.2 TCP的引入 415
12.3 TCP頭部和封裝 418
12.4 總結 420
12.5 參考文獻 421
第13章 TCP連接管理 423
13.1 引言 423
13.2 TCP連接的建立與終止 423
13.3 TCP選項 431
13.4 TCP的路徑最大傳輸單元發現 436
13.5 TCP狀態轉換 439
13.6 重置報文段 447
13.7 TCP服務器選項 451
13.8 與TCP連接管理相關的攻擊 458
13.9 總結 459
13.10 參考文獻 460
第14章 TCP超時與重傳 462
第15章 TCP數據流與窗口管理 492
第16章 TCP擁塞控製 517
第17章 TCP保活機製 563
第18章 安全:可擴展身份認證協議、IP安全協議、傳輸層安全、DNS安全、域名密鑰識彆郵件 571
縮略語 666
前言/序言
譯者序
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
21世紀的一個重要特徵是數字化、網絡化與信息化,支撐這一切的正是功能日益強大的計算機網絡。目前,計算機網絡已成為支撐現代社會運行的基礎設施,並成為影響社會的政治、經濟、科學與文化發展的重要因素。
我們知道,TCP/IP已成為計算機網絡事實上的標準。在關於TCP/IP的著作中,最有影響的著作之一就是W. Richard Stevens著的《TCP/IP詳解 捲1:協議》,本書第2版由Kevin R. Fall在原著的基礎上修訂而成。
本書的特點是內容豐富,概念清晰,論述詳細,圖文並茂。本書每章開頭都有一個引言,然後對某個技術或協議進行詳細介紹,最後給齣相關的安全問題、總結與參考文獻。本書通過很多例子來說明問題,並在最後給齣瞭書中用到的縮略語,這對讀者瞭解相關術語有很大的幫助。
本書的前言、第1~6章和縮略語由吳英翻譯,第7~12章由張玉翻譯,第13~18章由許昱瑋翻譯,全書由吳功宜教授審校。我們在翻譯過程中盡可能尊重原著的思想,但是限於譯者的學識,書中難免存在疏漏和理解錯誤之處,敬請讀者指正。
譯者
2016年1月
於南開大學計算機與控製工程學院
序
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
讀者很少能找到這樣一本曆史和技術全麵且非常準確地討論眾所周知主題的書籍。我佩服這項工作的原因之一是它給齣的方案都讓人信服。TCP/IP體係結構在構思時就是一個産品。在適應多方麵呈百萬倍或以上不斷增長的需求,更不用說大量的應用程序方麵,它是非凡的。理解體係結構的範圍和局限性以及它的協議,可以為思考未來的演變甚至革命奠定良好的基礎。
在早期互聯網體係結構的製定中,“企業”的概念並沒有被真正認識。因此,大多數網絡都有自己的IP地址空間,並在路由係統中直接“公布”自己的地址。在商業服務被引入之後,Internet服務提供商像中介那樣“公布”自己客戶的Internet地址塊。因此,大多數的地址空間被分配為“提供商依賴”方式。“提供商獨立”編址很少見。這種網絡導緻路由匯聚和全球路由錶大小的限製。雖然這種方式有好處,但它也帶來瞭“多歸屬”問題,這是由於用戶的提供商依賴地址在全球路由錶中沒有自己的條目。IP地址“短缺”也導緻瞭網絡地址轉換,它也沒有解決提供商依賴和多歸屬問題。
通過閱讀這本書可以喚起讀者對復雜性的好奇——這種復雜性由工作在幾種網絡和應用環境下的一組相對簡單的概念發展而來。當各章展開時,讀者可以看見復雜性程度隨著日益增長的需求而變化——這部分是由新的部署情況和挑戰決定的,係統規模的激增就更不必說瞭。
“企業”用戶網絡安全的問題迫使人們使用防火牆提供邊界安全。這樣做雖然有用,但是很明顯對本地Internet基礎設施的攻擊可以通過內部(例如將一颱受感染的計算機放入內部網絡,或用一個受感染的便攜驅動器通過USB端口感染一颱內部計算機)進行。
很明顯,除瞭需要通過引入IPv6協議(它有340×1036個地址)擴大Internet地址空間之外,還強烈需要引入各種安全增強機製,例如域名係統安全擴展(DNSSEC)等。
究竟是什麼使這本書看起來很獨特?據我估計是對細節的重視和對曆史的關注。它提供瞭解決已經演變的網絡問題的背景和意義。它在確保精確和揭露剩餘問題方麵不懈努力。對於一位希望完善和確保Internet操作安全,或探索持續存在的問題的其他解決方案的工程師來說,這本書所提供的見解將是非常寶貴的。作者對當前Internet技術的徹底分析是值得稱贊的。
Vint Cerf
Woodhurst
2011年6月
第2版前言
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
歡迎閱讀本書的第2版。這本書緻力於對TCP/IP協議族進行詳細瞭解。不僅描述協議如何操作,還使用各種分析工具顯示協議如何運行。這可以幫助你更好地瞭解協議背後的設計決策,以及它們如何相互影響。同時為你揭露協議的實現細節,而不需要你閱讀實現的軟件源代碼,或者設置一個實驗性的實驗室。當然,閱讀源代碼或設置一個實驗室將不隻是有助於加深你的理解。
網絡在過去30年中已經發生瞭巨大的變化。Internet最初作為一個研究項目和令人好奇的對象,現在已經成為一個全球性的通信設施,並被各國政府、企業和個人所依賴。TCP/IP協議族定義瞭Internet中每個設備交換信息的基本方法。經過十多年的發展,Internet和TCP/IP自身正在嚮兼容IPv6的方嚮進化。在整本書中,我們將討論IPv6和目前的IPv4,著重關注它們之間的重要不同點。遺憾的是,它們不直接進行互操作,因此需要關心和注意其演變的影響。
本書的讀者對象是希望更好地瞭解當前的TCP/IP協議族以及它們如何運作的人員:網絡操作員和管理員、網絡軟件開發人員、學生,以及需要掌握TCP/IP的用戶。我們提供的材料包括讀者感興趣的新材料和第1版已有的材料,希望讀者能從中找到有用和有趣的新舊材料。
第1版的評論
距本書第1版齣版已過去近20年。對於希望瞭解TCP/IP協議細節的學生和專業人士而言,本書仍然是一個寶貴的資源,這些細節在許多其他同類教材中是難以獲得的。目前,它仍是有關TCP/IP協議運行的詳細信息的最好參考。但是,即使是信息和通信技術領域最好的書籍,經過一段時間之後也會過時,當然本書也不例外。在這個版本中,我希望通過引入新材料來徹底更新Stevens博士的前期工作,同時能夠保持前作的極高水準和對其很多書籍都包含的知識的詳細介紹。
第1版涵蓋瞭各種類型的協議和它們的操作,範圍從鏈路層到應用和網絡管理的所有方麵。目前,將如此廣泛的材料綜閤在一捲中篇幅將會很長。因此,第2版特彆關注核心協議:那些級彆相對較低的協議,常用於為Internet提供配置、命名、數據傳輸和安全等基礎性服務。關於應用、路由、Web服務和其他重要主題被放到後續捲中。
從第1版齣版以來,對TCP/IP相應規範的實現在魯棒性和規範性方麵的改進已取得相當大的進展。第1版中很多例子齣現明顯的實現錯誤或不符閤要求的行為,這些問題在當前可用的係統中已經得到解決,至少對於IPv4如此。考慮到在過去18年中TCP/IP協議的應用日益廣泛,這個事實並不令人吃驚。不符閤要求的實現是比較罕見的,這證明瞭協議族整體是比較成熟的。當前,在核心協議的運行中遇到的問題,通常涉及不常使用的協議功能。在第1版中不太關注的安全問題,在第2版中花費瞭相當的筆墨來討論。
21世紀的互聯網環境
Internet使用模式和重要性自第1版齣版以來已經發生瞭很大變化。最明顯的具有分水嶺意義的事件是萬維網在20世紀90年代初的建立和隨後開始的激烈的商業化。這個事件大大加快瞭大量有不同目的(有時衝突)的人對Internet的使用。因此,這個最初實現在一個小規模的學術閤作環境中的協議和係統已受限於有限的可用地址,並且需要增加安全方麵的考慮。
為瞭應對安全威脅,網絡和安全管理員紛紛為網絡引入專門的控製單元。無論是大型企業還是小型企業和傢庭,現在常見的做法是將防火牆布置在Internet的連接點。隨著過去十年IP地址和安全需求的增長,網絡地址轉換(NAT)現在幾乎被所有路由器支持,並且得到廣泛的使用。它可以緩解地址短缺的壓力,允許站點從服務提供商(對每個同時在綫的用戶)獲得一組相對較少的可路由的Internet地址,無須進一步協調就可以為本地主機提供大量的地址。部署NAT的結果是減緩瞭嚮IPv6(它提供瞭幾乎不可思議的大量地址)的遷移,解決瞭一些舊協議的互操作性問題。
隨著PC用戶在20世紀90年代中期開始要求連接Internet,最大的PC軟件供應商(微軟)放棄瞭其原來隻提供專用Internet協議的策略,轉而努力在自己的大部分産品中兼容TCP/IP。此後,運行Windows操作係統的PC變為接入Internet的主體。隨著時間的推移,基於Linux係統的主機數量顯著上升,意味著這種係統現在有可能取代微軟的領跑者地位。其他操作係統,包括Oracle的Solaris和Berkeley的基於BSD的係統,曾經代錶瞭接入Internet的大多數係統,而現在隻占一小部分。蘋果的OS X操作係統(基於Mac)已成為一個新的競爭者並日益普及,特彆是在便攜式計算機用戶中。2003年,便攜式計算機(筆記本電腦)的銷量超過瞭颱式機,成為個人電腦銷售的主力類型,它們的快速增長帶來瞭對支持高速上網的無綫基礎設施的需求。根據預測,2012年以後訪問Internet的最常用方法是智能手機。平闆電腦也是一個快速增長的重要競爭者的代錶。
現在有大量場所提供瞭無綫網絡,例如餐廳、機場、咖啡館,以及其他公共場所。它們通常使用辦公或傢庭環境的局域網設備,提供短距離、免費或低費用、高速、無綫Internet連接。一係列基於蜂窩移動電話標準(例如LTE、UMTS、HSPA、EV-DO)的“無綫寬帶”替代技術已廣泛用於世界發達地區(一些發展中地區爭相采用較新的無綫技術),為瞭提供更大範圍的運營,通常需要在一定程度上減少帶寬和降低基於流量的定價。兩種類型的基礎設施滿足瞭用戶使用便攜式計算機或更小的設備在移動過程中訪問Internet的需要。在任何情況下,移動終端用戶通過無綫網絡訪問Internet都會帶來兩個對TCP/IP協議體係結構的技術挑戰。首先,移動性影響瞭Internet的路由和尋址結構,打破瞭主機基於附近的路由器分配地址的假設。其次,無綫鏈路可能因更多原因而斷開並導緻數據丟失,這些原因與典型的有綫鏈路(通常不會丟失太多數據,除非網絡中有太多流量)不同。
最後,Internet已經促進瞭由對等應用形成的“覆蓋”網絡的興起。對等應用不依賴於中心服務器完成一項任務,而是通過一組對等計算機之間的通信和交互完成一項任務。對等計算機可以由其他終端用戶來操作,並且可能快速進入或離開一個固定的服務器基礎設施。“覆蓋”的概念刻畫瞭如下事實:由這些交互的對等方形成一個網絡,並且覆蓋在傳統的基於TCP/IP的網絡上(在低層的物理鏈路之上實現覆蓋)。對於那些對網絡流量和電子商務有濃厚興趣的研究者而言,對等應用的發展沒有對捲1中所描述的核心協議産生深遠的影響,但是覆蓋網絡的概念在網絡技術研究中普遍受到重視。
第2版的內容變化
第2版的最重要的變化是對第1版全部內容的整體重組和安全方麵材料的顯著增加。第2版沒有嘗試覆蓋Internet的每個層次中使用的所有常用協議,而是關注正在廣泛使用的非安全的核心協議,或者預計在不久的將來廣泛使用的協議:以太網(802.3)、Wi-Fi(802.11)、PPP、ARP、IPv4、IPv6、TCP、UDP、DHCP和DNS。係統管理員和用戶可能都會用到這些協議。
第2版通過兩種方法來討論安全性。首先,每章中都有專門的一節,用於介紹對本章所描述協議的已知攻擊和對策。這些描述沒有介紹攻擊的方法,而是提示瞭協議實現(或規範,在某些情況下)不夠健全時可能齣現的問題。在當前的Internet中,對於不完整的規範或不健全的實現,即使是相對簡單的攻擊,也可能導緻關鍵的任務係統受到損壞。
第二個重要的安全性討論齣現在第18章,對安全和密碼學中的一些細節進行研究,包括協議,例如IPsec、TLS、DNSSEC和DKIM。目前,這些協議對希望保持完整性或安全操作的任何服務或應用的實現都是非常重要的。隨著Internet在商業上的重要性的增加,安全需求(以及威脅的數量)已成比例增加。
雖然IPv6沒有被包括在第1版中,但是未分配的IPv4地址塊在2011年2月已耗盡,現在有理由相信IPv6的使用可能會顯著加快速度。IPv6主要是為瞭解決IPv4地址耗盡問題,隨著越來越多的小型設備(例如移動電話、傢用電器和環境傳感器)接入Internet,IPv6正在變得越來越重要。如世界IPv6日(2011年6月8日)這種事件有助於錶明Internet可以繼續工作,即使是對底層協議進行重大修改和補充。
對第2版結構變化的第二個考慮是淡化那些不再常用的協議,以及更新那些自第1版齣版以來已大幅修訂的內容。那些涉及RARP、BOOTP、NFS、SMTP和SNMP的章節已從書中刪除,SLIP協議的討論已被廢棄,而DHCP和PPP(包括PPPoE)的討論篇幅被擴大。IP轉發(第1版中的第9章)功能已被集成在這個版本的第5章的IPv4和IPv6協議的整體描述中。動態路由協議(RIP、OSPF、BGP)的討論已被刪除,因為後兩個協議都應該單獨通過一本書來討論。從ICMP開始到IP、TCP和UDP,針對IPv4與IPv6操作上差異明顯的情況,對每種操作的影響進行瞭討論。這裏沒有專門針對IPv6的一章,而是在閤適位置說明它對每個現有的核心協議的影響。第1版中的第15章和第25~30章,緻力於介紹Internet應用和它們的支持協議,其中的大部分章節已刪除,僅在必要時保留對底層的核心協議操作的說明。
多個章節添加瞭新內容。第1章從網絡問題和體係結構的常規介紹開始,接著是對Internet進行具體介紹。第2章涵蓋Internet的尋址體係結構。第6章是新的一章,討論主機配置和在係統中如何“顯示”網絡。第7章介紹瞭防火牆和網絡地址轉換(NAT),包括NAT如何用於可路由和不可路由的地址空間。第1版所用的工具集已被擴大,現在包括Wireshark(一個免費的具有圖形用戶界麵的網絡流量監控應用程序)。
第2版的目標讀者與第1版保持一緻。閱讀本書不需要具備網絡概念的先期知識,但高級讀者可以從細節和參考文獻中獲得更大收獲。每章包括一份豐富的參考文獻集,供有興趣的讀者查看。
第2版的編輯變化
第2版中內容的整體組織流程仍然類似於第1版。在介紹性的內容(第1章和第2章)之後,采用自底嚮上方式介紹Internet體係結構中涉及的協議,以說明前麵提到的網絡通信是如何實現的。與第1版一樣,捕獲的真實數據包用於在適當的位置說明協議的操作細節。自第1版齣版以來,免費的圖形界麵的數據包捕獲和分析工具已經問世,它們擴展瞭第1版中使用的tcpdump程序的功能。在第2版中,如果基於文本的數據包捕獲工具的輸齣很容易解釋,就使用tcpdump。但是,在大多數情況下,使用Wireshark工具的屏幕截圖。需要注意的是,為瞭清楚地說明問題,有些輸齣列錶(包括tcpdump輸齣的快照)經過包裝或簡化。
數據包跟蹤內容說明瞭本書封二所描述的網絡的一個或多個部分的行為。它代錶瞭一個寬帶連接的“傢庭”環境(通常用於客戶端訪問或對等網絡)、一個“公共”環境(例如咖啡廳)和一個企業環境。在例子中使用的操作係統包括Linux、Windows、FreeBSD和Mac OS X。目前,各種操作係統及不同版本被用於Internet中。
每章的結構相對第1版已稍作修改。每章開頭是對該章主題的介紹,接著是曆史記錄(在某些情況下),然後是本章詳細資料、總結和一組參考文獻。在大多數章中,章末都描述瞭安全問題和攻擊。每章的參考文獻體現瞭第2版的變化。它們使得每章更具自包含性,讀者幾乎不需要“長距離頁麵跳轉”就能找到參考文獻。有些參考文獻通過增加網址來提供更容易的在綫訪問。另外,論文和著作的參考文獻格式已變為一種相對更緊湊的格式,包括每個作者姓氏的首字母和一個兩位數錶示的年(例如,以前的[Cerf and Kahn 1974]現在縮短為[CK74])。對於使用的眾多RFC參考文獻,用RFC編號代替瞭作者姓名。這樣做遵循瞭典型的RFC規範,並將所有引用的RFC集中在參考文獻列錶中。
最後說明的是,繼續保持本書的印刷慣例。但是,我們選擇使用的編輯和排版格式,與Stevens博士和Addison-Wesley Professional Computing Series係列叢書的其他作者使用的Troff係統不同。因此,最後的審稿任務利用瞭文字編輯Barbara Wood的專業知識。我們希望大傢很高興看到這個結果。
Kevin R. Fall
Berkeley,California
2011年9月
第1版前言(改編)
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
介紹
本書采用一種不同於其他教科書的方式描述瞭TCP/IP協議族。用一個流行的診斷工具來觀察這些協議的運作過程,而不是簡單地描述這些協議以及它們做些什麼。通過觀察這些協議在不同環境下的運行過程,我們可以更好地理解它們是如何工作的,以及為什麼要那樣設計。另外,本書還對協議的實現進行瞭概述,而無須讀者費力閱讀數韆行的源代碼。
在20世紀60年代到80年代期間開發網絡協議時,需要昂貴的專用硬件纔能觀察分組“通過綫路”的情況。同時,要理解硬件所顯示的分組信息還需要對協議本身極其熟悉。硬件分析器的功能受限於硬件本身的設計。
現在,對局域網進行監測的工作站隨處可見,情況發生瞭巨大的變化[Mogul 1990]。隻需要在網絡上連接一個工作站,並運行一些可公開獲得的軟件,就可以對綫路上的流通情況進行觀察。許多人認為它隻是一個診斷網絡故障的工具,但是它也是一個理解網絡協議運行的強有力的工具,這纔是本書的目標。
本書適用於那些希望理解TCP/IP協議如何運行的人:編寫網絡應用程序的程序員,負責維護計算機係統和TCP/IP網絡的係統管理員,以及經常與TCP/IP應用程序打交道的用戶。
排版約定
當我們顯示交互式的輸入和輸齣時,輸入顯示為加粗字體,計算機的輸齣顯示為正常字體。添加的注釋為斜體字。
另外,我們始終將係統名稱作為shell提示符的一部分(這個例子中的主機bsdi)顯示在運行該命令的主機上。
注意 在整本書中,我們將使用縮進的楷體字以及像這樣插入的“注意”來描述曆史要點或實現細節。
有時我們會參考Unix手冊中關於某個命令的完整描述,如ifconfig(8)。命令名後麵跟一個帶括號的數字是參考Unix命令的一般方法。括號中的數字是該命令位於Unix手冊中的節號,在那裏可以找到關於該命令的其他信息。遺憾的是,並不是所有的Unix係統都以同樣方式組織手冊結構,即通過節號來區分不同的命令組。這裏,我們采用的是BSD風格(BSD派生係統都是一樣的,如SunOS 4.1.3),但是你的用戶手冊可能采用不同的組織方式。
緻謝
雖然在封麵上僅齣現瞭作者的名字,但齣版一本高質量的教材需要很多人的共同努力。首先,最需要感謝的是作者的傢庭,他們花費很多時間陪伴作者編寫這本書。再次感謝你們,Sally、Bill、Ellen和David。
毫無疑問,顧問編輯Brian Kernighan對這本書是最重要的。他是第一個閱讀書稿的各種草稿並用紅筆做瞭很多標記的人。他對細節的關注、對文本可讀性的嚴格要求和對書稿的徹底審查,對作者來說是一筆巨大的財富。
技術評審提供瞭不同的觀點,並通過查找技術錯誤來保持作者的忠實。他們的意見、建議和(最重要的)批評對終稿提供瞭很大幫助。我要感謝Steve Bellovin、Jon Crowcroft、Pete Haverlock和Doug Schmidt對整個書稿的意見。同樣寶貴的意見來自提供瞭部分書稿的Dave Borman(他徹底查看瞭所有的TCP章節),以及應列為附錄E閤著者的Bob Gilligan。
一個作者不能在隔絕的狀態下工作,因此我在這裏感謝提供大量小幫助,特彆是通過電子郵件迴復問題的以下人員:Joe Godsil、Jim Hogue、Mike Karels、Paul Lucchina、Craig Partridge、Thomas Skibo和Jerry Toporek。
這本書是我被要求迴答大量的TCP/IP問題,並且沒有找到快速、直接答案的結果。那時我意識到,獲得答案的最簡單方法是運行小測試,查看在某些情況下會發生什麼。我感謝Peter Haverlock提齣瞭很多尖銳的問題,以及Van Jacobson提供的這麼多可用於迴答本書中問題的公開軟件。
關於網絡的書需要一個可以訪問Internet的真實網絡。我要感謝國傢光學天文觀測颱(NOAO),特彆是Sidney Wolff、Richard Wolff和Steve Grandi,他們提供瞭對自己的網絡和主機的訪問。特彆感謝Steve Grandi迴答瞭很多問題,並提供瞭不同主機上的賬號。我還要感謝加州大學伯剋利分校CSRG的Keith Bostic和Kirk McKusick,他們提供瞭對最新的4.4 BSD係統的訪問。
最後,齣版商將所有東西集中起來,並按需要將最終作品提供給讀者。這一切都與編輯John Wait的工作分不開。與John和Addison-Wesley齣版社的其他專業人士一起工作是一種樂趣。他們的專業精神和對細節的關注都顯示在最終結果中。
本書的排版由作者(Troff的鐵杆)使用James Clark編寫的Groff軟件生成。
W. Richard Stevens
亞利桑那州,圖森
1993年10月