Download speed very slow in Ubuntu 20.04.1 while upload speed is perfectly fine over wifi

Im a new Linux user and I am facing this problem with my install. To be very specific, I have tried Ubuntu, Mint and even Kubuntu but this issue persists. The weird part is I am getting the exact same slow download speeds in all the distros which is 1.1Mbps (It should have been 45Mbps up+down) [checked through fast.com], but Im getting the full upload speed. [Using a fiber connection]

Things I have tried -

  • Turning off the power management from this post
  • Turning off IPV6 for that particular interface
  • Updated grub and my system

Here is the output for

ip a

wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.1.47/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s20f3
   valid_lft 86044sec preferred_lft 86044sec 
   valid_lft forever preferred_lft forever

Here is some information about my Network Controller

Network controller: Intel Corporation Device 43f0 (rev 11)
    Subsystem: Bigfoot Networks, Inc. Device 1652
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at 6205274000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi

Also

10.817111] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX203, REV=0x354

To add further, I dual boot Windows 10 and Ubuntu as of now. The wifi works perfectly fine on windows 10. So after trying everything else I tried to connect my phone to my wifi and then created a hotspot from my phone. I then connected my laptop[with Ubuntu] to that hotspot and it works perfectly fine. The only issue is that I cannot keep doing this forever. Please help me out regarding this and do let me know if there is any command that i specifically need to check.

Thanks a lot for your time.


Check your WiFi MTU, using

ip link

or

ip l | grep $(ip r | awk '/default/ {print $5}' ) | awk '{print $2, $4, $5}'

also notice your WiFi interface's name. Your ip a command shows that your WiFi interface is "w1p0s2f3" and your MTU is 1500, which is the cause of your difficulty.

The MTU (Maximum Transmission Unit) is the size of the largest packet that can be sent in a single network transmission. If a packet exceeds the MTU of a link, the data must be split into multiple packets (fragmented). These multiple packets must be sent over the link, received, acknowledged, and reassembled at the far end. If your link is misconfigured, and you have to fragment every packet you send, your actual data transfer rate drops.

Ethernet (wired) networks use an MTU of 1500 bytes.

Due to additional per packet overhead for WiFi (8 bytes PPPoE header), WiFi uses an MTU of 1492.

Your MTU should be set by your DHCP server, check your router's config.

You can set your own MTU (setting does not persist over restarts) with

sudo ip link set dev name mtu 1492

where "name" is the interface name from above.

Here's an example:

walt@squid:~(0)$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp63s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:24:21:7f:e5:1c brd ff:ff:ff:ff:ff:ff
3: wlxf46d04b1790f: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether f4:6d:04:b1:79:0f brd ff:ff:ff:ff:ff:ff
walt@squid:~(0)$   sudo ip link set dev wlxf46d04b1790f mtu 1492
[sudo] password for walt: 
walt@squid:~(0)$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp63s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:24:21:7f:e5:1c brd ff:ff:ff:ff:ff:ff
3: wlxf46d04b1790f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether f4:6d:04:b1:79:0f brd ff:ff:ff:ff:ff:ff

My WiFi "interface name" is "wlxf46d04b1790f".


Alright its totally my fault. The firewall on the router was set to strict and I changed it to be "low" and I'm getting the full bandwidth. Anyways thank you for your time, guys