第1章 计算机网络和因特网 1
1.1 什么是因特网 1
1.1.1 架构描述 1
目录 1
1.1.2 服务描述 3
1.1.3 什么是协议 4
1.2 网络边缘 6
1.2.1 端系统、客户机和服务器 6
1.1.4 一些好的超链接 6
1.2.2 无连接和面向连接的服务 8
1.3 网络核心 10
1.3.1 电路交换和分组交换 10
1.3.2 计算机网络中的分组转发 17
1.4 网络接入和物理媒体 20
1.4.1 网络接入 20
1.4.2 物理媒体 24
1.5 ISP和因特网主干 27
1.6.1 时延的类型 29
1.6 分组交换网络中的时延和分组丢失 29
1.6.2 排队时延和分组丢失 31
1.6.3 因特网中的时延和路由 33
1.7 协议层次及其服务模型 34
1.7.1 分层的体系结构 34
1.7.2 因特网协议栈 37
1.7.3 网络实体和层次 39
1.8 计算机网络和因特网的历史 40
1.8.1 分组交换的发展:1961—1972 40
1.8.2 专用网络和网络互连:1972—1980 41
1.8.3 网络的激增:1980—1990 42
1.8.4 因特网爆炸:20世纪90年代 43
1.8.5 最新发展 44
1.9 小结 44
本书路线图 45
课后习题和问题 45
习题 46
讨论题 49
人物专访:LeonardKleinrock 50
第2章 应用层 52
2.1 应用层协议原理 52
2.1.1 应用层协议 53
2.1.2 应用所需要的服务 57
2.1.3 因特网运输协议提供的服务 58
2.1.4 本书提及的网络应用 60
2.2 Web应用和HTTP协议 60
2.2.1 HTTP概况 61
2.2.2 非持久连接和持久连接 63
2.2.3 HTTP报文格式 65
2.2.4 用户服务器交互:特许和Cookies 68
2.2.5 条件GET方法 70
2.2.6 HTTP内容 71
2.3 文件传输协议:FTP 71
2.3.1 FTP命令和回答 72
2.4 因特网中的电子邮件 73
2.4.1 SMTP 75
2.4.3 邮件报文格式和MIME 77
2.4.2 与HTTP的对比 77
2.4.4 邮件访问协议 81
2.5 DNS:因特网的目录服务 84
2.5.1 DNS提供的服务 85
2.5.2 DNS工作机理概述 86
2.5.3 DNS记录 91
2.5.4 DNS报文 91
2.6.1 TCP套接字编程 93
2.6 TCP套接字编程 93
2.6.2 Java客户机/服务器应用示例 95
2.7 UDP套接字编程 100
2.8 构造一个简单的Web服务器 106
2.8.1 Web服务器的功能 106
2.9 内容分布 110
2.9.1 Web缓存 110
2.9.2 内容分布网络 114
2.9.3 对等文件共享 117
课后习题和问题 122
2.10 小结 122
习题 123
讨论题 126
编程习题 126
人物专访:TimBerners-Lee 127
第3章 运输层 129
3.1 概述和运输层服务 129
3.1.1 运输层和网络层的关系 130
3.1.2 因特网运输层概述 131
3.2 复用与分解 132
3.3 无连接运输:UDP 137
3.3.1 UDP报文段结构 139
3.3.2 UDP检验和 139
3.4 可靠的数据传输原理 141
3.4.1 构造可靠的数据传输协议 142
3.4.2 可靠的管道数据传输协议 149
3.4.3 Go-Back-N(GBN) 151
3.4.4 选择性重传(SR) 155
3.5.1 TCP连接 159
3.5 面向连接的运输:TCP 159
3.5.2 TCP报文段结构 161
3.5.3 往返时延的估计与超时 164
3.5.4 可靠的数据传输 166
3.5.5 流量控制 172
3.5.6 TCP连接管理 174
3.6 拥塞控制原理 177
3.6.1 拥塞原因与开销 178
3.6.2 拥塞控制方法 182
3.6.3 网络辅助的拥塞控制:ATMABR拥塞控制 183
3.7 TCP拥塞控制 184
3.7.1 公平性 188
3.7.2 TCP时延建模 190
3.8 小结 197
课后习题和问题 198
习题 198
讨论题 203
编程作业3:实现一个可靠的运输协议 203
人物专访:SallyFloyd 204
第4章 网络层和选路 206
4.1 概述和网络服务模型 206
4.1.1 网络服务模型 208
4.1.2 数据报和虚电路服务的由来 210
4.2 选路原理 211
4.2.1 链路状态选路算法 213
4.2.2 距离向量选路算法 216
4.2.3 其他选路算法 222
4.3 层次选路 223
4.4 互联网协议(IP) 225
4.4.1 IPv4编址 226
4.4.2 从源到目的地传输数据报:编址、选路和转发 232
4.4.3 数据报格式 234
4.4.4 IP数据报分片 236
4.4.5 ICMP:互联网控制报文协议 238
4.4.6 动态主机配置协议 239
4.4.7 网络地址转换(NAT) 241
4.5 因特网中的选路 242
4.5.1 因特网中自治系统内部选路:RIP和OSPF 243
4.5.2 自治系统之间的选路:BGP 247
4.6 路由器的构成 251
4.6.1 输入端口 253
4.6.2 交换结构 254
4.6.3 输出端口 255
4.6.4 何时出现排队 256
4.7 IPv6 258
4.7.1 IPv6数据报格式 259
4.7.2 从IPv4向IPv6的迁移 260
4.8 多播选路 263
4.8.1 概述:因特网多播抽象和多播组 263
4.8.2 IGMP 265
4.8.3 多播选路:通常情况 268
4.8.4 因特网中的多播选路 272
4.9 移动性和网络层 274
4.9.1 网络层设计中的移动性考虑 274
4.9.2 移动性管理 275
4.9.3 移动IP 280
4.10 小结 283
课后习题和问题 284
习题 286
讨论题 289
编程作业 290
人物专访:VintonG.Cerf 291
第5章 链路层和局域网 293
5.1 数据链路层:概述和服务 294
5.1.1 链路层提供的服务 294
5.1.2 适配器通信 296
5.2 差错检测和纠错技术 297
5.2.1 奇偶校验 298
5.2.2 检验和方法 299
5.2.3 循环冗余检测 300
5.3 多路访问协议 301
5.3.1 信道划分协议 303
5.3.2 随机访问协议 307
5.3.3 轮流协议 311
5.3.4 局域网(LAN) 312
5.4 LAN地址和ARP 313
5.4.1 LAN地址 314
5.4.2 地址解析协议 315
5.5 以太网 318
5.5.1 以太网基础 319
5.5.2 CSMA/CD:以太网的多路访问协议 321
5.5.3 以太网技术 323
5.6.1 集线器 326
5.6 集线器、网桥和交换机 326
5.6.2 网桥 327
5.6.3 交换机 332
5.7 无线链路 335
5.7.1 WLAN:IEEE802.11b 336
5.7.2 蓝牙 340
5.8 PPP:点对点协议 341
5.8.1 PPP数据成帧 342
5.8.2 PPP链路控制协议(LCP)和多种网络控制协议 344
5.9.1 ATM主要特性 345
5.9 异步传输方式(ATM) 345
5.9.2 ATM物理层 347
5.9.3 ATM层 348
5.9.4 ATM适配层 348
5.9.5 ATM上的IP 350
5.10 帧中继 352
5.10.1 历史背景 352
5.10.2 帧中继 353
5.11 小结 355
课后习题和问题 356
习题 357
讨论题 361
人物专访:RobertM.Metcalfe 362
第6章 多媒体网络 364
6.1 多媒体网络应用 364
6.1.1 多媒体应用的例子 364
6.1.2 当今因特网上的多媒体障碍 367
6.1.3 因特网如何演化以更好地支持多媒体 367
6.1.4 音频和视频压缩 368
6.1.5 因特网中的视频压缩 369
6.2 流式存储音频和视频 370
6.2.1 通过Web服务器访问音频和视频 371
6.2.2 从流式服务器向助理应用程序发送多媒体 372
6.2.3 实时流协议(RTSP) 374
6.3 充分利用尽力服务:一个因特网电话的例子 377
6.3.1 尽力服务的限制 377
6.3.2 在接收方消除音频的时延抖动 379
6.3.3 从分组丢失中恢复 381
6.3.4 流式存储音频和视频 383
6.4 实时交互应用的协议 383
6.4.1 RTP 384
6.4.2 RTP控制协议(RTCP) 387
6.4.3 SIP 389
6.4.4 H.323 392
6.5 超越尽力服务 394
6.5.1 情况1:1Mbit/s的音频应用和FTP传输 395
6.5.3 情况3:异常的音频应用和FTP传输 396
6.5.2 情况2:lMbit/s的音频应用和高优先级FTP传输 396
6.5.4 情况4:一条过载的1.5 Mbit/s链路上的两个1Mbit/s音频应用 398
6.6 调度和监管机制 398
6.6.1 调度机制 399
6.6.2 监管:漏桶 402
6.7 综合服务 404
6.7.1 有保证的服务质量 405
6.7.2 受控负载的网络服务 405
6.8.1 RSVP的要点 406
6.8 RSVP 406
6.8.2 一些简单的例子 407
6.9 区分服务 409
6.9.1 区分服务:一个简单的情况 410
6.9.2 流量分类和调节 411
6.9.3 每跳行为 413
6.9.4 对区分服务的批评 414
6.10 小结 414
课后习题和问题 415
习题 416
讨论题 418
编程作业 418
人物专访:HenningSchu1zrinne 419
第7章 计算机网络安全 421
7.1 什么是网络安全 421
7.2 密码学的原则 423
7.2.1 对称密钥密码学 425
7.2.2 公钥加密 428
7.3 鉴别 431
7.3.1 鉴别协议ap1.0 432
7.3.2 鉴别协议ap2.0 432
7.3.3 鉴别协议ap3.0 433
7.3.4 鉴别协议ap3.1 434
7.3.5 鉴别协议ap4.0 434
7.3.6 鉴别协议ap5.0 435
7.4 完整性 437
7.4.1 生成数字签名 437
7.4.2 报文摘要 438
7.4.3 散列函数算法 441
7.5 密钥分发和认证 442
7.5.1 密钥分发中心 443
7.5.2 公钥认证 444
7.6 访问控制:防火墙 447
7.6.1 分组过滤 448
7.6.2 应用程序网关 450
7.7 攻击和对策 451
7.7.1 映射 451
7.7.2 分组嗅探 452
7.7.4 拒绝服务攻击和分布式拒绝服务攻击 453
7.7.3 哄骗 453
7.7.5 劫持 454
7.8 多个层次中的安全性:案例研究 454
7.8.1 安全电子邮件 455
7.8.2 安全套接字层(SSL)和运输层安全性(TLS) 459
7.8.3 网络层安全性:IPsec 461
7.8.4 IEEE802.11的安全性 464
7.9 小结 465
习题 466
课后习题和问题 466
讨论题 467
人物专访:StevenM.Bellovin 468
第8章 网络管理 470
8.1 什么是网络管理 470
8.2 网络管理的基础设施 473
8.3 因特网的标准网络框架 475
8.3.1 管理信息结构:SMI 476
8.3.2 管理信息库:MIB 478
8.3.3 SNMP协议运行和传输映射 480
8.3.4 安全性和管理 481
8.4 ASN.1 484
8.5 小结 487
课后习题和问题 488
习题 488
讨论题 489
人物专访:JeffCase 489
参考文献 491