A (not so) quick note about QoS

I have been dealing with network quality extensively for close to seven years. In that time frame, network quality sensitive applications has really exploded. The most widely known application is Voice over IP (Voip).  People often experience issues with these types of applications, and simply weren’t aware that the issues have always been there, but have never noticed it.

To understand where issues arise, you must first understand how Internet traffic works. When you go to a website within your browser, you are sending (uploading) a small stream of data (called packets) to the remote website, and then in turn the site sends the data you request back to your computer, which your computer downloads. During the course of this transaction you have used part of you Internet bandwidth during this period of time, and this bandwidth is used by what is called TCP Packets.

A TCP packet is a style of data that performs the following steps for every packet sent.  First it transmits a packet to the remote system.  Then the remote system sends an acknowledgement that it received all of the data back to you, and if what it received is correct, then an acknowledgement is sent to the remote system (if not, request that the data be transmitted again, and repeat these steps under all of the data is received.

Now let’s step back from all of the technical details. What this means to you is that when you request a web page, it’ll take as long as it needs to to load your page. This is acceptable since you probably want all of the images to look correct. Most of the time you don’t even notice a delay.

With voice conversations, you don’t have the luxury of waiting for part of a voice conversation to arrive correctly. TCP is inherently slow, so voice applications use UDP style packets instead. UDP traffic is a one way stream. One end sends the data, and doesn’t care if the remote system received everything. The main advantage to this method is that its the fastest way to transit data. For Voip applications, this means the best possible voice conversation.

When there is network problems, most people don’t notice it when they are browsing web pages, because the traffic is transmitted until it eventually succeeds. With Voip, since the traffic is one-way, delayed or lost traffic is simply discarded. Simply by using a Voip application, you will start to notice issues that probably have always been there. While there is an unending list of possible reasons for Voip trouble, these by far are the top culprits.

  • The router forgets how to router UDP traffic. As dumb as it sounds, it happens all of the time. Within the past year there have been a surge in higher quality routers that do their advertised job, so either get used to rebooting devices periodically, or get a newer, higher quality router.
  • There is a physical problem with the network. Changing the network cable and the switch port will generally solve this.
  • You are out of bandwidth. I can’t stress enough that this is the #1 issue with network quality.  Any type of network usage can affect this, such as downloads, torrents, video streaming, windows/antivirus updates.  Getting more bandwidth doesn’t solve this problem, but it can mask it.

As mentioned, bandwidth issues are the most common that I see.  To some degree, you can use Quality of Service (QoS) to help you out, however QoS only works on the upload stream, and the QoS device must know how much bandwidth is available.  What this means is that with a T1 connection (1.54mbps), you have a guaranteed fixed rate of bandwidth that never changes.  Generally you’ll set your QoS router to know that there is about 1.4mpbs available, so if that gets used up, start applying QoS.  Variable rate services (DSL and cable connections) are a completely different animal, as at one moment you have 5mpbs, and the next you have 1mpbs.  Since the actual upload rate is really a moving target, a few cable/DSL modems can accurately measure and apply QoS if it’s acting as the router (not even all the new models can do this).  Even with all of this, QoS is still a best-effort service, and there are a few scenarios where QoS can’t help you out.

In the cases where QoS isn’t effective enough, I usually move to a bandwidth management solution.  In short, what I do is I first rate-limit the in and out speeds of traffic down to something manageable (usually I start with 90% of the available bandwidth of the upload/download speeds).  In some cases I’ll also classify different types of traffic (like torrents having the lowest priority, and web page requests having medium priority, and Voip having a higher priority).    Technically, with bandwidth management, the imagination is the limit on what you can do, but I generally start with this basic config, as I’m creating an artificial fixed download and upload rate, so QoS knows when to kick in.   This method is the most effective, but requires the most technical knowledge and maintenance.

To wrap things up, with the right technical know-how, network quality can be achieved by making sure your equipment and infrastructure is up to date, and managing you bandwidth appropriately.  As long as the you understand the basics of how network traffic works, and how your own usage affects your network, you can make accurate decisions on what actions to take to make your network experience enjoyable.

This entry was posted in QoS. Bookmark the permalink.

Comments are closed.