第1章 TCP/IP概述 1
1.1 网络互联与TCP/IP 1
1.1.1 用IP实现异构网络互联 1
1.1.2 TCP/IP协议族的引入 3
1.2 网络协议的分层 3
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的发展过程 10
1.4 TCP/IP协议的标准化 12
习题 12
第2章 点到点协议PPP 13
2.1 引言 13
2.2 PPP协议流程 14
2.3 PPP帧格式 15
2.4 LCP 16
2.4.1 链路配置 16
2.4.2 链路终止 17
2.4.3 链路维护 17
2.5 IPCP 18
2.6 认证协议PAP 18
2.7 认证协议CHAP 19
2.8 PPPoE 19
2.8.1 PPPoE的引入 19
2.8.2 PPPoE协议流程 20
2.8.3 PPPoE报文 20
习题 22
第3章 Internet地址及地址解析 23
3.1 引言 23
3.2 Internet地址 24
3.2.1 Internet编址方法 24
3.2.2 IP地址的格式 24
3.2.3 IP地址的分类 25
3.2.4 关于IP地址的几点说明 26
3.3 地址解析协议ARP 28
3.3.1 两种地址解析方式 28
3.3.2 ARP的思想和步骤 28
3.3.3 跨网通信时ARP的使用方法 29
3.3.4 ARP提高通信效率的措施 29
3.3.5 ARP报文格式及封装 30
3.3.6 ARP命令 31
3.3.7 ARP欺骗 31
3.4 反向地址解析协议RARP 33
3.4.1 RARP的思想 33
3.4.2 RARP报文 34
3.4.3 RARP服务器设置 34
习题 34
第4章 互联网协议IP 36
4.1 引言 36
4.2 IP数据报格式 36
4.3 IP数据报的分片和重组 40
4.3.1 分片控制 40
4.3.2 分片重组 41
4.4 IP数据报首部校验和的计算 45
4.5 IP选项 45
4.5.1 记录路由选项 46
4.5.2 源路由选项 46
4.5.3 时间戳选项 47
4.5.4 与选项相关的DOS命令 48
4.6 IP的一些安全问题 48
4.6.1 Tiny Fragment 48
4.6.2 teardrop 49
4.6.3 Ping of Death 49
4.7 IP数据报的选路 49
4.7.1 路由表 49
4.7.2 IP选路算法 50
4.7.3 处理传入的数据报 51
习题 52
第5章 Internet控制报文协议ICMP 53
5.1 引言 53
5.2 ICMP报文 54
5.3 差错报告类报文 55
5.3.1 目的站不可达报文 55
5.3.2 超时报文 56
5.3.3 参数错误报文 56
5.4 请求/应答类报文 56
5.4.1 回送请求和回送应答报文 56
5.4.2 地址掩码请求和应答报文 57
5.4.3 时戳请求和应答报文 57
5.4.4 路由器通告和路由器恳求报文 58
5.5 单向通知的控制类报文 59
5.5.1 源站抑制报文 59
5.5.2 重定向报文 59
5.6 实验性的ICMP报文 60
5.6.1 ICMP域名报文 60
5.6.2 ICMP安全失败报文 61
5.7 ICMP应用举例 62
5.7.1 ping程序 62
5.7.2 traceroute程序 62
习题 63
第6章 用户数据报协议UDP 65
6.1 引言 65
6.2 引入传输层的必要性 65
6.3 网络应用的标识 66
6.3.1 数据传输的最终目的地 66
6.3.2 进程与端口号的关系 67
6.4 UDP概述 67
6.5 UDP报文 68
6.5.1 报文格式 68
6.5.2 报文封装 68
6.5.3 最大用户数据报长度 69
6.6 UDP校验和 69
6.6.1 校验和的计算方法 69
6.6.2 UDP-Lite 69
6.7 UDP的多路复用与多路分解 70
6.8 UDP端口号的使用 71
6.8.1 客户端/服务器模型 71
6.8.2 基于客户端/服务器模型的端口使用方法 71
习题 72
第7章 传输控制协议TCP 73
7.1 引言 73
7.2 TCP的特点 73
7.3 TCP连接 74
7.3.1 TCP连接建立 74
7.3.2 TCP连接正常关闭 76
7.3.3 TCP连接异常关闭 77
7.3.4 TCP半开放连接检测 77
7.3.5 端口、端点和连接 78
7.4 提供可靠性 78
7.4.1 防止丢失的机制 78
7.4.2 防止重复和乱序的机制 78
7.4.3 TCP确认机制的特点 79
7.4.4 超时重传定时器的设置 79
7.5 传输效率与流量控制 81
7.5.1 一般的滑动窗口机制 81
7.5.2 TCP的滑动窗口机制 82
7.5.3 端到端流量控制 82
7.5.4 TCP的坚持定时器 83
7.5.5 糊涂窗口综合征 83
7.6 TCP的拥塞控制机制 84
7.6.1 慢启动与拥塞避免 85
7.6.2 快速重传与快速恢复 87
7.7 IP层对改善TCP性能的支持 87
7.8 TCP报文段格式 88
7.8.1 TCP的码元比特 89
7.8.2 TCP的校验和 90
7.8.3 TCP选项 91
7.9 对TCP的几点说明 92
习题 93
第8章 Internet地址扩展技术 94
8.1 引言 94
8.2 使物理网络数目最小的技术 94
8.2.1 透明路由器 95
8.2.2 代理ARP 96
8.2.3 子网编址 96
8.3 超网编址 99
8.3.1 思想 99
8.3.2 CIDR的地址表示 99
8.3.3 CIDR的路由查找 100
8.3.4 为专用网络保留的CIDR块 102
8.4 网络地址转换 102
8.4.1 NAT的工作原理 102
8.4.2 NAT的地址转换方式 103
8.4.3 NAT与ICMP间的交互 105
8.4.4 NAT与应用程序间的交互 105
8.4.5 NAT穿越 106
习题 107
第9章 路由协议概述 108
9.1 引言 108
9.2 路由表的建立与维护 109
9.2.1 静态路由配置 109
9.2.2 动态路由信息交换 109
9.3 路径确定 110
9.3.1 路径存在性 110
9.3.2 最优化选路 110
9.3.3 路由度量 111
9.4 路由算法 112
9.4.1 向量距离算法 112
9.4.2 链路状态算法 113
9.5 Internet路由体系的发展 114
9.5.1 核心路由体系 114
9.5.2 对等主干网路由体系 115
9.5.3 自治系统路由体系 117
9.6 大规模网络拓扑发现 119
9.6.1 背景 119
9.6.2 目标 120
9.6.3 网络拓扑结构分析及建模 120
习题 121
第10章 选路信息协议RIP 122
10.1 引言 122
10.2 RIP概述 122
10.3 RIP的工作原理 123
10.4 RIP路由信息的时效性 123
10.4.1 更新定时器 123
10.4.2 过期定时器 123
10.4.3 刷新定时器 123
10.5 RIPv1的报文格式 124
10.6 RIP的慢收敛问题及其对策 124
10.7 RIPv1中的额外跳问题 126
10.8 RIPv2 126
10.8.1 RIPv2的扩展 126
10.8.2 RIPv2的报文格式 127
习题 128
第11章 开放式最短路径优先OSPF 130
11.1 引言 130
11.2 OSPF概述 130
11.3 OSPF的思想 131
11.3.1 区域 131
11.3.2 虚拟链路 133
11.3.3 路由汇总 133
11.3.4 路由计算 134
11.4 OSPF报文 134
11.4.1 公共首部 134
11.4.2 Hello报文 135
11.4.3 数据库同步 138
11.5 几点说明 143
11.5.1 对OSPF本身的说明 143
11.5.2 对IGP的几点说明 144
习题 144
第12章 边界网关协议BGP 146
12.1 引言 146
12.2 BGP概述 146
12.3 BGP的有限状态机 148
12.4 BGP报文的公共首部 150
12.5 BGP的OPEN报文 150
12.6 BGP的KEEPALIVE报文 152
12.7 BGP的UPDATE报文 152
12.7.1 BGP的IP地址前缀编码 152
12.7.2 BGP的路径属性 153
12.8 BGP的NOTIFICATION报文 154
习题 155
第13章 Internet组播 156
13.1 引言 156
13.2 组播地址 156
13.3 Internet群组管理协议IGMP 157
13.4 IGMP的报文格式 158
13.4.1 IGMPv1及IGMPv2报文格式 158
13.4.2 IGMPv3报文格式 158
13.5 以太网组播数据报的交付 161
13.6 组播路由算法 161
13.6.1 最短路径树算法 161
13.6.2 最小生成树算法 162
13.6.3 Steiner树算法 162
13.6.4 最大带宽树算法 163
13.7 组播路由协议 164
13.7.1 DVMRP 165
13.7.2 MOSPF 166
13.7.3 CBT 167
13.7.4 PIM-DM 167
13.7.5 PIM-SM 168
13.7.6 分析与比较 168
13.8 可靠组播 170
13.8.1 可靠组播要解决的问题及策略 171
13.8.2 ARQ 171
13.8.3 前向纠错FEC 173
13.8.4 ARQ和FEC组合法 173
13.8.5 差错恢复 174
习题 174
第14章 移动IP 176
14.1 引言 176
14.2 移动IP操作概述 176
14.3 移动IP的工作机制 177
14.3.1 代理发现 177
14.3.2 注册 178
14.3.3 数据传送 179
14.4 移动IP的三角路由问题 180
14.5 隧道技术 181
14.5.1 IP-in-IP封装 181
14.5.2 最小封装 181
14.5.3 通用路由封装 182
习题 183
第15章 应用层系统服务 184
15.1 引言 184
15.2 自举协议BOOTP 184
15.2.1 自举协议的引入 184
15.2.2 BOOTP的工作机制 185
15.2.3 BOOTP的报文格式 186
15.3 动态主机配置协议DHCP 188
15.3.1 DHCP的引入 188
15.3.2 DHCP的工作原理 188
15.3.3 DHCP地址租用 189
15.3.4 DHCP客户端状态转换 189
15.3.5 DHCP报文格式 190
15.3.6 DHCP的应用 191
15.4 域名系统DNS 191
15.4.1 DNS的引入 191
15.4.2 互联网的域和域名 192
15.4.3 域名解析原理 194
15.4.4 递归解析和迭代解析 196
15.4.5 高速缓存 196
15.4.6 DNS报文格式 197
15.4.7 对象类型与DNS资源记录 200
15.4.8 减少DNS报文长度的措施 202
15.4.9 使用UDP还是TCP 203
15.4.10 DNS面临的安全威胁 203
15.4.11 DNS的使用 204
习题 205
第16章 网络管理标准SNMP 206
16.1 引言 206
16.1.1 网络管理需求 206
16.1.2 SNMP参考模型 207
16.2 SNMP发展历史 208
16.3 管理信息库MIB 208
16.3.1 管理对象注册树 209
16.3.2 管理对象命名 209
16.3.3 管理对象访问约束 210
16.3.4 mib-2子树 210
16.4 SNMP通信协议 213
16.4.1 访问控制机制 213
16.4.2 报文格式 214
16.4.3 请求报文的处理过程 217
16.4.4 读取表格对象值的方法 218
16.4.5 端口使用 219
16.5 SMI 219
16.5.1 抽象标记语法1 219
16.5.2 MIB对象定义格式 220
16.5.3 基本编码规则BER 221
16.5.4 用BER对SNMP报文进行编码 223
16.6 SNMP应用 225
习题 225
第17章 应用层协议 226
17.1 引言 226
17.2 文件共享 226
17.2.1 NFS 226
17.2.2 FTP概述 228
17.2.3 FTP进程模型 228
17.2.4 FTP端口使用 229
17.2.5 FTP命令 229
17.2.6 FTP报文格式 229
17.2.7 数据格式 230
17.2.8 访问控制 230
17.3 万维网和HTTP 232
17.3.1 万维网 232
17.3.2 HTTP概述 235
17.3.3 HTTP请求方式 235
17.3.4 持久连接和长度 240
17.3.5 HTTP协商及条件请求 241
17.3.6 代理服务器和高速缓存 241
17.3.7 HTTP报文格式 242
17.3.8 HTTP客户端程序设计 245
17.4 电子邮件系统 245
17.4.1 电子邮件系统的引入 245
17.4.2 邮箱地址及电子邮件格式 246
17.4.3 多用途Internet邮件扩充MIME 247
17.4.4 简单邮件传输协议SMTP 249
17.4.5 邮局协议POP 250
17.4.6 Internet报文访问协议IMAP 251
17.4.7 电子邮件系统的使用 251
17.5 信息查询Whois 252
17.5.1 Whois基础 252
17.5.2 Whois与WWW 252
习题 252
附录 缩略语表 254
参考文献 259