本书采用作者独创的自顶向下方法讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下逐层讲解,让读者从实现、应用的角度明白各层的意义,进而理解计算机网络的工作原理和机制。本书强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环境之中进行学习和“创造”。
译者序
前言
作者简介
第1章 计算机网络和因特网1
1.1 什么是因特网1
1.1.1 具体构成描述1
1.1.2 服务描述4
1.1.3 什么是协议5
1.2 网络边缘6
1.2.1 接入网8
1.2.2 物理媒介13
1.3 网络核心15
1.3.1 分组交换15
1.3.2 电路交换18
1.3.3 网络的网络21
1.4 分组交换网中的时延、丢包和吞吐量24
1.4.1 分组交换网中的时延24
1.4.2 排队时延和丢包26
1.4.3 端到端时延28
1.4.4 计算机网络中的吞吐量29
1.5 协议层次及其服务模型32
1.5.1 分层的体系结构32
1.5.2 封装35
1.6 面对攻击的网络 36
1.7 计算机网络和因特网的历史 39
1.7.1 分组交换的发展:1961~1972 39
1.7.2 专用网络和网络互联:1972~1980 40
1.7.3 网络的激增:1980~1990 41
1.7.4 因特网爆炸:20世纪90年代 42
1.7.5 新发展42
1.8 小结43
课后习题和问题44
复习题44
习题46
Wireshark实验50
人物专访51
第2章 应用层53
2.1 网络应用原理53
2.1.1 网络应用体系结构55
2.1.2 进程通信56
2.1.3 可供应用程序使用的运输服务58
2.1.4 因特网提供的运输服务59
2.1.5 应用层协议62
2.1.6 本书涉及的网络应用62
2.2 Web和HTTP63
2.2.1 HTTP概述63
2.2.2 非持续连接和持续连接64
2.2.3 HTTP报文格式66
2.2.4 用户与服务器的交互:cookie69
2.2.5 Web缓存71
2.2.6 HTTP/274
2.3 因特网中的电子邮件76
2.3.1 SMTP77
2.3.2 邮件报文格式79
2.3.3 邮件访问协议80
2.4 DNS:因特网的目录服务81
2.4.1 DNS提供的服务81
2.4.2 DNS工作机理概述83
2.4.3 DNS记录和报文87
2.5 P2P文件分发90
2.6 视频流和内容分发网95
2.6.1 因特网视频95
2.6.2 HTTP流和DASH96
2.6.3 内容分发网96
2.6.4 学习案例:Netflix和YouTube 100
2.7 套接字编程:生成网络应用102
2.7.1 UDP套接字编程103
2.7.2 TCP套接字编程107
2.8 小结110
课后习题和问题110
复习题110
习题112
套接字编程作业 116
Wireshark实验:HTTP 117
Wireshark实验:DNS 117
人物专访117
第3章 运输层118
3.1 概述和运输层服务118
3.1.1 运输层和网络层的关系119
3.1.2 因特网运输层概述120
3.2 多路复用与多路分解122
3.3 无连接运输:UDP127
3.3.1 UDP报文段结构129
3.3.2 UDP检验和130
3.4 可靠数据传输原理131
3.4.1 构造可靠数据传输协议132
3.4.2 流水线可靠数据传输协议140
3.4.3 回退N步142
3.4.4 选择重传145
3.5 面向连接的运输:TCP149
3.5.1 TCP连接149
3.5.2 TCP报文段结构151
3.5.3 往返时间的估计与超时154
3.5.4 可靠数据传输156
3.5.5 流量控制161
3.5.6 TCP连接管理163
3.6 拥塞控制原理167
3.6.1 拥塞原因与代价168
3.6.2 拥塞控制方法172
3.7 TCP拥塞控制173
3.7.1 经典的TCP拥塞控制173
3.7.2 网络辅助明确拥塞通告和基于时延的拥塞控制180
3.7.3 公平性182
3.8 运输层功能的演化184
3.9 小结186
课后习题和问题187
复习题187
习题189
编程作业196
Wireshark实验:探究TCP196
Wireshark实验:探究UDP196
人物专访196
第4章 网络层:数据平面198
4.1 网络层概述198
4.1.1 转发和路由选择:数据平面和控制平面199
4.1.2 网络服务模型201
4.2 路由器工作原理203
4.2.1 输入端口处理和基于目的地转发205
4.2.2 交换207
4.2.3 输出端口处理209
4.2.4 何处出现排队209
4.2.5 分组调度212
4.3 网际协议:IPv4、寻址、IPv6及其他216
4.3.1 IPv4数据报格式216
4.3.2 IPv4编址218
4.3.3 网络地址转换226
4.3.4 IPv6229
4.4 泛化转发和SDN232
4.4.1 匹配234
4.4.2 操作235
4.4.3 运行中的匹配加操作的OpenFlow例子235
4.5 中间盒237
4.6 小结239
课后习题和问题240
复习题240
习题241
Wireshark实验:IP245
人物专访245
第5章 网络层:控制平面247
5.1 概述247
5.2 路由选择算法249
5.2.1 链路状态路由选择算法251
5.2.2 距离向量路由选择算法254
5.3 因特网中自治系统内部的路由选择:OSPF259
5.4 ISP之间的路由选择:BGP262
5.4.1 BGP的作用262
5.4.2 通告BGP路由信息262
5.4.3 确定好的路由264
5.4.4 IP任播266
5.4.5 路由选择策略267
5.4.6 拼装在一起:在因特网中呈现269
5.5 SDN控制平面270
5.5.1 SDN控制平面:SDN控制器和SDN网络控制应用程序272
5.5.2 OpenFlow协议273
5.5.3 数据平面和控制平面交互的例子274
5.5.4 SDN的过去与未来275
5.6 ICMP:因特网控制报文协议277
5.7 网络管理、SNMP和NETCONF/YANG 279
5.7.1 网络管理框架280
5.7.2 简单网络管理协议和管理信息库281
5.7.3 NETCONF和YANG 284
5.8 小结287
课后习题和问题287
复习题287
习题288
套接字编程作业291
编程作业291
Wireshark实验:ICMP 292
人物专访292
第6章 链路层和局域网294
6.1 链路层概述294
6.1.1 链路层提供的服务296
6.1.2 链路层在何处实现296
6.2 差错检测和纠正技术297
6.2.1 奇偶校验298
6.2.2 检验和方法299
6.2.3 循环冗余检测300
6.3 多路访问链路和协议301
6.3.1 信道划分协议303
6.3.2 随机接入协议304
6.3.3 轮流协议310
6.3.4 DOCSIS:用于电缆因特网接入的链路层协议310
6.4 交换局域网311
6.4.1 链路层寻址和ARP312
6.4.2 以太网317
6.4.3 链路层交换机322
6.4.4 虚拟局域网326
6.5 链路虚拟化:网络作为链路层328
6.6 数据中心网络331
6.6.1 数据中心体系结构331
6.6.2 数据中心网络的发展趋势334
6.7 回顾:Web页面请求的历程336
6.7.1 准备:DHCP、UDP、IP和以太网336
6.7.2 仍在准备:DNS和ARP338
6.7.3 仍在准备:域内路由选择到DNS服务器339
6.7.4 Web客户-服务器交互:TCP和HTTP339
6.8 小结340
课后习题和问题341
复习题341
习题342
Wireshark实验:802.3以太网346
人物专访346
第7章 无线网络和移动网络348
7.1 概述348
7.2 无线链路和网络特征351
7.3 WiFi:802.11无线局域网356
7.3.1 802.11无线局域网体系结构357
7.3.2 802.11 MAC协议359
7.3.3 IEEE 802.11帧363
7.3.4 在相同的IP子网中的移动性365
7.3.5 802.11中的高级特色367
7.3.6 个人域网络:蓝牙368
7.4 蜂窝网络:4G和5G369
7.4.1 4G LTE蜂窝网络:架构和部件370
7.4.2 LTE协议栈375
7.4.3 LTE无线电接入网376
7.4.4 LTE附加功能:网络连接和功率管理376
7.4.5 全球蜂窝网络:网络的网络377
7.4.6 5G蜂窝网络378
7.5 移动性管理原理380
7.5.1 设备移动性:网络层视角380
7.5.2 归属网络和在被访网络漫游381
7.5.3 去往/来自移动设备的直接和间接路由382
7.6 实践中的移动性管理386
7.6.1 4G/5G网络的移动性管理387
7.6.2 移动IP390
7.7 无线和移动性:对高层协议的影响391
7.8 小结393
课后习题和问题393
复习题393
习题394
Wireshark实验:WiFi 396
人物专访396
第8章 计算机网络中的安全398
8.1 什么是网络安全398
8.2 密码学原理400
8.2.1 对称密钥密码体制401
8.2.2 公开密钥加密405
8.3 报文完整性和数字签名409
8.3.1 密码散列函数410
8.3.2 报文鉴别码411
8.3.3 数字签名412
8.4 端点鉴别417
8.5 安全电子邮件419
8.5.1 安全电子邮件概述420
8.5.2 PGP422
8.6 使TCP连接安全:TLS423
8.6.1 宏观描述424
8.6.2 更完整的描述426
8.7 网络层安全性:IPsec和虚拟专用网427
8.7.1 IPsec和虚拟专用网428
8.7.2 AH协议和ESP协议429
8.7.3 安全关联429
8.7.4 IPsec数据报430
8.7.5 IKE:IPsec中的密钥管理433
8.8 实现安全的无线局域网和4G/5G蜂窝网络433
8.8.1 802.11无线局域网中的鉴别和密钥协商434
8.8.2 4G/5G蜂窝网络中的鉴别和密钥协商436
8.9 运行安全性:防火墙和入侵检测系统439
8.9.1 防火墙439
8.9.2 入侵检测系统444
8.10 小结447
课后习题和问题447
复习题447
习题449
Wireshark实验:TLS452
IPsec实验452
人物专访452
参考文献454