1.2.1 计算机网络分层结构(上)

在这个视频中,我们会介绍计算机网络的分层结构,首先我们会以大家熟悉的快递网络为例,带大家感受分层设计的思想,紧接着我们会介绍计算机网络的三种常见的分层结构。最后,我们会简单的介绍各层之间有什么关系。

首先来看分层的设计思想,从我们最熟悉的快递网络出发,在你家附近会有一个快递终点站,就是你的包裹最终会放到这个终点站,然后由这个终点站的快递员为你派送包裹,一个终点站它会为很多个顾客服务。在其他的城市,也会有这种快递终点站,终点站和终点站之间会有很多快递中转站组成的快递网络,负责转运包裹。这就组成了一个完整的快递网络,这个快递网络需要实现很多功能,它是一个非常复杂的系统。比如说这个快递网络需要承担货物打包的功能,也需要承担取件派件的功能,对于一些特殊的货物运送,这个快递网络可能还需要支持冷链存储的功能。另一方面,一个顾客给另一个顾客寄送包裹的过程当中,这个包裹可以转运的路径是不是有很多条,比如说我们可以走上面这条路转运,也可以走下面这条路转运,到底要选择哪一条转运的路径,这是不是和我们计算机网络非常类似,我们不妨把给包裹规划转运路径的这个功能,称为包裹的路由。最后这个快递网络还需要提供包裹运输的功能,到底是用飞机运输、汽车运输还是火车运输等等。有很多需要考虑的细节问题。除了上面这些功能之外,这个快递网络还有很多很多乱七八糟的功能还需要去实现,这儿就不再赘述。

现实中的快递网络采用了分层设计的思想,把庞大复杂的问题转化成了若干更小的局部问题。

比如说我们可以把整个快递网络拆分成四层体系结构,快递终点站的最底层是运输部门,往上是仓储部门,第三层是快递员,第四层是顾客,我们可以让不同的层次去承担不同的功能。比如说第四层的顾客,让他去实现货物打包的功能,快递员让他去实现取件派件的功能,而仓库部门让他去实现冷链存储,还有快递的路由,最下层的运输部门让他去承担包裹运输的功能,每一个快递终点站都需要具备四个层次。相比之下,快递中转站这种中间节点,它只需要实现运输部门和仓储部门这两个层次的功能就可以,快递终点站和快递中转站之间会有公路、铁路或者航空路线等等,进行物理上的连接。在这种体系结构之下,一个包裹的的运输过程是这样的,首先寄件的顾客会负责把货物打包,打包好了之后,他会请求下一层的,也就是快递员上门取件,快递员取完件之后,他又会请求仓储部门的服务,让仓储部门比如说把这个货物进行冷链的存储,然后委托仓储部门把这个货物路由发到下一个节点去。紧接着,仓储部门会请求运输部门的服务,把这个包裹用汽车、飞机等等,用一种合适的方法给它运输到下一个站点。运输部门会把这个包裹送到下一个快递中转站。大家平时肯定都关注过自己包裹的物流信息,当包裹到达一个中转站之后,它会入库,就进入中转站的仓库,然后再由仓库部门决定你的包裹下一站应该发送到哪个位置,也就是说仓储部门要完成下一次的包裹路由。确定了包裹下一站要发到哪个位置之后,仓储部门又会请求下一层的运输部门的服务,让运输部门把你的包裹再运往下一个站点,如果包裹到达了快递终点站,运输部门会把包裹交给仓储部门,仓储部门又交给快递员,快递员又交给顾客,这样就完成了一个货物的运输。可以
看到这个复杂的快递网络被我们拆分成了四个层次,每一个层次会负责实现一个或者多个功能。好另外从这个例子中,我们可以体会到不同类型的结点,实现的功能层次可能是不一样的。比如说快递终点站,我们需要它实现这四层的功能,而快递中转站,我们只需要让它实现第一层和第二层的功能,这是快递网络的四层体系结构。我们首先分析了整个快递网络需要实现哪些功能,紧接着,我们把快递网络拆分成了若干个层次,并且把这些功能安排到合适的层次当中,这样我们就完成了快递网络的四层体系结构的设计。

同样的道理,在计算机网络当中,网络的边缘有主机,网络的核心部分有很多路由器。每一台主机上面会运行很多应用程序,或者说会运行多个进程,计算机网络也是一个很复杂的系统,也需要完成诸多功能。比如说差错控制、流量控制、分段与重装、复用和分用、连接的建立和释放等等。为了让大家学起来轻松一些,我们现在先不解释这些功能分别是什么意思。大家可以先暂停自己读一下所有的这些功能的含义,以及实现方法,我们会在这门课的后续章节当中慢慢展开去讲。我们现在不妨把这些功能称为功能A、功能B、功能C、功能D、功能E等等,这些功能应该如何把它们组织起来才可以让整个计算机网络的结构看起来清晰明了呢,是不是也可以采用分层设计的思想,把庞大而复杂的问题转化成若干较小的局部问题。

比如说,我们不妨把计算机网络分成五个层次,第一层是物理层,第二层叫数据链路层,第三层叫网络层,第四层是传输层,第五层是应用层。我们现在先不管为什么各个层次要叫这样的名字,反正每一层我们给它取个名,层次划分好之后,接下来我们把刚才提到的A、B、C、D、E、F、G那些各种各样的功能安排到合适的层次当中。比如说我们可以这么安排,让第一层物理层实现A、B两个功能,第二层数据链路层实现C、D两个功能,上面的各层也会分别承担相应的功能,在计算机网络当中,我们会要求所有的主机节点都要实现第一层到第五层的所有功能,而不同类型的节点,比如说路由器,我们只要求它实现第一层到第三层的功能,主机和路由器之间会通过物理传输媒体进行连接。比如说网线、光纤等等,我们不妨把物理传输媒体看作是第0层。在这样的结构之下,数据的传输是这样的:数据的发送方准备好数据之后,会把这个数据先交给应用层,数据经过应用层的处理之后再交给传输层,传输层再进行一些加工处理,交给网络层,以此类推逐层往下,数据每经过一个层次,都会被这个层次进行相应的处理,最后这些数据会被转换成电信号或者光信号,在物理传输媒体上进行传输,传输到下一个节点,下个节点收到数据之后会把这个数据逐层往上进行处理,第三层处理完之后,再把数据逐层往下递交,紧接着,经过下一条物理链路进行传输,最终数据到达目的主机,并且被逐层的往上进行处理,最终交付给目的主机的用户。这是数据传输过程的大致示意图,形式上和快递网络货物传输的过程是类似的。

接下来我们思考这样的一个问题,快递网络的分层设计只能设计为四层结构吗?不是,我们也可以让这个快递网络增加一些层次,比如说在快递员和顾客之间,增加一层叫做快递驿站,顾客要寄件的时候先把包裹放到快递驿站,快递驿站再把包裹交给快递员,相应的收件方在接收包裹的时候,快递员先把包裹放到快递驿站,最后再由快递驿站把包裹交给顾客。所以我们也可以采用这样的设计,得到一个五层的快递网络体系结构,也就是说这种分层结构的设计,其实并不唯一,只要我们能够把各种功能合理的安排到每个层次当中就可以。我们一直在强调这些功能的安排必须合理,一定要放到合适的层次,让合适的层次去实现,什么叫功能安排不合理呢?比如说如果我们把派件的这个功能,把它交给运输部门去实现,这就意味着运输部门的卡车司机,除了包裹运输之外,还需要去派件,这样的设计就是不合理的。所以我们把一个复杂系统的功能拆分出来之后,这些功能应该在哪个层次中去实现,这也是整个系统的设计者需要考虑的问题。

另外有一些功能,我们可以把它安排在不同的层次当中,让它重复的出现,比如说可以让第五层的顾客去完成货物打包的功能,当然也可以要求快递驿站去完成货物打包的功能,这都是可以的,所以同样一个功能在不同的层次当中反复的出现,这也是在设计中被允许的,从这个例子当中,我们能够深切的感受到这个快递网络,我们可以把它设计成四层的体系结构,也可以设计成五层的体系结构,只要我们保证这些功能的安排是合理的就可以了。另外同一个功能也可以在不同的层次当中反复的出现。

同样的道理,对于计算机网络来说,刚才我们提到了五层的这种结构。事实上,我们也可以把计算机网络设计成这种四层的结构,甚至七层的结构。这就引出了计算机世界中最常见的三种分层的结构,分别是七层、四层和五层的结构。最左边的七层结构是由国际标准化组织ISO提出来的,这种计算机网络的体系结构称为OSI参考模型,ISO是这个组织的名字,OSI是这个分层模型的名字。中间这种四层的设计是美国的国防部阿帕网这个项目的后续成果。阿帕网是世界上第一个现代计算机网络,阿帕网项目成功之后,又有一些科学家持续的投入去研究计算机网络,随着研究、研发的进展,最终就发展成了所谓的TCP/IP模型,这种体系结构就把计算机网络分成了四个层次。总之,ISO这个组织它提出了一种分层结构,而另一个组织又提出了四层的分层结构,分层只是第一步,除了分层之外,这两个组织还需要去安排和规划每一个层次需要实现什么样的功能,在OSI参考模型当中,同样一个功能可能会在多个层次中反复出现,而在TCP/IP这种四层的设计当中,每个层次承担的功能各不相同,很少会出现功能重复的情况,所以这就使得TCP/IP这种参考模型的设计会更简单高效一些,OSI参考模型当中,第五、六、七层要实现的功能在TCP/IP模型当中,被认为需要在第四层当中去实现。总之层次多,层次少,还有功能安排的合理不合理,都会使得这两种设计各有优劣。最终在市场的考验之下,现在统治整个互联网的是TCP/IP模型。我们现在的互联网世界就是被分为一、二、三、四这样的四个逻辑层次。OSI参考模型这种七层的设计思路,由于它最开始是一个国际组织提出的,所以这种OSI参考模型,它属于法律上的标准,一个权威机构、权威组织提出来的标准。这个国际组织在设计OSI参考模型的时候,其实是期望各个公司在生产设备的时候,都遵循我的这一套标准,让我的这套标准成为互联网的法规,但是事与愿违。由于这个孩子不太争气,所以最后还是打不过TCP/IP模型。因此TCP/IP模型是事实上的标准,而OSI 参考模型是法律上的标准。最后还有一种分层方式是五层模型,这种分层方式结合了前两种分层的优点,OSI参考模型对于网络层之下的两个层次解释的更清晰,研究的也更深入,同时也提出了很多很重要的概念。因此在教学上,为了让大家更容易理解整个计算机网络的工作原理。因此会综合 OSI参考模型和TCP/IP参考模型的优点,我们把计算机网络分成五层更便于学生去学习和理解计算机网络,所以大多数教材在介绍计算机网络的原理的时候都是按照这五层依次去讲解的。我们的计算机考研大纲也是按照这样的五个层次去划分的。在后续的章节当中,我们会依次展开了解各个层次,它需要实现哪些功能,以及每一种功能应该如何实现。在这我们提到了三种计算机网络的分层方式,或者说三种计算机网络的体系结构。

接下来我们给网络的体系结构一个比较精确的定义,所谓网络的体系结构是计算机网络的各层,以及各层的协议的集合,每一层需要支持若干个协议,而每一个协议又会对应的实现若干个功能。所以协议的存在是为了实现功能,因此计算机网络体系结构本质上就是对计算机网络及其构建所应完成的功能的精确定义。当我们设计一个计算机网络体系结构的时候,我们只需要精确的定义出分为几层,每一层需要实现哪些功能,每一个功能需要有什么协议去实现,只需要定义出这些东西就可以了,不涉及到实现的问题,具体的实现问题是交给软硬件的厂家去实现的,各个厂家只需要遵循给出的体系结构的设计,生产出来的设备,开发出来的软件就可以在我的计算机网络当中去运行。所以网络体系结构它是一个抽象的概念,而体系结构定义的功能层次的实现,是一个具体的问题。

由于我们接下来教学使用的是五层的分层方式,所以接下来的讲解我们尽量以五层模型为标准。接下来,我们简单的认识一下各层之间的关系。我们刚才说,我们对计算机网络的功能进行层次的划分,每一层实现一个或者多个功能。我们把分层结构当中第n层的活动元素,把它称为第n层的实体。什么意思?比如说我们要实现第五层的功能,那么会有一些软件模块,以及一些硬件模块工作在第五层,我们把涉及到第五层功能的这些软件和硬件把它看作是第五层的所谓的活动元素,这些东西就是所谓第五层的实体,同样的道理,为了实现第三层的功能而存在的那些软件、硬件就是第三层的实体。每一个结点都会对应若干个层次,而每一个层次都会对应一个所谓的实体。在两个不同结点当中,处于同一层的实体称为对等实体,比如说在左边主机和右边主机两个节点当中处于第五层的两个实体,称为对等实体。同样的道理,同处于第三层的三个实体也都是对等实体。刚才我们说过网络协议的设计是为了去实现某一种功能,网络协议它是控制对等实体之间进行通信的规则的集合。也就说对等实体之间的通信需要遵循某一种协议,只有遵循这个协议的规定,才可以确保可以实现某种功能。所以所谓的网络协议,它是约束了对等实体之间的通信规则,这种约束是水平的、水平方向的,这是水平视角。

接下来从垂直的视角来看,我们的上一层实体会通过下一层实体提供的接口,去请求下一层实体的服务。比如说应用层想要传输层提供I这个功能。他就需要去访问I这个功能对应的接口,可以简单的理解为函数调用的过程,一个函数会对外展现出它的调用接口,只需要去访问这个函数的调用接口,这个函数就会为你提供相应的功能、服务。只有相邻的两个层次才拥有服务和被服务的关系。上一层请求相邻的下一层提供服务,反过来说,下一层会为相邻的上一层提供服务。所以服务这个概念是垂直的,想要请求下一层的服务,我们可以访问下一层提供的接口,这个接口又可以称为服务访问点,英文缩写叫SAP。所以在这个地方我们又引入了两个新的概念,分别是接口和服务。

这个视频中我们介绍了分层设计的思想以及三种常见的分层方式,我们引入了网络体系结构的概念以及实体、协议、接口、服务这几个概念。

这个部分的总结我们放到之后的视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋悠然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值