You know those pesky slow Wi-Fi issues that have been plaguing iOS 8 and OS X Yosemite? Well, co-founder and CEO of Colorado Springs-based Quantum Metric and all-around good guy Mario Ciabarra appears to have found the root cause and a workaround to keep your Wi-Fi running happily until Apple finally fixes the problem. He wrote up a trending post on Medium titled "WiFried: iOS 8 WiFi Issue" about his find and let us know so we could pass the info along to our readers.
I won't go into the deep, dark details -- you should absolutely read Ciabarra's post. But the key points are these: the issue is due to the use of Apple's Wireless Direct Link (AWDL) that's used for AirDrop, AirPlay and gaming connections. To quote Ciabarra, "I'll go out on a limb and say the WiFi issues are because of Apple's choice of using Bonjour over AWDL and that, given the constraints of the WiFi hardware, this will be difficult to get right."
Ciabarra has been able to reproduce the WiFi performance issues (see the video below) and even offers a way for readers to reproduce it themselves. The issue can also occur on nearby devices simply by waking an iOS device; doing so causes the device to browse for other devices and advertise itself to them, and that can slow down devices in the near vicinity.
The solution is to disable AirDrop and doing AirPlay directly with other devices. Unfortunately, the fix that Ciabarra has created only works on jailbroken iOS devices but allows you to enable and disable your device-to-device Wi-Fi and Apple Wireless Direct Link under the AirDrop settings in Control Center. Hopefully Apple will choose to put this same fix into a future version of iOS 8 so that users who aren't using the features can get full-steam-ahead Wi-Fi.
Ciabarra also discovered that this is the same root cause for the issue on Mac OS X Yosemite. Fortunately, you can resolve the Yosemite Wi-Fi issues with a quick Terminal command:
sudo ifconfig awdl0 down
That will take AirDrop and AWDL down, but hey, you'll have fast Wi-Fi. To restore AirDrop and AWDL, here's what you want to type into Terminal:
sudo ifconfig awdl0 up
We can only hope that Apple decides to really fix the problem for both iOS and OS X soon, or at least provides a way for users to toggle the services on and off. Many thanks to Mario Ciabarra for digging into the issue and finding a workaround.