摘要:
计算机网络体系结构标准的制定使得两台计算机能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。本文首先概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。进一步地,我们着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议,使得读者能够对计算网路体系结构有一个全新的、系统的认识。
版权声明与致谢:
本文原创作者:书呆子Rico
作者博客地址:http://blog.csdn.net/justloveyou_/
本文正使用的大部分插图均来自于课件《计算机网络体系结构》,并且对于其中部分插图笔者做了进一步的修改,该课件可以在我的CSDN上下载到,其链接为《计算机网络体系结构》。在此,我们感谢这份课件的制作者及其传播者,感谢他们的无私分享。
友情提示:
为了更好地了解计算机网络体系结构,笔者以两篇博客的篇幅来介绍这个计算机网络中最为重要的知识点,即:《计算机网络体系结构综述(上)》 和 《计算机网络体系结构综述(下)》。在本文,我们概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准,并着重介绍了计算机网络体系结构的分层原理及协议的内涵。在此基础上,本篇的姊妹篇《计算机网络体系结构综述(下)》详尽地介绍了两种典型的计算机网络系统结构标准:OSI七层模型与TCP/IP四层模型。
一. 为什么需要计算机网络体系结构?
众所周知,计算机网络是个非常复杂的系统。比如,连接在网络上的两台计算机需要进行通信时,由于计算机网络的 复杂性 和 异质性,需要考虑很多复杂的因素,比如:
(1). 这两台计算机之间必须有一条传送数据的通路;
(2). 告诉网络如何识别接收数据的计算机;
(3). 发起通信的计算机必须保证要传送的数据能在这条通路上正确发送和接收;
(4). 对出现的各种差错和意外事故,如数据传送错误、网络中某个节点交换机出现故障等问题,应该有可靠完善的措施保证对方计算机最终能正确收到数据。
计算机网络体系结构标准的制定正是为了解决这些问题从而让两台计算机(网络设备)能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。也就是说,要想完成这种网络通信就必须保证相互通信的这两个计算机系统达成 高度默契。事实上,在网络通信领域,两台计算机(网络设备)之间的通信并不像人与人之间的交流那样自然天然,这种 计算机间高度默契的交流(通信) 背后需要十分复杂、完备的网络体系结构作为支撑。那么,用什么方法才能合理地组织网络的结构,以保证其具有结构清晰、设计与实现简化、便于更新和维护、较强的独立性和适应性,从而使网络设备之间具有这种 “高度默契” 呢?
答案是分而治之,更进一步地说就是分层思想。
二. 计算机网络体系结构设计基本思想
分而治之的思想 正好可以解决上面提到的这个复杂的问题。也就是说,我们可以将这个庞大而复杂的问题转化为若干较小的、容易处理的、单一的局部问题,然后在不同层次上予以解决,这也就是我们所熟悉的 分层思想 。在计算机网络体系结构中,分层思想的内涵就是: 每层在依赖自己下层所提供的服务的基础上,通过自身内部功能实现一种特定的服务。
1、分层思想在日常生活中的应用
在我们的日常生活中有很多分层思想的应用,比如邮政系统、银行系统等。我们就以邮政系统的组织结构作为例子进行说明:
从上图我们知可以看出,用户和用户之间的通信依赖于下层的服务,但是他们并不需要关心快递、运输等细节,也就是说,寄信者只需将写好的信交给快递员而收信者只需从快递员手中查收信件即可。类似地,快递员也只需要从寄信人手中拿到信件并交给分检员或将信件从分检员手中拿走并交给收信人即可,至于分检员为何要把这份信交给他进行投递(事实上,每个快递员会负责某个片区,分检员根据收信人地址将信件分发给不同的快递员),他不需要关心也没必要关心。显然,在这个邮政系统中,各个角色(用户、快递员…)在功能上相互独立却又能协调合作达成一种 “高度默契”,这在很大程度上得益于分层思想的理念和应用。下图更直观地体现了邮政系统的分层思想:
此外,我们日常使用的操作系统也是分层思想的实践者。实际上,一般而言,对于一个庞大而又复杂的系统而言(比如银行系统、邮政系统等),其必定存在着对分层思想的应用。
2、分层思想的优点
(1). 耦合度低(独立性强)
上层只需通过下层为上层提供的接口来使用下层所实现的服务,而不需要关心下层的具体实现。也就是说,下层对上层而言就是具有一定功能的黑箱。
(2). 适应性强
只要每层为上层提供的服务和接口不变,每层的实现细节可以任意改变。
(3). 易于实现和维护
把复杂的系统分解成若干个涉及范围小且功能简单的子单元,从而使得系统结构清晰,实现、调试和维护都变得简单和容易。也就是说,对于设计/开发人员而言,这种方法使设计/开发人员能够专心设计和开发他们所关心的功能模块;对于调试/维护人员而言,这种方法也方便调试/维护人员去处理他们所负责的功能模块。
三. 计算机网络体系结构的概念与标准
如你所料,计算机网络体系结构也采用了分层的思想。那么,既然计算机网络体系结构的设计采用的是分层思想,那么它就必须得解决以下几个问题:
(1). 网络体系结构应该具有哪些层次,每个层次又负责哪些功能呢? (分层与功能)
(2). 各个层次之间的关系是怎样的,它们又是如何进行交互的呢? (服务与接口)
(3). 要想确保通信的双方能够达成高度默契,它们又需要遵循哪些规则呢? (协议)
1、计算机网络体系结构的概念
根据上面的几个问题,计算机网络体系结构必须包括三个内容,即分层结构与每层的功能,服务与层间接口 和 协议。所以,计算机网络体系结构的定义为:
在计算机网络中,层、层间接口及协议的集合被称为计算机网络体系结构。
2、计算机网络体系结构的标准
目前,由国际化标准组织ISO制定的网络体系结构国际标准是 OSI七层模型,但实际中应用最广泛的是 TCP/IP体系结构。换句话说,OSI七层模型只是理论上的、官方制定的国际标准,而TCP/IP体系结构才是事实上的国际标准。这看起来是不可理喻的,但这却是实际存在的,是一些历史原因造成的,无疑这些原因又是复杂的,笔者在此处略加介绍,以慰读者。OSI标准的制定者以专家、学者为主,他们缺乏实际经验和商业驱动力,并且OSI标准自身运行效率也不怎么好。与此同时,由于Inernet在全世界覆盖了相当大的范围,并且占领市场的标准是TCP/IP体系结构,因此导致OSI标准没有市场背景,也就只是理论上的成果,并没有过多地应用于实践。
四. 计算机网络体系结构的分层原理
1、基本概念
在介绍网络体系结构的分层原理前,我们有必要先了解以下几个基本概念,其对应关系如下图所示: