0

I have a PC with Asus USB-AC58 wireless adapter running Manjaro and a laptop running Ubuntu. Laptop has Intel Wi-Fi 6 AX201 wireless adapter with maximum speed of 2.4 Gbits/s (I suppose, it's a sum of 2.4 and 5 Ghz bands' speed), but my RT-AC65P router supports only ac standard with up to 1300 Mbits/s. All three devices work in 5GHz mode.

Here are some speed measurements:

  • Downloading MS Visual Studio 2013.iso image - both device have download speed of ~11.3 MB/s (94.3 Mbits/s), according to Firefox. And 100 Mbit/s is internet provider's limit.
  • iperf measurements:
    PC server, laptop client:
# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 192.168.50.100 port 5001 connected with 192.168.50.11 port 60118
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.2 sec   151 MBytes   124 Mbits/sec

Laptop server, PC client:

# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 192.168.50.11 port 5001 connected with 192.168.50.100 port 43284
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec   252 MBytes   209 Mbits/sec

My expectation was to see 867 Mbits/s that allowed by AC58 adapter. Am I misunderstand something? And why is there a 75 Mbits/s difference when PC and laptop change server/client roles for iperf?

Additionally, I have strange USB characteristics determined by Manjaro for Asrock B450 Steel Legend motherboard:

# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 4: Dev 6, If 0, Class=Vendor Specific Class, Driver=rtl88x2bu, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 7: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

lsusb -v -s 3:6

Bus 003 Device 006: ID 0b05:19aa ASUSTek Computer, Inc. ASUS USB-AC58 USB Wireless adapter Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 ...

It seems that Dev 6 at Port 4 (which should be Wi-Fi adapter as it uses rtl88x2bu driver) uses USB2, however it's actually connected to USB3. My motherboard has only 2 USB2 hubs, and one of them is not connected at all, and second is connected to USB-mouse. All other USB ports should be USB3.1 gen1 or gen2. Anyway, my Wi-Fi speed doesn't reach even 480 MB/s, what is supported by USB2. My be there is a USB/chipset driver problem?

qloq
  • 205
  • 2
  • 9

1 Answers1

0

my RT-AC65P router supports only ac standard with up to 1300 Mbits/s.

Before iperf, you should check the negotiated link rate of each interface. On Linux, run iw wlan0 link to see the transmit & receive speeds at that particular moment. That, not the advertised speed on the box, is what you should be basing your iperf measurement expectations on. (See also iw phy0 info to get a summary of the actual hardware capabilities.)

For example, the maximum speed of Wi-Fi 5 can only be achieved with 80 MHz (or maybe even 160 MHz) wide channels. If your devices are only able to use a 40 MHz wide channel, you'll get only half the speed. The advantage of the 5 GHz band isn't that it's somehow inherently faster, but that there's more space for wider channels (e.g. a 80 MHz channel literally couldn't fit in the allocated 2.4 GHz band).

The shown speed is again the raw Wi-Fi link rate, not the "useful" rate you get when accounting for overhead like IP headers and such. Expect real TCP transfers to reach at most 75% (a percentage I just made up) of the link rate.

I have a PC with Asus USB-AC58 wireless adapter [...] Laptop has Intel Wi-Fi 6 AX201 wireless adapter

Finally, you mention that both the PC and the laptop are connected over Wi-Fi to the same access point and on the same channel. This more than halves the possible speed you'll be able to reach – not only does every packet have to travel two hops (PC→router→laptop), but the devices have to take turns between sending some data "PC→router", then relaying it "router→laptop", and only then sending more data "PC→router" again.

And why is there a 75 Mbits/s difference when PC and laptop change server/client roles for iperf?

The difference isn't in roles, but in transfer direction. By default the iperf3 client is the one sending data – so you actually have 124 Mbps "laptop→PC" and 209 Mbps "PC→laptop".

It is normal for Wi-Fi speed to be asymmetric, even under stable conditions – e.g. a device might support receiving 2 streams but not sending.

It seems that Dev 6 at Port 4 (which should be Wi-Fi adapter as it uses rtl88x2bu driver) uses USB2, however it's actually connected to USB3.

xHCI controllers can support USB1.1/USB2 devices of all speeds. Only older motherboards used companion controllers (the same port being routed to EHCI for 2.0 devices or xHCI for 3.0 ones), but most modern ones will route all devices to the same xHCI controller regardless of their negotiated speed.

Try lsusb.py for a nicer-looking list of the hubs and their devices.

Anyway, my Wi-Fi speed doesn't reach even 480 MB/s, what is supported by USB2.

That's 480 Mbps, not 480 MB/s, and it's again the raw signalling rate of the USB link (which is also packet-based) – the actual maximum data rate would be around 420 Mbps at most, with ~300 Mbps being more realistic.

grawity
  • 501,077