计算机网络体系结构与协议
计算机网络体系结构与协议
计算机网络体系结构将网络中所有部件可完成的功能精确定义后,进行独立划分,按照信息交换层次的高低分层,每层都能完整地完成多个功能,层与层之间互相支持又相互独立。因为网络中的计算机严格按照分层的规定进行数据处理,而在同一层次上不同的计算机执行相同的协议与标准,独立完成一样的网络任务,因此用户和计算机在同一层次进行信息交换与处理时可忽略其他层次的影响独立操作,这样使得复杂的网络信息交换和处理大大简化,便于人们掌握和使用。
我们之所以需要分层,是因为计算机网络是个非常复杂的系统,其复杂程度远远超过人们的想象。一般地,连接在网络上的两台计算机要互相传送文件需要在它们之间建立一条传送数据的通路。其实这还远远不够,至少还有以下的几件事情要完成∶
(1)为用户提供良好的易于操作的界面,使其可方便地操作数据传输,并得知传输过程中的差错与细节。
(2)建立一条传送数据的通路,并对通路进行监控,使其断开后能够重新建立。要建立通路就必须要求网络中的多台计算机进行协商并且相互协作,而监控通路则需要全时段的跟踪守侯。
(3)数据发送方必须弄清楚数据接收方是否已经做好数据接收和存储的准备。(4)因为计算机处理的是并行的数字信号,而网络中传输的是串行的光信号或电信号,这些信号需要在网络中相互转换。需要传输的文件很多格式不同,不能兼容,要想让文件接收方兼容识别文件,也需要格式转换。
(5)数据传输中会出现各种各样的差错,怎样应对差错,以保证接收方计算机能够收到完整正确的数据,也是通信双方需要做的。
计算机网络需要解决的通信问题还远远不止以上所述内容。由此可见,相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”相当复杂。
网络系统是一个功能庞大而复杂的系统,为了减少网络系统设计的复杂性,提高网络系统的稳定性和可管理性,计算机网络按照层次结构进行组织。
为了更好地说明分层的概念,我们将上述所提到的计算机网络通信需要解决的问题进行归类分层,如图3.1所示。第一层我们把它称为网络接入模块,这个模块的作用就是负责与网络接口有关的细节。在驾驭网络通信硬件资源的基础上,我们提出的第二层是通信服务模块。该层的功能是负责建立通信通路,保证以文件为单位传输的数据或文件传送命令可靠地在两个系统之间交换,也就是说这个模块必须有网络链路建立、差错检测、差错应对、差错更正等功能。同理,在这两层之上,第三层可为文件传送模块。这个模块是在下边两层提供的服务的基础之上,为用户提供良好的操作界面,使其以文件为单位操作数据传输,并得知传输过程中的差错与细节,同时也对文件的不同格
在我们现有的分层网络体系结构中,每一层都被制定了很多的协议和标准,有的网络体系结构甚至是以网络协议的名字来命名,如TCP/IP体系结构,其核心就是TCP/IP协议。因此网络协议是计算机网络体系中一个非常重要的内容。
3.1.1 网络体系结构
所谓网络体系结构(Network Architecture)是指通信系统的整体设计,如整个网络系统的逻辑组成和功能分配,它定义和描述了一组用于计算机及其通信设施之间互联的标准和规范的集合。研究计算机网络体系结构的目的在于定义计算机网络各个组成部分的功能,以便在统一原则指导下进行计算机网络的设计、建造、使用和发展。计算机网络体系结构是一种分层结构,分层结构具有很多好处
(1)各层是相互独立的∶某一层并不需要知道它的下层是如何实现的,只需通过接口使用下层的服务;由于每一层只实现一种相对独立的功能,可将复杂的问题分解为若干容易处理的小问题,整个问题变得容易解决。
(2)更好的灵活性∶当某一层发生变化时,只要层间接口关系保持不变,则在该层以上或以下的层均不受影响。
(3)结构上可分割∶各层都可以采用最合适的技术来实现。(4)易于实现和维护每层功能相对单一,易于实现。
(5)易于标准化∶因为每个实体都具有相同的层,每一层功能都比较单一,所以提供的服务也比较明确。
随着信息技术的发展,各种计算机系统联网和各种计算机网络的互联成为人们迫切需要在我们现有的分层网络体系结构中,每一层都被制定了很多的协议和标准,有的网络体系结构甚至是以网络协议的名字来命名,如TCP/IP体系结构,其核心就是TCP/IP协议。因此网络协议是计算机网络体系中一个非常重要的内容。
3.1.2 网络协议
所谓计算机网络协议(Protocol),是计算机网络中的计算机为了进行数据交换而建立的规则,标准或约定。这就好像我们竞技比赛中一定要制订比赛规则,这些规则对比赛过程进行约束,并形成某种标准对比赛结果等进行评判。计算机网络的协议则主要规定了所交换数据的格式以及有关同步与时序的问题。协议对计算机网络通讯的数据流和通讯全程进行约束,网络同样也制订了计算机网络接口等一系列硬件设备的标准。网络协议主要由以下三个要素组成∶
(1)语法。规定通信双方”如何讲”,即规定数据与控制信息的结构或格式。
(2)语义。规定通信双方“讲什么“,即规定传输数据的类型以及通讯双方要发出什么样的控制信息,执行的动作以及作出何种响应。
(3)时序。规定了信息交流的顺序,即事件实现顺序的详细说明。
我们在计算机网络上做任何的事情都需要协议,例如从某个主机上下载文件,上传文件等。但在自己的电脑上存储打印文件是不需要任何协议的。
协议是一种通信规约。从广义的角度来说,人们之间的交往就是一种信息交互的过程,每做一件事都必须遵循一种事先规定好的规则与约定。那么,为了保证计算机网络中大量计算机之间有条不紊地交换数据,就必须制定一系列的通信协议。因此,协议是计算机网络中一个重要与基本的概念。对于协议,有以下两点值得注意。
(1)每一种协议在设计时都针对于某一个特定的目标和需要解决的问题。目前已经存在了很多的网络协议,它们已经组成了一个完整的体系。
(2)网络协议同时又是需要不断发展和完善的。当一种新的网络服务出现时,人们必然要制定新的协议。
为了便于理解接口和协议的概念,以人们常用的邮政通信系统为例进行说明,如图3.2 所示。人们在使用邮政系统通信时,必须按照一定的步骤,每一个步骤都必须遵循一系列的约定。通信的第一步是写信,写信人必须遵循一些约定,如信件的格式、写信采用的文字等,这样收信人在收到信之后,才能看懂信中的内容。第二步,信写好之后,到邮局邮寄,这时,邮局为寄信人服务,寄信人必须遵循邮局的约定,如按规定填写信封并支付邮资。第三步,邮局收到信之后,将信件进行分类,然后交付运输部门进行运输,这时,运输部门为邮局服务,邮局也必须遵循运输部门的一些约定,如提供运输的目的地等。信件到达目的地之后,进行相反的过程,最终将信件送到收信人手中
在计算机网络中,两台计算机之间的通信过程与邮政系统的通信十分类似。
在进行计算机网络系统设计时,将复杂的功能划分为功能相对独立的若干层。每一层可与相邻的层进行通信,下层(较低级别的层)向上层(较高级别的层)提供服务,并把如何实现这一服务的细节向上层屏蔽。每一对相邻层之间都有一个接口,接口定义下层向上层提供的原语操作和服务。每一层都有一系列解决特定问题具有既定用途的协议,第n层上的协议称为第n层协议。
不同机器里包含的对应层的实体称为对等实体(Peer),正是对等实体利用协议进行通信。
3.1.3 网络协议的分层
在计算机网络分层体系结构思想的指导下,网络协议也采用了分层结构,比如当今使用最广泛的TCP/IP协议,就是从原理上分为4层(该内容将在后面的章节展开)。
1.网络协议采用分层结构的原因
在分层思想下,每一层都有明确的任务和相对独立的功能,不需要关心下层如何实现,只要知道它通过层间接口提供的服务即可。灵活性好,易于实现和维护,有利于标准化。
2. 网络协议各层次间的关系
(1)下层为上层服务,而上层并不关心下层服务是如何实现的;
(2)每一对相邻层之间都有一个接口,相邻层通过接口交换数据,提供服务;(3)发送方和接收方的同一层叫做对等实体;(4)对等实体是虚通信,只有传输介质是实通信
(5)从层次角度看数据的传输,发送方数据往下层传递,接受方往上层传递。
OSI模型特点
(1)每个层次的对应实体之间都通过各自的协议通信。(2)各个计算机系统都有相同的层次结构。(3)不同系统的相应层次有相同的功能。(4)同一系统的各层次之间通过接口联系。
(5)相邻的两层之间,下层为上层提供服务,同时上层使用下层提供的服务。图中的点划线框部分是通信子网,它和网络硬件的关系密切,而且通信手段是一个传一个的连接方式;而从传输层开始向上,不再设及通信子网的细节,只考虑最终通信者之间的端到端的通信问题。
3.2.2 OSI参考模型各层的功能
1.物理层(Physical Layer)
在 OSI参考模型中,物理层(Physical Layer)是参考模型的最底层,也是 OSI模型的第一层。物理层的主要功能是利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
物理层的作用是实现相邻计算机结点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。需要注意的是,物理层并不是指连接计算机的具体物理设备或传输介质,如双绞线、同轴电缆、光纤等,而是要使其上面的数据链路层感觉不到这些差异,这样可使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的,当然,物理层并不需要知道哪几个比特代表什么意思。物理层协议是网络物理设备之间的接口,目的是在通信设备DTE/DCE之间提供透明的二进制位流传输。这里的物理设备是指两个相邻彼此通信的设备,按ISO及CCITT的术语分别称为数据终端设备(DTE)和数据电路终端设备(DCE)。所谓 DTE 是指用户端任何产生传输用的数据设备如CRT、PC机、工作站、计算机等。所谓DCE是指在数据传输的两端负责通信的设备,它负责建立、维护和拆除物理连接,并在传输介质和DTE间进行信号转换和编码,故也常称作数据通信设备。该层设计涉及到信号电平、信号宽度、传送方式(半双工或全双工)、线路连接的建立和拆除,接插件引脚的规格和作用等问题。总的说来,物理层提供建立、维护和拆除物理链路所需的机械、电气、功能和规程特性。
2.数据链路层(DataLinkLayer)
数据链路层(Data Link Layer)是OSI模型中极其重要的一层,为网络层提供服务,它的主要功能是如何在不可靠的物理线路上进行数据的可靠传输。数据链路层向网络层提供的功能有∶为网络层提供设计良好的服务接口,如何将物理层的位组成帧,如何进行差错处理以及如何进行流量控制等。
(1)成帧。
为了向网络层提供服务,数据链路层必须使用物理层提供给它的服务。物理层的工作是进行原始位流传输,不能保证位流无差错。数据链路层为保证数据的可靠传输,将数据组装成帧,按顺序传送各帧。
帧是用来移动数据的结构包,它不仅包括原始(未加工)数据,还包括发送方和接收方的网络地址以及纠错和控制信息,地址信息确定帧将发送到何处,纠错和控制信息确保帧无差错到达。数据链路层把来自物理层的位流形式的数据组装成帧,发送到上层(网络层);同时,把来自上层(网络层)的帧,拆分为位组,转发到物理层。把位流分成帧,常用的方法有以下几种
①字符计数法。
②带字符填充的首尾界符法。③带位填充的首尾标志法。④物理层编码违例法。
关于位流分成帧,很多数据链路层协议通过把字符计数法与其他方法相结合来提高可靠性。
(2)差错处理。数据链路层为了保证数据的可靠传输,必须提供差错控制功能。常采用的方法包括以下几种∶
①数据接收方向数据发送方提供反馈信息,协议要求接收方发回特殊的控制帧,作为数据接收肯定或否定的确认。如果发送方收到肯定确认,则知道发送正确,不需要重传,如果接收到否定确认,表示发送出了差错,发送方将相应的帧进行重传。
②计时器,当发送方发出一帧时,启动计时器,在一定时间间隔内,如果帧被正确接收并返回确认帧,计时器清零,如果所传出的帧或者确认信息被丢失,计时器发出超时信号,提醒发送方可能出现了问题,将此帧进行重传。为了避免将同一帧多次传送给网络层,通常对发出的帧进行编号,接收方通过序号辨别是重复帧还是新帧。
(3)流量控制。
数据链路层要解决的另一个问题是如何防止高速发送方的数据把低速接收方“淹没”。当发送方在负载较轻的机器上运行,而接收方在负载较重的机器上运行,容易出现“淹没”现象。解决办法是提供流量控制来限制发送方所发出的数据流量,使其发送速率不要超过接收方能处理的速率,其中一种流量控制机制称为“滑动窗口协议”。
3. 网络层(Network Layer)
数据链路层协议只能解决相邻节点间的数据传输问题,而不能解决两个主机之间的数据传输问题,因为两个主机之间的通信通常要包括许多段链路,涉及链路选择、流量控制等问题。当通信的双方经过两个或更多的网络时,还存在网络互联问题。网络互联也是网络层要研究的问题。
网络层(Network Laver)是通信子网与用户资源子网之间的接口,也是高、低层协议之间的界面层。它涉及的是将本地端发出的分组经各种途径送到目的端,而从本地端至目的端可以经过许多中间节点,所以网络层是控制通信子网、处理端对端数据传输的最底层。网络层的主要功能是路由选择、流量控制、传输确认、中断、差错及故障的恢复等。当本地端与目的端不处于同一网络中时,网络层将处理这些差异。
(1)网络层的主要功能。
网络层的主要功能是支持网络连接的实现,包括对点到点结构的网络连接,由具有不同特性的子网所支持的网络连接等。网络层的具体功能如下∶
①建立和拆除网络连接。指利用数据链路层提供的数据链路连接,构成两个传输实体间的网络连接,网络连接可有若干个通信子网所支持的网络连接等。
②分段和组块。为了提高传输效率,当数据单元太长时,可对它们进行分段,也可将几个较短的数据单元组成块后一起传输。无论哪种情况,都必须保留网络服务数据单元的分界符。
③有序传输和流量控制。当传输实体需要有序传输网络服务数据单元时,网络层将在指定的网络连接上用有序传送的方法来实现。利用网络层提供的流量控制服务可对网络连接上传输的网络服务数据单元进行有效地控制,以免发生信息“堵塞”或“拥挤”现象。
④路由选择和中继。本功能是在两个网络地址之间选择一条适当的路由。
⑤差错的检测和恢复。差错检测利用数据链路层的差错报告,以及其他的差错检测能力来检测经网络连接所传输的数据单元是否出现异常情况。恢复功能指从被检测到的出错状态中解脱出来。
(2)网络层提供的服务。OSI参考模型中规定,网络层中提供无连接和面向连接两种类型的服务,也称为数据报服务和虚电路服务。
①数据报服务。多用于传输短报文的情况,一个或几个报文分组足以容纳所传送的数据信息。每个分组称为一个数据报。数据报服务类似于寄信或发电报,每封信或每个电报都可以单独发送给对方。每个数据报携带有足够的信息,可以从源端送到目的端。经过中间节点时,要进行存储转发,在整个传输过程中,不必建立连接,但在中间节点要为每个数据报作路由选择。如果数据报在传输过程中出错或丢失,网络将向源端发出一个“未发送成功指示”,通知源端重发。
②虚电路服务。虚电路是在数据依次传送开始前,由发送方和接收方通过呼叫与确认的过程建立起来的。与实际的电路交换不同,虚电路是一种非专用的逻辑连接,是动态的,而电路交换则采用专用路由。
虚电路服务在传送数据时,发送方首先提供自己和接收方完整的网络地址,建立虚申路,然后按顺序传送报文分组,通信完成后拆除虚电路。虚电路一经建立就要赋予虚电路号,它反映分组的传送通道。这样报文分组中就不必再注明全程地址,相应地缩短了信息量。
4.传输层(transport layer)
传输层是资源子网与通信子网的接口和桥梁,它完成了资源子网中两节点间的直接逻辑通信,实现了通信子网端到端的可靠传输。传输层下面的物理层、数据链路层和网络层均属于通信子网,可完成有关的通信处理,向传输层提供网络服务;传输层上面的会话层、表示层和应用层完成面向数据处理的功能,并为用户提供与网络之间的接口。因此,传输层在7 层网络模型中起到承上启下的作用,是整个网络体系结构中的关键部分,是唯一负责总体数据传输和控制的一层。传输层的两个主要功能是∶
①提供可靠的端到端的通信。
②向会话层提供独立于网络的运输服务。
由于通信子网向传输层提供通信服务的可靠性有差异,所以无论通信子网提供的服务可靠性如何,经传输层处理后都应向上层提交可靠的、透明的数据传输。为此,传输层协议要复杂得多,以适应通信子网中存在的各种问题。也就是说,如果通信子网的功能完善、可靠性高,则传输层的任务就比较简单;若通信子网提供的质量很差,则传输层的任务就复杂,以弥补会话层所要求的服务质量和网络层所能提供的服务质量之间的差别。传输层涉及以下几个概念。
(1)传输服务。传输服务包括的内容有∶服务的类型、服务的等级、数据的传输、用户的接口、连接管理、快速数据传输、状态报告、安全保密等。
(2)服务质量。服务质量(Quality of Service,QOS)是指在传输两节点之间看到的某些传输连接的特征,是传输层性能的度量,反映了传输质量及服务的可用性。
服务质量可用一些参数来描述,如连接建立延迟、连接建立失败、吞吐量、输送延迟、残留差错率、连接拆除延迟、连接拆除失败概率、传输失败率等。
(3)传输层协议等级。传输层的功能是要弥补从网络层获得的服务和向传输服务用户提供的服务之间的差距,它所关心的是提高服务质量,包括优化成本。
传输层的功能按级别划分,可以分为5个协议级别∶级别0(简单级)、级别1(基本差错恢复级)、级别2(多路复用级)、级别3(差错恢复和多路复用级)和级别4(差错检测和恢复级)。服务质量划分得较高的网络,仅需要较简单的协议级别;反之,服务质量划分得较低的网络,需要较复杂的协议级别。
(4)传输服务原语。服务在形式上是一组原语(Primitive)的描述。原语被用来统治服务提供者采取某些行动,或报告某同层实体已经采取的行动。在 OSI参考模型中,服务原语划分为四种类型。
①请求(Requeat)∶用户利用它要求服务提供者提供某些服务,如建立连接或发送数据等。
②指示(Indication)∶服务提供者执行一个请求以后,用指示原语通知收方的用户实体,告知有人想要与之建立连接或发送数据等。
③响应(Reaponae)∶收到指示原语后,利用响应原语向对方作出反应;例如,同意或不同意建立连接等。④确认(Confirm)∶请求对方可以通过接收确认原语来获悉对方是否同意接受请求。
5. 会话层(session layer)
会话层(Session Layer)的主要功能是在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。
在会话层和传输层都提到了连接,那么会话连接和传输连接到底有什么区别呢?会话连接和传输连接之间有三种关系∶一对一关系,即一个会话连接对应一个传输连接;一对多关系,一个会话连接对应多个传输连接;多对一关系,多个会话连接对应一个传输连接。
会话过程中,会话层需要决定使用全双工通信还是半双工通信。如果采用全双工通信,则会话层在对话管理中要做的工作就很少;如果采用半双工通信,会话层则通过一个数据令牌来协调会话,保证每次只有一个用户能够传输数据。当会话层建立一个会话时,先让一个用户得到令牌,只有获得令牌的用户才有权进行发送。如果接收方想要发送数据,可以请求获得令牌,由发送方决定何时放弃。一旦得到令牌,接收方就转变为发送方。
在进行大量的数据传输时,例如正在下载一个100MB的文件,当下载到95MB时,网络断线了,为了解决这个问题,会话层提供了同步服务,通过在数据流中定义检查点(Checkpoint)来把会话分割成明显的会话单元。当网络故障出现时,从最后一个检查点开始重传数据。
常见的会话层协议有∶结构化查询语言(SQL)、远程进程呼叫(RPC),X-Windows系统、Apple Talk 会话协议、数字网络结构会话控制协议(DNA SCP)等。
6. 表示层(presentation layer)
OSI模型中,表示层(Presentation Layer)以下的各层主要负责数据在网络中传输时不出错。但数据的传输没有出错,并不代表数据所表示的信息不会出错。表示层专门负责有关网络中计算机信息表示方式的问题。表示层负责在不同的数据格式之间进行转换操作,以实现不同计算机系统间的信息交换。
如图3.5所示,基于ASCII码的计算机将信息HELLO的ASCII编码发送出去。但因为接收方使用 EBCDIC 编码,所以数据必须加以转换。因此,传送的是十六进制字符48454C4C4F,接收到的却是C8CSD3D3D6。
除了编码外,还包括数组、浮点数、记录、图像、声音等多种数据结构,表示层用抽象的方式来定义交换中使用的数据结构,并且在计算机内部表示法和网络的标准表示法之间进行转换。
表示层还负责数据的加密,以在数据的传输过程中对其进行保护。数据在发送端被加密,在接收端解密,使用加密密钥来对数据进行加密和解密。
表示层负责文件的压缩,通过算法来压缩文件的大小,降低传输费用。例如,假设要传输一个包含n个字符的文件,采用EBCDIC编码,那就有8n个比特位。如果会话层重新定义代码,用0代表A,1代表B,以此类推,一直到25代表Z,那么用5位(存储0~25所需要的最少位数)就可以表示一个大写字母。这样一来,实际上可以少传送38%的比特位。
7. 应用层
应用层是0SI/RM的最高层,它是计算机网络与最终用户间的接口,它包含了系统管理员管理网络服务所涉及的所有问题和基本功能。它在 OSI/RM 第6层提供的数据传输和数据表示等各种服务的基础上,为网络用户或应用程序提供完成特定网络服务功能所需要的各种应用协议。
常用的网络服务包括文件服务(FTP)、电子邮件(E-mail)、打印服务、集成通信服务、目录服务、网络管理服务、安全服务、多协议路由与路由互联服务、分布式数据库服务及虚拟终端服务等。网络服务由相应的应用协议实现,不同的网络操作系统提供的网络服务在功能、用户界面、实现技术、硬件平台支持及开发应用软件所需的应用程序接口API等方面均存在较大差异,而采纳的应用协议也各具特色,因此,应用协议的标准化非常重要。
2.网络层
网络层(Internet layer)与OSI参考模型的网络层相当,是整个TCP/IP体系结构的关键部分。网络层的主要功能如下∶
(1)处理来自传输层的分组发送请求。在收到分组发送请求之后,将分组装入IP数据报,填充报头,选择好发送路径,然后将数据报发送到相应的网络输出端。
(2)处理接收的数据报。在接收到其他主机发送的数据报之后,检查目的地址,如需要转发,则选择发送路径,转发出去;如目的地址为本结点IP地址,则除去报头,将分组交送传输层处理。
(3)处理互联的路径选择、流量控制与拥塞问题。
3.传输层
在TCP/IP体系结构中,传输层(transport layer)是第三层,也称为应用程序到应用程序层,与OSI的传输层类似,主要负责应用程序到应用程序之间的端对端通信。传输层的主要功能是在互联网中源主机与目的主机的对等实体间建立用于会话的端对端连接。传输层主要有两个协议,即传输控制协议(TCP)和用户数据报协议(UDP)。
4. 应用层
应用层(application layer)是TCP/IP体系结构中的最高层,应用层包括了所有高层协议,并且总是不断有新的协议加入。(1)传输服务。传输服务包括的内容有∶服务的类型、服务的等级、数据的传输、用户的接口、连接管理、快速数据传输、状态报告、安全保密等。
(2)服务质量。服务质量(Quality of Service,QOS)是指在传输两节点之间看到的某些传输连接的特征,是传输层性能的度量,反映了传输质量及服务的可用性。
服务质量可用一些参数来描述,如连接建立延迟、连接建立失败、吞吐量、输送延迟、残留差错率、连接拆除延迟、连接拆除失败概率、传输失败率等。
(3)传输层协议等级。传输层的功能是要弥补从网络层获得的服务和向传输服务用户提供的服务之间的差距,它所关心的是提高服务质量,包括优化成本。
传输层的功能按级别划分,可以分为5个协议级别∶级别0(简单级)、级别1(基本差错恢复级)、级别2(多路复用级)、级别3(差错恢复和多路复用级)和级别4(差错检测和恢复级)。服务质量划分得较高的网络,仅需要较简单的协议级别;反之,服务质量划分得较低的网络,需要较复杂的协议级别。
(4)传输服务原语。服务在形式上是一组原语(Primitive)的描述。原语被用来统治服务提供者采取某些行动,或报告某同层实体已经采取的行动。在 OSI参考模型中,服务原语划分为四种类型。
①请求(Requeat)∶用户利用它要求服务提供者提供某些服务,如建立连接或发送数据等。
②指示(Indication)∶服务提供者执行一个请求以后,用指示原语通知收方的用户实体,告知有人想要与之建立连接或发送数据等。
③响应(Reaponae)∶收到指示原语后,利用响应原语向对方作出反应;例如,同意或不同意建立连接等。
④确认(Confirm)∶请求对方可以通过接收确认原语来获悉对方是否同意接受请求。
5. 会话层(session layer)
会话层(Session Layer)的主要功能是在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。
在会话层和传输层都提到了连接,那么会话连接和传输连接到底有什么区别呢?会话连接和传输连接之间有三种关系∶一对一关系,即一个会话连接对应一个传输连接;一对多关系,一个会话连接对应多个传输连接;多对一关系,多个会话连接对应一个传输连接。
会话过程中,会话层需要决定使用全双工通信还是半双工通信。如果采用全双工通信,则会话层在对话管理中要做的工作就很少;如果采用半双工通信,会话层则通过一个数据令牌来协调会话,保证每次只有一个用户能够传输数据。当会话层建立一个会话时,先让一个用户得到令牌,只有获得令牌的用户才有权进行发送。如果接收方想要发送数据,可以请求获得令牌,由发送方决定何时放弃。一旦得到令牌,接收方就转变为发送方。
在进行大量的数据传输时,例如正在下载一个100MB的文件,当下载到95MB时,网络断线了,为了解决这个问题,会话层提供了同步服务,通过在数据流中定义检查点(Checkpoint)来把会话分割成明显的会话单元。当网络故障出现时,从最后一个检查点开始重传数据。
常见的会话层协议有∶结构化查询语言(SQL)、远程进程呼叫(RPC),X-Windows系统、Apple Talk 会话协议、数字网络结构会话控制协议(DNA SCP)等。
6. 表示层(presentation layer)
OSI模型中,表示层(Presentation Layer)以下的各层主要负责数据在网络中传输时不出错。但数据的传输没有出错,并不代表数据所表示的信息不会出错。表示层专门负责有关网络中计算机信息表示方式的问题。表示层负责在不同的数据格式之间进行转换操作,以实现不同计算机系统间的信息交换。
如图3.5所示,基于ASCII码的计算机将信息HELLO的ASCII编码发送出去。但因为接收方使用 EBCDIC 编码,所以数据必须加以转换。因此,传送的是十六进制字符48454C4C4F,接收到的却是C8CSD3D3D6。除了编码外,还包括数组、浮点数、记录、图像、声音等多种数据结构,表示层用抽象的方式来定义交换中使用的数据结构,并且在计算机内部表示法和网络的标准表示法之间进行转换。
表示层还负责数据的加密,以在数据的传输过程中对其进行保护。数据在发送端被加密,在接收端解密,使用加密密钥来对数据进行加密和解密。
表示层负责文件的压缩,通过算法来压缩文件的大小,降低传输费用。例如,假设要传输一个包含n个字符的文件,采用EBCDIC编码,那就有8n个比特位。如果会话层重新定义代码,用0代表A,1代表B,以此类推,一直到25代表Z,那么用5位(存储0~25所需要的最少位数)就可以表示一个大写字母。这样一来,实际上可以少传送38%的比特位。
7. 应用层
应用层是0SI/RM的最高层,它是计算机网络与最终用户间的接口,它包含了系统管理员管理网络服务所涉及的所有问题和基本功能。它在 OSI/RM 第6层提供的数据传输和数据表示等各种服务的基础上,为网络用户或应用程序提供完成特定网络服务功能所需要的各种应用协议。
常用的网络服务包括文件服务(FTP)、电子邮件(E-mail)、打印服务、集成通信服务、目录服务、网络管理服务、安全服务、多协议路由与路由互联服务、分布式数据库服务及虚拟终端服务等。网络服务由相应的应用协议实现,不同的网络操作系统提供的网络服务在功能、用户界面、实现技术、硬件平台支持及开发应用软件所需的应用程序接口API等方面均存在较大差异,而采纳的应用协议也各具特色,因此,应用协议的标准化非常重要。
