4

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?

3
  • 1MB/s as upload and you call it slow?.. gt.o.. :D
    – Apache
    Jun 26, 2010 at 7:14
  • Considering that certain pages that I'm trying to download are timing out, yes, its slow
    – TheLQ
    Jun 26, 2010 at 7:53
  • Okay okay but not the speed, the quality. I have to wait ~20x more to get the same amount of data what you can upload...so yeah. ^^" And no, mine is also crappy.
    – Apache
    Jun 26, 2010 at 7:55

4 Answers 4

6

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.

2
  • Your right, it was slower than I was giving it credit. Took a hard look at the speed test and the upload, and it is (just now) 0.94 Mb**/s while the upload is 124 KB**/s. Since you explained it the best, +15
    – TheLQ
    Jun 26, 2010 at 18:39
  • Added more info.
    – Mokubai
    Jun 28, 2010 at 17:42
3

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!

5
  • If TCP is a 1:1 ratio in up:down packets, then thats still 100-200 kbps up and 100-200 kbps down. There is still a significant amount of pipe left.
    – TheLQ
    Jun 26, 2010 at 7:45
  • 1
    The computers on the other end don't magically know that you want to download websites from them. You have to SEND (this is your limited upload pipe) a request for the resource. At the protocol level, you also have to SEND back acknowledgements that you are receiving the data they are sending you. In the upload, there is not a lot of pipe left and that affects your ability to request more data. Jun 26, 2010 at 7:56
  • 1
    @Lord.Quackstar you may be getting your units mixed here which could mean that your "pipe" is saturated causing the problem described by lajuette. 800-900 kilobits (your connection speed) per second would equate to somewhere around 100 kilobytes per second upstream. If you are uploading and getting a measurement in kilobytes then your upstream is being saturated and as lajuette states there is little room for TCP acknowledge packets. I work with a corporate VPN over ADSL, and anyone updating and uploading big documents kills our internet connection...
    – Mokubai
    Jun 26, 2010 at 8:03
  • taspeotis is right. Before you can download anything there must be a request that goes out (upstream). And before that your machine has to look up the server (another request via upstream). NOTE: What i described above is very simplified. But trust me: I you push 100-200 kilobytes (kB) through an 900 kilobit (kb) uplink, you block your own connection. 1 B(yte) = 8 b(it) so 900 kb = 900/8 kB = ca. 120 kB = blocked pipe.
    – lajuette
    Jun 26, 2010 at 8:15
  • Another thing: it's not a 1:1 ratio. That's why you have a smaller upstream than downstream. A normal user just doesn't need a bigger upstream. The common surfer just needs a big downstream.
    – lajuette
    Jun 26, 2010 at 8:17
2

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.

2
  • QOS is generally a good idea - if you know what you are doing. I've also seen some implementations that made everything worse (or at least some that didn't help). IMHO if lord.quackstar needs a one-shot solution he's better off with capping the upload speed.
    – lajuette
    Jun 26, 2010 at 15:18
  • Unfortunately this crap router doesn't support it. Don't see it anywhere in the configuration and en-us-support.belkin.com/app/product/list/q/routers/F5D7230-4 doesn't list it. I didn't think of QoS, so +1
    – TheLQ
    Jun 26, 2010 at 22:36
0

As someone who had a "less special" experience with an earlier than yours, wired only Belkin F5D5231-4 Router, I find it easy to suspect your router.

No doubt part of the problem is also you're just reaching the limits of total bandwidth as other answers suggest. But because I have no love for whatever routers Belkin rebadges as its own, I'd suggest you try to borrow another, newer non-Belkin router to see if you notice a difference.

My speculation is that the processor in the Belkin's is under powered and can't keep up when there is a lot of traffic. (One possible way to keep down manufacturing costs, no?) I don't know of any easy way to verify this though other than to test drive another, hopefully better router.

Got any understanding and tech loving friends who might be going on vacation and willing to lend you their router while they aren't using it?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .