计算机网络体系结构与参考模型
计算机网络分层结构
两个系统中实体间的通信是一个很复杂的过程,为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以分层的方式进行建模。
我们把计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。换言之,计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义,它是计算机网络中的层次、各层的协议及层间接口的集合。需要强调的是,这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现(mplementation)问题。体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件。
计算机网络的体系结构通常都具有可分层的特性,它将复杂的大系统分成若干较容易实现的层次。分层的基本原则如下:
- 每层都实现一种相对独立的功能,降低大系统的复杂度。
- 各层之间界面自然清晰,易于理解,相互交流尽可能少。
- 各层功能的精确定义独立于具体的实现方法,可以采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构应能促进标准化工作。
由于分层后各层之间相对独立,灵活性好,因而分层的体系结构易于更新(替换单个模块),易于调试,易于交流,易于抽象,易于标准化。但层次越多,有些功能在不同层中难免重复出现,产生额外的开销,导致整体运行效率越低。层次越少,就会使每层的协议太复杂。因此,在分层时应考虑层次的清晰程度与运行效率间的折中、层次数量的折中。
依据一定的规则,将分层后的网络从低层到高层依次称为第1层、第2层…第n层,通常
还为每层取一个特定的名称,如第1层的名称为物理层。
在计算机网络的分层结构中,第n层中的活动元素通常称为第n层实体。具体来说,实体指任何可发送或接收信息的硬件或软件进程,通常是一个特定的软件模块。不同机器上的同一层称为对等层,同一层的实体称为对等实体。第n层实体实现的服务为第n+1层所利用。在这种情况下,第n层称为服务提供者,第n+1层则服务于用户。
每一层还有自己传送的数据单位,其名称、大小、含义也各有不同。
在计算机网络体系结构的各个层次中,每个报文都分为两部分:一是数据部分,即SDU;二是控制信息部分,即PCI,它们共同组成PDU。
- 服务数据单元(SDU):为完成用户所要求的功能而应传送的数据。第n层的服务数据单元记为n-SDU。
- 协议控制信息(PCI):控制协议操作的信息。第n层的协议控制信息记为n-PCI。
- 协议数据单元(PDU):对等层次之间传送的数据单位称为该层的PDU。第n层的协议数据
单元记为n-PDU。在实际的网络中,每层的协议数据单元都有一个通俗的名称,如物理层的PDU
称为比特,数据链路层的PDU称为帧,网络层的PDU称为分组,传输层的PDU称为报文段。
在各层间传输数据时,把从第n+1层收到的PDU作为第n层的SDU,加上第n层的PCI,就变成了第n层的PDU,交给第n-1层后作为SDU发送,接收方接收时做相反的处理,因此可知三者的关系为其变换过程如下图所示:
具体地,层次结构的含义包括以下几方面:
- 第n层的实体不仅要使用第n-1层的服务来实现自身定义的功能,还要向第n+1层提供本层的服务,该服务是第n层及其下面各层提供的服务总和。
- 最低层只提供服务,是整个层次结构的基础:中间各层既是下一层的服务使用者,又是上一层的服务提供者;最高层面向用户提供服务。
- 上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务;下一层所提供服务的实现细节对上一层透明。
- 两台主机通信时,对等层在逻辑上有一条直接信道,表现为不经过下层就把信息传送到对方。
计算机中的透明:指某个事物客观存在的,但是这个部件我们用户不能直接使用到,则称之为该部件对用户透明
计算机网络协议、接口、服务的概念
协汉
协议,就是规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol),它是控制两个(或多个)对等实体进行通信的规则的集合**,是水平的**。不对等实体之间是没有协议的,比如用TCP协议栈通信的两个结点,结点A的传输层和结点B的传输层之间存在协议,但结点A的传输层和结点B的网络层之间不存在协议。网络协议也简称为协议。
协议由语法、语义和同步三部分组成。语法规定了传输数据的格式;语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作及做出何种应答;同步规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。
接口
接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。在典型的接口上,同一结点相邻两层的实体通过服务访问点(Service Access Point,SAP)进行交互。服务是通过SAP提供给上层使用的,第n层的SAP就是第n+1层可以访问第n层服务的地方。每个SAP都有一个能够标识它的地址。SAP是一个抽象的概念,它实际上是一个逻辑接口(类似于邮政信箱),但和通常所说的两个设备之间的硬件接口是很不一样的。
服务
服务是指下层为紧邻的上层提供的功能调用,它是垂直的。对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务。
上层使用下层所提供的服务时必须与下层交换一些命令,这些命令在OSI参考模型中称为服务原语。OSI参考模型将原语划分为4类:
- 请求(Request)。由服务用户发往服务提供者,请求完成某项工作。
- 指示(Indication)。由服务提供者发往服务用户,指示用户做某件事情。
- 响应(Response)。由服务用户发往服务提供者,作为对指示的响应。
- 证实(Confirmation)。由服务提供者发往服务用户,作为对请求的证实。
这4类原语用于不同的功能,如建立连接、传输数据和断开连接等。有应答服务包括全部4类原语,而无应答服务则只有请求和指示两类原语。四类原语的关系如下所示:
一定要注意,协议和服务在概念上是不一样的。首先,只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。
注意:并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才称为服务。
协议、接口、服务三者之间的关系
计算机网络提供的服务可按以下三种方式分类
- 面向连接服务与无连接服务
在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如T℃P就是一种面向连接服务的协议。
在无连接服务中,通信前双方不需要先建立连接,需要发送数据时可直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这是一种不可靠的服务。这种服务常被描述为“尽最大努力交付”(Best-Effort-.Delivery),它并不保证通信的可靠性。例如IP、UDP就是一种无连接服务的协议。 - 可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
不可靠服务是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。
对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。例如,用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。 - 有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答服务。
无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于WWW服务,客户端收到服务器发送的页面文件后不给出应答。