Congestion and Contention

From AAISP Support Site

The phrases congestion and contention are used to describe the way a communications link is used, and they have subtly different meanings.

Congestion

Congestion is what happens when a link is full up. Basically it means that the link cannot handle any more traffic that it is carrying, and as more traffic is trying to use the link it is delayed or dropped. The way the Internet works is that when a link is full there is a buffer (or queue) of packets waiting to be sent on the link. When that queue is full then additional packets are thrown away. These two effects are called latency and loss.

Congestion is not always a wrong thing. Where there is any link between two computers, the computers will try and fill the link between them to the limit. There will always be a limit of some sort even if using a direct cable, and so the fact that the link is full is to be expected and is quite normal. This is because of the way TCP works. TCP is the main transport protocol used for transferring bulk information over the Internet. TCP uses the packet loss to tell it that a link is full and to back off a bit.

The way TCP works also applies on any shared link. A shared link is, again, quite normal, and you could call the Internet one big shared link. At the end of the day there will always be some bottleneck in the link across the Internet somewhere. Ideally it is the link at your end and not elsewhere on the Internet, but the bottleneck on a web site could just as easily be at the web site itself.

In an ideal world shared links will be managed to avoid congestion. If you have an Internet service with lots of customers connected then each user cannot demand more than their link speed. On average not everyone is transferring data at the same time even if they do want their full link speed when they are. As such the shared links in the Internet do not have to be big enough for every user to transfer at full speed all of the time.

This is no different to any other network like water, gas or electricity. If everyone in a street all ran their taps at full speed they would find they slow to a trickle. This is simply because people don't do that so the big pipes in the street do not need to have enough capacity to handle it. Internet access is like that. It does not have to be, obviously. It could be that shared links are built to handle the capacity of all lines at once - the problem is (just like having huge water pipes and pumping stations for water) that would cost a lot. And someone else can provide the same uncongested service by not doing that, and so at a lower price. Having extra spare unused capacity does not improve the service - if a link is not full, i.e. not congested, then it is the same regardless of how not full it is, i.e. how much extra is available.

So, at the end of the day, managing congestion is about statistics. It is about having shared links which are not normally full, and if they get full then buying more capacity.

That said, there are commercial reasons to run links full - it is cheaper and allows a cheaper service to be run. If the slow down because the link gets full is not a lot, i.e. lots of people sharing, so each only sees a little less than they want, then that is a viable service to offer because it is a better price. The difference between Internet service providers can be down to how those ISPs manage full links. In some cases, the reason links get full may be very specific types of traffic, and clever systems to slow down just some customers means everyone else gets to use an uncongested service. Again, how this is done is down to the ISP you choose. AAISP do not have protocol specific shaping and we aim not to be the bottleneck and as a result we cost a bit more. Even so we can never completely eliminate all congestion from our network as there is always a chance everyone will try and download something at the same time, or at least more people than we planned for.

Contention

Contention is often confused with congestion. Contention is about the planning rules for shared links. Basically, a contention ratio is a ratio of possible demand against total capacity. So a ratio of 50:1 means there could be 50 times as much demand for usage on a shared link as it actually has available to use.

There are several problems with a contention ratio being quoted. Normally a contention ratio only makes sense when used as a planning rule - it allows you to know where to start on a new shared link and work out costs. It can be wrong - you could find the actual usage fills the shared link, which means you need to revise your planning rules. It could be that you don't care the link gets full - you sell different services based on different planning rules at different costs. This is all a commercial decision for the ISP. Unfortunately people try to use contention ratios as a way of comparing ISPs, which simply does not work...

  • A contention ratio covers only a specific link - the Internet as a whole has lots of shared links, and for most of them it is impossible to even calculate the total possible demand so as to work out a ratio. E.g. if you have a web server, it is possible every single person on the planet may want to get your web site all at the same time - so what is the total of all other end links speeds? That makes even a gigabit link to a web server an incredibly high contention ratio.
  • A contention ratio does not tell you the size of the pipes involved. There is a huge difference between small pipes and few end users and large pipes and lots of end users. E.g. if you have a 2M link and two of you share a 2M shared back-haul link, (e.g. a good sounding 2:1 ratio) you will get half the speed if the other person is also using their link, and that is quite likely. If you are one of 1000 people with a 2M link and you all share a 40M pipe (50:1 ratio) that will be much better. Simply having that many people means that the average usage will be more stable and less than 40M (ideally). If it is less than 40M then everyone that needs their full 2M will get it when they need it and the service is uncongested, the same as an uncontended (1:1) link.
  • A contention ratio does not take in to account actual usage. You could be on a 100:1 link where average usage of many thousands of lines is below 1% of what they could use. That would then be an uncongested link and the same as 1:1. On the other hand you could be on a 10:1 link but average usage is over 10%. That would be a congested link and would be slow. Comparing the ratio without knowing what sort of end users there are and what the will be using means you cannot tell if the links will be congested or not. Ut means you cannot compare one ISP with another unless you know they have exactly the same type of end users, which is unlikely.
  • A contention ratio tries to work on links speeds in various ways. But end users will typically use an average amount of data - e.g. residential users probably average 100Kb/s (yes, low isn't it!). If someone upgrades from 2Mb/s to 100Mb/s they will not necessarily download more. They will download it faster but that means less time downloading. On average with thousands of uses it looks the same if they all have 2M or they all have 100M links. But the contention ratio on a shared link is massively different in those cases. So with link speeds changing, contention ratios do not even make sense as a planning rule.
  • The Internet is constantly changing - not only the links speeds but the usage patterns. Ultimately the higher link speeds do lead to more content rich web sites and resources on the Internet and that changes average levels of download. This means the planning rules have to constantly adapt making them even less useful.

Is there a better way? Probably. You probably need to look at the average usage per end user and perhaps the standard deviation (which would take in to account how many users and their link speeds to some extent). This would allow planning based on number of users and typical average usage rather than a ratio. At A&A we simply aim to not be the bottle neck, and we price based on usage. If we tried pricing a fixed amount per end user we would need these planning rules a lot more.

As a result of all of these issues we are pleased to say that BT do not quote contention ratios on their newer services. They used to quote 20:1 (business) and 50:1 (residential) on their 500K/1M/2M services. Now they too are aiming not to be a bottleneck in effect as every time they are we hassle them to increase capacity in their network.

tl;dr

An uncongested link is the same as an uncontended (1:1) link - it means no delay or loss for your packets. So if you think you need to know the contention ratio of AAISP you are asking the wrong question.