Your boss is unhappy. The advertised network link speed is 1 Gbps, but the attained throughput is only a mere 808 Mbps. Stress time! Luckily, you are able to restore the peace and impress your boss at the same time.
You know that each Ethernet frame adds 24 bytes extra on the physical layer:
You were sending one million 101-byte Ethernet frames per second. This indeed resulted in the 808 Mbps you reported:
1.000.000 [frames/s] * 101 [bytes/frame] * 8 [bits/byte]
= 808.000.000 [bits/s]
= 808 Mbps
But when taking the extra bytes on layer 1 into account, the 1 Gbps your boss desperately wants to see, rolls out like a charm!
1.000.000 [frames/s] * (101 + 24) [bytes/frame] * 8 [bits/byte]
= 1.000.000.000 [bits/s]
= 1 Gbps
Doing it right
Throughput itself is a very straightforward concept.
throughput = data / time [s]
But it is crucial to clarify what data exactly was included, and what not. Otherwise, there will always be room for confusion when interpreting or comparing values.
Generally speaking, it is a good habit to mention on which layer the throughput is applicable. You can then safely ignore the overhead of the lower layers. The layer N throughput is the amount of data flowing across the interface between layer N and layer N-1 below, in one second. The data flowing from or to the higher layer is called layer N goodput.
In TCP/IP for example, the total TCP throughput equals the total IP goodput.
The Weakest Link
Finding the cause of low throughput often boils down to pinpointing the slowest network layer. Each layer provides a service to the layer above. To do this, it may
- add fields (IP addresses, checksums, …)
- send layer-specific control messages (ACK messages, PAUSE frames, …)
- wait for a resource to become available
- fragment or reassemble data
- process incoming data
- introduce random delays for fairness
As a consequence, all layers introduce overhead. Each layer may prove to be the bottleneck. And the weakest link determines the strength of the connection.
In upcoming blog posts, we will discuss possible causes of low throughput, to keep your boss a happy one!