齣版者的話
譯者序
本書評語
序
第2版前言
第1版前言(改編)
第1章 概述 1
1.1 體係結構原則 2
1.1.1 分組、連接和數據報 2
1.1.2 端到端論點和命運共享 3
1.1.3 差錯控製和流量控製 4
1.2 設計和實現 5
1.2.1 分層 5
1.2.2 分層實現中的復用、分解和封裝 6
1.3 TCP/IP協議族結構和協議 9
1.3.1 ARPANET參考模型 9
1.3.2 TCP/IP中的復用、分解和封裝 11
1.3.3 端口號 12
1.3.4 名稱、地址和DNS 12
1.4 Internet、內聯網和外聯網 13
1.5 設計應用 13
1.5.1 客戶機/服務器 14
1.5.2 對等 14
1.5.3 應用程序編程接口 14
1.6 標準化進程 15
1.6.1 RFC 15
1.6.2 其他標準 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.3.1 分類尋址 23
2.3.2 子網尋址 24
2.3.3 子網掩碼 26
2.3.4 可變長度子網掩碼 27
2.3.5 廣播地址 28
2.3.6 IPv6地址和接口標識符 29
2.4 CIDR和聚閤 31
2.4.1 前綴 31
2.4.2 聚閤 32
2.5 特殊用途地址 34
2.5.1 IPv4/IPv6地址轉換 35
2.5.2 組播地址 36
2.5.3 IPv4組播地址 36
2.5.4 IPv6組播地址 38
2.5.5 任播地址 41
2.6 分配 42
2.6.1 單播 42
2.6.2 組播 44
2.7 單播地址分配 44
2.7.1 單個供應商/無網絡/單個地址 44
2.7.2 單個供應商/單個網絡/單個地址 45
2.7.3 單個供應商/多個網絡/多個地址 45
2.7.4 多個供應商/多個網絡/多個地址(多宿主) 46
2.8 與IP地址相關的攻擊 48
2.9 總結 48
2.10 參考文獻 49
第3章 鏈路層 54
3.1 引言 54
3.2 以太網和IEEE 802局域網/城域網標準 54
3.2.1 IEEE 802局域網/城域網標準 56
3.2.2 以太網幀格式 57
3.2.3 802.1p/q:虛擬局域網和QoS標簽 60
3.2.4 802.1AX:鏈路聚閤(以前的802.3ad) 62
3.3 全雙工、省電、自動協商和802.1X流量控製 64
3.3.1 雙工不匹配 65
3.3.2 局域網喚醒(WoL)、省電和魔術分組 65
3.3.3 鏈路層流量控製 66
3.4 網橋和交換機 67
3.4.1 生成樹協議 70
3.4.2 802.1ak:多注冊協議 76
3.5 無綫局域網——IEEE 802.11(Wi-Fi) 76
3.5.1 802.11幀 77
3.5.2 省電模式和時間同步功能 81
3.5.3 802.11介質訪問控製 82
3.5.4 物理層的細節:速率、信道和頻率 84
3.5.5 Wi-Fi安全 88
3.5.6 Wi-Fi網狀網(802.11s) 89
3.6 點到點協議 89
3.6.1 鏈路控製協議 89
3.6.2 多鏈路PPP 93
3.6.3 壓縮控製協議 95
3.6.4 PPP認證 95
3.6.5 網絡控製協議 96
3.6.6 頭部壓縮 96
3.6.7 例子 97
3.7 環迴 99
3.8 MTU和路徑MTU 101
3.9 隧道基礎 102
3.9.1 單嚮鏈路 105
3.10 與鏈路層相關的攻擊 106
3.11 總結 107
3.12 參考文獻 108
第4章 地址解析協議 113
4.1 引言 113
4.2 一個例子 113
4.2.1 直接交付和ARP 114
4.3 ARP緩存 115
4.4 ARP幀格式 116
4.5 ARP例子 117
4.5.1 正常的例子 117
4.5.2 對一個不存在主機的ARP請求 118
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.2.1 IP頭部字段 125
5.2.2 Internet校驗和 127
5.2.3 DS字段和ECN(以前稱為ToS字節或IPv6流量類彆) 129
5.2.4 IP選項 131
5.3 IPv6擴展頭部 133
5.3.1 IPv6選項 134
5.3.2 路由頭部 137
5.3.3 分片頭部 139
5.4 IP轉發 143
5.4.1 轉發錶 144
5.4.2 IP轉發行動 144
5.4.3 例子 145
5.4.4 討論 148
5.5 移動IP 149
5.5.1 基本模型:雙嚮隧道 149
5.5.2 路由優化 150
5.5.3 討論 152
5.6 IP數據報的主機處理 152
5.6.1 主機模式 152
5.6.2 地址選擇 153
5.7 與IP相關的攻擊 156
5.8 總結 156
5.9 參考文獻 157
第6章 係統配置:DHCP和自動配置 161
6.1 引言 161
6.2 動態主機配置協議 161
6.2.1 地址池和租用 162
6.2.2 DHCP和BOOTP消息格式 163
6.2.3 DHCP和BOOTP選項 164
6.2.4 DHCP協議操作 165
6.2.5 DHCPv6 174
6.2.6 使用DHCP中繼 185
6.2.7 DHCP認證 188
6.2.8 重新配置擴展 189
6.2.9 快速確認 189
6.2.10 位置信息(LCI和LoST) 190
6.2.11 移動和切換信息(MoS和ANDSF) 190
6.2.12 DHCP嗅探 191
6.3 無狀態地址自動配置 191
6.3.1 IPv4鏈路本地地址的動態配置 191
6.3.2 鏈路本地地址的IPv6 SLAAC 192
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.2.1 包過濾防火牆 209
7.2.2 代理防火牆 210
7.3 網絡地址轉換 212
7.3.1 傳統的NAT:基本NAT和NAPT 213
7.3.2 地址和端口轉換行為 217
7.3.3 過濾行為 219
7.3.4 位於NAT之後的服務器 219
7.3.5 發夾和NAT環迴 220
7.3.6 NAT編輯器 220
7.3.7 服務提供者NAT和服務提供者IPv6轉換 220
7.4 NAT穿越 221
7.4.1 針孔和打孔 221
7.4.2 單邊的自地址確定 222
7.4.3 NAT的會話穿越工具 223
7.4.4 利用NAT中繼的穿越 228
7.4.5 交互連接建立 233
7.5 配置包過濾防火牆和NAT 235
7.5.1 防火牆規則 235
7.5.2 NAT規則 236
7.5.3 與NAT和防火牆的直接交互:UPnP、NAT-PMP和PCP 237
7.6 IPv4/IPv6共存和過渡中的NAT 238
7.6.1 雙協議棧精簡版 239
7.6.2 使用NAT和ALG的IPv4/IPv6轉換 239
7.7 與防火牆和NAT相關的攻擊 243
7.8 總結 243
7.9 參考文獻 244
第8章 ICMPv4和ICMPv6:Internet控製報文協議 248
8.1 引言 248
8.1.1 在IPv4和IPv6中的封裝 248
8.2 ICMP報文 249
8.2.1 ICMPv4報文 250
8.2.2 ICMPv6報文 251
8.2.3 處理ICMP報文 253
8.3 ICMP差錯報文 253
8.3.1 擴展的ICMP和多部報文 254
8.3.2 目的不可達(ICMPv4類型3,ICMPv6類型1)和數據包太大(ICMPv6類型2) 255
8.3.3 重定嚮(ICMPv4類型5,ICMPv6類型137) 261
8.3.4 ICMP超時(ICMPv4類型11,ICMPv6類型3) 263
8.3.5 參數問題(ICMPv4類型12,ICMPv6類型4) 266
8.4 ICMP查詢/信息類報文 267
8.4.1 迴顯請求/應答(ping)(ICMPv4類型0/8,ICMPv6類型129/128) 268
8.4.2 路由器發現:路由器請求和通告(ICMPv4類型9,10) 269
8.4.3 本地代理地址發現請求/應答(ICMPv6類型144/145) 271
8.4.4 移動前綴請求/通告(ICMPv6類型146/147) 272
8.4.5 移動IPv6快速切換報文(ICMPv6類型154) 273
8.4.6 組播偵聽查詢/報告/完成(ICMPv6類型130/131/132) 273
8.4.7 版本2組播偵聽發現(ICMPv6類型143) 274
8.4.8 組播路由器發現(IGMP類型48/49/50,ICMPv6類型151/152/153) 278
8.5 IPv6中的鄰居發現 278
8.5.1 ICMPv6路由器請求和通告(ICMPv6類型133,134) 279
8.5.2 ICMPv6鄰居請求和通告(ICMPv6類型135,136) 280
8.5.3 ICMPv6反嚮鄰居發現請求/通告(ICMPv6類型141/142) 283
8.5.4 鄰居不可達檢測 283
8.5.5 安全鄰居發現 284
8.5.6 ICMPv6鄰居發現選項 287
8.6 ICMPv4和ICMPv6轉換 298
8.6.1 從ICMPv4轉換到ICMPv6 299
8.6.2 從ICMPv6轉換到ICMPv4 300
8.7 與ICMP相關的攻擊 301
8.8 總結 303
8.9 參考文獻 303
第9章 廣播和本地組播(IGMP和MLD) 307
9.1 引言 307
9.2 廣播 308
9.2.1 使用廣播地址 308
9.2.2 發送廣播數據報 310
9.3 組播 311
9.3.1 將IP組播地址轉換為802 MAC/以太網地址 312
9.3.2 例子 313
9.3.3 發送組播數據報 314
9.3.4 接收組播數據報 316
9.3.5 主機地址過濾 317
9.4 互聯網組管理協議和組播偵聽發現協議 318
9.4.1 組成員的IGMP和MLD處理(“組成員部分”) 321
9.4.2 組播路由器的IGMP和MLD處理(“組播路由器部分”) 323
9.4.3 例子 324
9.4.4 輕量級IGMPv3和MLDv2 328
9.4.5 IGMP和MLD健壯性 329
9.4.6 IGMP和MLD計數器和變量 330
9.4.7 IGMP和MLD探聽 331
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.5.1 Teredo:通過IPv4網絡隧道傳輸IPv6 341
10.6 UDP-Lite 345
10.7 IP分片 345
10.7.1 例子:UDP/IPv4分片 346
10.7.2 重組超時 348
10.8 采用UDP的路徑MTU發現 349
10.8.1 例子 349
10.9 IP分片和ARP/ND之間的交互 351
10.10 最大UDP數據報長度 352
10.10.1 實現限製 352
10.10.2 數據報截斷 353
10.11 UDP服務器的設計 353
10.11.1 IP地址和UDP端口號 353
10.11.2 限製本地IP地址 354
10.11.3 使用多地址 355
10.11.4 限製遠端IP地址 356
10.11.5 每端口多服務器的使用 357
10.11.6 跨越地址族:IPv4和IPv6 357
10.11.7 流量和擁塞控製的缺失 357
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.2.1 DNS命名語法 365
11.3 名稱服務器和區域 366
11.4 緩存 366
11.5 DNS協議 367
11.5.1 DNS消息格式 369
11.5.2 DNS擴展格式(EDNS0) 372
11.5.3 UDP或TCP 372
11.5.4 問題(查詢)和區域區段格式 373
11.5.5 迴答、授權和額外信息區段格式 373
11.5.6 資源記錄類型 374
11.5.7 動態更新(DNS UPDATE) 394
11.5.8 區域傳輸和DNS通知 397
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.1.1 ARQ和重傳 412
12.1.2 分組窗口和滑動窗口 413
12.1.3 變量窗口:流量控製和擁塞控製 414
12.1.4 設置重傳超時 415
12.2 TCP的引入 415
12.2.1 TCP服務模型 416
12.2.2 TCP中的可靠性 416
12.3 TCP頭部和封裝 418
12.4 總結 420
12.5 參考文獻 421
第13章 TCP連接管理 423
13.1 引言 423
13.2 TCP連接的建立與終止 423
13.2.1 TCP半關閉 425
13.2.2 同時打開與關閉 426
13.2.3 初始序列號 427
13.2.4 例子 428
13.2.5 連接建立超時 429
13.2.6 連接與轉換器 430
13.3 TCP選項 431
13.3.1 最大段大小選項 431
13.3.2 選擇確認選項 432
13.3.3 窗口縮放選項 433
13.3.4 時間戳選項與防迴繞序列號 433
13.3.5 用戶超時選項 435
13.3.6 認證選項 436
13.4 TCP的路徑最大傳輸單元發現 436
13.4.1 例子 437
13.5 TCP狀態轉換 439
13.5.1 TCP狀態轉換圖 440
13.5.2 TIME_WAIT狀態 442
13.5.3 靜默時間的概念 446
13.5.4 FIN_WAIT_2狀態 446
13.5.5 同時打開與關閉的轉換 446
13.6 重置報文段 447
13.6.1 針對不存在端口的連接請求 447
13.6.2 終止一條連接 447
13.6.3 半開連接 449
13.6.4 時間等待錯誤 451
13.7 TCP服務器選項 451
13.7.1 TCP端口號 452
13.7.2 限製本地IP地址 453
13.7.3 限製外部節點 454
13.7.4 進入連接隊列 455
13.8 與TCP連接管理相關的攻擊 458
13.9 總結 459
13.10 參考文獻 460
第14章 TCP超時與重傳 462
14.1 引言 462
14.2 簡單的超時與重傳舉例 462
14.3 設置重傳超時 464
14.3.1 經典方法 465
14.3.2 標準方法 465
14.3.3 Linux采用的方法 468
14.3.4 RTT估計器行為 471
14.3.5 RTTM對丟包和失序的魯棒性 472
14.4 基於計時器的重傳 473
14.4.1 例子 473
14.5 快速重傳 475
14.5.1 例子 475
14.6 帶選擇確認的重傳 478
14.6.1 SACK接收端行為 479
14.6.2 SACK發送端行為 479
14.6.3 例子 480
14.7 僞超時與重傳 482
14.7.1 重復SACK(DSACK)擴展 482
14.7.2 Eifel檢測算法 483
14.7.3 前移RTO恢復(F-RTO) 484
14.7.4 Eifel響應算法 484
14.8 包失序與包重復 485
14.8.1 失序 486
14.8.2 重復 487
14.9 目的度量 487
14.10 重新組包 488
14.11 與TCP重傳相關的攻擊 489
14.12 總結 489
14.13 參考文獻 490
第15章 TCP數據流與窗口管理 492
15.1 引言 492
15.2 交互式通信 492
15.3 延時確認 494
15.4 Nagle算法 495
15.4.1 延時ACK與Nagle算法結閤 497
15.4.2 禁用Nagle算法 498
15.5 流量控製與窗口管理 498
15.5.1 滑動窗口 499
15.5.2 零窗口與TCP持續計時器 501
15.5.3 糊塗窗口綜閤徵 503
15.5.4 大容量緩存與自動調優 509
15.6 緊急機製 512
15.6.1 例子 512
15.7 與窗口管理相關的攻擊 514
15.8 總結 515
15.9 參考文獻 515
第16章 TCP擁塞控製 517
16.1 引言 517
16.1.1 TCP擁塞檢測 517
16.1.2 減緩TCP發送 518
16.2 一些經典算法 519
16.2.1 慢啓動 520
16.2.2 擁塞避免 521
16.2.3 慢啓動和擁塞避免的選擇 523
16.2.4 Tahoe、Reno以及快速恢復算法 523
16.2.5 標準TCP 524
16.3 對標準算法的改進 524
16.3.1 NewReno 525
16.3.2 采用選擇確認機製的TCP擁塞控製 525
16.3.3 轉發確認(FACK)和速率減半 526
16.3.4 限製傳輸 527
16.3.5 擁塞窗口校驗 527
16.4 僞RTO處理——Eifel響應算法 528
16.5 擴展舉例 528
16.5.1 慢啓動行為 531
16.5.2 發送暫停和本地擁塞(事件1) 532
16.5.3 延伸ACK和本地擁塞恢復 535
16.5.4 快速重傳和SACK恢復(事件2) 538
16.5.5 其他本地擁塞和快速重傳事件 539
16.5.6 超時、重傳和撤銷cwnd修改 542
16.5.7 連接結束 545
16.6 共享擁塞狀態信息 545
16.7 TCP友好性 546
16.8 高速環境下的TCP 547
16.8.1 高速TCP與受限的慢啓動 547
16.8.2 二進製增長擁塞控製(BIC和CUBIC) 549
16.9 基於延遲的擁塞控製算法 552
16.9.1 Vegas算法 552
16.9.2 FAST算法 553
16.9.3 TCP Westwood算法和Westwood+算法 553
16.9.4 復閤TCP 553
16.10 緩衝區膨脹 555
16.11 積極隊列管理和ECN 556
16.12 與TCP擁塞控製相關的攻擊 557
16.13 總結 558
16.14 參考文獻 560
第17章 TCP保活機製 563
17.1 引言 563
17.2 描述 564
17.2.1 保活功能舉例 565
17.3 與TCP保活機製相關的攻擊 569
17.4 總結 570
17.5 參考文獻 570
第18章 安全:可擴展身份認證協議、IP安全協議、傳輸層安全、DNS安全、域名密鑰識彆郵件 571
18.1 引言 571
18.2 信息安全的基本原則 572
18.3 網絡通信的威脅 572
18.4 基礎的加密與安全機製 573
18.4.1 密碼係統 573
18.4.2 RSA公鑰密碼算法 575
18.4.3 Diffie-Hellman-Merkle密鑰協商協議 576
18.4.4 簽密與橢圓麯綫密碼 577
18.4.5 密鑰派生與完全正嚮保密 577
18.4.6 僞隨機數、生成器與函數族 578
18.4.7 隨機數與混淆值 578
18.4.8 加密散列函數與消息摘要 578
18.4.9 消息認證碼 579
18.4.10 加密套件與密碼套件 580
18.5 證書、證書頒發機構與公鑰基礎設施 582
18.5.1 公鑰證書、證書頒發機構與X.509標準 583
18.5.2 驗證與撤銷證書 587
18.5.3 屬性證書 589
18.6 TCP/IP安全協議與分層 590
18.7 網絡訪問控製:802.1X, 802.1AE,EAP, PANA 591
18.7.1 EAP方法與密鑰派生 594
18.7.2 EAP重新認證協議 595
18.7.3 網絡接入認證信息承載協議 595
18.8 第3層IP安全(IPsec) 596
18.8.1 Internet密鑰交換協議(IKEv2) 597
18.8.2 認證頭部 606
18.8.3 封裝安全負載 609
18.8.4 組播 612
18.8.5 L2TP/IPsec 613
18.8.6 IPsec NAT穿越 613
18.8.7 例子 614
18.9 傳輸層安全(TLS和DTLS) 622
18.9.1 TLS 1.2 623
18.9.2 DTLS 633
18.10 DNS安全(DNSSEC) 636
18.10.1 DNSSEC資源記錄 637
18.10.2 DNSSEC運行 642
18.10.3 事務認證(TSIG, TKEY,SIG(0)) 648
18.10.4 帶有DNS64的DNSSEC 652
18.11 域名密鑰識彆郵件 652
18.11.1 DKIM簽名 652
18.11.2 例子 653
18.12 與安全協議相關的攻擊 654
18.13 總結 655
18.14 參考文獻 657
縮略語 666
· · · · · · (
收起)