MPLS 的工作原理

  • IETF于1997年成立了 MPLS 工作组,开发出一种新的协议——多协议标记交换 MPLS (MultiProtocol Label Switching)。
  • “多协议”表示在 MPLS 的上层可以采用多种协议,例如:IP,IPX;可以使用多种数据链路层协议,例如:PPP,以太网,ATM 等。
  • “标记”是指每个分组被打上一个标记,根据该标记对分组进行转发。

为了实现交换,可以利用面向连接的概念,使每个分组携带一个叫做标记 (label) 的小整数。当分组到达交换机(即标记交换路由器)时,交换机读取分组的标记,并用标记值来检索分组转发表。 这样就比查找路由表来转发分组要快得多。
计算机网络  多协议标记交换 MPLS_计算机网络

MPLS 特点

  • MPLS 并没有取代 IP,而是作为一种 IP 增强技术,被广泛地应用在互联网中。
  • MPLS 具有以下三个方面的特点:
  1. 支持面向连接的服务质量;
  2. 支持流量工程,平衡网络负载;
  3. 有效地支持虚拟专用网 VPN。

MPLS 的工作原理

基本工作过程
  • IP 分组的转发
    (1) 在传统的 IP 网络中,分组每到达一个路由器后,都必须提取出其目的地址,按目的地址查找路由表,并按照“最长前缀匹配”的原则找到下一跳的 IP 地址(请注意,前缀的长度是不确定的)。
    (2) 当网络很大时,查找含有大量项目的路由表要花费很多的时间。
    (3) 在出现突发性的通信量时,往往还会使缓存溢出,这就会引起分组丢失、传输时延增大和服务质量下降。
IP 分组的转发

计算机网络  多协议标记交换 MPLS_计算机网络_02

MPLS 协议的基本原理
  • 在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度“标记”,然后对打上标记的 IP 数据报用硬件进行转发。
  • 采用硬件技术对打上标记的 IP 数据报进行转发就称为标记交换。
  • “交换”也表示在转发时不再上升到第三层查找转发表,而是根据标记在第二层(链路层)用硬件进行转发。
  • MPLS 域 (MPLS domain) 是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。
  • LSR 同时具有标记交换和路由选择这两种功能,标记交换功能是为了快速转发,但在这之前LSR 需要使用路由选择功能构造转发表。

计算机网络  多协议标记交换 MPLS_计算机网络_03

MPLS 的基本工作过程

(1) MPLS 域中的各 LSR 使用专门的标记分配协议 LDP 交换报文,并找出标记交换路径 LSP。各 LSR 根据这些路径构造出分组转发表。
(2) 分组进入到 MPLS 域时, MPLS 入口结点把分组打上标记,并按照转发表将分组转发给下一个 LSR。给 IP 数据报打标记的过程叫做分类 (classification)。
(3) 一个标记仅仅在两个标记交换路由器 LSR 之间才有意义。分组每经过一个 LSR,LSR 就要做两件事:一是转发,二是更换新的标记,即把入标记更换成为出标记。这就叫做标记对换 (label swapping)。

项目含义:从入接口 0 收到一个入标记为 3 的IP 数据报,转发时,应当把该IP数据报从出接口 1 转发出去,同时把标记对换为 1。
计算机网络  多协议标记交换 MPLS_计算机网络_04
(4) 当分组离开 MPLS 域时,MPLS 出口结点把分组的标记去除。再以后就按照一般分组的转发方法进行转发。
上述的这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing),它和互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。

转发等价类 FEC

  • MPLS 有个很重要的概念就是转发等价类 FEC (Forwarding Equivalence Class)。
  • “转发等价类”就是路由器按照同样方式对待的分组的集合。
    “按照同样方式对待”表示:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。
  • 划分 FEC 的方法不受什么限制,这都由网络管理员来控制,因此非常灵活。
  • 入口结点并不是给每一个分组指派一个不同的标记,而是将属于同样 FEC 的分组都指派同样的标记。
  • FEC 和标记是一一对应的关系。

FEC 用于负载平衡

计算机网络  多协议标记交换 MPLS_计算机网络_05

流量工程

(1) 网络管理员采用自定义的 FEC 就可以更好地管理网络的资源。
(2) 这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程。

MPLS 首部的位置与格式

  • MPLS 并不要求下层的网络都使用面向连接的技术。
  • 下层的网络并不提供打标记的手段,而 IPv4 数据报首部也没有多余的位置存放 MPLS 标记。
  • 这就需要使用一种封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。
  • 从层次的角度看,MPLS 首部就处在第二层和第三层之间。
    计算机网络  多协议标记交换 MPLS_计算机网络_06

MPLS 首部的格式

“给 IP 数据报打上标记”其实就是在以太网的帧首部和 IP 数据报的首部之间插入一个 4 字节的 MPLS 首部。
计算机网络  多协议标记交换 MPLS_计算机网络_07
MPLS 首部共包括以下四个字段:
(1) 标记值(占 20 位)。可以同时容纳高达 220 个流(即 1048576 个流)。实际上几乎没有哪个 MPLS 实例会使用很大数目的流,因为通常需要管理员人工管理和设置每条交换路径。
(2) 试验(占 3 位)。目前保留用作试验。
(3) 栈S(占 1 位)。在有“标记栈”时使用。
(4) 生存时间TTL(占 8 位)。用来防止 MPLS 分组在 MPLS 域中兜圈子。