| Chosing the next hop to forward a
packet can be thought of as a composition of two functions. The first
partitions the entire set of possible packets into a set of "Forwarding
Equivalance Classes (FEC)". The second maps each FEC to a next
hop. Insofar as the forwarding decision is concerned, different packets
which get mapped into the same FEC are indistinguishable. |
| |
|
The first function could use a header
multi-field classification to assign the packet to a FEC; something similar
when a packet is assigned to a Behavior Aggregate (BA) in the Diffserv
architecture. Have a look to Differentiated Service
Theory. LB. |
| |
| In MPLS, the assignment of a
particular packet to a particular FEC is done just once, as
the packet enters the network. The FEC to which the packet is
assigned is encoded as a short fixed length value known as a "label".
When a packet is forwarded to its next hop, the label is sent along
with it; that is, the packets are labeled before they are forwarded. |
| |
|
Observe the similarity with Diffserv
architecture where a DS packet is encoded just once, when entering the DS
domain through an ingress router. The DS packet is encoded with a DSCP.
However, the DS architecture allows traffic policing at entrance; this is
not the case (necessarely, see below) with MPLS. LB. |
| |
| At subsequent hops, there is no
further analysis of the packet's network layer. Rather, the label is
used as an index into a table which specificies the next hop, and a new
label. The old label is replaced with the new one, and the packet is
forwarded to its next hop. |
| |
| In the MPLS forwarding paradigm,
once a packet is assigned to a FEC, no further header analysis is
done by subsequent routers; all forwarding is driven by the labels. |
| |
| Some routers analize a packet's
network layer header not merely to choose the packet's next hop, but also to
determine a packet's class of service. Different discard threshold
or scheduling disciplines can then be applied to different packets.
MPLS allows (but does not require) the class of service to be
fully or partially inferred from the label. The label
represents the combination of a FEC and a class of service. |
| |
|
MPLS stands for
Multiprotocol Label Switching; multiprotocol because its techniques are
applicable to ANY network layer protocol. A router which supports MPLS
is known as a Label Switch Router, or LSR. |