Configure Quality of Service
Quality of Service (QoS) facilitates the deployment of media-rich applications, such as video conferencing and Internet Protocol (IP) telephony. QoS also improves the performance of traditional mission-critical (qualitative) software such as Enterprise Resource Planning (ERP) applications. Through the full implementation of QoS in a Windows 2000 domain, QoS-aware applications running on Windows 2000-based clients can be provided a guaranteed or prioritized level of delivery service, while allowing centralized management of network resources.Understand the purpose and function of Quality of Service and how it is implemented in your network.Although largely implemented through a collection of servers, switches, and routers, an understanding of QoS in Windows 2000 is critical to the successful implementation of QoS at a Windows 2000 Professional-based client. This section explains the architecture of QoS, the protocols used, and provides a scenario to demonstrate these concepts. See "Overview of Quality of Service" and "Windows 2000 QoS Components" in this chapter.Verify that the client meets requirements to implement QoS, and install the QoS Packet Scheduler.In order to successfully implement QoS on a Windows 2000 Professional-based client, the client must meet hardware and software requirements. In addition, the QoS Packet Scheduler must be installed for each Windows 2000 Professional-based client that requests QoS. See "QoS Configuration Requirements" in this chapter.
Overview of Quality of Service
Multimedia streams, such as those used in IP telephony or videoconferencing, can be extremely bandwidth- and delay-sensitive, imposing unique demands on the underlying networks that carry them. Conversely, enterprise network administrators might be primarily concerned with the quality of network transmissions for mission-critical applications, such as Enterprise Resource Planning (ERP) applications, and secondarily concerned with providing sufficient bandwidth for multimedia applications.To deploy real-time applications over IP networks with an acceptable level of quality, specific network requirements must be met. These requirements are bandwidth, latency, and jitter. In addition, the traffic must coexist with traditional data traffic on the same network. Table 22.10 summarizes these requirements.Table 22.10 Network Requirements for Real-Time Applications
Network Requirement | Effect |
---|---|
Bandwidth | Multimedia data, especially video, requires larger amounts of bandwidth than traditional networks can handle. Even compressed, a handful of multimedia streams can completely overwhelm any other traffic on the network. |
Latency | The amount of time that a multimedia packet takes to get from the source to the destination has a major impact on the perceived quality of the call. Latency must be minimized to maintain a certain level of interactivity and to avoid pauses in conversation. |
Jitter | Variations in packet arrival time must be below a certain threshold to avoid dropped packets, resulting in gaps in audio and video transmission. Jitter, by determining receive buffer sizes, also affects latency. |
Coexistence | In comparison with multimedia traffic, data traffic arrives in unpredictable chunks. Aggregations of such bursts cause gaps in teleconferencing applications. Multimedia bandwidth must be protected from data traffic, and vice versa. |
QoS is a combination of mechanisms that cooperatively provide a specific quality level to application traffic crossing a network or multiple, disparate networks. Implementing QoS means combining a set of technologies defined by the Internet Engineering Task Force (IETF), designed to reduce the problems caused by shared network resources and finite bandwidth.QoS provides two distinct benefits:
A mechanism for applications to request service quality parameters, such as low latency and jitter.Higher levels of administrative control over congested subnet bandwidth resources.
Implementing QoS enables network administrators to make the most efficient use of subnet bandwidth when deploying resource-intensive applications. A QoS-enabled network can provide guarantees of sufficient network resources for some traffic, and the ability to prioritize other important traffic, giving a congested, shared network segment a level of service approaching that of a private network. Different classes of applications have varying degrees of tolerance for delay in network throughput. An accepted QoS request can ensure that an application can transmit data in an acceptable way, in an acceptable time frame so that the transmission is not delayed, distorted, or lost.To enable end-to-end QoS requires cooperation from the sending host, the receiving hosts and routers and switches between the two end nodes. Without QoS, each of these network devices treat all data equally and provide service on a first-come, first-served basis, known as best-effort delivery. In addition, for an application to make use of QoS, it must have some level of QoS awareness so that it can request bandwidth and other resources from the network.The efficient use and allocation of bandwidth is critical for productivity. Real-time applications, media-rich applications, and Enterprise Resource Planning applications require a large amount of uninterrupted bandwidth for transmission to be successful, and therefore can strain existing network resources. When traffic is heavy, overall performance degrades, which results in traffic and packet loss. This degradation causes problems with video conferencing, real-time audio, and interactive communication, causing distortion of voices and images. Because media-rich applications use large quantities of bandwidth, traditional mission-critical applications suffer from the lack of available resources. QoS provides a delivery system for network traffic that can guarantee limited delays and data loss, or allow certain types of traffic to receive priority queuing over other types of traffic.It is important to realize that QoS cannot create bandwidth; it can only efficiently partition bandwidth based on differing parameters.
Windows 2000 QoS Components
The Windows 2000 QoS architecture is built upon a tightly-integrated set of industry standard protocols, services, and mechanisms that control access to network resources, classify and schedule network traffic, and protocols that signal network devices to apply QoS by handling specific traffic flows with greater priority. Figure 22.20 illustrates the Windows 2000 QoS architecture.
Figure 22.20 Windows 2000 QoS Components
All of these components work together seamlessly to provide QoS on a network. Appearing as shaded boxes in this figure are the Windows 2000 QoS components. Not pictured in Figure 22.20 are the elements in the network infrastructure required to fully ensure QoS end-to-end. All routers and switches between the sender and receiver must also support one of several possible QoS mechanisms, such as RSVP, 802.1p, or DiffServ, otherwise traffic receives best-effort delivery on that segment.
Generic QoS API (GQoS API)
Applications can use the Generic QoS application programming interface (GQoS API) to specify or request bandwidth requirements, such as preventing latency when streaming audio. They can also use the GQoS API to prioritize traffic generated by mission-critical applications.GQoS is part of the Windows Sockets 2.0 (Winsock2) API. The abstraction of the QoS API enables applications to invoke QoS without a full knowledge of the QoS mechanisms available or the specific underlying network media. As such, QoS can be implemented in a variety of diverse media, such as Ethernet or IP over Asynchronous Transfer Mode (ATM).
Resource Reservation Protocol
When QoS is requested, GQoS calls upon the services of the underlying QoS service provider, Resource Reservation Protocol Service Provider (Rsvpsp.dll). The RSVP SP issues RSVP signaling to participating network devices along the data path of the bandwidth requirements, traffic control, and Admission Control support.Resource Reservation Protocol (RSVP) is an IETF-defined signaling protocol that carries QoS requests for priority bandwidth through the network. RSVP (Rsvp.exe) bridges the gap between the application, the operating system, and the media-specific QoS mechanisms. RSVP sends messages in a format that is media-independent, so that end-to-end QoS is possible over networks that combine different types of low-layer network devices.
Traffic Control
Traffic control creates and regulates data flows by using defined QoS parameters, such as transmission latency and delay variation. It also facilitates the creation of filters to direct selected packets through a data flow. The capabilities of traffic control are accessed via the Traffic Control API, implemented through the dynamic link library Traffic.dll. Traffic control is called upon by the GQoS API.The Generic Packet Classifier (Msgpc.sys) determines the service class to which an individual packet belongs. Table 22.11 shows the possible service classes for a packet.Table 22.11 Windows 2000 Service Classes
Service Class | Definition |
---|---|
Best Effort | Network devices make reasonable effort to deliver packets (standard service level). |
Controlled Load | Approximates the standard packet error loss of the transmission medium. Approximates the behavior of best-effort service in lightly loaded (not heavily loaded or congested) network conditions. |
Guaranteed | Guarantees the ability to transmit data at a determined rate for the duration of the connection. |
Qualitative | Although not implemented, the qualitative service class is designed for applications that require prioritized traffic but cannot to quantify their resource needs. The level of service is determined by an entry in a policy server by a network administrator. |
Packets are then queued by service class, managed by the QoS Packet Scheduler. The QoS Packet Scheduler (Psched.sys) enforces QoS parameters for a particular data flow. Traffic is marked with a particular priority by the QoS Packet Scheduler, differentiated by priority and by device type. 802.1p provides prioritization of packets for devices that correspond to Layer 2 of the OSI model, such as switches. For Layer 3 devices such as routers, the Differentiated Class of Service enables packets that pass through network devices to have their relative priority differentiated from one another.The QoS Packet Scheduler then determines the delivery schedule of each packet queue and handles competition between queued packets that need simultaneous access to the network.
QoS Admission Control Service
To deploy real-time multimedia or qualitative applications with an acceptable traffic rate, a network must commit to some level of guaranteed resource availability. In addition, the subnet management service must find some way for this priority traffic to coexist with traditional data traffic.The QoS Admission Control Service (QoS ACS), located in a designated ACS server, solves this problem by allowing the network administrator to centrally designate how, by whom, and when shared network resources are used. A QoS ACS server performs logical allocation of network resources based on policies located in Active Directory on the domain controller. Note that the ACS server does not allocate the physical network resources, but performs the policy and Admission Control function of accepting or rejecting requests. After a request has been accepted, the sending host can mark the packets accordingly. Figure 22.21 illustrates this procedure.
Figure 22.21 How QoS ACS Works
As each request for network resources is received by the QoS ACS server:
The QoS ACS verifies whether network resource levels are adequate. The ACS can verify for the sender, receiver, or both.The requesting user identity is verified by using the Kerberos protocol, the default Windows 2000 authentication service.The QoS ACS policy for that user is retrieved from Active Directory or from the local ACS policy cache.The QoS ACS server checks the policy to see whether the user has adequate rights for the request.The QoS ACS approves or rejects the request.
A single QoS ACS server can be configured to manage multiple subnets. Typically, QoS ACS servers are implemented on an enterprise's most congested segments, often at the ingress to an expensive WAN link.QoS ACS policies are defined in Active Directory by the network administrator by using the ACS MMC snap-in. Policies can be defined at varying levels of granularity, from specific (a particular user policy in a domain) to general (any authenticated user in the enterprise). QoS ACS policies are processed hierarchically, from most specific to least specific. Additionally, enterprise-level policies can be differentiated between authenticated users (users with valid domain accounts) and unauthenticated users (users who have access to the network, but are not authenticated by a Windows 2000 domain controller).
NOTEThe Local Policy Module (LPM) is a component of the QoS ACS that provides a means of retrieving policy information from Active Directory. When a Windows 2000 Kerberos ticket is received by the ACS server, the QoS ACS invokes the LPM dynamic-link library Msidlpm.dll. The LPM extracts the user name from the RSVP message and looks up the user's Admission Control policy in Active Directory.
For more information about planning and implementing a QoS ACS server in an Active Directory domain, see "Quality of Service" in the TCP/IP Core Networking Guide, and "Group Policy" in the Distributed Systems Guide.
Putting It All Together: A QoS Scenario
IP telephony provides an excellent example of the need for Quality of Service controls. When a user initiates a teleconference call to another user, the success of the communication relies on available priority bandwidth. Any new IP telephony sessions have the potential to degrade the quality of the first call that is still in progress, because these calls must share the same bandwidth. To guarantee QoS and successful throughput of the original call, the various components of QoS are put to use:
A QoS-enabled sending application initiates a session with a receiving client, signaling a request for desired resource requirements.The Admission Control Service verifies the user's right to request a bandwidth reservation.A receiving client accepts or rejects the request, and if accepted, sends a Reservation Confirmation (RESV) message back to the sending client.This RESV message from the receiver traverses back along the same path as the sending message, and routers along the way that understand RSVP also have the opportunity to accept or reject the request. If the request is accepted by a network entity, then the requested bandwidth is allocated on that device. Admission Control can also be applied on the receiver.Traffic Control prioritizes and schedules IP packets between the two clients when the RESV message reaches the sender's system.
This section describes how these components work together in a common QoS scenario. Figure 22.22 illustrates a common QoS deployment.
Figure 22.22 How QoS Works
A user on a client in Network A starts a videoconferencing session with a user in Network B. The application used to transmit data is QoS-enabled. The application requests QoS from the RSVP SP.The RSVP SP requests the RSVP service to signal the necessary bandwidth requirements, and notifies traffic control that QoS has been requested for this flow. Traffic is currently sent at a best-effort delivery level.An RSVP message is sent to the QoS ACS server, requesting a reservation. Note that it is RSVP messages that are passed to the QoS ACS, not the data packets that are ultimately transmitted from sender to receiver.The QoS ACS server verifies that enough network resources are available to meet the QoS level requested, and that the user has the policy rights to request that amount of bandwidth. The Local Policy Module uses the Kerberos ticket in the RSVP request to authenticate the user identity and look up the user policy in Active Directory. Note that the QoS ACS can verify resources for the sender, receiver, or both.After verification is complete, the QoS ACS server approves the request and logically allocates bandwidth. The QoS ACS server forwards the request to the receiver of the videoconferencing session on the client in Network B.When the RSVP request passes the edge router for Network A, the router keeps track of the resources (bandwidth) that are requested, although the bandwidth is not yet physically allocated. RSVP is a receiver-initiated protocol and bandwidth can only be reserved by the receiver. The same process is repeated on the edge router for Network B.The request is passed through each network device in the data path before it arrives at the receiver. The receiving client indicates that it wants to receive the data and returns an RSVP message requesting a reservation.When the receiver's request for bandwidth passes through the edge router for Network B, it already has cached the information about the requested bandwidth (from the sender's request). The router matches the receiver request with the sender's request, and installs the reservation by physically granting the bandwidth. The same process is repeated on the edge router for Network A.The reservation is sent back to the sender. The Layer 3 network devices (the edge routers) are capable of approving and allocating the physical bandwidth. The reservation simply passes through the Layer 2 switch.During this process, the traffic is sent by traffic control on the sender as best-effort. Upon receiving the reservation message, the traffic control on the sending host begins the process of classifying, marking, and scheduling the packets to accommodate the QoS level requested. The QoS Packet Scheduler performs the priority marking for RSVP, 802.1p for prioritization on Layer 2 devices (shown as the switch in Figure 22.22), and for Differentiated Class of Service for Layer 3 devices (shown as the edge routers).The QoS Packet Scheduler begins sending the prioritized traffic. The data is handled as priority by all devices along the data path, providing greater speed of throughput and a more successful videoconference session between the clients on networks A and B.
Note that this example is a general description. Variations are possible depending on network topology as well as the presence of different network devices.
QoS Configuration Requirements
To maintain the integrity of RSVP reservations on a shared subnet, it is important that any client that can issue RSVP messages is a QoS Subnet Bandwidth Manager client. On Windows 2000 Professional, the required QoS client software must be configured and enabled to request bandwidth. The requesting applications installed on the Windows 2000 Professional-based client must also be QoS-enabled. Applications that are not QoS-aware do not interact with the QoS ACS server, and receive best-effort service traffic levels from the network.To fully implement QoS, there are several considerations that must be met by the Windows 2000 Professional-based client.Hardware Network adapters must be compatible with the IEEE 802.1p standard, and must support 802.1p to allow prioritization over a shared subnet. This standard provides the mechanism necessary for traffic control.Admission Control Policies Verify with your network administrator that a valid Admission Control policy exists for your user or group in the domain. The ACS policy determines the level or service to be provided to each user or group account, and directly affects the level of service provided. Also, check to see what the enterprise policy for nonauthenticated users is—for example, a member of a workgroup within the enterprise. Depending on enterprise policy, unauthenticated users are allowed access to network services at a lower policy-defined level, at best-effort levels, or no access at all.QoS Packet Scheduler The QoS Packet Scheduler service must be installed on every Windows 2000 Professional-based client on which you want to have traffic control services. The QoS Packet Scheduler must be installed on all end-systems that make reservations on subnets where you are running a QoS Admission Control Service.To install the QoS Packet Scheduler
From Control Panel, double-click Network and Dial-up Connections.Right-click the local area connection you want to modify, and then select Properties.Click Install.Click Service.Select QoS Packet Scheduler, and then click OK.Click Close.