To define Throughput, Goodput and Latency, we need to understand some terms first such as the propagation delay, the packetization delay, the queueing delay, etc.
- 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
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).
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 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 an ACK is received. 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
What Goodput Really is
Now that we defined throughput, we need to make the distinction between it and goodput.
Goodput is a combination of the two words “good” and “throughput”.
While throughput determines how much “raw” data (data that includes protocol overhead and retransmitted segments) a host sends on a period of time (the observation time), Goodput is how much “useful” data the host sends 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
An interesting fact: the goodput is always smaller than the throughput
Some Interesting Products That Involve Latency And RTT
- Latency * Bandwidth = how many bits a host can send before the first sent bit reaches the end of the channel
- RTT * Bandwidth = how many bits a host can send before the sender expects an ACK