1.5 网络协议与体系结构
1.5.1 网络体系结构的基本概念
1.5.1.1网络协议
网络协议是为网络数据交换而制定的规则、约定与标准,网络协议包含三个要素:语义、语法与时序。语义用来解释比特流的每一部分的意义;语法规定用户数据与控制信息的结构与格式,以及数据出现的顺序的意义;时序是事件实现顺序的详细说明。
计算机网络的协议的一个重要特点:协议必须将所有不利的条件事先都估计到,而不能假定将在很顺利的条件下进行通信,如“不见不散”。
1.5.1.2分层、接口与体系结构的概念
分层是人们对复杂问题处理的基本方法,人们将总体要实现的很多功能分配在不同层次中,对每个层次要完成的服务及服务要求都有明确规定,高层使用低层提供的服务时,并不需要知道低层服务的具体实现方法。
现实生活中的信件的收发系统就是一个分层的系统(如图1-17所示),从写一封信到对方收到信,是写信者、邮政部门、交通部门、收信者共同完成的。计算机网络系统和现实生活中的信件的收发系统是非常类似的,信息从一台计算机到另一台计算机也应该具有类似的结构,由不同的部门完成不同的功能,实现信息的收发,这就是分层的观点。
图1-17 计算机网络系统和现实生活信件的收发系统对比
网络协议是分层的,一台机器上的第n层与另一台机器上的第n层进行对话。通话的规则就是第n层协议。协议就是通信双方关于如何进行通信而达成一致。不同机器里包含对应层的实体叫对等进程。换言之,正是对等进程利用协议进行通信。
网络协议分层应注意如下事项:
(1)不同的系统分成相同的层次;
(2)不同系统的最低层之间存在着“物理”通信;
(3)不同系统的对等层次之间存在着“虚拟”通信;
(4)对不同系统的对等层之间的通信有明确的通信规定。
接口(interface)是同一结点内相邻层之间交换信息的连接点,同一个结点的相邻层之间存在着明确规定的接口,低层向高层通过接口提供服务,只要接口条件不变、低层功能不变,低层功能的具体实现方法与技术的变化不会影响整个系统的工作。
一个功能完备的计算机网络需要制定一整套复杂的协议集,这些网络协议是按层次结构来组织的,网络层次结构模型与各层协议的集合称为网络体系结构(network architecture)。网络体系结构对计算机网络应该实现的功能进行了精确的定义,体系结构是抽象的,而实现是指能够运行的一些硬件和软件。网络体系结构是一个广义的概念,包括物理结构、逻辑结构、软件结构,定义了网络及其组成部分的功能和各部分之间的交互功能。计算机网络体系结构采用分层对等结构。注意,网络体系结构是一个逻辑结构,而非一个具体的计算机设备或网络。
1.5.2 OSI参考模型的基本概念
20世纪70年代,此阶段各种网络发展迅速,但缺乏共享,各自为政。网络体系结构和协议标准的不统一将限制计算机网络的自身发展,因此,网络体系结构和协议必须走国际标准化的道路。
开放式系统互连(Open System Interconnection, OSI)模型的设计目的是成为一个开放的网络模型,来克服使用众多私有网络模型所带来的困难和低效性。OSI是ISO(国际标准化组织)制定的,在OSI中的“开放”是指只要遵循OSI标准,一个系统就可以与位于世界上任何地方、同样遵循同一标准的其他任何系统进行通信。
在制定计算机网络标准方面,起着很大作用的两大国际组织是:国际电报与电话咨询委员会(CCITT)和国际标准化组织(ISO)。CCITT与ISO的工作领域不同:CCITT主要是考虑通信标准的制定,ISO主要是考虑信息处理与网络体系结构。
在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最著名。为了解决不同体系结构的网络的互联问题,国际标准化组织ISO于1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model, OSI/RM)。
OSI标准制定过程中采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构办法。OSI标准中,采用的是三级抽象:体系结构(architecture),服务定义(service definition),协议说明(protocol specification)。体系结构指出了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的服务,并作为一个框架来协调和组织各层协议的制定,对网络内部结构最精炼地概括与描述。服务定义中详细地说明了各层所提供的服务,某一层的服务就是该层及其以下各层的一种能力,低层的服务是通过接口向上一层提供的,各层所提供的服务与这些服务是如何实现的无关,定义了层与层之间的接口与各层使用的原语(操作),但不涉及接口是具体实现的。协议说明精确定义应该发送什么样的信息,以及如何解释,具有最严格的约束。
OSI划分层次的原则:
(1)网中各结点都具有相同的层次;
(2)不同结点的同等层具有相同的功能;
(3)同一结点内相邻层之间通过接口通信;
(4)每层可以使用下层提供的服务,并向其上层提供服务;
(5)不同结点的同等层通过协议来实现对等层之间的通信。
这个模型把网络通信的工作分为7层(如图1-18所示),它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(Presentation Layer)和应用层(Application Layer)。第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。
图1-18 OSI参考模型
对等层通信的实质是对等层实体之间虚拟通信,下层向上层提供服务,实际通信在最底层完成在发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递。OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU, Protocol Data Unit)。而传输层及以下各层的PDU另外还有各自特定的名称:传输层——数据段(Segment),网络层——分组(数据报)(Packet),数据链路层——数据帧(Frame),物理层——比特(Bit)。
通过OSI层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机A上的应用程序要将信息发送到计算机B的应用程序,则计算机A中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层(第一层)。在物理层,数据被放置在物理网络媒介中并被发送至计算机B。计算机B的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机B的应用层。最后,计算机B的应用层再将信息传送给应用程序接收端,从而完成通信过程。下面图1-19说明了这一过程。
图1-19 计算机A与计算机B的通信
OSI的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的OSI层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。
对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个OSI层来说并不是必需的。
当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层之间的通信信息。头、尾以及数据是相关联的概念,它们取决于分析信息单元的协议层。例如,传输层头包含了只有传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对于网络层,一个信息单元由第三层的头和数据组成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一OSI层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为“封装”。
例如,如果计算机A要将应用程序中的某数据发送至计算机B,数据首先传送至应用层。计算机A的应用层通过在数据上添加协议头来和计算机B的应用层通信。所形成的信息单元包含协议头、数据、可能还有协议尾,被发送至表示层,表示层再添加为计算机B的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机B的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机B中的物理层收到信息单元并将其传送至数据链路层;然后计算机B中的数据链路层读取计算机A的数据链路层添加的协议头中的控制信息;然后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾并去除,再将剩余信息发送至上一层。应用层执行完这些动作后,数据就被传送至计算机B中的应用程序,这些数据和计算机A的应用程序所发送的完全相同。
一个OSI层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服务帮助一OSI层与另一计算机系统的对应层进行通信。一个OSI模型的特定层通常是与另外三个OSI层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机A的数据链路层应与其网络层、物理层以及计算机B的数据链路层进行通信。
1.5.3 OSI参考模型各层的功能
1.5.3.1 物理层(Physical Layer)
物理层规定通信设备的机械、电气、功能和规程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE(Data Terminal Equipment,数据终端设备)和DCE(Data Circuit-terminating Equipment,数据电路端接设备)之间各个线路的功能;规程特性定义了利用信号线进行比特流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE和DCE双方在各电路上的动作系列。DTE是具有一定的数据处理能力以及发送和接收数据能力的设备,如一台计算机或一个终端,或各种的I/O设备。DCE是数据处理设备和传输线路之间的一个中间设备,其作用就是在DTE和传输线路之间提供信号变换和编码的功能,并且负责建立、保持和释放数据链路的连接,如与模拟电话线路相连接的调制解调器。DCE处于通信环境内,但它和DTE均属于用户设施,用户环境只包括DTE。DTE和DCE的接口的标准也就是的物理层协议。
在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
物理层的主要功能:
(1)为数据端设备提供传送数据的通路。数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接。所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路。
(2)传输数据。物理层要形成适合数据传输需要的实体,为数据传送服务。一是要保证数据能在其上正确通过;二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞。传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要。
(3)完成物理层的一些管理工作。
总之,物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指连接计算机的具体的物理设备或具体的传输媒体。物理层的作用是要尽可能地屏蔽掉计算机网络中的物理设备和传输媒体的种类的差异,使物理层上面的数据链路层感觉不到这些差异,数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。用于物理层的协议也常称为物理层规程(procedure),其实物理层规程就是物理层协议。
1.5.3.2 数据链路层(Data Link Layer)
数据链路层在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错或重发等。
在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能(有些协议可以省略其中的一些):
(1)数据链路的建立、维持和释放就叫做链路管理;
(2)帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界。帧定界是指收方应当能从收到的比特流中准确地区分出一帧的开始和结束在什么地方。帧定界也可称为帧同步;
(3)顺序控制。指对帧的收发顺序的控制;
(4)差错检测和恢复。还有链路标识,流量控制等等。差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测。各种错误的恢复则常靠反馈重发技术来完成;
一类是前向纠错,即收方收到有差错的数据帧时,能够自动将差错改正过来。这种方法均开销较大,不大适合于计算机通信。
另一类是差错检测,即收方可以检测出收到的帧有差错(但并不知道是哪几个比特错了)。当检测出有差错的帧时就立即将它丢弃,但接下去有两种选择:一种方法不进行任何处理(要处理也是由高层进行);另一种方法则是由数据链路层负责重传丢弃的帧。这两种方法都是很常用的。
(5)流量控制。发送方发送数据的速率必须使接收方来得及接收;
(6)将数据和控制信息区分开。在许多情况下,数据和控制信息处于同一帧中。应有相应的措施使收方能够将它们区分开来;
(7)透明传输。不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧出现了与某一个控制信息完全一样时,有可靠的措施,使接收方不会将它误认为是某种控制信息;
(8)寻址。必须保证每一帧都能送到正确的目的站,接收方也应知道发送方是哪个站。
1.5.3.3 网络层(Network layer)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息、源站点和目的站点的网络地址。
地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。
网络层为建立网络连接和为上层提供服务,应具备以下主要功能:
(1)路由控制。利用网络拓扑结构等网络状态,选择分组传送路径。这是网络层的主要功能。在大多数子网中,分组的整个旅途需要经过多次转发。无线广播网络是唯一的例外。
(2)拥塞控制。控制和预防网络中出现过多的分组。当到达通信子网中某一部分的分组数高于一定的阈值,使得该部分网络来不及处理这些分组时,就会使这部分以至整个网络的性能下降。这种情况称为“拥塞”。
计算机通信子网的基本任务是要保证网内分组自由无阻地畅通传送。实际上如果不加任何控制的话,分组并不是任何时候都能够畅通的,有时候网内流量会严重不均,有些节点和链路上的分组堆积,造成拥塞。严重的拥塞会无法解脱,最后会使分组完全停止流通,既送不出也输不进,称为“死锁”。所以控制流量、避免拥塞、解除死锁是计算机通信子网的又一重要任务。死锁分为直接死锁和重装死锁。直接死锁由互相占用了对方需要的资源而造成的死锁。例如两个结点A和B都有大量的分组要发往对方,但两个结点中的缓存在发送之前就已经全部被待发分组占满了。这样,当每个分组到达对方时,由于没有地方存放,只好被丢弃。发送分组的一方因收不到对方发来的确认信息,只能将发送过的分组依然保存在自己结点的缓存中。这两个结点就这样一直互相僵持着,谁也无法成功地发送出一个分组。重装死锁(reassembly deadlock)是由于路由器的缓存的拥塞而引起的重装死锁(reassembly deadlock)。到目前为止,已经提出了许多种拥塞控制算法。主要分为两大类:开环(open-loop)和闭环(closed-loop)。开环的关键在于它致力于通过良好的设计来避免拥塞出现,确保问题在一开始就不会发生,比如决定何时接受新的通信,何时丢弃分组,以及丢弃哪些分组等,它们在做出决定时不考虑当前网络的状态。设计人员试图在各种层次上使用恰当的策略来阻止拥塞出现。下表(表1-1)给出数据链路层、网络层所使用策略对拥塞的影响。
表1-1 数据链路层、网络层所使用策略对拥塞的影响
属于闭环控制的有以下几种措施:①监测网络系统以便检测到拥塞在何时、何处发生;②将拥塞发生的信息传送到可采取行动的地方;③调整网络系统的运行以解决出现的问题。
监测网络的拥塞的方法如下:
1)监测下列指标,这些指标的上升都标志着拥塞的增长:由于缺少缓存空间而被丢弃的分组的百分数;平均队列长度;超时重传的分组数;平均分组时延;分组时延的标准差等等。
2)一般在监测到拥塞发生时,要将拥塞发生的信息传送到产生分组的源站。当然,通知拥塞发生的分组同样会使网络更加拥塞。
3)另一种方法是在路由器转发的分组中保留一个比特或字段,用该比特或字段的值表示网络没有拥塞或产生了拥塞。
4)也可以由一些主机或路由器周期性地发出分组,以询问拥塞是否发生。
5)过于频繁地采取行动以缓和网络的拥塞会使系统产生不稳定的振荡。但过于迟缓地采取行动又不具有任何实用价值。因此,要采用某种折中的方法。但选择正确的时间常数是相当困难的。
拥塞控制代价:
1)首先需要获得网络内部流量分布的信息。
2)需要在结点之间交换信息和各种命令以便选择控制的策略和实施控制。这样就产生了额外开销。
3)有时需要将一些资源(如缓存、带宽等)分配给个别用户(或一些类别的用户)单独使用,这样就使得网络资源不能更好地实现共享。十分明显,在设计拥塞控制策略时,必须全面衡量得失。
注意:当提供的负载较小时,有拥塞控制的吞吐量反而比无拥塞控制时要小。
与拥塞控制容易混淆的一个概念是流量控制。流量控制的作用是保证发送方不会以高于接收方能承受的速率传输数据,一般涉及到接收方向发送方发送反馈。而拥塞控制则是确保通信子网能够有效为主机传递分组,是一个全局性的问题。涉及到所有主机、路由器。
(3)透明传输。透明传输就是不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧出现了与某一个控制信息完全一样时,必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输的透明。
(4)异种网络的互联。解决不同网络在寻址、分组大小、协议等方面的差异。不同类型的网络对分组大小,分组结构等的要求都不相同,因此要求在不同种类网络交界处的路由器能够对分组进行处理,使得分组能够在不同网络上传输。
(5)分组生成和装配。运输层报文与网络层分组间的相互转换。运输层报文通常很长,不适合直接在分组交换网络中传输。在发送端,网络层负责将运输层报文拆成一个个分组,再进行传输。在接收端,网络层负责将分组组装成报文交给运输层处理。
网络层为运输层提供服务,它通常是通信子网的边界。网络层向运输层提供的服务应具有以下特点:
1)服务与通信子网的技术无关;
2)通信子网的数量、类型和拓扑结构对运输层透明;
3)运输层得到的网络地址应该采用同一编址的方式。即使跨越了多个局域网和广域网也应如此。
网络层提供无连接的服务和面向连接的服务。无连接的服务:差错控制和流量控制必须由主机自己完成,两个实体之间的通信不需要事先建立好一个连接,通信所需的资源无需事先预定保留,所需的资源是在数据传输时动态地进行分配。面向连接的服务:通信子网应该提供一种可靠的、面向连接的服务。面向连接的网络服务是在数据交换之前,必须先建立连接,当数据交换结束后,终止这个连接。
面向连接和面向无连接的服务各有其适用场合,面向连接的服务是可靠的报文序列服务;无连接服务却不能防止报文的丢失、重复或失序,但无连接服务灵活方便,并且迅速。因此,当前的网络层既提供面向连接的服务,即虚电路方式,又提供面向无连接的服务,即数据报方式。
面向连接和无连接两种服务方式的争论,实质就是将复杂的功能放在何处的问题。在面向连接服务中,它们被置于网络层(通信子网),而在面向无连接服务中,则被置于运输层(主机)。
1.5.3.4 传输层(Transport layer)
第4层的数据单元也称作数据包(packets)。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其他在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中,传输层对上层屏蔽了通信传输系统的具体细节。
传输层协议的代表包括:TCP、UDP、SPX等。
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。传输层也称为运输层,传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层。传输层的工作逻辑图,如图1-20所示。
图1-20 传输层的工作逻辑图
有一个既存事实,即世界上各种通信子网在性能上存在着很大差异。例如电话交换网,分组交换网,公用数据交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传输速率,数据延迟通信费用各不相同。对于会话层来说,却要求有一性能恒定的界面。传输层就承担了这一功能,它采用分流或合流,复用或分用技术来调节上述通信子网的差异,使会话层感受不到。
此外传输层还要具备差错恢复,流量控制等功能,以此对会话层屏蔽通信子网在这些方面的细节与差异。传输层面对的数据对象已不是网络地址和主机地址,而是和会话层的界面端口。上述功能的最终目的是为会话提供可靠的、无误的数据传输。传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程,而在数据传送阶段又分为一般数据传送和加速数据传送两种。传输层服务分成5种类型,基本可以满足对传送质量,传送速度,传送费用的各种不同需要。
总之,传输层的具有如下功能:
(1)向用户提供可靠端到端(end-to-end)服务;
(2)处理数据包错误、数据包次序,以及其他一些关键传输问题;
(3)传输层向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层,处于网络体系结构的核心位置,它利用通信子网的功能为上层应用提供一定QOS的传输服务;
(4)数据传送,不关心数据含义,进程间通信;弥补高层(上3层)要求与网络层(基于下3层)数据传送服务质量间的差异(差错率、差错恢复能力、吞吐率、延时、费用等),对高层屏蔽网络层的服务的差异,提供稳定和一致的界面。
1.5.3.5 会话层(Session layer)
这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层、表示层、应用层构成开放系统的高3层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等。会话层同样要担负应用进程服务要求,而运输层不能完成的那部分工作,给运输层功能差距以弥补。主要的功能是对话管理,数据流同步和重新同步。要完成这些功能,需要由大量的服务单元功能组合,已经制定的功能单元已有几十种。
会话层为会话实体间建立连接。为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作:
(1)将会话地址映射为运输地址;
(2)选择需要的运输服务质量参数(QOS);
(3)对会话参数进行协商;
(4)识别各个会话连接;
(5)传送有限的透明用户数据。
会话层标准为了使会话连接建立阶段能进行功能协商,也为了便于其他国际标准参考和引用,定义了12种功能单元。各个系统可根据自身情况和需要,以核心功能服务单元为基础,选配其他功能单元组成合理的会话服务子集。会话层的主要标准有“DIS8236:会话服务定义”和“DIS8237:会话协议规范”。
1.5.3.6 表示层(Presentation layer)
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压,加密和解密等工作都由表示层负责。例如图像格式的显示,就是由位于表示层的协议来支持。
1.5.3.7 应用层(Application layer)
应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
OSI是一个定义良好的协议规范集,并有许多可选部分完成类似的任务。它定义了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的任务。是作为一个框架来协调和组织各层所提供的服务。
OSI参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定。即OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念性框架。
OSI分层具有如下优点:
(1)人们可以很容易的讨论和学习协议的规范细节;
(2)层间的标准接口方便了工程模块化;
(3)创建了一个更好的互连环境;
(4)降低了复杂度,使程序更容易修改,产品开发的速度更快;
(5)每层利用紧邻的下层服务,更容易记住个层的功能。
尽管OSI参考模型得到了全世界的认同,但是Internet历史上和技术上的开发标准都是TCP/IP模型(传输控制协议/网际协议,Transmission Control Protocol/Internet Protocol)。从网络设备厂商的研发部门,到各个系统集成公司工程师的桌面,总能发现TCIP/IP详解一类的书籍。TCP/IP技术的学习似乎研究和管理网络的一项业内行规。
1.5.4 TCP/IP参考模型
1.5.4.1 TCP/IP 参考模型概述
TCP/IP协议是一系列网络协议的总称,起源于20世纪60年代末美国政府资助的一个网络分组交换研究项目,TCP/IP协议是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式网络系统Internet之上。在开始TCP/IP协议研究时,并没有提出参考模型。1974年Kahn定义了最早的TCP/IP参考模型,80年代Leiner、Clark等人对TCP/IP参考模型进一步的研究。目前,TCP/IP模型是事实上的商业标准,它只有四个层次:应用层(application layer),传输层(transport layer),互连层(internet layer),主机-网络层(Host-to-network layer)。
1.5.4.2 TCP/IP 协议的特点
(1)开放的协议标准;
(2)独立于特定的计算机硬件与操作系统;
(3)独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互连网中;(4)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址;
(5)标准化的高层协议,可以提供多种可靠的用户服务。
1.5.4.3 TCP/IP 参考模型与OSI 参考模型的对应关系
图1-21描述了TCP/IP参考模型与OSI参考模型的对应关系。主机-网络层是TCP/IP参考模型的最低层,负责通过网络发送和接收IP数据报,允许主机连入网络时使用多种现成的与流行的协议,例如局域网的Ethernet、令牌网、分组交换网的X.25、帧中继、ATM协议等。当一种物理网被用作传送IP数据包的通道时,就可以认为是这一层的内容。充分体现出TCP/IP协议的兼容性与适应性,它也为TCP/IP的成功奠定了基础。
图1-21 TCP/IP参考模型与OSI参考模型的对应关系
互连层相当OSI参考模型网络层无连接网络服务,处理互连的路由选择、流控与拥塞问题。IP协议是一种无连接的、提供“尽力而为”服务的网络层协议。
传输层主要功能是在互连网中源主机与目的主机的对等实体间建立用于会话的端-端连接,传输控制协议TCP是一种可靠的面向连接协议,用户数据报协议UDP是一种不可靠的无连接协议。
应用层包括网络终端协议Telnet,文件传输协议FTP,简单邮件传输协议SMTP,域名系统DNS,简单网络管理协议SNMP,超文本传输协议HT-TP。TCP/IP协议栈如下图(图1-22所示):
图1-22 TCP/IP协议栈
1.5.5 OSI 模型与TCP/IP 模型的比较
OSI参考模型的层次数量与内容选择不是很好,会话层很少用到,表示层几乎是空的,数据链路层与网络层有很多的子层插入。OSI参考模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,实现困难。寻址、流控与差错控制在每一层里都重复出现,降低系统效率。数据安全性、加密与网络管理在参考模型的设计初期被忽略了。参考模型的设计更多是被通信的思想所支配,不适合于计算机与软件的工作方式;严格按照层次模型编程的软件效率很低。
TCP/IP参考模型在服务、接口与协议的区别上不很清楚,一个好的软件工程应该将功能与实现方法区分开,参考模型不适合于其他非TCP/IP协议族;TCP/IP参考模型的主机-网络层本身并不是实际的一层;物理层与数据链路层的划分是必要和合理的,但是TCP/IP参考模型却没有做到这点。
因此,结合两者的优点,我们目前提出如图1-23的建议的参考模型:
图1-23 建议参考模型