View Single Post
Old 04-14-2011, 12:22 AM  
Yil
Too much time...
 
Join Date: May 2005
Posts: 1,194
Default

There are a variety of issues here...

First off, TCP/IP has something called slow start. This affects the first bytes to travel across a newly established connection and after dropped packets. Anything after like maybe 100k (or even less) would be at full speed so this is an issue for small files only.

The next thing is SSL negotiation. If you're transferring files encrypted then the handshake data needs to be exchanged before things can start. Couple this with slow start and things take a little bit of time to get really going. This isn't a big deal, but the amortized cost of the setup is smaller the larger the file being transferred so it may make the difference look bigger with wildly different file sizes.

The above is always true, however cable modems have another issue. The bandwidth for uploading data is shared amongst everyone in your immediate area and it has a problem remarkably like old school fat Ethernet. Today you're used to plugging in your computer to a switch which usually has 2 separate channels for sending/receiving which means no collisions, but on a single shared cable line you can't have more than 1 person transmitting at a time. I believe they solve the problem by giving your cable modem a small sliver of time to send a tiny bit of data every milliseconds or so. As soon as you send that first block some smart algorithm starts giving you a larger block of time to send more data next time your window comes up, and then more, etc. Eventually you get the largest piece you're allowed, but the important point here is you don't get that big bandwidth right at the start.

My guess is that the cable modem itself is the biggest issue. The difference between the first 1MB and the 50MB is almost certainly the cable modem, but if you are only looking at total bytes / total time then the setup costs are a larger percentage the smaller the file...
Yil is offline   Reply With Quote