Bandwidth vs. throughput
Bandwidth is the raw capacity of a link — the maximum number of bits per second the physical medium can carry. Throughput is the actual data rate delivered to the application after all protocol overhead, retransmissions, and congestion losses are accounted for.
Throughput is always less than bandwidth. The gap depends on the protocol stack, link utilisation, latency, and packet loss rate.
Protocol overhead explained
Every layer of the protocol stack adds headers:
- Ethernet II: 14-byte header + 4-byte FCS = 18 bytes per frame. For a 1500-byte MTU, that is 18/1518 ≈ 1.2% overhead.
- IP + TCP: 20-byte IP header + 20-byte TCP header = 40 bytes of overhead per segment (more with TCP options). On a 1460-byte TCP payload, that is 40/1500 ≈ 2.7%.
- TLS 1.3: adds per-record overhead of 5-byte header + 1-byte content type + 16-byte AEAD authentication tag = 22 bytes. Combined with TCP/IP, total overhead is roughly 4–5%.
- IPsec ESP tunnel mode: adds ESP header (8 bytes), IV (16 bytes for AES-GCM), ICV (16 bytes), and a new outer IP header (20 bytes) = approximately 60 bytes per packet. For small packets this overhead is significant; for 1500-byte frames it is roughly 4–6%, but CPU encryption cost may be the real bottleneck.
- GRE tunnel: adds a 4-byte GRE header and 20-byte outer IP header = 24 bytes per packet, roughly 1.6% overhead at 1500-byte MTU.
Goodput and application-layer throughput
Goodput is the useful payload throughput seen by the application — bandwidth minus protocol overhead, minus retransmissions, minus TCP slow-start ramp-up time. For long-lived TCP flows on a low-loss path, goodput typically reaches 90–95% of the raw link speed. For short flows (less than one RTT), TCP never exits slow start and goodput may be far below the link capacity.
Common link speeds reference
| Link type | Nominal speed | Typical use |
|---|---|---|
| T1 / DS1 | 1.544 Mbps | Legacy WAN, some ISDN/PRI |
| T3 / DS3 | 44.736 Mbps | Legacy carrier interconnects |
| Fast Ethernet | 100 Mbps | Access switches, older LANs |
| GigabitEthernet | 1 Gbps | Distribution/core LAN, server NICs |
| 10 GigE | 10 Gbps | Server uplinks, data centre |
| 40 GigE | 40 Gbps | Data centre spine, aggregation |
| 100 GigE | 100 Gbps | Core/backbone, hyperscale |
Transfer time calculation
Transfer time = file size in bits / effective throughput in bps.
Note: file sizes are typically measured in bytes (1 byte = 8 bits), and storage vendors use SI prefixes (1 GB = 10⁹ bytes) while operating systems may use binary prefixes (1 GiB = 2³⁰ bytes). This calculator uses SI (1 GB = 1,000,000,000 bytes) for consistency with network speed measurements.