I can't know if this answer will help you, but I'm not certain this is entirely due to the OS.
In case you ISP "maintains" a bufferbloat to get better download speeds "on the paper", you can try and limit it slightly with traffic shaping. The overall goal is to never have a buffer accumulate by your ISP (it could be at the home router or anywhere farther away) for outgoing traffic nor incoming traffic. That way interactive traffic doesn't have to wait too much in a long data queue. While this is fine for upload where your system emitting packets has total control (and can choose to delay or drop traffic if there's too much), results are not guaranteed for download since you're at the end of the buffer and actions can't have so direct results.
This involves Linux Traffic Control (using tc
) which is very difficult to grasp. Having good overall network concepts is a prerequisite to use it manually. The download part is even more difficult to implement and requires setting up an Intermediate Functional Block virtual (and quasi-invisible) interface.
Fortunately there's a tool implemented in shell called wondershaper
that is very simple to setup and handles everything. You have to know your bandwidth maximum download and upload (using various online speed tests) and provide it to wondershaper
(to be run as root user or with sudo
), for example (as provided by wondershaper -h
, quite low) if your download is 1Mbits/s and upload 512Kbits/s:
wondershaper -a eth0 -d 1024 -u 512
There are additional tweaking options to favor some kind of traffic over other kinds.
If you take a packaged version, depending on your distribution, be careful. For example Debian (and thus Ubuntu) surprisingly still ships a version based upon 1.1a from original lartc.org, which was the last release there in 2002, and lacks features compared to the 1.2 - 1.4.1 fork.
There's probably better available, like using newer algorithms (fq_codel...) which wondershaper
isn't doing yet.
some refs:
https://www.bufferbloat.net/projects/
https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/
https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm
http://www.dslreports.com/speedtest (which includes latency results and should be checked before and after applying settings)