Continuing with our series on Quality of Service (QoS) in VoIP, our previous installments have looked at some of the key factors surrounding the quality of the voice connection:
Part I: Defining QoS
Part II: Key Transmission Impairments
Part III: Dealing with Latency
Part IV: Measuring “Toll Quality”
Part V: Integrated Services
Part VI: Resource Reservation Protocol
Part VII: Differentiated Services
In two recent tutorials, we examined the Integrated Services (intserv) and Differentiated Services (diffserv) projects of the Internet Engineering Task Force (IETF). With intserv, defined in RFC 1633, network resources along the path from sender to receiver are reserved to support the particular application. The Resource Reservation Protocol, or RSVP, defined in RFC 2205, is used to reserve those resources. In contrast, diffserv, which is defined in RFCs 2474 and 2475, defines a special field within the IPv4 or IPv6 headers, called the Differentiated Services (DS) field, which is marked with a value that identifies the particular class of service. Routers along the path then read the value of the DS field to facilitate their packet processing decisions. This tutorial will consider a third IETF-supported QoS solution, known as Multiprotocol Label Switching, or MPLS.
The origins of MPLS can be traced to ATM developments in the mid-1990s, which sought to integrate the high speed Layer 2 switching (from ATM) and Layer 3 routing (from IP) technologies. Many of these early developments were proprietary to specific vendors including Cisco Systems, IBM, Nokia, and Toshiba, and therefore non-standard. The IETF became involved in the development in 1997, and chartered the MPLS Working Group, described in www.ietf.org/html.charters/mpls-charter.html.
The architecture for MPLS is defined in RFC 3031, published in January 2001, however there are 40 additional RFCs that document various aspects of MPLS operation and implementations. One of the reasons for the large volume of words written on MPLS is its applicability—MPLS is designed for implementation over a wide variety of link-level technologies, including Frame Relay, Asynchronous Transfer Mode (ATM), Packet over SONET, plus LANs such as Ethernet and token ring.
To describe the operation of MPLS, recall that the local network header contains the addressing information necessary to deliver the frame from one node to the next on the local network. Similarly, the IP header contains the addressing information necessary to deliver the packet from the source node to the destination node on the internetwork, which may include a number of intermediate hops. Thus, the IP header contains more than enough information to get the packet from one hop to the next within the internetwork, and the processing time to examine that entire IP header might be better spent on other tasks. MPLS looks at this choice of the next hop as a two-step function. First, all packets are partitioned into Forward Equivalence Classes, or FECs, which are groups of packets that have equivalent forwarding parameters, such as all the packets that share a common source and destination. The second function then maps each FEC to a next hop. Thus, all packets with the same FEC will follow the same path (or set of paths) associated with that FEC. The assignment of a packet to a particular FEC is performed only once, when the packet enters the network, and a label containing the necessary forwarding information is sent along with the packet.
A 32-bit MPLS header (sometimes called the “tag” or a “shim”) is placed between the packet’s local network and IP headers when it enters the MPLS domain. This header determines how the intervening routers will handle that packet. Because these routers must be able to interpret and act upon this new label, the MPLS-capable routers are called Label Switching Routers, or LSRs. The packets are classified at the entry point to the network, called the ingress LSR, and only that 32-bit header is examined to determine how the packet should be handled within the network. Since the LSR only examines the MPLS header and not the entire IP header, this QoS mechanism can operate independently of the Network Layer protocol (such as IP) that is currently in use. This is the origin of the term multiprotocol in the name MPLS.
Thus, in contrast to intserv, which requires the uses of an ancillary protocol (RSVP), or diffserv, which embeds flow information inside the IP header, MPLS acts as an intermediary between Layer 2 and Layer 3, providing a compromise between high speed Layer 2 LANs and well-understood Layer 3 internetworks. For further study, check out the MPLS Resource Center, at www.mplsrc.org. In our next tutorial, we will look at some vendor-developed QoS solutions.
Copyright Acknowledgement: © 2005 DigiNet ® Corporation, All Rights Reserved
Mark A. Miller, P.E. is President of DigiNet ® Corporation, a Denver-based consulting engineering firm. He is the author of many books on networking technologies, including Voice over IP Technologies, and Internet Technologies Handbook, both published by John Wiley & Sons.