Network Throughput Calculator
Estimate network throughput and transfer time from link speed, RTT, packet loss, TCP windows, streams, and packet-rate limits with bottleneck checks.{{ result.summaryTitle }}
Current result
| Metric | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
| Area | Badge | Finding | Detail | Copy |
|---|---|---|---|---|
| {{ card.heading }} | {{ card.badge }} | {{ card.title }} | {{ card.detail }} |
| Planning line | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
| Target Fill | Needed Throughput | Window / Stream | Streams @ Current Window | Needed Packet Rate | Max Packet Loss | Window Scale | Readiness | Copy |
|---|---|---|---|---|---|---|---|---|
| {{ row.targetFillLabel }} | {{ row.targetThroughput }} | {{ row.windowPerStream }} | {{ row.streamsNeededLabel }} | {{ row.packetRateNeededLabel }} | {{ row.lossBudget }} | {{ row.scaleLabel }} | {{ row.readiness }} |
| Action | Expected Throughput | Gain | Est. Transfer Time | New Bottleneck | Copy |
|---|---|---|---|---|---|
| {{ row.action }} | {{ row.throughput }} | {{ row.gain }} | {{ row.transferTime }} | {{ row.newLimiter }} |
| Metric | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
| Field | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
Introduction:
A large transfer can cross a fast circuit and still arrive slowly. The rate that matters to the application is throughput, often called goodput when only useful payload bytes are counted. It sits below advertised bandwidth whenever headers, encryption, queueing, retransmissions, small packets, or transport limits consume part of the path.
Throughput is easiest to misread when bandwidth is treated as the only ceiling. A 1 Gbps link can move close to 1 Gbps on a clean local path, yet the same port may deliver a small fraction of that rate across a high-latency WAN. The difference is not only distance. TCP has to keep enough unacknowledged data in flight, recover from loss, and fit the transfer through any firewall, tunnel, overlay, or shaper in the route.
The bandwidth-delay product, or BDP, gives the first useful mental model. It is the amount of data needed in flight to fill the path while acknowledgments travel back. If the receive window is smaller than the BDP, a single stream pauses for acknowledgments before the link is full. Parallel streams can help a window-limited transfer because each stream contributes another window, but they do not remove packet loss, tunnel overhead, or packet-rate limits.
Several different ceilings can dominate the same transfer. Bandwidth decides the raw upper bound. Framing overhead and link sharing decide how much of that bandwidth remains for payload. RTT and window size decide how much one or several TCP streams can keep in flight. Packet loss lowers the congestion-avoidance ceiling, especially over long RTTs. Packet-rate processing can be the limit on firewalls, VPNs, virtual routers, small-packet workloads, and CPU-bound overlays.
- Bandwidth is capacity. It describes the line or policy rate before payload overhead, sharing, and transport behavior are considered.
- Throughput is sustained delivery. It is the useful rate a transfer actually carries after the active ceiling is applied.
- Transfer time depends on payload size. The same rate may be acceptable for a small backup and impossible for a multi-terabyte copy window.
- Field tests need matching conditions. Direction, protocol, payload size, time of day, and competing traffic all change whether two measurements can be compared.
A network throughput estimate is a planning baseline, not a verdict by itself. It can point toward the most likely limiter and help choose the next test, but provider claims, application performance disputes, and capacity purchases still need sustained measurements from the real endpoints and path.
How to Use This Tool:
Start with measured path values when you have them. Presets are useful for early planning, but live RTT, loss, and observed throughput give the estimate more weight.
- Choose
Path presetwhen you need a starting point, or keepCustomand enter measuredRound-trip latencyandPacket loss. The path-gate visual will update to show which ceiling is active after the model runs. - Set
Link capacityto the shaped, committed, or physical rate you want to test. UseLink shareinAdvancedwhen the transfer only receives part of a shared circuit. - Enter
TCP receive windowandParallel streams. WatchWindow needed per stream for full linkandStreams needed with current windowto see whether more in-flight data is required. - Set
Transfer sizesoTransfer time at estimated throughputreflects the job you are planning, not just an abstract rate. - Choose a
Framing presetor setProtocol overheadandTCP MSSmanually. Tunnel and TLS assumptions change both the payload ceiling and the loss calculation. - Use
Packet-rate ceilingonly when you know a packets-per-second limit for a firewall, tunnel, virtual appliance, or CPU path. A value of0leaves that ceiling out of the estimate. - Add
Observed throughputandLoaded RTTafter a comparable test.Field Checkthen compares the measured rate with the modeled rate and flags queue growth when loaded RTT rises above the baseline RTT.
If the result shows No effective throughput, or if a number looks wildly different from your test, first check units: Mbps versus MB/s, decimal GB versus binary GiB, percent loss versus fraction loss, and kpps versus pps are common causes of wrong planning numbers.
Interpreting Results:
Estimated effective throughput is the modeled payload rate after overhead, link share, transport ceilings, packet-rate limits, and any retransmission penalty. Primary bottleneck names the smallest active ceiling, and Transfer time at estimated throughput turns that rate into a schedule estimate.
Payload link ceilingis the usable payload rate after protocol overhead and link share, not the raw port speed.Window-limited ceilingis the aggregate rate allowed by receive window, RTT, and stream count.Loss-limited ceilingis a planning estimate from packet loss, RTT, MSS, and the selected loss profile. WhenPacket lossis0%, this ceiling is not constrained.Packet-rate ceilingappears only when a kpps limit is entered. WhenPacket-rate ceilingis0, the output reports it as not modeled.Planning target readinessexplains the first missing requirement for the selected fill target: lower loss, larger window, more streams, or more packet-rate headroom.Field-check statusmatters only whenObserved throughputis from a comparable sustained test on the same direction, protocol, and path.
A healthy estimate does not prove the application will finish on time. Endpoint CPU, disk speed, encryption, application throttles, asymmetric routes, microbursts, and competing traffic can still lower the real rate. Use Observed vs modeled throughput, Loaded RTT delta, and the active bottleneck together before deciding what to change.
Technical Details:
Payload throughput is governed by the smallest ceiling that the transfer reaches. A capacity ceiling starts with raw link speed and removes non-payload overhead and any configured share of the link. A window ceiling follows directly from BDP: bytes in flight multiplied by eight, divided by RTT. A loss ceiling uses a Mathis-style TCP congestion-avoidance approximation, where higher RTT, smaller MSS, or larger packet-loss probability lowers the sustainable rate. A packet-rate ceiling converts a packets-per-second cap into bits per second by multiplying packets by average payload bytes.
The model treats the ceilings as concurrent limits and then applies the retransmission penalty after the smallest ceiling is found. That order matters. If loss already reduces the model to 25 Mbps, a 1 Gbps link upgrade alone does not move the estimate. If the packet-rate ceiling is 160 Mbps, larger TCP windows do not help until packet processing or payload size changes.
Formula Core:
The main calculation compares payload capacity, window capacity, loss capacity, and packet-rate capacity, then uses the smallest value as the modeled ceiling.
Here W is the per-stream TCP receive window in bytes, N is the number of parallel streams, RTT is seconds, C is the selected TCP loss coefficient, MSS is bytes, and p is packet-loss probability as a fraction. The loss ceiling is ignored when loss is exactly 0%. The packet-rate ceiling is ignored when the kpps input is 0. Display precision rounds visible and exported numbers but does not change the calculation.
A clean 1 Gbps path with 12 ms RTT and one 1 MiB receive window has a window ceiling near 699.051 Mbps, because 1 MiB can only keep about 8.39 million bits in flight for each RTT. Filling the same payload link at that RTT needs about 1.431 MiB per stream, or 2 streams at the current window size.
| Ceiling | What makes it active | Output to verify |
|---|---|---|
Link Capacity |
Payload capacity after overhead and link share is lower than the transport and packet limits. | Payload link ceiling, Link utilization at estimate, and shaping or competing-traffic evidence. |
TCP Window/RTT |
The current receive window and stream count cannot cover the BDP for the target fill rate. | Window needed per stream for full link, Current window coverage of full-link target, and TCP window scaling posture. |
Packet Loss |
The Mathis-style loss ceiling falls below link, window, and packet-rate ceilings. | Loss-limited ceiling, Max packet loss for planning target, and sustained retransmission or drop counters. |
Packet Rate |
The entered kpps cap multiplied by average packet payload is below the other ceilings. | Packet-rate ceiling, Estimated packet rate, and packet counters on the suspected device. |
Mixed Constraints |
Several ceilings sit close together or the estimate reaches zero, so one change may not explain the result. | Bottleneck Brief, Scenario Ladder, and one controlled retest after changing a single assumption. |
Window scaling matters when the receive-window target exceeds the classic 65,535 byte TCP window field. Modern TCP can negotiate a scale factor during connection setup, but middleboxes, operating-system policy, small application buffers, or disabled autotuning can still leave a high-BDP path short of the required in-flight bytes.
Accuracy Notes:
The estimate is a deterministic planning model. It does not send test traffic, discover the route, read device counters, or prove service-provider performance.
- Average packet loss can hide burst loss, retransmission storms, and congestion episodes that harm real transfers more than a single percentage suggests.
- The Mathis-style loss ceiling is a heuristic for TCP behavior, not a full simulation of every congestion-control algorithm, receiver policy, or offload feature.
- Packet-rate estimates depend on the average payload bytes per packet. Small-packet workloads can hit a kpps ceiling far earlier than full-size TCP streams.
- Observed throughput is only comparable when the test direction, protocol, payload size, endpoint load, route, and time window match the entered assumptions.
Worked Examples:
A cross-country file copy with 1 Gbps capacity, 40 ms RTT, 5% overhead, 0.02% packet loss, four 16 MiB streams, and a 250 GB transfer still lands near 24.983 Mbps. Primary bottleneck should read Packet Loss, and Transfer time at estimated throughput is about 22.24 hours, so adding more streams is not the first fix.
A branch VPN with 500 Mbps capacity, 25 ms RTT, 12% tunnel overhead, very low 0.0001% loss, a 40 kpps appliance limit, and 512 byte packet payloads becomes packet-rate limited. Packet-rate ceiling is about 163.840 Mbps, below the 440.000 Mbps payload link ceiling, so larger TCP buffers would not remove the active constraint.
A clean regional path at 1 Gbps, 12 ms RTT, one 1 MiB receive window, one stream, and 0% loss is a window example. Window-limited ceiling is about 699.051 Mbps, while Streams needed with current window is 2. Raising stream count or receive window can move the estimate until the payload link becomes the limiter.
A field test that records 320 Mbps on a modeled 950 Mbps clean path should be treated as a troubleshooting signal. When Loaded RTT rises from 35 ms to 70 ms, Field-check status should report that the observed test trails the model, and Loaded RTT delta points toward queueing, shaping, or shared-path pressure before a bandwidth upgrade is blamed.
FAQ:
Why is the estimate lower than the link speed?
The estimate starts from link capacity, removes overhead and link share, then compares the payload link with window, loss, and packet-rate ceilings. The smallest active ceiling becomes Estimated effective throughput.
Why does tiny packet loss matter so much?
The loss formula worsens as RTT rises and as the square root of loss probability rises. A small loss percentage can therefore dominate long-distance TCP transfers even when the raw circuit is fast.
When should I increase parallel streams?
Increase streams when Primary bottleneck is TCP Window/RTT and Streams needed with current window is higher than the current stream count. More streams will not fix packet loss or a packet-rate cap by themselves.
Why does packet-rate ceiling say not modeled?
A Packet-rate ceiling value of 0 disables that ceiling. Enter a kpps limit only when you have a device, tunnel, firewall, or CPU packet-processing limit to test.
Should I compare Mbps with MB/s?
Network rates are usually bits per second, while file-copy tools often show bytes per second. Compare Estimated effective throughput with Estimated payload rate before deciding whether a test result is low.
Can this prove a provider is underperforming?
No. It creates a planning baseline and a bottleneck hypothesis. Use sustained tests, endpoint counters, device counters, and comparable field evidence before turning the estimate into an operational claim.
Glossary:
- Throughput
- Useful data delivered per second across the path.
- Goodput
- Application payload rate after overhead, sharing, retries, and other non-payload costs.
- BDP
- Bandwidth-delay product, the amount of data needed in flight to fill a path at a given RTT.
- RTT
- Round-trip time, the delay for a packet to travel out and for the acknowledgment to return.
- MSS
- Maximum segment size, the TCP payload bytes used by the loss calculation.
- Packet-rate ceiling
- A packets-per-second processing cap that can limit throughput before bandwidth is exhausted.
- Loaded RTT
- Round-trip latency measured while the path is carrying the test transfer.
- Window scaling
- A TCP option that lets modern connections advertise receive windows larger than the classic 65,535 byte field.
References:
- RFC 6349: Framework for TCP Throughput Testing, RFC Editor, August 2011.
- RFC 7323: TCP Extensions for High Performance, RFC Editor, September 2014.
- The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm, ACM SIGCOMM Computer Communication Review, July 1997.
- Invoking iperf3, ESnet, November 2025.
- How to test internet speed in Linux, Simplified Guide.
- How to check network latency in Linux, Simplified Guide.