0

I have a server (Lenovo using Ubuntu) and 2 clients (both Mac). The server is connected with a Wi-Fi router over Eth interface. The two clients are connected with Wi-Fi router over WLAN interface. All are connected and can communicate.

Now, I am using iperf3 (TCP) to test download and upload throughput (Mbps) of the clients. To do so, the server runs iperf3 on two terminals

Terminal 1 :

iperf3 -s -p 5001

Terminal 2 :

iperf3 -s -p 5002

On the other hand, Client 1 (downloading) runs

iperf3 -c 192.168.1.10 -p 5001 -R

And Client 2 (Uploading) runs

iperf3 -c 192.168.1.10 -p 5002

Both the client command executed at the same time. It is observed that client 2 (uploading) does not get fair share of the bandwidth, rather the upload rate goes down to 0 Mbps at times. While client 1 (downloading) has data rate > 70 Mbps.

Instead of uplpoad-download, I have also tested the scenario where both the clients are downloading simultaniously. This test works perfectly fine (both clients get fare share of the bandwidth (each 30 to 35 Mbps).

I do not have any traffic control rule / QoS rule in any of my router/machines.

Question: What is causing this unfairness of bandwidth sharing in TCP? And what might be a good way to troubleshoot this issue ?

1 Answer 1

0

A server should always connected with a wired interface, not wireless.

It is observed that client 2 (uploading) does not get fair share of the bandwidth

On a wireless, half-duplex medium, all nodes compete for bandwidth. Depending on the nodes, their implementation, the access point and local circumstances (airways, link rates, MU-MIMO parameters, noise and attenuation sources, ...), bandwidth sharing might not be fair at all. What you see is more or less to be expected.

If you want fair sharing, a wired network and sufficient server performance would be a good start.

Not the answer you're looking for? Browse other questions tagged or ask your own question.