计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000 Vol.17 No.3 P.1-3




MPLS中VC合并技术综述
李珂　朱康辛　顾尚杰　诸鸿文
摘　要：VC合并是MPLS（Multiprotocol Label Switching：多协议标记交换）中的一项关键技术。介绍了不同的实现方案，对它们进行了较详细地分析和比较，给出了现有方案的不足，并对今后还需要改进的方面进行了论述。
关键词：多协议标记交换 VC合并 SEAM VP合并 DIDA AAL5X
1　引言
　　MPLS（Multiprotocol Label Switching：多协议标记交换）作为一种新的IP与ATM综合的技术正在快速发展，目前正由IETF的MPLS工作组进行标准化工作。MPLS通过以下两种方法将网络的连接数从O(n2)降到O(n)，从而极大地增加网络的可扩展性。
　　．对标记不同粗细程度的分类；
　　．流合并（Stream merging）。
　　MPLS中LSP是多点到点连接树（Mpt-to-pt tree），同属于一个FEC而从不同入口节点来的流在到达同一个出口节点的过程将在某些节点处汇合，这样不同的上游流在这些地方合并成同一个流。支持流合并的MPLS节点产生O(n)个交换路径，以提供到n个目的地的通信。n取决于标记分类的方法，如果用网络地址前缀分类，则MPLS与现有IP网络的扩展性一样，如果以出口路由器分类，则扩展性大大提高。流合并对于MPLS来说非常关键。如果不支持流合并，那么LSP相当于点到点路径，同一个出口节点，要分别建立每个入口节点的LSP并分配不同的标记，而且这种情况下不能使用下游分配标记方式，而只能用下游按需分配方式，因为下游节点无法知道到底有多少上游节点要建立LSP。这不但大大降低了MPLS的扩展性，而且减慢了它建立LSP的速度。
　　当MPLS运行在基于帧的媒质上时，流合并很简单，所要做的仅仅是要求节点将多个上游标记对应到同一个下游标记，这也称为帧合并。但是在ATM上就会产生问题。在ATM中，MPLS的标记对应于ATM信元中的VPI/VCI域，因此流合并意味着VPI/VCI合并。但是标准的ATM交换机不支持VC合并，因为会产生信元交错问题。在ATM上传送数据和多媒体业务一般都采用AAL5进行封装，相比较于AAL3/4，AAL5减少了传输高层分组所带来的开销，它对同一个分组进行封装时，没有机制来分辨不同的信元，只是在分组的最后一个信元中加入结束标志（此信元也称为EOM信元），它依赖于ATM网络能顺序连贯地传送此分组的所有信元，接收方通过最后一个信元的结束标志来重组分组。因此，如果直接将不同的VC合并成同一个出口VC，不同分组的信元就会交错在一起，而且接收方没有办法能分辨出来。针对如何让ATM交换机支持VC合并这个问题，已提出几种方案，本文将对这些方案进行详细地分析和比较。
2　SEAM
　　最简单的方法是利用AAL5对信元进行重组，等一个分组的所有信元都到达了以后，再一起发送出去。这样做相当于传统IP网络中路由器的存储转发（Store-and-foward），丢弃了信元交换的所有优点。为了不再需要AAL5重组分组，M. Grossglauser[1]等人提出了SEAM机制（Simple and Efficient ATM Multicast）。SEAM交换机对来自不同VC的分组在输入队列中进行缓存，只将其中一个分组的信元交换至输出VC，当这个分组的EOM信元也交换完毕后，再在输入队列中选择要到同一个输出VC的另一个分组开始传输。相对于第一种方法，SEAM的优点是不需要AAL5对分组进行重组，而且在传输一个分组的信元时，不必等此分组所有的信元都到了输入队列中才进行交换，当输出VC被占用的时候，信元进行存储，当输出VC空闲的时候，它们可以立即传输。这种机制存在以下缺点和需要优化的问题：
　　①对输入缓存需求很大；
　　②当正在传输的分组丢失了EOM信元时，其它等待的VC中的信元将被阻塞。解决的办法是设定一个时间期限的参数。这个参数的大小由链路的容量、当前VC的带宽和网络当时的负载大小决定。如何具体设定这个参数的值非常重要，因为它对输入缓存的需求以及交换机的性能有非常大的影响；
　　③一个分组的信元由于输出VC忙，而在输入队列中等待时，将可能会影响此输入端口其它无冲突的信元的交换。
3　VP合并
　　一种方法是采用VP合并（VP Merging），不同的流使用不同的VCI，利用交换机的VP合并能力，这样既不需要额外的缓存，也不引入额外的时延。到达交换机的来自不同流的信元可以直接进行交换，因为它们的VCI不同，不会有信元交错的问题产生。这种方式也存在以下问题：
　　①如何分配VCI空间以保证VCI的唯一性。已经提出几种可能的方案：预先配置；在ATM交换机中扩展硬件，通过动态改变避免冲突来保证VCI的唯一性；制定一种新的协议机制来实现等等。具体选用其中的一种或几种还有待进一步研究；
　　②VPI/VCI的使用效率很低，限制了网络的可扩展性；
　　③在不支持SVP的公用ATM网络中无法实现。
　　ATM论坛的Venkateswaran等人[2]提出了一种改进的VP交换和合并机制（Improved VP Switching and Merging）。主要原理没有什么变化，针对原有VP合并机制中VP空间太小，在保证ATM信元中VPI/VCI总长度不变的情况下，将VPI域变为18bits，而VCI域减少到10bits。这种机制在增加网络支持的VP数的同时，使得使用同一个VP的发送方数目限制在210=1024之内，除此之外没有解决任何问题，而且需要改动ATM交换机的硬件以支持新的VPI/VCI编码方式。
4　DIDA
　　ATM论坛的Calvigance等人[3]还提出了一种很类似的机制：动态分配标识符机制（DIDA：Dynamic Identifier Assignment）。DIDA不需要对VCI进行全局性分配，对每一个到来的分组，DIDA在其VCI域插入一个局部唯一的标识符。在其它实现VP合并的机制中，VCI都是表示分组的来源（即：对于同一个目的地，一个源发送的所有分组的VCI都是相同的），而DIDA中却用它来表示一个分组（即：一个源发送的不同分组可以有不同的标识符）。DIDA的优点是不存在对VCI空间分配的问题，只需对正在传送的分组分配标识符，当此分组传送完毕后，该标识符可以回收再分配。缺点是需要修改ATM交换机的硬件，要改变进来的每个信元的VCI值，并要有专门的算法来管理和分配局部标识符。同时由于没有修改VPI的长度，所以能同时支持合并的数目在214=4096之内。
5　阱树机制
　　Cohen等人[4]提出一种阱树机制（The Sink Tree Paradigm），主要面向ATM局域网。在ATM局域网中，所有的ATM交换机用某种交织的形式互连，每个交换机连着一些主机。当主机之间互传分组时，通过在VPI/VCI域中同时携带源/目的交换机标识符和目的主机标识符，来保证在信元交错的情况下可以进行分组重组。由于所有的信息都在VPI/VCI域中，因此可用空间很少，扩展性很差。实际上，交换机标识符为8bits，主机标识符为5bits，这就意味着局域网中最多可以有28=256个交换机，每个交换机可以连接25=32个主机，这对于局域网而言已经足够，但无法扩展到大型网络中去。另外，此方法还需要完全改变ATM的前传规则，通过对目的交换机标识符来前传信元，而不是简单的标记交换。
6　AAL5X
　　Baldi等人[5]从另一个角度来看待VC合并这个问题，标准的AAL5没有提供如何分辨同一分组中不同信元的机制，他们则通过扩展AAL5（AAL5X：ATM Adaptation Layer 5 eXtension）使它能提供某种识别机制。主要的改变是在SAR子层（Segmentation And Reassembly）加入2个字节的MID（Message IDentifier）域，对于同一个分组（即同一个CPCS-PDU）而言，通过SAR子层而形成的信元的MID值都是一样的，这个值由SAR子层随机决定，范围是[0～65535]。即使在中间ATM节点处发生了信元交错，接收方的AAL5X的SAR也可以通过MID来缓存不同分组的信元，直到相应MID的EOM信元到达。当某个分组的EOM信元丢失时，接收方将无法回收此分组先前到达的信元所占用的缓存，通过设定一个时间间隔参数，如果超过这段时间还未有信元到达，则将此MID所占用的缓存释放。由此机制可以看出，原则上AAL3/4也可以用于VC合并，但是AAL3/4的MID域只有10bits，用于随机分配的空间太小，而且AAL3/4的MID用来区分同一个源（而不是不同的源）同一个VC的多种不同的流量。这种机制的优点是对网络中的ATM交换机不需要任何修改，既不需要扩展硬件，增加缓存，也不需要改变ATM的前传规则。交换网络不引入额外的时延，但也存在以下缺点和需要进一步研究的问题：
　　①需要修改发送方和接收方的AAL5层的发送和接收机制，一般来说是网络边界设备或直接连到网络上的主机；
　　②MID占用了2个字节，使AAL5的传输效率有所下降；
　　③原有AAL5可以正好用一个信元传输TCP控制消息，如确认信息（IP头20字节，TCP头20字节以及AAL5 CS-PDU尾部8个字节），但AAL5X的有效负荷仅46字节，因此传输TCP的控制信息时，效率下降了一半；
　　④MID为随机分配，因此有可能不同发送方的不同分组采用相同的MID值，此时AAL5X无法分辨，这称为MID冲突（MID Collision）。基于简单化，文献[5]未提出防止MID冲突的机制，因此这将造成分组丢失；
　　⑤为有效回收缓存而设定的时间间隔参数对性能和缓存需求影响很大，这类似于SEAM机制中的时间间隔参数。这个参数至少不能小于网络最大传输时延抖动，否则有可能信元并未丢失而仅因为时延而被抛弃。文献[5]对此参数的研究还不完善，如并没有研究当参数小于网络最大时延抖动时对网络的影响如何；
　　⑥接收方需要极大的缓存。需要对每个到来的MID设置不同的缓存队列，每个队列要能缓存整个CPCS-PDU，而CPCS-PDU的理论最大值为65,543字节。即使在IP over ATM环境中，最大传输单元（MTU）为9,180字节，文献[5]研究表明，当发送方为4,000时，需13M缓存。因此，限制了它在大型网络中的应用。
7　IETF的方案
　　根据MPLS的需求可知，MPLS面向的是Internet的主干网，在ATM中对流合并的基本要求是扩展性好，对VPI/VCI利用率高，不改变ATM的前传规则，特别是不能修改VPI/VCI的结构和语义，前面几种机制均不能完全满足这些要求。因此IETF工作组在1998年10月推出的草案[6]中提出了一种机制，并初步研究了它的性能[7]。它不像SEAM那样在输入端缓存分组，而是在输出端缓存，这样就不再要求ATM交换机必须对一个分组的所有信元以一种原子方式（Atomic Manner）处理，并避免了排头阻塞的问题。它允许ATM交换机独立地交换每个信元，通过在输出端加入几部分扩展的硬件（重组缓存、合并单元和输出缓存），来完成VC合并，并且完全独立于ATM交换机的交换部分。这样做的优点是不修改ATM的前传规则、不修改VPI/VCI结构、不修改AAL5，初步研究结果表明，与大多数人期望相反，对缓存的要求很小。其存在的不足是：
　　①文献[7]只给出了一个比较简单的输出缓存模型，而且研究的重点只放在VC合并和非VC合并之间的性能比较上，其性能研究并不完善；②ATM中有业务成形（Traffic Shaping）的功能，它使每个VCI中的信元不是相互紧接着传送，而是让信元之间有间隔，以便ATM交换机有时间进行缓存的分配和调度。VP合并保留了这个优点，但由于在文献[7]中需要一个分组（或一个AAL5帧）的信元全部到达才能开始发送，这就造成了两者的冲突。
8 今后还需改进的地方
　　除此之外还存在一些别的问题：
　　①VC合并中如何对QoS进行支持，当VC合并后，不是对某个VC进行QoS的支持，而是对一组VC的QoS的支持；
　　②MPLS工作组认为在直接路由LPSs中是否支持流合并还有待进一步研究；
　　③如何支持VP合并、VC合并以及非合并LSRs间的互操作性，这主要涉及到采用不同方法的节点对标记分配的需求量不一样；
　　④MPLS允许LSRs不支持流合并，问题是此类LSR如何进行标记分配，因为对于某个特定的FEC，它无法知道上游（Upstream）有多少节点，一种可行的方法是采用下游按需分配的方式；
　　⑤不支持VC合并的ATM交换机必须提供某种防止和检测路由环的机制，否则会造成螺旋线现象，极大地消耗标记，因为环中的流无法合并。
　　VC合并技术是MPLS中的一项关键技术，极大地影响着网络的可扩展性和整体性能。目前VC合并技术还远未发展成熟，还有许多问题需要进一步的研究。
李珂（上海交通大学电子工程系 上海 200030）
朱康辛（上海交通大学电子工程系 上海 200030）
顾尚杰（上海交通大学电子工程系 上海 200030）
诸鸿文（上海交通大学电子工程系 上海 200030）
参考文献
1 M. Grossglauser et al. SEAM: Scalable and Efficient ATM Multicast. Infocom'97, April 1997
2 R. Venkateswaran et al. Support for Multiway Communications in ATM Networks. ATM Forum Contribution 97-0316, May 1997
3 J. Calvignac et al. Dynamic Identifier Assignment (DIDA) for Merged ATM Connections. ATM Forum Contribution 97-0504, July 1997
4 R. Cohen et al. The Sink Tree Paradigm: Connectionless Traffic Support on ATM LANs. IEEE Transactions on Networking, Vol.4, No.3, June 1996
5 M. Baldi et al. AAL5X: ATM Adaptation Layer 5 eXtension for Efficient VC Merging over ATM Networks, http://www.polito.it/ ～bergamad/publications.html
6 I. Widjaja et al. Performance Issues in VC-Merge Capable MPLS Switching. Internet Draft, Oct. 1998
7 I. Widjaja et al. Study of Implications of VC Merging in Multiprotocol Label Switching. http://cm.bell-labs.com/cm/ms/ who/anwar/pub.html
收稿日期：1999年7月26日
