This going to be quite a simple post on the functions of an MPLS enabled network and why you would actually want to use one in the real world. There will be a few assumptions and technical inaccuracies throughout, please only read this as a quick overview and understand that implementations and terminology is dependent on vendors and their varying hardware.
Multi Protocol Label Switching is simply a way of passing traffic over a network core transparently and quickly. It does this by examining the source and destination of your traffic at the edge of your network, and then routing through the remainder of the core network using a predefined label, at the opposite edge of the network traffic resumes the traditional routing style, giving the impression that a core acts as a single router (as seen on traceroutes).
As you probably know Labels are a very important feature within MPLS so lets look in a bit more detail, traditional networks use IP addresses or MAC addresses and perform a routing/mac lookups at each hop while traversing a network. For example if I am sending a packet to IP 18.104.22.168 through 6 routers, each router will stop the packet and perform a lookup in it’s routing table, it will then use this information to pass the packet out of the correct interface and VLAN, therefore including a delay at each hop of the route.
However each hop in a network actually does more than this; it must search the packet for an IP address and MAC address, it will then look for these in the relavant tables, the IP packets TTL must then be changed to reflect this router hop, and the frame must be completely recreated as there will be new source and destination MAC addresses for the next hop, also there must be CRC checks during all of this and a new CRC generated for the new frame/packet. As you can see it’s not a simple process and therefore it does take some time.
MPLS works differently to this, consider a single packet entering the MPLS core, on the edge router (called PE/Provider Edge) a lookup process will be done as normal, but instead of specifying an interface and VLAN to exit the lookup will return a single MPLS label.This label is a completely unique route all the way from source to destination through the core network. Typically this label will be a numeric number, however I will be using colors for the following examples, as it’s easier to understand.
Now your traffic has a label included, each hop over the core network routers (P/Provider) is a lot more simple to process, the router will inspect the packet, find the label and instantly pass this out of the labels predefined interface. As you can see this is going to be a lot quicker than the standard method described before.
Probably the easiest way to think of these labels is like a tunnel over your network and through your routers, a packet enters the tunnel at one end and then almost seamlessly comes out at the other end. Like if you had a car tunnel from one city in your country to another, it would make travelling simpler and faster.
Traditional routing would be similar to driving from one city to another on the normal road, each junction you need to make a decision about the best way to your destination, this takes longer and more effort/processing.