计算机网络系统通常使用分层体系结构,即整个计算机通信任务的完成由一组彼此功能相关的模块来实现,各模块之间呈现明显的层次结构,每一层实现一组预先定义的任务功能,并且与相邻层有特定的接口定义,低层通过层间接口向它的上层提供服务。而高层又是在低层提供的服务基础上实现高一级的服务,使得每一层的实现恰恰相当于一个“黑盒子”,可任意修改、甚至完全重写某一层功能,但唯一要求是保持固定一致的接口定义,从而确保与相邻层之间的相互操作不会发生改变。
在同层次间的通信进程中,一方计算机A的某层与另一方计算机B的相应层进行“谈话”,其中,两台计算机中的对应层称为同层实体或同等进程,两个同层实体之间通信时所使用的“语言”称为协议(Protocol)。通常我们依据协议所在的层次来对协议进行分类的。图2-30描述了在对等层上完成同层实体之间的逻辑信息交换时详细的工作过程。
数据在逐层向下传递,直至最底层。最底层总是物理介质,可以使用电缆(或者是用无线电发送器)把二进制信息传递到另一台计算机。当数据到达另一台计算机时,则逐层向上传递,直至对等层实体。所有现代计算机网络结构基本上都是以这样方式工作的。
图2-30 分层体系结构
计算机在通信时所使用的分层协议总称为协议栈(Protocol Stack),为了完成同层实体间的通信任务,所有计算机必须采用相同的协议栈。如果两台采用不同协议栈的计算机需要互相通信时,需要使用网关来完成协议的互相转换。类似地,通过定义相邻层之间的功能和接口,完整的协议栈就可以移植到不同的硬件或者不同的操作系统上。事实上,可以通过硬件来实现某些层(主要基于传输速率方面考虑),通过软件实现其他层(主要基于易于升级方面考虑)。
1.网络协议
在计算机网络中,为了实现各种服务功能,各实体之间经常要进行各种通信和对话,所以协议是计算机网络中的一个极其重要的概念。这里的实体是指各种应用程序、文件传送软件、数据库管理系统、电子邮件系统及终端等。例如,对于不相容的终端,除了需变换字符集字符外,还有其他的特性,如显示格式、行长、行数、屏幕滚动方式等也需要作变换,这样的协议通常称为虚拟终端协议。又如,通信双方常需要约定如何开始通信,这也是一种协议。所以协议是通信双方为了实现通信所进行的约定或所作的对话规则。
一般来说,协议由语义、语法和定时关系三部分组成。语义规定通信双方彼此“讲什么”,即确定协议元素的类型,例如规定通信双方要发出什么控制信息、执行的动作和返回的应答。语法规定通信双方彼此“如何讲”,即确定协议元素的格式,如数据和控制信息的格式。定时关系规定事件执行的顺序,即确定通信过程通信状态的变化,通常可以用状态图来描述,例如规定正确的应答关系,就属于定时关系的问题。
在计算机网络中,需要连接的计算机设备不可能是出自同一厂商的同一产品,而不同的厂商,甚至同一厂商生产的不同机种采用的数据交换方式都不尽相同。要把不同厂商、不同型号的计算机设备连接起来,就需要有一套国际性的标准来统一这些格式。网络标准能确保不同的设备厂商的产品通用,这意味着顾客可以选择各种网络产品来设计最合适的网络,而不必局限于某一厂商的产品。世界上一些主要的标准化组织在这方面做了卓有成效的工作,研究和制定了一系列有关数据通信和计算机网络的国际标准。国际标准化组织(ISO)的开放系统互连(OSI)参考模型、国际电信联盟(ITU),原名为国际电报电话咨询委员会(CCITT)的X系列和V系列建议书、美国电气与电子工程师学会(IEEE)的IEEE802局域网协议标准以及美国电子工业协会(EIA)的FS系列标准等都是著名的国际标准。这些标准的制定为计算机通信和网络技术的应用和发展起到了积极的推动作用。
2.开放系统互连(OSI)参考模型
1977年国际标准化组织(International Standard Organization,ISO)成立了专门机构研究网络体系结构与网络协议的国际标准化问题,经过多年卓有成效的工作,提出了一个试图使各种计算机在世界范围内互连成网络的标准框架,即著名的开放系统互连参考模型(Open System Interconnection/Reference Model,OSI/RM),简称OSI。“开放”是指只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信;而“系统”是指在现实的系统中与互连有关的各部分。直到1983年才形成开放系统互连参考模型的正式文件,即著名的ISO7498国际标准,这就是我们平常说的OSI参考模型,也称为OSI七层模型。
由于ISO的权威性,使OSI/RM成为广大厂商努力遵循的标准,它采用分层体系结构描述通信功能,将网络通信任务划分为7个功能层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层以及应用层,如图2-31所示,每一层利用下一层所提供的服务实现该层功能,并向上一层提供服务。
在OSI/RM中,系统A的用户向系统B的用户传送数据时,首先系统A的用户把需要传输的信息(data)告诉系统A的应用层,并发布命令,然后由应用层加上应用层的控制头信息送到表示层,表示层再加上表示层的控制头信息送往会话层,会话层再加上会话层的控制头信息送往传输层。依此类推,数据报文到达数据链路层,数据链路层加上控制头信息和尾信息,形成数据帧,最后送往物理层,物理层不考虑信息的实际含义,以比特流(0、1代码)传送到物理信道(传输介质),到达系统B的物理层,系统B将物理层所接收的比特流数据送往数据链路层,以此向上层传送,直到传送到应用层,告诉系统B的用户。这样看起来好像是对方应用层直接发送来的信息,但实际上相应层之间的通信是虚通信,这个过程可以用一个简单的例子来描述。有一封信从最高层向下传,每经过一层就包上一个新的信封。包有多个信封的信传送到目的站后,从第一层起,每层拆开一个信封后就交给它的上一层。传到最高层后,取出发信人所发的信交给收信的用户。
图2-31 OSI参考模型
OSI/RM中的低三层(物理层、数据链路层和网络层)主要提供电信传输能力,以点到点通信为主,因此应归入计算机网络中的通信子网范畴,其协议由专门的形象识别系统(VISI)通信芯片实现,直接做到网卡上。而OSI/RM中的高三层(会话层、表示层和应用层)以提供应用程序处理功能为主,所以应归入资源子网的范畴。传输层起着衔接上三层和下三层的作用。OSI/RM的高层协议(包括传输层协议),基本上仍由软件实现,被网络操作系统所控制。下面依次列出各层简要描述。
(1)物理层 物理层是OSI/RM的最低层,它建立在通信介质基础上,是网内设备间的物理接口,直接实现数字比特的物理传输。物理层虽然处于最低层,却是整个开放系统的基础。
物理层主要规定了标准的机械、电气、功能和规程特性,以便在网络上各站点的数据链路层之间建立、维持和拆除物理连接。机械特性包括连接器的型号种类、插头排列方式、连接电缆的长度及导线数目等。电气特性包括数据传输速率、信号电平及状态等。功能和规程特性包括一组接口电路的名称和功能、数据交换的一组等待应答等操作序列。
物理层传输介质包括架空明线、平衡电缆、光纤、无线信道等。在计算机网络中应用的物理电缆主要有同轴电缆、双绞线和光纤,而无线信道则主要是自由空间。计算机数据通信信道不仅需要传输介质,还需要互连的设备,互连设备是指DTE和DCE间的互连设备。DTE即数据终端设备,又称物理设备,如计算机、终端等都包括在内;DCE即数据通信设备或电路连接设备,如调制解调器等,数据传输通常经过DTE→DCE,再经过DCE→DTE的路径。互连设备是指将DTE、DCE连接起来的装置,如各种插头、插座,LAN中的各种粗细同轴电缆、T型接头、插头、接收器、发送器、中继器等都属于物理层的媒体和连接器。
物理层的一些标准和协议早在ISO/TC97/C16分技术委员会成立之前就已制定,并投入使用,ISO后来也制定了一些标准,并采用了原来标准中的一些已有的成果,下面是一些重要的物理层标准。
ISO 2110:1989《信息技术 数据通信 25插针DTE/DCE接口连接器和插针分配》。它与EIA/RS-232-C基本兼容。
ISO/IEC 2593:2000《信息技术 系统间远程通信和信息交换 34插针DTE/DCE接口连接器的配合尺寸和插针分配》。
ISO 4092:1989《信息技术 数据通信 37插针DTE/DEC接口连接器和插针分配》。它与EIA/RS-449兼容。
CCITT V.24称为DTE和DCE之间的接口电路定义表,其功能与EIA/RS-232-C和EIA/RS-449兼容于100序列线上。
(2)数据链路层 传输介质是长期的,连接是有生存期的,在连接生存期内,收发两端可以进行不等的一次或多次数据通信,每次通信都要经过建立通信联络和拆除通信联络两过程,这种建立起来的数据收发关系就叫作数据链路。而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错,这就是数据链路层的基本任务,即数据链路的建立和拆除,对数据的检错和纠错。(www.xing528.com)
数据链路层规定了信息的格式、信息的成帧和拆帧方式,将物理层的比特位(0和1)数据组成适合于正确传输的帧形式的数据块,使得高层不必考虑物理介质的具体特性。数据链路层还提供差错检测服务,如果发送方发送一帧数据后,在一定时限内没有收到接收方的确认响应,就重发该帧。另外,数据链路层还提供流量控制服务,以保证发送方不致因为速度快而导致接收方不能正确接收。常用的数据链路层标准主要有:
ISO 1745:1975《信息处理 数据通信系统基本模式控制程序》。这是一种面向字符的标准,利用10个控制字符完成链路的建立、拆除和数据交换,以及对帧的收发情况和差错恢复等任务。ISO 1155、ISO 1177、ISO 2626和ISO 2629等标准的配合使用,可形成多种链路控制和数据传输方式。
ISO/IEC 3309:1993《信息技术 系统间远程通信和信息交换 高级数据/链路控制(HDLC)规程帧结构,它和ISO 4335:1993《信息技术 系统间远程通信和信息交换 高级数据链路控制(HDLC)规程 规程要素》和ISO 7809:1993《信息技术 系统间远程通信和信息交换 高级数据链路控制(HDLC)规程 规程类别》都是为面向比特的数据传输控制而制定的,常把这三个标准组合称为高级数据链路控制规程。
ISO/IEC 7776:1995《信息技术 系统间远程通信和信息交换 高级数据链路控制规程 与X.25LAPB兼容的DTE数据链路规程的描述》。它与CCITT X.25LAB(平衡型链路访问规程)相兼容。
独立的链路产品中最常见的是网卡,此外还有网桥、调制解调器等。数据链路层本质上是将不可靠的传输介质变成可靠的传输通路,提供给网络层。
(3)网络层 网络层是通信子网的最高层,为多个节点传输层之间建立、维持和释放网络连接,实现传输层之间端到端透明的数据传输。
网络层除了传输数据外,还要负责解决路由选择。在连机系统和线路交换的环境中,网络层的功能没有太大意义。当数据终端增多时,它们之间有中继设备相连,此时会出现一台终端与多台终端通信的情况,这就产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者称为寻径。当收发双方的计算机不在同一网络中时,两个计算机之间的节点将负责为信息包提供路由,这一过程称为包交换。它通过存储-转发机制来实现。每个中间节点收到包后,先将包存储起来,等到信道可用时再进行包的前向转发。包的路由信息可以是静态的,也可以是动态的。在静态系统下,用户在存放有路由信息的工作站中,手工地修改路由信息,而在动态系统下,网络通过特殊的路由协议,自动建立并维护路由信息。路由协议如Novell公司的RIP(Routing Information Protocol,路由信息协议),因特网的OSPF(Open Shortest Path First,开放最短路径优先)等。此外,网络层还负责解决死锁、拥塞控制和网际互连等问题,这对于维护网络通信的高效率十分重要。
网络层向传输层提供的通信服务分虚电路和数据报两类。虚电路服务是指在两个主机通信之前网络层负责建立一条通路,称为虚电路,虚电路一经建立就只为某一对主机服务,数据传输结束,就拆除该虚电路。数据报服务是直接为传输层传送报文,每个报文分组都附有目的地址、源地址、顺序号等信息。无论是虚电路还是数据报,从源到目的地的路由选择,都是由网络层解决的,在网际互连中,非同种协议有不同的报文格式和流量控制规则,也由网络层进行转换。
网络层的一些主要标准有:ISO/IEC 8208:2000《信息技术 数据通信 数据终端设备用X.25包级协议》、ISO/IEC 8348:1996《信息技术 开放系统互连 网络服务定义》、ISO/IEC 8473-1:1998《信息技术 提供无连接方式网络服务的协议:协议规范》、ISO/IEC 8072:1996《信息技术 开放系统互连 传输服务定义》、ISO/IEC 8073:1997《信息技术 开放系统互连 提供连接方式传输服务的协议》。除上述标准外,还有许多标准,这些标准都只是解决网络层的部分功能,所以往往需要在网络层中同时使用几个标准才能完成整个网络层的功能。由于面对的网络不同,网络层将会采用不同的标准组合。
在具有开放特性的网络中的数据终端设备,都要配置网络层的功能。现在市场上销售的网络硬设备主要有网关和路由器。
(4)传输层 传输层是资源子网与通信子网的界面和桥梁,是整个协议层次结构中最核心的一层,它只存在于端口开放系统中,是介于低三层通信子网系统和高三层之间的一层,也是源端到目的端对数据传送进行控制从低到高的最后一层。传输层具有数据通信的缓冲作用,当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。
传输层使用网络层的路由选择以及网际服务,它的作用是从会话层接收数据,数据的单元是段,若数据较长,则把它们划分为较小的单元,再传送到网络层,并确保到达对方的各段信息正确无误。正是这一层使得用户可以选择从网络(即网络层)得到几种不同质量(和代价)的服务,执行端到端差错控制、流控制和顺序控制功能,管理多路复用等。
传输层通常提供两类服务,面向连接服务和无连接服务。面向连接,就是在发送站和接收站之间建立一条虚电路,这条虚电路类似于电话系统中的两个通话实体之间的连接。面向连接的优势在于,每组数据无需在抵达接收站之前分别进行路由选择,在传输大批数据时就会使效率大为提高,其不足之处在于建立会话时,必须首先建立一条固定的连接,而在会话结束时,又必须释放该连接,对于较小数据量而言,就必须考虑由此而产生的开销。传输层提供的无连接服务类似于基本网络层协议所得供的服务,但作为传输层协议,必须负责实现端到端通信,例如Internet协议栈中的UDP(User Datagram Protocol,用户数据报协议)。
传输层通过监视接收数据的次序,向发送方提供确认响应等来保证通信的可靠性,此外传输层还提供流量控制,防止因发送方发送过快而导致接收方无法正常接收。传输层可以实现数据的多路复用,在一个公用通信信道中传送多路信息。对于具有较高优先级的信息,传输层能够将数据分段后在多个通信信道中传送。相应地,如果通信信道的成本较高,传输层能够将多块数据封装在一个段中,从而最有效地利用该信道。在上述例子中,接收站必须对数据进行重组,然后再提交给高层。
常用的传输层标注有两种:ISO/IEC 8072(传输服务定义)和ISO/IEC 8073(提供连接方式传输服务的协议)。
(5)会话层 会话层是在用户与用户的连接(技术上称为两个表示层的进程)之间建立起逻辑通路,两个应用进程之间建立起一次联络就称为一次会话。会话层的职责就是,使得应用进程之间能够建立和维护会话连接,即当会话不可靠时可进行断开、检查、再接通的联络服务。这一层往往放在操作系统中。会话层主要的功能是对话管理、数据流同步和重新同步。要完成这些功能,需要由大量的服务单元功能组合,已经制定的功能单元有几十种。
会话层能够控制会话的方向,如果必要的话,可强制应用进程之间按次序完成数据交换,例如主机─终端的会话控制就是这样完成的。另外,会话层可以通知进程之间实现同步通信,具体做法是在会话双方数据流之间插入检验点,从而判断是继续会话还是进行信息重发。在进行大型文件的传输时,一次失败就意味着大量数据需要重发。因此,检验点的功能就显得十分重要。
会话层的主要标准有ISO/IEC 8236:1996《信息技术 开放系统互连 会话服务定义》和ISO/IEC 8327-1:1996《信息技术 开放系统互连 面向连接的会话协议:协议规范》(会话协议规范)。
(6)表示层 表示层的主要功能就是将数据转换成某种能被各种入网计算机及运行的应用程序所相互理解的约定格式(传输语法),提供标准的应用接口和通用的通信服务,以保证不同的计算机能相互理解。例如,IBM公司主机使用扩充二-十进制交换码(EBCDIC),而大部分个人计算机(PC)使用的是美国信息交换标准码(ASCII),在这种情况下,便需要会话层来完成这种转换。
表示层还能提供数据压缩、解压缩服务,从而可以高效、经济地利用通信信道,但这可能导致服务器、工作站的性能有所下降。此外,表示层还可以对数据加密、解密。当网络传送的“敏感”信息(如个人信贷情况、银行信息等)增多时,安全性和保密性就显得非常重要。
ISO为表示层制定的服务、协议、文本通信符方面标准主要有:ISO/IEC 8822:1994《信息技术 开放系统互连 表示服务定义》、ISO/IEC 8823-1:1994《信息技术 开放系统互连 面向连接的表示协议:协议规范》、ISO/IEC 6937:1994《信息技术 文本通信用编码字符集 拉丁字母》等。
(7)应用层 应用层是OSI/RM的最高层,建立在下面六层已提供的各类基础服务之上,直接为应用进程提供服务,其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。本层功能主要由用户或应用决定。
应用层向应用程序提供服务,这些服务按其向应用程序提供的特性分成组,并称为服务元素。有些可为多种应用程序共同使用,有些则为较少的一类应用程序使用。服务元素分为两类:公共应用服务元素(CASE)和特定应用服务元素(SASE)。CASE提供最基本的服务,它成为应用层中任何用户和任何服务元素的用户,主要为应用进程通信、分布系统实现提供基本的控制机制。SASE则要满足一些特定服务,如文件传送、访问管理、作业传送、银行事务、订单输入等。
ISO为应用层制定的标准主要有:ISO/IEC 8649:1996《信息技术 开放系统互连 联系控制服务元素服务定义》、ISO/IEC 8650-1:1996《信息技术 开放系统互连 面向连接的联控制服务元素协议:协议规范》等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。