The key thing to remember about MPLS is that it's a technique, not a service -- so it can be used to deliver anything from IP VPNs to Metro Ethernet services, or even to provision optical services. So although carriers build MPLS backbones, the services that users buy may not be called MPLS. They could be called anything from IP VPN to Metro Ethernet -- or whatever the carriers' marketing departments dream up next.
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.
Layer 2 or Layer 3?
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.
RFC 2547 VPNs have been implemented by most of the major world service providers, including AT&T, Verizon, BT and many others. The fundamental characteristics of a 2547 is that traffic is isolated into MPLS-VPNs as it enters the network.
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.