计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000　Vol.17　No.2　P.9-11



IP与ATM综合的新技术桵PLS
李珂　朱康辛　顾尚杰　诸鸿文
摘 要 MPLS(Multiprotocol Label Switching：多协议标记交换)作为一种新的IP与ATM综合的技术正在快速发展。简要回顾了MPLS的发展过程，介绍了MPLS的总体框架，最后论述了MPLS目前急需解决的关键技术。
关键词 局域网仿真 IPOA MPOA Tag交换 IP交换 多协议标记交换 VC合并 路由环
1 概述
　　近年来，Internet上的主要业务由传统的文件传送(FTP)、电子邮件(E-mail)和远程登录(Telnet)等转向多媒体应用丰富的WWW。多媒体通信的迅猛发展要求网络能提供具有不同QoS等级的综合业务，由于Internet采用面向无链接的IP协议，只能提供尽力而为(Best-effort)服务，无法提供QoS保证。因此当现有Internet规模扩充到一定限度后，将在许多方面面临挑战：带宽、路由、网络扩展性、QoS等。
　　ATM技术的出现为解决Internet困境带来了契机，IETF制定了经典的IPOA(Classic IP over ATM)，ATM论坛制定了局域网仿真(LANE)和MPOA(Multiprotocol over ATM)，有的已经得到了广泛的应用。但这些方案均不够理想。在早期的方案中，所采用的是叠加式(Overlay)模型。这种模型将ATM与IP视作叠加的层次关系，ATM与IP各自拥有自己的地址结构，需要地址解析协议进行两类地址的映射，其优点是减少了ATM与IP的相互限制，有利于它们独立地发展，也有利于向未来的B-ISDN过渡。但缺点就是IP技术和ATM技术不能很有效地结合起来，无论是分组的封装效率、建链的时延、对组播的支持以及对QoS的支持，都不理想。
　　近几年的发展已经清楚地表明，IP将是本世纪网络的主宰。因此，在不改变IP以及现有的基于IP技术的应用的基础上，如何使ATM技术融入IP，将路由和交换结合起来，解决IP无连接和ATM面向连接的矛盾，以支持规模日益增长的Internet和多媒体业务，成为目前研究的热点。众多厂商和学者提出了许多新方案、概念和名词，如 IP交换、CSR、Tag交换、ARIS、MPLS等。
　　本文将简单介绍其它的IP交换技术、MPLS技术的基本框架和MPLS急需解决的关键技术。
2 IP交换技术的发展情况
2.1 IP交换(IP Switching)
　　Ipsilon公司提出了IP交换，丢弃了ATM的面向连接性质，保留IP的无连接性，将ATM的硬件直接与IP综合在一起。IP交换控制器通过GSMP对交换硬件进行访问，用IFMP来管理IP流和ATM VC流的关系。通过对流的分类，长流(如FTP、TELNET、HTTP数据及多媒体音频、视频数据等)给以标号由ATM硬件直接交换，短流(如DNS查询、SMTP数据和SNMP查询等)由IP前传，并根据RFC1954对分组进行封装。它的分类和加标不在网络的入口或出口处，而是在网内的任一中间节点，因此具有局部意义，相当于分段优化。
2.2 Tag交换(Tag Switching)
　　Tag交换由CISCO公司提出，基于标记Label交流(Swapping)概念。交换边缘路由器让数据单元(分组或信元)携带长度短而固定Tag标记，依此告知交换节点如何处理数据。Tag封装可以有多种方法，如插在2层头和网络层头之间，或作为2层头或网络层头的一部分，因此可以在不同的物理媒体上使用，包括ATM链路、HSSI以及LAN接口等。由于ATM交换也基于标记交流技术，因此Tag交换技术可以很容易地应用至ATM交换。Tag分发协议(TDP)通过与标准的网络层路由协议相结合，在标记交换网络的各设备间分发Tag标记，因此是基于路由分配Tag，而不是按数据流属性。Tag交换机根据分组携带的Tag标记以及自己所维持的Tag前传信息进行分组前传。对于单播，通过在邻近双方建立TCP连接，然后TDP向相邻近节点分发Tag标记，对于Tag堆栈，由BGP的Piggy-back来进行高层次Tag分发。对于组播，没有普遍通用的支持，在PIM环境中，用PIM的控制消息携带Tag绑定信息。Tag交换也支持RSVP，通过对RSVP进行扩展来携带有关Tag绑定信息。对于直接路由(Explicit Routing)，则通过在RSVP中加入一个新的源路由对象(Source Route Object)来支持。
　　除了Ipsilon和Cisco以外，其它许多网络厂商也提出了各自的方案，如东芝的CSR(Cell Switch Router)、IBM的ARIS(Aggregate Route-based IP Switching)等。所有这些公司的技术中均使用了标记概念，但不系统不完整。1997年，由多家公司联合向IETF提交了MPLS(多协议标记交换：Multiprotocol Label Switching)框架及体系结构两个草案文档，在Cisco公司的Tag交换为基础上综合各家之长[1]。IETF随后组成了MPLS工作组开始进行标准化工作。
3 MPLS的总体框架[2,3]
　　MPLS中引入了非常多的新概念和术语，其中比较关键的有：①Label(标记)：用于表示FEC的固定长度的标识符，仅具有局部意义；②LSR(标记交换路由器)：支持第三层前传的MPLS节点；③FEC(等效前传类)：以相同方式(如：通过同一条路径，受到LSR相同的前传处理)进行前传的一组IP分组；④Label Stack(标记堆栈)：一组有序的标记，不同位置的标记代表着不同的层次；⑤LSP(标记交换路径)：一个特定的FEC在同一层次上经过LSRs所形成的路径；⑥LDP(标记分发协议)：一个LSR通知其它LSRs关于标记/FEC绑定信息的一系列过程。
　　在面向无连接的网络中，每个路由器通过分析分组头来独立地选择下一跳，而分组头中含有比需要用来判断下一跳多得多的信息。选择下一跳的工作可为两部分：将分组分成FECs和为FEC选择下一跳。在传统IP前传中，每个路由器对同一个FEC的每个分组都要进行分类和选择下一跳，而在MPLS中，对于一个分组，只是在它进入网络时进行FEC分类，并分配一个相应的标记，网络中的LSR则不再需要对网络层头进行分析，直接根据标记进行处理。有些传统路由器在分析分组头时，不但决定分组的下一跳，而且要决定分组的业务类型(COS：Class of Service)，以给予不同的服务规则。MPLS可以(但不是必须)利用标记来支持COS，此时，标记用来代表FEC和COS的结合。MPLS为多协议标记交换的缩写，可以支持任何网络层协议，但实际上，MPLS工作组仅考虑IP协议。
　　来自路由协议的信息用于分配和分发标记，一般来说，由下游节点向上游节点分发标记，连成一串的标记就构成了LSP。在单播中，LDP有两种方式来进行标记的分发：独立方式(Independent)和受控方式(Ordered)。在独立方式中，任何节点可以在任何时候为每一个它认识的流进行标记分发；受控方式中，一个流的标记分发从这个流所属的出口节点开始，这样可以保证整个网络内标记与流的映射是完全一致的。
　　标记分配由下游执行，而下游节点由路由决定，也有两种分配方式：下游(Downstream)分配和下游按需(Downstream-on-demand)分配。前者由下游分配标记，并分发到邻近的LSRs，后者则由上游LSR为一个流向下游LSR提出标记分配请求，这在ATM网络中很有用，因为ATM不能进行LSPs的合并。
　　不论是独立还是受控方式，可以采用自由模式(Liberal Mode)或保守模式(Conservative Mode)分发标记。在自由模式中，向所有邻近的LSRs分发一个FEC的标记，而不管自己是否是这些节点在此FEC上的下一跳，这样做的优点是当路由发生变化时，可以立即使用预先分发好的标记，但这将消耗更多的标记；保守模式只分发给下一跳是自己的那些节点，这样可以节省标记空间。
　　MPLS中一个关键部分就是可以将同一个标记(或LSP)分配到多个流上。MPLS支持标记的不同层次的颗粒化(Granularity)。根据对共享标记和最大程度获得交换的好处之间的折中，可以选择不同的颗粒化。常用的颗粒化有：
　　●IP地址前缀(IP Prefix)：具有相同的目的网络地址将共用同一个LSP，与自由方式配合使用，可以使标记一次性完成分配；
　　●出口路由器(Egress Router)：有同一个出口路由器的所有IP地址共用相同的LSP，扩展性最好；
　　●应用流(Application Flow)：扩展性最差，但保证了端到端的交换。
　　典型的LSP是一棵多点到点的树，多个流在某些节点上汇聚成一个流，这使得MPLS可以用O(n)数量级的标记来进行流量交换，极大地增加了扩展性，但前提是LSRs必须支持流合并，这在ATM网络中存在问题。
　　MPLS通用头(Shim)可以灵活地封装到不同的位置，可以在第二层头或第三层头中，甚至可以在第二层与第三层头之间，而且根据不同的数据链路层将有不同的格式，例如在点到点网络中，就封装到PPP头的后面，而在ATM网络中，则将标记映射到VPI/VCI中。Shim的格式支持标记堆栈，进入网络的数据可以携带多个标记，这些标记采用先进先出的堆栈方式，这使得MPLS支持层次化操作，例如在域内(Intra-domain)用第一个标记，而在域间(Inter-domain)用第二个标记，而且LSRs对于标记的处理方式与标记堆栈完全无关，它永远是对最上面一个标记进行操作。
4 MPLS的关键技术
4.1 VC合并(VC Merging)
　　MPLS通过对标记不同粗细程度的分类和流合并两种方法将网络的连接数从O(n2)降到O(n)，从而极大地增加网络的可扩展性。当MPLS运行在基于帧的媒质上时，流合并很简单，所要做的仅仅是要求节点将多个上游标记对应到同一个下游标记，这也称为帧合并。但是在ATM上就会产生问题。在ATM中，MPLS的标记对应于ATM信元中的VPI/VCI域，因此流合并意味着VPI/VCI合并。但是标准的ATM交换机不支持VC合并，如果直接将不同的VC合并成同一个出口VC，不同分组的信元就会交错在一起，而且接收方没有办法能分辨出来。一种可行的方法是用VP而不是VC来进行流合并，通过对每个VP分配不同的VC空间来解决信元交错问题，但这样将极大地降低VPI/VCI的利用率，而且需要机制来进行VC空间的分配。
　　VC合并要求ATM交换机对不同入口VC进来的分组先进行串行化，这就要求ATM交换机中有额外的缓存，对此MPLS工作组在1998年10月推出的草案[4]中提出了一种解决方案，并初步研究了它的性能[5]。
4.2 路由环(Loop)的防止与检测
　　由于LSP的建立基于路由信息，因此LSP有可能也形成环路。在传统的IP网络中，IP通过TTL域来减轻进入路由环的分组对整个网络的影响。但是ATM和Frame Relay均不支持TTL。因此MPLS工作组提出：“必须要有某种机制，防止路由环产生，或者（并且）保留一些网络资源可以用于路由环所产生的消耗。”有两种方法来处理路由环：检测和防防止。对于方式,允许路由环存在,但MPLS将会检测到它并进行处理(删除或弃用)；对于防止方式，MPLS将提供机制来杜绝路由环的生成。
　　可以通过在MPLS消息中加入路径矢量域(Path vector field)来检测路由环。路径矢量域中包含了前传某个流的每个节点的标识符，当某个节点收到这个域时，就检查自己的标识符是否已经在路径矢量域中，如果已经有了，则表明产生了回路；如果没有，则将自己的标识符加到路径矢量域中并前传MPLS消息。
　　ARIS提出了一种扩散算法(Diffusion)来防止路由环，对于某个流，当某个节点的下一跳发生变化时，首先用Diffusion算法来判断是否会产生路由环，在执行完毕之前，仍沿用旧的路径来发送数据。MPLS工作组也在考虑其它扩展性更好的机制。在1998年11月提出的Internet草案[6]中提出了一种简单的线程机制(Threads Mechanism)。当一个节点(比如入口节点)想建立LSP或它的下一跳发生改变时，它向下游节点发送一个Thread。Thread由唯一的颜色(Color)、跳数(Hop count)和TTL三部分组成，如果节点收到了由它先前发出的Thread，则说明有回路产生，如果它收到出口节点发回的确认消息，则说明不会形成回路。MPLS工作组目前仍未决定究竟选哪种机制。
4.3 RSVP与MPLS
　　已有人提出通过直接路由将RSVP和MPLS结合起来，并可以用于流量工程(Traffic engineering)。草案[7]规定了如何对RSVP流进行标记的分配和绑定，并通过RSVP的消息(PATH和RESV消息)来传送相应信息，其中需要解决的问题有：当ATM不支持流合并时，要为每个发送方分配一个标记，此时如何将一组标记作为整个来进行资源预留；如何在ATM中进行TTL处理；如何在共享媒质上进行标记分区等。
　　当RSVP路径因某种原因发生故障时，RSVP将采用普通的Best-effort路由来前传，而这与流量工程的目的相矛盾，因为当一部分流量采用预定的路径时，另一部分流量却采用动态路由。而且，当一条路径的一部分采用预定的路径，而其它部分采用动态逐跳路由时，有可能出现永久路由环。
4.4 MPLS在共享媒质中
　　现已提出两种方案，一种是将Shim头放在MAC头和网络层头之间，当数据在共享媒质中前传时，不使用Shim头，而仅在共享媒质的边界路由器使用。另一种机制是通过重新定义目的MAC地址的语义，将标记编码到MAC头中，这样就不需要像第一种方案那样要对帧进行分段，而且网桥可以具有路由功能，但它的缺点是无法和现有的LAN互通。
5 结束语
　　除了以上提到的，MPLS工作组在一些方面上还没有充分涉及到，如与其它许多已比较成熟的IP over ATM技术之间的互操作性。总而言之，MPLS还是一项非常不成熟的技术，许多方面仍在进行标准化草案。到目前为止，仅在1999年3月举行的IETF工作会议上通过了一个相关标准。对许多关键问题仅提出粗略的解决方案，既未完全制定好细节，也没有任何性能上的测试和验证，有些技术则还处于初步阶段，如：组播、路由跟踪(Traceroute)、O&M、用于政策路由的直接路由以及安全性等方面。
李珂（上海交通大学电子工程系 上海 200030）
朱康辛（上海交通大学电子工程系 上海 200030）
顾尚杰（上海交通大学电子工程系 上海 200030）
诸鸿文（上海交通大学电子工程系 上海 200030）
参考文献
1，Arun Viswanathan et al., Evolution of Multiprotocol Label Switching, IEEE Computer Communications, May. 1998, pp.165～173
2，E. Rosen et al., Multiprotocol Label Switching Architecture, Internet Draft, Feb 1999
3，R. Callon et al., A Framework for Multiprotocol Label Switching, Internet Draft, Nov 1997
4，I. Widjaja et al., Performance Issues in VC-Merge Capable MPLS Switching, Internet Draft, Oct 1998
5，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
6，Y. Ohba et al., MPLS Loop Prevention Mechanism, Internet Draft, Nov 1998
7，B. Davie et al., Use of Label Switching with RSVP, Internet Draft, Mar 1998
收稿日期：1999年7月26日
