个人拙见:
仅仅是一些个人拙见!
-
身为程序员为什么要研究计算机网络(当然,除开类似于CCNA,CCNP,CCIE等,以及其他网络从业者,网络研发者):
计算机网络,计算机系统结构,操作系统,是基础,我们需要去研究?
额,太广了。
这么说吧!就拿java开发来说吧,我们平时使用的开源框架等,比如说hadoop,hdfs等,还有rpc框架等,包括开源框架中的协议等,怎么会有这些协议呢?开源框架的架构图为什么会分层呢,怎么就这样分层的呢?我们自己开发框架的话,怎么去分层,为什么要这么分呢,怎么定义自己的协议等等? 如果计算机网络能通透,用计算机网络对比这些,我们其实很容易就能想明白(当然,不止计算机网络可以类比)。 就像有的人,一门学科通透了,好像其他学科都能触类旁通一样,其实道理也在这里,人类社会发展至今,凡是列入教育本本中的一些东西,其实都是已经整理好的传承下来的知识智慧,铺垫了指导后人前进的道路。
计算机网络不止用于指导java web程序员开发网络通讯相关服务这个方面。如果我们想学习一些比较骚的技术,计算机网络仍然是基础。
另外,你想读懂一些文献,这些东西你就得夯实了。
再比如,从我们比较感兴趣的网络入侵来说:我们有时候会看到,有人没有侵入网络(其实也可以说入侵了),但是你的信息暴露了,因为他是通过一些设备侦听出来你的数据信号,类似于你在拿话筒演讲,我通过无人机,然后无人机远程监控里面看到了你演讲,你不允许我现场参加,我这是远程无人机传过来的啊。像这种,在导引介质和非导引介质都可以进行侦听,这就涉及到网络安全了,当然类似的、可以攻击的方式有很多,研究明白了,你也能想到很多攻击的方式,但是能不能实现就是另一回事了(当然,随便去搞破坏,这是不对的,也是违法的)。还有人根据协议漏洞的攻击等等。
再比如说,有人精研协议,各种协议?能干嘛?
说一个比较鲜活的例子,有朋友自做小型基站,然后通过周围的所有已探测到的无线网,形成组网,达到非常高效的网络,然后再对这个小型基站进行包转,使其达到极高效率,再进行售卖,可能成本只是几个集成电路,和一套塑料壳的价钱,但是就可以卖个几百到接近一千,这就是技术即价值。
还有,很多技术的原理都依赖与计算机网络的相关部分,这一块是很有价值的,对于我们以后的技术生涯。
(当然,不说计算机网络,我们经常学习其他很多业内新技术,这个没办法,是我们吃饭的需要,但是计算机网络是决定我们以后的技术认知高度的一部分,这一点上绝对要比各种各样的新技术要重要。)
怎么研究:
其实,包括上学期间,以及我们所接触到的其他关于计算机网络的文献,尤其是英译汉以后,汉语上对于各种名词叫法也有不同,所以往往在看书的时候比较迷惑,也阻碍了我们学习的劲头,还有计算机网络发展至今,我们有时候接触到一些文献或者书本可能介绍的是20世纪90年代初的网络,或者21世纪初的网络,但是网络发展了十几二十年了,还是那样的吗?当然不是了,所以从时间线上,我们也要区分相应的技术对应于哪个时间线。
一般都是从5层体系结构来学习,我们也可以通过不同纬度来学习,就像盲人摸象一样,不同角度,所得到的象也是不一样的。
当然,我们现在使用的都是TCP/IP分层体系,它只有4层,又分5层只是为了方便学习,还有一个我们熟知的OSI参考模型,这个是分为7层的,现在仅是学术理论指导,实际落地普适性以后也就是TCP/IP分层体系结构。
我们可以从平面——>立面——>模式——>应用 来研究,也可以直接按照分层来,每一层,每一层的来研究,它山之石可以攻玉,这句话我们稍微歪一下它的字面意思,也可以用在网络的研究上,什么意思呢,就是类比来研究,可以以现代物流,电网等来类比思考网络。
凡事皆需熟练,凡记忆,皆需眼缘,只有间歇性的不停去翻看他,才会有新的思考,新的收获,所以这一块,我们应该是要不停歇的去温故。
计算机网络,不是去记忆什么,真的需要理解,需要去掌握一些词义,需要去研究一些协议,需要去思考一些东西。这个是需要长时间琢磨,去让它侵入自己的整个知识体系,这时候,可能有些东西的思考高度和认知都不一样了。 拨云见日,厚积薄发,这两个词真的很有韵味!
-
计算机网络是什么:
每种东西的定义肯定有很多,这是毋庸置疑的,可能有广义定义,狭义定义,也可能有一般定义,通用定义,为大众接受的定义,或者书本里出现的定义。这篇拙见里,我们暂且可认为 计算机网络就是链路和节点组成的可信息交流、资源共享的网络。
- 计算机网络的衍变史:
凡事,凡物不是 All in One,必然有一个发展史,计算机网络也是一步一步发展起来的。
从当初的电话(电信)网,到后来的电视网,再到现在的计算机网,都是慢慢演进出来的,局域网,城域网,广域网,互联网,互联网是最后出现的。从第一个局域网的出现衍变到现在。