为什么对计算机网络技术感兴趣,计算机网络技术专业好就业吗
但是尝试学习学习计算机网络时,由于工作与通信有关,有一定的基础,所以学习计算机网络觉得非常简单。无非按照协议规定,将01从一台主机搬运到另外一台主机上。从最基础的网络掩码
毫不讳言,计算机网络是所有计算机分支里最简单的,最容易学的。当初为了拥抱计算机这个全新的领域,尝试学习了操作系统、数据库、计算机网络。记得初学操作系统的时候,每次都雄心壮志要把理论学好,但是每次要么看了一半就放弃了,要么坚持看完但是看完几乎都忘了,依稀只记得内存管理、进程管理、用户shell、操作系统内核这些概念性的内容。。。
但是尝试学习学习计算机网络时,由于工作与通信有关,有一定的基础,所以学习计算机网络觉得非常简单。无非按照协议规定,将01从一台主机搬运到另外一台主机上。从最基础的网络掩码学起,学会判断两台主机是否在一个网段。然后再学习网关对于一个网段的真正作用,其实就是帮助本网段的主机完成跨网段的通信。然后再学习各种路由协议,掌握路由表在数据转发层面的重要性。等这些学完,会接触到TCP/IP,等把TCP/IP研究了一遍,会发现计算机的先驱太厉害了,把Socket已经为各位开发的同学已经提前准备好了。
计算机网络之所以简单,是因为它给各位提供了很多动手的机会,动手多了慢慢就会有感觉。而不像操作系统,虽然也可以动手玩玩操作系统,但是了解内部工作原理总是很难。看的操作系统理论往往和正在玩的系统有很大的距离。但是计算机网络不是这样,你在书上看到的内容,只要你有设备立马就可以去验证,验证书上的理论。一旦验证成功,几乎不用刻意的记忆,理论就会深深印在你的脑海里,并成为你真正的知识财富!
正是因为简单,所以学计算机网络的人数也很多。但是很多人忘记了一条恒古不变的真理,如果一项技术门槛很低,往往钱不多。有些网络认证速成班的学员,起薪并不比看大门的老大爷挣得多,其实没有什么好说的,问问自己,除了熟练敲几条命令,真的精通了计算机网络了吗?
时间很快流转到了2015年,随着网络安全呼声越来越高,曾经一直被埋没的SSL/TLS技术异军突起,成为了网络安全加密的主流协议。计算机网络,一直是为各个产业服务而存在着。当原有的计算机网络架构模型无法满足现有流量模型时,计算机网络一定会变。新兴产业对计算机网络提出了几个更高的要求:
低延迟低成本高安全性高扩展性高灵活性为了满足以上种种新的需求,网络架构越来越趋向扁平(二层架构VxLAN)、越来越多的缓存服务器(CDN)、越多越多的安全加密(TLS)、越多越多的软件编程网络(SDN),越多越多的SD-WAN(控制与转发分离)。
可是当把这些技术要求全部罗列出来时,现在的网络其实依然在沿用着传统网络里的技术。比如构成SD-WAN里控制层面安全(TLS)、数据层面安全(IPSEC)。VxLAN里的控制层面BGP-EVPN,数据层面UDP Tunnel。蓦然回首,你突然发现几乎有网络安全的地方,几乎都有TLS的身影。其中还包括802.1x、HTTPS、SD-WAN的管理层面、控制层面,Open SSL VPN也有它,Anyconnect VPN也有它,主流的安全加密VPN几乎都在使用它。
正是因为TLS独特的重要性,曾经花费了很多很多的时间去研究它,从TLS 1.2 RFC开始起步。当然如果没有多少基础,并不建议直接去学习它。在学习它之前,需要去学习一点密码学、数字证书、DH算法、RSA算法。当把这些内容都学完,再去学习这篇RFC。永远不要期望一遍可以看懂,三遍五遍能完全看懂,说明你的学习能力已经很出色了。
在学习任何一门知识之前,都需要清晰地知道这门知识所依赖的基础知识。当初学BGP一直无法深入,就是因为缺乏TCP的知识。因为BGP依赖于TCP的传输。很自然,TCP就成为了一项必修课程。卷一的英文版看了好多遍,每次都要间隔几个月。然后再把TCP相关的RFC全部看完。等看完了,好多好多问题就自然消失了,比如BGP session password是一个怎么样的存在,是如何实现的?其实没有那么复杂,只是TCP一个option 19/29而已!
当然学习TCP还有助于学习TLS,因为在大多数的时候,TLS依赖于TCP的传输。所以学习好基础的协议,往往有助于学习更高级的协议。比如面试问你一个问题,第三方通过发送一个伪造的、但是看起来合法的Reset报文,能否将正在运行的TLS Session给终结了?
如果你把TCP、TLS学好了,你的回答一定是Yes,那么这道面试题就通过了。技术有时就是那么简单,只要符合科学的规律、循序渐进地学习,一定可以事半功倍的!
但是TLS并不是总是依靠TCP来传输的,有时是依赖于Radius来传输的,而Radius是依赖于UDP来传输的。TLS本身是一个不可靠协议,即每一个报文只发一遍。万一这个报文丢了,TLS不会重传。
问题来了,谁来重传这个丢失的TLS报文?
如果你能带着这个问题去寻求答案,那么恭喜你,你的学习是非常高效的。学习一门知识,脑海里会不断萌生很多问题,有的问题可能很快就会解决,但是很多问题却需要很久才能解决。但是不要轻易放弃,坚持一下,一定可以找到答案。当所有问题都有了正确的答案,那么这门课程的理论学习就完成了。
这个问题其实很简单,Radius负责重传丢失的报文,这是我当时逻辑推理出来的。为了验证正确与否,看完EAP相关的RFC,确实是这样!另外通过802.1x抓包,也验证了这一点。这就是主动学习,要比被动看书的效果高得多!当然主动学习的动力来源于兴趣,因为没有什么比掌控形形色色复杂协议更有成就感!
几年前,当我再次翻阅那本经典的操作系统教材时,1000多页的教材只花了两周的时间全部翻完。看的时候仿佛在看电影一样,因为有了知识储备,操作系统不再是一门抽象的理论堆砌,操作系统对于每一位学习计算机的同学来说,或迟或早总是要学习的,选择一个适合自己的时间学习更重要!
几年前,特别是5G标准化之后,无线技术愈来愈重要了。以前从来没有系统化研究无线技术,对于它的研究主要集中在MAC层的管理层面,即漫游与无线认证安全、无线传输安全。无线如果不深入物理层,很难说自己精通无线技术。但是我发现无线的物理层,如果不去学习数字信号处理(DSP),很难学好!无线的知识会一直是前人消化过的知识一个小小的子集!
学习DSP的时候,发现数学在DSP领域太重要了,几乎全是数学。数学的重要性,在网络安全领域更是深深地领教过了。写这段文字并不是呼吁大家去学习数学,在很多时候有一本好的教材,可以弥补数学上的短板。所谓好的教材,是最适合自己的,可以让自己在DSP浩瀚的知识海洋里自由地翱翔。。。
之所以要学习这些,其本质的原因是,没有雄厚的基础储备,不能解决复杂而棘手的问题。不能解决复杂问题的工程师,要多挣money可能吗?
记得当初学无线有很多问题,其中印象最深的几个:
为何无线有带宽(Frequency Width)这个概念?噪音是什么,有自己的频谱吗?噪音的能量(Power)如何计算?无线信号以波的形式传播,到达接收方波已经有了衰减、延迟,接收方如何知道原始信号的幅度(Amplitude)、相位(Phase)?文字虽然有点长,但是用一句话就可以总结:主动学习的方法可以提高学习效率!而主动学习还是靠着自己对这门课程的兴趣,没有兴趣的学习是很枯燥的!
作者|车小胖谈网络|公众号
文章评论