Uploading kill internet connection

In my house I have 2 relevant computers, one wireless and one wired, connected to a wireless G router (Belkin G F5d7234-4 V5), which is connected to my internet modem. My internet is Insight BB 10.0 (actual speeds: 10.4-9.8 Mbps Down, 800-950 Kbps up).

On the wireless computer, I want to upload a bunch of video's. Queue them up and start uploading (this is HTTP). Average upload speed is 100-200 kbs. Internet is slow, but that's expected.

Whats not expected is when I get onto my wired computer. Its separate and not having to share the pipe with a massive connection over wireless, but its still very slow, almost to the speed of when bittorrent is running.

This is confusing, since I should still have most of the pipe free. Even if the upload pipe is clogged with data, it shouldn't be affecting my download speed. HTTP headers are not big, and shouldn't take much to process. The only thing that I can think of is the way that TCP works in that every packet needs a confirmation (or something like that, been a long time since I've taken the class).

What could be causing something like this? Is it a router issue, modem issue, connection issue, or just a result from TCP?


Solution 1:

Your internet speed measurement

I think this is a measurement unit error, your internet speed is measured in kilobits while uploads and downloads tend to be measured in kilobytes, this causes confusion and pain to users who (quite rightfully) expect these things to be measured in the same way.

Your internet upstream speed is 800-950 kilobits, we divide this by 8 to get speed in kilobytes:

950 / 8 = 118.75 kilobytes

To me this sounds very much like the speed you are getting, ignoring random jumps to 200kbps which could simply be due to bursts, stalls, measurement errors or other freak occurrences.

The upshot of this is that your internet connection, computer and network are fine, the down side is that you are fully saturating your internet connection and that is making it difficult for website requests and downloaded data acknowledgments to get through.

I would recommend finding some bandwidth management software and try halving the speed you are uploading at, if suddenly everything is more responsive then your problem is well and truly a saturated internet pipe.


Why uploads kill internet speed.

Just thought I would add some details regarding why saturating your internet connection causes slow response times for normal browsing...

Almost all programs that deal with the network will be working through some kind of FIFO ("First In, First Out") buffer, which basically means that there is a queue of data to come into the machine and a queue of data going out of the machine.

Typically for all the incoming data any program that is expecting data is able to empty their incoming buffer pretty quickly and send a small "acknowledge" packet back to request the next block of data. That acknowledge gets put on the outgoing queue and, as typically there isn't much outgoing traffic makes it to the front of the outgoing queue pretty much instantaneously and so the cycle of download and acknowledge continues.

This FIFO queue becomes a problem when you start uploading. Lets say that Window might have a queue of 400 kilobytes, I don't know for sure but it seems a reasonable number these days. What that means is when you upload a small file of say 200 kilobytes then it will get pushed onto the queue and the program can continue on and assume the data has been sent or at least will be gone quite quickly, say 1-2 seconds at most, hardly noticeable really.

When you start uploading larger files though this queue becomes a bottleneck, one program filling this queue as fast as it is allowed to will mean that another program that just wants to send one small "give me this web page" request will have to wait for one full turn through the entire length of the queue which, with a 400 kilobyte queue at about 125 kilobytes bandwidth means that it will take at least 3 seconds before it gets to the front and has left the queue, it might receive a block of data back quite quickly as the downstream buffer is pretty empty but then the "send me more data" request will take another 3 seconds before it can make its way out of the queue again.

It's all the time waiting in the queue that will cause the website requests to timeout while uploading data, most sites and browsers are tuned to expect the turnaround to be under a second from the request of data to starting to receive it so having this big buffer in the way causes markedly larger delays than they expect. As that queue buffer gets larger so does the time for any request to make it through the queue and out onto the actual internet.

When you limit the bandwidth of any given program what you are effectively doing is slowing the rate that that program can put the data on the queue, this means that the queue can be emptied at a rate faster than it is being filled and prevents the queue from getting full. Any other program that puts data or a request on the queue can expect a shorter time for it to reach the front of the queue (as it is no longer anywhere near full) and so the connection seems to "just work better".

Wow, that was longer than I expected.

Solution 2:

Ok - some facts first:

  1. You have a "upstream" with a certain bandwidth and a "downstream" with a certain bandwidth.
  2. In the end both machines use the same internet connection (same modem), right? It is "one pipe".
  3. When you download Data over HTTP (downstream) each packet you receive triggers a confirmation packet (ACKnowledge packets) that will be send back to the server (upstream). That way the server knows if it has to resend some data or if you received everything just fine.

Now let's think: If you upload a lot on one machine you use most of the upstream. There's not much "room" for other packets - like the confirmation packets. So if you download from the other machine it can't confirm received packets as fast as it needs to maintain a certain download speed. The download needs to slowed down.

Oh no - What shall we do? Try to reduce or limit the speed of the uploads on the "wireless" machine. That way there's more bandwidth for confirmation packets and downloads, surfing and other stuff should be fast on both machines again!

Solution 3:

You're looking for Quality Of Service support in your router. If your router supports it, it will allow you to prioritize certain kinds of traffic or to assign some fraction of your bandwidth to certain kinds traffic. You may be able to specify traffic by up/down-load, port number (== type of packets: VOIP, web, etc.), or local IP address.

Edit: I didn't find your router's manual in an admittedly brief search, but at least a couple of references suggested it has QOS support.