通常 MPLS 包头的结构如下图所示包含 20 比特的标签 3 个比特的 EXP 现在通常用做 CoS 1 个比特的 S 用于标识这个 MPLS 标签是否是最低层的标签和 8 个比特的 TTL-Time To Live
MPLS 包头的位置界于二层和三层之间俗称 2.5 层 MPLS 可以承载的报文通常是 IP 包当然也可以改进直接承载以太包 ATM 的 AAL5 包甚至 ATM 信元等这在 MPLS VPN 中有详述可以承载 MPLS 的二层协议可以是 PPP 以太网 ATM 和帧中继等对于 PPP 或以太网二层封装 MPLS 包头结构如上图所示但是对于 ATM 或帧中继 MPLS 则直接采用分别采用 VPI/VCI 或 DLCI 做为转发的标签具体结构如下图所示:
MPLS 可以看做是一种面向连接的技术通过 MPLS 信令或手工配置的方法建立好 MPLS 标记交换连接 (Label Switched Path 简称 LSP 以后在标记交换路径的入口把需要通过这个标记交换路径的报文打上 MPLS 标签中间路由器在收到 MPLS 报文以后直接根据 MPLS 报头的标签进行转发而不用再通过 IP 报文头的 IP 地址查找在 MPLS 标记交换路径的出口或倒数第二跳弹出 MPLS 包头还回原来的 IP 包在 VPN 的时候可能是以太网报文或 ATM 报文等)。
MPLS 信令
通常使用的建立 MPLS 标记交换路径的信令有 LDP/CR-LDP RSVP-TE BGP 扩展等其中 LDP/CR-LDP 和 RSVP-TE 是用来建立标签连接通路 LDP 的标签分配模式有 DoD Downstream On Demand 下游按请求分配标签模式和 Du DownstreamUnsolicited 下游未被请求标签分配模式两种方式 LDP 能够建立到某个目的路由其或目的子网的 LSP 它的路由的每一跳是根据路由表确定的也就是说 LDP 建立的 LSP 只有把需要转发的 IP 报文打包成 MPLS 实际走的路由还是和原来的 IP 包走的路由是一样的 LDP 建立的 LSP 没有平衡流量的功能只能起到建立虚连接的作用 CR-LDP 和 RSVP-TE 则能够携带带宽部分明确路由着色等约束参数其中着色约束条件可以用来标识一个链路的性能 --- 如是否支持 Voip 等还是只支持 Best-Effort 业务也可以用来做为地域的标识 CR-LDP 或 RSVP-TE 要建立满足这些约束条件的 LSP 必须通过流量工程的约束路由计算从完成的功能来说两者是一样的两种协议都可以做各种扩展满足 QoS 的要求重内部实现机制来看 CR-LDP 信令协议是基于 TCP 的 RSVP-TE 是对原有的 RSVP 做扩展是基于 Raw IP 的由于 UDP 的传输是不可靠的 RSVP-TE 需要对 LSP 的状态定期刷新存在一定的可扩展性问题这两种协议在国际 / 国内标准认可方面大家都是比较偏向 LDP/CR-LDP 它是 ITUT 认可的 MPLS 信令标准也是中国国标中认定的 MPLS 信令标准 CR-LDP 和 RSVP-TE 的争论还在继续现在大多数设备厂家都同时支持 CR-LDP 和 RSVP-TE 扩展 BGP 协议的各种扩展则可以为 MPLS VPN 建立跨 AS 域的外层承载隧道或者是 VPN 应用分配 VPN 的内层标签。