MPLS defines a set of protocols that use datagrams to communicate over a circuit-switched packet-switched network. MPLS operates at the interface between the network layer and link layer of the OSI reference model and is a part of a suite of protocols known as TCP/IP.
MPLS [RFC3031] was originally introduced as a mechanism to decrease the forwarding delay in IP routing within operator networks (originating from work on "fast packet-switching", "tag-switching" and earlier techniques, such as "Asynchornous Transfer Mode, ATM"). However, the objective of MPLS gradually changed to provide Quality of Service (QoS) support and for traffic engineering by a network operator.
MPLS is a highly scalable protocol set that is positioned between the link and IP layer. It is designed to work in conjunction with IP and with IP routing protocols such as Open Short Path First (OSPF), Border Gateway Protocol (BGP), etc. The primary benefit of MPLS is that it is protocol-agnostic and can work over multiple layer 2 networks such as ATM, SONET/SDH, Ethernet etc. The MPLS standards for IP networks are maintained by the MPLS IETF Working Group, with control plane inputs provided by ITU-T and the IETF CCAMP WG.
In an MPLS domain, an MPLS header, shown in Figure 5 1, prefixes network packets. It can contain one or more labels, also known as a label stack. Packet-forwarding decisions within the network are made solely on the contents of this label, without the need to examine the packet itself, allowing fast and simple processing of packets. Each MPLS label header comprises four fields:
An MPLS enabled router that forms the entry and exit points of an MPLS domain are called a Label Edge Router (LER). These are typically placed at the Provider Edge (PE) of an operator network. When a packet arrives at an ingress LER, an MPLS label is pushed onto the packet. If the incoming packet already has a label (i.e. at an interior interface between two MPLS domains), the LER places an additional label onto the packet. The MPLS label is popped off by an egress LER when the packet leaves the MPLS domain. the outgoing packet.
Within the MPLS domain, forwarding is performed by a Label Switch Router (LSR). This performs forwarding based only on the contents of the outer label. The set of LSRs that forward packets between two LERs is known as a Label Switch Path (LSP). A LSP is not characterised by a globally unique MPLS label; instead, labels have only local significance at a specific router interface (similar to the way VLAN-IDs are used at layer 2), and MPLS routers are therefore responsible for assigning the correct label to each packet for the next hop.
The MPLS control and forwarding planes are completely decoupled giving Service Providers (SP) the ability to influence the network forwarding behaviour. In the control plane, labels can be distributed between LERs and LSRs using the Label Distribution Protocol (LDP) [RFC3036]. An alternative is offered by the constraint-based routing label distribution protocol, CR-LDP [RFC3212], an extension to LDP, that uses a hard state approach with TCP as the underlying protocol. Constraint-based routing is used to compute routes that are subject to multiple constraints. Constraint-based routing extends QoS routing by considering other constraints such as network policy.
The LDP method is no longer the recommended method for control of an MPLS network. It has been replaced by a soft state approach using refresh messages. These messages are transported by a traffic engineering (TE) extension to the Resource Reservation Protocol (RSVP) for MPLS, known as RSVP-TE [RFC3209]. The IETF TSV working group maintains RSVP, although the MPLS-related control functions are provided by RSVP-TE are maintained by the IETF CCAMP working group.
MPLS allows packets entering the MPLS domain (at the LER) to be assigned labels according to their class of service or DiffServ Code Point (DSCP). Packets with common forwarding path requirements are assigned the same Forward Equivalence Class (FEC). At a LSR, all packets that belong to the same FEC are routed via the same LSP with the same forwarding treatment. MPLS continues to evolve by adding new capabilities and integrating MPLS with other network technologies.
Since MPLS is often used in the PE, it is commonly used to support Virtual Private Networks (VPNs). A VPN may be established by the network operator to create network-based IP virtual private networks or to route traffic along specified paths through the network. [RFC3017] specifies a technique by which MPLS labels can be distributed using the standard routing protocol BGP-4 [RFC1771] at the PE equipment
IP Packet Header
IP Packet Processing