TCP or IP Applications QoS Needs and Impact
 


The quality of service (QoS) refers to several related aspects of telephony and computer networks that allow the transport of traffic with special requirements. In particular, much technology has been developed to allow computer networks to become as useful as telephone networks for audio conversations, as well as supporting new applications with even stricter service demands.

QoS stands for "Quality of Service".  It is a means to prioritize network traffic, to help ensure that the most important data gets through the network as quickly as possible.

Working
QoS works by slowing unimportant packets down, or in the cases of extreme network traffic, throwing them away entirely.  This leaves room for important packets to reach their destination as quickly as possible.  Bascially, once your router is aware of how much data it can enqueue on the modem at any given time, it can "shape" traffic by delaying unimportant packets and "filling the pipe" with important packets FIRST, then using any leftover space to fill the pipe up in descending order of importance.

Since QoS cannot possibly speed up a packet, basically what it does is take your total available upstream bandwidth, calculate how much of the highest priority data it has, put that in the buffer, then go down the line in priority until it runs out of data to send or the buffer fills up.  Any excess data is held back or "requeued" at the front of the line, where it will be evaluated in the next pass.  

"Importance" is determined by the priority of the packet.  Priorities range from "Low" or "Bulk" (depending on the router), to "High" or "Premium".  The number of levels and the exact terminology depends on your router.  As the names imply, "Low"/"Bulk" priority packets get the lowest priority, while "High"/"Premium" packets get the highest priority.

QoS packets may be prioritized by a number of criteria, including generated by applications themselves, but the most common techniques you will run into with Consumer grade routers are MAC Address, Ethernet Port, and TCP/IP Port.  

MAC Address prioritizes network devices by their Media ACcess Address (MAC Address).  This is a long string associated with your network card or other network device.  Simply enter the MAC address and the priority and the router takes care of the rest.  Normally, the default priority for unlisted devices seems (in my experience) to be set to "Low".  So if you have a machine that needs higher priority access to the Internet, you'd set it to "Medium" or "High".  Taking a single device and setting it to "Low" will not have much effect.  If you want to lower the priority of a single machine, you have to instead raise the priority of the other machines on the LAN.

Ethernet Port is the simplest to configure.  Your router is equipped with a series of Ethernet sockets.  Ethernet Port priority allows you to say, for example, "anything plugged into Port 1 gets Low priority, while anything plugged into Port 2 gets High priority".  This is easier to configure than MAC Address priority, of course, but you have to be careful when you rewire things, and it doesn't work for wireless devices at all.

TCP/IP Port allows you some level of control over applications, rather than devices.  For example, you might decide that web browsing (port 80) should get priority over FTP (ports 20 and 21).  Of course, many applications pick a random TCP/IP port for the bulk of their communications, rendering this useless for that purpose.  Setting ports 80 and 443 to "Medium", however, can keep your web surfing at least somewhat snappy while doing large FTP uploads.

Limitations

QoS as found on any consumer router running on a standard Internet Service Provider will ONLY work on upstream/outbound data (data going from you to your ISP).  You cannot realistically control the priority of data coming TO you FROM your ISP, since you can only control the data on your side of the modem.

It is true that slowing down the download of data will slow the acknowledgments of that data in a TCP/IP connection, and will therefore slow down (eventually) the transmission of data from the remote.