所有最新极客时间课程请加QQ群170701297

开篇词讲想成为技术牛人?先搞定网络协议!

你好,我是刘超,网易研究院云计算技术部的首席架构师。我主要负责两部分工作,对内支撑网易核心业务上云,对外帮助客户搞定容器化与微服务化架构。

当极客时间约我做“趣谈网络协议”专栏的时候,我非常开心,因为网络协议也是我长期研究和关注的点。摸爬滚打15年,有了一些收获也溅了一身血,我才能在这里和你分享。

为什么网络协议这么重要呢?为什么“计算机组成与系统结构”“数据结构与算法”“操作系统”“计算机网络”“编译原理”,会成为大学计算机的核心课程呢?至少看起来,这些内容没有“多少天搞定MFC、Structs”这样的内容更容易帮你找到工作。我毕业的时候,也感到很困惑。

不过当时我抱着一个理想,也可能是大多数程序员的理想:我要做技术牛人,我要搞定大系统。

工作15年,我在EMC做过类似GFS的分布式存储开发,做过基于Lucene的搜索引擎,做过Hadoop的运维;在HP和华为做过OpenStack的开发、实施和解决方案;还创业倒腾过Mesos容器平台,后来在网易做Kubernetes。

随着见过的世面越来越多,我渐渐发现,无论是对于大规模系统的架构,还是对于程序员的个人职业生涯,网络和网络协议都是绕不过去的坎儿。

集群规模一大,我们首先想到的就是网络互通的问题;应用吞吐量压不上去,我们首先想到的也是网络互通的问题。不客气地讲,很多情况下,只要搞定了网络,一个大型系统也就搞定了一半。所以,要成为技术牛人,搞定大系统,一定要过网络这一关,而网络协议在网络中占有举足轻重的地位。

相信大部分人都思考过“技术变化太快,容易过时”的问题。毕竟,技术浪潮一浪接一浪,新技术层出不穷。从搜索引擎、大数据、云计算,到人工智能、区块链,简直就是“你方唱罢我登场”。这里面究竟有没有最本质的东西,使得你掌握了它,就能在新技术的滚滚浪潮中,保持快速学习的能力?

通过对大量开源技术的代码进行分析,我发现很多技术看起来轰轰烈烈,扒下外衣,本质的东西其实就是基础知识和核心概念。想要不被滚滚而来的新技术淘汰,就要掌握这些可以长久使用的知识,而网络协议就是值得你学习,而且是到40岁之后依然有价值的知识。

但是,要想真正学习和掌握网络协议,也并非易事。下面这些场景,你是不是也感同身受呢?

  • 网络协议知识点太多,学完记不住。我们都学过计算机网络课程,学的时候感觉并不难。尤其这门课没有公式,更像是文科。学了一大堆,也背了一大堆,应付完考试之后,最终都“还给老师”了。

  • 看上去懂了,但是经不住问。没关系,网上有很多的文章嘛。于是,你会搜索很多文章去看。看的时候,你感觉别人说的很有道理,好像理解了,但是经不住问,一问就发现,你只是了解了大概的流程,很多细节还是不知道。所以说,从能看懂到能给别人讲明白,中间还有很长一段距离。

  • 知识学会了,实际应用依旧不会。细节都摸索得差不多了,但是当你自己去应用和调试的时候,发现还是没有思路。比如,当创建出来的虚拟机不能上网的时候,该怎么办呢?学过的东西,怎么还是不会用?

我把这样的网络协议学习过程总结为:一看觉得懂,一问就打鼓,一用就糊涂。

那网络协议究竟该怎么学?基于这个问题,我决定从以下三个角度和你分享我所理解的网络协议。

第一,我会从身边经常见到的事情出发,用故事来讲解各种网络协议,然后慢慢扩展到不熟悉的领域。

例如,每个人都会查看IP地址,那我们就从这个命令开始,展开一些概念;很多人都在大学宿舍组过简单的网络来打游戏,我就从宿舍里最简单的网络概念开始讲;然后说到办公室,说到日常上网、购物、视频下载等过程涉及的协议;最后说到最陌生的数据中心。

第二,我会用贴近场景的方式来讲解网络协议,将各个层次的关系串起来,而非孤立地讲解某个概念。

常见的计算机网络课程往往会按照网络分层,一层一层地讲,却很少讲层与层之间的关系。例如,我们学习路由协议的时候,在真实场景中,这么多的算法和二层是什么关系呢?和四层又是什么关系呢?例如,在真实的网络通信中,我们访问一个网站,做一个支付,在TCP进行三次握手的时候,IP层在干嘛?MAC层又在干嘛?这些你是不是都清楚?

第三,我会在讲解完各个层次的网络协议之后,着重剖析如何在当下热门领域使用这些协议,比如云计算、容器和微服务。

一方面你可以知道网络协议真实应用的地方,另一方面你也可以通过上手使用云计算、容器、微服务来进一步加深对于协议的理解。

千里之行,始于足下。不管何时,我相信,扎实的功底和过硬的技术,都会是你职业发展的助力器。

希望这个专栏,不仅可以帮你理清繁杂的网络协议概念,帮你构建一个精准的网络协议知识框架,帮你在热门领域应用这些底层知识,更重要的是给你一种学习知识的方法和态度:看似最枯燥、最基础的东西往往具有最长久的生命力

精选留言

  • 会飞的
    急需学习网络协议,多久更新一篇啊?
    2018-05-17 17:07
    作者回复

    以后每周三次

    2018-05-17 18:54

  • lalala
    一顿饭钱 不亏
    2018-05-15 08:39
  • JasonYe
    这是我第一次付费,期待刘超老师的精彩教学
    2018-05-15 11:34
  • 108度
    40岁后仍有用的知识,冲着这句话来的😃
    2018-05-15 19:30
  • 不记年
    期待!这种教程肯定第一时间订阅😁😁😁
    2018-05-14 18:59
  • 约书亚
    似乎是原声哎,赞。极客时间的配音,念英文的时候实在是...
    带过不少刚入门的人,问我先研究哪个基础时我都会建议网络。在我眼里网络技术最好玩,很绕很复杂但原理并不难懂,可是出了问题却很难找,也不像其他类型的问题可以绕过去,所以平日里就要做大量积累
    2018-05-14 22:50
    作者回复

    是的,网络最基础,但是比较难搞

    2018-05-14 23:18

  • 赞,第一时间订阅了,网络通信一直是自己的短板,希望通过这个课程可以补上这块短板
    2018-05-14 21:56
  • 乔良qiaoliang
    程序员长青秘诀:网络协议,操作系统,数据库,数据结构与算法,敏捷开发,体力好,颈椎腰椎手腕视力。。
    2018-05-24 19:21
    作者回复

    颈椎非常重要

    2018-05-25 08:38

  • hacksport
    老师,您敢不敢更新的快点,听不够啊
    2018-05-15 18:32
  • 直击痛点,协议看了n遍就是记不住。期待更新
    2018-05-14 22:48
  • godtrue
    看似最枯燥,最基本的东西往往具有更长久的生命力。非常认同这个观点,以前没有嚼碎的硬骨头,现在往往会成为卡在喉咙里的梗。昨天听一位即将离职的同事讲,公司现在实行末位淘汰制,我们小组的末位听他讲会在我和另一位同事之间选一个。听到这个消息,首先,感觉有些心凉,我工作认真负责,对于业务知识也是不遗余力的学习和总结,我怎么就成了末位待选了?当然,回头想想,大家都不是傻子,小组leader更不傻,我的短板可能有三吧!一是技术一般,二是做事有时效率不高,三是思维跟不上,有些事情考虑不周。同事提醒我不要一天天整那点业务逻辑了,补补技术才是关键,万一那天把我给辞退了,不要一点准备都没有。恩,所以,昨天我一直在想,是啊!作为技术人,也许每天都需要问问自己,如果公司明天把你辞退了怎么办?你做的工作还有很多价值吗?比你的工资高吗?自己真的很容易随随便便就被一些新人取代吗?正如作者所言,新技术的浪潮一浪接一浪,掌握不易变的东西,深入的掌握这些东西,也许才是技术人员潮头戏浪,不易翻到的法宝。上大学时也学习过计算机网络技术相关的东西,现在细节都基本淡忘了,希望能跟大牛一起再好好的重温一下,订阅过雨迪的拆解JVM恰好看到这个专栏,我想这也正是我想要的。
    2018-08-05 11:47
  • Yolo七夜
    这一次,一定要把网络协议踩在脚下
    2018-06-20 22:34
  • lau
    很高兴看到这种学霸辅导学渣的课程,也希望自己经过这门课后,能成功克服网络难题。
    2018-05-15 19:21
  • ALEX
    搞嵌入式,硬件软件全通,就是网络这部分一看就头大,这门课来的及时
    2018-05-15 08:31
  • 张峰华
    放码过来吧
    2018-05-17 20:47
  • 小太阳
    哈哈哈,非常期待,每次看网络相关的博客就非常困,看着看着就走神,希望这次可以把这个学好🤪
    2018-05-15 19:35
  • zhubingchu
    知识就是金钱,这钱花得值
    2018-05-15 18:44
  • Majorin_Che
    很好的一门课程,第一次付费学习,主要还是网络协议太重要了
    2018-05-15 14:17
  • 笨笨熊
    期待课程更新,对网络很感兴趣。
    2018-05-14 22:10
  • wgl
    及时雨
    2018-05-14 21:59