MPLS is a packet-forwarding technology which uses labels for data forwarding decisions.Over time, users in networks have increased and this big traffic has brougt high bandwidth and forwarding speed need.The existing routing protocols was looking to the routing table for forwarding decision on all nodes and this was overloading the routers and cause a lot of time lose. Here MPLS brings CEF beside and this bypass the slow part of this layer 3 decisions. Beside that it brings the speed of osi layer 2 swithing. In brief, MPLS is combining the benefitial parts of both layer 2 and layer 3 of osi reference model.
In addition to this negative facts, there were some other problems about ATM while working together with Ethernet and Frame Relay. To solve all these problems IETF developed MPLS in 1997. This development could be done with existing routing protocols. But changing all the existing routing protocols were very difficult, so IETF choose developing a new protocol.
This new protocol is using labels for routing decisions. These labels are router specific and local significant to that router.
- Combine the benefitial parts of layer 2 and layer 3 of OSI model.
- Decrease the routers load, provide speed and performance increment.
- Provide easy managable VPN definitions between edge devices.
- With traffic engineering, provides management of the traffic.
- Simplifies the IP forwarding over ATM devices.
For MPLS, an header is added between layer 2 and layer 3 header. This header is 32 bits long. The header content is 20 bit label value, 3 bit experimentel value, one bit bottom of stack value and 8 bit Time to Live value.
Label value is local significant for the router and used for label swicthing. Experimental field is used as Class of Service for QoS. One bit bottom of stack value shows that if this label value is the last label in packet or not(1 shows that it is the last). Finally the TTL value used for loop protection like other IP packets.Here to be more clearly, I showed these one bit fields different values below.
To be more clearly and more near of real world, we can examine MPLS header with the below capture example. In this example MPLS header is shown with blue rectangle.As you can see MPLS header is between the layer 2 header(ethernet II header) and layer 3 header.
There are some terms used in MPLS that will facilitate to understand MPLS concept. I mentioned these terms clearly below.