# Multiprotocol Label Switching

### From Wikipedia, the free encyclopedia.

In computer networking and telecommunications, Multiprotocol Label Switching (MPLS) is a data-carrying mechanism, operating at a layer below protocols such as IP. It was designed to provide a unified data-carrying service for both circuit-based clients and packet-switching clients which provide a datagram service model. It can be used to carry many different kinds of traffic, including both voice telephone traffic and IP packets.

[edit]

## Background

A number of different technologies were previously deployed with essentially identical goals, such as frame relay and ATM. However, MPLS seems to be replacing them, mostly because it is better aligned with current and future technology and needs.

In particular, MPLS dispenses with the cell-switching and signalling-protocol baggage of ATM. MPLS recognizes that small ATM cells are not needed in the core of modern networks, since modern optical networks (as of 2001) are so fast (at 10 Gbit/s and well beyond) that even full-length 1500 byte packets do not incur significant real-time queuing delays (the need to reduce such delays, to support voice traffic, having been the motivation for the cell nature of ATM).

At the same time, it attempts to preserve the traffic engineering and out-of-band control that made frame relay and ATM attractive for deploying large scale networks.

MPLS was originally proposed by a group of engineers from Cisco Systems, Inc.; it was called "Tag Switching" when it was a Cisco proprietary proposal, and was renamed "Label Switching" when it was handed over to the IETF for open standardization.

One original motivation was to allow the creation of simple high-speed switches, since it was at one point thought to be impossible to forward IP packets entirely in hardware. However, advances in VLSI have made such devices possible. The systemic advantages of MPLS, such as the ability to support multiple service models, do traffic management, etc, remain.

[edit]

## How MPLS works

MPLS works by encapsulating packets with a very simple MPLS header containing one (or more) 'labels' or 'tags', called a label stack, at the start of the packet. These MPLS labeled packets are forwarded along an MPLS tunnel, a virtual circuit, based on the contents of the labels.

MPLS traffic can be carried on legacy ATM hardware, or on new hardware which handles "native" MPLS traffic.

First an MPLS tunnel (called LSP — Label Switched Path) is set up. To set up an MPLS tunnel, dynamic signaling protocols like RSVP-TE, LDP, CR-LDP are used, and in some case tunnels can be set up statically by configuration at each hop of the tunnel. Using these signaling methods an MPLS tunnel is set up between two routers. Note that LSPs are unidirectional; they enable a packet to be tag switched through the MPLS network from one endpoint to another. The aforementioned dynamic signaling protocols usually set up a symmetrical LSP in the other direction to compensate for this. The entry point of an MPLS tunnel is called the ingress router, the end point is called the egress router and intermediate routers between the ingress and the egress are called transit routers. When a tunnel is set up, labels are exchanged between the egress, the transit and the ingress routers and with this the tunnel is ready to forward traffic.

Devices that function as ingress routers and/or egress routers are often called PE (Provider Edge) routers. Devices that function only as transit routers are similarily called P (Provider) routers. The job of a P router is significantly easier than that of a PE router, so they can be less complex and may be more dependable because of this.

At the ingress when an unlabelled packet is passed on to the MPLS tunnel, one (or more) labels is inserted on the top of the packet and the packet is passed on to the next hop router for this tunnel.

At a transit router, when a labeled packet is received, the topmost label is examined. Based on the contents of the label a swap, a push or a pop operation can be performed on the packet's label stack. Transit routers can have prebuilt lookup tables that tell them which kind of operation to do based on the topmost label of the incoming packet so they can process the packet very quickly. In a swap operation, the label is swapped with a new label, in a pop operation the label is removed from the packet and on a push operation a new label is pushed on top of the existing label. After the label operations are performed, the packet is forwarded to the next hop router for the tunnel.

During these operations, the contents of the packet below the MPLS Label Stack are not examined. Indeed transit routers typically need only to examine the topmost label on the stack. The forwarding of the packet is done based on the contents of the labels, which allows protocol independent packet forwarding that does not need to look at a protocol-dependent routing table and avoids the expensive IP longest prefix match at each hop.

The outermost label can be "popped" off, which may reveal an inner label below. This process is called "decapsulation". Another label can be "pushed" on, "encapsulating" the packet in another layer of MPLS. This allows the hierarchical routing of MPLS packets.

At the egress when the last label has been popped, what remains is the payload, which can be an IP packet, or any of a number of other kinds of payload packet. In some special cases, the last label can also be popped off at the penultimate hop (the hop before the egress). This is called PHP - Penultimate Hop Popping.

Labels are used to specify a forwarding equivalence class: that is to say, all packets with the same label are treated the same way for the purposes of packet forwarding.

However, MPLS can make use of existing ATM network infrastructure, as its labelled flows can be simply mapped to ATM virtual circuit identifiers, and vice-versa.

[edit]

## Comparison of MPLS versus IP

Unlike IP, MPLS does not define a directly usable end-point protocol. It only defines a way of encapsulating other layer 2 and layer 3 protocols. In this regard, it is similar to a protocol like PPP. Also unlike IP, MPLS explicitly decouples routing from forwarding, although it can fall back to using IP-style routing if necessary.

[edit]

## Comparison of MPLS versus ATM

MPLS packets can be much larger than ATM cells. Today's networks usually must be able to transport packets at least 1500 bytes long (because this is the ubiquitous maximum size for Ethernet) but any MPLS payload size (being the size of the encapsulated payload plus the size required for all the labels) that the network interfaces in use will allow, can be transported. (Note that this requires the use of "baby jumbo packets" if Ethernet is used as the transport for MPLS). This compares well with the 48-byte cell of ATM, and reduces encapsulation overheads, particularly in the case of small packets: for example, it allows a minimum-length TCP packet to reside in a single MPLS packet, rather than two cells as in ATM.

The 16 bits of VCI and 8 bits of VPI in the ATM cell are replaced by a single label field of 20 bits, packed into a 32 bit label header. The 32 bit MPLS label field also contains an 8 bit time-to-live field, a "top of stack" bit, and three spare bits for expansion.

Although fewer bits are available for the label, labels can be stacked to create arbitrarily complex MPLS label stacks. This makes MPLS addressing and trunking vastly more flexible than that of ATM, as there is no need to impose an arbitrary boundary between VP and VC switching.

[edit]

## MPLS deployment

MPLS is currently in use in large networks, and is standardized by IETF in RFC 3031.

In practice, MPLS is mainly used to forward IP datagrams and Ethernet traffic. Major applications of MPLS are Telecommunications traffic engineering and MPLS-VPN.

[edit]

## Competitors to MPLS

In the field of VPNs, L2TPv3 is emerging as a potential competitor to MPLS, particularly in existing networks with IP-only cores.

[edit]

## External links

- http://www.ietf.org/html.charters/mpls-charter.html
- http://www.mplsforum.org/
- Using MPLS for VPNs (http://www.netcraftsmen.net/welcher/papers/mplsvpn.html)

Retrieved from "http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching"

Categories: Computer networks | Internet standards | Network protocols | Tunneling protocols

##### Views

- Article
- Discussion
- Edit this page
- History

##### Personal tools

- Create account / log in

##### Search

##### Toolbox

- What links here
- Related changes
- Special pages

##### In other languages

- Deutsch