This article was previously published under Q316666
Networking Quality of Service (QoS) refers to a variety of techniques that prioritize one type of traffic or program that operates across a network connection instead of relying only on "best effort" connectivity. QoS mechanisms are built into both Microsoft Windows 2000 and Windows XP. This article describes the enhancements in QoS that are available in Windows XP. References to the QoS features that were first introduced in Windows 2000 are also mentioned in this article.
QoS for Internet Connection Sharing
When one network is connected to another network through a slow link or connection, such as a dial-up line, a situation can exist that will increase the delay of traffic that is traversing the slow link. This delay occurs because of the speed mismatch between what the end stations in the communication know about, and the slow link. The slow link causes a bottleneck in the network path. This applies only to connection-oriented communication when you use TCP.
If the receiving client is running on a relatively fast network, such as a 100 megabytes per second Ethernet network, behind a computer that is running Windows XP with the Internet Connection Sharing service, and the server that this receiver is communicating with is behind a remote access on a fast network, the mismatch exists. In this scenario, the receiver's receive window is set to a large value that is based on the speed of the link the receiver is connected to. The sender starts out by sending at a slow rate, but if packets are not lost, the sender eventually sends almost a full window size of packets.
This scenario can affect the performance of other TCP connections that traverse the same network. Packets sit in a potentially large queue and wait to be transmitted over the slow network. If packet loss occurs, data has to be retransmitted, and this also congests the link.
The solution to this issue is to have the computer that is running Internet Connection Sharing on the edge of the network automatically set the receive window to a smaller size that is appropriate to the slow link. This setting overrides the receiver's specification. This setting will not adversely affect traffic, because the window size is being set as if the receiver were connected directly to the slow link. The QoS Packet Scheduler component that is running on the Internet Connection Sharing computer makes this window adjustment.
QoS for modems and remote access
As of January 2002, many people still connect to the Internet through slow links, such as connections with speeds of 56 kilobits per second. Even with the limitations on the speed of the link, many users will run several programs at the same time that access the network. For example, users may simultaneously use downloads, e-mail, chat, and even audio or video streaming. Most of these programs use TCP as the underlying protocol for the transfer, and each programs uses its own connection or connections.
The first program to use the link will have exclusive use until the connection reaches a steady state. A steady state causes a full TCP window of data in transit. When the next program starts transferring data, the connection the program uses will be subject to a slow start algorithm that limits the amount of unacknowledged data that can be in transit. Because of the amount of data that is being transmitted by the already established program, the second program will take much longer to reach a steady state, and the transfer will be much slower for similar data sizes.
Windows XP implements a Deficit Round Robin (DRR) fairness scheme when the operating system uses a slow link. This scheme was available in Windows 2000. By default, the scheme is turned on in Windows XP when a slow link is detected. This scheme allocates several data flows and assigns new application data streams to these flows. These flows are automatically serviced in a round robin manner. This configuration provides better responsiveness and performance for network communications and does not require manual configuration.
Clarification about the use of QoS in end computers that are running Windows XP
As in Windows 2000, programs can take advantage of QoS through the QoS APIs in Windows XP. One hundred percent of the network bandwidth is available to be shared by all programs unless a program specifically requests priority bandwidth. This "reserved" bandwidth is still available to other programs unless the requesting program is sending data. By default, programs can reserve up to an aggregate bandwidth of 20 percent of the underlying link speed on each interface on an end computer. If the program that reserved the bandwidth is not sending sufficient data to use it, the unused part of the reserved bandwidth is available for other data flows on the same host.
For more information about the QoS Packet Scheduler, see Windows XP Help. Additional information about Windows 2000 QoS is available in the Windows 2000 technical library.
Correction of some incorrect claims about Windows XP QoS support
There have been claims in various published technical articles and newsgroup postings that Windows XP always reserves 20 percent of the available bandwidth for QoS. These claims are incorrect. The information in the "Clarification about QoS in end computers that are Running Windows XP" section correctly describes the behavior of Windows XP systems.