Usage : Data transferred over a time period, previously called throughput. We considered calling it throughput but internally that was getting confused with the data rate and speed of the connection. Transfer 100 mb of traffic in a 60 second window and the usage is 13 Mbps. You may have transferred that data in a fraction of the 60 second window at a very fast data rate. The averaging makes it look like a slow connection when called throughput.
Speed : Average RX rate for data frames from a client. This is averaged similar to how we average out RSSI since it tends to vary drastically over a 60 second interval.
Goodput : Total data bits transmitted / Effort spent in transmitting data bits (time transmitting). Goodput includes retry effort but does not exclude network overhead. It’s the closest to the real “useful” rate. In a bug fix we exclude “null” data frames since these go at 6 mbps. This was bring down the reported goodput.
Details of Goodput:
The average data transfer rate in all the radio bands. It is the ratio of the total bytes transmitted or received in the network to the total air time required for transmitting or receiving the bytes. The air time includes the retransmission time taken for both successful and dropped frames.
Suppose 1000 frames of 1500 bytes each are transmitted in the network as follows:
* 50% of frames are transmitted successfully at MCS index 11 at 108 Mbps.
* 25% of the frames were dropped in the 1st attempt at 108 Mbps but were successfully transmitted using MCS index 3 at 54 Mbps in the second attempt.
* The remaining 25% are dropped in both the attempts.
Then the effective rate is calculated as: The total bits transmitted / the total air time. In this example: (500 * 1500 + 250 * 1500) * 8 / (total air time for 50% frames + total air time for 25 % frames retransmitted + total air time for 25% dropped frames) = 40.5 Mbps.