计算机网络——发展历史和分层模型

2019 / 08 / 11

前言

记得大学的时候,在计算机等级考试当中我毅然同时选择了两门课程,一门是vb二级,一门是计算机网络三级,因为我一直认为自己是一个计算机方面的人(tian)才,在计算机专业的同学看来等级考试无聊也没什么意义,但是当时对于非计算机专业来说,很多学霸二级的考试都会失利,更别说同时考两门而且一次通过。

但是事实上我经常在非常重要的场合因为计算机网络基础过于薄弱而与非常优越的机会失之交臂。我大学学到的网络或许仅仅只是对我有着启蒙的意义。网络是非常重中之重的一个学问,如果说万变不离其宗的话,那么网络就是几乎不怎么会变的宗,尤其是对于做web开发的同学而言,计算机网络是web的鼻祖,没有网络浏览器的意义将会非常渺小,而网页的渲染和工作机制也与网络请求密不可分。总而言之要想从本质上明白网页,首先请知道网络。

计算机的起源和发展

图灵被称作计算机之父和人工智能之父,是因为他是最先思考用机械代替人类执行指令的人,并且他的图灵机是可编程的,他也对人工智能做了思考,提出了计算机不光应该执行指令而且可以学习,可以执行思考和表达,而冯诺伊曼受图灵的启发发明了冯诺伊曼机,作为通用计算的模型一直沿用至今。当然计算机的鼻祖应该说是算盘,算盘是机械代替人工的一个非常典型的工作。

图灵的计算机是机械的,而第一台真正的电子计算机埃尼阿克诞生于1946年,它是一个30顿重的庞然大物,而且和现在的1kg的计算机相比像是一只迟钝的海龟,运算很慢而且很容易出故障。现在的计算机终端不光变小变快了,而且可以作为一部分嵌入在各种各样的设备中,比如智能音箱,网络电视,智能导航仪等等。足以可见,短短的不到一个世纪,计算机经历了多大的变革。

计算机网络的发展

计算机是英国在破解德国谜式密码的过程中发明的一个快速计算的机器,而美苏在冷战期间美国为了有更高的的科技水准,美国国防部高级研究计划管理局(ARPA)开始研究计算机网络,并且在1969年发明了APRAnet,并且在1983年提出了TCP/IP协议,然后逐渐流行开来。

随着计算机的发展,计算机网络也在经历着翻天覆地的变化,从拨号联网到光纤入户,到现在的随处可见的4g,目前5g网可以在8秒钟内下载一部1G大小的电影,是4g网速的上百倍,4g的平均网速是22.99Mbps(2.87 MB/s)。每次网络的变革都会很大程度的改变现实生活的方式,5g网更快,更低时延,可能让对物联网,人工智能,社交方式都带来极大的改变。

网络的理解

网络和现实世界的构造类似,把路由器,交换机和ISP(internet service provider)比作机场或者车站,每个终端比作各种各样的建筑物,而途中的道路就是以太网,同轴电缆和光纤,如果是空运的话可以类比为电磁波。传输的分组可以理解为被包裹好的寄件,每层协议可以理解为快递代收点,邮寄部门或者其他的中间工作者。

很多年前的端可能只是一个pc机,而现在端的形态已经非常多样化了,就像建筑物各式各样一样,每个建筑有不同的功能。而建筑物里有房间可以理解为一个个的应用程序。这个比喻可以说是非常恰当合理了。

道路可以只是两个屋子直接连接,也可以是连到小镇,然后坐大巴到县城,然后坐火车到市里,再坐高铁到首都,再坐飞机到国外,ISP也分不同的层级,有大型的国际ISP,也有相对很大的市级ISP,也有比较小的只是覆盖一个网吧的小ISP。

而局域网,广域网,城域网可以理解为村,县,省之类的不同大小的区域划分。

而任何两个计算机相连接就可以称作网络,所以网络没有特定的大小规定,网络就像是道路。

协议分层模型和封装

为了更好的处理邮寄工作,寄件人和寄件商都会给包裹添上标签,也需要分析不同的道路寻找更优的路线,如果洲际传输的话可能需要翻译,这就好比不同层的各种协议,有不同的分工和任务。

TCP/IP是一个五层的协议模型

  1. 最先是应用层的http(Hyper Text Transfer Protocol)协议把数据打包成 报文,写上各种寄件人和收件人的信息,主要工作的设备或者应用就是pc,浏览器,或者其他的各种应用。
  2. 然后是传输层的TCP(Transmission Control Protocol)协议,他会负责建立可靠的连接,然后把报文封装成 数据段 进行传输,主要设备就是网关。
  3. 然后是网络层的IP(Internet Protocol)协议,IP协议负责寻址和分段,分别是选择传输的道路,和为了适应传输对数据段进行重组,生成 数据包 ,主要设备是路由器。
  4. 然后是数据链路层,链路层的作用就是保证可靠的数据传输,但并不是负责传输数据,这里数据包会被封装成 ,链路层不会管传的是什么,传了多大,他只管把数据传对,传过去,比如交换机,网桥和网卡就是这个层的设备。
  5. 最后是物理层,这个层负责把数据传过来传过去,主要设备就是各种网线,中继器。

OSI(Open System Interconnection)七层协议模型

OSI比TCP/IP多了一个表示层和一个会话层,并不是说这两个层级是多余的,OSI是出现在TCP/IP之后的。

表示层其实如MP4,JPG都是这个层次的协议,或者说格式,还有ssl也是表示层的协议,表示层定义了数据的表示方式和加密压缩等,也是非常重要的一层,

会话层定义了会话的连接,中断和保持等,比如RPC协议和SQL Sever协议,都是会话层的,而SQL server是数据库的协议,RPC是socket远程数据传输。

这两个层级工作的协议都并不是鲜为人知的一些协议。但为什么没有呢,可以认为TCP/IP协议把表示层和会话层的事情,合着应用层的事情一起扔给了软件开发工程师们。实践过程中这样确实是没什么问题的,进入会话层之后,再分层可能对于开发者而言并不是很有必要。OSI是计算机的各种博士讨论出来的一个学术方案,所以对于理解计算机网络而言OSI是更合理的,而对于实际的工作和开发而言,TCP/IP会更加合理一些。

很多人并不赞成分层模型,因为一些校验一个层级做了另一个层级可能还需要做,或者说一个层级拿到数据在另一个层级依然需要,也有种种其他的原因。

当然分层模型在大规模的合作的作用是不言而喻的。他很好的定义了各个层级的功能,也整合归类了网络数据传递过程中发生的情况,每个层级只需要关注自己的事情,就像mvvm或者模块化,这种模式很好的拆解了复杂的系统,简化了问题。

参考文章

计算机硬件发展史

计算机网络那些事(一)

MB和Mb的区别

嗨,请先 登录

加载中...
(๑>ω<๑) 又是元气满满的一天哟