The fundamental concept behind MPLS is that of labeling packets. In a traditional routed IP network, each router makes an independent forwarding decision for each packet based solely on the packet’s network-layer header. Thus, every time a packet arrives at a router, the router has to “think through” where to send the packet next.
With MPLS, the first time the packet enters a network, it’s assigned to a specific forwarding equivalence class (FEC), indicated by appending a short bit sequence (the label) to the packet. Each router in the network has a table indicating how to handle packets of a specific FEC type, so once the packet has entered the network, routers don’t need to perform header analysis. Instead, subsequent routers use the label as an index into a table that provides them with a new FEC for that packet.
This gives the MPLS network the ability to handle packets with particular characteristics (such as coming from particular ports or carrying traffic of particular application types) in a consistent fashion. Packets carrying real-time traffic, such as voice or video, can easily be mapped to low-latency routes across the network — something that’s challenging with conventional routing. The key architectural point with all this is that the labels provide a way to “attach” additional information to each packet — information above and beyond what the routers previously had.
There’s been a lot of confusion over the years about whether MPLS is a Layer 2 or Layer 3 service. But MPLS doesn’t fit neatly into the OSI seven-layer hierarchy. In fact, one of the key benefits of MPLS is that it separates forwarding mechanisms from the underlying data-link service. MPLS can be used to create forwarding tables for ATM or frame relay switches (using the existing ATM or DLCI header) or for plain old IP routers by appending MPLS tags to IP packets.
The bottom line is that network operators can use MPLS to deliver a wide variety of services. The two most popular implementations of MPLS are layer 3 BGP/MPLS-VPNs (based on RFC 2547) and Layer 2 (or pseudowire) VPNs.
Interior routers have no knowledge of IP information beyond the label-only base forwarding decisions on the MPLS label. BGP is used by edge routers to exchange knowledge of VPNs, thus enabling service providers to isolate traffic from multiple customers or even the Internet over a shared backbone.
There are several flavors of layer 2 MPLS services, but what they have in common is that a Layer 2 packet (or ATM cell or frame relay frame) is encased in an MPLS header and forwarded through the MPLS core. When it reaches the other side, the packet’s labels are removed, and the packet that arrives at the ultimate destination exactly where it entered the MPLS network. Thus, Layer 2 MPLS services effectively extend services such as Ethernet or frame relay across an IP WAN.
The version of MPLS that’s generally used to encapsulate connection-oriented frame relay and ATM services is called pseudo Wire Edge to Edge Emulation (PWE3). PWE3 defines point-to-point tunnels across the MPLS backbone, and thus works well for circuit-oriented networking protocols. PWE3 can also be used to support connectionless LAN protocols, but it’s not the preferred solution.
For connectionless protocols (primarily Ethernet) there’s a different specification, called virtual private LAN service (VPLS). VPLS addresses some of the specific challenges with extending Ethernet across the metropolitan area or WAN, most notably scalability and availability. Another emerging spec is the ITU’s transport-MPLS (T-MPLS), which is designed to simplify deployment of Ethernet services
Finally, a variant of MPLS called Generalized Multiprotocol Label Switching (GMPLS) gives routers the ability intelligently signal the optical layer, enabling providers to establish, change or tear down optical links in real time. Thus, service providers can provision “optical wavelength” services based on MPLS.