Can some host providers please explain me this. How long does it take time to download a 50MB file size on a 1mbps connection? or a 2mbps connection? , on a 3mbps connection? etc...how can I measure its speed? Is there a tool to check this or can I use linux command to check?
Up until now we have been discussing quick approximations to calculate download time. Now I will show you how to calculate download speed -- without downloading! But first I need to define an important term:
TCP window size
The TCP receive window size is the maximum amount of received data, in bytes, that can be buffered at one time on the receiving side of a connection. The sending host can send only that amount of data before waiting for an acknowledgment and window update from the receiving host.
By default, the TCP receive window size for Windows is 64 Bytes
We will be using
network latency in our calculations. To find network latency we can use
Ping. Ping will send out a packet to a remote host and measure the round trip time for that packet to reach the host and return. For our example lets use the latency between my computer and forumweb.hosting:
C:\Users\Dean>ping forumweb.hosting
Pinging forumweb.hosting [104.18.49.112] with 32 bytes of data:
Reply from 104.18.49.112: bytes=32 time=25ms TTL=58
Reply from 104.18.49.112: bytes=32 time=26ms TTL=58
Reply from 104.18.49.112: bytes=32 time=24ms TTL=58
Reply from 104.18.49.112: bytes=32 time=26ms TTL=58
Ping statistics for 104.18.49.112:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 24ms, Maximum = 26ms, Average = 25ms
The report shows a
round trip time of 25ms
LET'S CALCULATE!
(1) Convert the TCP window size from bytes to bits: Since 64 KB is the default TCP window size for computers running Windows we have 64 KB x 8 = 524,288 bits.
(2) Divide the TCP window size in bits by the network path latency. For this example use a latency of 25 milliseconds. 524,288 bits / .025 seconds = 20,971,520 bits per second
(3) Convert the result from step 2 to megabits per second by dividing the result by 1,000,000. In this example, the
maximum network throughput is 21 Mbps with the main limitation on the network throughput being the latency of the network connection. Divide that by 8 and we get
2.5 MBps (I am on a basic DSL line :blush
In summary: divide 524,288 by latency(ms), take that result and divide by 1,000,0000 to get MBps, divide that result by 8 to get MBps
.
.
.