Thursday, November 18, 2010

Use QoS on your network to give your programs the bandwidth they want

I installed DD-WRT recently on my wireless router and supercharged my network. It was an effortless process, and I also learnt and showed you how to fix a bricked router. Now, after I have installed DD-WRT, I have started using QoS (Quality of Service) to prioritize the bandwidth that is given to all the programs that the people in the house run, so that a hogger like Skype does not push other programs out of the way.

QoS is available on many more routers, and you don't need to have a third-party Linux based firmware like my DD-WRT to run this. If you have a Linksys router, you're most-probably in luck too. But I am writing this tutorial based off DD-WRT, and some features might be different.

To change QoS settings, do the following:
  • Get to the QoS settings on your router via the browser based interface. 
  • It is different for different brands. On DD-WRT, there is a tab with QoS in its name.
  • In DD-WRT, there is a preset list of programs and protocols that you can set up QoS for.
  • For DD-WRT, you need to specify the uplink and downlink for your connection. if you don't know much, you can set it as a huge number. I did, and I didn't get any problems.
  • In the dropdown under Services Priority, you can look for different things you want to give more priority than others. Therefore, when they are running, others will slow down. Otherwise, you can set them up so that they are forced to use up less power of your connection while others are running.
  • After you add each service, you can set their priority. Here's a short explanation for each, straight from DD-WRT
  • Exempt - This class tries to keep the bandwith and packet flow untouched.
  • Premium - The top bandwidth class. By default handshaking and icmp packets fall into this class. This class should be used sparingly. Occasionally VoIP service may be placed in this class so that voice receives top priority.
  • Express - The Express class is for interactive applications that require bandwidth above standard services so that interactive apps run smoothly.
  • Standard - All services that are not specifically classed will fall under the standard class.
  • Bulk - The bulk class is only allocated bandwidth when the remaining classes are idle. Use this class for P2P services and downloading services like FTP.
 The examples in it are just suggestions and you can set them up to your preferences. As an example, here are my QoS services priorities:

Click the image for a larger view (as always)
As you can make out probably, setting http and flash to Premium will allow relatively faster web browsing, online videos and downloads when other programs are running. I set skypetoskype and http-itunes to Express so that they stand out over other background services, but still don't get in the way of my web browsing.

If you set up everything perfectly, you should see that QoS starts to work for you. I found a nice speed up in web browsing, in fact. And it was superb when I compared it to what happens when a Skype call is running in the background.

See also:
How to fix a bricked router using a hard reset.