Network Performance: Delay, Queues, Packet Loss, and Throughput
Delay
On its journey from one node to the next, a packet experiences processing, queuing, transmission, and propagation delay.
Processing delay includes examining the header, deciding where to send the packet, and checking for errors.
Each outgoing link has an output buffer or queue. If the link is already transmitting another packet, an arriving packet must wait. This introduces queuing delay in addition to transmission time. Buffers are finite: when a buffer is full, an arriving or queued packet can be discarded, causing packet loss.
Fill, drain, and overflow a packet queue
The output link is busy transmitting P0, and three buffer slots wait behind it. Send arrivals, finish transmissions, or run an overload where packets arrive twice as fast as the output can send them. Watch who leaves first and when an arrival is dropped.
P0 is on the output link and the buffer is empty. Send some arrivals.
Packets are commonly served first-come, first-served (FCFS): earlier arrivals are transmitted before later ones. Transmission delay, , is the time required to push the packet's bits onto the link.
Propagation delay is the time a signal takes to travel from the start of a link to the next router.
Let , , , and denote these four delays. Total nodal delay is
KNOWLEDGE QUIZ
Throughput and Bottleneck Links
Delay asks how long a packet takes to arrive. Throughput asks how much data arrives per unit time. A link's transmission rate is its ability to send bits; end-to-end throughput depends on the entire path, not the sum of link rates.
Consider a sustained transfer crossing links of 20 Mbps, 5 Mbps, and 10 Mbps. With no competing traffic or protocol overhead, the path can deliver at most 5 Mbps. The slowest link is the bottleneck. Upgrading the 20 Mbps link to 100 Mbps does not remove the 5 Mbps limit.
This is an ideal upper bound, not a guarantee. Competing traffic, packet loss, and protocol overhead can lower actual delivery speed. Units matter too: a byte contains eight bits, so 5 Mbps is not 5 MB per second.
Spend one upgrade on the bottleneck
A long transfer crosses three links. You may upgrade exactly one link to 10 Mbps. Aim for at least 5 Mbps end-to-end capacity. Moving the upgrade restores the previous link. Ignore other traffic and protocol overhead.
The 2 Mbps link still limits the path. Increasing a different link cannot remove this limit.
KNOWLEDGE QUIZ
Build a delay budget
A 12,000-bit packet uses a 3 Mbps link. Processing takes 1 ms, queuing 7 ms, and propagation 10 ms. Calculate transmission and total nodal delay. Then double only the link rate and calculate the new total.
Estimate a transfer with Python
Write a short Python program for rates_mbps = [12, 4, 8] and file_bytes = 2_000_000. Use min to find the ideal bottleneck rate, convert bytes to bits, and print the rate and ideal time. Use decimal Mbps (1,000,000 bit/s), with no competing traffic, startup delay, or overhead. Expected output: 4 4.0.