I'm currently designing a speed test app that obviously includes Ping, Download & Upload tests among others.
I already developed the logic behind the multithreaded tests so I can define create as many threads as I need for each test, being able to set multiple connections to avoid throttling for high speeds or unstable networks and having more precise results.
I'm not currently asking for code but I'm asking for the logic behind of the number of threads to use for each test for every network type and available bandwidth.
As a piece of additional information, my download test uses https connections and the upload test uses socket connections. Any required additional information, please let me know.
I've tried research about that but the only thing I could find is that Ookla Speedtest (browser version) uses 4 threads if the speed is at least 4Mbps and 2 threads on lower but browser multithreading limitations are different than the ones we have in Android apps. -> Link
I don't expect that someone gives me the exact logic behind this but it would be really useful if I could be pointed in the right direction. Any article, post, book, resource about the topic would be much appreciated.