On Thursday, 13 June 2019 04:50:44 HKT Кирилл Луконин wrote:
So here is the algorithm. It has a structure we call matryoshka. ET - Expected_throughput.
- ET = TX_bitrate * Transmit_probability * Overhead_coefficient
Transmit_probability is always less than 1 so Expected throughput can't be equal to the TX_bitrate. Overhead_coefficient is also should be less than 1
Transmit_probability = 1 - Retry_probability - Error_probability
Retry_probability = TX_retries / TX_packets
Error_probability = TX_errors / TX_packets
Overhead_coefficient for 802.11 is fair enough to be 0.65, but can
be changed after additional testing.
ET = TX_bitrate * (1 - (TX_retries + TX_errors) / TX_packets) * 0.65 Such technique has very large hysteresis which is good to avoid flapping between different nodes. In my MESH lab this formula works quite well.
This looks like an interesting approach. Which chips / environments did you test this formula with and how did the result compare to the actual TCP throughput ?
Thanks, Marek