Multiprotocol Label Switching (MPLS) is a protocol-agnostic routing technique designed to speed up and shape traffic flows across enterprise wide area and service provider networks.
MPLS allows most data packets to be forwarded at Layer 2 -- the switching level -- rather than having to be passed up to Layer 3 -- the routing level. For this reason, it is often informally described as operating at Layer 2.5.
MPLS was created in the late 1990s as a more efficient alternative to traditional IP routing, which requires each router to independently determine a packet's next hop by inspecting the packet's destination IP address before consulting its own routing table. This process consumes time and hardware resources, potentially resulting in degraded performance for real-time applications such as voice and video.
In an MPLS network, the very first router to receive a packet determines the packet's entire route upfront, the identity of which is quickly conveyed to subsequent routers using a label in the packet header.
While router hardware has improved exponentially since MPLS was first developed -- somewhat diminishing its significance as a more efficient traffic management technology-- it remains important and popular due to its various other benefits, particularly security, flexibility and traffic engineering.
Components of MPLS
One of the defining features of MPLS is its use of labels -- the L in MPLS. Sandwiched between Layers 2 and 3, a label is a four-byte -- 32-bit -- identifier that conveys the packet's predetermined forwarding path in an MPLS network. Labels can also contain information related to quality of service (QoS), indicating a packet's priority level.
MPLS labels consist of four parts:
- Label value: 20 bits
- Experimental: 3 bits
- Bottom of stack: 1 bit
- Time to live: 8 bits
The paths, which are called label-switched paths (LSPs), enable service providers to decide ahead of time the best way for certain types of traffic to flow within a private or public network.
How an MPLS network works
In an MPLS network, each packet gets labeled on entry into the service provider's network by the ingress router, also known as the label edge router (LER). This is also the router that decides the LSP the packet will take until it reaches its destination address.
All the subsequent label-switching routers (LSRs) perform packet forwarding based only on those MPLS labels -- they never look as far as the IP header. Finally, the egress router removes the labels and forwards the original IP packet toward its final destination.
When an LSR receives a packet, it performs one or more of the following actions:
- Push: Adds a label. This is typically performed by the ingress router.
- Swap: Replaces a label. This is usually performed by LSRs between the ingress and egress routers.
- Pop: Removes a label. This is most often done by the egress router.
This diagram illustrates how a simple MPLS network works.
Advantages of MPLS
Service providers and enterprises can use MPLS to implement QoS by defining LSPs that can meet specific service-level agreements on traffic latency, jitter, packet loss and downtime. For example, a network might have three service levels that prioritize different types of traffic -- e.g., one level for voice, one level for time-sensitive traffic and one level for best effort traffic.
MPLS also supports traffic separation and the creation of virtual private networks (VPNs), virtual private LAN services and virtual leased lines.
One of the most notable benefits of MPLS is that it is not tied to any one protocol or transport medium. It supports transport over Internet Protocol (IP), Ethernet, Asynchronous Transfer Mode (ATM) and frame relay; any of these protocols can be used to create an LSP. Generalized Multi-Protocol Label Switching (GMPLS) extends MPLS to manage time-division multiplexing (TDM), lambda switching and other classes of switching technologies beyond packet switching.