版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.在计算机网络体系结构中,运输层处于什么地位?.运输层的功能是什么?,什么是端到端通信?.运输层合同包含哪些要素?[学习目标]本章主要要求把握运输层的功能和模型;把握运输服务的概念;理解运输合同的分类;了解运输合同的设计中要解决的主要问题和解决问题的一般方法;正确理解运输合同的主要兀素。[学习指南]本章学习的关键在于首先理解运输层在整个网络体系结构中所处的地位。运输层处于网络体系结构的核心位置,它采用通信子网的功能为上层应用供应肯定QoS的传输服务。把握住这一点,就不难理解运输合同分类、连接管理、故障恢复等概念了。[难重点].运输服务模型.运输合同类.运输层编址.连接管理.多路复用.故障恢复第一节运输层功能与模型运输层的地位:采用网络层的服务和运输实体的功能,向会话层供应服务。运输层是整个合同层次结构的核心。其任务是为从源端机到目的机供应牢靠的、价格合理的数据传输,而与当前网络或使用的网络无关。假如没有传输层,整个分层合同的概念也就没有什么意义了。本章涉及到以下概念:■运输实体(TE,TransportEntity)TS-Userdata用户数据连接建立阶段:胜利建立连接、被叫用户拒绝建立连接、TS供应者拒绝建立连接;对于通信子网的用户,也就是对用户进程来说,我们盼望得到的是端到端的牢靠通信服务。所谓端到端即从进程到进程。有时还可能盼望得到其他的服务,例如多对进程之间的通信复用到一个网络连接上。在互连网的状况下,各子网所能供应的服务往往是不一样的。为了能使通信子网的用户得到一个统一的通信服务,就有必要设置一个运输层。运输层弥补了各个通信子网供应的服务的差异和缺乏,而在各通信子网供应的服务的基础上,采用本身的运输合同,增加了服务功能,使得对两端的网络用户来说,各通信子网都变成透亮的,而对各子网的用户,面对通信的运输接口就成为通用的。换言之,运输层向高层用户屏蔽了下面通信子网的细节,使高层用户看不见实现通信功能的物理链路是什么,看不见数据链路采纳的是什么规程,也看不见下面究竟有几个子网以及这些子网是怎样互连起来的。运输层使高层用户观察的就是好象在两个运输层实体之间有一条端到端的牢靠的通信通路。第四节运输合同一、运输合同的元素传输服务是通过建立连接的两个传输实体之间所用的传输合同来实现的。在某些方面,传输合同类似数据链路层合同,二者都必需解决过失掌握、分组挨次、流量掌握及其它问题,但二者之间也存在着显著的差异。这些差异主要是由于两个合同所运行的环境不同所造成的,如图5.6所示。在数据链路层,两个路由器通过物理通道直接通信;而在运输层,这个物理通道由整个子网所取代。这一差异对合同产生了很多重要的影响。首先,在数据链路层,不必为一个路由器指明它要与哪个路由器通话-每条输出线对应唯一的一个路由器。在运输层里,需要显式地给出目的端地址。其次,在图5.6(a)中的线路上建立连接的过程很简洁:另一端总是存在的(只有在它已崩溃的状况下才不存在),每一方都没有太多事情要做。对运输层而言,初始连接的建立要简单得多,这点我们以后会看到。数据链路层和运输层之间另一个主要的区分是子网的存储力量。当路由器发送了一帧时,该帧可能会到达目的地,也可能会丧失,但它不会徘徊一会儿,隐藏在网络的某个角落,而在某个不合适的时刻又突然冒出来。假如子网内部采纳数据报和适应性路由选择策略,那么就极可能将一个分组存储几秒钟,然后再传送。子网能将分组存储起来的力量有时可能会产生灾难性后果。因此需要使用特殊的合同。数据链路层和运输层之间的最终一个区分是数量上的差异而非类型上的差异。在两层中都需要有数据缓冲和流量掌握,但在运输层中消失的大量的、动态变化的连接要求可能需要使用与在数据链路层中不同的处理方法。在数据链路层中,有些合同为每个连接均安排了固定数目的缓冲区。在运输层中,由于需要管理很大数目的连接,因此,为每个连接安排很多缓冲区的策略不具有吸引力。在以下的几小节中,将考察全部这样和那样的问题。二、编址当一个应用程序盼望与一个远程应用程序建立连接时,它必需指定是与哪个应用程序相连(无连接的传输存在同样的问题:每个报文应发送给谁)。一般采纳的方法是定义进程可以侦听连接恳求的传输地址。在因特网中,这些端点是(IP地址,本地端口)对。在ATM(异步传输模式)中,那么为AAL-SAP,我们使用中性术语传输服务访问点TSAP(TransportServiceAccessPoint)来描述。网络层中类似的端点(即网络层地址)那么称为NSAP。IP地址就是NSAP的例子。图5.7说明白一个面对连接的子网(如ATM)中NSAP,TSAP,网络连接和传输连接之间的关系。留意,传输实体通常支持多个NSAP。在有些网络中,也可能存在多个NSAP,但对其他网络,每台机器只有一个NSAP(如一个IP地址)。在面对连接的网络层上建立一个传输连接,可能采纳的连接方案如下:.主机2上的定时器服务进程将自己连到122号TSAP上,等待即将到来的恳求。一个进程如何将自己与TSAP相连是属于网络模型以外的问题,它完全依靠于本地的操作系统。例如,可以用USTEN调用。.主机1上的一个应用进程想找出当天的时间,于是发出一个CONNECT恳求,将6号TSAP设定为源地址,将122号TSAP设定为目的地址。.主机1上的传输实体在其机器上选择一个网络地址(假如它不止一个)并在它们之间建立一个网络连接。对于无连接子网,无须建立该网络层连接,使用该网络连接,主机1的传输实体便能与主机2的传输实体通话了。.主机1上的传输实体向主机2上对等端说的第一句话是:“早上好,我想在我的6号TSAP和你的122号TSAP之间建立一个传输连接。你认为如何?”.主机2上的传输实体便询问122号TSAP的定时服务器是否情愿接受一个新的连接。假如它同意,传输连接便建立胜利。留意,传输连接是从TSAP到TSAP的,而网络连接只是其中的从NSAP到NSAP的局部。主机1上的用户进程如何知道定时服务器是连接到122号TSAP上的呢?假如我们已经解决了这一问题,以上描绘的图景就很美了。一种可能性是定时服务器常年与122号TSAP相连,并且全部网络用户都渐渐了解到这一点。在这种模型中,各种服务都有不变的、可以打印出来的TSAP地址,并且能通告给新加入到网络中的用户。图5.7TSAP,NSAP和连接不变的TSAP地址可能适用于少数从不转变的关键服务。一般地,用户进程常常想与其他的用户进程通话,这些用户进程只是短时间存在并且预先不知道TSAP地址。而且,假如有很多潜在的服务器进程,而其中的大多数很少使用,那么,让每个进程成天处于活动状态并成天侦听不变的TSAP地址是一种铺张。简而言之,需要一种更好的方案。被UNIX主机用于因特网上的一种该方案的简化形式如图5.8所示,称为初始连接合同(initialconnectionprotocol)o该方案不再让每个可能存在的服务器去侦听一个众所周知的TSAP地址,而是让每台盼望向远端用户供应服务的机器运行一个特殊的进程服务器(processserver),它充当载荷较轻的服务器的代理。它同时侦听一系列端口,等待TCP连接恳求。需耍某种服务的用户通过执行CONNECT恳求开头,然后设定他们所需服务的TSAP地址(TCP端口)。假如没有服务器在等待它的到来,它将会连接到进程服务器上,如图5.8(a)所示。当进程服务器收到传入的恳求后,便装入用户恳求的服务器,并将已经建立的与用户的连接转交给它。于是新的服务器便开头执行用户恳求的任务,而进程服务器那么又回去侦听新的用户连接恳求,如图5.8(b)所示。尽管初始连接合同对于那些需要随时创立的服务器来说是特别有效的,但确实存在着很多服务不依靠于进程服务器的状况。例如,文件服务器需要在特定的硬件(带有硬盘的机器)上远行,而不能当有用户想与其通话时才仓促创立。在这种状况下常常采纳另一种方案。在这种模型中,存在一个称为名字服务器(nameserver),有时称作名录服务器(dictionaryserver)的特殊进程。为了找到与一个给定服务名称(如定时服务器("time-of-day”))相对应的TSAP地址,用户要与该名字服务器(它始终在侦听一个众所周知的TSAP)建立一个连接。接着,用户向名字服务器发送一个报文,指明服务的名称,而名字服务器那么将相应的TSAP地址返回给用户。接下来,用户释放与名字服务器之间的连接,而与盼望得到的服务之间建立-个新的连接。在这种模型中,当创立一个新的服务时,必需向名字服务器注册,给出它的服务名称(一般是ASIONREQUEST)TPDU,并等待对方接受连接(CONNECTIONACCEPTED)的应答就足够了,但当网络可能丧失、存储和消失重复分组时,问题便消失了。设想一个子网特别拥塞以至于根本不能准时返回“确认”,每个分组由于在规定时限内得不到确认而需要重发二次或三次的情形。假设该子网内部使用数据报,并且每个分组拥有不同的路由。一些分组可能会由于子网内部的线路拥塞.需要很长一段时间才能到达,即它们被存储到子网中,并在很久以后突然消失。最坏的可能性是发生下面的状况。一个用户与银行之间建立了一条连接,并发送报文让银行将一笔巨款转至一个不能完全信任的人的账户下,然后便释放连接。不幸的是,此时每个分组均被复制并存放于子网中。当连接已经断开后。全部的复制分组又会从子网中发出并挨次到达目的瑞,恳求与银行建立一个新的连接并再次转账,然后释放连接。而银行那么无法区分这些分组是重复的,便假定这是其次次独立的转账业务。于是将巨款再次转移。本节剩下的局部将特地争论延迟的重复分组问题,特殊重点争论牢靠地建立连接的算法,以防止类似于上述灾难性问题的发生。问题的关键是由于子网中存在着延迟的重复分组。解决这一问题的方法很多,但都不是很令人满足。一种方法是废弃使用过的传输地址。在这种方法中,每次需要一个传输地址时,系统便产生一个新的。当释放一个连接时,传输地址便被废弃了。这一策略使进程服务器变为无效。另一种可能的解决方法是给每个连接安排一个连接标识符,即一个随连接建立而递增的挨次号,该标识符由恳求连接方选择,并放进包括连接恳求在内的每个TPDU中。当每个连接被释放后,各传输实体可以更新一张表,列出全部过时的连接对(对等的传输实体,连接标识符)。每当收到一个连接恳求时,便检查这张表,看该连接是否属于以前所释放的连接。不幸的是,这种方案有一些基本的缺陷:它要求每个传送实体长时间保持肯定量的历史信息。假如某台机器由于崩溃而丧失了它存储的信息,那么它便无法再获知哪些连接标识符是用过的。因而我们需要实行一种不同的方法。我们必需设计出一种机制来删除那些仍在网中”徘徊”的过时的分组,不让它们永久存留在子网中。假如我们能够确保任何一个分组在子网中的存留时间都不超过某个的时间.那么问题在某种程度上就变得较易处理了。采纳下述的技术之一,可以将分组的生命周期限制在一个的最大值内:.受限制的子网设计;.在每个分组内设置一个生存时间;,为每个分组加上时间戳。第一种方法包括防止分组进入回路,以及限制延时不超过(当前的)可能最长的路径时延。其次种方法是在每次转发分组时使生存时间加1。数据链路层合同将丢弃那些生存时间值超过某个特定值的分组。第三种方法要求每个分组均包含生成时间,山路由器负责丢弃超过预定时间的旧分组。第三种方法要求路由器的时钟同步,而同步本身就是一项繁重的任务,除非同步信号来自子网络外部,如通过收听定期广播精确时间的无线电台。在实际应用中,我们不仅需要保证一个分组已经无效,而且要保证对该分组的全部确认均告失效,因此,我们现在引进T的概念,它表示实际最长的生命期的某个不太大的倍数。该倍数与所用的合同无关,只是对延长T有影响。假如在一个分组发出后等待了时间T,我们便可以确定有关该分组的一切现在已告失效,该分组及其确认将不会再次突然消失而使问题简单化。依据分组限定的生命期,有可能设计出一种建立牢靠连接的平安方法。下面描述的方法源于Tomlinson(1975),该方法解决了这一问题,但同时也带来了特殊问题。这一方法后来经Sunshine和Dalal(1978)做了进一步的优化。该方法以各种形式广泛用于实践中。为了解决系统崩溃后机器会丧失全部存储信息的问题。Tomlinson建议为每台主机增设一个计时(time-of-day)时钟。不同主机的时钟不需同步。假定每个时钟都采纳二进制计数器形式,在统一的时间间隔内累加计数。而且,计数器内的位数必需等于或大于序列号内的位数。最终,也是更重要的,是假定时钟始终在运转,即使主机停机亦如此。基本思想是确保在同一时刻永久不会消失两个编号相同的TPDUo当一个连接建立后,时钟的低k位作为初始序号(也是k位)。这样便不同于数据链路层所介绍的合同,每个连接均以不同的序号开头对其TPDU进行编号,序号空间应很大,以便当序号再次(循环了一周)消失时,具有相同序号的旧的TPDU早已传送完毕。时间和初始序号之间的线性关系如图5.9所示。一旦建立连接的两个传输实体接受了初始序号,便可以使用任何滑动窗口合同来实现数据流量掌握。实际上,初始序号曲线(由粗线表示)并非真正线性的,而是阶梯形的,由于时钟是以离散形式前进的。为简洁起见,我们忽视这一细节。当主机崩溃时会消失问题,即当主机再次启动运行后,其传输实体不知道它处在序号空间的什么位置。一种解决方法是要求传输实体在主机恢复后空闲等待Ts,以便使全部过时的TPDU失效。然而,在一个简单的网络系统中,T值可能很大,所以这种方法不具有吸引力。为了避开在系统崩溃后所要求的Ts空闲等待时间,有必要对序号的使用引入一种新的限制。通过一个例子我们会看到这种限制的必要性。设分组的最长生命期为60S,计时时钟每秒计数一次。如图5.9所示,对于x时刻接通的连接,其初始序号将为X。设想当t=30s时,发送至5号连接(已经接通)的一个一般的数据TPDU被给予的序号为80。不妨称其为TPDUX。在将TPDUX发送出去后。主机即崩溃并且很快重启。在t=60s的时亥IJ,它开头重新接通0至4号连接。在t=70s时,它依据连接恳求以初始序号70重新接通了5号连接。在接下来的15s内,主机发送出70〜80号数据TPDLL于是,当t=85s时,一个序号为80的新的TPDU以及连接5被送入子网中。不幸的是,此时TPDUX仍旧存在。假如TPDUX能先于新的TPDU80到达接收方,它便会被接受,但正确的TPDU80却被作为重复数据而拒收。为了避开消失这类问题,我们必需做到在一些序号可用作初始序号之前的时间T内禁止使用它们(即给予新的TPDU)。时间和序号的非法组合如图5.9(a)中的禁止区域所示。任何连接在发送任何TPDU之前,传输实体都必需读计时值,并进行检查,以确保该TPDU的序号和时间组合不在禁止区域内。该合同在两种不同状况下可能会陷入逆境。假如一台主机在一个刚刚接通的连接上发送的数据太多、太快,实际的序号与时间的关系曲线要比初始序号与时间的关系曲线更陡些(斜率更大)。这意味着在任何连接上的最大数据传输速率是每秒钟传送一个TPDU;还意味着在系统崩溃恢复后接通一个新的连接之前,传输实体必需空闲等待一段时间,以免同一序号被重用。这两点都要求时钟的脉冲间隔要短(几个毫秒)。很不幸,由于发送数据太快而从曲线下方进入禁止区域并不是陷入逆境的唯一情形。从图5.9(b)中可以清晰地看到,当任何数据传输速率低于时钟速率时,实际所用的序号与时间曲线将最终从左侧进入禁止区域。实际所用序号曲线的斜率越大,该曲线进入禁区的时间越晚。正如上面讲过的,传输实体在发送两个TPDU之前必需检查该TPDU是否将进入禁止区域,假如是,那么将延迟Ts后再发送该TPDU,或者重新对序号进行同步。基于时钟的方法解决了数据TPDU的延迟重发问题,但要使该方法可行,必需首先建立连接。由于掌握TPDU也可能被延迟,所以在使双方都接受初始序号这点上可能消失问题。例如,假设连接是由主机1向远端对等主机2发送连接恳求TPDU而建立的,该TPDU中包含了主机1建议的初始序号和目的端口号。接收方(主机2)通过回送一个接受连接TPDU来确认该恳求。假如连接恳求TPDU在传送时丧失而延迟的重复连接恳求突然消失在主机2上,那么连接将会被错误地建立。为了解决这一问题,Tomlinson(1975)引入了三次握手(three-wayhandshake)的方法。该建立连接的合同并不要求连接的双方以相同的序号开头发送数据,所以它可以在同步方式下使用,而不必非要采纳全局计时时钟的方式。当主机1发出连接恳求时,连接建立的一般过程:主机1选择一个序号x并向主机2发送一包含了该序号的连接恳求TPDU;接着,主机2回应一个接受连接TPDU,确认x并声明自己所选用的初始序号y;最终,主机1在其发送的第一个数据TPDU中确认主机2所选择的初始序号。现在来看看当消失延迟的重复掌握TPDU时,三次握手方法是如何工作的。第一个TPDU是来自于一个已经释放的连接的延迟重复的连接恳求,该TPDU在主机1毫不知晓的状况下到达主机2。主机2通过向主机1发送一个接受连接TPDU来响应TPDU,而该接受连接TPDU的真正目的是要证明主机I确实试图建立一个新的连接。当主机1拒绝接受主机2建立连接的意图时,主机2便意识到自己受到了延时的重复TPDU的哄骗并放弃该连接。这样,延时的重复数据便不会产生不良后果。最糟糕的状况是当一个延时的CR(连接恳求)和一个对ACC(接受连接)确实认并存于子网中时,见动画。如上例一样,主机2收到了一个延时的CR并做了确认应答。在这里,关键是要熟悉到主机2已经建议使用y作为从主机2到主机1进行数据传输的初始序号,由于主机2特别清晰当前没有序号y或对y进行确认的TPDU存在。于是,当其次个延时的TPDU到达主机2时,主机2依据它确认的是序号z而不是y知道这也是一个过时的重复TPDLL重要的是要熟悉到此处不会消失过时的CR,ACC或其他可能引起合同失败的TPDU组合的状况,也不会无故建立无人要求的连接。另一种针对延迟的重复TPDU而能牢靠地建立连接的方案请参见(Waston,1981)。该方案使用了多个定时器来排解意外的大事。2.释放连接连接的释放要比建立更简洁些。尽管如此,仍有很多不引人留意的细节问题。前面曾提到过,终止连接有两种方式:非对称释放和对称释放。非对称释放是系统动作方式:当一方挂机后,连接即告中断。对称释放将连接依据两个独立的单向连接来处理,要求每一方分别释放连接。非对称释放很突然,因而可能会导致丧失数据。请看动画中所示的释放连接(DR)情形。当连接建立后,主机1发送了一个数据TPDU并正确抵达主机2,接着,主机1发送了另一个数据TPDU,这次很不幸,主机2在收到其次个TPDU之前先发出了DISCONNECT(释放连接恳求),结果是连接被释放,数据被丧失。明显,我们需要采纳更为完善的连接释放合同来防止数据丧失。一种方法是采纳对称释放方式,每个方向独立释放本方的连接。这种方式中,即使主机已经发出了释放连接TPDU,仍旧能够连续接收数据。对称释放方式适用于每个用户进程有固定数量的数据需要发送,而且清晰地知道何时发送完毕的状况。其他状况下,打算全部工作是否已经完成和连接是否应释放是没有把握的。可以预想一种合同,在该合同下,主机1说:“我发送完了。你呢?”假如主机2响应:”我也发送完了。再见。“那么,连接变可以被平安释放。不幸的是,这种合同并非总是有效的。对此有一个闻名的问题,称为两军问题(twoarmyproblem)o设想一支白军被围困在一个山谷中,如图5.10所示。山谷两侧是蓝军。白军在人数上比山谷两侧的任何一支蓝军都多,但少于两支蓝军合在-起的人数。假如单独一支蓝军对白军发动进攻,那么必败无疑;但假如两支蓝军同时进攻,便可取胜。假设蓝军1号的指挥官发出消息、:”我建议在3月29日拂晓发起攻击。怎么样?”现在假设信息送到了,蓝军2号的指挥官同意这一建议,并且他的回信平安送回到蓝军1号处。那么能否发动进攻呢?很可能不会,由于蓝军2号的指挥官不知道他的回信是否平安到达了。假如未送到,蓝军1号将不会适时发起攻击,那么他贸然进攻就是愚蠢的。现在我们采纳三次握手的方法来改进这一合同。最初提出建议的指挥官必需确认对该建议的应答信息。假如信息没有丧失,蓝军2号将收到该确认信息,但现在蓝军1号指挥官开头迟疑起来。由于他究竟不知道他确实认信息是否被平安收到了,假如未被收到,他清晰蓝军2号不会按时发动进攻。那么我们现在采纳四次握手合同会如何呢?结果仍是于事无补。实际上,可以证明不存在有效解决该问题的合同。假如存在某种合同的话,那么,合同中最终一条信息要么是必需的,要么不是。假如不是,可以删除它(以及其他任何不必要的信息),直到剩下的合同中每条信息均必不行少。那么假设最终-条信息没有平安到达目的地会怎样呢?刚才说过这条信息是必需的,因此,假如它丧失了,进攻方案便不会实施。由于最终发出信息的指挥官永久无法确定该信息能否平安到达。所以他便不会贸然行动。同样,另一支蓝军也明白这个道理,所以也不会发动进攻。为了看清两军问题与释放连接之间的相关性,只需用“释放连接“代替”攻击”一词就行了。假如连接的双方在确信对方也预备释放连接之前都不预备断开连接,那么连接将永久也得不到释放。在实际应用时,人们在解决释放连接问题时往往预备冒比进攻白军问题更大的风险,所以问题并非完全没有盼望解决。动画说明白采纳三次握手方法进行连接释放的四种状况。这一合同并非肯定无误,但它已令人满足了。正常释放的情形,此时,一个用户发出一个DR(释放连接恳求)TPDU,而首先要求释放连接。当该TPDU到达后,接收方也回送个DRTPDU,并同时启动定时器以防止其DRTPDU丧失。当应答方的DR到达后,最初提出释放连接的一方又回送一个ACK(确认)TPDU,并断开连接。最终,当ACKTPDU抵达目的地后,接收方也释放连接。释放一个连接意味着传输实体从其记载全部接通的连接的表中删除该连接的有关信息并设法通知该连接的全部者(传输用户)。该操作有别于传输用户调用DISCONNECT原语的情形。假如最终的ACK(确认)TPDU丧失,如动画所示,那么就需要用定时器来补救了。当定时器超过时限后,连接将被“强行“释放。现在考察其次个DR(响应的DR)丧失的情形。这时,首先提出释放连接的用户将不能收到所期盼的响应,待到定时器超时,再次开头要求释放连接。从动画中可以看到这种状况下是如何工作的,假设其次次没有任何TPDU丧失,并且全部TPDU都正确、准时地到达目的地。最终一种状况。除了假设由于丧失TPDU使全部重发DR的尝试均失败以外,其他状况与上个动画完全相同。这样,经过N次尝试后,发送方(提出释放连接的一方)只好放弃努力并断开连接。同时,接收方(被动释放连接的一方)由于定时器超时也释放掉连接。这种合同通常已经满足需要了,但理论上当第一个DR和全部N次重发均被丧失的状况下,该合同便会失败。由于此时发送方将放弃重发并释放连接,而另一方却对对方的释放连接企图一无所知,而处于连接有效状态。这种状况将导致一个半接通的连接。可以实行一种措施来避开这种问题的发生,即禁止发送方在做完N次尝试后放弃连接而让它始终连续下去,直到已收到了一个应答。然而,假如另一方采纳超时而释放连接的方法,那么,发送方将会永久处于发送DR状态,由于它不行能再收到应答信息了(对方已经释放连接了)。假如我们禁止接收方采纳超时中断连接的方法,那么该合同对图5.22(b)所示的状况便会束手无策。一种消退半接通连接的方法是,假如在一段时间内没有收到任何TPDU,连接便自动释放。这样,假如一方已经释放了连接,那么另一方将检测不到对方的活动因而也断开连接。当然,假如引进这一规章,就需要为每个传输实体设置一个定时器,每当收到一个TPDU时都要使定时器停止并重新启动。假如该定时器超时,就发送一个伪TPDU,目的只是不让对方释放连接。另一方面,假如采纳自动释放连接的规章,并且在一个处与空闲状态的连接上连续丧失了很多的伪TPDU,那么连接的双方将会先后释放连接。对这个问题本书不再作进一步说明白,(暨阳社区版权全部),但现在应清晰,释放一个连接并非像初看起来那么简洁。在连接、虚电路及物理链路上,多路复用几组对话的方法在网络结构的很多层上都有肯定的作用。在传输层中对多路复用技术的需要表现在很多方面。例如,子网内部使用虚电路的网络中,每个接通的连接在连接的整个阶段均需占据路由器中的一些表空间。假如缓冲区是被安排给每个路由器中的虚电路的,那么登录到远端机器上的用户离开终端去喝咖啡期间,他仍旧在耗费着昂贵的资源。尽管这种分组交换的实现与使用分组交换的主要缘由之一一一用户只依据传输的数据量而不是依据连接时间付费相抵触,但很多通信公司还是选择了按时间收费的方法,由于它特别类似于他们在过去的几十年中巳经习惯了的电路交换模型。在这种价格结构下,长时间保持虚电路的接通特别不利,于是使不同的传输连接复用到同一网络连接上的技术便很有吸引力。这种形式的多路复用称为向上多路复用(upwardmultiplexing),如图5.11(a)所示。图中,4个不同的传输连接都使用同一网络连接(例如,ATM虚电路)与远端主机相连。当连接时间成为通信费用的主要因素时,就由传输层依据传输连接的目的地将它们分为不同的组,并将每个分组映射到最小数目的网络连接上。假如有太多的传输连接被映射到同一个网络连接上,性能就会变得很差,由于窗口通常是满的,用户不得不排队等待发送报文。假如映射到一个网络连接上的传输连接过少,那么服务费用会很昂贵。当在ATM上向上多路复用时,尽管ATM特意为了标识连接而为每个虚通路供应了4000多虚电路号码,但我们还是要用传送报文头部的一个字段来标明连接,这真是一个莫大的挖苦。由于另一个与传输技术而非价格因素有关的缘由,使多路复用在传输层中也可能有用。例如,假定某个重要的用户有时需要高带宽的连接。假如子网需要用n位序号作为一个滑动窗口的流量掌握,那么当有2n-1分组未得到确认时,用户就必需停止发送,等待这些分组到达远端主机并得到确认。假如物理连接是通过卫星相连的,那么用户便被严格限制在每540ms传送2n-1个分组的速率上。例如,当n=8,并且分组大小为128字节时,可用带宽大约是4Mb/s,即使物理通道带宽比它高出100多倍,也是枉然。一种可能的解决方案是让传输层接通多个网络连接,以循环轮转的策略在这些连接上安排传输信息,如图5.11(b)所示。这种方法的操作称为向下多路复用(downwardmultiplexing)o在k个网络连接接通的状况下,有效带宽将增加k倍。采纳4095条虚电路,128字节长的分组以及8位的序号,理论上可能会到达超过1.6Gb/s的数据传辅速率。当然,这种性能只有当输出线中支持1.6Gb/s速率的状况下才有可能实现。这是由于全部4095条虚电路仍旧在一条物理线路上发送数据,至少在图5.11(b)中是这样的。假如采纳多条输出线路,那么向下多路复用还可能大幅度地提高性能。五、故障恢复假如主机和路由器易崩溃,那么就存在着从崩溃恢复的问题。假如传输实体完全在主机内部,那么从网络和路由器崩溃中恢复是直截了当的。假如网络层供应数据报服务,传输实体对丧失的TPDU留有副本,就会知道如何解决恢复问题。假如网络层供应的是面对连接的服务,那么处理虚电路突然中断的方法是建立一条新的虚电路,接着探查远端机的传输实体,看它已经收到了哪些TPDU以及哪些还未收到,后者可以重发。一个较简单的问题是如何从主机崩溃中进行恢复。尤其是当服务器崩溃并很快重新启动后,客户端盼望能够连续进行崩溃前的操作。为了说明其困难程度,我们假设客户端主机正在使用一个简洁的停■等合同向远端的文件服务器主机发送一个长文件。服务器端的传输层只是简洁地将收到的TPDU依次传给用户。在传送到1/2时,服务器崩溃了。当它重新启动后,它全部的登记表均被初始化,因此它不能确定其发生崩溃前的状况。为了能恢复崩溃前的状态,服务器可以以广播方式向全部其他的主机发送一个TPDU,说明自己刚才发生崩溃并要求其客户主机通知全部接通的连接所处的状态。每个客户主机可能处于两种状态之一:有一个未被确认的TPDU-S1状态,或没有未被确认的TPDU-SO状态。依据这种状态信息,客户主机必需打算是否要重发最近的TPDU。乍一看好像很明显:客户端在得知远端服务器崩溃而自己有一个未被确认的TPDU时(即处于状态S1)才应重发。然而,再认真考虑一下便会觉察这种简洁的方法存在的困难。例如,考虑下面这种状况,远端服务器的传输实体只发送一个确认,当确认发生后,又对应用进程执行一个写操作。向输出流写一个TPDU和发送一个确认是两个不同而又不行分的大事,二者不能同时进行。假如在确认发出后而在写操作执行前崩溃发生了,此时客户端将收到这个确认。当崩溃恢复声明到达时它处于状态SO。客户端将因此不再重发,由于它错以为那个TPDU已经到达服务器端。客户端的这种打算会导致丧失一个TPDU。在这点上读者可能会认为:这个问题很简洁解决。唯一需要做的是重新编写传输实体的(合同)程序,让其先进行写操作,然后再发送确认。再试试看,设想已经完成了写操作但在确认发出前系统发生了崩溃。此时客户端将处于状态S1并因此重传数据,从而会导致在服务器应用进程的输出流上消失一个未经检测的重复的TPDLL无论怎样对发送方和接收方的合同进行编程,总是存在合同不能正确地从故障中恢复的状况。服务器端可以按下述两种状况之一进行编程:先发确认或先进行写操作。客户端可以依据四种方式之一进行编程:总是重发最终一个TPDU;从不重发最终的TPDU;只有在状态SO时重发,和只有在状态S1时重发。于是消失了8种组合,但我们会看到,对于每种组合都存在一些大事的集合使合同失败。服务器端有三种可能的大事:发送确认(A);将数据写入到输出进程(W),和崩溃(C)。这三种大事可能会依据六种不同的排列挨次消失、即:AC(W),AWC,C(AW),C(WA),WAC和WC(A)O其中括号用来说明A或W不能在C后消失(即一旦发生了崩溃,全部进程■网络服务访问点(NSAP,NetworkServiceAccessPoint)运输服务访问点(TSAP,TransportServiceAccessPoint)运输实体间的运输连接(TC,TransportConnection)运输实体间的运输层合同(TP,TransportProtocol)运输服务供应者(TS-Provider)运输服务用户(TS-User)会话合同数据单元(SPDU,SessionProtocolDataUnit)运输服务数据单元(TSDUJransportServiceDataUnit)运输合同数据单元(TPDU,TransportProtocolDataUnit)网络服务数据单元(TSDU,TransportServiceDataUnit)运输层的基本功能(可以和货物运输的状况作类比)运输层依据会话层的服务质量(QoS,QualityofService)要求,选择适当的网络层服务和运输层合同,以供应牢靠的、价格合理的、与网络层无关的数据传送。QoS相当于在货物运输的例子中所考虑的时间、牢靠性、费用等。选择网络服务相当于在货物运输的例子中选择运输方式,比方:空运、铁路等。运输层合同相当于邮寄信件时是使用平信,还是挂号信,等等。运输层处于OSI模型的上3层与下3层之间,供应进程间端到端的、透亮的、牢靠的数据传送。网络层是供应系统间的数据传送,而运输层是供应进程间的数据传送。OSI模型中上3层的功能为:信息传送,了解数据含义,进程间通信;下3层的功能为:数据传送,不关怀数据含义,系统间通信。运输层的功能为:数据传送,不关怀数据含义,进程间通信;可视为低层的一局部。弥补高层(上3层)要求与网络层(基于下3层)数据传送服务质量间的差异(过失率、过失恢复力量、吞吐率、延时、费用等),对高层屏蔽网络层的服务的差异,供应稳定均告停止)图5.12显示了客户端和服务器端的全部8种组合方案以及对于每种组合的合法大事排列挨次。留意,对每种方案都存在引起合同失败的一系列大事。例如,假如客户端总是重发数据,尽管AC(w)和c(AW)大事可以正确运行,但AWC大事将会产生一个未经检测的重复TPDU。进一步完善合同也于事无补。即使客户端和服务器端在服务器预备进行写操作前已经交换了几个TPDU,以便客户端能准确知道将要发生什么,但客户端还是无法确定崩溃是在写操作前还是写操作之后发生。因此我们得出如下结论:基于对非同时大事所制订的基本规章,无法使主机崩溃和恢复做到对于高层透亮。使用更一般的术语,这一结果可以重新表达为:从第N层崩溃中恢复只能由第N+1层来完成,并且只有在第N+1层保存有足够的状态信息的状况下才能完成。正如上面提到的,假如连接的两端均保持了当前的状态信息、,传输层可以从网络层的错误中进行恢复。这一问题使我们不得不弄清晰所谓的端到端确认的真正含义。原那么上,传输合同是端到端的,而不像较低层次那样是链接的。现在考虑用户为了同远端数据库进行事务处理而输入恳求信息的状况。假设远程传输实体的编程是先将TPDU传送到其上一层,然后进行确认。即使在该种状况下,在用户的机器上收到一个返回确实认信息并非意味着远端主机运行了足够的时间,并真正对数据库进行了修改。一个真正的端到端确实认意味着工作已经实际完成,未确认那么表示尚未完成,但这种真正的端到端确实认可能无法实现。有关这方面的状况,(Salter等,1984)已经进行了更为具体的争论。[章节小结]本章主要从原理上表达了运输层的作用和掌握机制。运输层在0SI7层合同中处在一个承上启下的作用,负责对上屏蔽低层网络的差异,因此运输层要保证端到端的正确传输,它之上的上层合同不再关怀数据是如何传输,如何保证不出错。运输层为保证端到端的正确传输,实行与数据链路层相像的策略,但运输层与数据链路层不同的是,运输层之下的网络层其性能在不同的应用场合是不同,因此分组在网络层上的表达出的传输特性是不同的,如时延、丧失率等,因此运输层的掌握机制就简单了,如重传时间的测量、连接建立的三次握手等。所以运输层依据网络层的服务质量分为5类,同时向上供应的复用解复用等特性,是依据上层的服务质量要求和网络层能供应的服务由运输层来祢补二者之间在时间、经济性、流量等方面的差异。[课后习题].简述运输层在OSI模型中所处的地位。.简述运输层的基本功能。.简述网络服务分类。划分的依据是什么?.OSI模型规定了哪几种运输合同类?各供应怎样的功能?.简述运输服务的特性。.运输层的连接和数据链路层的连接有什么区分?课后习题答案:.解答:在OSI模型中,运输层位于网络层和会话层之间,采用网络层的服务和运输实体的功能,向会话层供应服务。从通信和信息处理的角度看,运输层属于面对通信局部的最高层。但从网络功能或用户功能来划分,那么运输层又属于用户功能中的最低层。运输层是整个网络体系结构中关键的一层。在整个层次结构中起到承上启下的作用,在通信子网中没有运输层。运输层只存在于通信子网以外的端主机中。.解答:运输层依据会话层的服务质量(QoS,QualityofService)要求,选择适当的网络层服务和运输层合同,以供应牢靠的、价格合理的、与网络层无关的数据传送。运输层采纳多路复用/解复用,分流/合流等方式,弥补高层(上3层)要求与网络层(基于下3层)数据传送服务质量间的差异(过失率、过失恢复力量、吞吐率、延时、费用等),对高层供应稳定和全都的界面。运输层还供应进程间端到端的、透亮的、牢靠的数据传送。.解答:依据网络层供应的服务质量(由残留过失率和可报告过失率两个参数来评价)的性质,网络服务被划分为三种类型。A类网络服务网络连接具有可接受的残留过失率和可接受的可报告过失率。网络服务是一个完善的、抱负的、牢靠的服务。B类网络服务网络连接具有可接受的残留过失率和不行接受的可报告过失率。网络服务是完善的分组传递交换。但有网络连接释放或网络连接重建问题。C类网络服务网络连接具有不行接受的残留过失率和不行接受的可报告过失率。这类网络服务质量最差。.解答:针对网络服务质量的差异,运输层定义了5个运输合同类:0类合同0类合同是面对A类网络服务的。其功能只是建立一个简洁的端到端的运输连接和在数据传输阶段具有将长数据报文分段传送的功能。0类合同是最简洁的合同。1类合同1类合同是面对B类网络服务的。其功能是在0类合同的基础上增加了基本过失恢复功能。2类合同2类合同也是面对A类网络服务的。但2类合同具有复用功能,能进行对运输连接的复用,合同具有相应的流量掌握功能。2类合同中没有网络连接故障恢复功能。3类合同3类合同是面对B类网络服务的。3类合同的功能既有过失恢复功能,又有复用功能。4类合同4类合同是面对C类网络服务的。4类合同具有过失检测、过失恢复、复用等功能。它可以在网络服务质量差时保证高牢靠的数据传输。4类合同是最简单的合同。.解答:运输服务特性:1)供应运输QoS选择:吞吐量、延时、残留过失率等。在满足用户要求的前提下,优化资源使用,以到达最优的性能价格比。2)运输QoS与网络QoS独立:对运输用户供应相对稳定的服务界面。运输层可弥补运输层用户QoS要求与网络层供应的QoS间的差异,使运输服务用户可不关怀底层的通信网络。3)供应端到端数据传送。4)供应透亮的数据传送:对运输用户的数据内容、格式和编码没有限制。5)良好的寻址系统:运输地址对应唯一的TSAP,并能映射到相应的网络层地址机构。.解答:运输层的连接和数据链路层的连接存在着显著的差异。这些差异主要是由于两个合同所运行的环境不同所造成的。在数据链路层,两个网络设施通过物理通道直接通信;而在传输层,这个物理通道由整个子网所取代。这些差异主要表现在:1)在数据链路层,不必指明与谁建立连接一一每条输出线对应唯一的一个目的端设施。在传输层里,需要显式地给出建立连接的目的端地址。2)数据链路层建立连接的过程很简洁,而传输层建立连接的过程要简单得多,通常要用到屡次握手的方法。3)对数据链路层而言,物理通道没有存储力量;而运输层连接那么必需处理由子网的存储力量而带来的问题。4)在数据链路层中,通常为每个连接安排固定数目的缓冲区;而运输层的连接是大量的、动态变化的,因此其缓冲区管理也是动态的。和全都的界面。其次节运输合同类运输层合同是依据网络层供应的服务质量来分类的。经过多年的争论与争论,ISO于1984年通过了OSI运输合同的标准。这就是ISO8072和ISO8073。CCITT参加了这一标准的制订,并通过了相应的X.214和X.224建议书。欧洲计算机厂家协会ECMA,美国我国标准学会ANSI以及美国我国标准局NBS等也都乐观参加了运输层合同标准的制订。NBS已于1988年底改名为我国标准与技术争论院NISTo一、网络服务网络服务质量参数,网络层所供应的服务质量是由以下两个参数来评价的:残留过失率・可报告过失率・残留过失率(ResidualErrorRate):反映网络连接质量,网络实体不行检测;或漏检过失率。残留过失是网络层未改正的差错且不通知运输层。(1)全部传送的网络服务数据单元(NSDU)的分类(4类):Nk胜利传送(SuccessfullyTransferred)的NSDU:Ns错误(Incorrect)的NSDU:Ne丧失的(Lost)NSDU:Nl重复(Extra)的NSDU:Nx(2)定义:在测量时间内,在网络连接上传送的全部错误的、丧失的和重复的NSDU与所传送的全部NSDU之比。(3)公式:可报告过失率:指在可检测的过失中不行恢复的过失所占的比例O(1)残留过失(ResidualError):网络实体不行检测的过失;反映过失检测力量;(2)可报告过失(SignalledError):网络实体可检测,但不行恢复的过失;反映过失恢复力量。①检测到有不行恢复过失的NSDU时,网络实体并不递交运输实体,而是报告运输实体对它进行恢复;通知运输层的网络连接释放(release)或网络连接恢复(reset)o②可报告过失率低,表示网络实体的过失恢复力量强。⑴A类网络服务:可接受的残留过失率、可接受的可报告过失率;A型网络服务是一个完善的、抱负的、牢靠的网络服务。分组在网络中传送时不会丧失也不会失序(失序指分组到达的挨次与发送的挨次不全都),这样,运输层就不需要故障恢复的服务和重新排序的服务等等,因而运输层就特别简洁。(2)B类网络服务:可接受的残留过失率、不行接受的可报告过失率;需要运输实体进行过失恢复。⑶c类网络服务:不行接受的残留过失率、不行接受的可报告过失率;C型网络服务的质量最差。对于这类网络,运输合同应能检测出网络的过失,同时要有过失恢复力量。对失序、重复以及错误投递的数据分组,也应能检测出并进行改正。某些局域网和一些具有移动结点的城域网以及具有衰落信道的分组无线电网都局于c型网络。二、运输合同类为了能够在各种不同网络上进行不同类型的数据的传送,ISO定义了5类(class)运输合同,即第0类至第4类的运输合同。这5类运输合同都是面对连接的。也就是说,用户要进行通信,必需先建立运输连接。当然,这必定要用到网络层供应的服务,或者说,要建立网络连接。同理,在建立网络连接时,又需要建立各有关链路的连接。当数据传送结束后,那么必需释放运输连接。针对网络服务质量的差异,运输层定义了5个运输合同类,供应不同的功能。网络层服务质量降低时,对运输合同的要求就提高,以向运输层用户供应一种比拟稳定的服务界面。表5.1运输合同类主要功能使用的网络服务TPO简洁类(SimpleClass)运输连接管理;ATP1基本过失恢复类(BasicErrorRecoveryClass)TP0+过失恢复;BTP2复用类(MultiplexingClass)TP0+复用/解复用;流量掌握;ATP3过失恢复与复用类(Er
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工作室《高中生职业生涯规划教育内容及途径的行动研究》开题报告初稿
- 借款合同个人协议书七篇
- 二婚离婚协议范本模板
- 《再塑生命的人》课件统编版语文七年级上册
- 药物性荨麻疹病因介绍
- 中考政治总复习第四单元自然界的水教材知识梳理
- (立项备案申请模板)雕塑品项目可行性研究报告参考范文
- (案例)塑胶容器项目立项报告
- (2024)芒硝矿项目可行性研究报告写作范本(一)
- 专题23 走进法治天地 (讲义)(原卷版)
- 教师汇报课活动方案
- 国家公共英语(三级)笔试历年真题试卷汇编1(题后含答案及解析)
- 教师个人成长报告范文(32篇)
- 2024至2030年全球与中国呼叫中心服务市场现状及未来发展趋势
- 护理的院感质控
- 有机化学(上)(华东理工大学)智慧树知到答案2024年华东理工大学
- 人教版八年级数学上册第15章《分式》全部教案(共12课时)
- 中国越剧•唱腔智慧树知到答案2024年浙江艺术职业学院
- 0-3岁婴幼儿生活照护智慧树知到期末考试答案章节答案2024年运城幼儿师范高等专科学校
- 数据中心运维服务投标方案
- DL∕T 1773-2017 电力系统电压和无功电力技术导则
评论
0/150
提交评论