Your internet connection is an indispensable part of your life, but between BitTorrent, Xbox Live, web browsing, and VoIP, sometimes there's not enough bandwidth to go around. But rather than running around the house shutting down all of your computers next time you're experiencing a little lag on Xbox Live or Skype is breaking up on you, you can set up Quality of Service (QoS) rules on your router to distribute bandwidth to your different gadgets and applications based on your priorities. Today I'll show you how. NOTE: Not all routers support Quality of Service settings, so check your router's manual or rummage through your control panel to see if yours does. The router I'll be using in the screenshots and in my examples is my $600-for-$60 router running DD-WRT (on this common Linksys router). If you're interested in turning your $60 router into a $600 router and using that for these instructions, you can find out how here.
Initial QoS Set Up
If you're using the same router as I am, head to your router's Control Panel, which by default is located at http://192.168.1.1, click the Applications and Gaming tab, and then click the tab labelled QoS. Alternately, you can just point your browser straight to the QoS page. If you've set a password for your router (hopefully you have), you'll need to enter it to access the QoS page.
If you're using a different router that supports QoS, browse to your Quality of Service page. (I highly recommend my router, though!)
Now that you're there, it's time to enable QoS, adjust its settings to fit your internet connection, and start adding your QoS rules. We'll start by setting up the connection.
After you enable QoS, you'll notice a slew of boxes that need fillin' out, so let's start from the top. First, make sure the Port is set to WAN and the Packet Scheduler is set to HTB (which works better than the alternate HFSC, according to the DD-WRT wiki). Now it's time to set our Uplink and Downlink speeds, which will determine how much real-world bandwidth your router will dedicate to each application. That means that first we need to get an idea of what your real-word bandwidth is. To do so, head to an internet speed test site (I like Speakeasy's speed test) and test your upload and download speeds (be sure you're not running any bandwidth hogs like BitTorrent while you run the test, as it will provide inaccurate results).
Once you've got your speeds, you should enter roughly 85% of the up and down speeds in the corresponding Uplink and Downlink boxes. So, for example, if my speed test showed that I had 7339 kbps down and 962 kbps up, I'd enter something like 6238 down and 818 up.
Finally, you'll notice a checkbox to Optimize for Gaming, which optimises your bandwidth usage for a certain set of PC games. In general, rather than taking this route, I'd suggest prioritising by application, IP address, or device—all of which we'll discuss below.
Prioritizing Your Bandwidth
You get five choices when setting your QoS priorities in DD-WRT: Exempt, Premium, Express, Standard, and Bulk. According to the DD-WRT QoS page, they prioritise bandwidth as follows:
- 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.
For example, you could choose to ensure at least 10% of available bandwidth to your BitTorrent downloads at all times (Standard—though it can grab more if available) while ensuring that your Xbox Live or Skype chats are ensured 75% of your bandwidth when they need it. Any application that you don't apply a priority for defaults to Standard. Now here's how to apply those priorities.
Throttle By Application
Setting priorities by application is simple. Find the section labelled Services Priority, choose the application you want from the drop-down menu (if it's listed) and select Add. If everything's set up well, that's all you need. If you don't see the application you want listed, or you want to edit a service (like the ports it uses), click the Add/Edit Service button. Then enter the name of the service, the ports it uses (you can generally find this information in an application's preferences—for example, in uTorrent go to Options -> Preferences and then click Connection in the sidebar to find the port it's using), and the protocol. To begin with you may want to try setting the protocol as L7, which attempts to detect the type of application sending or receiving data and doesn't require any port information at all, but I prefer setting the ports because L7 has been hit or miss for me.
Throttle by IP Address
You can also set priorities by IP address or even range of IP addresses (the address of your computer on your local network given to your networked devices by your router). I'm not actually sure what you might use this for except in instances where you've set up some sort of free public Wi-Fi because you're really generous—but not that generous—so I won't go into a lot of detail. That said, just enter the IP address (or if it's a range, use this calculator to determine the address range as it should be entered), click Add, and set your priority.
Throttle By Device
Throttling network traffic by device is probably the easiest way to set up Quality of Service for devices dedicated to just one thing—like your Xbox, for example—or for the most important computers in your household (if you prioritise like that). DD-WRT's QoS offers two different ways to throttle bandwidth by device. You can either throttle by MAC address, a unique 12-digit identifier for every networked device, or by the ports on the back of your router.
You can generally find the MAC address several simple ways on most operating systems. In Windows, the easiest way is to open your Command Prompt and enter
ipconfig /all. Your MAC address is the Physical Address. On a Mac, just open the Network Utility and look for the Hardware Address. If you're looking for your Xbox's MAC address, these instructions should help.
Once you've got the MAC address of a device you want to set a priority for, just enter it into the MAC Priority section and click the Add button. Then, like before, set the Priority from the drop-down and save your changes.
If you simply want to set priorities based on ethernet ports on the back of your router (which, naturally, will only work on your wired connections), just find the Ethernet Port Priority section, pick the port on your router you want to prioritise, and set the rate. Keep in mind that if you set all of your ports to Premium, you haven't really done anything.
The Best Setup?
There's no best way to set up your QoS on your router, and it really just depends on what you need and what you use most. I use a combination of application priorities and MAC Priorities to get the kind of setup that I want, but depending on what kind of use your network gets, you may go for a completely different setup—just try a few different ways and see what works for you. I'm pretty new to QoS, too, so if I'm missing something or if you're rolling with Quality of Service on your router, let's hear how you prioritise your bandwidth in the comments.