Max bandwidth troubleshooting

chino_bandito
Posts: 2
Joined: Tue Nov 12, 2019 8:12 am

Max bandwidth troubleshooting

Postby chino_bandito » Tue Nov 12, 2019 8:24 am

My application requires a large number of ESP32's (100+) all on the same Wifi network. I want to maximize bandwidth from my laptop to each of the connected ESP32's.

I've done some testing with the wifi/iperf example in esp-idf and am puzzled by the results. I should be getting close to 100 Mbit/s, but am actually getting a max of around 35 Mbit/s.

The set-up:
Laptop Ethernet controller (spec 100 Mbit/s) is connected via ~3 ft Cat 5E cable (1000 Mbit/s) to a Wifi AP with spec 2.4 Ghz bandwidth 450 Mbit/s.

I have two ESP32's, physically located right next to the Wifi AP, each connected to the Wifi AP and each running an iperf server (TCP). From my laptop, I connect to one of the ESP32's as a client and achieve 35 Mbit/s bandwidth per iperf results. Leaving the first session running, I connect as a client to the second ESP32, and the total bandwidth for both running iperf sessions is still around 35 Mbit/s. It doesn't matter which ESP32 I connect to first; I get the same results.

Based on these results I don't think the ESP32's are the bottleneck here. But I'm not sure where else it could be in my simple set up? The weakest link is my Ethernet controller, and I should get 100 Mbit/s there. Any ideas??

chino_bandito
Posts: 2
Joined: Tue Nov 12, 2019 8:12 am

Re: Max bandwidth troubleshooting

Postby chino_bandito » Thu Nov 14, 2019 7:19 am

Think I figured it out. It was due to my failure to understand iperf/tcp.

With TCP, the window size matters a lot. I tried using UDP instead (-u -b <very large number>) to max out UDP bandwidth at 100Mbps, as expected for a single ESP32 station. When I run iperf from my laptop to the second ESP32 station, the total UDP bandwidth stays at around 100 Mbps. Case solved.

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 116 guests