本书是受到众多好评的《计算机网络原理创新教程》(中国水利水电出版社出版,2017年版)的改版。本书保留了《计算机网络原理创新教程》中以图说理、生动形象、易教易学、配套丰富的特点,又加入了计算机网络领域的知识、更正了《计算机网络原理创新教程》中的个别错误、优化了部分内容的讲述方式,同时,把《计算机网络原理创新教程》第3章的用于搭建网络实验环境的GNS3模拟软件,更新为了更符合当前人才培养目标的华为eNSP。
本书以计算机网络通信的层次划分为主线,结合众多图形及数据在各层次的收发及变换过程,形象而生动地讲述了各层协议的功能、原理及其实际应用。本书使得计算机网络通信中的理论学习不再是虚空对想象,不再是似是而非,而是能够看得见、讲得清、学得会、用得上。
本书适合高校网络及计算机相关专业作为本科或研究生教材使用,也适合相关从业人员参考或自学。
本书提供配套PPT,并超值附赠两章电子版内容(网络安全和IPv6),读者可以从中国水利水电出版社网站(www.waterpub.com.cn)或万水书苑网站(www.wsbookshow.com)免费下载。
我不知道社会上有多少人想学精计算机网络,也不知道我讲的计算机网络课程有什么过人之处。当我把在软件学院随堂录制的计算机网络视频放到51CTO学院网站后,看到了几十万访问量和众多的好评,才知道原来有那么多人在互联网上苦苦搜寻优秀的计算机网络教程,才知道学生喜欢我这种讲故事一样的讲课方式。
高校计算机专业的学生大多需要学习计算机网络这门课程,很多学校还是必修课。很多非计算机专业的学生,想转行进入IT领域发展,想打好扎实的基础,也都应该掌握计算机网络。
当前,有关计算机网络图书大致可分为两大类:一类是网络设备厂商考证相关的教程,比如思科网络工程师教程CCNA、CCNP,华为认证网络工程师HCIA、HCIE、HCIP等;另一类就是高校的计算机网络相关教材,代表作就是谢希仁老师编著的《计算机网络》。
然而,这些厂商认证的教程,其目的只是培养能够熟练操作和配置其网络设备的工程师,对计算机网络通信原理和过程并没有进行深入细致的讲解,其重点是如何配置网络设备。而高校计算机网络原理相关的教材,则深入讲解了计算机通信过程和各层协议,并没给学生讲解如何使用具体的网络设备对所学的理论进行验证,更没有进一步扩展这些理论可以应用在哪些场景。死记硬背式的学习,除了应付考试,很难解决实际问题。很多老师在讲授这门课程时,不但学生感觉没意思,自己也觉得没意思。
我从事IT企业培训和企业IT技术支持20年,积累了大量的实战经验,同时,在河北师范大学软件学院以谢希仁老师编著的《计算机网络》为教程讲授计算机网络原理12年,在授课过程中增加了大量的案例,设计了合适的实验来验证所讲的理论。通过理论结合实践,不仅给学生讲清楚了计算机各层通信协议,还通过捕获数据包,让学生看到数据包的结构、每一层的封装。通过网络层的教学,不仅教会学生理解网络畅通的必要条件,还能在华为路由器上配置静态路由和动态路由;在传输层,不仅能让大家理解传输层协议和应用层协议之间的关系,还能让大家通过设置Windows服务器实现网络安全;在应用层,不仅讲解了常见的应用层协议,还能使用抓包工具捕获客户端和服务器之间交互的数据包,会分析各种应用层协议数据包格式……
2016年,时机成熟,我决心编写计算机网络原理教程,以谢希仁老师编著的《计算机网络》(第六版)为蓝本,绘制大量插图展示所讲理论,每一段理论结束后,紧跟着就是如何使用这些理论来解决实际问题,对知识进一步扩展。力求对书中内容的安排恰到好处,设计了经典的实验,做到了让理论不再抽象,让课程充满趣味,让学习充满乐趣。
《计算机网络原理创新教程》经过几年的教学检验,受到了广大授课老师及同学的热烈好评。通过这本书,老师们对理论的讲解更加轻松自如,同学们的学习积极性、接受的程度、学以致用的能力都得到了大幅度提高。
在新的人才培养目标指引下,立足于自主可控,《计算机网络创新教程》从实验设备到虚拟化实验软件,都进行了国产化改版,网络设备的讲解都以华为系列设备为案例进行教学,虚拟化实验环境搭建软件也由GNS3改为了华为的eNSP。此外,本书还加入了计算机网络领域的知识、本人的讲课方法,同时更正了《计算机网络原理创新教程》中的不足或错误之处、优化了部分内容的讲述方式。
本书适合的读者对象
计算机专业本专科教材。
需要对计算机网络原理进行回炉IT人
想从事IT方面的工作、系统学习IT技术的有梦想的人。
打算考取思科或华为网络工程师认证的人。
技术支持
技术交流和资料索取请联系:
韩老师QQ:458717185。
技术支持QQ群韩立刚IT技术交流群:301678170。
韩老师视频教学网站:http://www.91xueit.com。
韩老师微信公众号:han_91xueit。
致谢
河北师范大学软件学院一直采用校企合作的办学模式,在课程体系设置上与市场接轨;在教师的选用上,大量聘用来自企业一线的工程师;在教材及实验手册的建设上,结合国内优秀教材的知识体系,大胆创新,开发了一系列理论与实践相结合的教材(本书即是其中一本)。在学院新颖办学模式的培养下,百余名学生进入知名企业实习或已签订就业合同,得到了用人企业的广泛认可。这些改革成果的取得,首先要感谢河北师范大学校长蒋春澜教授的大力支持和鼓励,同时还要感谢河北师范大学校党委对这一办学模式的肯定与关心。
在本书整理完成的过程中,河北师范大学数信学院院长邓明立教授、软件学院副院长赵书良教授以及李文斌副教授为本书的写作提供了一个良好的环境,是他们为本书内容的教学实践保驾护航,他们与作者关于教学的沟通与交流为本书提供了丰富的案例和建议,在此对他们表示真诚的感谢。感谢河北师范大学软件学院教学团队的每一位成员,感谢河北师范大学软件学院的每一位学生,是他们的友好、热情、帮助和关心促使了本书的出版。
后,感谢我的家人在本书创作过程中给予的支持与理解。
希望本书能带给广大老师及学生更多的教学和学习乐趣,同时也诚恳地欢迎广大师生批评指正,多提宝贵意见。
前言
第1章 计算机网络和协议 1
1.1 计算机网络在当今社会的作用 1
1.2 认识网络 2
1.2.1 网络和互联网 2
1.2.2 的互联网因特网 3
1.2.3 企业组建的互联网 4
1.2.4 家庭组建的互联网 5
1.3 理解TCP/IP协议 7
1.3.1 理解协议 7
1.3.2 计算机通信协议 9
1.3.3 TCP/IP协议各层的功能 11
1.3.4 封装和解封 12
1.4 理解OSI参考模型 13
1.4.1 OSI参考模型和TCP/IP协议的关系 13
1.4.2 计算机通信分层的优点 15
1.5 OSI参考模型学以致用 17
1.5.1 学以致用表示层 17
1.5.2 学以致用安装抓包工具并查看数据包内容 19
1.5.3 学以致用传输层连接 21
1.5.4 学以致用用分层的思想考虑问题 23
1.5.5 学以致用OSI参考模型与排错 23
1.6 计算机网络的性能指标 25
1.6.1 速率 25
1.6.2 带宽 27
1.6.3 吞吐量 28
1.6.4 时延 29
1.6.5 时延带宽积 31
1.6.6 往返时间 32
1.6.7 利用率 32
1.7 网络分类 33
1.7.1 按网络的范围进行分类 33
1.7.2 按网络的使用者进行分类 33
1.8 企业局域网设计 34
1.8.1 二层结构的局域网 34
1.8.2 三层结构的局域网 35
习题1 35
第2章 物理层 37
2.1 物理层的基本概念 38
2.2 数据通信基础 38
2.2.1 数据通信模型 38
2.2.2 数据通信中的常用术语 39
2.2.3 模拟信号和数字信号 40
2.2.4 模数转换 42
2.3 信道和调制 43
2.3.1 信道 43
2.3.2 单工、半双工及全双工通信 44
2.3.3 调制 44
2.3.4 信道极限容量 45
2.4 传输媒体 48
2.4.1 导向传输媒体 48
2.4.2 非导向传输媒体 52
2.5 信道复用技术 55
2.5.1 频分复用 56
2.5.2 时分复用 57
2.5.3 波分复用 58
2.5.4 码分复用 59
2.6 宽带接入技术 61
2.6.1 铜线接入技术 61
2.6.2 HFC技术 64
2.6.3 光纤接入技术 65
2.6.4 移动互联网接入技术 65
习题2 67
第3章 管理华为设备 69
3.1 VRP简介 69
3.2 介绍eNSP 70
3.2.1 安装eNSP 71
3.2.2 华为设备型号 71
3.3 VRP命令行 73
3.3.1 命令行的基本概念 73
3.3.2 命令行的使用方法 76
3.4 登录设备 78
3.4.1 用户界面配置 79
3.4.2 通过Console口登录设备 81
3.4.3 通过Telnet登录设备 83
3.5 基本配置 84
3.5.1 配置设备名称 85
3.5.2 配置设备IP地址 85
3.6 配置文件的管理 86
3.6.1 华为设备配置文件 86
3.6.2 保存当前配置 86
3.6.3 设置下一次启动加载的配置文件 88
3.6.4 文件管理 89
习题3 91
第4章 数据链路层 94
4.1 数据链路层的概念和三个基本问题 95
4.1.1 数据链路和帧 95
4.1.2 数据链路层的三个基本问题 96
4.2 点到点信道的数据链路 100
4.2.1 PPP原理 101
4.2.2 PPP基本工作流程 103
4.2.3 配置PPP协议:PAP身份验证模式 106
4.2.4 配置PPP协议:CHAP身份验证模式 107
4.2.5 通过抓包观察PPP的工作过程 108
4.2.6 PPP帧填充方式 111
4.3 广播信道的数据链路 112
4.3.1 广播信道的局域网 112
4.3.2 以太网标准 113
4.3.3 CSMA/CD协议 114
4.3.4 以太网短帧 115
4.3.5 冲突解决方法退避算法 116
4.3.6 以太网帧格式 117
4.3.7 以太网信道利用率 121
4.3.8 网卡的作用 122
4.3.9 MAC地址 123
4.3.10 实战:查看和更改MAC地址 125
4.4 扩展以太网 126
4.4.1 集线器 127
4.4.2 计算机数量和距离上的扩展 127
4.4.3 使用网桥优化以太网 129
4.4.4 网桥自动构建MAC地址表 130
4.4.5 多接口网桥交换机 132
4.4.6 查看交换机MAC地址表 134
4.4.7 生成树协议 135
4.5 高速以太网 138
4.5.1 100M以太网 138
4.5.2 吉比特以太网 139
4.5.3 10吉比特以太网 141
习题4 142
第5章 IP地址和子网划分 144
5.1 学习IP地址预备知识 144
5.1.1 二进制和十进制 145
5.1.2 二进制数的规律 146
5.2 理解IP地址 146
5.2.1 MAC地址和IP地址 147
5.2.2 IP地址的组成 147
5.2.3 IP地址格式 148
5.2.4 子网掩码的作用 149
5.2.5 子网掩码另一种表示方法 152
5.3 IP地址详解 152
5.3.1 IP地址分类 152
5.3.2 特殊的IP地址 154
5.4 公网地址和私网地址 156
5.4.1 公网地址 156
5.4.2 私网地址 157
5.5 子网划分 157
5.5.1 子网划分的目的 157
5.5.2 等长子网划分 158
5.5.3 等长子网划分示例 161
5.6 变长子网划分 162
5.6.1 变长子网划分示例 162
5.6.2 点到点网络的网络掩码 163
5.6.3 判断IP地址所属的网段 164
5.6.4 子网划分需要注意的几个问题 165
5.7 使用超网合并网段 165
5.7.1 合并网段 166
5.7.2 合并网段的规律 167
5.7.3 判断一个网段是超网还是子网 169
习题5 169
第6章 静态路由和动态路由 174
6.1 路由的基本概念 174
6.1.1 什么是路由 174
6.1.2 路由信息的来源 176
6.1.3 路由优先级 178
6.1.4 网络畅通的条件 179
6.1.5 配置静态路由示例 179
6.2 路由汇总 181
6.2.1 通过路由汇总简化路由表 181
6.2.2 路由汇总例外 183
6.2.3 无类域间路由(CIDR) 183
6.3 默认路由 184
6.3.1 全球的网段 184
6.3.2 使用默认路由作为指向Internet的路由 185
6.3.3 使用默认路由和路由汇总简化
路由表 186
6.3.4 默认路由造成的路由环路 188
6.3.5 让默认路由代替大多数网段的路由 189
6.3.6 Windows上的默认路由和网关 190
6.4 网络排错案例 193
6.4.1 站在全局的高度排除网络故障 193
6.4.2 计算机网关也很重要 194
6.5 动态路由RIP协议 195
6.5.1 RIP协议特点 195
6.5.2 RIP协议工作原理 196
6.5.3 在路由器上配置RIP协议 197
6.5.4 查看路由表 199
6.5.5 观察RIP协议路由更新活动 200
6.5.6 RIP协议数据包报文格式 201
6.6 动态路由OSPF协议 202
6.6.1 什么是短路径优先算法 203
6.6.2 OSPF协议概述 204
6.6.3 OSPF区域 205
6.6.4 OSPF协议相关术语 206
6.6.5 OSPF协议的工作过程 207
6.7 配置OSPF协议 208
6.7.1 OSPF多区域配置 208
6.7.2 查看OSPF协议的三张表 211
6.7.3 在区域边界路由器上进行路由汇总 212
习题6 214
第7章 网络层协议 222
7.1 IP协议 223
7.1.1 抓包查看网络层 223
7.1.2 网络层格式 224
7.1.3 实战:查看协议版本和长度 227
7.1.4 数据分片详解 230
7.1.5 实战:捕获并观察数据包分片 231
7.1.6 数据包生存时间(TTL)详解 236
7.2 ICMP协议 237
7.2.1 抓包分析ICMP报文 237
7.2.2 ICMP报文格式 239
7.2.3 ICMP差错报告报文TTL过期 240
7.2.4 ICMP差错报告报文目标主机不可到达 241
7.2.5 ICMP差错报告报文路由
重定向 242
7.2.6 ICMP差错报告报文给程序返回错误消息 244
7.3 使用ICMP排除网络故障案例 245
7.3.1 使用ping诊断网络故障 245
7.3.2 使用ping断定哪一段链路出现故障 246
7.3.3 使用tracert跟踪数据包路径 248
7.3.4 使用pathping跟踪数据包路径 250
7.4 ARP协议 251
7.4.1 ARP协议的作用 251
7.4.2 ARP协议的工作过程和安全隐患 253
7.4.3 ARP欺骗之网络执法官与P2P终结者 254
7.4.4 判断和防止ARP欺骗的方法 254
7.5 IGMP协议 255
7.5.1 什么是组播 255
7.5.2 组播IP地址 256
7.5.3 组播MAC地址 257
7.5.4 组播管理协议(IGMP) 258
7.6 实战:跨网段观看组播视频 259
习题7 259
第8章 传输层 262
8.1 传输层的两个协议 263
8.1.1 TCP和UDP协议的应用场景 263
8.1.2 传输层协议和应用层协议之间
的关系 264
8.1.3 服务和端口之间的关系 266
8.1.4 实战:服务器端口冲突造成服务启动失败 267
8.1.5 实战:更改服务使用的默认端口 268
8.1.6 端口和网络安全的关系 269
8.1.7 实战:Windows防火墙和TCP/IP筛选实现网络安全 270
8.2 用户数据报协议(UDP) 271
8.2.1 UDP协议的特点 271
8.2.2 UDP的格式 272
8.3 传输控制协议(TCP) 274
8.3.1 TCP协议的主要特点 274
8.3.2 TCP报文的格式 275
8.4 可靠传输 280
8.4.1 TCP可靠传输的实现停止等待协议 280
8.4.2 连续ARQ协议和滑动窗口协议改进的停止等待协议 282
8.4.3 以字节为单位的滑动窗口技术详解 283
8.4.4 改进的确认选择确认(SACK) 285
8.4.5 超时重传的时间调整 287
8.5 流量控制 289
8.6 拥塞控制 290
8.6.1 拥塞控制的原理 290
8.6.2 拥塞控制方法慢开始和拥塞避免 291
8.6.3 拥塞控制方法快重传和快恢复 294
8.6.4 发送窗口的上限 295
8.7 TCP连接管理 296
8.7.1 TCP的连接建立 296
8.7.2 TCP的连接释放 299
8.7.3 实战:查看TCP释放连接的数据包 301
8.7.4 实战:SYN攻击 302
习题8 303
第9章 应用层 308
9.1 域名系统DNS 309
9.1.1 什么是域名 309
9.1.2 域名的结构 310
9.1.3 Internet中的域名服务器 312
9.1.4 域名解析过程 314
9.1.5 实战1:搭建企业内网的DNS服务 316
9.1.6 实战2:测试域名解析 318
9.1.7 实战3:抓包分析域名解析
的过程 322
9.2 动态主机配置协议DHCP 323
9.2.1 静态地址和动态地址应用场景 324
9.2.2 DHCP地址租约 325
9.2.3 DHCP租约生成过程 325
9.2.4 DHCP地址租约更新 326
9.2.5 实战1:安装和配置DHCP服务 327
9.2.6 实战2:查看、刷新、释放租约 329
9.2.7 实战3:跨网段分配IP地址 331
9.3 Telnet协议 332
9.3.1 Telnet协议工作方式 332
9.3.2 实战:Telnet管理网络设备和Windows系统 333
9.4 超文本传输协议HTTP 334
9.4.1 网页 334
9.4.2 统一资源定位符URL 335
9.4.3 路径和相对路径 336
9.4.4 HTTP的主要内容 337
9.4.5 抓包分析HTTP 340
9.4.6 实战:使用Windows 2016创建Web站点 342
9.4.7 通过代理服务器访问网站 342
9.5 文件传输协议FTP 343
9.5.1 FTP主动模式和被动模式 344
9.5.2 实战:安装FTP服务和创建FTP站点 346
9.6 电子邮件 348
9.6.1 电子邮件发送和接收过程 348
9.6.2 电子邮件信息格式 351
9.6.3 SMTP协议 352
9.6.4 POP3协议和IMAP协议 355
9.6.5 部署企业内部邮件服务器 355
9.7 实战:在内网部署邮件服务器向Internet发送邮件 356
9.7.1 安装邮件服务器向Internet发送电子邮件 357
9.7.2 抓包分析SMTP和POP3协议的工作过程 358
9.8 总结 359
习题9 360
部分习题答案 364
参考文献 372