分类: 系统运维
2007-01-31 10:50:59
一、ATM中的网络层
ATM层处理从源端到目的端移动着的信元,在ATM交换机中的确包含了路由选择算法和协议,它也处理全局寻址问题。因此从功能上说,ATM层发挥着和网络层相同的功能。ATM层并不能保证百分之百的可靠性,不过一个网络层的协议也不需要如此。
因为ATM层具有网络层的功能,而不具有数据链路层所具备的功能,并且,ATM层同现有的网络层类似,因此我们仍在本章中讨论ATM层协议。
唯一的问题是ATM层不具有数据链路层协议所具有的特性:一个用于导线两端的机器之间的单站段协议,就像第3章中的协议1到协议6。ATM层却具有网络层协议的功能:端到端虚电路连接、交换、路由选择。
对于面向连接的协议来说,ATM层是不同寻常的,因为它不提供任何确认。但ATM层仍然提供了强有力的保障:沿着一条虚电路发送的信元将永远不会失去顺序。如果阻塞发生了,允许ATM子网丢弃信元,但是在任何情况下,它都不能对在一条单独的虚电路中传递的信元重新排序。然而,对于在不同的虚电路中传递的信元并没有提供顺序上的保障。
在ATM层,有两个接口是非常重要的,即用户-网络接口UNI(user-network interface)和网络-网络接口NNI(network-network interface)。前者定义了主机和ATM网络之间的边界(在很多情况下是在客户和载体之间),后者应用于两台ATM交换机(ATM意义上的路由器)之间。两种格式的ATM信元头部如下图。信元传输是最左边的字节优先,在一个字节内部是最左边的比特优先。
图 (a)UNI中的ATM头部;(b)NNI中的ATM头部
从技术上讲,连接建立并不是ATM层的一部分,而是由控制平台使用的一个高度复杂的叫做Q.2931(stiller,1995)的ITU协议来处理的。然而,逻辑上处理建立网络层连接的地点是网络层,并且类似的网络层协议都是在这里进行连接建立的,因此我们在这里讨论它。
用于连接建立和连接释放的消息
消息 | 由主机发送时的含义 | 由网络发送时的含义 |
SETUP | 请建立一条虚电路 | 进入呼叫 |
CALL PROCEEDING | 我看见了进入呼叫 | 将尝试你的呼叫请求 |
CONNECT | 我接受进入呼叫 | 接受你的呼叫请求 |
CONNECT ACK | 谢谢接受 | 谢谢发出呼叫 |
RELEASE | 请终止呼叫 | 另一端已足够坏 |
RELEASE COMPLETE | 对RELEASE的确认 | 对RELEASE的确认 |
ATM网络允许建立多点播送通道。一个多点播送通道有一个发送者和多于一个的接收者。它们是通过如下方法建立起来的:用通常的方法在源端和目的端之间建立一条连接,接着发送ADD PARTY消息把第二个目的端连接到前一个呼叫返回的虚电路上去,接下来就可以发送其余的ADD PARTY来增加目的端的个数。
ATM有3种地址格式。第1字节指明该地址是3种地址格式中的哪一种。第1种有20字节长,是基于OSI地址格式的。第2和第3字节指明国家,第4字节给出了基于地址部分的格式,其他包括3字节指明权限,2字节指明域(domain),1字节指明区域,还有6字节的地址,以及其他一些信息项。在第2种地址格式中,第2和第3字节指定一个国际组织,而不是国家;地址的其余部分和格式与第1种相同。另一种是旧的使用15位十进制数的ISDN电话号码(CCITT E.164)作为地址的格式。
当建立虚电路时,SETUP消息沿着网络从源端走向目的端。路由选择算法决定了消息要走的路径,从而也就决定了虚电路的路径。ATM标准中没有指定任何特定的路由选择算法,所以人们就可以从我们在本章前面几节中讨论的路由选择算法中选择一种,或者选用另外不同的算法。
交换机的大部分工作量是花费在如何从一个信元里的虚电路信息里得到输出线路的选择上。除了在每一个方向上的最后一个站段外,路由都是在VPI字段上进行的,而不是在VCI字段;在最后一个站段,信元在交换机和主机之间传送。在两台交换机之间只使用虚通路。
在局域网中,事情简单得多,一条简单的虚通路就可以为所有的虚电路所使用。
恒定比特率CBR(constant bit rate)主要用来模仿铜线或者光导纤维。没有差错校验,没有流量控制,也没有其余的处理。这个类别在当前的电话系统和将来的B-ISDN系统中作了一个比较圆滑的过渡,因为话音级的PCM通道,T1电路以及其余的电话系统都使用恒定速率的同步数据传输。
可变比特率VBR(variable bit rate)被划分为两个子组别,分别是为实时传输和非实时传输而设立的。RT-VBR主要用来描述具有可变数据流并且要求严格实时的服务,比如交互式的压缩视频(例如电视会议)。NRT-VBR用于主要是定时发送的通信场合,在这种场合下,一定数量的延迟及其变化是可以被应用程序所忍受的,如电子邮件。
可用比特率ABR(available bit rate)术语是为带宽范围已大体知道的突发性信息传输而设计的。ABR是唯一一种网络会向发送者提供速度反馈的服务类型。当网络中拥塞发生时会要求发送者减小发送速率。假设发送者遵守这些请求,采用ABR通信的信元丢失就会很低。运行着的ABR有点象等待机会的机动旅客:如果有空余的座位(空间),机动的旅客就会无延迟地被送到空余座位处;如果没有足够的容量,他们就必须等待(除非有些最低带宽是可用的)。
未指定比特率UBR(unspecified bit rate)不做任何承诺,对拥塞也没有反馈,这种类型很适合于发送IP数据报。如果发生拥塞,UBR信元也会被丢弃,但是并不给发送者发送反馈,也不给发送者希望放慢速度的期望。
各种ATM服务类型的特性
服务特性 | CBR | RT-VBR | NRT-VBR | ABR | UBR |
带宽保证 | 是 | 是 | 是 | 可选 | 不 |
适用于实时通信 | 是 | 是 | 不 | 不 | 不 |
适用于突发通信 | 不 | 不 | 是 | 是 | 是 |
有关于拥塞的反馈 | 不 | 不 | 不 | 是 | 不 |
服务质量在ATM网络中是一个重要的话题,这部分因为ATM网络都是用作实时传输的,比如音频和视频。当一条虚电路建立时,传输层(典型地为主机中的一个进程,“客户”)和ATM网络层(例如:一个网络操作者,也即“运载提供者”)都要遵守一个定义服务的协定。
协定的第一部分是通信量描述符(traffic descriptor)。它描述要提供的载荷。协定的第二个部分指定客户所要求的和通信提供者同意的服务质量。无论是载荷还是服务,都是要以可度量的数量来描述的,这样约定就可以被客观的决定。
为了使具体的通信量协定成为可能,ATM标准定义了一系列的服务质量Qos(quality of service),客户和通信提供者可以协商这些参数的值。对于每一个服务质量参数,其最差情况下的值被指定了,要求通信提供者必须要达到或者超过该值。在某些情况下,参数是一个最小值,而在另外一些情况下它是一个最大值。也是在这里,服务质量在每个方向上都是单独指定的。其中一些比较重要的列在了下表中,但它们并不是对所有的服务类型都适用。
一些服务质量参数
参数 | 缩写词 | 含义 |
峰值信元速率 | PCR | 信元发送的最大速率 |
持续信元速率 | SCR | 长时间的平均信元传输速率 |
最小信元速率 | MCR | 最小的可接受的信元传输速率 |
信元延迟变化极值 | CDVT | 最大的可接受的信元抖动 |
信元丢失比率 | CLR | 信元丢失或提交得太迟的比例 |
信元传送延迟 | CTD | 信元提交时拖延的时间(中间值和最大值) |
信元延迟变化 | CDV | 信元提交时间的变化幅度 |
信元错误比率 | CER | 提交无错信元的比例 |
严重错误信元块比率 | SECBR | 出错信元的比例 |
信元错误目的地比率 | CMR | 信元提交至错误目的地的比例 |
使用和增强服务质量参数的机制是基于(部分地)一种特定的算法,也即通用信元速率算法GCRA(generic cell rate algorithm)。它的工作原理是检查每一个信元,看是否遵从了虚电路的参数。
GCRA有两个参数,它们指定了最大的允许到达率(PCR)和其中可以忍受的到达时间变化量(CDVT)。PCR的倒数,T=1/PCR是最小的信元到达间隔值。
GCRA算法被称为虚拟调度算法(virtual scheduling algorithm),然而从另一种角度来看,它等同于一个漏桶算法。可把一个合乎协定的信元想象成是倒入一个漏桶的T单位的流体。这个桶以1单位/us的速度漏液体,因此Tus之后它就空了。如果信元正好是以1信元/Tus的速度到达,那么每一个到达的信元都会发现桶刚刚空出来,该信元会把桶内重新装上T单位的液体。因此当一个信元到达时,液体水位升至T,以后就线性递减直到为零。
当一个信元提前Lus到达时,桶就应该溢出。对于一给定的T,如果我们把L设置得很小,桶的容量将会很难超过T,因此所有的信元必须以一种非常规范的间隔顺序发送。然而,如果我们现在增加L的值,使它远远大于T,桶将会容纳很多的信元,因为T+L>>T。这就意味着发送者可以以峰值速率一个接一个地发送一些突发性数据,而它们仍然能够被正确地接收。
GCRA正常情况下是通过给定参数T和L来指定的。T正好是PCR的倒数;L就是CDVT。GCRA也用来保证在任何一段较长时间内平均信元传输速率不会超过SCR。
除了提供了一条规则来看哪一个信元是合乎协定的,哪一个是不合乎协定的之外,GCRA也用于通信整形,以消除某些突发性传输。CDVT越小就意味着越好的平滑效果,但也增大了因为不合乎协定而丢弃信元的机率。在一些实现中把GCRA漏桶和一个令牌桶结合起来,以提供进一步的平滑。
ATM网络必须既要处理由于大于系统处理能力的通信量而引起的长期拥塞,又要处理由于通信中的突发性传输而引起的短期拥塞。结果人们使用了几种不同的策略。它们当中最重要的可分为3类:
1、许可证控制
很多ATM网络中有以固定速率产生数据的实时通信源。告诉这一类的通信源减慢发送速率是行不通的(想象一种有一个红灯的新型数字电话。当通知拥塞发生时,红灯就会亮,讲话者将被要求速率减慢25%)。
因此,ATM网络把防止拥塞发生放在第一的位置。然而,对于CBR、VBR、UBR类通信量,根本就没有动态拥塞控制,因此在这里预防拥塞发生将远远比拥塞发生后再去恢复强得多。预防拥塞的一个主要工具是许可证控制。当一台主机需要一条新的虚电路时,它必须描述出希望被提供的通信和服务,网络便作出检查来看是否有可能,在不对已存在连接造成有害的影响的前提下处理该连接。可能需要检查多条可能的线路,从而发现哪一条将可以做此项工作。
2、资源预订
同许可证控制密切相关的是事先预定资源的技巧,这通常是在呼叫建立时进行。因为通信量描述符给出了信元发送峰值速率,网络就有可能沿通路预留足够的带宽来处理该峰值速率。
3、基于速率的拥塞控制
在CBR和VBR通信中,因为信息源固有的实时和半实时的特性,所以即使在发生拥塞的情况下,一般也不可能让发送者减慢发送速率。在VBR服务中,没有人会担心。如果有太多的信元,把多出来的丢弃掉就是。
在ABR通信中,网络去通知一个或多个发送者并且请求它们暂时减慢发送速率直到网络恢复,这是可能的也是合理的。
怎样检测、通知和控制ABR通信中的拥塞是ATM标准发展过程中的一个热门话题,问题集中在以下两个方面:一是基于信用的解决方案,一种是基于速度的解决方案。
交换机厂商们反对基于信用的解决方案。他们不想进行所有计算,以记住这些信用,同时,也不想预先提供很多缓冲区,并认为所需要的开销总量太大。因此,采用了基于速度的拥塞控制系统。其基本模型是每个发送端在k信元数据之后传送一个特殊的资源管理RM(resource management)信元。这个信元的传输通路与k信元相同,但是它由交换机进行特殊处理。当RM信元到达接收端时,对它进行检测、修改并且再将它发送回发送端。另外,还提供了其他两种拥塞控制装置。第一种是超载荷交换机能够自发地产生RM信元,并将它们发送回发送端。第二种是超载荷交换机能够对从发送端传送到接收端的信元数据设置其中间PTI位的值。当然这两种方法没有一个是完全可靠的。