运输层及高层.ppt
第十三章 运输层及高层,本章主要内容,13.1 运输层13.2 会晤层13.3 表示层13.4 应用层,OSI参考模型中第一层至第四层称为低层,第五层至第七层称为高层。低层主要解决可靠运输问题,高层主要解决信息可懂问题。运输层是低层与高层协议的界面,是低层协议中唯一属于端到端层,在整个协议中占据重要位置本章主要讨论运输层,对高层协议作整体介绍。,13.1 运输层,13.1.1 OSI运输服务原语13.1.2 OSI运输协议13.1.3 运输层的连接管理13.1.4 运输层协议实现,运输层的服务用户为会晤层实体。运输层的目的利用网络层提供的服务,向用户提供有效、可靠和价格合理的运输服务。运输层服务面向连接的服务向用户提供连接的建立、维持和释放。无连接的服务与网络层的无连接服务相似。,网络层与运输层本质上都有相同的寻址方式和流控方式。运输层的必要性由于用户无法对子网加以控制,因此他们不能通过换用更好的路由器或增强数据链路层的纠错能力来解决网络服务质量低劣的问题,唯一可行的办法就是在网络层上再加上一层来改善服务质量,因此传输层的存在使传输服务比网络层的服务可靠得多。,13.1.1 OSI运输服务原语,OSI运输服务原语提供面向连接和无连接服务使用。见表13.1。,运输层与网络层的区别网络层网络服务趋向于将实际网络提供的服务模型化,由于网络会丢失数据分组或自发地发N_RESET服务原语。因此网络服务就为用户提供了一种处理数据确认和N_RESET服务原语的方式。网络服务的用户是运输层。运输层运输层不涉及数据确认和N_RESET服务原语。运输层的目标是在不可靠网络上为用户提供一个可靠的服务。运输层的用户是会晤层或其他的应用程序。,一般来说,在一个运输连接终端上发出一个服务原语会在另一个运输连接终端上产生结果。图13.1表示在正常情况下OSI原语的应用。图13.1(a)说明正常连接建立过程。图13.1(b)目的端用户拒绝连接请求。图13.1(c)和(d)普通数据和加速数据的传输过程。图13.1(e)正常释放过程。,传输层服务访问点的状态转移传输层服务访问点的状态状态1:空闲(IDLE),尚未建立连接或正在试图建立连接。在此状态下可以发出T_CONNECT请求或收到T_CONNECT指示。状态2:出向连接期,已发出T_CONNECT.request,而尚未收到远端同层实体的应答。状态3:入向连接期,已收到T_CONNECT.indication,但尚未决定是接受或拒绝。状态4:数据运输就绪,已经建立连接,可以运输数据。,图13.2说明空闲状态到数据传输就绪状态有两条途径:1-2-4;1-3-4。实际上就是主呼方和被呼方状态转换路径。空闲状态反映没有运输连接,是任一顺序的起始和最终状态,一旦再次进入该状态运输连接就被释放。在连接建立或数据运输阶段的任一时刻,都能发起连接释放过程,在建立阶段中,不能发起除连接释放以外的其他任何过程。,13.1.2 OSI运输协议,运输服务是通过两运输实体间的运输协议来实现的。运输协议需要解决差错控制、排序和流控问题。,运输层与数据链路层的区别首先,数据链路层不必给出目的地址,因为只有一个终端与它相连,而在运输层,则必须给出目的地址。其次,数据链路层连接较为简单,另一端总是存在或不存在;而传输层连接建立过程要复杂的多。第三,数据链路层物理媒体没有存储能力,而通信子网中存在潜在的存储能力,这就要求在运输层使用特殊的协议。最后,数据链路层最多有一条连接,而运输层中会出现大量动态的连接,这要求运输实体与数据链路层采用不同的管理方法。,运输层的主要功能是针对用户要求来弥补网络层服务不足,因此用户要求的运输层协议的类型与服务有关。网络层服务分类A类服务 表示能提供完善的网络服务。分组的丢失、重复以及网络的重置等情况很少出现。由于网络的服务质量已经很高,因此在其上运行的运输协议很简单。B类服务 单个分组很少丢失,但网络层会因为内部拥挤、硬件故障、软件错误而不时地发出N_RESET原语,这需要运输层来弥补。C类服务 网络服务是不可靠的服务,只能提供单纯无连接服务的广域网。,OSI根据不同的网络服务类型,将运输层协议分为五类。TP0 它为每个提出请求的传送连接建立一个网络连接。运输层依靠网络层对数据提供正确的传送,只提供建立和释放连接的机构,运输层不进行排序和流控。TP1 如果某一给定传送连接受到N_RESET的影响,传送连接两端的两个传送实体要做一次同步,然后从中断处开始继续运行。1类运输协议不提供任何差错控制和流量控制。,TP2 使用A类网络服务,允许两个或多个传送连接向同一网络连接发数据(多路复用),这在某些情况下可以降低用户的费用。TP3 既可以采用多路复用,也可以从N_RESET中恢复,它还使用显式流控。TP4 最为复杂,它必须能处理分组的丢失、重复、残缺分组、N_RESET以及网络服务遗留下来的其他所有差错。,传输协议的选择由运输实体在建立连接时确定。连接发起者在T_CONNECT.request原语中可以建议自己希望的类型,或提出运输层服务质量(QoS)的参数表。连接请求响应者可以从连接请求者提供的表中选择可接收的服务质量或协议类。如果连接请求提供的选择均不可接受,就拒绝连接。不同的应用对QoS有不同的要求,即使是同样的网络服务,也可能要求不同的运输服务类别。,服务质量(QoS)选择,首先,传输服务用户1向传输实体发送请求建立连接,它的服务质量包括它希望的值Q1和最小可接受的值Q0;第二,传输实体1不能提供Q1的服务,而能提供高于Q0的服务Q2,因此传输实体1向传输实体2建立请求时,其服务质量取为Q2和最小可接受的值Q0;,第三,传输实体2不能提供Q2,但能提供高于Q0的服务质量Q3,因此它向传输服务用户2发送连接建立指示中的服务质量为Q3和最小可接受的值Q0;第四,传输服务用户2不能处理Q3的服务质量,而只能处理高于Q0的Q4,因此它向传输实体2发送了可接受的值Q4和最小接受值Q0;,第五,传输实体2反馈给传输实体1可接受的值Q4和最小可接受的值Q0;第六,传输实体1向传输服务用户1发送可接受的值Q4和最小可接受的值Q0。这样经过协商,服务质量Q4被确定,那么在整个连接存在期间服务质量保持不变。,13.1.3 运输层的连接管理,13.1.3.1 寻址13.1.3.2 建立连接13.1.3.3 释放连接13.1.3.4 连接管理的其他方面,链路层在物理层上运行,终端间直接有物理通道连接,一条链路对应一个终端,因此寻址容易。运输层在网络层上运行,必须给出目的实体的显式地址才行,在运输层,连接的建立、释放和一般性管理与链路级相比复杂得多。,13.1.3.1 寻址,当应用程序希望与一个远程应用程序建立连接时,它必须指定与哪个应用程序相连。这就产生了寻址问题。一般的方法采用传输服务访问点TSAP,网络层中类似的端点为NSAP。TSAP位于运输层之上,NSAP位于网络层之上。,寻址示例主机B上的时间查询服务进程将自己连到122号TSAP上;主机A上的应用程序想知道现在的时间,于是发送一个T_CONNECT请求,将6设为源地址,将122设为目的地址;A运输实体在本机和B机上选择一个NSAP,并建立网络连接;通过该连接,传输层的连接请求数据单元,然后B机传送实体发T_CONNECT.indication,如连在122号TSAP上的计时服务器同意,就建立运输连接。,13.1.3.2 建立连接,由于网络内可能丢失、存储和出现重复分组,运输层应能识别并处理这些数据。删除过时的在网内徘徊的分组,如果能确保任何一个分组在子网的存留时间都不超过某个限定时间,问题就在某种程度上获得解决。,采用以下技术之一,可以将分组的生命期限制在一个已知的最大值内。子网受限设计;包括防止分组进入回路以及限制时延不超过可能最长的路径时延。在每个分组内设计一个站段计数器;在每次分组转发时使站段计数器加1,数据链路层将丢弃那些站段计数器超过某个特定值的分组。为每个分组加上时间戳。时间戳要求路由器的时钟同步,而同步是一项任务繁重的工作。,Tomlinson三次握手方法主机1发出连接请求时,选择一个序号x并向主机2发送一个包含该序号的连接请求TPDU;主机2回应一个接受连接的TPDU,确认x并申明自己所选用的初始序号为y;最后,主机1在其发送的第一个数据TPDU中确认主机2所选的初始序号。如图13.6(a)所示。,异常情况处理(一)出现延迟的重复控制TPDU时(图13.6(b))第一个TPDU是来自一个已经释放连接的延迟重复的连接请求,该TPDU在主机1毫不知晓的情况下到达主机2;主机2通过向主机1发送一个接受连接TPDU来响应该TPDU,而该接受连接TPDU的目的是要证实主机1是否确实试图建立一个新的连接。当主机1拒绝接受连接请求时,主机2就放弃该连接。,异常情况处理(二)当一个延迟的CR和一个对ACC的确认并存于子网中时(图13.6(C))主机2受到一个延时的CR并作了确认的应答;当第2个延时的TPDU到达主机2时,主机根据其确认号判断出是一个过时的重复TPDU;主机1对主机2的确认应答回连接拒绝TPDU。,13.1.3.3 释放连接,连接释放的方式非对称释放相互连接的传输用户中的任一方都能执行DISCONNECT原语,传输实体发送释放连接的TPDU,一旦该TPDU到达,连接即被释放。对称释放连接的每一方相互独立。当一方执行了DISCONNECT原语后,它就不再发送数据,但仍然能够接收对方的数据。在这种模式下,只有当连接的双方都执行了DISCONNECT原语时,才能释放。,13.1.3.4 连接管理的其他方面,其他方面包括流控、多路复用以及崩溃恢复等问题。网络崩溃是指在通信期间网络层发出N_RESET。运输层在面临网络崩溃时必须能够从崩溃前状态恢复。运输层处理整个通信子网的问题,因此其连接管理非常复杂。,13.1.4 运输层协议实现,13.1.4.1 运输层的事件状态表13.1.4.2 任务间的排队结构,13.1.4.1 运输层的事件状态表,事件状态表是协议实体的一种描述方法。它定义了所有可能的入向事件/现在状态的组合、相应的出向事件以及新状态。为了便于表示,在事件-状态表中以各种缩写名来代表各事件、状态、动作前提及动作。,表13.3列出了运输实体在连接建立阶段的事件状态表中所用的各缩写名及其含义。子表4中前提是一个布尔变量,它和对应入向事件的参数值及自动机的一个或多个状态变量有关,它表示动作前提,通常用P表示。表13.4 为连接建立期的事件状态表。表中每一项指明了实际的出向事件及其新状态的组合,表中的空白项为错误条件。,13.1.4.2 任务间的排队结构,从软件设计的角度看,一个完整的通信子系统是由一个任务模块及完成本地管理和定时功能的附加任务来实现,如图13.7所示。任务间通过一组先进先出的排队或邮箱相互通信。任务间的通信由该进程子系统的本地实时操作系统内核管理。该内核还处理任务调度、中断处理等功能。,通常一个有效的入向事件的出现会导致协议实体产生一个协议数据单元PDU。PDU在某一个层间接口以出向事件的形式输出。同时还伴随自动机状态的变化以及某个特定的内部动作等。编写运输实体程序是一个困难而精细的工作,为了减少出错机会,常将协议的状态表示为有限状态机。,事件控制块(ECB)任何一个协议层是借助于该层的服务原语与相邻的层进行通信的。每个服务原语及其参数首先是以确定的格式在一个缓冲器中形成,此形式的格式称为事件控制块(ECB)。通常每一个原语参数的数目和类型不相同,但为了避免各原语需要不同的数据结构,一般每协议层只有一种数据结构(ECB)。,ECB基本结构在ECB的头有一个原语类型字段,后面再跟以附加字段,包含该服务原语的所有参数集。当层间传送原语时,发送任务在ECB的头指明所传原语的类型,以后接收任务以此可以确定要求的出向事件过程,因此仅写出与它相关的参数。典型的ECB结构如图13.8所示。,ECB使用方式(一)当任务启动时,任务向本地操作系统内核请求一个以ECB地址指针作为参数的任务间通信原语,就可以在层间传送服务原语了。内核将该指针插入相应层间队列的末尾排队。当位于排队队首时,运行的任务首先读出该指针,并进而出理入向事件。通常导致一个PDU、建立一个符合一定格式的ECB,并送至一个输出队列。,ECB使用方式(二)当多个服务同时发生时,一个最简单的办法是对应每一个访问点设置一组队列。由于每一层都要访问ECB和相应的UDB,因此将其说明为全局的数据结构。当系统第一次初始化时,就会为每一层建立一个ECB池和UDB池,指向这些缓存器的指针被连接起来形成一个空闲表。每当要求一个新的缓存器时,就以此空闲表获得一个空闲缓存器指针,当完成任务后,再返回给空闲表。,13.2 会晤层,会晤层、表示层和应用层一起构成了OSI参考模型的高层。低层涉及的是可靠的通信,高层与提供面向用户的服务有关。高层利用由运输层提供的无差错的信道,增加一些若干应用都需要的功能,以免在编写各应用程序时在各自的程序中重复实现这些功能。,会晤层的主要功能是给用户提供一个建立连接或会晤以及在其上按次序传送数据处理的方法。会晤层和运输层连接非常相似,但会晤层有自己的特点,正是有了这些特点,有必要在运输层上建立一个会晤层。,会晤层特点(一)建立运输连接会晤层的连接需要运输层连接的支持,会晤连接和运输连接之间的关系称为映射;为了提高可靠性,可让一个会晤层连接跨接几个运输连接。允许连续的几次会晤前后连续使用同一运输连接。,会晤层特点(二)会晤和运输的释放方式不同运输层通信双方都可以立即释放连接,会造成数据的丢失,故称为随意释放;会晤层的释放采取一种协商释放或有序释放,即释放请求发送后并不导致连接马上释放,仍可以继续接收数据,直到得到对方的确认后为止。,会晤层特点(三)半双工方式在会晤连接中,除全双工操作外,半双工也用得很多。半双工方式采用数据令牌。采用该方式,双方必须通过协商首先决定哪一方先获得令牌,只有持有令牌的用户才能运输数据,另一方必须保持接收的状态。加速数据传送不需要令牌。,会晤层特点(四)同步当发生错误和出现不符合协议的事件时,同步功能可让会晤实体返回一个已知状态。运输层只能屏蔽通信错误,而不能从高层错误中恢复。后者必须附加一层才能解决。,会晤层特点(五)活动管理和异常报告会晤层的活动管理允许用户把要传的信息分成若干个活动。各活动可以独立地进行处理,在各活动处理中间甚至可以做其他事情。为了避免通信双方同时希望开始各自的活动,活动控制也采用了令牌管理机构。会晤层的另一个功能是具有报告意外错误的机构。ISO公布的会晤层标准是ISO8326和8327。ITU公布的对应标准是X.215、X.225和T62。,13.3 表示层,13.3.1 数据表示13.3.2 数据压缩,表示层和仅处理自源端到目的端有序比特运输的低5层不同,它的主要功能是要保持所传输信息的含义。各种计算机有自己内部的数据表达法,因此需要通过转换和协定来保证不同的计算机的相互理解。表示层的任务是将结构化的数据从发方机器内部格式进行编码,使之成为适于传输的比特流,然后在目的端将其解码为所需的数据表示。,表示层的主要功能为用户提供执行会晤层服务原语的手段;提供描述复杂数据结构的方法;管理当前所需的数据结构集;数据内部形式与外部形式的转换。,13.3.1 数据表示,数据表示的必要性目前不同的计算机有不同的内部数据表示法。ASCII码 用于大多数小型机、微机和主机上。EBCDIC码 用于IBM的大型机上。对同样的数据,即使所接收的数据正确无误,由于数据内部格式不同,必然导致在不同机器上的最终输出结果不同。解决该问题的方法是在某处作格式转换,在接收方或双方的数据表示都与某种网络标准格式相转换。,数据结构的表示、编码、运输及解码的关键是有一种标准的描述数据结构的方法。ISO提出了这样一种表示法,称为抽象语表示法,或简称ASN.1。后缀1指明这是第一个标准化了的表示法。ASN.1在ISO.8824中定义。ISO8825标准规定了把ASN.1数据结构编码为适用于传输的比特流的规则,比特流的格式成为运输语法(Transfer syntax)。,13.3.2 数据压缩,数据压缩技术广泛用于节省内存、磁盘及磁带机空间。对用户来说,数据压缩一般可降低通信费用。通道上的数据组成通道上传送的数据可看成是一序列符号:S1,S2,Sn,这些符号通常是在一个符号集中取值的。这些符号集可以是比特集,或十进制数字集0,1,2,9,或字母集A,B,C,Z。,数据压缩的方法符号集的有穷性例如图书馆馆藏书目假设一本书的书名长度为20个字符,则用ASCII码表示要用140位,一种数据压缩的方法就是先给每本书一个编号,目前世界上最大的图书馆藏书约为226册,就是说只用26以下的位数便可完成编号,这样一来,书名的数据就从140位减为26位甚至更少。符号使用的相对频度用短代码代表常用符号,用长代码代表不常用符号,这是一种常用的数据压缩方法。上下文依赖编码例如电视编码,在大多数情况下,当前帧几乎与前一帧相同。因此如果每台电视机能安装一个帧存储器,那么只需传送当前帧与前一帧不同的像素即可形成当前的帧,达到数据压缩的目的。,13.4 应用层,13.4.1 文件传送、访问和管理13.4.2 虚拟终端,应用层是由用户程序组成,直接与应用相关。对某些使用非常广泛的应用(如文件传输、电子邮件等),为了避免每个公司都去研制自己的文件传输或电子邮件等应用协议,人们制定了标准,以期在尽可能多的情况下所有用户都是使用同一协议。,13.4.1 文件传送、访问和管理,文件服务器的关键思想是虚拟文件库,即一个抽象的文件服务器。虚拟文件库为用户提供一个标准化接口,并且提供了一组用户可以执行的标准操作。由于虚拟文件库接口的标准化,就使应用软件可以访问并传送远程文件,而不必了解各种互不兼容文件服务器的细节。OSI的文件传送、访问和管理(FTAM)模型的基础是虚拟文件库。通过软件来完成虚拟文件库和实际文件库间的映射。FTAM标准为ISO 8571。,13.4.2 虚拟终端,由于历史原因,国际市场上已经存在各种各样的互不兼容的终端。这一历史事实加上各厂家谁也不想改动自己的产品,使得终端标准化成为不可能。解决该问题的办法是定义一个虚拟终端。虚拟终端实际上是一个表示实际终端抽象状态的抽象数据结构。键盘和计算机都使用这个数据结构,数据结构的当前状态反映在显示器上。计算机可以通过查询这个抽象的数据结构以发现数据输入,并能改变这个抽象数据结构使输出出现在显示屏上。,END!,