配色: 字号:
第4版(2003)的Ch5-广域网
2013-01-27 | 阅:  转:  |  分享 
  
5.2广域网——第4版的第5章广域网

本章先讨论广域网基本概念,包括广域网所提供的两种服务——数据报和虚电路。接着要讨论分组转发,即网络交换结点怎样知道应通过哪条路径(path)才能将数据转发到所要通信的目的主机。这就要查找转发表。本章只讨论查找转发表的简单过程,而转发表是如何建立的则在下一章讨论。最后介绍三种广域网,即X.25网、帧中继网和采用ATM技术的广域网。

5.1广域网的基本概念

5.1.1广域网的构成

当主机之间的距离较远时,例如,相隔几十或几百公里,甚至几千公里,局域网显然就无法完成主机之间的通信任务。这时就需要另一种结构的网络,即广域网。

广域网由一些结点交换机以及连接这些交换机的链路组成。结点交换机执行将分组存储转发的功能。结点之间都是点到点连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个结点交换机相连。受经济条件的限制,广域网都不使用局域网普遍采用的多点接入技术。从层次上考虑,广域网和局域网的区别很大,因为局域网使用的协议主要在数据链路层(还有少量物理层的内容),而广域网使用的协议在网络层。在广域网中的一个重要问题就是路由选择和分组转发。

然而广域网并没有严格的定义。通常广域网是指覆盖范围很广(远远超过一个城市的范围)的长距离网络。由于广域网的造价较高,一般都是由国家或较大的电信公司出资建造。广域网是因特网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,其距离可以是几千公里的光缆线路,也可以是几万公里的点对点卫星链路。因此广域网首先要考虑的问题是它的通信容量必须足够大,以便支持日益增长的通信量。

图5-1表示相距较远的局域网通过路由器与广域网相连,组成了一个覆盖范围很广的互联网。这样,局域网就可通过广域网与另一个相隔很远的局域网进行通信。互联网和路由器的工作原理将在第6章中讨论。路由器是一种特殊用途的主机,在图中将它画在两种网络之外。其实它也可同时画在两个网络之中,因为它既属于局域网也属于广域网。



图5-1由局域网和广域网组成互联网

像图5-1所示的互联网,即使覆盖范围很广,一般也不称它为广域网,因为在这种网络中,不同网络的“互连”才是它的最主要的特征。互联网必须使用路由器来连接,而广域网指的是单个的网络,它使用结点交换机连接各主机而不是用路由器来连接各网络。结点交换机和路由器都是用来转发分组,它们的工作原理相似。但区别是:结点交换机是在单个网络中转发分组,而路由器是在多个网络构成的互联网中转发分组。

广域网和局域网都是互联网的重要组成构件。尽管它们的价格和作用距离相差很远,但从互联网的角度来看,广域网和局域网却都是平等的(在学完第6章后就能更好地理解这点)。这里的一个关键就是广域网和局域网有一个共同点:连接在一个广域网或一个局域网上的主机在该网内进行通信时,只需要使用其网络的物理地址即可。

5.1.2数据报和虚电路

从层次上看,广域网中的最高层就是网络层。网络层为接在网络上的主机所提供的服务可以有两大类,即无连接的网络服务和面向连接的网络服务。这两种服务的具体实现就是通常所谓的数据报服务和虚电路服务。

图5-2(a)和(b)分别画出了网络提供数据报服务和提供虚电路服务的特点。网络层的用户是运输层实体,但为方便起见,可用主机作为网络层的用户。

我们先讨论数据报服务。

网络提供数据报服务的特点是:网络随时都可接受主机发送的分组(即数据报)。网络为每个分组独立地选择路由。网络只是尽最大努力地将分组交付给目的主机,但网络对源主机没有任何承诺。网络不保证所传送的分组不丢失,也不保证按源主机发送分组的先后顺序以及在多长的时限内必须将分组交付给目的主机。当需要把分组按发送顺序交付给目的主机时,在目的站还必须把收到的分组缓存一下,等到能够按顺序交付主机时再进行交付。当网络发生拥塞时,网络中的某个结点可根据当时的情况将一些分组丢弃(请注意,网络并不是随意丢弃分组)。所以,数据报提供的服务是不可靠的,它不能保证服务质量。实际上“尽最大努力交付”的服务就是没有质量保证的服务。图5-2(a)表示主机H1向H5发送的分组,可以看出,有的分组可经过结点A-B-E,而另一些则可能经过结点A-C-E,或A-C-B-E。在一个网络中可以有多个主机同时发送数据报,例如主机H2经过结点B-E与主机H6通信。



图5-2数据报服务(a)和虚电路服务(b)

再看网络提供虚电路服务的情况。先设图5-2(b)中主机H1要和主机H5通信。于是,主机H1先向主机H5发出一个特定格式的控制信息分组,要求进行通信,同时也寻找一条合适的路由。若主机H5同意通信就发回响应,然后双方就建立了虚电路并可传送数据了。这点很像电话通信,先拨号建立主叫和被叫双方之间的通路,然后再通话。

在图5-2(b)中,我们设寻找到的路由是A→B→E。这就是我们要建立的虚电路(VirtualCircuit):H1→A→B→E→H5(将它记为VC1)。以后主机H1向主机H5传送的所有分组都必须沿着这条虚电路传送。在数据传送完毕后,还要将这条虚电路释放掉。

需要注意的是,由于采用了存储转发技术,所以这种虚电路就和电路交换的连接有很大的不同。在电路交换的电话网上打电话时,两个用户在通话期间自始至终地占用一条端到端的物理信道。但当我们占用一条虚电路进行主机通信时,由于采用的是存储转发的分组交换,所以只是断续地占用一段又一段的链路,虽然我们感觉到好像(但并没有真正地)占用了一条端到端的物理电路。建立虚电路的好处是可以在数据传送路径上的各交换结点预先保留一定数量的资源(如带宽、缓存),作为对分组的存储转发之用。

假定还有主机H2和主机H6通信。所建立的虚电路为经过B→E两个结点的VC2。

在虚电路建立后,网络向用户提供的服务就好像在两个主机之间建立了一对穿过网络的数字管道(收发各用一条)。所有发送的分组都按发送的前后顺序进入管道,然后按照先进先出的原则沿着此管道传送到目的站主机。因为是全双工通信,所以每一条管道只沿着一个方向传送分组。这样,到达目的站的分组顺序就与发送时的顺序一致,因此网络提供虚电路服务对通信的服务质量QoS(QualityofService)有较好的保证。

网络所提供的上述这两种服务的思路来源不同。

虚电路服务的思路来源于传统的电信网。电信网将其用户终端(电话机)做得非常简单,而电信网负责保证可靠通信的一切措施,因此电信网的结点交换机复杂而昂贵。

数据报服务使用另一种完全不同的新思路。它力求使网络生存性好和使对网络的控制功能分散,因而只能要求网络提供尽最大努力的服务。但这种网络要求使用较复杂且有相当智能的主机作为用户终端。可靠通信由用户终端中的软件(即TCP)来保证。

从20世纪70年代起,关于网络层究竟应当采用数据报服务还是虚电路服务,在网络界一直在进行争论。问题的焦点就是网络要不要提供网络端到端的可靠通信?OSI一开始就按照电信网的思路来对待网络,坚持“网络提供的服务必须是非常可靠的”这样一种观点,因此OSI在网络层(以及其他的各个层次)采用了虚电路服务。

然而美国ARPANET的一些专家则认为,根据多年的实践证明,不管用什么方法设计网络,网络(这可能由多个网络互连而成)提供的服务并不可能做得非常可靠,用户主机仍要负责端到端的可靠性。所以他们认为:让网络只提供数据报服务就可大大简化网络层的结构。当然,网络出了差错不去处理而让两端的主机来处理肯定会延误一些时间,但技术的进步使得网络出错的概率已越来越小,因而让主机负责端到端的可靠性不但不会给主机增加更多的负担,反而能够使更多的应用在这种简单的网络上运行。因特网

除以上的区别外,数据报服务和虚电路服务还都各有一些优缺点。

根据统计,网络上传送的报文长度,在很多情况下都很短。若采用128个字节为分组长度,则往往一次传送一个分组就够了。这样,用数据报既迅速又经济。若用虚电路,为了传送一个分组而建立虚电路和释放虚电路就显得太浪费网络资源了。

为了在交换结点进行存储转发,在使用数据报时,每个分组必须携带完整的地址信息。但在使用虚电路的情况下,每个分组不需要携带完整的目的地址,而仅需要有个很简单的虚电路号码的标志,这就使分组的控制信息部分的比特数减少,因而减少了额外开销。

对待差错处理和流量控制,这两种服务也是有差别的。在使用数据报时,主机承担端到端的差错控制和流量控制。在使用虚电路时,分组按顺序交付,网络可以负责差错控制和流量控制。

数据报服务对军事通信有其特殊的意义。这是因为每个分组可独立地选择路由。当某个结点发生故障时,后续的分组就可另选路由,因而提高了可靠性。但在使用虚电路时,结点发生故障就必须重新建立另一条虚电路。数据报服务还很适合于将一个分组发送到多个地址(即广播或多播)。这一点正是当初ARPANET选择数据报的主要理由之一。

表5-1归纳了虚电路服务与数据报服务的主要区别。

表5-1虚电路服务与数据报服务的对比

对比的方面 虚电路服务 数据报服务 思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证 连接的建立 必须有 不要 目的站地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有目的站的全地址 分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发 当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化 分组的顺序 总是按发送顺序到达目的站 到达目的站时不一定按发送顺序 端到端的差错处理和流量控制 可以由分组交换网负责也可以由用户主机负责 由用户主机负责 5.2广域网中的分组转发机制

我们知道分组交换网的分组转发是基于查表的,本节就是讨论这种查表的机制。这一节所讨论的分组转发机制,也是下一章学习互联网的路由选择的基础[COME01]。

在讨论转发机制之前要先说明一下,“转发”(forwarding)和“路由选择”(routing)这两个名词的使用在过去有些混乱。现在的文献倾向于将它们区分开来[PETE00]。

转发就是当交换结点收到分组后,根据其目的地址查找转发表(forwardingtable),并找出应从结点的哪一个接口将该分组发送出去。

路由选择则是构造路由表(routingtable)①的过程。

路由表是根据一定的路由选择算法得到的,而转发表又是根据路由表构造出的。

—————————————————————

①注:名词route和routing的标准译名是“路由”和“路由选择”[MINGCI94]。但routingtable的标准译名是“路由表”而不是“路由选择表”,这可能是为了使译名更简洁些。

—————————————————————

总之,路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构造路由表。从路由表再构造出转发分组的转发表。分组是通过转发表进行转发的。

需要注意的是,当讨论一些原理时,为了使讨论更简单些,在许多文献中没有严格区分“转发”和“路由选择”,也不一定使用“转发表”这一名词(例如,在转发分组时不是说“查找转发表”而是说“查找路由表”)。这样做并不影响对问题实质的理解。

5.2.1在结点交换机中查找转发表

在讨论转发表之前,应先知道广域网是怎样给接入到网络的每一台主机进行编址的。这个问题很重要,因为没有地址的主机是无法在网络中进行通信的。

1.层次结构的地址结构

第4章讨论的局域网采用了平面地址结构(flataddressing)。对不需要进行路由选择的局域网,这种结构非常方便。然而在广域网中,分组往往要经过许多的结点交换机的存储转发才到达目的地。在广域网中每一个结点交换机中都有一个转发表,里面存放了到达每一个主机的路由。显然,广域网中的主机数越多,查找转发表就越费时间。为了减少查找转发表所花费的时间,在广域网中一般都采用层次地址结构(hierarchicaladdressing)。

最简单的层次结构地址就是把一个用二进制数表示的主机地址划分为前后两部分。前一部分的二进制数表示该主机所连接的分组交换机的编号,而后一部分的二进制数表示所连接的分组交换机的端口号,或主机的编号(图5-3)。网络中的结点交换机分为两种:

(1)仅和其他结点交换机相连接;

(2)除了和其他结点交换机相连接,还要和用户主机相连接。

这两种交换机的主要区别是:第一种交换机的连接端口都是高速端口(因为交换机之间的线路速率较高),而第二种交换机还要有一些和主机连接的低速端口。



图5-3最简单的层次地址

例如在图5-4中有三个交换机,其编号分别为1,2和3。每个交换机所连接的主机也按接入的低速端口编上号码。这样,交换机1所接入的两个主机的地址就分别记为[1,1]和[1,3](标注在图中的主机旁边)。如果我们用8个比特来表示主机地址,而交换机的编号和低速端口的编号都各用4个比特,那么上述的两个主机的地址就分别是00010001和00010011。不难看出,采用这种编址方法,在整个广域网中的每一台主机的地址一定是惟一的。实际上,在许多情况下,用户和应用程序不必知道这个地址是分层结构的,而可以将这样的地址简单地看成是一个数。



图5-4主机在广域网中的地址和交换机中的转发表

下面我们先看一下结点交换机是怎样转发分组的。

为简单起见,图5-4中只画出了结点交换机2中的转发表,并只给出了转发表中最重要的两个内容,即一个分组将要发往的目的站,以及分组发往的下一跳(nexthop)①。

例如,图5-4中有一个欲发往主机[3,2]的分组到达了交换机2。在转发表的第3行找出下一跳应为“交换机3”。于是按照转发表的这个指示将该分组转发到交换机3。如果分组的目的地是直接连接在本交换机上的主机,则不需要再将分组转发到别的交换机,这时转发表上注明的就是:“直接”。例如,有一个欲发往主机[2,1]的分组到达了交换机2。查找转发表后在第5行找出,其下一跳应为“直接”,表明该分组已经到达了最后一个交换机,而目的主机就连接在这个交换机上。

------------------------

①注:术语hop的标准译名是“跳”。一个分组在网络中经过一个个的结点交换机存储转发,最后到达目的地,也就是“一跳”接“一跳”地向前转发。“下一跳”也可称为“下一站”,但“下一站”不够准确,因为“站”一般是指连接在网络上的主机(即工作站或站)而不是指网络中的结点交换机,而“跳”则带有转发的含义。有时在转发表上没有写上“下一跳”而是写上“转发端口”。这实质上是一样的。因为“转发端口”和“下一跳”是一一对应的。

应当注意,转发表中没有源站地址这一项。这是因为在分组转发中的下一跳只取决于数据报中的目的站地址,而与源站地址无关。这是一个很重要的概念,应记住。

2.按照目的站的交换机号确定下一跳

仔细再看一下图5-4就可发现,这种转发表还可进行简化。这是因为只要转发表中目的站的交换机号相同,那么查出的“下一跳”就是相同的。因此在确定下一跳时,我们可以不必根据目的站的完整地址,而是可以仅仅根据目的站地址中的交换机号。所以,若将转发表中的“目的站”定义为“目的主机地址中的交换机号”(即不管主机的编号是多少),那么转发表就可进一步简化。例如,图5-4交换机2中的转发表压缩为3行,即将交换机号相同的行合并。

若每个交换机连接10台主机,则简化后的转发表就只有原来的十分之一大小。

采用两个层次的编址方案可使转发分组时只根据分组的第一部分地址(交换机号),即在进行分组转发时,只根据收到的分组的主机地址中的交换机号。只有当分组到达与目的主机相连的结点交换机时,交换机才检查第二部分地址(主机号),并通过合适的低速端口将分组交给目的主机。在互联网环境下也是采用这种分层次转发分组的原理。

5.2.2在路由表中使用默认路由

从上面的讨论可知,所谓广域网的路由问题就是要解决分组在各交换机中应如何进行转发。前面所提到的转发表就是为了解决广域网的路由问题而在交换机中专门设置的。因此,在专门研究广域网的路由问题时,可用图论中的“图(graph)”来表示整个广域网,用“结点”表示广域网上的结点交换机,用连接结点与结点的“边”表示广域网中的链路。至于连接在结点交换机上的主机由于与分组转发无关(因为现在我们是根据主机所连接到的交换机号进行分组的转发),因此在图中一律不画上主机而只剩下各结点交换机。这样得出的较简明的图对于讨论分组转发是非常清晰的。

图5-5左边是一个具有4个结点交换机的例子,而右边则是对应的图。图中结点表示交换机,圆圈中的数字就是结点交换机号,连接两结点的边表示连接交换机的链路。



图5-5用图表示一个广域网

根据图5-5所示的图,可得出每一个结点中的转发表(图5-6)。在“下一跳”下面的“直接”,表示就通过“本交换机”直接发往所连接的主机,而不要再转发到其他结点。



图5-6图5-5中每一个结点的转发表

分析图5-6所示的转发表,就可发现还可再将转发表进一步简化。例如,在结点1的转发表中,当目的站为2,3或4时,分组都是转发到结点3,因而“下一跳”这一列中的“3”是重复出现的。为什么会出现这种情况呢?只要看一下图5-5就知道了。结点1只有一条链路连接到结点3。从结点1发往其他任何结点的分组都只能先转发到结点3。

在较小的网络中,转发表中重复的项目不多。但很大的广域网的转发表中就有可能出现很多的重复项目。这会导致搜索转发表时花费较长的时间。为了减少转发表中的重复项目,可以用一个默认路由(defaultroute)代替所有的具有相同“下一跳”的项目。默认路由比其他项目的优先级低。若转发分组时找不到明确的项目对应,才使用默认路由。图5-7为使用了默认路由的简化转发表,其中有下划线的是默认路由。



图5-7使用了默认路由的简化转发表

从图5-7可看出,只有超过一个以上的目的站有相同的下一跳时,使用默认路由才会使转发表更加简洁,才能减少查找转发表的时间。

到目前为止,我们已经讨论了怎样查找转发表,找到下一跳。然而我们还没有讨论转发表中的各项目是怎样写入的。像图5-5所示的简单网络,我们稍加观察就能写出所有结点的转发表。但对于大型广域网(如有上百个或更多的结点)情况就不同了。在这种情况下就必须使用合适的路由算法。所谓“路由算法”就是用于产生路由表的算法。有关路由算法的问题我们将在下一章进行讨论。

5.3拥塞控制

拥塞控制是广域网和互连网中的一个很重要的问题。本节从一般意义上介绍拥塞控制的意义和拥塞控制的基本原理。

5.3.1拥塞控制的意义

在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞(congestion)。可以将出现资源拥塞的条件写成如下的关系式:

(5-1)

若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。

有人可能会说:“只要任意增加一些资源,例如,将结点缓存的存储空间扩大,或将链路更换为更高速率的链路,或将结点处理机的运算速度提高,就可以解决网络拥塞的问题。”其实不然。这是因为网络拥塞是一个非常复杂的问题。简单地采用上述做法,在许多情况下,不但不能解决拥塞问题,而且还可能使网络的性能更坏。

网络拥塞往往是由许多因素引起的。例如,当某个结点缓存的容量太小时,到达该结点的分组因无存储空间暂存而不得不被丢弃。现在设想将该结点缓存的容量扩展到非常大。于是凡到达该结点的分组均可在这缓存的队列中排队,不受任何限制。由于输出链路的容量和处理机的速度并未提高,因此在这队列中的绝大多数分组的排队等待时间将会很长很长,结果上层软件只好将它们进行重传(因为早就超时了)。由此可见,简单地扩大缓存的存储空间同样会造成网络资源的严重浪费,因而解决不了网络拥塞的问题。

又如,处理机处理的速率太慢可能引起网络的拥塞。简单地将处理机的速率提高,可能会使上述情况缓解一些,但往往又会将瓶颈转移到其他地方。问题的实质往往是整个系统的各个部分不匹配。只有所有的部分都平衡了,问题才会得到解决。

拥塞常常使问题趋于恶化。如果一个路由器没有足够的缓存空间,它就会丢弃一些新到的分组。但当分组被丢弃时,发送这一分组的相邻路由器就会重传这一分组,甚至可能要重传多次。发送端在未收到确认之前必须保留所发分组的副本以便进行可能的重传。在接收端产生的拥塞反过来会引起发送端缓存的拥塞。

拥塞控制与流量控制的关系密切,它们之间也存在着一些差别。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。

相反,流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。流量控制几乎总是存在着从接收端到发送端的某种直接反馈,使发送端知道接收端是处于怎样的状况。

可以用一个简单例子说明这种区别。设有一个光纤网络,其链路传输速率为1000Gb/s。有一个巨型计算机向一个PC机以1Gb/s的速率传送一个文件。显然,网络本身的带宽是足够大的,因而不存在产生拥塞的问题。但流量控制却是必须的,因为巨型计算机必须经常停下来,以便使PC机来得及接收。

但如果有另一个网络,其链路传输速率为1Mb/s,而有1000台大型计算机连接在这个网络上。假定其中的500台计算机分别向其余的500台计算机以100kb/s的速率发送文件。那么现在的问题已不是接收端的大型计算机是否来得及接收,而是整个网络的输入负载是否超过网络所能承受的。

拥塞控制和流量控制之所以常常被弄混,是因为某些拥塞控制算法是向发送端发送控制报文,并告诉发送端,网络已出现麻烦,必须放慢发送速率。这点又和流量控制是很相似的。

进行拥塞控制需要付出代价。这首先需要获得网络内部流量分布的信息。在实施拥塞控制时,还需要在结点之间交换信息和各种命令以便选择控制的策略和实施控制。这样就产生了额外开销。拥塞控制有时需要将一些资源(如缓存、带宽等)分配给个别用户(或一些类别的用户)单独使用,这样就使得网络资源不能更好地实现共享。十分明显,在设计拥塞控制策略时,必须全面衡量得失。

在图5-8中的横坐标是提供的负载(offeredload),代表单位时间内输入给网络的分组数目。因此提供的负载也称为输入负载或网络负载。纵坐标是吞吐量(throughput),代表单位时间内从网络输出的分组数目。具有理想拥塞控制的网络,在吞吐量饱和之前,网络吞吐量应等于提供的负载,故吞吐量曲线是45(的斜线。但当提供的负载超过某一限度时,由于网络资源受限,吞吐量不再增长而保持为水平线,即吞吐量达到饱和。这就表明提供的负载中有一部分损失掉了(例如,输入到网络的某些分组被某个结点丢弃了)。虽然如此,在这种理想的拥塞控制作用下,网络的吞吐量仍然维持在其所能达到的最大值。



图5-8拥塞控制所起的作用

但是,实际网络的情况就很不相同了。从图5-8可看出,随着提供的负载的增大,网络吞吐量的增长速率逐渐减小。也就是说,在网络吞吐量还未达到饱和时,就已经有一部分的输入分组被丢弃了。当网络的吞吐量明显地小于理想的吞吐量时,网络就进入了轻度拥塞的状态。更值得注意的是,当提供的负载达到某一数值时,网络的吞吐量反而随提供的负载的增大而下降,这时网络就进入了拥塞状态。当提供的负载继续增大到某一数值时,网络的吞吐量就下降到零,网络已无法工作。这就是所谓的死锁(deadlock)。

死锁中有一种是直接死锁,即由互相占用了对方需要的资源而造成的死锁。例如两个结点A和B都有大量的分组要发往对方,但两个结点中的缓存在发送之前就已经全部被待发分组占满了。这样,当每个分组到达对方时,由于没有地方存放,只好被丢弃。发送分组的一方因收不到对方发来的确认信息,只能将发送过的分组依然保存在自己结点的缓存中。这两个结点就这样一直互相僵持着,谁也无法成功地发送出一个分组。

还有一种死锁是由于路由器的缓存的拥塞而引起的重装死锁(reassemblydeadlock)。图5-9为重装死锁的例子。设三个报文A,B和C经过路由器P,Q和R发往主机H。每一个报文由四个分组构成。又设每个路由器的缓存只能容纳4个分组。从图5-9可看出,路由器R已为报文A预留了4个分组的缓存。由于分组A3还未到达,所以目前还不能交付给主机H。目前分组A3暂存于路由器P的缓存中,它无法转发到路由器Q,因为路由器Q的缓存已全占满了。路由器Q的缓存中的任何一分组都不能向前转发,因为路由器R的缓存全是给报文A预留的。



图5-9重装死锁举例

加上合适的拥塞控制后,网络就不易出现拥塞现象和死锁。图5-8表明,我们付出的代价就是:当提供的负载较小时,有拥塞控制的吞吐量反而比无拥塞控制时要小。

在分组交换网中,网络性能恶化有时是由于网络的资源白白地被浪费了。最常被浪费的网络资源是通信信道带宽和结点的存储空间。

5.3.2拥塞控制的一般原理

从原理上讲,寻找拥塞控制的方案无非是寻找使不等式(5-1)不再成立的条件。这或者是增大网络的某些可用资源(如业务繁忙时增加一些链路,增大链路的带宽,或使额外的通信量从另外的通路分流),或减少一些用户对某些资源的需求(如拒绝接受新的建立连接的请求,或要求用户减轻其负荷,这属于降低服务质量)。但正如上面所讲过的,在采用某种措施时,还必须考虑到该措施所带来的其他影响。

实践证明,拥塞控制很难设计,因为它是一个动态的(而不是静态的)问题。当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。

由于计算机网络是一个很复杂的系统,因此可以从控制理论的角度来看拥塞控制这个问题。这样,从大的方面看,可以分为开环控制和闭环控制两种方法。开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。但一旦整个系统运行起来,就不再中途进行改正了。

闭环控制是基于反馈环路的概念。属于闭环控制的有以下几种措施:

(1)监测网络系统以便检测到拥塞在何时、何处发生。

(2)将拥塞发生的信息传送到可采取行动的地方。

(3)调整网络系统的运行以解决出现的问题。

有很多的方法可用来监测网络的拥塞。主要的一些指标是:由于缺少缓存空间而被丢弃的分组的百分数;平均队列长度;超时重传的分组数;平均分组时延;分组时延的标准差等等。上述这些指标的上升都标志着拥塞的增长。

一般在监测到拥塞发生时,要将拥塞发生的信息传送到产生分组的源站。当然,通知拥塞发生的分组同样会使网络更加拥塞。

另一种方法是在路由器转发的分组中保留一个比特或字段,用该比特或字段的值表示网络没有拥塞或产生了拥塞。也可以由一些主机或路由器周期性地发出分组,以询问拥塞是否发生。

此外,过于频繁地采取行动以缓和网络的拥塞会使系统产生不稳定的振荡。但过于迟缓地采取行动又不具有任何实用价值。因此,要采用某种折中的方法。但选择正确的时间常数是相当困难的。

一些更加具体的防止网络拥塞的方法将在7.4.4节介绍。

5.4X.25网

X.25网就是X.25分组交换网,它是在二十多年前根据CCITT(即现在的ITU-T)的X.25建议书实现的计算机网络。X.25网在推动分组交换网的发展中曾做出了很大的贡献。但是,现在已经有了性能更好的网络来代替它,如帧中继网或ATM网。

X.25只是一个对公用分组交换网接口的规约。X.25所讨论的都是以面向连接的虚电路服务为基础。这一概念如图5-10所示。图中画的是一个数据终端设备DTE同时和另外两个DTE进行通信的情况。网络中的虚线代表两条虚电路。图中还画出了三个DTE与数据电路端接设备DCE的接口。X.25所规定的正是关于这一接口的标准。



图5-10X.25规定了DTE-DCE的接口

DTE与DCE的接口实际上也就是DTE和公用分组交换网的接口。由于DCE通常是用户设施,因此可将DCE画在网络外面(图5-10)。

图5-11表示X.25接口的三个层次。最下面是物理层,接口标准是X.21建议书。第二层是数据链路层,接口标准是平衡型链路接入规程LAPB,它就是第3章介绍的HDLC的一个子集。第三层是分组层(不叫网络层),在这一层上,在DTE与DCE之间可建立多条逻辑信道(0~4095号)。这样可以使一个DTE同时和网上其他多个DTE建立虚电路并进行通信。从第一层到第三层,数据传送的单位分别是“比特”、“帧”和“分组”。X.25还规定了在经常需要进行通信的两个DTE之间可以建立永久虚电路。



图5-11X.25的层次关系

从以上的简单介绍就可看出,X.25分组交换网和以IP协议为基础的因特网在设计思想上有着根本的差别。因特网是无连接的,只提供尽最大努力交付的数据报服务,无服务质量可言。而X.25网是面向连接的,能够提供可靠交付的虚电路服务,能保证服务质量。正因为X.25网能保证服务质量,在二十多年前它曾经是颇受欢迎的一种计算机网络。

大家知道,在二十多年前,计算机的价格很贵,许多用户只用得起廉价的哑终端(连硬盘都没有)。当时通信线路的传输质量一般都较差,误码率较高。X.25网的设计思路是将智能做在网络内。X.25网在每两个结点之间的传输都使用带有编号和确认机制的HDLC协议,而网络层使用具有流量控制的虚电路机制,可以向用户的哑终端提供可靠交付的服务。但是到了20世纪90年代,情况就发生了很大的变化。通信主干线路已大量使用光纤技术,数据传输质量大大提高使得误码率降低好几个数量级,而X.25十分复杂的数据链路层协议和分组层协议已成为多余的。PC机的价格急剧下降使得无硬盘的哑终端退出了通信市场。这正好符合因特网当初的设计思想:网络应尽量简单而智能应尽可能放在网络以外的用户端。虽然因特网只提供尽最大努力交付的服务,但具有足够智能的用户PC机完全可以实现差错控制和流量控制,因而因特网仍能向用户提供端到端的可靠交付。

这样,到了20世纪末,无连接的、提供数据报服务的因特网最终演变成为全世界最大的计算机网络,而X.25分组交换网却退出了历史舞台。

值得注意的是,当利用现有的一些X.25网来支持因特网的服务时,X.25网就表现为数据链路层的链路。图5-12说明了这一情况。设路由器B和C之间是X.25网络。在B和C之间建立的X.25虚电路就相当于IP层下面的数据链路层。在有的计算机网络文献中,常把支持因特网的广域网(包括X.25网、帧中继网和ATM网)都看成是IP层下面的数据链路层。不过在单独讨论广域网的问题时,广域网还是应当属于网络层。本书就是这样处理广域网的。



图5-12X.25虚电路相当于IP层下面的数据链路层

5.5帧中继FR

5.5.1帧中继的工作原理

在20世纪80年代后期,许多应用都迫切要求增加分组交换服务的速率。然而X.25网络的体系结构并不适合于高速交换。可见需要研制一种支持高速交换的网络体系结构。帧中继FR(FrameRelay)就是为这一目的而提出的[STAL00]。帧中继在许多方面非常类似于X.25,它被称为第二代的X.25。在1992年帧中继问世后不久就得到了很大的发展。

在X.25网络发展初期,网络传输设施基本是借用了模拟电话线路,这种线路非常容易受到噪声的干扰而产生误码。为了确保传输无差错,X.25在每个结点都需要作大量的处理。例如,X.25的数据链路层协议LAPB保证了帧在结点间无差错传输。在网络中的每一个结点,只有当收到的帧已进行了正确性检查后,才将它交付给第3层协议。对于经历多个网络结点的帧,这种处理帧的方法会导致较长的时延。除了数据链路层的开销,分组层协议为确保在每个逻辑信道上按序正确传送,还要有一些处理开销。在一个典型的X.25网络中,分组在传输过程中在每个结点大约有30次左右的差错检查或其他处理步骤。

今天的数字光纤网比早期的电话网具有低得多的误码率,因此,我们完全可以简化X.25的某些差错控制过程。如果减少结点对每个分组的处理时间,则各分组通过网络的时延亦可减少,同时结点对分组的处理能力也就增大了。

帧中继就是一种减少结点处理时间的技术。帧中继的原理很简单。当帧中继交换机收到一个帧的首部时,只要一查出帧的目的地址就立即开始转发该帧。因此在帧中继网络中,一个帧的处理时间比X.25网约减少一个数量级。这样,帧中继网络的吞吐量要比X.25网络的提高一个数量级以上。

那么若出现差错该如何处理呢?显然,只有当整个帧被收下后该结点才能够检测到比特差错。但是当结点检测出差错时,很可能该帧的大部分已经转发出去了。

解决这一问题的方法实际上非常简单。当检测到有误码时,结点要立即中止这次传输。当中止传输的指示到达下个结点后,下个结点也立即中止该帧的传输,并丢弃该帧。即使上述出错的帧已到达了目的结点,用这种丢弃出错帧的方法也不会引起不可弥补的损失。不管是上述的哪一种情况,源站将用高层协议请求重传该帧。帧中继网络纠正一个比特差错所用的时间当然要比X.25网分组交换网稍多一些。因此,仅当帧中继网络本身的误码率非常低时,帧中继技术才是可行的。

当正在接收一个帧时就转发此帧,通常被称为快速分组交换(fastpacketswitching)。快速分组交换在实现的技术上有两大类,它是根据网络中传送的帧长是可变的还是固定的来划分。在快速分组交换中,当帧长为可变时就是帧中继;当帧长为固定时(这时每一个帧叫做一个信元)就是信元中继(CellRelay),像异步传递方式ATM就属于信元中继。

图5-13(a)和(b)分别是一般分组交换网络和帧中继这两种方式在层次上的对比。前者的概念已在前面讲过。这里要指出的是,对于一般的分组交换网,其数据链路层具有完全的差错控制。但对于帧中继网络,不仅其网络中的各结点没有网络层,并且其数据链路层只具有有限的差错控制功能。只有在通信两端的主机中的数据链路层才具有完全的差错控制功能。图5-13(b)中带阴影的部分表示帧中继网络只有最低的两层。



图5-13从层次关系上比较一般分组交换网(a)与帧中继方式(b)

图5-14比较了两种情况下从源站到目的站传送一帧在网络的各链路上所要传送的信息。若在传送的过程中出现了差错而导致分组的重传,则二者的差别就还要大。图5-14(a)是一般分组交换网的情况,每一个结点在收到一个数据帧后都要向前一个结点发回确认帧,而目的站最后还要向源站发回确认,这也要逐站进行确认(即对确认帧的确认)。图5-14(b)是帧中继的情况,它的中间站只转发数据帧而不发送确认帧,即中间站没有逐段的链路控制能力。只有在目的站收到数据帧后才向源站发回端到端的确认。因此帧中继在数据传输的过程中省略掉了很多的确认过程。

帧中继的数据链路层也没有流量控制能力。帧中继的流量控制由高层来完成。



图5-14一般分组交换网的存储转发方式(a)与帧中继方式(b)的对比

帧中继的呼叫控制信令是在与用户数据分开的另一个逻辑连接上传送的(即共路信令或带外信令,见附录C)。这点和X.25很不相同。X.25使用带内信令,即呼叫控制分组与用户数据分组都在同一条虚电路上传送。

帧中继的逻辑连接的复用和交换都在第二层处理,而不是像X.25在第三层处理。

帧中继网络向上提供面向连接的虚电路服务。虚电路一般分为交换虚电路SVC和永久虚电路PVC两种,但帧中继网络通常为相隔较远的一些局域网提供链路层的永久虚电路服务。永久虚电路的好处是在通信时可省去建立连接的过程。图5-15(a)是一个例子。帧中继网络有4个帧中继交换机。帧中继网络与局域网相连的交换机相当于DCE,而与帧中继网络相连的路由器则相当于DTE。当帧中继网络为其两个用户提供帧中继虚电路服务时,对两端的用户来说,帧中继网络所提供的虚电路就好像在这两个用户之间有一条直通的专用电路(图5-15(b))。用户看不见帧中继网络中的帧中继交换机。



图5-15帧中继网络提供的服务:

(a)帧中继提供虚电路服务;(b)虚电路像一条专用电路

下面是帧中继网络的工作过程。

当用户在局域网上传送的MAC帧传到与帧中继网络相连接的路由器时,该路由器就剥去MAC帧的首部,将IP数据报交给路由器的网络层。网络层再将IP数据报传给帧中继接口卡。帧中继接口卡将IP数据报加以封装,加上帧中继帧的首部(其中包括帧中继的虚电路号),进行CRC检验和加上帧中继帧的尾部。然后帧中继接口卡将封装好的帧通过向电信公司租来的专线发送给帧中继网络中的帧中继交换机。帧中继交换机在收到一个帧时,就按虚电路号对帧进行转发(若检查出有差错则丢弃)。当这个帧被转发到虚电路的终点路由器时,该路由器剥去帧中继帧的首部和尾部,加上局域网的首部和尾部,交付给连接在此局域网上的目的主机。目的主机若发现有差错,则报告上层的TCP协议处理。

图5-16进一步给出了帧中继服务的几个主要组成部分。用户通过帧中继用户接入电路(UserAccessCircuit)连接到帧中继网络,常用的用户接入电路的速率是64kb/s和2.048Mb/s(或T1速率1.544Mb/s)。理论上也可使用T3或E3的速率。帧中继用户接入电路又称为用户网络接口UNI(User-to-NetworkInterface)。UNI有两个端口。在用户的一侧叫做用户接入端口(UserAccessPort),而在帧中继网络一侧的叫做网络接入端口(NetworkAccessPort)。用户接入端口就是在用户屋内设备CPE(CustomerPremisesEquipment)中的一个物理端口(例如,一个路由器端口)。一个UNI中可以有一条或多条虚电路(永久的或交换的)。图中的UNI画有两条永久虚电路:PVC1和PVC2。从用户的角度来看,一条永久虚电路PVC就是跨接在两个用户接入端口之间。每一条虚电路都是双向的,并且每一个方向都有一个指派的CIR。CIR就是承诺的信息速率(CommittedInformationRate)。为了区分开不同的PVC,每一条PVC的两个端点都各有一个数据链路连接标识符DLCI(DataLinkConnectionIdentifier)。



图5-16帧中继服务的几个主要组成部分

下面我们归纳一下帧中继的主要优点:

(1)减少了网络互连的代价。当使用专用帧中继网络时,将不同的源站产生的通信量复用到专用的主干网上,可以减少在广域网中使用的电路数。多条逻辑连接复用到一条物理连接上可以减少接入代价。

(2)网络的复杂性减少但性能却提高了。与X.25相比,由于网络结点的处理量减少,由于更加有效地利用高速数据传输线路,帧中继明显改善了网络的性能和响应时间。

(3)由于使用了国际标准,增加了互操作性。帧中继的简化的链路协议实现起来不难。接入设备通常只需要一些软件修改或简单的硬件改动就可支持接口标准。现有的分组交换设备和T1/E1复用器都可进行升级,以便在现有的主干网上支持帧中继。

(4)协议的独立性。帧中继可以很容易地配置成容纳多种不同的网络协议(如IP,IPX和SNA等)的通信量。可以用帧中继作为公共的主干网,这样可统一所使用的硬件,也更加便于进行网络管理。

根据帧中继的特点,可以知道帧中继适用于大文件(如高分辨率图像)的传送、多个低速率线路的复用,以及局域网的互连。

5.5.2帧中继的帧格式

图5-17画的是帧中继的帧格式。这种格式与HDLC帧格式类似,其最主要的区别是没有控制字段。这是因为帧中继的逻辑连接只能携带用户的数据,并且没有帧的序号,也不能进行流量控制和差错控制。

下面简单介绍其各字段的作用。



图5-17帧中继的帧格式



(1)标志是一个01111110的比特序列,用于指示一个帧的起始和结束。它的惟一性是通过比特填充法来确保的。

(2)信息是长度可变的用户数据。

(3)帧检验序列包括2字节的CRC检验。当检测出差错时,就将此帧丢弃。

(4)地址一般为2字节,但也可扩展为3或4字节。

地址字段中的几个重要部分是:

·数据链路连接标识符DLCIDLCI字段的长度一般为10bit(采用默认值2字节地址字段),但也可扩展为16bit(用3字节地址字段),或23bit(用4字节地址字段),这取决于扩展地址字段的值。DLCI的值用于标识永久虚电路(PVC)、呼叫控制或管理信息。

·前向显式拥塞通知FECN(ForwardExplicitCongestionNotification)若某结点将FECN置为1,表明与该帧在同方向传输的帧可能受网络拥塞的影响而产生时延。

·反向显式拥塞通知BECN(BackwardExplicitCongestionNotification)若某结点将BECN置为1即指示接受者,与该帧反方向传输的帧可能受网络拥塞的影响产生时延。

·可丢弃指示DE(DiscardEligibility)在网络发生拥塞时,为了维持网络的服务水平就必须丢弃一些帧。显然,网络应当先丢弃一些相对比较不重要的帧。帧的重要性体现在DE比特。DE比特为1的帧表明这是较为不重要的低优先级帧,在必要时可丢弃。而DE=0的帧为高优先级帧,希望网络尽可能不要丢弃这类帧。用户采用DE比特就可以比通常允许的情况多发送一些帧,并将这些帧的DE比特置1(表明这是较为次要的帧)。

应当注意:数据链路连接标识符DLCI只具有本地意义。在一个帧中继的连接中,在连接两端的用户网络接口UNI上所使用的两个DLCI是各自独立选取的。帧中继可同时将多条不同DLCI的逻辑信道复用在一条物理信道中。

5.5.3帧中继的拥塞控制

帧中继的拥塞控制实际上是网络和用户共同负责来实现的。网络(即交换机的集合)能够非常清楚地监视全网的拥塞程度,而用户则在限制通信量方面是最有效的。帧中继使用的拥塞控制方法有以下三种:

(1)丢弃策略。当拥塞足够严重时,网络就要被迫将帧丢弃。这是网络对拥塞的最基本的响应。但在具体操作时应当对所有用户都是公平的。

(2)拥塞避免。在刚一出现轻微的拥塞迹象时可采取拥塞避免的方法。这时,帧中继网络应当有一些信令机制及时地使拥塞避免过程开始工作。

(3)拥塞恢复。在已出现拥塞时,拥塞恢复过程可阻止网络彻底崩溃。当网络由于拥塞开始将帧丢弃时(这时高层软件能够发现这一问题),拥塞恢复过程就应开始工作。

为了进行拥塞控制,帧中继采用了一个概念,叫做承诺的信息速率CIR(CommittedInformationRate),其单位为b/s。CIR就是对一个特定的帧中继连接,用户和网络共同协商确定的关于用户信息传送速率的门限数值。CIR数值越高,帧中继用户向帧中继的服务提供者交纳的费用也就越多。只要端用户在一段时间内的数据传输速率超过CIR,在网络出现拥塞时,帧中继网络就可能会丢弃用户所发送的某些帧。虽然使用了“承诺的”这一名词,但当数据传输速率不超过CIR时,网络并不保证一定不发生帧丢弃。当网络拥塞已经非常严重时,网络可以对某个连接只提供比CIR还差的服务。当网络必须将一些帧丢弃时,网络将首先选择超过其CIR值的那些连接上的帧来丢弃。请注意:CIR并非用来限制数据率的瞬时值。CIR是用来限制端用户在某一段测量时间间隔Tc内(这段时间的长短没有国际标准,通常由帧中继网络提供者确定)所发送的数据的平均数据率。时间间隔Tc越大,通信量超过平均数据率的波动就可能越大。

每个帧中继结点都应使通过该结点的所有连接的CIR的总和不超过该结点的容量,即不能超过该结点的接入速率(accessrate)。

对于永久虚电路连接,每一个连接的CIR应在连接建立时即确定下来。对于交换虚电路连接,CIR的参数应在呼叫建立阶段协商确定。

当拥塞发生时,应当丢弃什么样的帧呢?这就是检查一个帧的可丢弃指示DE字段。若数据的发送速率超过CIR,则结点交换机就将所收到的帧的DE比特都置为1,并转发此帧。这样的帧,可能会通过网络,但也可能在网络发生拥塞时被丢弃。若结点交换机在收到一个帧时,其数据发送速率已超过网络所设定的最高速率,则立即将其丢弃。

总之,帧中继网络的拥塞控制的原则是:

(1)若数据率小于CIR,则在该连接上传送的所有帧均被置为DE=0(这表明在网络发生拥塞时尽量不要丢弃DE=0的帧)。这在一般情况下传输是有保证的。

(2)若数据率仅在不太长的时间间隔大于CIR,则网络可以将这样的帧置为DE=1,并在可能的情况下进行传送(即不一定丢弃,视网络的拥塞程度而定)。

(3)若数据率超过CIR的时间较长,以致注入到网络的数据量超过了网络所设定的最高门限值,则应立即丢弃该连接上传送的帧。

下面用简单数字说明CIR的意义。设某个结点的接入速率为64kb/s。该结点使用的一条虚电路被指派的CIR=32kb/s,而CIR的测量时间间隔Tc=500ms。再假定帧中继网络的帧长L=4000bit。这就表示在500ms的时间间隔内,这条虚电路只能够发送CIR(Tc/L=4个高优先级的帧中继帧,其DE=0。这就是说,这4个高优先级帧在网络中的传输是有保证的,但由于CIR的数值只是接入速率的一半,因此用户在500ms内还可再发送4个低优先级的帧,其DE=1。

帧中继还可利用显式信令避免拥塞。上面讲过,在帧中继的地址字段中有两个指示拥塞的比特,即前向显式拥塞通知FECN和反向显式拥塞通知BECN。我们设帧中继网络的两个用户A和B之间已经建立了一条双向通信的连接。当两个方向都没有拥塞时,则在两个方向传送的帧中,FECN和BECN都应为零。反之,若这两个方向都发生了拥塞,则不管是哪一个方向,FECN和BECN都应置为1。当只有一个方向发生拥塞而另一个方向无拥塞时,FECN和BECN中的哪一个应置为1,则取决于帧是从A传送的B还是从B传送到A。

网络可以根据结点中待转发的帧队列的平均长度是否超过门限值来确定是否发生了拥塞。

用户也可以根据收到的显式拥塞通知信令采用相应的措施。当收到BECN信令时的处理方法比较简单。用户只要降低数据发送的速率即可。但当用户收到一个FECN信令时,情况就较复杂,因为这需要用户通知这个连接的对等用户来减少帧的流量。帧中继协议所使用的核心功能并不支持这样的通知,因此需要在高层来进行相应的处理。

5.6异步传递方式ATM

5.6.1ATM的基本概念

现有的电路交换和分组交换在实现宽带高速的交换任务时,都表现有一些缺点。

对于电路交换,当数据的传输速率及其突发性变化非常之大时,交换的控制就变得十分复杂。对于分组交换,当数据传输速率很高时,协议数据单元在各层的处理成为很大的开销,无法满足实时性很强的业务的时延要求。特别是,基于IP的分组交换网不能保证服务质量。

但电路交换的实时性和服务质量都很好而分组交换的灵活性很好,因此,人们曾经设想过“未来最理想的”一种网络应当是宽带综合业务数字网B-ISDN(见附录C),它采用另一种新的交换技术,这种技术结合了电路交换和分组交换的优点。虽然在今天看来B-ISDN并没有成功,但ATM技术还是获得了相当广泛的应用,并在因特网的发展中起到了重要的作用。

异步传递方式ATM(AsynchronousTransferMode)①就是建立在电路交换和分组交换的基础上的一种面向连接的快速分组交换技术,它采用定长分组作为传输和交换的单位。在ATM中这种定长分组叫做信元(cell)。①注:请不要和银行使用的自动取款机ATM(AutomaticTellerMachine)弄混。这种机器与本节讨论的ATM无关。

首先应当弄清ATM名词中“异步”的含义。

在第2章的2.6节中已讲过,目前在高速数字通信系统中,在物理层是使用同步传输的SDH。这里的“同步”是指网络中各链路上的比特流都是受同一个非常精确的主时钟的控制。

我们知道,SDH传送的同步比特流被划分为一个个固定时间长度的帧(请注意,这是时分复用的时间帧,而不是数据链路层的帧)。当用户的ATM信元需要传送时,就可插入到SDH的一个帧中,但每一个用户发送的信元在每一帧中的相对位置并不是固定不变的。如果用户有很多信元要发送,就可以接连不断地发送出去。只要SDH的帧有空位置就可以将这些信元插入进来。因此,这和第2章的2.5.1节介绍的异步时分复用是一样的原理。也就是说,ATM名词中的“异步”是指将ATM信元“异步插入”到同步的SDH比特流中。

如果是使用同步插入(即同步时分复用),则用户在每一帧中所占据的时隙的相对位置是固定不变的,即用户只能周期性地占用每一个帧中分配给自己的固定时隙(一个时隙可以是一个或多个字节),而不能再使用其他的已分配给别人的空闲时隙。

ATM的主要优点如下:

(1)选择固定长度的短信元作为信息传输的单位,有利于宽带高速交换。信元长度为53字节,其首部(可简称为信头)为5字节。长度固定的首部可使ATM交换机的功能尽量简化,只用硬件电路就可对信元进行处理,因而缩短了每一个信元的处理时间。在传输实时话音或视频业务时,短的信元有利于减小时延,也节约了结点交换机为存储信元所需的存储空间。

(2)能支持不同速率的各种业务。ATM允许终端有足够多比特时就去利用信道,从而取得灵活的带宽共享。来自各终端的数字流在链路控制器中形成完整的信元后,即按先到先服务的规则,经统计复用器,以统一的传输速率将信元插入一个空闲时隙内。链路控制器调节信息源进网的速率。不同类型的服务都可复用在一起,高速率信源就占有较多的时隙。交换设备只需按网络最大速率来设置,它与用户设备的特性无关。

(3)所有信息在最低层是以面向连接的方式传送,保持了电路交换在保证实时性和服务质量方面的优点。但对用户来说,ATM既可工作于确定方式(即承载某种业务的信元基本上周期性地出现),以支持实时型业务;也可以工作于统计方式(即信元不规则地出现),以支持突发型业务。

(4)ATM使用光纤信道传输。由于光纤信道的误码率极低,且容量很大,因此在ATM网内不必在数据链路层进行差错控制和流量控制(放在高层处理),因而明显地提高了信元在网络中的传送速率。

ATM的一个明显缺点就是信元首部的开销太大,即5字节的信元首部在整个53字节的信元中所占的比例相当大。

由于ATM具有上述的许多优点,因此在ATM技术出现后,不少人曾认为ATM必然成为未来的宽带综合业务数字网B-ISDN的基础。但实际上ATM只是用在因特网的许多主干网中。ATM的发展之所以不如当初预期的那样顺利,主要是因为ATM的技术复杂且价格较高,同时ATM能够直接支持的应用不多。与此同时,无连接的因特网ATM在因特网

一个ATM网络包括两种网络元素,即ATM端点(endpoint)和ATM交换机。

ATM端点又称为ATM端系统,即在ATM网络中能够产生或接收信元的源站或目的站。ATM端点通过点到点链路与ATM交换机相连。

ATM交换机就是一个快速分组交换机(交换容量高达数百Gb/s),其主要构件是交换结构(switchingfabric)、若干个高速输入端口和输出端口、以及必要的缓存(见图5-18,这里没有画出缓存)。该ATM交换机有4个输入端口和4个输出端口。在交换结构的作用下(后面的5.6.3节还要讨论和ATM交换机的工作过程),从输入端口a进入到ATM交换机的信元,经过交换结构从输出端口g离开ATM交换机,而从输入端口c进入到ATM交换机的信元,经过交换结构后从端口f离开ATM交换机。



图5-18ATM交换机的交换结构和输入端口、输出端口

由于ATM标准并不对ATM交换机的具体交换结构做出规定,因此现在已经出现了多种类型的ATM交换结构。限于篇幅,本书不讨论ATM交换机的交换结构的具体实现方法。

最简单的ATM网络可以只有一个ATM交换机,并通过一些点到点链路与各ATM端点相连。较小的ATM网络只拥有少量的ATM交换机,一般都连接成网格状网络以获得较好的连通性。大型ATM网络则拥有较多数量的ATM交换机,并按照分级的结构连成网络。

5.6.2ATM的协议参考模型和信元结构

1.ATM的协议参考模型

制定ATM标准的最主要的组织机构有ITU-T和ATM论坛(ATMForum)[W-ATM]以及IETF等。下面介绍ATM的协议参考模型(图5-19)。



图5-19ATM的协议参考模型

ATM的协议参考模型共有三层,大体上与OSI的最低两层相当(但无法严格对应)。

(1)物理层

物理层又分为两个子层。靠下面的是物理媒体相关(PhysicalMediumDependent)子层,即PMD子层。PMD子层的上面是传输汇聚(TransmissionConvergence)子层,即TC子层。

·PMD子层负责在物理媒体上正确传输和接收比特流。它完成只和媒体相关的功能,如线路编码和解码、比特定时以及光电转换等。对不同的传输媒体PMD子层是不同的。可供使用的传输媒体有:铜线(UTP或STP)、同轴电缆、光纤(单模或多模)或无线信道等。

·TC子层实现信元流和比特流的转换,包括速率适配(空闲信元的插入)、信元定界与同步、传输帧的产生与恢复等。在发送时,TC子层将上面的ATM层交下来的信元流转换成比特流,再交给下面的PMD子层。在接收时,TC子层将PMD子层交上来的比特流转换成信元流,标记出每一个信元的开始和结束,并交给ATM层。TC子层的存在使得ATM层实现了与下面的传输媒体完全无关。典型的TC子层就是SONET/SDH。

图5-20给出了一个例子,说明ATM的信元流是怎样装入到一个STM-1帧(STM-1的速率就是OC-3的速率)中。这是一个9行(270列的字节排列。



图5-20ATM的信元流装入一个STM-1帧的例子

一个STM-1帧共有270(9字节(由于每帧的字节数太大,因此将一个帧画成为长方形结构,每帧有9行,每行270字节),即2430字节,或19,440bit。每秒共发送8000帧,因此数据率为155.520Mb/s。在每一行的270字节中的前9字节作为开销(overhead)和指针(pointer)之用(其格式相当复杂,这里从略),剩下的空间就用来放入ATM信元,因此这部分空间叫做有效载荷(payload,有人也将此名词译为“净负荷”),它共有9行,每行261字节,总数是2349字节。由于2349并不是53的整数倍,一个信元会跨过有效载荷区域的边界,因此需要用指针来指明一个信元的边界在何处。

ATM物理层中的TC子层的许多功能类似于OSI模型的数据链路层。

(2)ATM层

主要完成交换和复用功能,与传送ATM信元的物理媒体或物理层无关。

每一个ATM连接都用信元首部中的两级标号来识别。第一级标号是虚通路标识VCI(VirtualChannelIdentifier),第二级标号是虚通道标识符VPI(VirtualPathIdentifier)①。

一个虚通路VC是在两个或两个以上的端点之间的一个运送ATM信元的通信通路。

一个虚通道VP包含有许多相同端点的虚通路,而这许多虚通路都使用同一个虚通道标识符VPI。在一个给定的接口,复用在一条链路上的许多不同的虚通道,用它们的虚通道标识符VPI来识别。而复用在一个虚通道VP中的不同的虚通路,用它们的虚通路标识符VCI来识别。图5-21表示了使用VPI和VCI来标识VP和VC的方法。



图5-21ATM连接的标识符VCI和VPI

①注:这两个名词的译名比较混乱。有人将VirtualPath译为“虚通路”或“虚路径”,而将VirtualChannel译为“虚通道”或“虚信道”。但使用它们的英文缩写VPI和VCI则是无二义性的。请读者在阅读中文的ATM资料时特别注意。

在一个给定的接口上,属于两个不同的VP的两个VC,可以具有相同的VCI。如图中所示的三个不同的虚通道VP都可以使用相同的虚通路标识符VCx或VCy。因此,要同时使用VPI和VCI这两个参数才能完全识别一个虚通路VC。应当强调指出,一个给定的VCI值没有端到端的意义。VP在经过集中器或交换机时,其VPI也会改变。关于这点后面还要讨论。

ATM层的功能是:

·信元的复用与分用;·信元的VPI/VCI转换(就是将一个入信元的VPI/VCI转换成新的数值);

·信元首部的产生与提取;·流量控制。

(3)ATM适配层

ATM传送和交换的是53字节固定长度的信元。但是上层的应用程序向下层传递的并不是53字节长的信元。例如,在因特网的IP层传送的是各种长度的IP数据报。因此当IP数据报需要在ATM网络上传送时,就需要有一个接口,它能够将IP数据报装入一个个ATM信元,然后在ATM网络中传送。这个接口就是在ATM层上面的ATM适配层,记为AAL(ATMAdaptationLayer)。

AAL层的作用就是增强ATM层所提供的服务,并向上面高层提供各种不同的服务。图5-22表示不同信源发出的信号(话音、视频、数据等)通过AAL层后都变成了固定长度的数据块(48字节长),然后交给ATM层,加上5字节的首部后变成53字节的信元。



图5-22AAL层将48字节长的数据块交给ATM层,加上5字节的首部后变成53字节的信元

ITU-T的I.362规定了AAL向上提供的服务是:

·将用户的应用数据单元ADU①划分为信元或将信元重装成为应用数据单元ADU;

·对比特差错进行检测和处理;·处理丢失和错误交付的信元;·流量控制和定时控制。

①注:请注意,应用数据单元ADU并不是协议栈中的应用层的数据单元。在ATM的标准术语中,在AAL层上面的层次的数据单元都叫做应用数据单元ADU。如果AAL层的上面是IP层,则IP数据报就是这里所说的应用数据单元ADU。

ITU-T最初规定了ATM网络可向用户提供四种类别(class)的服务,从A类到D类。服务类别的划分是根据:比特率是固定的还是可变的;源站和目的站的定时是否需要同步;是面向连接还是无连接。后来ITU-T将AAL改分为四种类型(type),并且一种类型的AAL可支持不止一种类别的服务。随后ITU-T发现没有必要划分开类型3和类型4。于是将这两个类型合并,取名类型3/4。但实践证明需要增加一种新的类型,即类型5,用来支持各类服务。从目前ATM的使用情况来看,AAL5是受到计算机界普遍欢迎的的一个ATM适配层。

为了方便,AAL层又划分为两个子层,即CS子层和SAR子层,CS子层在上面。

·汇聚子层CS(ConvergenceSublayer)使ATM系统可以对不同的应用(如文件传送、点播视像等)提供不同的服务。每一个AAL用户通过相应的服务访问点SAP(即应用程序的地址)接入到AAL层。在CS子层形成的协议数据单元叫做CS-PDU。

·拆装子层SAR(SegmentationAndReassembly)在发送时,将CS子层传下来的协议数据单元CS-PDU划分成为长度为48字节的单元,交给ATM层作为信元的有效载荷。在接收时,SAR子层进行相反的操作,将ATM层交上来的48字节长的有效载荷装配成CS-PDU。这样,SAR子层就使得ATM层与上面的应用无关。

需要强调的是,AAL层的功能只能驻留在ATM端点之中,而在ATM交换机中只有物理层和ATM层。图5-23表示出了这个概念。对应于每一个ATM交换机的物理层都画了两个,这表示在不同的链路可采用不同的物理传输媒体。



图5-23AAL层只能驻留在ATM端点之中

从图5-23我们可以看出,当孤立地观察一个ATM网络时,ATM网络像一个广域网,因为它可以覆盖很大的地理范围,有自己网络的硬件地址和进行信元转发的结点交换机,并且向上提供虚电路服务。因此有关ATM技术的内容可以放在广域网这一章来讨论。不过从IP层来看,整个的ATM网络又相当于两个IP结点之间的一条数据链路。从这个角度看,整个ATM网络又好像是处在数据链路层。这就是为什么在前面曾指出,ATM体系结构中的层次和OSI的层次很难有严格的对应关系。

以上所述可归纳为图5-24所示的砂漏模型(即形状是上下宽、中间窄的砂漏)。这个模型说明ATM层可以支持上面AAL层的许多种不同的服务,而在ATM层下面也可以有许多种不同的物理层能够支持ATM。



图5-24ATM的砂漏模型

我们还要指出,上面所讨论的ATM协议参考模型假定了ATM网络拓扑是由点到点链路构成的。当ATM网络包括共享媒体的拓扑时(如使用了已有的局域网),则在ATM层和物理层之间还应加上一个局域网的MAC层。由于ATM网络最好使用点到点的连接,因此在ATM的协议参考模型中一般都不画出MAC层。

最后要指出,ATM协议参考模型和OSI的七层协议模型(或原理体系结构的五层协议模型)并没有严格的对应关系。

2.ATM的信元结构

信元长度主要由两个互相矛盾的因素决定。当采用分组交换时,分组越长,分组首部的额外开销就相对越小。对于某些应用,例如分组话音通信或分组图像通信,过长的分组将导致时延增大(因为实时话音或图像的比特信息要等到装配成一个完整的分组后才能发送到线路上)因而使通信质量变坏。当时延较大时,如果再加上有回声,则恢复后的话音质量还要更差。因此,在选择最佳分组长度时应折中处理。

ATM信元采用固定长度的分组,它由5个字节的首部和48字节的信息字段组成。信元首部包含着在ATM网络中传递信息所需的信息。图5-25为ATM信元的结构。



图5-25ATM信元的结构

ATM信元有两种不同的首部,分别对应于用户到网络接口UNI(User-to-NetworkInterface)和网络到网络接口NNI(Network-to-NetworkInterface)。在这两种接口上的ATM信元首部仅仅是前两个字段不同,后面的字段全都一样。

下面介绍ATM信元首部中各字段的作用。

(1)通用流量控制GFC(GenericFlowControl)4bit字段,通常置为0。根据ITU-T标准,GFC用来在共享媒体上进行接入流量控制,现在的点到点配置不需要这一字段的接入控制功能。GFC字段完成的是类似局域网MAC子层的功能,与ATM层的处理无关。

(2)VPI/VCI即路由字段,总共24bit。VPI/VCI字段和帧中继中的DLCI字段的作用相似。对于用户到网络接口UNI,VPI/VCI字段中的虚通道标识符VPI占8bit,而虚通路标识符VCI占16bit。因此理论上一个主机最多可建立256个虚通道,而每一个虚通道所包含的虚通路数最多可达65536。对于网络到网络接口NNI,则VPI/VCI字段中的VPI和VCI各占12bit。需要注意的是,许多VPI/VCI取值组合已经被定义了特定的功能,比如VPI(0,VCI(5,用来作为点到点连接和一点到多点连接的默认的信令[KWOK98]。顺便指出,使用VPI和VCI信息的交换机称为ATM交换机,而仅使用VPI信息的就是ATM交连机(crossconnectswitch),它是一种特殊的ATM交换机。

(3)有效载荷类型PT(PayloadType)3bit字段,用来区分该信元是用户信息或非用户信息。此字段又称为有效载荷类型指示PTI(I表示Indicator)。第一个比特为0表示是用户数据信元,第二个比特表示有无遭受到拥塞(该比特由网络的ATM交换机填写),第三个比特用来区分服务数据单元SDU①的类型。例如,一个信元发出时PT为000,可能在到达时就变成了010,因而目的站就知道网络出现了拥塞。

①注:这里的服务数据单元SDU是指从上面的SAR子层交下来的48字节的有效载荷。PT字段的第三个比特在ITU-T的文档中定义为“ATM用户到ATM用户(AAU)指示比特”,其意义是一样的。

(4)信元丢失优先级CLP(CellLossPriority)1bit字段,指示信元的丢失优先级(这个比特和帧中继的DE比特的作用相似)。当网络负荷很重时,ATM交换机首先丢弃CLP(1的信元以缓解网络可能出现的拥塞。除端系统可直接指定CLP值,网络还可能将违反通信量合约(contract)的信元的CLP从0改为1,这个过程称为“打标记”(tagging)。

(5)首部差错控制HEC(HeaderErrorControl)8bit字段。HEC是首部的第五个字节。HEC只对首部的前四个字节(但不包括有效载荷部分)进行循环冗余检验,并将检验的结果放在HEC字段中。HEC可进行多个比特的检错和单个比特的纠错。值得注意的是HEC虽属ATM信元首部,却是由物理层产生和进行检验的。

在ATM的各字段中,GFC字段涉及到MAC子层(选项);VPI和VCI字段、PT字段以及CLP字段涉及到ATM层;HEC字段涉及到物理层;有效载荷字段涉及到AAL层。

5.6.3ATM的逻辑连接机制

在ATM中使用的虚通路是一种逻辑连接,它和X.25中的虚电路或帧中继中的数据链路连接相似。虚通路是ATM网络中的一个基本交换单元。两个端用户要进行通信,首先必须建立虚通路连接,然后才能在这个端到端连接上以固定信元长度和可变速率进行全双工的通信。数据传送完毕后再释放连接。

1.逻辑连接的建立和释放

我们以图5-26的简单ATM网络为例来说明逻辑连接建立和释放的大致过程。

ATM用于连接建立和连接释放的主要信令报文(signalingmessage)都在图5-26中用到了,各种报文的意义如表5-2所示。需要指出的是,每一种报文可以用一个或多个信元来传送。报文的内容包括报文类型、长度以及一些参数(如ATM地址①、在每一个方向所需的带宽和服务质量QoS,以及对该连接所指派的VPI/VCI等)。

①注:ATM的编址使用ISO制订的20个字节的网络服务访问点NSAP编码。这里又包括几种不同的格式。ITU-T的E.164规定的8字节地址是NSAP编码格式中的一个字段[KWOK98]。

表5-2ATM的主要信令报文

报文类型 当主机发送时的意义 当网络发送时的意义 SETUP 请求建立连接 有一个入呼叫(incomingcall) CALLPROCEEDING 收到入呼叫 连接建立的请求正在进行处理 CONNECT 接受入呼叫 呼叫请求已被接受 CONNECTACK 对CONNECT报文的确认 对CONNECT报文的确认 RELEASE 请求释放连接 一个端点发出了连接释放请求 RELEASECOMPLETE 对RELEASE的确认 对RELEASE的确认 这里需要解释几点:

一个连接可能要通过ATM网络中的许多个交换机。为简单起见,在图5-26中表示报文传送过程的虚线箭头代表了逻辑连接中可能要经过很多个交换机。表5-2中的“入呼叫”是常用的名词,它与“连接建立请求”是同样的意思。

与端点A相连接的ATM交换机X使用UNI协议对信令报文进行处理,并完成呼叫准许控制CAC(CallAdmissionControl)功能。交换机X与ATM网络中的其他交换机则使用NNI协议进行协同工作,以确定网络是否能够提供可用带宽和其他资源来支持此连接。

若ATM网络能够提供连接所需的资源,则从A到B的一条物理路由才能确定下来。这时,与端点B直接相连的交换机Y就向端点B发送SETUP报文,表示有一个入呼叫到来。

各ATM交换机或端点B在收到SETUP报文后所发送的CALLPROCEEDING报文是一个选项,其主要目的是在较大的ATM网络中防止主叫方因迟迟未能收到被叫方的应答而采取超时重发的措施。响应CALLPROCEEDING报文可使发送SETUP报文的结点耐心等待。



图5-26两个端点通过ATM网络建立逻辑连接

被叫方若接受连接建立请求,则应响应CONNECT报文。其余的信令报文的意义从图上都可反映出,这里不再解释。

我们要指出,ATM标准没有指明任何特定的路由选择算法,这由各使用单位自行确定。

最后应当指出,ATM的信令过程是非常复杂的。ATM论坛已制订出UNI3.1和UNI4.0信令标准,详细地规定了点到点和一点到多点的信令报文格式和整个的控制过程。ITU-T也制订了相应的标准,如Q.2931,Q.2110(即特定服务面向连接协议SSCOP)和Q.2130等建议书。这些就不在此讨论了。

2.虚通路标识符VCI和虚通道标识符VPI的转换

前面已经讲过,ATM信元在ATM网络中传输时,一定是在某一个特定的虚连接上按序传送的。因此,ATM信元的首部一定要有这个虚连接的标识符VPI/VCI,以便惟一地标识该信元属于哪一个虚通路。若ATM交换机收到一个信元但其标识符VPI/VCI与该交换机所知道的任何虚通道/虚通路标识符均无联系,则ATM交换机就丢弃此信元。

那么ATM信元是怎样得到其标识符VPI/VCI呢?

设端点A与端点B进行通信,它们之间建立了一条逻辑连接。端点A必须给新建立的连接指派一个标识符VPI/VCI。显然,这个标识符VPI/VCI不能和端点A正在使用的其他标识符VPI/VCI重复。然而端点B可同时接收其他一些端点发来的信元,这些端点都是独立地选择自己的标识符VPI/VCI值。这样,端点B很可能收到来自不同端点的但具有相同VPI/VCI的信元,结果使端点B无法确定这些信元的源端点。

为了解决上述矛盾,最简单的方法就是使所有的VPI/VCI值只在每一段物理链路上具有惟一的值。当信元在ATM网络中传送时,每经过一段链路,其VPI/VCI值都可能改变数值。在下面图5-27的例子中,我们设从端点A到端点B经过ATM交换机X,Y和Z。图中用较粗的线表示信元通过的这条特定路径A→X→Y→Z→B。



图5-27端点A通过ATM交换机X,Y和Z与端点B建立了一条逻辑连接

设端点A选择VPI/VCI(3/17(这种记法表示VPI=3而VCI=17)作为供信元从端点A到交换机X之间传送时使用的标识符,而信元从交换机X的端口4进入该交换机。假定交换机X再从其端口2向交换机Y转发此信元,并将VPI/VCI转换为交换机X未在使用的VPI/VCI号,如9/35。交换机Y从自己的端口1收到此信元,再从端口4向交换机Z进行转发。现在假定Y是一个交连机,因此它只改变虚通道标识符VPI的数值而不改变虚通路标识符VCI的数值。因此通过交连机Y后,信元的VPI/VCI从9/35转换为6/35。最后,交换机Z从其端口4收到信元,再从自己的另一个端口2向端点B进行转发,并将VPI/VCI从6/35转换为42/55。这样,一个ATM信元从端点A经过交换机X→Y→Z最后到端点B,其标识符VPI/VCI的数值所经历的变化是:

VPI/VCI:3/17→9/35→6/35→42/55

在第1章1.2.1节我们提到过分组交换是“基于标记的”就是这个意思。ATM采用的是快速分组交换,它所基于的标记就是这里的标识符VPI/VCI。

由此可见,在每一个交换机中都应当有一个VPI/VCI的转换表(这种转换表也称为信元的转发表),其中至少要有4个参数,即入端口号、入VPI/VCI值、出端口号以及出VPI/VCI值。应当注意的是,在上述的VPI/VCI转换表中存放的是已经建立的虚连接的信元转发信息。但是在初次建立一个新的连接时,一个ATM交换机还需要先建立一个这样的VPI/VCI转换表来进行信元的转发。

上述这种VPI/VCI的指派和转换方法有两个好处。第一,能够解决ATM网络的可扩缩性(scalability)。由于给某一条链路指派一个VPI/VCI值并不需要网络的全局信息,因此每个交换机只要保证与它直接相连的链路具有惟一的VPI/VCI值即可。第二,使VPI/VCI值只具有局部意义可大大增加全网可供指派的VPI/VCI值的数目。否则当ATM网络的端点数增多时,每个端点所能分配到的VPI/VCI值的数目就会减少。这点与蜂窝无线电在不同蜂窝小区的频率重复使用是很相似的。

我们应注意到,端点A发出的信元的VPI/VCI值与端点B收到的信元的VPI/VCI值是不一样的。例如在上述例子中,端点B收到的信元的VPI/VCI(42/55。但B并不知道,也不需要知道A发出的信元的VPI/VCI(3/17。其实只要B收到VPI/VCI(42/55的信元就知道是从A经过这条连接传送过来的。只有网络中的交换机才清楚VPI/VCI的转换过程。

在一个较大的ATM网络中,通过ATM交换机的虚通路可能有几千条。在VPI/VCI转换表中每一条虚通路都要占据一行。当虚连接不断地建立和释放时,对交换机的内存和处理机来说都是相当大的负担。

ATM在解决上述问题借用了公用电话网中采用的方法。在电路交换的电话网中,交换机要对几千条的电话连接进行处理。电话交换机采用了交叉连接交换机(crossconnectswitch)对群路进行交换。如,一个一次群E1有30个话路。当交换机以群路为单位进行交换时,就比以单个话路为单位的交换减少了很多开销。

与此相似,ATM采用了两级结构的标识符VPI/VCI。假定有许多的ATM连接,它们的源点和终点在地理上都比较集中,那么这些连接就可用一个共同的虚通道标识符VPI。这样,在ATM网络中的交换机就只需将VPI值进行转换,而不管每条连接的VCI值是多少。这样的VPI转换表要比VPI/VCI转换表简单得多。

5.6.4AAL层举例:AAL5

下面我们以使用得较多的AAL5层为例来说明AAL层的作用。

AAL5现已成为最重要的AAL协议类型。所有的支持交换虚连接SVC(SwitchedVirtualConnection)的ATM交换机和端点都必须支持AAL5,因为标准化组织规定ATM的信令协议建立在AAL5之上。

AAL5从AAL3/4简化得来,它去掉了后者的复用、每信元的CRC检验、序号和缓存分配等功能。因此AAL5又称为SEAL(SimpleEfficientAdaptationLayer),表明AAL5既简单又高效。

AAL5采用了检错能力很强的32bit的CRC检验(像以太网和FDDI帧使用的那种循环冗余检验),能够检出比特差错、信元丢失和插入错误。另外,AAL5的CS-PDU还采用了一个长度字段以检测信元丢失或插入错误。

任何分段重装协议都必须能够辨别各个分段的先后顺序,以及开始和结尾分段的位置。ATM网络采用了面向连接方式保持信元的传送顺序。但开始和结尾分段的确定则需专门的机制完成。AAL5协议并不采用给每个分段编号的方法来完成这个功能,而是利用了ATM层信元首部中的PT字段。若信元是一个分组的最后一个分段,则PT(001,而其他信元的PT(000。这样就使得SAR-PDU不包含任何开销。

图5-28表示用户数据(例如,可以是常用的IP数据报)先传递给AAL5的汇聚子层CS,作为汇聚子层的数据。汇聚子层的协议数据单元CS-PDU只有一个8字节的尾部而无首部,其尾部由三个字段组成:

(1)保留2字节。其中前一个字节是用户到用户字段,不属于AAL层。

(2)长度2字节。它指明AAL5的CS-PDU中用户数据的字节长度。为了使用户数据加上尾部后能够成为48字节的整数倍(因为还要分割为整数个信元),在尾部之前有一个填充字段。显然,填充字段的长度是0~47字节。2字节的长度字段允许CS-PDU的用户数据部分的长度从1到216(1(即从1到65535)。然而实际上当IP数据报要在AAL5上传送时,TCP/IP的标准对IP数据报规定的默认长度是9180字节。若超过这个数值,就必须经过通信双方事先的商定。

(3)CRC检验4字节。



图5-28AAL5将用户数据分割为48字节的数据块传递给ATM层

AAL5的拆装子层SAR的协议数据单元SAR-PDU没有首部和尾部,对每个信元几乎没有SAR协议的处理。SAR-PDU由CS子层交来的48字节的数据块组成。从图5-28可看出,一个CS-PDU被划分为整数个48字节的SAR-PDU。每个SAR-PDU再加上5个字节的ATM信元首部就构成了一个完整的ATM信元。



在ATM领域还有很多的问题值得关注,例如,有关ATM的通信量的一些问题可参考本书的附录D。



习题

5-01试从多个方面比较虚电路和数据报这两种服务的优缺点。

5-02设有一分组交换网。若使用面向连接的虚电路,则每一分组必须有3字节的分组首部,而每个网络结点必须为虚电路保留8字节的存储空间来识别虚电路。但若使用无连接的数据报,则每个分组要有15字节的分组首部,而结点就不需要保留转发表的存储空间。设每段链路每传1兆字节需0.01元。购买结点存储器的代价为每字节0.01元,而存储器的寿命为2年工作时间(每周工作40小时)。假定一条虚电路的每次平均使用时间为1000秒,而在此时间内发送200分组,每个分组平均要经过4段链路。试问:采用哪种方案(虚电路或数据报)更为经济?相差多少?

5-03假定分组交换网中所有结点的处理机和主机均正常工作,所有的软件也正确无误。试问一个分组是否可能被投送到错误的目的结点(不管这个概率有多小)?

如果一个网络中所有链路的数据链路层协议都能正确工作,试问从源结点到目的结点之间的端到端通信是否一定也是可靠的?

5-04广域网中的主机为什么采用层次结构方式进行编址?

5-05一个数据报分组交换网允许各结点在必要时将收到的分组丢弃。设结点丢弃一个分组的概率为p。现有一个主机经过两个网络结点与另一个主机以数据报方式通信,因此两个主机之间要经过3段链路。当传送数据报时,只要任何一个结点丢弃分组,则源点主机最终将重传此分组。试问:

(1)每一个分组在一次传输过程中平均经过几段链路?

(2)每一个分组平均要传送几次?

(3)目的主机每收到一个分组,连同该分组在传输时被丢弃的传输,平均需要经过几段链路?

5-06一个分组交换网其内部采用虚电路服务,沿虚电路共有n个结点交换机,在交换机中为每一个方向设有一个缓存,可存放一个分组。在交换机之间采用停止等待协议,并采用以下的措施进行拥塞控制。结点交换机在收到分组后要发回确认,但条件是:

(1)接收端已成功地收到了该分组;

(2)有空闲的缓存。

设发送一个分组需T秒(数据或确认),传输的差错可忽略不计,主机和结点交换机之间的数据传输时延也可忽略不计。试问:分组交付给目的主机的速率最快为多少?

5-07假定要在误码率p=10(6的链路上传送长度为106bit的报文。整个报文就是一个大的分组。数据率为1Mb/s。若使用停止等待协议,并忽略分组首部的开销、传播时延和确认分组出错的概率,试求这个分组正确到达终点所需的平均时间。

若将此报文划分为1000个1000bit长的分组,然后逐个发送到终点,试证明,所有分组正确到达终点所需的平均时间将比上面得出的时间减少约63%。

5-08流量控制在网络工作中具有何意义?流量控制与拥塞控制有何异同之处?

5-09为什么说,“只要任意增加一些资源就可以解决网络拥塞的问题”是不正确的?

5-10死锁是怎样形成的?有什么措施可用来防止死锁?

5-11有AB和BC两条链路。A经过B向C发送数据。B收到A发来的数据时,可以先向C转发再向A发确认,也可以把这顺序反过来。也就是说,B要做的三件事的顺序是:收数据→转发→发确认,或:收数据→发确认→转发。现假定B在做完第二件事后处理机即出故障,存储器中所存信息全部丢失,但很快又恢复了工作。试证明:只有采用端到端发确认信息的方法(即从C向A发确认信息),才能保证在任何情况下数据都能从A经B正确无误地交付到C。

5-12为什么X.25分组交换网会发展到帧中继?帧中继有什么优点?试从层次结构上以及结点交换机需要进行的处理过程进行讨论。

5-13帧中继的数据链路连接标识符DLCI的用途是什么?什么是“本地意义”?

5-14帧中继的拥塞控制是怎样进行的?承诺的信息速率CIR在拥塞控制中其何作用?

5-15ATM的主要优点是什么?UNI和NNI有何不同?

5-16试说明ATM的物理层、ATM层和AAL层的作用(包括各子层的作用)。

5-17ATM中的VCI和VPI各有何用处?试举例说明,并分别计算在UNI和NNI接口上一共可以有多少条ATM连接?

5-18试述ATM连接的建立过程。

5-19ATM信元的结构是怎样的?信元首部的结构分为哪些字段?各有何用处?

5-20在传送一个ATM信元时,其路由选择决定是在什么时候作出的?

5-21若ATM信元采用可变长度,那么会有何优点和缺点?

5-22试判断以下各种说法的正确性。给出“是”或“否”的答案。

(1)ATM的差错控制是对整个信元进行检验。

(2)ATM信元的寻址是根据信元首部中的目的站地址。

(3)ATM提供固定的服务质量保证。

(4)ATM的信元采用动态路由选择。

(5)TCP不能在ATM上运行。

(6)ATM在每次传送数据之前必须先建立连接。

(7)ATM的信元的长度是可变的。

5-23在一个ATM网络的源端点和目的端点之间有三个ATM交换机。现在要建立一条虚通路。问一共需要发送多少个报文?

5-24在同一幢大厦中有N个用户,他们都通过一个ATM网络使用同一个远地的计算机。每个用户平均每小时产生L行的通信量(输入和输出),平均每行长度为P字节(不包括ATM首部)。用户应交纳的费用是:对所传送的数据,每字节为C分钱,而使用ATM的虚通路,每小时X分钱。若将N个用户都复用到一条ATM虚通路上,则每一行的数据还要增加2字节的开销。假定一条虚通路的带宽足够N个用户使用。试问在什么条件下复用会更加便宜?

5-25一个1024字节的报文用ATM的AAL5来传送,试问数据传输的效率是多少?

5-26当收到一个ATM信元时要用HEC字段进行循环冗余检验。已知ATM所使用的循环冗余检验生成多项式P(X)=X8+X2+X+1。试问当一个ATM信元的首部出现差错但仍能通过循环冗余检验的概率是多少?当一连两个首部出现差错的ATM信元仍能通过循环冗余检验的概率是多少?

5-27试述CBR、rt-VBR、nrt-VBR、UBR以及ABR的主要特点。

























第4版的5—25







































































所连接的交换机的编号所连接的交换机端口的编号计算机在广域网中的地址(a)(b)完全的差错控制321完全的差错控制有限的差错控制有限的差错控制321321321源站目的站中间结点中间结点源站目的站中间结点中间结点(a)(b)数据确认数据确认确认的确认A4A2A1B3C1B1B2C3B4A3C2路由器P路由器Q路由器R主机HATM层物理层PMD子层TC子层ATM适配层(AAL层)SAR子层CS子层321ATM的层次9行270字节261字节9行?9字节的开销和指针53字节………ATM端点交换机AAL层IP层物理层ATM层AAL层IP层物理层ATM层ATM层交换机ATM网络ATM网络物理层物理层物理层ATM层物理层ATM端点CALLPROCEEDINGATM网络AB交换机X交换机YUNIUNINNINNISETUPCALLPROCEEDINGCONNECTCONNECTCONNECTACKCONNECTACKRELEASERELEASERELEASECOMPLETERELEASECOMPLETE连接建立连接释放tSETUPSETUPCALLPROCEEDINGCONNECTCONNECTACKRELEASERELEASECOMPLETE数据传送阶段ATM网络AB交换机X交换机Y交换机Z121232343414入入出出端口VPI/VCI端口VPI/VCI43/1729/353/1742/556/359/35交换机X的VPI/VCI转换表交换机Y的VPI/VCI转换表交换机Z的VPI/VCI转换表入入出出端口VPI/VCI端口VPI/VCI19/3546/35入入出出端口VPI/VCI端口VPI/VCI46/35242/55传输链路虚通道VPxVCxVCxVCyVCzVCzVCyVCyVCxVPyVPz虚通路不同类别的应用AAL1AAL2AAL3/4AAL553字节51Mb/sUTP100Mb/s光纤155Mb/s光纤其他AAL层ATM层物理层信元提供的负载吞吐量理想的拥塞控制拥塞实际的拥塞控制死锁无拥塞控制轻度拥塞0局域网局域网广域网路由器结点交换机互联网H1H5H2H4H3A(a)(b)CDBH6E分组交换网H1H5H2H4H3ACDBH6EVC1VC2分组交换网123412341234交换机1交换机2交换机3[1,1][1,3][3,2][2,1][2,2]交换机2的转发表1是交换机号1是交换机的端口号下一跳3是交换机的端口号1是交换机号目的站[3,3]目的站下一跳[1,1]交换机1[1,3]交换机1[3,2]交换机3[3,3]交换机3[2,1]直接[2,2]直接目的站下一跳1直接233343结点1的转发表目的站下一跳132直接3344结点2的转发表目的站下一跳11223直接44结点3的转发表目的站下一跳1322334直接结点4的转发表可以合并可以合并可以合并目的站下一跳1直接默认3结点1的转发表目的站下一跳2直接44默认3结点2的转发表目的站下一跳11223直接44结点3的转发表目的站下一跳224直接默认3结点4的转发表默认路由X.25接口X.25接口X.25公用分组交换网VC2VC1DTEDTEDCEDCEDCEDTEX.25接口分组层物理层高层数据链路层分组层物理层数据链路层X.21物理层接口至远程用户进程LAPB数据链路层接口逻辑信道∶多重信道接口X.25分组交换网X.25虚电路ADCB帧中继网帧中继交换机路由器局域网局域网虚电路路由器帧中继网路由器局域网局域网虚电路路由器(a)(b)CIR?16kb/sCIR?16kb/sCIR?4kb/sCIR?16kb/s帧中继网络用户A用户BPVC2PVC1PVC1PVC2DLCI?16DLCI?17DLCI?100DLCI?101UNIUNI用户接入端口网络接入端口帧中继帧标志标志地址信息帧检验序列字节122~41可变发送IP数据报ATM交换机abcdefgh交换结构输入信元输出信元1485首部有效载荷VCIVPIGFCHECPTVCIHECVPI字节318121648CLP1683在UNI在NNI比特比特PTATM信元SAR-PDUAAL5层CS子层尾部1~65535字节填充长度CRC检验保留字节224SAR子层ATM层CS-PDU用户数据(例如,IP数据报)ATM信元53字节发送ATM信元53字节ATM信元53字节ATM信元53字节48字节48字节48字节48字节PT=000PT=000PT=000PT=001表示是最后一个信元话音信号数据信号视频信号A/DA/DAAL层ATM层48字节数据块长度可变的突发数据分组数字化的采样信号图像帧压缩的编码信号AAL层AAL层48字节数据块48字节数据块53字节信元ATM层ATM层53字节信元53字节信元12341结点边243
献花(0)
+1
(本文系liyi039首藏)