计算机网络个人学习经验
这篇博客只是分享一些个人的学习经验,推荐一些资料,带有强烈的个人主观感受在里面,仅供参考。
学好这门课的重要性
重要的专业基础
这门课是计算机类专业的专业必修基础课,也就是说只要是计算机类的专业都是要学习计算机网络的。对于不同的方向来说都有一定的学习需要:
- 对于软件开发,现在开发的应用绝大部分都是需要联网的,所以对于 IP 层以上的层次需要比较清晰,才能更好地落地自己的项目。曾经有位学弟在配置云服务器的时候,配了个保留地址导致 web 项目无法访问,如果能搞清楚相关的网络基础就不会犯这样的问题。
- 对于硬件开发或物联网,也需要为硬件之间进行一些网络配置,并设计一些协议进行通信,也需要具备计算机网络的基础知识。
- 对于网络安全方向而言,肯定要对网络本身非常熟悉,才能做保护网络安全的一些工作。
- 对于网络工程方向,因为需要实际地配置诸如路由器、交换机之类的网络设备,肯定是需要建立在有一个较好的理论基础之上。
各种考试很爱考
无论是就业还是升学,计算机网络通常都会是其中一个考察的科目。对于就业而言,计算机网络基本属于面试题必考,无论你是前端开发还是后端,是校招还是社招,都会对相关的知识进行提问。对于升学而言,例如计算机 408 考研科目是一门全国统考科目,考试内容包括计算机组成原理、数据结构、操作系统和计算机网络 4 门课程,其中计算机网络占 25 分。
课程学习的需要
以网络工程专业的课程为例,后续的很多课程都是建立在已经掌握计算机网络的知识的基础上。例如 web 编程技术、网络规划与设计、TCP/IP 协议分析与编程、网络管理、无线网络技术、网络工程——系统集成方法等多门课程,只要计算机网络的理论基础打好,后续学习其他相关的课程时接受这些知识会比较顺畅。反之如果计算机网络迷迷糊糊过去了,后面学这些课程都会比较困难。
预期的学习效果
我可能更多是从学好的角度来进行总结,并不是针对期末考试、考研或面试来推荐的。我眼中的学好大概表现为:
- 学完这门课之后过一段时间,例如过了一个季度后,还能较为形象地陈述一次网络通信的流程,不同层次起到的功能都能大致描述;
- 对于一些重要的协议,能记得他们的功能和一些重要组件,通过简单回顾就能想起大部分细节;
- 对于后续学习的网络相关的课程,对于计算机网络的基础知识能够快速提取响应,接受新的知识的压力比较小。
其实总体而言,就是学完这门课后不仅仅能背过考试,更是建立了对网络的感性认知。对于后续具体方向上对这门课的要求,可以针对性地进行准备和努力。只要认知比较清楚,无论后面接着学什么方向,转换都会比较顺畅和快速。
学习方法
在学习计算机网络这门课之前,我先观看了 CodeSheep 的视频计算机网络该怎么学,收到了很多启发。我觉得学习计算机网络可以参考以下方法:
- 重视这门课的绪论,深入理解一次网络通信的流程,不同的层次对应什么对象的通信,分别起到了什么作用。推荐每次学完一个层次,都再回到绪论部分回顾一下,这样学习的知识才会形成一个整体,而不是孤立而抽象的。
- 认识到每一个具体的技术都是为了解决一个具体的问题而提出的,再具体的场景中理解这种技术或协议的作用。知道作用之后,再去看为了实现这个功能需要用哪些组件,它们分别是什么作用。最后再去看报文,其实再怎么复杂的报文,它要实现的功能就是软件可以根据报文表示的信息去触发不同的功能而已。
- 重复记忆,因为知识点这么多,一次就全部掌握肯定是比较困难的。所以需要隔三差五进行回顾,复述一下之前学的内容。记忆的过程不推荐直接背这些协议的概念和流程,而是放到一个具体的场景去回忆这些协议起到的作用,不仅能够更贴合实际,也更容易记下来。
其实主旋律还是不要把计算机的理论的当做文科课来学,而是应该立足于实际应用中结合着记忆。
书籍推荐
我个人细看过《自顶向下》、谢希仁版计网和《CCNA学习指南》,略读过《TCP/IP 详解》,身边有位一起打过比赛的学弟读过《网络是怎样连接的》,接下来会围绕这几本书来推荐。我的阅读顺序如下:
《自顶向下》——>谢希仁版计网——>《CCNA学习指南》——>《TCP/IP 详解》
谢希仁版计网是我们上课用的教材,只看书不是很懂,所以课下都是用《自顶向下》自学。通过读《自顶向下》我理顺了一次网络通信的流程,弄懂了很多主要协议的功能和组件,再去看其他网络相关的书就都能看懂了。读完《自顶向下》后继续跟着课程进度读谢希仁版计网,就能明显感觉到这本书很多地方讲得清楚且详细,进一步清楚了很多协议的细节,补足了我在《自顶向下》中没看懂的地方。
《CCNA学习指南》的理论部分更多的是关注到和路由器、交换机相关的网络知识,比起前面几本纯概念的书更加精炼,而且后面就可以用 packet tracer 用命令搭建网络拓扑,通过实战的角度来掌握这些知识。对于未来打算走网络工程或者网络安全方向的话,能够打下不错的基础或者加深对网络的理解,如果不打算的话也可以不看这本书。所以我个人比较推荐的阅读顺序是:
《计算机网络:自顶向下方法》
看这个封面和出版社就知道这本书不是什么等闲之辈,有很多教材按照 TCP/IP 协议从物理层往上讲,但是这本书是从我们更容易接触到的应用层往下讲。同时这本书也举了很多的例子,具体形象、易于理解,也有高质量的配套实验。
我认为这本书也存在一些缺点,首先有的地方我能感受到作者很想要举例子或者比喻,但是有的地方可能啰嗦了或者存在翻译问题,不一定比直接啃概念好懂。有的地方逻辑略有不清晰,因为是从上层往下层讲,有的地方涉及到下层的就只能等到后面的章节才能懂。
《计算机网络》(谢希仁)
这本书我觉得是高校教材中质量很高的一本了,内容丰富、讲解详细,也是考研时大部分专业课的参考书。谢希仁教授为计算机网络研究、落地和教育做出过很多贡献,编著和翻译了很多书籍。
相比上一本书,这本书是从物理层往上讲,一些章节在逻辑上会比《自顶向下》更严谨一些。对概念的讲解比较明确,同时因为用中文写的所以也没有翻译问题,比较能抓住重点。同时课后题的可操作性会高一些,题目比较符合我们的习惯。个人认为缺点是没有《自顶向下》形象,而且很喜欢去分析报文格式,具有国内教材的普遍特点和通病。
《TCP/IP 详解 卷1:协议》
来自上个世纪的网络专家写的权威性书籍,是 TCP/IP 中的“圣经”,因为内容比较硬核和部分翻译问题,相对也比较难读。旧版是经典,但是新版评价一般,说是显得更冗余且仍然有明显的问题。如果打算选择用这本书来学习,建议先去了解、试读一下两个版本再选择。
《网络是怎样连接的》
豆瓣热评称之为“计算机网络:端到端方法”,通俗而硬核,讲述了访问一次网络发生了什么事。如果上面几本书都接受不了,可以先通过这本书建立一个感性认知,然后再去看前几本书可能进看懂了。
《CCNA学习指南(640802)(第7版)》
CCNA 是思科认证网络工程师,CCNA 认证标志着具备安装、配置、运行中型路由和交换网络,并进行故障排除的能力。如果未来想做网络安全,可以通过 HCIA 或者 CCNA 的内容加深对网络本身的理解,如果未来想做网络工程,则往 HCIE/CCIE 体系学习和考取认证是必须的。
我一开始是看了陈鑫杰老师的视频网络安全入门难?可能你没遇到TA!知道了 CCNA,也推荐看一下这个视频。这本书在前面会将配置路由器和交换机需要具备的计算机网络的知识介绍一遍,包括基本的物理设备、协议和 IP 地址等,立足于实际配置的需要,显得更加凝练。后面就开始介绍思科设备的配置方法,这样就可以通过实验来具体地搭建一个网络,从实践的角度来把这些网络基础打好。
课程推荐
下面的课程中我看过哈工大的课程和韩立刚老师的课程,分别是在读《自顶向下》和谢希仁版计网的时候看的。现任明教教主的课程有看过几节,湖南科技大学的课程我没看过但是口碑还不错。因为完整看完一个课程需要花费一定时间,所以我不是很推荐把这些课程全部看下来,资料不在于多在于精,任何一门课都能覆盖要学的知识。可以根据你看的书听内容贴合的课程,也可以听用其他的书讲的课程来互补。
哈尔滨工业大学——计算机网络
在中国大学 MOOC上可以找到这门课,内容是按照《自顶向下》来讲解的。如果打算啃这本书,可以配合着书本一起看,独立观看的话感觉会差点意思。
韩立刚——计算机网络 谢希仁 第7版
韩立刚老师已经在 B站上传了谢希仁版计算机网络的课程,韩立刚老师本身已经从事 IT 培训多年,同时还担任高校讲师,并编写过多本计算机技术书,具有丰富的实战经验。
韩老师是用谢希仁教授的《计算机网络》来讲的,没有照本宣科,按照自己的理解来讲解。内容与实际场景更为贴切,通俗而具体,能理解这些知识如何在实际情况中应用。与之对应的就是概念性的东西就比较没那么多了,可以自己结合书本内容来掌握。
现任明教教主——TCP/IP 视频讲解
现任明教教主真名秦柯,也是从事网络实战和培训多年,经验非常丰富。他的课程是按照《TCP/IP 详解》这本书来讲的,如果选择这本书可以同步听,B站上可以搜得到。
湖科大教书匠——计算机网络微课堂
湖南科技大学制作的计算机网络微课,可以在 B站上观看。课程内容短小精悍、讲解形象清晰,PPT 制作非常用心,例题和图例都很典型,评价很不错。
我的博客笔记
我自己在学习的时候也有根据这些资料的内容总结了一些博客,连接是——TCP/IP 协议栈博客清单。