Guys, this is a very old and erratic bug in the Network Extension (I believe). Here are some references:
The problem with this issue is that it comes and goes. It becomes more severe if you have a docking station with ethernet, VPN or a network filter (little snitch or lulu). Apple developers have been ignoring this issue deliberately for years. YEARS. The internet is FLOODED with people complaining about this (networking timeouts), but because this issue is not easily reproducible, and even worse, because this issue can at times only affect the speed of the connection (which can be blamed on other factors), no one hammered Apple to take it seriously. I know many people who abandoned Mac because of this.
If you want to know whether this issue is happening, while the internet/network is slow, just run a ping on your router. You'll get something like this:
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 164 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=2306.502 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1300.413 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=295.091 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.242 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=1830.929 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=2687.323 ms
64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=1685.573 ms
64 bytes from 192.168.1.1: icmp_seq=7 ttl=64 time=680.508 ms
64 bytes from 192.168.1.1: icmp_seq=8 ttl=64 time=0.857 ms
64 bytes from 192.168.1.1: icmp_seq=9 ttl=64 time=0.929 ms
64 bytes from 192.168.1.1: icmp_seq=10 ttl=64 time=197.700 ms
64 bytes from 192.168.1.1: icmp_seq=11 ttl=64 time=2764.140 ms
64 bytes from 192.168.1.1: icmp_seq=12 ttl=64 time=1762.121 ms
64 bytes from 192.168.1.1: icmp_seq=13 ttl=64 time=756.605 ms
64 bytes from 192.168.1.1: icmp_seq=14 ttl=64 time=0.983 ms
64 bytes from 192.168.1.1: icmp_seq=15 ttl=64 time=2152.170 ms
64 bytes from 192.168.1.1: icmp_seq=16 ttl=64 time=1150.504 ms
64 bytes from 192.168.1.1: icmp_seq=17 ttl=64 time=1859.144 ms
64 bytes from 192.168.1.1: icmp_seq=18 ttl=64 time=854.277 ms
64 bytes from 192.168.1.1: icmp_seq=19 ttl=64 time=0.943 ms
64 bytes from 192.168.1.1: icmp_seq=20 ttl=64 time=0.790 ms
64 bytes from 192.168.1.1: icmp_seq=21 ttl=64 time=0.545 ms
64 bytes from 192.168.1.1: icmp_seq=22 ttl=64 time=1.522 ms
Request timeout for icmp_seq 2564 bytes from 192.168.1.1: icmp_seq=23 ttl=64 time=3073.333 ms
64 bytes from 192.168.1.1: icmp_seq=24 ttl=64 time=3373.110 ms
Meaning, you'll get timeouts and unstable networking randomly. Notice how the time value goes up and down like crazy. This is why your internet is slow!
A restart might solve the problem temporarily. Another reason why many people just shrug it off.
I would've built the networking kernel module and debugged it myself, but this seems to be an issue with the Network Extension (since it's related to the OS firewall, filters, etc)... which is not open source! If it were open source, I swear I would happily build it in debug mode and fix it myself... this is how bad this is!
I think the only question that matters here is: How can we push Apple to do something about this? I'm happy to run a debug session with a developer to fix this... but they don't seem to want to take this seriously! Wtf do we do?!
[Edited by Moderator]