This post is intended as a short article centred on how we manage the gaming experience for our customers. I've focussed on:
How and why we give priority to gaming traffic on our network.
How we identify specific games and add new ones to our database.
Although most on-line games don't use a lot of bandwidth, they do need a low and stable ping rate (aka latency). Even when the broadband network gets busy, by giving gaming traffic high priority, we ensure that latency remains low and stable at all times. With the exception of Broadband Your Way Option 1, we give gaming the highest possible priority on our network. Like all Broadband providers we operate a network which is shared between our customers. That means at peak times (such as in the evening) if lots of people use their connection at the same time the available bandwidth is shared amongst all of them (an effect known as contention). If the network is busy this can result in ping spikes and packet loss alongside a reduction in data transfer speed. If all traffic is treated equally then for some applications (downloads for example), slowdowns, changes in ping time or a little packet loss don't cause any major problems. However this effect can make on-line games completely unplayable. By controlling what types of traffic are affected at busy times on the PlusNet network, and prioritising gaming traffic, we can ensure the gaming experience will be good regardless of what else is happening on the network.
How are different types of traffic identified?
How we identify gaming traffic from other types of Internet application is quite a complicated process. In essence, we have a big database of applications containing pretty much anything and everything that can be used on Internet. We regularly update the database with new applications; some that we add ourselves, some that come from Ellacoya directly, and some that are identified and requested by our customers. What criteria is used to matched against the database depends on the particular application. Generally the system uses a combination of deep packet inspection (DPI) to find identifiers within the traffic, the port the traffic uses, and/or the the IP address that it comes from. Considering gaming in particular, games like World of Warcraft or Xbox live are generally picked up by a combination of port and IP address. If the traffic comes from a World of Warcraft server and uses the World of Warcraft port, the chances are it's going to be WoW. On the other hand Unreal Tournament might be identified from both the port and deep packet inspection. i.e. we see traffic on port 7777 so the rules say traffic on port 7777 is likely to be Unreal Tournament and it then checks against a known signature in the data packet. If the packet inspection matches the signature then it's classed as gaming, if it doesn't match it will check against the other signatures.
What about applications that are not in the database?
If the system can't identify the type of traffic, it will be classed as "Other" or "Unknown" (as an aside, in View My Usage you'll see an 'Other traffic' category, this is slighly different as it includes some known traffic like DNS and Remote Access software like VPN and Remote Desktop which is highly prioritised, as well as unknown traffic). On most accounts unknown traffic gets a lower priority on the network and so at busy times will see an increase in ping times. Reducing the amount of unidentified traffic is an ongoing task. As we identify new applications we can, with relative ease, "fish out" applications from unknown and make them known. Either we'll see that there's a new game or application and test it ourselves, or our customers will find that something doesn't work quite as well as expected and let us know. We normally need a bit of information to add an application to our database. This includes the name of the application, website address, the port(s) it uses and where applicable the IP address(es) of any central servers. However, probably the single most useful thing is a Wireshark capture. Wireshark is free software utility that captures the raw data travelling through a network point. We ask customers to use this tool to record the traffic uploaded and downloaded across their PlusNet broadband connection. We've written a tutorial which shows how to use Wireshark, including a video for PC and a video for Mac. The Wireshark capture provides two things: It shows the priority of traffic received from our network, and if that priority is wrong we can use the data to see what that traffic looks like and what port it ran on. Sometimes we need several Wireshark captures to be run at different times to build up a pattern. Once we understand the details of an unidentified type of traffic we have a process for adding that to our database. For a simple change we normally look at a turning around requests within a week from approving the addition of a new application to it going live. Sometimes we can make temporary changes to try and fix an issue for a particular customer before a permanent fix can be put in. However, because the database of applications is part of a live system any additions have to go through rigorous tests and a change control process first to ensure the change will work and won't affect any other part of the system. This ensures we don't add anything in error and that any signatures we add will pick up the game or application correctly.
We often get asked why we need traffic shaping at all - Surely we should provide enough bandwidth for everyone to use all of the time? Of course, that would be ideal for us too, but it isn't practical unless we radically increased our prices (See this article for details on wholesale broadband costs for details). To provide customers with more options last year we launched Broadband Your Way Pro. This product prioritises unknown traffic with a higher priority (gold) so performance will be a lot better even on traffic which isn't identified by our database. BBYW Pro represents an account type that is effectively free of any potential problems that our traffic shaping implementation might cause. Dave Tomlinson PlusNet Product Team