That's actually rather impressive speed for 2.4 GHz, especially when you consider it is wireless-to-wireless so that the packets are flowing in, then out over wireless. So your observed 20 Mbps client-to-client is actually 40 mbps over the air. For a medium that maxes out somewhere around 50-60 mbps under the best conditions, that seems like you're getting very good speeds with your setup.
try magic iperf it has all the options, ctrl+c can be sent in termux using vol_down+c or vol_up+c, read the help
Beamforming won't run higher than 1x1 MIMO speed. Instead of a spatially different path for each antenna, all the antennas work in phase as a single beam. It is a compromise to increase distance.
I am still testing, the speed is changing a lot, between 3 and 20 Mbit/s.
But with a Netgear R7800, I see:
root@R7800:~# iw list | grep -i beamf
At the moment I get phantastic speed rates with 2.4GHz, more than 10 times better than days before, nearly incredible, I reach 50Mbit/s with 2.4Ghz. Can this be true, but I tested different ways. If you are interested in the discussion please visit Archer C7 WDS Client: What is wrong with the configuration But I have problems to do tests with 5GHz, so I disabled it.
I suggest to stop this thread as long there is nothing new with beamforming. Maybe it is the beamforming of the R7800 which leads to my good values.
Forgot to mention it, the last 2 days I am at 40-50Mbps See Archer C7 WDS Client: What is wrong with the configuration Can this be true or is there a design error for the test.
Theoretically the C7 supports 450 Mbps and the R7800 supports 800Mbps, so 100Mbps are possitble theoretically. The C7 is set to txpower '7' because I am so close to the C7 with my phone in the room, so it is a little bit stronger than the R7800, but on the other hand the signal is weak to send to the wds-master.