buffer bloat
This is a complex topic, if you want more than my simplistic explanation below, please check out https://www.bufferbloat.net/projects/
Basically, the internet was designed around the idea that if you send too much data, the extra will get dropped and the server will adapt to this and send data slower, at a rate that your service can support. What has happened is that products like home routers, or the routers your internet provider use, will queue up that data far more than they should. This means the 'lines' get really long causing delays and also preventing the automatic processes to slow data to bearable speeds to fail.
A classic example would be trying to download a big file while someone plays an online game. The buffers 'Bloat' up as the big download jams up the internet connection and then person playing the online game then get's jammed up in a excessively long queue. The download speed fluctuates while the gamer 'lags out' .
What should happen is that the excess download data get's dropped causing the remote side to dial back a bit.
Even better, use AQM either provided by your ISP or hosted in your home router to improve.