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