Throughput, Goodput And Latency

Published by Keyboard Banger on

To define Throughput, Goodput and Latency, we need to understand some terms first.

Propagation Delay

  • The propagation delay can be calculated with the following formula:

Propagation delay = distance / speed of the signal

where “distance” is the length of the media

  • The propagation delay can be expressed in terms of RTT of a packet.
  • On a point to point link, when we transmit a series of packets from point A to point B:
    • the propagation delay of all the packets equals the propagation delay of a single packet. This is important to know when we will later calculate the end-to-end delay.

Transmission time (Packetization delay)

Transmission time is the time elapsed from the first bit put on the link till the last bit is put on the link. Transmission time is also known as Transmission Delay or Packetization Delay in packet switching networks.

Why did I say packetization delay in packet switching networks? Because it has a different meaning in another context. Packetization delay in a packet voice network means the amount of time it takes to fill a packet payload with voice.

Transmission time = Transfer size / Bandwidth

Where Transfer size is the size of a packet or a file.

Transmission time can be calculated for a single packet. In this case: Transmission time = packet size / Bandwidth

Remember: Transmission time <> Transfer time

Queuing delay

Queueing delay = the time spent by a packet waiting in a packet switch buffer. Queuing helps reduce the likelihood of dropping packets especially in times of congestion.

Queueing delay is a function of time. This is the only variable parameter in the precedent formula. The rest of the parameters are deterministic.

End-to-end delay (Latency)

The end-to-end delay is also called Latency or Transfer time. It is calculated with the following formula:

End-to-end Delay = Propagation delay + Serialization delay + Transmission time + Queueing delay

Latency is the time it takes a packet to travel from one host to another. Beware that tools such as Ping give the RTT and not the end-to-end delay.

What about the end-to-end delay between two hosts separated by packet switches in the way? The end-to-end delay is then the sum total of all propagation delays, serialization delays, transmission times and queueuing delays of all links between the two end hosts (the links in red in the following diagram).


Figure: Measuring the End-to-end delay of a network path – copyright

Hint: if you ever encounter an exercise where you need to calculate the end-to-end delay, think it visually by drawing a graph similar to the one above. Try a couple of examples (varying the number of packets) and you will hopefully find a pattern.

NB: sometimes IT professionals confuse Latency and Propagation delay.

Throughput, Channel utilization and Goodput

Throughput can be calculated with the following formula:

Throughput = Transfer size / Transfer time

Usually, at one instant “t” in time, the actual throughput you have is smaller than the maximum throughput

We distinguish “flavours” of throughput:

  • Maximum Theoretical Throughput: can equal the circuit bandwidth value, in theory
  • Peak Measured Throughput: measured with real systems
  • TCP Throughput = Window size / RTT
    • “Window size” is the number of bytes of data that can be sent or received before ACKing. The Window Size is also expressed in terms of packets.
    • TCP throughput can also be calculated with this formula: w * MSS /RTT
      • w: the number of segments sent in one RTT time
      • MSS: the Maximum Segment Size of a transmitted segment

Given the throughput and the link bandwidth (or link capacity), we can determine how much our communication channel is used:

Channel utilization= Throughput / Bandwidth

Now that we defined throughput, we need to make the distinction between it and goodput.

While throughput determines how much “raw” data (data that includes protocol overhead and retransmitted segments) is sent on a period of time (the observation time), Goodput is how much “useful” data is sent over the same period of time. Goodput is the throughput of the application layer. It measures the application data rate.

This is the formula to calculate the Goodput:

Goodput = file size / Transfer time

NB: Goodput < Throughput

Some interesting products that involve Latency and RTT

  • Latency * Bandwidth = how many bits are sent before the first sent bit reaches the end of the channel
  • RTT * Bandwidth = how many bits can be sent before the sender expects an ACK



Computer Networking: A Top Down Approach, Kurose and Ross

Understanding Delay in Packet Voice Networks, Cisco

Transmission Time, Wikipedia


Categories: Networking Basics

Keyboard Banger

Keyboard Banger is a network engineer from Africa. He has been working in network support and administration since 2008. He started writing study notes about certification exams and technology topics a couple of years ago. When he's not writing articles, he can be found wandering on technical forums.


Leave a Reply

Your email address will not be published. Required fields are marked *