Network Throughput Calculator
Estimate useful network throughput and transfer time from link capacity and RTT with TCP window, loss and packet-rate bottleneck checks.{{ summaryTitle }} {{ summaryValue }} {{ summaryLine }} {{ badge.label }}{{ badge.value }}
| Metric | Value | Planning meaning | Copy |
|---|---|---|---|
| {{ row.metric }} | {{ row.value }} | {{ row.note }} |
{{ guidance.heading }}
{{ guidance.summary }}
- Next test
- {{ guidance.nextTest }}
- Window target
- {{ formatBytes(model.required_window_bytes) }} per stream
- Stream target
- {{ formatInteger(model.required_streams) }} stream{{ model.required_streams === 1 ? '' : 's' }}
Calculation record
{{ formulaText }}
- This is a planning estimate, not a live path measurement or provider-performance verdict.
- Endpoint CPU, storage, encryption, shaping, burst loss, and application limits can reduce real throughput.
- Compare tests only when direction, protocol, payload size, route, and competing traffic are similar.
Introduction:
A 1 Gbps link does not promise a 1 Gbps file transfer. The line rate is only the upper boundary before framing, shared use, latency, TCP flow control, packet loss, packet-processing limits, and application overhead reduce the useful rate.
Throughput is the amount of useful data delivered per unit of time. Bandwidth or link capacity describes how much the link can carry under ideal conditions. Transfer time follows from useful throughput, not from the label on the interface or service plan. This distinction matters when sizing backup windows, replication jobs, storage migration, remote builds, or wide-area application traffic.
| Limit | What causes it | Typical clue |
|---|---|---|
| Payload link | Framing overhead, traffic share, shaping | Many flows stop near the same aggregate rate |
| TCP window and RTT | Not enough unacknowledged data in flight | One flow is slow on a high-delay path and improves with a larger window or more streams |
| Packet loss | Congestion response and retransmission | Throughput falls sharply even though capacity and window appear sufficient |
| Packet rate | Firewall, tunnel, NIC, virtual router, or CPU packets-per-second ceiling | Small packets hit a limit before link bandwidth |
Round-trip time (RTT) controls how long a sender waits for acknowledgements. The bandwidth-delay product is the amount of data that must be in flight to fill a path at a chosen rate. A 1 Gbps path with 100 ms RTT needs far more window space than a same-rack path, even though both links may advertise the same capacity.
Loss changes the picture again. TCP reduces its sending rate when it interprets packet loss as congestion. A small sustained loss percentage can dominate a long-RTT path. Multiple streams may overcome a per-stream window limit, but they do not repair a lossy route and can add more contention.
Packets per second provide another independent ceiling. The same bit rate requires more packets when useful payload per packet is smaller. Tunnels, encryption, network address translation, and security inspection often expose a packet-processing limit that is invisible in a pure bandwidth calculation.
- Keep bits and bytes distinct: network rates use bits per second, while file and window sizes are entered as bytes.
- Compare decimal MB, GB, and TB separately from binary MiB, GiB, and TiB.
- Use measured RTT, loss, and packet rate from the affected path when available; presets are only planning examples.
- Treat modeled transfer time as a lower-bound estimate before storage, protocol, encryption, and application delays.
A useful forecast names the active bottleneck and the assumptions behind it. The result should be tested from the actual endpoints with the same route, packet size, concurrency, and traffic conditions as the intended workload.
How to Use This Tool:
Enter the path as it will operate during the transfer, then compare the independent ceilings instead of assuming the link rate controls everything.
- Set the Link capacity and unit, then choose a Framing profile and realistic Link share. The payload-link ceiling falls when overhead or competing traffic rises.
- Choose a Path profile or enter measured Round-trip latency and Packet loss. Editing those values makes the path custom.
- Enter the TCP receive window and Parallel streams. Use the window available to each stream, not a host-wide memory limit.
- Enter the transfer size with the correct decimal or binary unit. This changes transfer time, not the throughput ceilings.
- Add a packet-rate ceiling only when a device or host has a measured packets-per-second limit. Pair it with the expected useful packet payload. Zero leaves that ceiling out of the minimum.
- Read Estimated effective throughput, Primary bottleneck, required window, required streams, and transfer time together. Test the indicated constraint before buying bandwidth or changing every setting at once.
Interpreting Results:
The primary bottleneck is the smallest modeled ceiling before the separate retry penalty. A link-limited result points to payload capacity or link share. A window result points to bytes in flight relative to RTT. Loss and packet-rate results identify their corresponding planning formulas as the lowest bound.
Estimated effective throughput applies the entered retry penalty after choosing the smallest ceiling. Utilization compares that final rate with the payload-link ceiling, not with the raw line rate. A low percentage therefore means another modeled constraint is active; it does not identify every real-world cause of slowness.
Confirm the result with a sustained transfer. Keep the endpoints, route, test direction, stream count, packet size, and test window consistent. Storage throughput, CPU, encryption, shaping, Wi-Fi, and application behavior can all lower the measured rate without appearing in the model.
Technical Details:
The model converts every rate to bits per second and every size to bytes. It computes four independent ceilings, selects the smallest, applies an optional retry penalty, and divides transfer bits by the resulting throughput.
Formula Core
Payload capacity is reduced by framing overhead and the usable link share before transport limits are compared.
| Symbol | Meaning | Canonical unit |
|---|---|---|
| C | Raw link capacity | bps |
| O | Framing-overhead percentage divided by 100 | ratio |
| S | Link-share percentage divided by 100 | ratio |
| W | TCP receive window per stream | B |
| n | Parallel TCP streams | count |
| RTT | Round-trip time | s |
| p | Packet-loss percentage divided by 100 | probability |
| K | Packet-rate ceiling | kpps |
| L | Useful payload per packet | B |
| R | Retry-penalty percentage divided by 100 | ratio |
| F | Transfer size | B |
Zero packet loss removes the finite Mathis/Reno loss ceiling from the minimum. A packet-rate value of zero likewise leaves packet processing unmodeled. The displayed comparison uses the payload-link ceiling as a visual reference for either inactive limit.
The bandwidth-delay product is payload-link bits per second multiplied by RTT seconds and divided by eight. Required receive window divides that byte count by the stream count. Required streams round up the payload-link ceiling divided by one stream's window-and-RTT ceiling.
| Framing profile | Overhead | MSS used for loss formula |
|---|---|---|
| Custom / no overhead | 0% | 1460 B |
| Ethernet TCP payload | 3% | 1460 B |
| TLS file copy | 5% | 1448 B |
| VPN / tunnel | 12% | 1360 B |
| Jumbo-frame LAN | 1% | 8960 B |
Intermediate values keep full numeric precision. Displayed rates and durations are rounded for readability, while the transfer-time calculation uses the unrounded effective throughput.
Accuracy Notes:
The loss equation is a planning approximation associated with congestion-avoidance behavior, not a complete model of every TCP version, recovery algorithm, queue, or burst pattern. Preset RTT, loss, overhead, and MSS values are illustrative and should be replaced with measured values for a real path.
- Application framing, encryption, compression, storage speed, CPU, and kernel tuning are outside the calculation.
- Average loss does not describe burst length, reordering, jitter, or asymmetric conditions.
- Parallel streams can change contention and fairness; the model scales window capacity linearly and does not simulate competing flows.
Worked Examples:
Short metro transfer
A 1 Gbps link with the 3% Ethernet TCP planning overhead leaves a 970 Mbps payload ceiling. At 2 ms RTT, a 4 MiB receive window and one stream provide ample window capacity, while 0.001% loss still leaves a higher planning ceiling. The link is therefore the modeled bottleneck, and 25 GB takes about 206 seconds at 970 Mbps.
High-latency window limit
On a 1 Gbps path with 100 ms RTT, no modeled loss, and a 1 MiB receive window, one stream is limited to 83.886 Mbps. The bandwidth-delay product is 12.5 MB, and the estimate calls for about 12 such streams or a larger per-stream window to approach the payload-link ceiling.
References:
- RFC 6349: Framework for TCP Throughput Testing, Internet Engineering Task Force, August 2011.
- RFC 7323: TCP Extensions for High Performance, Internet Engineering Task Force, September 2014.
- The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm, ACM SIGCOMM Computer Communication Review, 1997.
- Invoking iperf3, Energy Sciences Network.
- How to test internet speed in Linux, Simplified Guide.
- How to check network latency in Linux, Simplified Guide.