I never realized how often I google and how much I rely on sub-second response times until I upgraded my Macbook Pro to OS X Yosemite. After muddling through issues like upgrading VMWare and a few other items and fixing my terminal emulation, I couldn’t figure out why I was in such a bad mood.
Then it hit me. My Google searches while I had been doing that had been slow. I would type something in and Google’s search results page either would not appear for about 3 to 6 seconds, or it would half-appear and then the search results would only show up after 3 to 6 seconds.
There is so much garbage SEO bait out there about “what to do about Yosemite wifi problems” so I’m not going to bore you with the details of my investigation and I’m just going to cut straight to the chase:
I put a network analyzer on my wifi. It turns out that the problem appears to be duplicate packets arriving on the WiFi network card. I switched to Ethernet via the Thunderbolt adapter and the problems instantly went away.
Here’s what it looks like in Wireshark….
What happens is the network card transmits an acknowledgement. Then there’s a 2.7 second freeze where nothing happens. And then a few packets arrive followed by a flood of duplicate packets.
The duplicates are both duplicate application data packets along with duplicate TCP acknowledgements.
Scrolling further down you can see the duplicates increase and Wireshark starts labeling them “TCP Spurious Retransmission”, implying an issue with a network interface on the network.
Another test shows exactly the same thing. A 3.1 second delay where I’ve highlighted in blue and then a few good packets and the duplicates start.
And then the frequency increases…
Deleting and re-adding your wifi network or network card device does not fix this. Neither does some of the other suggestions out there like turning off bluetooth, joining a 2.4 Ghz network instead of 5Ghz, etc…etc..
To me this seems to be a driver issue where the network card freezes and when it comes out of the freeze it’s sending the OS large numbers of duplicate packets. It’s curious that the freeze is around 3 seconds each time.
This test was done on a: MacBook Pro (Retina, 15-inch, Early 2013). The only other software running while this test was being done was Chrome, Excel, X11, Wireshark, Terminal and Keyboard Maestro (a keyboard macro utility).
Writing this post after the test was done on ethernet and I can feel my sanity already returning.
Apple please fix. Thanks.