- Joined
- Jan 24, 2017
- Messages
- 123
- Points
- 18
I will show you how to calculate download speed -- without downloading anything! 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 personal 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 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
.
.
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 personal 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 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
.
.