TCP Calculator
|
This page calculates the theoretical maximum TCP throughput on a link based on the specified parameters. The purpose of this is to highlight the impact that delay has on high performance data transfers. The speed of light combined with TCP/IP windowing means that you will not get host to host transfers across large distances at 1Gbps automatically.
With a small amount of tuning, you can. The greater the delay, the bigger the impact. For example if we take a standard Microsoft Windows XP machine and plug in the values for a standard Gigabit LAN (typically .2ms latency between hosts) we get a maximum speed of 700Mbit/sec, but if we try if between two hosts, one of them in the USA (typically around 120ms) the maximum transfer rate falls to 1.17 Mbit/sec. For reference the expected round trip latency over the FX backbone from Wellington to Auckland is below 10ms.
This tool was written by the folks at WAND Network Research Group from Waikato University.
A presentation on this issue, delivered by FX Networks GM of Internet Services to KAREN members in late October 2006 is available here (html), and here (pdf).
|
| |
Notes:
- Windows uses 40 byte acks, Linux 52. if ethernet is run on
the slowest link, the minimum size for an ack becomes 46 bytes.
(ethernet has a 60 byte minimum packet size, and a 14 byte header)
- You'll NOT get the theoretical maximum throughput as
limited by upstream bandwidth, as this assumes one tcp connection under
perfect conditions. Multiple connections will be slower
-
Linespeeds are often serialisation rate, over the top of that you have
framing, FEC. What bandwidth you'll actually recieve is not obvious.
- Most hosts send delayed acks every 2 acks, some every ack
(1). When dealing with massively assymetric links, hacking your stack
to support 3 would seem to be the best solution (and it's a reciever
solution, not a sender one too as an added bonus)
- Default Window sizes for various OS versions
| Windows 98 | 8192 |
| Windows 2000 | 17520 |
| Linux | 65535 |
| FreeBSD | 65536 |
| Windows XP* | 17520 |
| MSDN** | 8760 |
* windows XP apparently has some undocumented way of selecting this
** This uses the algorithm from an MSDN article which seems waay too low.
- Windows size limited downloads are limits per TCP connection, so P2P apps can exceed this limit.
- windows 2000+ and linux can both have windows larger than 64k, 98 can't,
- MSDN article including the selected window size for windows 2003
- US Department of Energy Site on High Speed WAN connections and TCP
- Pittsburgh Supercomputing Center on high speed data transfers
- Throughput calculation formula
- RFC3448: TCP Friendly Rate Control (TFRC): Protocol Specification. -- Formula used for Throughput under packet loss.
- RFC1323: TCP Extensions for High Performance -- Discussion on automatic TCP window scaling
|