TCP/IP详解 卷1:协议(原书第2版)

作者:Kevin R. Fall W. Richard Stevens

出版社: 机械工业出版

出版时间: 2016-6-23

定价: CNY 129.00

页数: 683

ISBN: 9787111453833

内容简介

    已故专家W. Richard Stevens的《TCP/IP详解》是一部经典之作!第1版自1994年出版以来深受读者欢迎,但其内容有些已经陈旧,而且没有涉及IPv6。现在,这部世界领先的TCP/IP畅销书已由网络顶级专家Kevin R. Fall博士彻底更新,反映了新一代基于TCP/IP的网络技术。本书主要讲述TCP/IP协议,展示每种协议的实际工作原理的同时还解释了其来龙去脉,新增了RPC、访问控制、身份认证、隐私保护、NFS、SMB/CIFS、DHCP、NAT、防火墙、电子邮件、Web、Web服务、无线、无线安全等内容,每章最后还描述了针对协议的攻击方法,帮助读者轻松掌握领域知识。

    本书内容丰富、概念清晰、论述详尽,适合任何希望理解TCP/IP协议实现的人阅读,更是TCP/IP领域研究人员和开发人员的权威参考书。无论是初学者还是功底深厚的网络领域高手,本书都是案头必备。

作者简介

    W.Richard Stevens,国际知名的UNIX和网络专家,备受赞誉的技术作家。他1951年2月5日出生于赞比亚,后随父母回到美国。中学时就读于弗吉尼亚菲什伯恩军事学校,1973年获得密歇根大学航空和航天工程学士学位。1975年至1982年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜爱飞行运动,做过兼职飞行教练。这期间他分别在1978年和1982年获得亚利桑那大学系统工程硕士和博士学位。此后他去康涅狄格州纽黑文的健康系统国际公司任主管计算机服务的副总裁。1990年他回到图森,从事专业技术写作和咨询工作。写下了多种经典的传世之作,包括《TCP/IP详解》(三卷)、《UNlX环境高级编程》和《UNI×网络编程》(两卷)。Stevens于1999年9月1日去世,年仅48岁。2000年他被国际权威机构USENIX追授“终身成就奖”。

目录

        出版者的话
        译者序
        本书评语
        序
        第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
     · · · · · ·     (收起)

Copyright © 游戏人+ All Rights Reserved.