目录
1 为什么要分层 #
2 三个体系机构
1 为什么要分层?
在学习了解三个计算机体系结构之前,我们应该先了解一个问题:为什么要分层?要回答这个问题,我们需要先了解我们的需求——实现主机与主机之前的通信。
如果你是一个设计者,你该如何考虑实现两台主机之前的通信问题呢?
首先,我们以实现主机A向主机B发送一个文件为例,我们需要考虑以下问题:
等等之类的问题。显然,这是一个极为复杂的任务,因此我们需要使用抽象和拆解的思维,将这个任务大致分为以下三个抽象模块,如图所示:
其中各模块职责如下:
由此可见,对于一个复杂的网络通信任务,将其进行分层实现具有以下优点:
于是就有了以下三个体系结构:
下面我们来了解下这个三个体系结构吧。
2 三个体系结构
先来张三个体系结构的对比图,如下所示:
2.1 OSI七层体系结构
OSI Model(Open Systems Interconnection Model),全称是开放式系统互联模型,由ISO(International Organization for Standardization,国家标准组织)于1984年提出。
OSI模型主张将一个网络互联系统分为如上图所示的七层结构,每层有不同分工。
但是由于其层次划分太过复杂(不是层次越多越好),并没有在工业界实际落地,反而是更加简单的TCP/IP四层体系结构在工业界中广为流行(这告诉我们工业界的标准还是得结合实际是否能够落地才行)。
2.2 TCP/IP四层体系
在工业上,众多网络公司实际落地的,实际是TCP/IP的四层体系结构。
虽然叫TCP/IP体系结构,可它不仅仅只包含这两种协议。
其四层结构自上而下分别是:应用层、运输层、网际层(不叫网络层,是为了强调该层是为了解决不同网络的互联问题,实际也可叫网络层),和网络接口层(该层没有实际内容)。
由于TCP/IP体系结构在网络接口层并没有什么实际内容,所以我们在实际学习的时候基本就是将OSI的底部两层填充到TCP/IP模型中,形成了一个五层的教学模型。
接下来以五层教学模型为例,先简单聊聊具体每一层的主要功能和职责吧。
如果从下往上看,下面一层都是为上一层服务的,我们在最上层的应用层中描述我们要做什么,而下面四层来分步进行具体实现。各层提供的服务如下所示:
如果没有明白具体它们是怎么实现这些服务的,没关系,现在只需有这个分层的概念就行。