Overclockers Forums > Software > Internet, Networking, and Security
Internet, Networking, and Security Networking and Viruses/Malware trouble. Get the answers here.
Forum Jump

Dowloading vs. Uploading

Post Reply New Thread Subscribe Search this Thread
Thread Tools
Old 06-18-06, 03:29 PM Thread Starter   #1

dreamtfk's Avatar 

Join Date: Feb 2002
Location: Orlando FL

10 Year Badge
Dowloading vs. Uploading

Why does my connection slow to a crawl when I am uploading data but when I am downloading several files I can still surf the internet?

i5 3570K @ 4.2Ghz (34c) & CoolerMaster Hyper 212
Asus P8Z77-V
G.Skill Ripjaw 1600 4GBx2
Sapphire 6950 2GB Unlocked/OC'd to 6970 Specs
Corsair Graphite 600T (Awesome!)
Corsair 650TX PSU
120GB Intel(Boot)/Samsung 840 250GB (Gaming)/1TB Samsung (Storage)
Acer 27" Monitor
dreamtfk is offline   QUOTE Thanks
Old 06-18-06, 03:57 PM   #2

Join Date: Apr 2002
Location: Xanadu

Cause you have an asynchronous connection: your pipe for downloading is bigger than for uploading.
Every datapacket needs to send an acknowledgement back to the sender to ensure the transmssion was without error. This ACK packet is a lot smaller than the datapacket (usually 8 bytes or so vs. the 1500 of the data packet). When you download something the upstream channel for this ACK packet is free and it uploads fast, you can still surf the web. If you upload something, that upload channel is already totally full and those ACK packets you generate by surfing have to be put into a queue and wait for a time. Sometimes up to several seconds. The webserver you surf however can't send the next datapacket down unless you acknowledge the last one with your ack packet. So it takes a lot of time for every 1500 byte packet to get through from that webserver
klingens is offline   QUOTE Thanks
Old 06-18-06, 04:21 PM   #3
su root
Senior Member
I teach people how to read your email.

su root's Avatar 

Join Date: Aug 2001
Location: Ontario, Canada

10 Year Badge
In general, a TCP/IP Transfer, it goes like this:
Client > Server: Hi (SYN)
Server > Client: Hi (SYN, ACK)
Client > Server: Nice to meet you (SYN, ACK)
Client > Server: Gimmie parts 1-3 of file XYZ
Server > Client: [DATA 1]
Server > Client: [DATA 2]
Server > Client: [DATA 3]
Client > Server: OK, I got those fine (ACK), Gimme parts 4-6

This is done so that if any part along the way is dropped or corrupted, instead of returning ACK, the client just asks for the missing pieces. This is true for any kind of TCP transfer... downloading of webpages, images, FTP, etc.

TCP Windowing will stretch this as much as possible, so stable transfers do not require the client to ACK as often, speeding it up, but unstable transfers require a lot more ACKing.

Now look at the timeframe, the server can transmit parts 1-3 very quickly, but then has to wait for the ACK from the client. Depending on the latency of your connection, you may be 50ms or 800ms away from the server, so it may take a while (like 1.6 seconds in the 800ms example) for the ACK to get back to the server to continue loading the webpage.

Since cable and DSL have such a restricted upload pipe, data is transferred slower in upload, so, if you have a 768kilobit upload, then you can only transfer 96 kilobytes per second. Now, in a normal network, it's FIFO (first in, first out) queueing for upload, so since your network is high-speed 100MBit, your computer has no problem transmitting a bunch of upload packets, but when they get to your modem, it can only send them so fast, so the modem will build a queue of packets to send... if you then return an ACK, it will be placed behind the upload packets in queue... if the queue has 200kilobytes in it, then the ACK has to wait an additional 2 seconds before it's actually transmitted.

To speed it up, you can implement traffic shaping, which, when properly configured, will keep the queue on your router or firewall (instead of on your modem), and when a high-priority packet comes through, like an ACK, it can jump to the front of the queue. Another way is to restrict uploading so that it doesn't fill your upload cap, leaving room for ACKs and other traffic.

DNS requests, although not TCP traffic, will also get hit by this... when you first request a webpage, you may need to do a DNS lookup, before even connecting to the server (when your browser says, "Looking up hostname", or similar), if your upload queue is a constant 500ms wait, then counting only the queueing time on your modem, it'll take 500ms to send the DNS request, then 1 second for the TCP handshake, so essentially, 1.5 seconds before you even request what you want.

"Some people, when confronted with a problem, think 'I know, Ill use regular expressions.' Now they have two problems."
su root is offline   QUOTE Thanks

Post Reply New Thread Subscribe

Overclockers Forums > Software > Internet, Networking, and Security
Internet, Networking, and Security Networking and Viruses/Malware trouble. Get the answers here.
Forum Jump

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Mobile Skin
All times are GMT -5. The time now is 07:40 AM.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
You can add these icons by updating your profile information to include your Heatware ID, Benching Profile ID or your Folding/SETI profile ID. Edit your profile!

Welcome to

Create your username to jump into the discussion!

New members like you have made this the best community on the Internet since 1998!

(4 digit year)

Why Join Us?

  • Share experience
  • Max out your hardware
  • Best forum members anywhere
  • Customized forum experience

Already a member?