RuralJohnny:
One thing I noticed on testmy.net is that download speeds vary by file size. Performance comes with larger files! That has to be a function of network design.
This speed-file size relationship was confirmed at nzspeedtest.com but again, with tests to servers in NZ and Aus, the reported speeds were significantly less than ookla's.
Speedtest.net does a quick sample test with a ~200kb download. If the file comes in nice and fast, it then starts up 4 to 5 parallel downloads of different file sizes ranging from 500kB to 100mB. This is where you often see the speed test jump in speed after a second or so into the test.
So this means that they can test a dialup modem, and a fiberoptic conneciton.
The TCP protocol sits underneath all this. It has a speed control mechanism where
The first packet is sent at a slow speed, and as responses come in, it will start sending the packets faster and faster until the speed of the responses levels off. This indicates the maximum speed between the server, through all the pipes, to the end user.
As incoming packet responses slow down, it slows down the sending of the packets. The idea of this is so that packets dont get dropped or disappear in congested pipes along the route.
It takes time to speed up the file transfer because it has to take incremental samples. So on a reasonably fast connection (1 megabit+) the file could have been transfered by the time the incremental speed increases have reached the maximum throughput. As you get more and more distant (network hops and network distant, not always physical distance) the time it takes for the speed to increase will be longer.
So multiple files are transfered at once with the speedtest.net service. This means that each one will be slowly speeding up, but the total throughput can be measured by adding the current speed of each transfer together.
Underneath that, is the cell tower TDMA.
As your client device (mobile phone, 3g stick, rbi connection) starts transfering files, the cell tower will start to allocate more timeslots to it. This is slightly delayed by the fact the tcp connection isnt running at full speed, and so the cell tower also takes measurements and will increase the time slots as required.
With more devices attached to a cell tower, it takes longer to allocate those time slots and pull them from devices that are not transmitting or receiving at high speed so they dont need as many slots. This further delays the speed that the tcp transfer can take place.
In the end, big file transfers have more time to get up to speed.
See here http://en.wikipedia.org/wiki/Slow-start