TCP/IP详解 卷1:协议(原书第2版) / 计算机科学丛书
定价:¥129.00
作者: [美]凯文 R.福尔,W.理查德·史蒂文斯著;吴英,张玉,许昱玮译
出版时间:2016-06-23
出版社:机械工业出版社
- 机械工业出版社
- 9787111453833
- 1-22
- 47229860-3
- 16开
- 2016-06-23
- 986
- 计算机通信类
- 本科
作者简介
内容简介
本书是TCP/IP领域的经典之作!书中主要讲述TCP/IP协议,不仅仅讲述RFC的标准协议,而且结合大量实例讲述了TCP/IP协议族的定义原因,以及在各种不同的操作系统中的应用及工作方式,使读者可以轻松掌握TCP/IP的知识。本书内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案。本书适合任何希望理解TCP/IP协议如何实现的人阅读,更是TCP/IP领域研究人员和开发人员的权威参考书。无论是初学者还是功底深厚的网络领域高手,本书都是案头必备。
目录
目录
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
出版者的话
译者序
本书评语
序
第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.3TCP/IP协议族结构和协议 9
1.3.1ARPANET参考模型 9
1.3.2TCP/IP中的复用、分解和封装 11
1.3.3端口号 12
1.3.4名称、地址和DNS 12
1.4Internet、内联网和外联网 13
1.5设计应用 13
1.5.1客户机/服务器 14
1.5.2对等 14
1.5.3应用程序编程接口 14
1.6标准化进程 15
1.6.1RFC 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.6IPv6地址和接口标识符 29
2.4CIDR和聚合 31
2.4.1前缀 31
2.4.2聚合 32
2.5特殊用途地址 34
2.5.1IPv4/IPv6地址转换 35
2.5.2组播地址 36
2.5.3IPv4组播地址 36
2.5.4IPv6组播地址 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.1IEEE 802局域网/城域网标准 56
3.2.2以太网帧格式 57
3.2.3802.1p/q:虚拟局域网和QoS标签 60
3.2.4802.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.2802.1ak:多注册协议 76
3.5无线局域网——IEEE 802.11(Wi-Fi) 76
3.5.1802.11帧 77
3.5.2省电模式和时间同步功能 81
3.5.3802.11介质访问控制 82
3.5.4物理层的细节:速率、信道和频率 84
3.5.5Wi-Fi安全 88
3.5.6Wi-Fi网状网(802.11s) 89
3.6点到点协议 89
3.6.1链路控制协议 89
3.6.2多链路PPP 93
3.6.3压缩控制协议 95
3.6.4PPP认证 95
3.6.5网络控制协议 96
3.6.6头部压缩 96
3.6.7例子 97
3.7环回 99
3.8MTU和路径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.3ARP缓存 115
4.4ARP帧格式 116
4.5ARP例子 117
4.5.1正常的例子 117
4.5.2对一个不存在主机的ARP请求 118
4.6ARP缓存超时 119
4.7代理ARP 119
4.8免费ARP和地址冲突检测 120
4.9arp命令 121
4.10 使用ARP设置一台嵌入式设备的IPv4地址 121
4.11 与ARP相关的攻击 122
4.12 总结 122
4.13 参考文献 123
第5章Internet协议 124
5.1引言 124
5.2IPv4头部和IPv6头部 125
5.2.1IP头部字段 125
5.2.2Internet校验和 127
5.2.3DS字段和ECN(以前称为ToS字节或IPv6流量类别) 129
5.2.4IP选项 131
5.3IPv6扩展头部 133
5.3.1IPv6选项 134
5.3.2路由头部 137
5.3.3分片头部 139
5.4IP转发 143
5.4.1转发表 144
5.4.2IP转发行动 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.6IP数据报的主机处理 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.2DHCP和BOOTP消息格式 163
6.2.3DHCP和BOOTP选项 164
6.2.4DHCP协议操作 165
6.2.5DHCPv6 174
6.2.6使用DHCP中继 185
6.2.7DHCP认证 188
6.2.8重新配置扩展 189
6.2.9快速确认 189
6.2.10位置信息(LCI和LoST) 190
6.2.11移动和切换信息(MoS和ANDSF) 190
6.2.12DHCP嗅探 191
6.3无状态地址自动配置 191
6.3.1IPv4链路本地地址的动态配置 191
6.3.2链路本地地址的IPv6 SLAAC 192
6.4DHCP和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.6NAT编辑器 220
7.3.7服务提供者NAT和服务提供者IPv6转换 220
7.4NAT穿越 221
7.4.1针孔和打孔 221
7.4.2单边的自地址确定 222
7.4.3NAT的会话穿越工具 223
7.4.4利用NAT中继的穿越 228
7.4.5交互连接建立 233
7.5配置包过滤防火墙和NAT 235
7.5.1防火墙规则 235
7.5.2NAT规则 236
7.5.3与NAT和防火墙的直接交互:UPnP、NAT-PMP和PCP 237
7.6IPv4/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.2ICMP报文 249
8.2.1ICMPv4报文 250
8.2.2ICMPv6报文 251
8.2.3处理ICMP报文 253
8.3ICMP差错报文 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.4ICMP超时(ICMPv4类型11,ICMPv6类型3) 263
8.3.5参数问题(ICMPv4类型12,ICMPv6类型4) 266
8.4ICMP查询/信息类报文 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.5IPv6中的邻居发现 278
8.5.1ICMPv6路由器请求和通告(ICMPv6类型133,134) 279
8.5.2ICMPv6邻居请求和通告(ICMPv6类型135,136) 280
8.5.3ICMPv6反向邻居发现请求/通告(ICMPv6类型141/142) 283
8.5.4邻居不可达检测 283
8.5.5安全邻居发现 284
8.5.6ICMPv6邻居发现选项 287
8.6ICMPv4和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.5IGMP和MLD健壮性 329
9.4.6IGMP和MLD计数器和变量 330
9.4.7IGMP和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 Diff?ie-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
TCP/IP Illustrated, Volume 1: The Protocols, Second Edition
出版者的话
译者序
本书评语
序
第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.3TCP/IP协议族结构和协议 9
1.3.1ARPANET参考模型 9
1.3.2TCP/IP中的复用、分解和封装 11
1.3.3端口号 12
1.3.4名称、地址和DNS 12
1.4Internet、内联网和外联网 13
1.5设计应用 13
1.5.1客户机/服务器 14
1.5.2对等 14
1.5.3应用程序编程接口 14
1.6标准化进程 15
1.6.1RFC 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.6IPv6地址和接口标识符 29
2.4CIDR和聚合 31
2.4.1前缀 31
2.4.2聚合 32
2.5特殊用途地址 34
2.5.1IPv4/IPv6地址转换 35
2.5.2组播地址 36
2.5.3IPv4组播地址 36
2.5.4IPv6组播地址 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.1IEEE 802局域网/城域网标准 56
3.2.2以太网帧格式 57
3.2.3802.1p/q:虚拟局域网和QoS标签 60
3.2.4802.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.2802.1ak:多注册协议 76
3.5无线局域网——IEEE 802.11(Wi-Fi) 76
3.5.1802.11帧 77
3.5.2省电模式和时间同步功能 81
3.5.3802.11介质访问控制 82
3.5.4物理层的细节:速率、信道和频率 84
3.5.5Wi-Fi安全 88
3.5.6Wi-Fi网状网(802.11s) 89
3.6点到点协议 89
3.6.1链路控制协议 89
3.6.2多链路PPP 93
3.6.3压缩控制协议 95
3.6.4PPP认证 95
3.6.5网络控制协议 96
3.6.6头部压缩 96
3.6.7例子 97
3.7环回 99
3.8MTU和路径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.3ARP缓存 115
4.4ARP帧格式 116
4.5ARP例子 117
4.5.1正常的例子 117
4.5.2对一个不存在主机的ARP请求 118
4.6ARP缓存超时 119
4.7代理ARP 119
4.8免费ARP和地址冲突检测 120
4.9arp命令 121
4.10 使用ARP设置一台嵌入式设备的IPv4地址 121
4.11 与ARP相关的攻击 122
4.12 总结 122
4.13 参考文献 123
第5章Internet协议 124
5.1引言 124
5.2IPv4头部和IPv6头部 125
5.2.1IP头部字段 125
5.2.2Internet校验和 127
5.2.3DS字段和ECN(以前称为ToS字节或IPv6流量类别) 129
5.2.4IP选项 131
5.3IPv6扩展头部 133
5.3.1IPv6选项 134
5.3.2路由头部 137
5.3.3分片头部 139
5.4IP转发 143
5.4.1转发表 144
5.4.2IP转发行动 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.6IP数据报的主机处理 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.2DHCP和BOOTP消息格式 163
6.2.3DHCP和BOOTP选项 164
6.2.4DHCP协议操作 165
6.2.5DHCPv6 174
6.2.6使用DHCP中继 185
6.2.7DHCP认证 188
6.2.8重新配置扩展 189
6.2.9快速确认 189
6.2.10位置信息(LCI和LoST) 190
6.2.11移动和切换信息(MoS和ANDSF) 190
6.2.12DHCP嗅探 191
6.3无状态地址自动配置 191
6.3.1IPv4链路本地地址的动态配置 191
6.3.2链路本地地址的IPv6 SLAAC 192
6.4DHCP和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.6NAT编辑器 220
7.3.7服务提供者NAT和服务提供者IPv6转换 220
7.4NAT穿越 221
7.4.1针孔和打孔 221
7.4.2单边的自地址确定 222
7.4.3NAT的会话穿越工具 223
7.4.4利用NAT中继的穿越 228
7.4.5交互连接建立 233
7.5配置包过滤防火墙和NAT 235
7.5.1防火墙规则 235
7.5.2NAT规则 236
7.5.3与NAT和防火墙的直接交互:UPnP、NAT-PMP和PCP 237
7.6IPv4/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.2ICMP报文 249
8.2.1ICMPv4报文 250
8.2.2ICMPv6报文 251
8.2.3处理ICMP报文 253
8.3ICMP差错报文 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.4ICMP超时(ICMPv4类型11,ICMPv6类型3) 263
8.3.5参数问题(ICMPv4类型12,ICMPv6类型4) 266
8.4ICMP查询/信息类报文 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.5IPv6中的邻居发现 278
8.5.1ICMPv6路由器请求和通告(ICMPv6类型133,134) 279
8.5.2ICMPv6邻居请求和通告(ICMPv6类型135,136) 280
8.5.3ICMPv6反向邻居发现请求/通告(ICMPv6类型141/142) 283
8.5.4邻居不可达检测 283
8.5.5安全邻居发现 284
8.5.6ICMPv6邻居发现选项 287
8.6ICMPv4和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.5IGMP和MLD健壮性 329
9.4.6IGMP和MLD计数器和变量 330
9.4.7IGMP和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 Diff?ie-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










