Sometimes people screw things up by tinkering with caching at the application level or system settings like the MTU and driver options, and then software updates unscrew them.
It's also theoretically possible that Ubuntu had a suboptimal kernel network configuration (things like explicit congestion notification). They might also have tuned the kernel's TCP stack. I believe the conventional wisdom on some of that has changed over the past couple of years.
For example, I noticed a while back that the the defaults set by the kernel developers disagree with those recommended by the Web100 project researchers.
I don't use Ubuntu, but last time I checked, my distro's kernel is set like this by default
net.core.wmem_max = 109568
net.core.rmem_max = 109568
net.ipv4.tcp_wmem = 4096 65536 179776
net.ipv4.tcp_rmem = 4096 87380 179776
And I change it to this:
net.core.wmem_max = 4194304
net.core.rmem_max = 4194304
net.ipv4.tcp_wmem = 4096 65536 4194304
net.ipv4.tcp_rmem = 4096 87380 4194304
Those settings I've been using are a compromise between the defaults and what is recommended by the research I read at:
I'd be curious to see how Ubuntu is set up:
Who knows, maybe I'm massively suboptimizing my own.