TCP Throughput Calculations

CALCULATE TCP THROUGHPUT

The default TCP window size in Windows Server is typically 64KB, but can go up to 2MB with window scaling enabled. Assuming you’re not using window scaling and the window size is 64KB (which is equal to 0.000512 Gigabits since 1 Byte = 8 bits), we can calculate the throughput as follows.

First, let’s calculate the round-trip latency:

33 ms (millisecond) = 0.033 seconds (since 1 second = 1000 milliseconds)

The formula for TCP throughput is:

Throughput = TCP window size / round-trip time

So substituting in the given values, we get:

Throughput = 0.000512 Gigabits / 0.033 seconds = 0.0155 Gbps (or 15.5 Mbps)

This is the theoretical maximum throughput. But please note that in the real world, the throughput will often be less than this due to factors such as network congestion, TCP overhead, and TCP congestion control mechanisms.

Also, keep in mind that this is a gross simplification. Modern TCP/IP stacks use dynamic window sizes and more advanced congestion control algorithms that make the actual situation more complex. Furthermore, TCP options like Selective Acknowledgements (SACK) and window scaling can improve performance over what would be predicted by this simple calculation.

 

CALCULATE THE OPTIMAL TCP WINDOW SIZE

The optimal TCP window size, also known as the bandwidth-delay product, can be calculated using the formula:

Bandwidth-delay product (BDP) = bandwidth * round-trip time

BDP is the product of the data link’s capacity (in bits per second) and its round-trip delay time (in seconds). The result, measured in bits, is the maximum amount of data on the network circuit at any given time, often referred to as the optimal TCP window size.

So, given your 10Gbps link (10000Mbps) and a round-trip time of 33 milliseconds (or 0.033 seconds), the optimal TCP window size would be:

BDP = 10000 Mbps * 0.033 s = 330 Megabits

Since there are 8 bits in a byte, we can convert this to Megabytes (MB):

330 Megabits / 8 = 41.25 Megabytes

Therefore, the optimal TCP window size would be about 41.25 MB for a 10Gbps link between Miami and NY with a round-trip latency of 33 milliseconds. Please note that this is a theoretical calculation and actual optimal values can depend on several factors.

Furthermore, in practice, many systems won’t support a window size this large unless you use TCP window scaling (RFC 1323). Without window scaling, the maximum window size is 64KB. So, to effectively use high-speed networks with non-negligible latency, you need to use window scaling.

 

CALCULATE MAXIMUM LATENCY FOR DESIRED THROUGHPUT

To calculate the maximum latency allowable for a given link speed and TCP window size, we can rearrange the bandwidth-delay product (BDP) equation to solve for round-trip time:

Round-trip time = TCP window size / bandwidth

Given that the link speed (bandwidth) is 10 Gbps and assuming the optimal TCP window size we calculated earlier (41.25 Megabytes or 330 Megabits), the equation becomes:

Round-trip time = 330 Megabits / 10 Gbps
Round-trip time = 0.033 seconds (or 33 milliseconds)

The calculated round-trip time corresponds to the latency you provided initially. This is the maximum latency that will allow for the optimal utilization of the link without any reduction in throughput, given the bandwidth and TCP window size.

Please note that this is a simplified calculation and doesn’t take into account several practical factors like network congestion, TCP overhead, packet loss, etc. Also, using window sizes this large requires enabling TCP window scaling.