Have you ever had applications on your network fight for bandwidth? Perhaps one of your users tried to play a multiplayer game across the LAN and drained your network of all its bandwidth. Maybe someone attempted to watch a large video file across the network. Whatever the specific cause, it’s happened to many administrators. Some users don’t know any better. They do something that drains the network of bandwidth, and they bring other users to their knees.
If this situation sounds frightening, relax. Windows 2000 has a new feature called quality of service (QOS), which allows you to regulate bandwidth. With this feature, you can allocate different amounts of bandwidth to your users based on individual needs. Now, those large multimedia files will run just fine across the network, and so will everyone else’s normal data files. In this Daily Drill Down, I’ll explain how QOS works. Once you know a little bit about QOS, I’ll show you how to install it.
First things first
Before I begin, however, there’s something important that I need to point out. Although QOS is designed to make all of your applications run across your network at their optimum levels, QOS merely regulates existing bandwidth. It’s impossible for QOS to create bandwidth. For example, if your network was limited to ten megabits before you installed QOS, it will still run at ten Mb afterwards. The difference is that the existing ten Mb will be used much more efficiently than they were before.
Terms to know
Multimedia network traffic, such as video conferencing, can cause the rest of your network to run very slowly. When you set up Windows 2000, you need to make sure that these gigantic packets don’t choke your normal traffic out. At the same time, however, you still need to consider those people who use large multimedia streams. These data streams are unique; unlike other types of data streams, they tend to be very sensitive to delays. For example, if you were having a video conference with someone else, would it distract you if the video kept cutting out and the sounds were choppy and hard to understand?
Since each type of data has its own unique demands, there are a number of things that you must consider when you’re deciding how to allocate your bandwidth, including total bandwidth, latency, jitter, and coexistence. In case you’re unfamiliar with these terms, I’ll define them.
Bandwidth refers to the amount of data that can travel across your network in a given amount of time. The higher the bandwidth is, the more data the network can handle. Large multimedia applications require lots of bandwidth. Thus, it’s easy for a giant multimedia application to choke out everything else on the network.
Latency (also called lag time) refers to the amount of time that it takes for a data packet to travel from its source to its destination. If the latency is too high, then the video and audio quality of any multimedia presentations or applications will be extremely poor and very choppy.
Audio and video streams must arrive at their destinations at a certain pace in order to avoid jitter. Jitter occurs when packets are dropped because they’re unavailable at their needed times. As you might have guessed, jitter also affects latency.
While multimedia traffic depends on smooth transmission, standard data traffic is usually transmitted in bursts. These bursts can disrupt multimedia traffic because they consume large chunks of bandwidth for a short time. Coexistence refers to an ideal state in which standard data traffic doesn’t interfere with multimedia traffic (and vice versa).
Benefits of QOS
Using QOS will guarantee that applications receive the necessary amount of bandwidth. If you have a multimedia application, just tell QOS that the application needs high bandwidth with no jitter and low latency. QOS will dedicate that amount of bandwidth to the application. Then, it prioritizes the remaining applications in order of their bandwidth needs. Since all traffic will flow cooperatively, you can squeeze higher performance than ever before out of a congested subnet.
How does QOS work?
QOS works by placing limits on which users can send a certain amount of data across the network at any given time. To make these limitations work, Windows 2000 uses its own scheduling mechanism and some industry standard protocols, such as RSVP, 802.1p, and DiffServ. These protocols provide guaranteed levels of bandwidth on a simple network. If the QOS mechanism is going to work on a more complex network, however, the routers must be set in a way that allows you to use the protocols. If your routers don’t support these protocols, the routers simply use best effort routing, which means that the devices try to deliver inbound packets to their destinations through the least congested routes. Unfortunately, best effort routing doesn’t guarantee the amount of bandwidth that will be dedicated to a particular user. To gain a better understanding of this process, you must understand the difference between how clients work and how servers work.
Like most other features in Windows, QOS is designed to function in layers. Thus, it’s possible for an application to take advantage of QOS via the GQoS API but not to have full knowledge of the entire network.
When a client requests QOS, QOS makes a call to the underlying QOS provider mechanism, which is called Resource Reservation Protocol Service Provider (RSVPSP.DLL). This protocol is responsible for issuing RSVP requests to the various network devices that are found between the source and the destination. RSVP is the component that bridges the gap between the application and the physical, media-specific QOS mechanisms. Therefore, RSVP calls are media-independent.
Another piece of the puzzle is the traffic control API: TRAFFIC.DLL. The GQoS API calls the traffic control API. It uses various QOS parameters to regulate data flows. Once the traffic control DLL does its job, it gives the packet to the General Packet Classifier (MSGPC.SYS). The General Packet Classifier assigns a service class to a packet based on the packet’s priority and the amount of bandwidth that it needs.
At this point, the packets are scheduled by their service classes and managed by the Packet Scheduler (PSCHED.SYS). The Packet Scheduler is responsible for enforcing the QOS parameters that have been assigned to the packets. To do so, the Packet Scheduler looks at the priority codes that have been assigned to each packet.
Servers function somewhat differently. The main QOS component on the server is the Admission Control Service. The Admission Control Service allocates network resources based on the policies that the network administrator sets. When the Admission Control Service receives a request for bandwidth, it checks to make sure that adequate resources are available. Then, Windows 2000 uses Kerberos to validate the identity of the user who’s making the request. Once that user’s identity is known, that user’s policies are loaded from the Active Directory. Next, the Admission Control Service checks those policies to see if the user has the right to make the request. Based on that policy, the Admission Control Service will approve or reject the request.
Putting it into perspective
If you find all of this information a bit mind-boggling, it helps to step back and take a look at the process as a whole. Doing so will give you a better feel for how the QOS components work together in order to deliver guaranteed bandwidth. The process begins when a QOS-enabled application initiates a session and generates a request for a desired amount of bandwidth. The Admission Control Service on the server receives this request and verifies that the user has the right to make the request. The receiving client computer also must accept or reject the request from the sending client. If the receiving client accepts the request to begin a session, an RSVP message is sent back to the client who initiated the process. As the RSVP packet goes back to the original client, it passes through various routers along the way. Each RSVP-enabled router has the authority to accept or reject the RSVP reservation. If a router chooses to accept the reservation, then the router must guarantee the desired amount of bandwidth. Once the RSVP packet reaches the original client, traffic control begins prioritizing and scheduling IP traffic between the two clients.
Before you install QOS, there are a few things that you should know. For an application to work with QOS, the application must be QOS-enabled; otherwise, the application won’t even know that QOS exists. Your network adapters and routers also must support prioritization over a shared subnet. In other words, they must support 802.1p. Furthermore, you need to make sure that your policies allow you to schedule QOS. Finally, you must make sure that the QOS Packet Scheduler Service is installed on every client and end device within the subnet that will participate in bandwidth scheduling. Even if a client isn’t going to participate actively in bandwidth scheduling, I still recommend that you install the QOS Packet Scheduler Service. Your network will run more efficiently.
Now that you know the basics, it’s time to perform the installation. On each Windows 2000 Professional client, open the Control Panel and double-click the Network and Dial-Up Connections icon. You should see the Network and Dial Up Connections window. Next, double-click the network connection that you want to modify in order to see that connection’s properties sheet. Then, click the Install button and, in the next window, double-click Service. Select the QOS Packet Scheduler, click OK, and then choose Close. That’s all there is to it.
Brien M. Posey is an MCSE who works as a freelance technical writer and as a network engineer for the Department of Defense. If you’d like to contact Brien, send him an e-mail. (Because of the large volume of e-mail he receives, it's impossible for him to respond to every message. However, he does read them all.)The authors and editors have taken care in preparation of the content contained herein, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.