I think most network engineers will agree, MPLS is one of the most interesting protocols to work with. I started learning MPLS around the same time I learned about BGP (before I was working as a network engineer). Googling “how the internet works?”, and then taking it a step further “how do ISP’s work?”; it has always interested me in learning about the most powerful invention of the twentieth century. Well low and behold, it’s essentially just a lot of fiber cables connected by large routers running BGP and MPLS! This is ultimately what led me down the path of becoming a network engineer.
So what is MPLS or Multi-Protocol Label Switching? I’ve always referred to it as “layer 2.5” this is because MPLS injects a header right in-between layers 2 and 3 as seen below:

It’s a pretty straightforward header with only four parts to it:
- Label tag – A number up to 220 (roughly one million), 20 bits long
- Experimental, now Class of Service, 3 bits long
- Stack bit, only 1 bit, enables MPLS stacking, determines if an “inner” or “outer” label.
- TTL field – 0-255, 8 bits long
To Be Continued…