如果你是一个设计者,你该如何考虑实现两台主机之前的通信问题呢?首先,我们以实现主机A向主机B发送一个文件为例,我们需要考虑以下问题:如何找到主机B?如何与主机B建立通信连接?信息该以什么形式传输?信息应该在什么载体上传输?等等之类的问题。
显然,这是一个极为复杂的任务,因此我们需要使用抽象和拆解的思维,将这个任务大致分为以下三个抽象模块,如图所示:其中各模块职责如下:文件传送模块:负责文件发送与接收的业务逻辑与命令下发等;通信服务模块:负责在主机A和主机B之间进行可靠的数据交换;网络接入模块:负责找到主机B,并将数据正确地发送到主机B端;由此可见,对于一个复杂的网络通信任务,将其进行分层实现具有以下优点:独立解耦灵活易于实现与维护方便进行标准化等等。
于是就有了以下三个体系结构:网络专家组提出的七层ISO(Open Systems Interconnection)体系结构;实际工业界实现的四层TCP/IP体系结构;理解原理和教学使用的五层体系结构;下面我们来了解下这个三个体系结构吧。
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模型中,形成了一个五层的教学模型。
2.3 原理教学的五层体系结构接下来以五层教学模型为例,先简单聊聊具体每一层的主要功能和职责吧。
如果从下往上看,下面一层都是为上一层服务的,我们在最上层的应用层中描述我们要做什么,而下面四层来分步进行具体实现。
各层提供的服务如下所示:物理层:在计算机之间的各种传输媒介中,提供传输比特流服务;数据链路层:在不同链路中,提供正确且可靠的传输数据帧服务;网络层:在分组交换网上,为不同主机提供路由与通信服务;运输层:在不同主机进程中,提供复用且分用的通用数据传输服务;应用层:在不同主机应用进程间,提供一种进程间通信和交换的规则服务;如果没有明白具体它们是怎么实现这些服务的,没关系,现在只需有这个分层的概念就行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)