SUMMARY
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.