第1章 数据通信与网络基础 1
1.1 计算机网络概述 1
1.1.1 计算机网络的定义和发展 1
1.1.2 计算机网络的功能 2
1.1.3 网络服务 2
1.1.4 计算机网络的逻辑构成 3
1.1.5 计算机网络的分类 3
1.2.1 信道和数据传输媒体 4
1.2 数据通信基础 4
1.2.2 网络的拓扑结构 5
1.2.3 模拟通信与数字通信 6
1.2.4 数据传输方式 8
1.2.5 信道的多路复用技术 10
1.2.6 数据通信系统的主要技术指标 12
1.3 数据编码与差错检测 13
1.3.1 数据编码 13
1.3.2 差错检测 15
1.4.2 报文分组交换 16
1.4 数据交换方式 16
1.4.1 电路交换 16
1.4.3 快速分组交换 17
1.4.4 光分组交换 18
思考与练习 18
第2章 计算机网络体系结构 19
2.1 网络的分层结构 19
2.1.1 OSI模型 19
2.1.2 协议 21
2.1.3 数据分段和重组 22
2.2 物理层 23
2.2.1 物理层接口与协议 23
2.2.2 以太网和IEEE802的物理层 24
2.2.3 物理层的其他协议 25
2.3 数据链路层 26
2.3.1 数据同步方式 27
2.3.2 数据流组成帧 28
2.3.3 纠错技术 29
2.3.4 流量控制 31
2.3.5 串行通信的数据链路层 33
2.4 网络层 37
2.4.1 通信子网的操作方式和网络层提供的服务 38
2.4.2 路由选择 40
2.4.3 拥塞控制 41
2.5 传输层 42
2.5.1 传输层的地位和作用 42
2.5.2 传输服务 42
2.5.3 服务质量 43
2.5.4 传输层协议等级 44
2.5.5 传输服务原语 44
2.6 TGP/IP协议族 44
2.6.1 TCP/IP各层的功能 45
2.6.2 TCP/IP的网络接口层 46
思考与练习 46
3.1 局域网 47
3.1.1 局域网的体系结构 47
第3章 局域网技术 47
3.1.2 局域网标准 48
3.2 以太网和IEEE 802.3标准 49
3.2.1 802.3局域网 49
3.2.2 以太网的网络适配器 51
3.2.3 以太网的逻辑链路控制和帧格式 52
3.2.4 CSMA/CD访问控制方式 54
3.3.1 令牌环的组成 56
3.3.2 令牌访问控制方式 56
3.3 令牌环和FDDI网络 56
3.3.3 FDDI网络 58
3.4 帧长度的限制 59
3.4.1 最大传输单元 59
3.4.2 路径最大传输单元 59
3.5 局域网的网络操作系统 60
3.5.1 网络操作系统概述 60
3.5.2 局域网操作系统的分类 60
3.6 网络互连 61
3.6.1 常见的网络互连设备 61
思考与练习 63
3.6.2 以太网交换机和虚拟局域网 63
第4章 网际层协议 64
4.1 网际层协议概述 64
4.1.1 IP地址 64
4.1.2 IP地址的规划 66
4.1.3 子网和子网掩码 67
4.2 IP数据报 69
4.2.1 IP数据报首部格式 69
4.1.4 可变长子网掩码 69
4.2.2 数据报的生存期 71
4.3 IP协议的特征和基本功能 72
4.3.1 IP协议的特征 72
4.3.2 IP的两个基本功能 73
4.4 ICMP协议 75
4.4.1 ICMP协议概述 75
4.4.2 ICMP报文的类型 75
4.4.3 ping命令 77
4.4.4 traceroute程序 78
4.5 组播与互联网组管理协议 80
4.5.1 IGMP包结构 81
4.5.2 IP组播 82
4.6 下一代的IP 82
4.6.1 IPv6概述 82
4.6.2 IPv6数据报首部格式 83
4.6.3 IPv6的上层协议 83
4.6.4 IPv4向IPv6的过渡 84
思考与练习 85
5.1.1 地址解析 86
第5章 地址解析与动态主机配置 86
5.1 地址解析协议 86
5.1.2 ARP的原理 87
5.2 逆向地址解析协议 90
5.2.1 RARP的原理 90
5.2.2 RARP服务器的设计 91
5.3 动态主机配置协议 92
5.3.1 BOOTP协议 92
5.3.2 动态主机配置协议概述 93
5.3.3 DHCP的工作原理 95
思考与练习 98
第6章 路由选择及其协议 99
6.1 路由选择 99
6.1.1 路由选择概述 99
6.1.2 路由选择的原理 100
6.1.3 常见的路由配置 100
6.1.4 路由表 101
6.2.2 距离向量法和路由信息协议 104
6.2.1 动态选路概述 104
6.2 动态选路协议 104
6.2.3 链路状态算法及开放最短路径优先 107
6.2.4 边界网关协议 111
6.2.5 无类型域间选路 112
6.3 配置Linux作为路由器 113
6.3.1 配置Linux硬件 113
6.3.2 使用ifconfig检查和配置网络接口 115
6.3.3 添加和编辑静态路由 115
6.3.4 使用netstat监视网络端口 117
6.3.5 Linux作为动态路由 119
思考与练习 122
第7章 传输层协议 124
7.1 TCP协议规范 124
7.2 端口和套接字 127
7.2.1 套接字 127
7.2.2 端口号 127
7.2.3 保留端口 128
7.3 TCP的连接 129
7.3.1 连接进程 130
7.3.3 关闭连接 131
7.3.2 建立连接 131
7.3.4 优先和安全 132
7.4 传输控制块和流量控制 132
7.4.1 传输控制块 132
7.4.2 TCP定时器 133
7.4.3 确认与超时重传 133
7.4.4 TCP的拥塞控制 137
7.5 用户数据报协议 138
7.5.1 UDP概述 138
7.5.3 UDP检验和 139
7.5.2 UDP端口号 139
7.5.4 最大UDP数据报长度 140
思考与练习 141
第8章 域名系统 142
8.1 域名服务概述 142
8.1.1 主机名解析 142
8.1.2 DNS的组成结构 143
8.1.3 名字解释过程概述 144
8.2.2 技术规范 146
8.2.3 命名规则 146
8.2 域名空间和资源记录 146
8.2.1 域名空间 146
8.2.4 区域 147
8.2.5 资源记录 148
8.2.6 查询 150
8.3 名字服务器 152
8.3.1 概述 152
8.3.2 IN-ADDR-ARPA格式 153
8.3.3 DNS报文 154
8.3.4 区的维护与传输 155
8.4 名字解释器 156
8.4.1 名字解释器概述 156
8.4.2 名字解释器接口 156
8.4.3 名字解释器的实现 157
8.5 配置Linux DNS服务器 158
8.5.1 域名服务器建立实例 159
8.5.2 测试域名服务器 161
8.5.3 检查DNS服务器运行状况 162
思考与练习 163
第9章 应用层协议 164
9.1 Telnet协议 164
9.1.1 Telnet概述 164
9.1.2 建立连接 165
9.2 FTP协议 168
9.2.1 FTP概述 168
9.2.2 FTP命令 169
9.2.3 FTP第三方用户传输 171
9.2.5 简单文件传输协议 172
9.2.4 匿名FTP访问 172
9.3.1 HTTP协议概述 173
9.3 HTTP协议 173
9.3.2 多用途因特网邮件扩充 174
9.3.3 HTTP连接观察实例 177
9.4 SMTP和POP3协议 178
9.4.1 SMTP协议概述 178
9.4.2 SMTP协议原理 179
9.4.3 SMTP命令 181
9.4.5 POP3邮局协议 183
9.4.4 SMTP响应 183
9.5 网络时间协议 185
思考与练习 186
第10章 建立Intranet网络服务器 187
10.1 Linux网络服务器配置文件 187
10.2 Linux系统上的网络应用程序 190
10.2.1 XINETD进程超级服务器 190
10.2.2 Red Hat系统服务控制机制 195
10.3.1 Apache的组成 199
10.2.3 services和protocols文件 199
10.3 安装Web服务器 199
10.3.2 Apache的设置 200
10.3.3 为用户开辟个人主页空间 203
10.3.4 用Apache实现虚拟主机服务 203
10.4 安装FTP服务器 205
10.4.1 选择和安装FTP服务器软件 205
10.4.2 WU-FTP的组成 205
10.4.3 WU-FTP的配置 206
10.5.1 电子邮件系统概述 209
10.4.4 与WU-FTP相关的命令 209
10.5 安装电子邮件服务器 209
10.5.2 用sendmail构建电子邮件服务器 210
思考与练习 211
第11章 网络文件系统 213
11.1 Linux文件系统概述 213
11.1.1 UNIX文件系统的路径组织结构 213
11.2 网络文件系统 215
11.2.1 网络文件系统概述 215
11.1.2 存储设备的安装 215
11.2.2 网络文件系统的上层实现 216
11.2.3 网络文件系统的下层实现 217
11.2.4 Linux网络文件系统的体系结构 221
11.3 安装Linux文件服务器 224
11.3.1 安装Linux的网络文件系统 224
11.3.2 安装NFS卷 224
11.3.3 NFS服务器配置 226
11.3.4 Samba服务器安装 228
11.4 远程过程调用和网络文件系统的管理 230
11.4.1 rpcinfo程序 230
11.4.2 nfsstat程序 231
思考与练习 232
第12章 网络安全与系统管理 233
12.1 基于Linux系统的安全策略 233
12.1.1 网络安全概述 233
12.1.2 物理安全策略 233
12.1.3 访问控制策略 234
12.2.1 黑客常用的攻击方法 239
12.2 攻击防御和安全防范 239
12.2.2 Linux网络安全防范策略 240
12.2.3 网络病毒与防治 241
12.2.4 合理划分子网和设置防火墙 242
12.2.5 其他安全技术 243
12.3 使用Linux2.4设置防火墙 244
12.3.1 Netfilter基础 244
12.3.2 NAT概述 246
12.3.3 使用Metfilter共享Internet拨号连接 247
12.4 Linux的定制和性能调整 249
12.4.1 系统定制概述 250
12.4.2 保持系统的完整性 250
12.4.3 系统服务管理 251
12.4.4 定制内核 254
12.5 磁盘管理和备份管理 256
12.5.1 磁盘限额 256
12.5.2 回收磁盘空间 258
12.5.3 备份与恢复 258
思考与练习 259
13.1.1 传统局域网管理 260
第13章 网络管理和故障排除 260
13.1 网络管理概述 260
13.1.2 网络管理功能 262
13.2 网络管理协议 264
13.2.1 网络管理协议概述 264
13.2.2 网络管理的基础结构 265
13.2.3 SNMP的体系结构 267
13.2.4 MIB及其对象 271
13.2.5 Linux系统中的SNMP配置 275
13.3 网络故障诊断和排除 276
13.3.1 网络故障的检测 277
13.3.2 使用网络管理工具排除故障 278
思考与练习 279
第14章 套接字编程基础 280
14.1 套接字概述 280
14.1.1 套接字描述符 280
14.1.2 客户-服务器模式 280
14.2 TCP初等网络函数 281
14.2.1 服务器端的函数 281
14.2.2 在客户端建立连接 286
14.2.3 通过套接字传输数据 288
14.2.4 关闭连接 289
14.2.5 面向连接的套接字实例 289
14.3 服务器端和客户端的信息函数 292
14.3.1 转换和网络方面的信息函数 292
14.3.2 完整的读写函数 294
14.3.3 高级套接字函数 296
14.4.1 UDP循环服务器 298
14.4 服务器模型 298
14.4.2 TCP循环服务器 299
14.4.3 TCP并发服务器 299
14.4.4 多路复用I/O并发服务器 300
14.4.5 并发TCP服务器实例 302
14.5 原始套接字 303
思考与练习 304
附录A 计算机网络实验 305
附录B Linux常用命令 321
参考文献 328