摘要:
计算机网络体系结构标准的制定使得两台计算机可以像两个知心朋友那样可以互相准确理解对方的意思并做出优雅的回应。本文首先概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。进一步地。我们着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议,使得读者可以对计算网路体系结构有一个全新的、系统的认识。
版权声明与致谢:
本文原创作者:书呆子Rico
作者博客地址:http://blog.csdn.net/justloveyou_/
本文正使用的大部分插图均来自于课件《计算机网络体系结构》,而且对于当中部分插图笔者做了进一步的改动,该课件可以在我的CSDN上下载到,其链接为《计算机网络体系结构》。在此,我们感谢这份课件的制作者及其传播者,感谢他们的无私分享。
友情提示:
为了更好地了解计算机网络体系结构,笔者以两篇博客的篇幅来介绍这个计算机网络中最为重要的知识点,即:《计算机网络体系结构综述(上)》 和 《计算机网络体系结构综述(下)》。在本文,我们概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准,并着重介绍了计算机网络体系结构的分层原理及协议的内涵。在此基础上。本篇的姊妹篇《计算机网络体系结构综述(下)》详尽地介绍了两种典型的计算机网络系统结构标准:OSI七层模型与TCP/IP四层模型。
一. 为什么须要计算机网络体系结构?
众所周知。计算机网络是个非常复杂的系统。比方,连接在网络上的两台计算机须要进行通信时,因为计算机网络的 复杂性 和 异质性,须要考虑非常多复杂的因素,比方:
(1). 这两台计算机之间必须有一条传送数据的通路。
(2). 告诉网络怎样识别接收数据的计算机;
(3). 发起通信的计算机必须保证要传送的数据能在这条通路上正确发送和接收;
(4). 对出现的各种差错和意外事故。如数据传送错误、网络中某个节点交换机出现问题等问题。应该有可靠完善的措施保证对方计算机终于能正确收到数据。
计算机网络体系结构标准的制定正是为了解决这些问题从而让两台计算机(网络设备)可以像两个知心朋友那样可以互相准确理解对方的意思并做出优雅的回应。也就是说,要想完毕这样的网络通信就必须保证相互通信的这两个计算机系统达成 高度默契。
其实。在网络通信领域,两台计算机(网络设备)之间的通信并不像人与人之间的交流那样自然天然,这样的 计算机间高度默契的交流(通信) 背后须要十分复杂、完备的网络体系结构作为支撑。那么,用什么方法才干合理地组织网络的结构,以保证其具有结构清晰、设计与实现简化、便于更新和维护、较强的独立性和适应性,从而使网络设备之间具有这样的 “高度默契” 呢?
答案是分而治之,更进一步地说就是分层思想。
二. 计算机网络体系结构设计基本思想
分而治之的思想 正好可以解决上面提到的这个复杂的问题。也就是说,我们可以将这个庞大而复杂的问题转化为若干较小的、easy处理的、单一的局部问题,然后在不同层次上予以解决,这也就是我们所熟悉的 分层思想 。在计算机网络体系结构中,分层思想的内涵就是: 每层在依赖自己下层所提供的服务的基础上。通过自身内部功能实现一种特定的服务。
1、分层思想在日常生活中的应用
在我们的日常生活中有非常多分层思想的应用,比方邮政系统、银行系统等。我们就以邮政系统的组织结构作为样例进行说明:
从上图我们知可以看出,用户和用户之间的通信依赖于下层的服务,可是他们并不须要关心快递、运输等细节,也就是说。寄信者仅仅需将写好的信交给快递员而收信者仅仅需从快递员手中查收信件就可以。
相似地。快递员也仅仅须要从寄信人手中拿到信件并交给分检员或将信件从分检员手中拿走并交给收信人就可以。至于分检员为何要把这份信交给他进行投递(其实。每一个快递员会负责某个片区,分检员依据收信人地址将信件分发给不同的快递员),他不须要关心也不是必需关心。显然,在这个邮政系统中,各个角色(用户、快递员…)在功能上相互独立却又能协调合作达成一种 “高度默契”,这在非常大程度上得益于分层思想的理念和应用。下图更直观地体现了邮政系统的分层思想:
此外。我们日常使用的操作系统也是分层思想的实践者。
实际上。一般而言。对于一个庞大而又复杂的系统而言(比方银行系统、邮政系统等),其必然存在着对分层思想的应用。
2、分层思想的长处
(1). 耦合度低(独立性强)
上层仅仅需通过下层为上层提供的接口来使用下层所实现的服务。而不须要关心下层的详细实现。
也就是说,下层对上层而言就是具有一定功能的黑箱。
(2). 适应性强
仅仅要每层为上层提供的服务和接口不变,每层的实现细节可以随意改变。
(3). 易于实现和维护
把复杂的系统分解成若干个涉及范围小且功能简单的子单元,从而使得系统结构清晰。实现、调试和维护都变得简单和easy。也就是说。对于设计/开发者而言。这样的方法使设计/开发者可以专心设计和开发他们所关心的功能模块;对于调试/维护人员而言,这样的方法也方便调试/维护人员去处理他们所负责的功能模块。
三. 计算机网络体系结构的概念与标准
如你所料,计算机网络体系结构也採用了分层的思想。
那么,既然计算机网络体系结构的设计採用的是分层思想,那么它就必须得解决下面几个问题:
(1). 网络体系结构应该具有哪些层次。每一个层次又负责哪些功能呢? (分层与功能)
(2). 各个层次之间的关系是怎样的,它们又是怎样进行交互的呢? (服务与接口)
(3). 要想确保通信的两方可以达成高度默契,它们又须要遵循哪些规则呢? (协议)
1、计算机网络体系结构的概念
依据上面的几个问题,计算机网络体系结构必须包含三个内容。即分层结构与每层的功能,服务与层间接口 和 协议。
所以。计算机网络体系结构的定义为:
在计算机网络中,层、层间接口及协议的集合被称为计算机网络体系结构。
2、计算机网络体系结构的标准
眼下,由国际化标准组织ISO制定的网络体系结构国际标准是 OSI七层模型,但实际中应用最广泛的是 TCP/IP体系结构。换句话说,OSI七层模型仅仅是理论上的、官方制定的国际标准,而TCP/IP体系结构才是其实的国际标准。
这看起来是不可理喻的,但这却是实际存在的,是一些历史原因造成的,无疑这些原因又是复杂的。笔者在此处略加介绍,以慰读者。OSI标准的制定者以专家、学者为主,他们缺乏实际经验和商业驱动力,而且OSI标准自身执行效率也不怎么好。与此同一时候,因为Inernet在全世界覆盖了相当大的范围,而且占据市场的标准是TCP/IP体系结构。因此导致OSI标准没有市场背景,也就仅仅是理论上的成果,并没有过多地应用于实践。
四. 计算机网络体系结构的分层原理
1、基本概念
在介绍网络体系结构的分层原理前,我们有必要先了解下面几个基本概念,其相应关系例如以下图所看到的:
- 实体: 不论什么可以发送和接收信息的软硬件进程;
- 对等层: 两个不同系统的同一层次。
- 对等实体: 分别位于不同系统对等层的两个实体;
- 接口: 上层使用下层所提供的功能的方式。
- 服务: 某一层及其下面各层的所完毕的功能,通过接口提供给相邻的上层;
- 协议: 通信两方在通信过程中必须遵循的规则。
2、网络体系结构模型
我们在网络中的不论什么一个系统都是依照上图中的层次结构模型来组织的,该模型具有下面特点:
同一网络中。随意两个端系统必须具有相同的层次;
每层使用其下层提供的服务,并向其上层提供服务;
通信仅仅在对等层间进行,当然这里所指的通信是间接的、逻辑的、虚拟的。非对等层之间不能互相“通信”。
实际的物理通信仅仅在最底层完毕。
Pn代表第n层的协议。即第n层对等实体间通信时必须遵循的规则或约定。
3、对等层通信的实质
在逻辑上,网络分层体系结构原理同意不同主机的对等实体进行通信。但禁止不同主机非对等实体间进行直接通信;在物理上。每一层必须依靠下层提供的服务来与还有一台主机的对等层通信。这是 对等层通信的实质 。也就是说,模型中的上层(第n+1层)使用下层(第n层)所提供的服务。是下层(第n层)服务消费者。而模型中的下层(第n层)向上层(第n+1层)提供服务。是上层(第n+1层)的服务生产者(提供者)。
进一步地。源进程传送消息到目标进程的过程是这样子的: 首先,消息送到源系统的最高层,紧接着消息从最高层開始自上而下逐层封装 。最后该消息经物理线路传输到目标系统。而当目标系统收到信息后,其会将该信息 自下而上逐层处理并拆封,最后由最高层将消息提交给目标进程。这个处理过程与邮政通信过程相似。例如以下图所看到的:
4、协议
正如上图所看到的。发信人和收信人对信件内容的共识就是二者之间的协议,正是因为这样的协议的存在使得他们都能读懂信的内容并理解对方的意思,达成默契;相似地,寄件邮局与收件邮局也能对信件的传递达成共识。也就是说,有一套规则来保证邮局之间的“ 默契。二者间的这样的默契要么能把信件完善无损地送给收信人,要么可以把信件完善无损地退给发信人;相同地。运输系统也能对信件怎样运输达成共识,而正是因为这样的共识,信件才干到达指定邮局也就是说,对等实体间的这样的默契(共识)就是协议。
相同地。在计算机网络体系结构中,不同层须要完毕不同的功能或者提供不同的服务。比方。计算机网络体系结构应该提供相应的差错控制,从而使对等层的通信更加可靠;除此之外,还应该提供流量控制以控制发送端的发送速率以便接收端能来得及接收消息。分段和重装机制也非常必要,就是说发送端在发送消息时应该将数据块分成更小的单位以便传输,而接收端可以准确地将这些数据块又一次组合并还原数据的原貌。 通信会话复用同一条低层连接可以提高效率;建立连接和释放连接机制是不同主机通信的保障,等等。上面列举的这些功能(服务)实际上都是由计算机体系结构中详细的某一层来实现的。更详细地说,主要是通过每层相应的通信协议来实现这些功能的。
也就是说,计算机间网络中全部的通信活动都是由协议控制的。也正是各种各样的协议保证了计算机间高度默契的通信。下图对照了人相互交流的协议和计算机间相互通信的协议:
五. 通信协议
上一节的最后一部分非常形象地介绍了协议的内涵。使我们对网络通信协议有了一个感性的理解。
实际上,人类在相互交流过程中也遵守某种“协议”。仅仅只是这样的协议是一种文化而已。其与计算机间相互通信的协议对照方下:
1、协议的概念
通信协议定义了 网络实体间发送报文和接收报文的格式、顺序以及当传送和接收消息时应採取的行动(规则)。这个定义指明了通信协议的三要素:
- 语义
语义是指对协议中各协议元素的含义的解释。比如:在HDLC协议中,标志Flag(7EH)表示报文的開始和结束;在BSC协议中,SOH(01H)表示报文的開始,STX(02H)表示报文正文的開始,ETX(03H)表示报文正文的结束。
语法
语法是指协议元素与数据的组合格式,也就是 报文格式。例如以下图所看到的:
- 时序
时序是指在通信过程中,通信两方操作的执行顺序与规则。如本节开头的图示。
协议三要素之间的关系
计算机间通信的本质就在于信息报文的交换,而信息报文也就是我们在下面提到的协议数据单元(PDU)。实际上,语法规定了PDU的格式。而在此基础上,语义赋予了PDU的特定内涵。时序通过控制这样的具有特定语义的报文来实现计算机间的通信,也就是说,时序是通信规则的体现。如今我们类比一下人类的对话来理解协议三要素之间的内在联系。如果这样一个场景。Rico在和Livia交谈。Rico说:“Livia。早上好啊~”,这时Livia会莞尔一笑并答道:“早上好,Rico~”。
对于这段会话,语法就是这些汉字/语句的组织规则。正是因为这样的组织规则这些简单汉字的叠加才有了一定的语义,而时序保证了你问我答的这样的会话(交流)的进行,更进一步地,时序保证了通信各方对PDU语义的理解并做出恰当的回应。
总的来说。语法是语义的载体,而时序又是对语义的有序组织。正是基于这样的关系,计算机在通信时才得以保持高度默契。
实际上。在网络体系结构中。每层可能会有若干个协议,但一个协议仅仅隶属于一个层次。在实现方式上,协议可以由软件或硬件来实现。比方,网络通信协议软件、网络驱动程序,网络硬件等。
经常使用协议组有:TCP/IP(Windows、Unix、Linux、…)、NetBEUI(Windows)、IPX/SPX(NetWare、Windows)等。
2、协议数据单元(PDU)
计算机网络体系结构中,对等层之间交换的信息报文统称为 协议数据单元(Protocol Data Unit,PDU)。PDU由 协议控制信息(协议头) 和 数据(SDU) 组成,例如以下图所看到的。
当中,协议头部中含有完毕传输数据所需的控制信息。比方地址、序号、长度、分段标志、差错控制信息等。
传输层及下面各层的PDU均有各自特定的名称:
传输层 —— 段(Segment)
网络层 —— 分组/包(Packet)
数据链路层 —— 帧(Frame)
物理层 —— 比特(Bit)
(1). PDU的封装
在计算机网络体系结构中,下层把上层的PDU作为本层的数据加以封装,然后增加本层的协议头部(和尾部)形成本层的PDU。例如以下图所看到的。在这里,封装就是在数据前面加上特定的协议头部。因此,数据在源站自上而下递交的过程实际上就是不断封装的过程,而到达目的地后自下而上递交的过程就是不断拆封的过程,例如以下图所看到的。这个过程相似发送信件的过程,数据在传输时。其外面实际上要被包封多层“信封”。
在目的站,某一层仅仅能识别由源站对等层封装的“信封”。而对于被封装在“信封”内部的“数据”仅仅是拆封后将其提交给上层,本层不作不论什么处理。
特别须要注意的是,每一层仅仅处理本层的协议头部!
(2). PDU封装实例
下图演示了PDU在TCP/IP协议组的封装过程:
六. 小结
计算机网络体系结构标准的制定使得两台计算机可以像两个知心朋友那样可以互相准确理解对方的意思并做出优雅的回应。
本文首先概述了计算机网络体系结构的提出动机。并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。进一步地,我们着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议。使得读者可以对计算网路体系结构有一个全新的、系统的认识。
七. 很多其它
很多其它关于OSI七层參考体系结构和TCP/IP四层协议结构及每种体系结构中的各层的任务、功能、协议及与其它相似层的差别等差别的介绍,请读者移步我的博客《计算机网络体系结构综述(下)》。
引用