There’s at least one case where I can’t confirm Apples motto “It just works!”. Since I’m using my AppleTV (2nd generation), I’m permanently experiencing problems while transmitting data between my Mac running iTunes Home Sharing and the AppleTV itself. Most of the time the Home Sharing resources are simply not visible in the AppleTV’s’ user interface. According to various Apple support items it seems I’m not the only one experiencing those problems, so here’s my solution…
Info: While this article is supposed to address issues using iTunes on OS X, the solution should also work when using iTunes on Windows computers.
Symptoms of the problem
The problems are exposed in the following ways:
- AppleTV recognizes Home Sharing resources only from time to time
- Sometimes no connection can be established though Home Sharing is available
- Once playback is running, it works almost flawless. Then suddenly the connection drops and I don’t see Home Sharing anymore and have no possibility to reconnect
Bonjour uses multicast packets to advertise it’s services throughout the network. Most routers block these packets due to flood control so you need to allow them in your routers’ web config menu. In my case I had to disable “IGMP proxy” and enable both “IGMP Messages” and “Multicast Streams”. But these settings are not turned off by default for no reason: Macs running Snow Leopard (10.6) use a mDNSResponder version that contains a bug addressing multicast packets that will make your Mac unusable when connected to the network. So be sure that you are running the latest version of iTunes and there’s no Mac running Snow Leopard on your network.
Here’s a short description of my home setup. This information is required for the diagnostics:
- AppleTV 2nd generation (720p), wired connection
- Mac Pro, Mac OS X 10.6 (Snow Leopard) + iTunes 11.0.1, wired connection, Home Sharing enabled
- MacBook Pro, Mac OS X 10.8 (Mountain Lion), wireless connection to my AirPort Express
- AirPort Express, serves as Wi-Fi access point, wired connection to the router
- D-Link DIR-652 router.. crap…
Workaround 1st try
Unto the last few weeks, there was a relatively simple workaround: The jailbroken AppleTV running XBMC was working without any issues but the downsides including update problems, iTunes incompatibility and so on persuaded me to reset it to factory defaults. For current versions this won’t work anymore.
Workaround 2nd try
After experiencing the first problems when using Home Sharing and suddenly seeing all of the symptoms happen I described above, I aimlessly changed all settings on the AppleTV to get it back working, but had no success. I later recognized that it might be a issue related to the network service announcement…
I recognized that the problem almost certainly is related to Apple’s Bonjour technology (Zeroconf implementation used for automatic network service discovery in non-segmented networks).
Resolution part one
While I didn’t know for sure what the actual point was, I was confident that somehow my router wouldn’t send all multicast packets under specific circumstances. Then I came across this support post (https://discussions.apple.com/message/19286896#19286896):
„The MAIN things that is needed to Apple TV / Airplay works on WiFi networks is to ENABLE and CONFIGURE the IGMP on WiFi router/controller.“
IGMP is a protocol for organizing multicast address groups. This made sense to me because Bonjour uses multicast packets for service advertisement (which, by the way, is not mentioned in any Apple manual). And this is exactly what went wrong: Multicast streams were blocked by my router.
While connecting to my router and enabling multicast streams, I was sure that it would suddenly work…
From the snow leopard and the multicast issues
…that it didn’t… of course… Because although the Home Sharing menu became visible on the AppleTV almost instantly, the AppleTV could not connect to iTunes to start the actual playback. When I tried to figure out the problems on the Mac Pro I recognized various UI glitches and the system was not responsive at all (-> freeze). Even a hard reset could not resolve the problem. After disabling multicast streams, everything started working again.
That perplexed me somehow, because on my MBP running 10.8 (Mountain Lion) I didn’t have any issues after enabling multicast streams.
The reason is that the mDNSResponder version shipped with 10.6 - which is responsible for the Bonjour services AND unicast DNS resolution - contains a bug. The resulting multicast flooding caused the network to fully collapse which also made my Mac unusable. Apple addressed this problem a while ago in a knowledgebase entry:
According to this post the solution is to add a parameter to some *.plist file that disables Bonjour advertisements (which leads me to my original problem again?!) but this didn’t solve my problem either.
But the document also mentioned the affected versions:
Products Affected Bonjour, Mac OS X 10.6, Bonjour
So maybe my problem would have been solved in Mac OS X 10.7…
And then the lion… and Home Sharing worked
So after the upgrade from 10.6 to 10.7 and re-enabling multicast streams on the router as well as restarting all devices affected, the Home Sharing stuff suddenly work. All devices now recognize advertised services almost instantly and can communicate with each other.