learn-tech/专栏/趣谈网络协议/00开篇词想成为技术牛人?先搞定网络协议!.md
2024-10-16 11:00:45 +08:00

57 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

因收到Google相关通知网站将会择期关闭。相关通知内容
00 开篇词 想成为技术牛人?先搞定网络协议!
你好,我是刘超,网易研究院云计算技术部的首席架构师。我主要负责两部分工作,对内支撑网易核心业务上云,对外帮助客户搞定容器化与微服务化架构。
当极客时间约我做“趣谈网络协议”专栏的时候我非常开心因为网络协议也是我长期研究和关注的点。摸爬滚打15年有了一些收获也溅了一身血我才能在这里和你分享。
为什么网络协议这么重要呢为什么“计算机组成与系统结构”“数据结构与算法”“操作系统”“计算机网络”“编译原理”会成为大学计算机的核心课程呢至少看起来这些内容没有“多少天搞定MFC、Structs”这样的内容更容易帮你找到工作。我毕业的时候也感到很困惑。
不过当时我抱着一个理想,也可能是大多数程序员的理想:我要做技术牛人,我要搞定大系统。
工作15年我在EMC做过类似GFS的分布式存储开发做过基于Lucene的搜索引擎做过Hadoop的运维在HP和华为做过OpenStack的开发、实施和解决方案还创业倒腾过Mesos容器平台后来在网易做Kubernetes。
随着见过的世面越来越多,我渐渐发现,无论是对于大规模系统的架构,还是对于程序员的个人职业生涯,网络和网络协议都是绕不过去的坎儿。
集群规模一大,我们首先想到的就是网络互通的问题;应用吞吐量压不上去,我们首先想到的也是网络互通的问题。不客气地讲,很多情况下,只要搞定了网络,一个大型系统也就搞定了一半。所以,要成为技术牛人,搞定大系统,一定要过网络这一关,而网络协议在网络中占有举足轻重的地位。
相信大部分人都思考过“技术变化太快,容易过时”的问题。毕竟,技术浪潮一浪接一浪,新技术层出不穷。从搜索引擎、大数据、云计算,到人工智能、区块链,简直就是“你方唱罢我登场”。这里面究竟有没有最本质的东西,使得你掌握了它,就能在新技术的滚滚浪潮中,保持快速学习的能力?
通过对大量开源技术的代码进行分析我发现很多技术看起来轰轰烈烈扒下外衣本质的东西其实就是基础知识和核心概念。想要不被滚滚而来的新技术淘汰就要掌握这些可以长久使用的知识而网络协议就是值得你学习而且是到40岁之后依然有价值的知识。
但是,要想真正学习和掌握网络协议,也并非易事。下面这些场景,你是不是也感同身受呢?
网络协议知识点太多,学完记不住。我们都学过计算机网络课程,学的时候感觉并不难。尤其这门课没有公式,更像是文科。学了一大堆,也背了一大堆,应付完考试之后,最终都“还给老师”了。
看上去懂了,但是经不住问。没关系,网上有很多的文章嘛。于是,你会搜索很多文章去看。看的时候,你感觉别人说的很有道理,好像理解了,但是经不住问,一问就发现,你只是了解了大概的流程,很多细节还是不知道。所以说,从能看懂到能给别人讲明白,中间还有很长一段距离。
知识学会了,实际应用依旧不会。细节都摸索得差不多了,但是当你自己去应用和调试的时候,发现还是没有思路。比如,当创建出来的虚拟机不能上网的时候,该怎么办呢?学过的东西,怎么还是不会用?
我把这样的网络协议学习过程总结为:一看觉得懂,一问就打鼓,一用就糊涂。
那网络协议究竟该怎么学?基于这个问题,我决定从以下三个角度和你分享我所理解的网络协议。
第一,我会从身边经常见到的事情出发,用故事来讲解各种网络协议,然后慢慢扩展到不熟悉的领域。
例如每个人都会查看IP地址那我们就从这个命令开始展开一些概念很多人都在大学宿舍组过简单的网络来打游戏我就从宿舍里最简单的网络概念开始讲然后说到办公室说到日常上网、购物、视频下载等过程涉及的协议最后说到最陌生的数据中心。
第二,我会用贴近场景的方式来讲解网络协议,将各个层次的关系串起来,而非孤立地讲解某个概念。
常见的计算机网络课程往往会按照网络分层一层一层地讲却很少讲层与层之间的关系。例如我们学习路由协议的时候在真实场景中这么多的算法和二层是什么关系呢和四层又是什么关系呢例如在真实的网络通信中我们访问一个网站做一个支付在TCP进行三次握手的时候IP层在干嘛MAC层又在干嘛这些你是不是都清楚
第三,我会在讲解完各个层次的网络协议之后,着重剖析如何在当下热门领域使用这些协议,比如云计算、容器和微服务。
一方面你可以知道网络协议真实应用的地方,另一方面你也可以通过上手使用云计算、容器、微服务来进一步加深对于协议的理解。
千里之行,始于足下。不管何时,我相信,扎实的功底和过硬的技术,都会是你职业发展的助力器。
希望这个专栏,不仅可以帮你理清繁杂的网络协议概念,帮你构建一个精准的网络协议知识框架,帮你在热门领域应用这些底层知识,更重要的是给你一种学习知识的方法和态度:看似最枯燥、最基础的东西往往具有最长久的生命力。