RinCat / RTL88x2BU-Linux-Driver

Realtek RTL88x2BU WiFi USB Driver for Linux
GNU General Public License v2.0
1.26k stars 197 forks source link

Intial Connection to a new IP extremly slow even tough download & upload speed is fast #134

Open ZagButNoZig opened 2 years ago

ZagButNoZig commented 2 years ago

With the latest git driver and an Archer T3U Plus I get pretty fast internet speed (almost as fast as my phone over WiFi). image

But loading a new web page is extremely slow. By extremely slow I mean easily 5 to 10 seconds or more. I also tried to ping google.com and found that after executing the ping command the first messages takes easily 8 seconds to appear even tough it says that the packet only took a few ms to send. image

As you can see the total time of the packets isn't even close to the total time the ping command shows near the bottom. So I think there is something wrong with the driver sending packets.

I have also checked the Network tab in Firefox when loading a web page and each get request takes multiple seconds. image

But I think this time comes from the driver not sending the message in time, as my tested ping is very low and over ethernet or my phone I get much faster load times.

The problem

So what I think is happening there is that the initial connection to a new ip takes a long time for some reason but after that the wifi driver performs as expected (even faster than the windows driver :)) that would explain why my speedtest is fast but loading web pages is so slow. I also noticed the speedtest takes much longer to start then over ethernet.

I am running :

image

Here is my output of lsusb -v:

Bus 001 Device 004: ID 2357:0138 TP-Link 802.11ac NIC
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x2357 TP-Link
  idProduct          0x0138 
  bcdDevice            2.10
  iManufacturer           1 Realtek
  iProduct                2 802.11ac NIC
  iSerial                 3 123456
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0035
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           5
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x87  EP 7 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x08  EP 8 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0

Let me know if you need any further information and thanks for the great work on this driver!

RinCat commented 2 years ago

Hi, maybe you can try ping 1.1.1.1 8.8.8.8 9.9.9.9 and see if the issue still exists. The driver itself do not tracking connections, so this is probably more of a network configuration issue. For example, your first DNS resolution fails or the MTU is too large causing a retransmission.

ZagButNoZig commented 2 years ago

This is when pinging my local router. I get some pretty fishy times. And again only the first few packets are really slow and the thing gradually speeds up.

icmp_seq=1 ttl=64 time=1547 ms
icmp_seq=2 ttl=64 time=544 ms
icmp_seq=3 ttl=64 time=2312 ms
icmp_seq=4 ttl=64 time=1287 ms
icmp_seq=5 ttl=64 time=273 ms
icmp_seq=6 ttl=64 time=1794 ms
icmp_seq=7 ttl=64 time=768 ms
icmp_seq=8 ttl=64 time=82.0 ms
icmp_seq=9 ttl=64 time=2.30 ms
icmp_seq=10 ttl=64 time=9.61 ms
icmp_seq=11 ttl=64 time=5.07 ms
icmp_seq=12 ttl=64 time=2.78 ms
icmp_seq=13 ttl=64 time=4.79 ms
icmp_seq=14 ttl=64 time=9.33 ms

image Similar results when pinging 1.1.1.1(pinging from Europe).

I let ping ROUTER_IP run for a bit longer and it seams like roughly 20% of packets are really slow (500-2000ms) and the rest is below 20ms. Don't think its because of Wifi, I am roughly 3m away from the router (Can confirm this by using USB Tethering with my phone where I have low ping with low mdev). Pinging my local router: Getting pretty high mdev using the Archer image

RinCat commented 2 years ago

Maybe you can try https://www.wireshark.org/ to see if there is any issue on the connections. Also check dmesg.

ZagButNoZig commented 2 years ago

Ok so... I don't know what changed because I don't remember changing anything but now for some random reason the stability issue is fixed. image

But for same random reason the overall connection speed is much lower : image Tested on my phone to make sure its not the routers fault and indeed it seems to only have slowed down with the Archer T3U Plus. Anyway, the situation is much better now, as my internet is now slower but still reasonably fast but much much more consistent. I don't know if there is a way to fix the slower speed though.

RTW: IEEE 802.11 element parse ignored unknown element (id=108 elen=2) getting a lot of this or similar in dmesg.

They always appear in the same pattern:

image

RinCat commented 2 years ago

I guess the wifi configuration may be a little incompatible. You can try to change the channel. The unknown element is caused by having an unsupported extension protocol, which can usually be safely ignored.

ZagButNoZig commented 2 years ago

Thanks!

I will have to test a bit more, it seems to be stable at max speed currently but I will have to do further testing. I find it pretty funny that this driver is faster and more stable than the official windows driver, wonder if that is due to the custom patches or linux networking just being better. I will close the issue once I'm done.