Hi Vinoth
Back in the day MPLS (Multi Protocol Labelled Switching) was used for its speed.
See all L3 packets were process switched, which ment routing was slow.
The MPLS solution was to stick a Label / Tag in-between the layer 2 and 3 headers. Kind of L2.5 :)
The routers would then exchange Labels / Tags to populate their LFIB.
E.G.
R1-R2-R3-R4
R1 will tell R2 to reach network 10.10.10.0 connected to me use Label 4.
R2 will then tell R3, hey I know how to get to 10.10.10.0, use Label 6 to reach this network.
R3 will then tell R4, hey I know how to get to 10.10.10.0, use Label 3 to reach this network.
R4 will then add the label 6 to the packets destined for 10.10.10.0 and switch it to R3.
R3 will swap the label 3 with 6 and switch it to R2.
R2 will switch the frame to R1 but "pop" the label since R1 is the last hop. (This is called pen ultimate hop popping)
Thus R1 does not have to do a lookup in its LFIB and RIB, speeding up the process even more.
The reason why the same label is not used across the board is because this is a dynamic process, and R2 could have used label 4 for network 20.20.20.0.
Nowadays we have cef and other protocols speeding up the routing, thus MPLS is no longer used for its performance advantage.
One of the spin offs of MPLS was MPLS VPNs, you see we just add another Label / Tag to associate the frame with a VPN.
With MP-BGP we use extended communities to identify these labels with a VRF routing table (Matching the label on route targets) and thus creating a very scalable and flexible solution, with some other advanced features. (Beats the pants off IPsec and other VPNSs).
Hope this quick and dirty explanation gives you an idea of the basics.
Regards
Phillip