My system slows down when I host files for people to upload

Article Outline:
Description of the Problem
Brief Answer
Long Answer
Remedy of the Issue


Description of the Problem

Alright… I’ve seen this question more than a few times on the Internet. Fundamentally, the question is stated like the following:

“I have all this broadband speed (cable or DSL), and when I’m hosting information to other people (such as a website or p2p), the download speed for me drops! I’m not using much bandwidth to download so I don’t understand the problem!”


Brief Answer

At issue here is the way IP (internet) traffic works. The short explanation is that when people are downloading from your machine, they saturate your upstream bandwidth. This in turn affects your downloading because common Internet activities (such as surfing the Web, e-mail, p2p, etc) require acknowledgements (ACKs) to be sent from your PC to whatever machine you’re talking to. Since your upstream is “full,” the ACKs cannot get through or are seriously delayed.

Long Answer

Many broadband users have large download pipes and small upload connections, 768kbps and 128kbps respectively. Also, most internet-based communication uses the TCP/IP protocol to transfer data. For those of you somewhat familiar with TCP, you know that this is a protocol which assures delivery of information. It accomplishes this by sending acknowledgement packets (ACKs) to the computer it’s receiving data from. This process is controlled through a process known as TCP Windowing. For example:

[bah! Graphic missing]

As you can see, the home computer asks for information from a host (server) out on the Internet. The transaction of information occurs as defined by the windowing of the home PC. When the roles are reversed, the home PC serves out its information and doesn’t allow for the ACKs to get through thus interfering with downloads from the Internet.

Remedy of the Issue

So how do you remedy this problem? An obvious choice is to upgrade your upstream connection. Some broadband providers sell packages where you can upgrade to 384k or higher upstream connections… for a price. Another idea is to pay a small fee to a web-hosting site to host the information you wish to provide to the world (just like I’m doing).

Additionally, you may optimize your TCP sessions to the Internet. This can be accomplished by manipulating the windowing values in your operating system (OS) and by setting a more-effective maximum transfer unit (MTU) for your OS.