传统的IP数据转发是基于逐跳式的,每个转发数据的路由器都要根据IP包头的目的地址查找路由表来获得下一跳的出口,这是个繁琐又效率低下的工作,主要的原因是两个。
1 MPLS提出的意义
传统的IP数据转发是基于逐跳式的,每个转发数据的路由器都要根据IP包头的目的地址查找路由表来获得下一跳的出口,这是个繁琐又效率低下的工作,主要的原因是两个:1、有些路由的查询必须对路由表进行多次查找,这就是所谓的递归搜索;2、由于路由匹配遵循最长匹配原则,所以迫使几乎所有的路由器的交换引擎必须用软件来实现,用软件实现的交换引擎和ATM交换机上用硬件来实现的交换引擎在效率上无法相抗衡。
当今的互联网应用需求日益增多,对带宽、对时延的要求也越来越高。如何提高转发效率,各个路由器生产厂家做了大量的改进工作,如 Cisco在路由器上提供CEF(Cisco Express Forwarding)功能、修改路由表搜索算法等等。但这些修补并不能完全解决目前互联网所面临的问题。
IP和ATM曾经是两个互相对立的技术,各个IP设备制造商和ATM设备制造商都曾努力想吃掉对方,想IP一统天下,或者ATM一家独秀!但是最终是这两种技术的融合,那就是 MPLS(Multi-Protocol Label Switching)技术的诞生!MPLS技术结合和IP技术信令简单和ATM交换引擎高效的优点!
2 MPLS技术的实现细节
2.1 标签结构
IP设备和ATM设备厂商实现MPLS技术是在各自原来的基础上做的,对于IP设备商,它修改了原来IP包直接封装在二层链路帧中的规范,而是在二层和三层包头之间插了一个标签(Label),而ATM设备制造商利用了原来ATM交换机上的VPI/VCI的概念,在使用Label来代替了 VPI/CVI,当然ATM交换机上还必修改信令控制部分,引入了路由协议,ATM交换使用了路由协议来和其他设备交换三层的路由信息。
标签的结构如下:
20比特的LABEL字段用来表示标签值,由于标签是定长的,所以对于路由器来说,可以分析定长的标签来做数据包的转发,这是标签交换的最大优点,定长的标签就意味这可以用硬件来实现数据转发,这种硬件转发方式要比必须用软件实现的路由最长匹配转发方式效率要高得多!
3比特的EXP用来实现QOS
1比特S值用来表示标签栈是否到底了,对于VPN,TE等应用将在二层和三层头之间插入两个以上的标签,形成标签栈。
8比特TTL值用来防止数据在网上形成环路。
这样完整的带有标签的二层帧就成了如下形式:
在ATM信元模式下,信元的结构如下形式:
2.2 LSR设备的体系结构
通过修改,能支持标签交换的路由器为LSR(Label Switch Router),而支持MPLS功能的ATM交换机我们一般称之为ATM-LSR。
LSR设备的体系结构如下:
LSR的体系结构分为两块:
1. 控制平面(Control Plane)
该模块的功能是用来和其他LSR交换三层路由信息,以此建立路由表;和交换标签对路由的绑定信息,以此建Label
Information Table(LIB)标签信息表。同时再根据路由表和LIB生成Forwarding Information
Table(FIB)表和Label Forwarding Information
Table(LFIB)表。控制平面也就是我们一般所说的路由引擎模块!
2.数据平面(Data Plane)
数据平面的功能主要是根据控制平面生成的FIB表和LFIB表转发IP包和标签包。
对于控制平面中所使用的路由协议,可以使用以前的任何一种,如OSPF、RIP、BGP等等,这些协议的主要功能是和其他设备交换路由信息,生成路由表。这是实现标签交换的基础。在控制平面中导入了一种新的协议—LDP,该协议的功能是用来针对本地路由表中的每个路由条目生成一个本地的标签,由此生成 LIB表,再把路由条目和本地标签的绑定通告给邻居LSR,同时把邻居LSR告知的路由条目和标签帮定接收下来放到LIB表里,最后在网络路由收敛的情况下,参照路由表和LIB表的信息生成FIB表和LFIB表。具体的标签分发模式如下叙述。