Having discussed both, MPLS and DiffServ, it is easy to identify these two similarities between the two approaches :
- Both approaches push the complexity to the edge of the network. As for DiffServ, the classification and conditioning is done at the edge while the core nodes only implement forwarding behavior.
Ditto for MPLS, the FEC classification is done at the edge. Once the label is assigned the core nodes only forward packets based on labels. This property imparts scalability and makes the architectures suitable for backbone networks.
- Both technologies use short fixed-length labels for implementing QoS. MPLS uses labels for forwarding and implementing its TE operations. While DiffServ uses DSCP for providing QoS using queuing and scheduling.
As already pointed out, DiffServ and MPLS are independent of each other or putting it differently, both these technologies are orthogonal and complement each other beautifully. Even without going down into the intricacies of the DiffServ over MPLS, it;s now possible to envisage the advantages that the marriage of these two brings about:
1. Flows could be isolated using MPLS LSPs which would complement the QoS provided by DiffServ QoS mechanisms.
2. MPLS protection, be it path or local, would further strengthen the QoS guarantees, for which the ISPs can charge extra.
3. MPLS preemption can similarly be used for giving higher priority to high paying customers or high-priority traffic.
4. Looking at it from another perspective, MPLS protection and preemption adds finer level of QoS granularity to Diffserv, even allowing application level granularity. For example, in a pure Diffserv network all flows belonging to say AF11would get the same service (except in the cases of PHB promotion or demotion). But with MPLS, flows belonging to AF11 can be treated differently with protection and/or preemption enabled for some of the flows belonging to the same PHB.
5. Provisioning in DiffServ networks can be made dynamic with the use of RSVP-TE signaling in DiffServ over MPLS networks. (For static provisioning, statistics for aggregates of traffic over the network is required beforehand, which is not always possible. Also static provisioning is not always optimal.)
DiffServ;s label, DSCP, is carried in the Type of Service field inside the IP header. On the other hand, MPLS label is either carried inside the MPLS shim layer or is encapsulated inside the layer 2 header. And since the MPLS LSRs do not examine the IP header while forwarding the packets, there is a need for a mechanism to determine the PHB from the MPLS label. The standards define the use of two different types of LSPs for resolving the issue:
1. EXP inferred PHB Scheduling Class LSPs (E-LSPs)
2. Label inferred PHB Scheduling Class LSPs (L-LSPs)
PHB Scheduling Class (PSC)  is defined as a group of PHBs with a constraint that the packets belonging to the same microflow must not be re-ordered.
Ordered Aggregate (OA)  is a set of BAs that share an ordering constraint, as defined for PSC. And hence, the set of PHBs that are applied to this set of BAs constitute a PSC.