Throughput is the actual data transfer rate achieved on a network connection, measured in bits per second. Throughput is always less than bandwidth due to protocol overhead, congestion, packet loss, and retransmissions. TCP throughput is bounded by: min(rwnd, cwnd) / RTT.
Throughput measures the effective data delivery rate – what the application actually receives per second after accounting for all overhead and losses. A 1 Gbps link rarely delivers 1 Gbps of application data due to: Ethernet framing (interframe gap, preamble), IP/TCP headers, TCP slow start, congestion window limits, and retransmissions. The theoretical maximum TCP throughput is window_size / RTT. With a 64 KB window and 100ms RTT, maximum throughput is 5.24 Mbps regardless of link bandwidth. TCP window scaling (RFC 7323) increases the maximum window to 1 GB, enabling high throughput on high-bandwidth, high-latency links. Goodput is a related metric that excludes retransmitted data – only counting bytes successfully delivered once.
Latency
Latency is the time delay between a request being sent and the first byte of a response being received. Measured in milliseconds. Network latency is dominated by the speed of light over physical distance (1ms per 100km), plus queuing and processing delays.
Bandwidth
Bandwidth is the maximum rate of data transfer across a network path, measured in bits per second (Mbps, Gbps). High bandwidth allows large files to transfer quickly. Bandwidth is often confused with latency – a high-bandwidth connection can still have high latency.
Congestion
Network congestion occurs when traffic exceeds link or buffer capacity, causing packet loss and increased latency. TCP congestion control algorithms (Cubic, BBR, Reno) dynamically adjust sending rate to avoid overwhelming the network. Persistent congestion degrades all traffic on the shared path.