第1章 TCP/IP概述 1
1.1 网络互联与TCP/IP 1
1.1.1 用IP实现异构网络互联 1
1.1.2 TCP/IP协议族的引入 3
1.2 网络协议的分层 4
1.2.1 通用的协议分层思想 4
1.2.2 TCP/IP的分层模型 6
1.2.3 协议分层的原则 7
1.2.4 TCP/IP分层模型中的两个边界 7
1.2.5 点到点和端到端 8
1.2.6 协议依赖关系 9
1.2.7 多路复用和多路分解 9
1.3 TCP/IP的发展过程 11
1.4 TCP/IP的标准化 12
1.4.1 互联网组织 12
1.4.2 标准化过程 14
1.4.3 互联网发展的奠基者和推动者 15
1.5 中国互联网发展历史回顾 15
习题 16
第2章 点到点协议PPP 17
2.1 引言 17
2.2 PPP协议流程 18
2.3 PPP帧格式 19
2.4 LCP 20
2.4.1 链路配置 20
2.4.2 链路终止 21
2.4.3 链路维护 22
2.5 IPCP 22
2.6 认证协议PAP 22
2.7 认证协议CHAP 23
2.8 PPPoE 23
2.8.1 以太网回顾 23
2.8.2 PPPoE的引入 24
2.8.3 PPPoE协议流程 25
2.8.4 PPPoE报文格式与封装 25
习题 27
第3章 Internet地址及地址解析 28
3.1 引言 28
3.2 Internet地址 29
3.2.1 Internet编址方法 29
3.2.2 IP地址的格式 29
3.2.3 IP地址的分类 30
3.2.4 关于IP地址的几点说明 32
3.3 地址解析协议ARP 34
3.3.1 两种地址解析方式 35
3.3.2 ARP的思想和步骤 35
3.3.3 跨网转发时ARP的使用方法 36
3.3.4 ARP提高通信效率的措施 37
3.3.5 ARP报文格式及封装 37
3.3.6 ARP命令 38
3.3.7 ARP欺骗 38
3.3.8 用ARP实现地址冲突检测 40
3.4 反向地址解析协议RARP 42
3.4.1 RARP的思想 42
3.4.2 RARP报文 42
3.4.3 RARP服务器设置 42
3.5 进一步阅读 43
习题 44
第4章 互联网协议IP 45
4.1 引言 45
4.2 IP数据报格式 45
4.3 IP数据报的分片和重组 50
4.3.1 分片控制 50
4.3.2 分片重组 51
4.4 IP数据报首部校验和的计算 55
4.5 IP选项 56
4.5.1 记录路由选项 57
4.5.2 源路由选项 58
4.5.3 时间戳选项 58
4.5.4 与选项相关的DOS命令 59
4.6 IP的一些安全问题 59
4.6.1 Tiny Fragment 59
4.6.2 teardrop 60
4.6.3 Ping of Death 60
4.7 IP的发展 60
4.8 IP数据报的选路 61
4.8.1 路由表 61
4.8.2 IP选路算法 62
4.8.3 处理传入的数据报 63
习题 64
第5章 Internet控制报文协议ICMP 65
5.1 引言 65
5.2 ICMP报文 66
5.3 差错报告类报文 67
5.3.1 目的站不可达报文 67
5.3.2 超时报文 68
5.3.3 参数错误报文 68
5.3.4 Photuris报文 68
5.4 请求/应答类报文 69
5.4.1 回送请求和回送应答报文 69
5.4.2 路由器通告和路由器恳求报文 69
5.4.3 时戳请求和时戳应答报文 70
5.5 单向通知的控制类报文 71
5.6 实验性的ICMP报文 72
5.7 废弃不用的ICMP报文 73
5.7.1 源站抑制报文 73
5.7.2 地址掩码请求和地址掩码应答报文 73
5.7.3 ICMP域名报文 73
5.8 ICMP应用举例 74
5.8.1 ping程序 74
5.8.2 traceroute程序 75
5.9 ICMP的一些安全问题 76
5.9.1 基于ICMP的DoS攻击 76
5.9.2 基于ICMP重定向的路由欺骗 77
习题 77
第6章 用户数据报协议UDP 78
6.1 引言 78
6.2 引入传输层的必要性 78
6.3 网络应用的标识 79
6.3.1 数据传输的最终目的地 79
6.3.2 进程与端口号的关系 80
6.4 UDP概述 80
6.5 UDP报文 80
6.5.1 报文格式 80
6.5.2 报文封装 81
6.5.3 最大用户数据报长度 81
6.6 UDP校验和 81
6.6.1 校验和的计算方法 81
6.6.2 UDP-Lite 82
6.7 UDP的多路复用与多路分解 83
6.8 UDP端口号的使用 83
6.8.1 客户端/服务器模型 83
6.8.2 基于客户端/服务器模型的端口使用方法 83
6.9 UDP的一些安全问题 84
6.9.1 UDP洪泛攻击 84
6.9.2 基于UDP的反射DDoS攻击 85
习题 85
第7章 传输控制协议TCP 86
7.1 引言 86
7.2 TCP的特点 86
7.3 TCP连接 87
7.3.1 TCP连接建立 87
7.3.2 TCP连接正常关闭 89
7.3.3 TCP连接异常关闭 90
7.3.4 TCP半开连接检测 90
7.3.5 端口、端点和连接 90
7.4 提供可靠性 91
7.4.1 防止丢失的机制 92
7.4.2 防止重复和乱序的机制 92
7.4.3 TCP确认机制的特点 92
7.4.4 超时重传定时器的设置 93
7.5 传输效率与流量控制 95
7.5.1 一般的滑动窗口机制 95
7.5.2 TCP的滑动窗口机制 95
7.5.3 端到端流量控制 96
7.5.4 TCP的坚持定时器 96
7.5.5 糊涂窗口综合征 97
7.6 TCP的拥塞控制机制 98
7.6.1 慢启动与拥塞避免 98
7.6.2 快速重传与快速恢复 100
7.7 IP层对改善TCP性能的支持 101
7.8 TCP报文段格式 102
7.8.1 TCP的码元比特 103
7.8.2 TCP的校验和 104
7.8.3 TCP选项 104
7.9 TCP的安全问题 106
7.10 对TCP的几点说明 107
习题 108
第8章 Internet地址扩展技术 109
8.1 引言 109
8.2 使物理网络数目最小的技术 109
8.2.1 透明路由器 110
8.2.2 代理ARP 111
8.2.3 子网编址 111
8.2.4 匿名的点到点链路 114
8.3 超网编址 114
8.3.1 思想 114
8.3.2 CIDR的地址表示 115
8.3.3 CIDR的路由查找 116
8.3.4 为专用网络保留的CIDR块 118
8.4 网络地址转换NAT 118
8.4.1 NAT的工作原理 118
8.4.2 NAT的地址转换方式 118
8.4.3 NAT与ICMP间的交互 120
8.4.4 NAT与应用程序间的交互 121
8.4.5 NAT穿越 122
8.4.6 NAT在IPv4与IPv6互通中的应用 123
习题 125
第9章 路由协议概述 126
9.1 引言 126
9.2 路由表的建立与维护 127
9.2.1 静态路由配置 127
9.2.2 动态路由信息交换 127
9.3 路径确定 128
9.3.1 路径存在性 128
9.3.2 最优化选路 128
9.3.3 路由度量 129
9.4 路由算法 130
9.4.1 向量距离算法 130
9.4.2 链路状态算法 131
9.5 Internet路由体系的发展 132
9.5.1 核心路由体系 132
9.5.2 对等主干网路由体系 133
9.5.3 自治系统路由体系 134
9.6 大规模网络拓扑发现 136
9.6.1 背景 136
9.6.2 目标 137
9.6.3 网络拓扑结构分析及建模 137
习题 138
第10章 选路信息协议RIP 139
10.1 引言 139
10.2 RIP概述 139
10.3 RIP的工作原理 140
10.4 RIP路由信息的时效性 140
10.4.1 更新定时器 140
10.4.2 过期定时器 140
10.4.3 删除定时器 140
10.5 RIPv1报文格式 141
10.6 RIP的慢收敛问题及其对策 141
10.7 RIPv1中的额外跳问题 142
10.8 RIPv2 143
10.8.1 RIPv2的扩展 143
10.8.2 RIPv2报文格式 143
10.8.3 RIPv2认证 143
10.9 RIPng 145
习题 145
第11章 开放式最短路径优先OSPF 146
11.1 OSPF概述 146
11.2 OSPF的思想 147
11.2.1 区域 147
11.2.2 虚拟链路 148
11.2.3 路由汇总 149
11.2.4 路由计算 149
11.3 OSPF报文 150
11.3.1 公共首部 150
11.3.2 OSPF认证 151
11.3.3 Hello报文 151
11.3.4 数据库同步 154
11.4 OSPF的最新进展 158
11.4.1 隐藏完全传输网络 158
11.4.2 引入TTZ 160
11.5 几点说明 161
11.5.1 对OSPF本身的说明 161
11.5.2 对IGP的几点说明 162
习题 162
第12章 边界网关协议BGP 163
12.1 引言 163
12.2 BGP概述 163
12.3 EGP与IGP之间的交互 165
12.4 BGP的有限状态机 167
12.5 BGP报文的公共首部 170
12.6 BGP的OPEN报文 170
12.7 BGP的KEEPALIVE报文 171
12.8 BGP的UPDATE报文 171
12.8.1 BGP的IP地址前缀编码 172
12.8.2 BGP的路径属性 172
12.9 BGP的NOTIFICATION报文 173
12.10 BGP的新发展 173
12.10.1 AS号扩展 173
12.10.2 AS号扩展给协议带来的新变化 174
12.10.3 其他进展 174
12.11 BGP的安全问题 174
12.11.1 前缀劫持 174
12.11.2 路由泄露 175
12.11.3 会话中断 176
习题 178
第13章 Internet组播 179
13.1 引言 179
13.2 组播地址 179
13.3 Internet群组管理协议IGMP 181
13.4 IGMP报文格式 181
13.4.1 IGMPv1及IGMPv2报文格式 181
13.4.2 IGMPv3报文格式 182
13.5 以太网组播数据报的交付 184
13.6 组播路由算法 184
13.6.1 最短路径树算法 185
13.6.2 最小生成树算法 185
13.6.3 Steiner树算法 185
13.6.4 最大带宽树算法 186
13.7 组播路由协议 187
13.7.1 DVMRP 188
13.7.2 MOSPF 189
13.7.3 CBT 189
13.7.4 PIM-DM 190
13.7.5 PIM-SM 190
13.7.6 分析与比较 191
13.8 可靠组播 193
13.8.1 可靠组播要解决的问题及策略 193
13.8.2 ARQ 194
13.8.3 前向纠错 195
13.8.4 ARQ和FEC组合法 196
13.8.5 差错恢复 196
习题 197
第14章 移动IP 198
14.1 引言 198
14.2 移动IP操作概述 198
14.3 移动IP的工作机制 199
14.3.1 代理发现 199
14.3.2 注册 201
14.3.3 数据传送 205
14.4 移动IP的三角路由问题 205
14.5 隧道技术 206
14.5.1 IP-in-IP封装 206
14.5.2 最小封装 206
14.5.3 通用路由封装 207
习题 208
第15章 应用层系统服务 209
15.1 引言 209
15.2 自举协议BOOTP 209
15.2.1 自举协议的引入 209
15.2.2 BOOTP的工作机制 210
15.2.3 BOOTP报文格式 211
15.3 动态主机配置协议DHCP 213
15.3.1 DHCP的引入 213
15.3.2 DHCP的工作原理 214
15.3.3 DHCP地址租用 214
15.3.4 DHCP客户端状态转换 214
15.3.5 DHCP报文格式 215
15.3.6 DHCP的应用 216
15.3.7 DHCP面临的安全威胁 216
15.3.8 DHCP的新发展 216
15.4 域名系统DNS 217
15.4.1 DNS的引入 217
15.4.2 互联网的域和域名 218
15.4.3 域名解析原理 220
154.4 递归解析和迭代解析 222
15.4.5 高速缓存 222
15.4.6 DNS报文格式 223
15.4.7 对象类型与DNS资源记录 226
15.4.8 减少DNS报文长度的措施 227
15.4.9 使用UDP还是TCP 228
15.4.10 DNS面临的安全威胁 228
15.4.11 DNS的使用 230
习题 230
第16章 网络管理标准SNMP 231
16.1 引言 231
16.1.1 网络管理需求 231
16.1.2 SNMP参考模型 232
16.2 SNMP发展历史 233
16.3 管理信息库MIB 234
16.3.1 对象 234
16.3.2 管理对象命名 235
16.3.3 管理对象访问约束 235
16.3.4 mib-2子树 236
16.3.5 实例 238
16.4 SNMP通信协议 239
16.4.1 访问控制机制 239
16.4.2 报文格式 240
16.4.3 请求报文的处理过程 242
16.4.4 GetNextRequest-PDU的用法 243
16.4.5 端口使用 244
16.5 SMI 244
16.5.1 ASN1 244
16.5.2 MIB对象定义格式 246
16.5.3 基本编码规则BER 246
16.5.4 用BER对SNMP报文进行编码 249
16.6 SNMP应用 249
16.7 SNMP面临的安全威胁 250
习题 250
第17章 万维网与电子邮件系统 251
17.1 引言 251
17.2 万维网和HTTP 251
17.2.1 万维网 251
17.2.2 HTTP概述 254
17.2.3 HTTP请求方式 254
17.2.4 持久连接和长度 259
17.2.5 HTTP协商及条件请求 259
17.2.6 代理服务器和高速缓存 260
17.2.7 HTTP报文格式 262
17.2.8 HTTP客户端程序设计 264
17.2.9 HTTP 2协议简介 264
17.2.10 HTTP面临的安全威胁 265
17.3 电子邮件系统 267
17.3.1 电子邮件系统的引入 267
17.3.2 邮箱地址及电子邮件格式 268
17.3.3 多用途Internet邮件扩充 MIME 269
17.3.4 简单邮件传输协议SMTP 271
17.3.5 邮局协议POP 272
17.3.6 Internet消息访问协议IMAP 272
17.3.7 电子邮件系统的使用 273
17.3.8 电子邮件系统面临的安全威胁 273
习题 275
第18章 文件共享与远程登录 276
18.1 引言 276
18.2 文件共享 276
18.2.1 NFS 276
18.2.2 FTP概述 277
18.2.3 FTP进程模型 278
18.2.4 FTP端口使用 278
18.2.5 FTP命令 279
18.2.6 FTP报文格式 279
18.2.7 数据格式 279
18.2.8 访问控制 280
18.2.9 FTP面临的安全威胁 281
18.2.10 FTP的发展 282
18.3 远程登录Telnet 282
18.3.1 基本原理 282
18.3.2 网络虚拟终端NVT 283
18.3.3 选项协商 285
18.3.4 Telnet的使用 285
18.3.5 Telnet的安全问题 286
习题 286
第19章 信息查询与时间服务 287
19.1 引言 287
19.2 信息查询Whois 287
19.2.1 Whois基础 287
19.2.2 Whois与WWW 288
19.2.3 Whois的新发展 288
19.3 网络时间协议NTP 289
19.3.1 NTP的发展 289
19.3.2 NTP的基本原理 289
19.3.3 NTP的时间校准方法 290
19.3.4 NTP报文格式 291
习题 292
缩略语表 293
参考文献 300