欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何自学并且系统学习计算机网络? 有大用

22 个回答

今天有一位同学来看望我,一位大三的学生,聊了计算机网络,让我惊讶的是,H同学的计算机网络水平很高,即使工作十年的网络工程师能达到他的水平,也是非常稀少的。

闲聊他说过一句话:最喜欢看交换机闪烁的灯,闪一下就意味着有一个包从此端口经过…

记得N年前,我看到灯闪烁一下,想到的是心跳,在心跳示波器上就是一串脉冲信号,这是计算机网络传输的一个单元,姑且称为IP包。

计算机网络的数据传输,是由N个离散的数据单元(IP包)组成的,再去回忆关于TCP连接的概念,TCP的面向连接,而数据单元IP包却是离散的,而TCP也是由IP包来承载的,那意味着TCP报文也是离散的,既然是离散的,又谈何连接呢?

TCP连接是一种逻辑概念,通信双方通过离散的IP包交互,分享了彼此的序列号、缓存大小等参数,彼此就可以认为和对方是连接的。

而在这个逻辑连接上传输数据,自然需要对方确认,否则如何知道离散的IP包是否到达对方?

而如果迟迟收不到对方的确认,也不能傻傻地等不是吗?需要将数据再重传,可以重传多次,一直到收到对方的确认,这样即使网络有短暂的故障,可以通过多次重传予以克服。而如果重传了多次还是没有收到对方的确认,那只有放弃了,告诉用户发生的一切。

这是我看完TCP/IP协议的一点总结,这块是计算机网络的核心,比路由协议更重要,所以要花很多时间研究这些最核心的技术。

而在研究这些基础内容时,需要用抓包工具将网络上离散的数据单元捕获下来,研究数据单元的时序、数据单元的格式、研究数据单元是由谁触发产生的,是TCP/IP系统进程、还是用户进程,对这些细节的越深入,脑海里就会勾勒出一个分层的场景:用户进程(高层)、TCP/IP系统进程(中层)、硬件网卡(底层),有了分层的概念,就会自然地去想象,数据单元从高层--> 中层-->底层 下沉的过程,以及数据单元从底层 ---> 中层 --->高层上浮的过程,下沉、上浮的过程牵扯到很多细节,这需要看TCP/IP协议。

说了一堆,核心思想是,想学好计算机网络,首先要有H同学那样的热情,研究TCP/IP协议,做实验,抓包解析,然后再去看书,再实验,抓包分析…这个过程是一个周期性的迭代过程,需要时间的积累。

1. 入门
第一本书 建议看谢希仁的《计算机网络基础》
2.进阶
然后第二本要看 《TCP/IP详解1:协议》
这个阶段需要多思考和动手
网络在LINUX系统上发挥的最淋漓尽致,所以在学习的时候最好学习LINUX配合使用
学习LINUX,推荐《鸟哥的LINUX私房菜:基础篇》
学习网络过程中,要不断抓包分析等,自己能写些简单的应用来发包更是完美
抓包工具推荐:LINUX环境下用TCPDUMP,windows环境下用 wireshark
这个阶段写习完后,已经是个小高手了。。
主要技能应该是:
对TCP,IP,DNS,icmp等协议应该都蛮熟了得了,dhcp/tftp/ftp等协议也应该都懂些,重点是要学会如何分析一个协议
LINUX系统的基本操作也差不多了
3.高手阶段
这个阶段需要有一点的编程能力,指C/C++编程
主要学习的方向是
协议的实现和协议的架构原理
协议的实现方面, 主要学习底层协议(指传输层及以下)的实现, 这些协议都是在操作系统层面实现的,最好的教材是《TCP/IP详解:实现》
至于网络架构这块,可以学习《计算机网络》这本书

大概就说这么多了~~
计算机网络的核心在于
协议----LINUX操作系统----C/C++
这三块结合起来,并不断的实践和思考~~才能成为真正高手

作为一个自学计算机网络的过来人,感觉这个课是真的挺难学的,不过也算是熬过来了,有一些学习经验和心得,分享给大家。

如果你是科班出身的同学,相信你对计算机网络的学习不用我操心,如果是非科班的同学,按照这个思路去学习,我觉得是还是可以的。

下图是一张思维导图,概括了本回答的主要内容。


简介

计算机网络这门课实在重要,几乎是面试必问的内容,什么TCP/IP三次握手,四次挥手,TCP和UDP区别,HTTP协议的一堆面试题,在程序员面试时都是很常见的考题,你们应该也深有体会。

计算机网络中的复杂概念远不止这些,那么按照老规矩,我们先来看一下计算机网络到底是个啥。

根据百度百科的介绍,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

相比于数据结构的介绍,百科上对于计算机网络的介绍更加好懂一些,简单来说,计算机网络就是把计算机通过通信线路连接起来,实现网络互联和信息传递。

为什么要学计算机网络

在这个时代,离开了网络,简直没有办法生存,而我们所学的编程知识,脱了网络去谈也将毫无意义,毕竟没有哪个编程语言是只支持单机运行的。

作为一个编程学习者,当你在学习一门语言时,比如Java,你可能会学到一些基本语法,面向对象的基础、集合类的使用,甚至是多线程、IO流以及异常处理,这种时候你往往意识不到计算机网络的重要性,反正我写代码也不涉及网络传输,平时的工作也只是CRUD,学习计算机网络也没有什么用武之地。

曾几何时我也是这么想的,但是到后来,我开始接触Tomcat,接触Nginx,以及Java中的网络编程技术,比如BIO和NIO,甚至是网络编程框架netty,在没有计算机网络基础的情况下来看这些东西,绝对会让你怀疑人生。

最早我开始意识到自己计算机网络基础薄弱时,还是我在学习docker容器方面的知识时,接触到了docker的网络原理,比如docker的网络模式有桥接和host两种,然而我当时基本上看不懂这是什么东西。

类似地,我在学习OpenStack的时候,也完全看不懂里面的网络组件是做什么用的。

就算你不学习网络编程、虚拟化和容器调度,你也得学学平时家里的ip地址、DNS和子网掩码怎么配置吧,没认真学习计算机网络之前,我对这些东西甚至都是一脸懵逼的。

不懂计算机网络的我,想要学编程,真的太难了!

如何学习计算机网络

第一次接触

本科的时候,我们本有一门选修课就是计算机网络,但是当时我没有选它(现在觉得选了可能也听不大懂,但是多少有点印象)

读研的时候,开始狂补计算机基础,当时为自己选了第一本书《计算机网络(谢希仁)》作为入门教材,现在想想当时真是年幼无知,自己完全可以去某乎看一下推荐书单的。

这本书作为一本大学通用教材,年代之久远,内容之枯燥,都是在这么多计算机网络书籍里排的上号的,我已经快忘记当时是怎么把这本书啃完的了。

虽然这本书还没有到大部头的级别,但是里面的内容真的对新手不怎么友好,通篇的都是概念的堆叠和并不容易理解的概念介绍。

教科书,大家都懂的,大部分都已经脱离时代,虽然计算机网络这几年的变化不大,但是它里面的一些教学方法确实是和时代脱节了。

我只记得这本书,当初看完一周就忘光了,后面不管是笔试面试,还是重新复习的时候,基本上也想不起来当初都学了啥,真是一本神奇的好书。

入门学习阶段

吃过了教材的亏之后,我终于学会了上某乎找书单了,当时除了购买了一堆Java书籍之外,还特地买了一本《TCP/IP卷一》以及《图解HTTP》准备开始第二轮对于计算机网络的死磕。

当时也投了一些简历,准备了一些面试,刷过一些面试题,其中面到计算机网络的概率很大,于是我每天都会花一些时间来看着两本书。

不知道是不是我理解能力有问题,当我看《TCP/IP详解卷一》这本备受推崇的计算机网络书籍时,我竟然有一种再看当初那本教材的感觉,这本大部头,貌似也是在讲一堆复杂的概念,并且用一些不好懂的讲解去解释这些概念。

当时我的自信心就有点受挫了,难道计算机网络真就这么难么,为什么这本书我仍然看不懂?

现在看来,计算机网络确实是一门纯理论的课程,除了一些网络抓包和用开发者工具查看网络请求之外,基本上没有什么需要实践的内容,现在很多书从网络抓包入手讲解计算机网络,其实也是一种不错的新型学习方法。

一本书适不适合一个人,真的是因人而异,特别是这种专业技术书籍,不同水平的人看效果差距也会很多,所以网上的一些书单,你可以参考,但不要盲目推崇,等你自己看懂了再说它好也不迟。

于是我第二次进军计算机网络也失败了,看完了《TCP/IP卷一》之后,我用了一个月的时间又忘掉了它。

强化学习阶段

俗话说,事不过三,两次选书都让我铩羽而归,我的内心是崩溃的,虽然面试的时候还可以靠着背一些常见的计算机网络面试题蒙混过关,但是真遇到较复杂的问题时,我也只能是望洋兴叹,根本说不出个所以然。

学好计算机网络的关键是理解它,我在网上又搜索了一大堆的内容,看到一本名为《计算机网络:自顶向下》的书籍,也受到一些推崇,原因是这本书从应用层讲起,一直往下讲到物理层,似乎更符合人脑的学习和思考方式。

我买书一向勤快,当时我在百度实习,于是这本书成了我日常实习时必看的书目。

因为组里的项目在做容器和私有云,在不懂网计算机网络的情况下去看这俩,简直是找死,更何况里面还涉及了存储、调度、微服务等技术。

这本书确实给了我全新的观感,此书在开头就说,将以全新的方式介绍计算机网络,先讲应用层,再依次介绍传输层、网络层、链路层和物理层。

自顶向下和自顶向下的区别在哪呢? 根据自顶向下的思路,我们最先接触的是应用层,也就是常见的HTTP、DNS、FTP、POP等协议,这层协议我们平时都在用,书中讲的也比较接地气,于是我对应用层的介绍也接受的很快。

按照这个思路,书中继续讲传输层,也就是我们常见的TCP和UDP,应用层使用域名或者是IP+port的方式定位机器,而传输层(这里指TCP)把应用层的数据切片,有序传输,并且保证可靠。

也就是说,TCP报文把应用层报文包裹了起来。接下来,就到了网络层了,网络层通过IP进行路由,目的就是找到对应的终端机器,所以网络层的数据报要包裹传输层的数据报。

接着往下,网络层虽然解决了路由问题,但是局域网内的网络交换是通过mac地址进行寻址的,于是数据链路层发挥作用,因为它就是通过mac地址来定位目标机器的,于是数据链路层的数据报要包裹网络层的数据报。

再到最后物理层,数据传输的本质还是0和1的电信号,自然要通过物理介质进行传输,当然,物理介质除了常见的网线、光纤,还有电磁波(应用于无线局域网)

上面对整个计算机网络的脉络做了一下梳理,所以,整体看来,按照自顶向下的思路去学习计算机网络,对于新手来说更加友好一些。

还差得远呢

看完了《计算机网络:自顶向下》虽然已经大概了解了整个网络的结构和脉络,但是对于很多实现的细节还是一知半解,比如HTTP和TCP报文的结构,还有一些比较不易理解的概念,比如路由算法、IP广播和多播、NAT技术、VPN技术等等,不理解这些,总觉得还是欠缺了不少东西。

到后来,开始尝试面试一些大厂,更加发现了自己的差距还很大,比如百度、头条、腾讯这类公司,特别是腾讯,对于计算机网络的考察是特别严格的。

比如三次握手,四次挥手这种常见问题,一般还会延伸考察,比如为什么要三次握手、四次挥手,没有第三次握手或者没有第四次挥手会怎么样。

再比如TCP协议的作用是什么,它是如何保证传输可靠的,这时候你就要了解TCP保证可靠传输的机制,比如滑动窗口,超时重传,分组确认等原理,也是你需要能讲清楚的。

再比如,还有一种常见的考察方式,就是让你讲清楚从域名访问到获得返回结果的过程中都经历了什么,这么开放的问题,要尽可能说出足够多的东西,先是DNS解析,再到TCP三次握手,然后介绍IP数据报的网络路由,以及局域网内数据链路层的作用,甚至可以把物理层也带进去讲一下。

总之,你掌握的越多越详细,对于这些问题才更有机会答好,我每次都会把整个过程讲的比较详细,这样面试时才不会给自己留坑。

对了,在学习计算机网络的路上,还有一个很重要的学习资源帮助到了我,那就是刘欣老师的《码农翻身》一书,当时我也是在网上偶尔看到。

一开始刘欣老师只是写公众号文章,后来把文章集结成书,对于计算机网络的部分,这本书用故事化的方法介绍了很多计算机网络的知识,同时解释了一些较为复杂的计算机网络概念,比如NAT、网络隧道、VPN等等。

虽然这本书关于计算机网络的内容不是很多,但确实有助于加深对于计算机网络一些概念的理解。


推荐资源

书籍

《计算机网络:自顶向下》 《图解TCP/TP》 《图解HTTP》

总结

关于计算机网络的学习,我们就讲到这里了,如果还有什么疑问也可以到我公众号里找我探讨,作为一个Java工程师,必须要懂得Java网络编程,有了计算机网络的基础之后,相信对后续学习网络编程会有帮助,之后也会有关于Java网络编程的文章推出,敬请期待。

对了,你想问我文章里提到的书籍去哪找?我已经给你准备好了

若觉有用,请点赞支持下丫,给我提供更多干货的动力~

我的其它回答可能对你有很大帮助:

本科生如何才能进入腾讯,阿里等一流的互联网公司?(9K 赞同,26K 收藏)

一毕业就能进阿里的人有多厉害?(7K 赞同,17K 收藏)

搞 Java 的年薪 40W 是什么水平?(8K赞同,30K收藏)

Java学到什么程度才能叫精通?(3K 赞同,10K 收藏)

你考研到底是为了什么?(3K 赞同,5K 收藏)


《计算机网络:自顶向下方法》从头到尾看两遍,完成课后所有习题,就算系统学习过一次了。建议读英文原版,书名为《Computer Networking A Top-Down Approach》,这本书打好理论基础,然后再读读《Unix网络编程》辅以实践,有奇效。

最近在学。说4条心得。

1.先写一个网络编程小应用。了解网络的最基本知识后(有多基础呢,就是知道网络分那几层,每层大致是干什么的就可以了。),入门一门语言和框架,仿照网上的例子,实现简单的两机之间的通信。我是入门的c#语言和.net框架。这是我写的第一个网络通信的程序,很简单,但是很有成就感。

终于掌握了最基本的socket通信在.net框架下用c#语言 - CGGUANG的博客 - 博客频道 - CSDN.NET

本机两个进程之间的通信,我知道操作系统可以实现,但不知道具体怎么弄,没有弄。会了两机之间进程通信之后,就可以把思路移到一个机器,只不过服务器和客户端IP地址相同而已。

实现了本机两个进程之间的通信 c#.net socket

一开始就做出实际能用的东西,一是培养成就感,二是感受计算机网络的实用性,三是勾引出求知欲。我在做网络应用小程序时候就隐隐地想搞清楚那些接口为什么要那么配置。但是不要去费时间搞图形界面,黑框框就够了。

2.搭建知识体系框架。推荐一本书<computer networking: a top down approach>。我只推荐一本书,因为开始学的时候,最忌陷入找资料选择资料的迷局中。在搭建知识体系框架阶段,只看重点内容。计算机网络有一系列重点内容,先把它们初步地搞懂,串起来,就建立了计算机网络的知识体系了,知道这门知识是讲什么的。比如,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),知道它是:启用DHCP的局域网有一个IP池,每来一个新主机,如果IP池还有一个IP,就给它分配一个IP,它走了,就把IP还给IP池。具体的机制能弄明白最好,弄不明白就算了。继续初步了解其他重点内容。

3.充实知识体系。再看这本书<computer networking: a top down approach>,上一条是看重点内容,初步了解。那么在充实知识体系阶段,就要细看了,细细体会协议背后的思想。也可以找其他书交叉阅读,推荐一本<computer networks:a system approach>。还有国内的 谢希仁老师写的 《计算机网络》。

4.做实际的网络应用的项目。自己想着做一些,找一些例子,工作中的,多思考背后的原理。遇到问题了,既然学了计算机网络,知其然了,自己从原理多想想如何解决。再去看别人的解决方案。这个时候,就会发现计算机网络没白学。在实用中,不断深化自己的知识。生活中实际的网络应用配置也多想想。

2015.10.16更新:
因为百度云经常失效(心好累),我自己更新这套网络工程/安全学习资源不下百次!!! 很多朋友给我留言,之前都是私信补链接,在这里统一给大家链接(更新了开放的10套网络工程/网络安全入门精品视频):
链接:百度云 请输入提取密码 密码:j5bq
链接:pan.baidu.com/s/1o6EeUj 密码:viu0

如果内容失效或者不全,大家也可以到微信号「PingingLab研究院」回复tools和books下载资源,这里会经常给大家一些免费的网络相关的资源,偶尔我们内部的小伙伴会在这里补链。

==========================================================================

好吧,作为IT培训教育专业户,CCIE专职讲师和广东工业大学客串老师一枚怒答!下面是我上次写的240页的计算机网络入门导论课程,是给广工的师弟和师妹使用的讲义,那出来分享给知乎上各位。原文发布在个人微信公众平台【pinginglab】和51CTO技术博客上,需要详细内容的话,自己去扒下来吧。内附初级到高阶的所有书籍以及个人的一些教学视频。(知乎的没法批量上图片!!!非常不方便!!!微信后台都能32张图片批量上!!!吐槽完毕!!!200多页图片没法一一上传,大家需要可以点开下面链接自己看具体和详细的内容)
微信链接:慎入!超强240页PPT!史上最强大的计算机网络导论-by拼客科技CEO·陈鑫杰
51CTO博客:慎入!超详细240页PPT!史上最强大的计算机网络导论!
微博链接:Sina Visitor System

【最底部有资料下载链接!多图,建议在WIFI下观看!】

1、课前-一个缘由

离高校开学前还不到一星期的时候,王sir(广东工业大学计算机网络的王教授)过来公司这边沟通书籍编制的问题,中午吃饭的时候,他来了一句:“鑫杰,有件事拜托你,9月10号我女儿上武汉大学,一个女生自己去不放心,我到时9号要带她过去,顺便在那边待一周,要不,你帮我带一周课程吧。”给一两百号人上课的场景我经历的太多了,但是给自己学弟学妹上课,却让我突然有点犹豫。一方面,因为我对授课环节这块太熟悉了,所有学生都有“学习惯性”,所以我怕我这个外来的“客串教授”的授课风格会影响到后续王sir原有的授课风格,就会出现“这个老师讲的好,这个老师讲的不好XXX”的情况,有时候这种思维和情绪甚至会贯穿学生的整个学习周期;另一方面,时间上不好安排,一周的课程加起来就几个钟,根本没法讲到技术的玩意,即便将这个课程整个学期给我讲,也最多学个入门级别,另外,学校没有环境来演示实验。例如课程PPT里面的无线破解和流量控制,如果有个环境来演示,那现场的效果肯定要好的多。(但是后面还有更让我吃惊的,学校用的系统居然还是是windows xp,还有非常难用的键盘,这真还得跪了。)还有最重要的一点,因为这块课程跟自己公司其中的IT培训业务刚好是重叠的,所以有点忌讳!我不希望学生觉得好像为了做推广而给他们上课,这是我最不希望看到的结果,所以为了避开这点,在课堂讲义上面连自己的名字都挪开了。我可以有很多理由来推掉这个事情,例如最近官网在开发、公司要装修、市场要推广……但是因为“广工”“网络”这两个对我意义重大的词,最终我还是接下了这个事情。回来之后,我给自己定了一些要求,例如,过去学校那边就是发福利的,例如各种书籍啊各种工具啊各种入门视频啊等等。例如,一定不能出现公司任何营销和推广的内容!所以,周三周五只有在课堂快结束进入问答阶段的时候,学生提出要我的联系方式,我才将个人的基本信息放上去。即便是课下沟通,有学员跟我说有点想往网络安全这个方向走,我也回答这个自己要慎重考虑,方向实际上很多,再看看是否适合自己。好吧,按照这些基本的原则和要求,然后中秋节花了几天时间,准备了大概240页的PPT内容。当然,我的另外一个要求是尽量不要出现太密集的文字,最好是图片然后结合自己的阐述来带动大家,不然底下学生会直接晕倒。


2、课中-一些感慨

9月10号开始上课,周三和周五是在教学5号楼203给大三上计算机网络(A级),上3和4节的课,大概10点半左右。周末是在教五105给大四上计算机网络(B级),是5到8节的课。10号这天我早早过来这边,虽然自己的公司离母校很近,但是因为各种杂事,并不经常过来。还是这个霸气侧漏的图书馆,以及监狱式设计的教学楼,尽管我大二休学之后便不再这里,但这里还是带给我太多美好的回忆。有些感慨,有些事情我们永远没法预料到。例如,几年前,我可以大概预想到通过自己的规划和自身不断的能力,在IT技能上能够大概到什么样的Level,因为技能学习是线性可控的,只要按照一定的流程和方法来走,肯定是可以达到的;但是我万万没法想到,几年后我休学、工作、创业之后,我回到母校的时候,这个时候已经不再是坐在下面听老师讲课的“复读生”,而是站到上面给学生讲课的“客串教授”。回到正题,大概离上课还有10来分钟的时候,我开始准备开投影,本来以为可以用自己的电脑,后面发现要自己带投影线!这样的话,我就悲剧的从win8年代回到windows xp年代,还好备了几手,带了U盘,将用office 2013版本做的课程讲义转成了office 2003和2007,甚至还有PDF和图片版本!总有一个版本学校的老式电脑能打开的吧。可以预想的到,这个时候底下有点躁动,“真的是这个老师吗?”“这么年轻?!”“应该是研究生吧”“是不是走错教室了?!”尽管我胡须不刮,手带腕表,脚穿皮鞋,也遮挡不住我逆生长的样貌。按照原有计划,我就是王Sir偏偏样貌还是让自己穿帮了。所以做了简单介绍,说明代课的情况,然后就进入正式进入课程。课程内容在后面会公布,这里就不细讲,比较让我出乎意料的是,广工的师弟师妹还是给足的面子。按照王Sir给我的场景描述,第一堂课因为学生还不认识你,课堂问问题不怎么回答,课堂搞搞小动作也很正常。还好,这些都没发生,而且课堂上还挺活跃。例如课堂上我问一些问题,学生能够及时反馈;课堂上好的一些建议学生会做记录,然后看到好的PPT,他们用手机和PAD拍下来(突然发现学校好多小土豪...),课间休息阶段,有学生过来沟通更具体的知识点;整节课完了之后,有学生过来沟通专业选择,技术问题等等。这些场景要是在企业培训课堂里面,这是平常的不能再平常的事情,但是在目前的本科高校里面,我觉得已经算达到我预期的要求了。因为想起自己以前在学校,要么逃课,要么上课折腾自己的玩意,整个学期连老师是谁都不知道……


3、课后-一些思考

课后有很多师弟师妹主动加我QQ和微信,大部分跟我沟通的问题无非是:不知道自己要走什么方向?读了2 3年大学感觉很迷茫怎么办?往XXX方向觉得发展前景如何?所以我也在感慨,大学给我们提供了一个自由的平台,但却没有给每个人指明一条道路;大学给我们提供了这么多的书本,但却没有让大家真真正正掌握一门技能!这让我重新思考了自己在公司的定位和价值。我今年总跟我身边的同事和朋友讲,自己想退出“相声界”,老老实实做自己的项目,然后写一本真正意义上的书籍(尽管现在跟王Sir和人民邮电出版社即将出版一本书籍)之后将公司的业务往线上那块抓一抓,现在看来估计也得推迟一阵子了。例如,今晚还跟广工网络中心的师弟(已经在工作了)在聊,他跟我说明,广工网络中心每年招新接近100人左右,用来给校园网络打打杂,但是大部分学生实际上连网线都不会搞,设备都没有接触过,有问题还是要上报老师。又如,很多计算机相关的协会和技术兴趣小组虽然设立了,但是每年基本除了聚餐就没有太多实在的活动,没法学到具体的东西。能否将公司基础IT课程业务(例如网络、安全和Linux方向)放开,作为公益课走入高校,然后作为试点,再走到其他高校等等。我在想,好是好,但是,这意味着我自己又要抛头露面了……好吧,最后给大家一些图片,大家自己感受下,还有,不准笑……(最下面附带授课PPT)


8号和9号我去上课之前,公司内部某女汉子的截图:


13号我上完课之后,广工某漂亮小师妹的截图:



以下附上部分240页的授课PPT(有两堂课,每堂课大概120页PPT内容)

点击下面的“阅读原文”可以通过百度网盘下载此课程导论所涉及的工具、书籍、视频等内容。(总下载链接:百度云 请输入提取密码 密码:l6im)

计算机网络到底该怎么学?学习网络协议的最佳学习路径和最佳学习方法是什么?在下面这篇文章里,我为你整理了《趣谈网络协议》专栏的所有学习资料,并告诉你如何更高效地使用这些资料,从而帮助你消化吸收专栏内容,以期获得更好的学习效果。

1. 能力测试查漏补缺,检测效果对症下药

我从常用的网络协议中,精心筛选了核心知识点,编成了10道测试题。这里面的题目和答案都是我精心设计的。你一定要拿出纸笔,认真思考,记录下自己的答案,之后再对照文末答案吸收消化。

同样,如果你刚刚打开这个专栏,也可以据此寻找自己的知识薄弱点,对症下药。

点击查看:网络协议能力测试题

2. “下单过程”详细分解,知识串讲学以致用

我把一个“下单过程”分为十个阶段,从云平台中搭建一个电商开始,到BGP路由广播,再到DNS域名解析;从用户看商品图片,到最终下单的整个过程,每个步骤我都画了详细的分解图。

你可以用这个过程,串起我们所有常见的网络协议,还原真实的使用场景,学以致用。我相信,看完这个串讲内容,你对网络协议一定会有一个全面、深入的理解。

点击查看:

知识串讲(上篇)

知识串讲(中篇)

知识串讲(下篇)

3.知识精华技能图谱,积少成多每日进步

专栏中最精华的内容,我都整理在这张图上了。你可以把它保存下来,积少成多,每天进步一点点。

点击查看:网络协议知识图谱

4.常见问题答疑解惑,真知灼见产自思考

专栏每篇文章我都留下了两道思考题,更新过程中,很多同学也留下了自己的疑问。我针对每篇文章后的第一道思考题,以及留言区比较有代表性的、有深度的问题,特意写了一系列答疑文章。

如果你刚刚加入学习,可以继续在留言区留下你的思考和疑问,学习过程中遇到的问题和思考也欢迎多多分享,我也会持续在专栏里回复你的留言,和你一起讨论、交流。

点击查看:

第一期:第1讲至第2讲答疑解惑合辑

第二期:第3讲至第6讲答疑解惑合辑

第三期:第7讲至第13讲答疑解惑合辑

第四期:第14讲至第21讲答疑解惑合辑

第五期:第15讲至第36讲答疑解惑合辑

5、亲手搭建实验环境,思维升级触手可及

纸上得来终觉浅。网络是一门实验性很强的学科,我在写专栏的过程中也深深体会到了。有时候,遇到疑问,我常常会上手操作一下,抓个包看看,这样心里就会有定论。

网络方面最权威的书籍《TCP/IP详解》的作者斯蒂文森(W. Richard Stevens),也是经过无数次实验,才最终完成这本巨著。

因此,我在这本书中的实验基础上,搭建了一个实验环境,希望你能够在学习过程中,上手操作所学的知识。毕竟,只有经过你自己动手和思考产生的内容,才是真正属于你的知识。

点击查看我搭建实验环境时候的具体操作,希望给你的思维晋升指路:《搭建一个网络实验环境:授人以鱼不如授人以渔》

更多精彩内容,订阅后立即获得《趣谈网络协议》

刘超,网易研究院云计算技术部首席架构师,15年云计算领域研发及架构经验。曾在 EMC 做过类似 GFS 的分布式储存开发,做过基于 Lucene 的搜索引擎,并写了500页的《Lucene原理与代码分析》;在HP和华为做过OpenStack的开发、实施和解决方案;做过 Hadoop 运维;还创业倒腾过 Mesos 容器平台。

补充一个课程。
Introduction to Computer Networking

书只推荐我校老师的这一本
Computer Networking: A Top-Down Approach, 6/e
要做quiz和实验。

看了大家的答案大都是偏理论的,那我就说一些实践性的。毕竟计算机是工科。
1.初级阶段:多掌握Linux命令,记得大一时候就在论坛上学习,标题大概是每天一个Linux命令,自己学着在cmd下敲,大神们都是在"小黑框"里练就的。
2.中级阶段:在模拟器上建立各种拓扑,再根据需求分配子网,配置网关等。目前我在用的是HCL (ps:win10用最新版本的就ok了)
3.高级阶段:如果以后想从事相关工作,可以考取思科认证 H3C认证,真·含金量。

外门汉新人,强推华为信息与网络技术学院的指定教材《网络基础》田果、刘丹宁著。此前上计算机网络的课程,还有楼上各位推荐的参考书,无奈资质过于愚钝,实在不能得到计算机网络的要旨。无意间在图书馆得到这书,回来只看了一个开头就实在忍不住一天一夜把一整本看完了。楼上大佬不论,对我类似初学者的人,最重要的是了解计算机网络分层的过程以及其如何实现的。这本书完成了本人对计算机网络学习与理解过程,在此基础上再去看教材或者TCP/IP协议的东西可能对初学者更为友好。。。。。无脑强推《网络基础》,由于在网络这块憋了太久,看到神书不推而广之实在是说不过去。

很多同学都推荐Stanford的CS144~ 不过看到不少link都expired了,在这里更新一个2019年还能打开的Video+Textbook:

An Introduction to Computer Networks - Stanford University CS144 Fall 2012:

1. Youtube playlist: youtube.com/watch?v=84zL4b95dIk&list=PLcRQyo3dz9r5epr5OLkkxWX9yioR6neuq

2. Textbook: news.ycombinator.com/it

祝愿大家都能够在不断学习中自我提高,实现自己的小目标~

浮躁的社会看书太慢,给你:
红茶三杯 CCNA培训视频 - 播单 - 优酷视频

思科那套教程有网络学院,可以试试。

链接如下
netacad.com

看书没啥用,搞个组网模拟器(思科之类的)做做实验就都懂了

抓各种协议的包也挺好

谢邀,,同上,也是第一次被邀。弱弱地说我们还没有学到计算机网络,现在还是操作系统+计算机组成原理+数据库中。
我能说的也就只是对于大学课程的理解了,如果想系统地学习某一门知识时,绝对不能只靠老师,尤其是在大学的课堂上。老师要照顾大多数的人,所以说进度和深度就会有影响,如果真想学好某一门的话就必须自学,看得深一点。大学本来就是培养能力的过程,但话是这么说,能力从哪体现,肯定是通过你掌握的一些知识来体现。说到底,就是你掌握的知识的深度和广度的问题。

首先学Office办公软件,计算机基础,计算机组装与维护。

自学的话比较困难:

1.没有专人答疑你会钻不少牛角尖

2.你很难持之以恒

3.学习的顺序很可能搞错

如果你要自学我建议你先看一些计算机网络基础的视频,自己脑海里有一个基本框架后开始自己从最基础的练习,当然概念一开始没必要死记,就算是网络大神估计很多概念都不知道,最重要的就是理解,网络是怎么存在怎么干活的。

网络的基本了解后开始仔细研究协议,然后开始用模拟器在网络上找实验自己做,模拟器推荐华为跟思科,首选思科,因为毕竟思科才是网络鼻祖,模拟器不容易崩溃。

到这里在回头开始,从一开始巩固。后面怎么学习你也有自己的想法了

有本书不错,可以失眠时候瞅一瞅:《计算机网络基础:自顶向下》
失眠时候看绝对不错
做研究和做工程是有区别的。
方向不一样,学习的途径也不一样。
还是要从兴趣入手的啦。


来自   https://www.zhihu.com/question/22354846

普通分类: