一、概述
近年来,随着WWW的巨大成功和日益普及,Internet在全球范围内呈爆炸性增长,Internet上的主要业务由传统的文件传送、电子邮件和远程登录等转向多媒体应用丰富的WWW。网上信息流的持续增加,由多层路由器构成的传统网络趋向饱和,多媒体通信的迅猛发展(如网络电话、电子商务、视频会议等),要求网络能提供具有不同QOS等级的综合业务(如时延、带宽、分组丢失率的保证),由于Internet采用面向无链接的IP协议,只能提供尽力而为(best-effort)服务,因此无法提供QOS保证。当现有Internet规模扩充到一定限度后,将在许多方面(带宽、路由、网络扩展性、QOS)面临挑战。
ATM技术的出现为解决Internet困境带来了契机,IETF制定了经典的IPOA(Classic IP overATM),ATM论坛制定了局域网仿真和MPOA(MultiProtocol over ATM),有的已经得到了广泛的应用。但这些方案均不够理想。由于在早期的方案中,所采用的是叠加式(Overlay)模型。其优点是减少了ATM与IP的相互限制,有利于它们独立地发展并向未来的B-ISDN过渡;但缺点是IP技术和ATM技术不能有效地结合,无论是分组的封装效率、建链的时延、对组播的支持以及对QOS的支持都不理想。
近几年的发展已清楚表明IP将是下一个世纪网络的主宰。因此,如何使ATM技术融入IP,如何将路由和交换结合起来,如何解决IP无连接和ATM面向连接的矛盾,以支持规模日益增长的Internet和多媒体业务,成为目前研究的热点。众多厂商和学者提出了许多新方案、概念和名词,如IP交换、CSR、Tag交换、ARIS、MPLS等。
二、MPLS的总体框架
1997年,由多家公司联合向IETF提交了MPLS(多协议标记交换:Multiprotocol Label Switching)框架及体系结构两个草案文档,它以Cisco公司的Tag交换为基础而又综合各家之长。MPLS中引入了非常多的新概念和术语,其中比较要害的有:①Label(标记):用于表示FEC的固定长度的标识符,仅具有局部意义;②LSR(标记交换路由器):支持第三层前传的MPLS节点;③FEC(等效前传类):以相同方式(如:通过同一条路径,受到LSR相同的前传处理)进行前传的一组IP分组;④Label Stack(标记堆栈):一组有序的标记,不同位置的标记代表着不同的层次;⑤LSP(标记交换路径):一个特定的FEC在同一层次上经过LSRS所形成的路径;③LDR(标记分发协议):一个 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对于标记的处理方式与标记堆栈完全无关,它永远是对最上面一个标记进行操作。
三、MPLS的要害技术
1.VC合并(VC Merging)
MPLS通过对标记不同粗细程度的分类和流合并两种方法将网络的连接数从0(n2)降到0(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工作组在1999年9月指定的标准中提出了一种解决方案,并初步研究了在输出缓存采用FIFO时它的性能。研究结果表明,这种方案十分可行。
2.路由环(Loop)的防止与检测
由于LSP的建立基于路由信息,因此LSP有可能也形成环路。在传统的IP网络中,IP通过TTL域来减轻进入路由环的分组对整个网络的影响。但是ATM和Frame Relay均不支持TTL。因此MPLS工作组提出:“必须要有某种机制,防上路由环产生,或者(并且)保留一些网络资源可以用于路由环所产生的消耗。”有两种方法来处理路由环:检测和防止。对于检测方式,答应路由环存在,但MPLS将会检测到它并进行删除或弃用;对于防止方式,MPLS将提供机制来杜绝路由环的生成。
可以通过在MPLS消息中加入路径矢量域来检测路由环。路径矢量域中包含了前传某个流的每个节点的标识符。当某个节点收到这个域时,就检查自己的标识符是否已经在路径矢量域中:假如已经有了,则表明产生了回路;假如没有,则将自己的标识符加到路径矢量域中并前传MPLS消息。
ARIS提出了一种扩散算法(diffusion)来防止路由环。对于某个流,当某个节点的下一跳发生变化时,首先用diffusion算法来判定是否会产生路由环。在执行完毕之前,仍沿用旧的路径来发送数据。MPLS工作组也在考虑其它扩展性更好的机制。在1999年5月提出的Internet草案中提出了一种线程机制(Threads Mechanism)。当一个节点(比如入口节点)想建立LSP或它的下一跳发生改变时,它向下游节点发送一个thread,thread由唯一的颜色(color)、跳数(hop count)和TTL三部分组成。假如节点收到了由它先前发出的thread,则说明有回路产生;假如它收到出口节点发回的确认消息,则说明不会形成回路。虽然线程机制功能强大,但操作过于复杂,而且节点必须保留经过它的所有thread的信息。由于目前的LDP(标记分配协议)有路由环的检测功能,因此1999年6月提出的Internet草案中提出了一种简单的防止机制来配合LDP:其工作原理与数据流的流向和树的类型无关,可以很好地支持组播。通过向树的根节点发送标记合并消息(label splice message),并等待根节点的确认消息来判定是否存在环路。它没有提供检测控制消息的环路的方法,不过LDP已有相应的解决办法。MPLS工作组目前仍未决定究竟选哪种机制。
3.RSVP与MPLS
已有人提出通过直接路由将RSVP和MPLS结合起来,并可以用于流量工程(trafficengineering)。草案规定了如何对RSVP流进行标记的分配和绑定,并通过RSVP的消息(PATH和RESV消息)来传送相应信息。其中需要解决的问题有:当ATM不支持流合并时,要为每个发送方分配一个标记,此时如何将一组标记作为整个来进行资源预留;如何在ATM中进行TTL处理;如何在共享煤质上进行标记分区等。
当RSVP路径因某种原因发生故障时,RSVP将采用普通的best-effort路由来前传,而这与流量工程的目的相矛盾:因为当一部分流量采用预定的路径时,另一部分流量却采用动态路由。而且,当一条路径的一部分采用预定的路径,而其它部分采用动态逐跳路由时,有可能出现永久路由环。
4.MPLS在共享媒质中
现已提出两种方案,一种是将shim头放在MAC头和网络层头之间,当数据在共享媒质中前传时,不使用shim头,而仅在共享媒质的边界路由器使用;另一种机制是通过重新定义目的MAC地址的语义,将标记编码到MAC头中,这样就不需要象第一种方案那样要对帧进行分段,而且网桥可以具有路由功能。但它的缺点是无法和现有的LAN互通。
四、结束语
除了以上提到的,MPLS工作组对一些方面的问题还没有充分涉及到。例如与其它许多已比较成熟的IP over ATM技术之间的互操作性等。总之,MPLS还是一项非常不成熟的技术,许多方面仍在进行标准化过程,仅有草案。到目前为止,在1999年3月通过了RFC2547(提出了一种ISP如何利用MPLS和BGP在主干网上为企业提供VPN的方案);1999年9月通过了RFC2682(提出一个实现VC合并的简单模型,并进行了初步性能分析)、FRC2702(给出了在MPLS中提供流量治理的要求)。对许多要害问题仅提出粗略的解决方案,也没有任何性能上的测试和验证;有些则还处于初步阶段,如:组播、路由跟踪(traceroute)、O&M、用于政策路由的直接路由以及安全性等方面。预计相应的标准要到2000年才能制定出来。
下一篇 MPLS新趋向