n-Stream/n-Serve device discovery problems with iOS 4.3

Posted by: TJ on 16 May 2011

Hi All,

We are currently looking into an issue with the latest Apple iOS update that prevents our apps from discovering our products in some setups.

 

Our apps (and all UPnP apps for that matter) rely on broadcasting a discovery message to the local network and listening to the responses to determine which devices are present on the network. At a network level something called IGMP is used. Previous versions of iOS used IGMP version 2 which is supported by virtually all home networking hardware (routers, switches etc). The latest iOS has changed this to IGMP v3 which is bad news for compatibility because there are various bits of network equipment  that don't support it. 

 

Some people have reported that device discovery stops working after updating their iPhone/iPod/iPad and we believe this change to how Apple deal with network broadcast messages to be the cause.

 

For now the best solution is to change the Naim app to use manual rather than automatic connection. Doing this takes device discovery out of the equation and will get the app running again. In setup select "Manual connection" then put in the IP address of the product you are trying to connect to.

 

Another solution is to change the network switch/router/access point you use but for many this is not practical.

 

Hopefully we can find another workaround but for now it looks like manual connection mode is the way forward. I will update you all if the situation changes

 

Regards

Tom

Posted on: 16 May 2011 by KRM
Groan!



Do you mean 4.3.3? I currently have have 4.3.2, which am not rushing to update!



Is there any way of knowing if I will be affected, before I update?



Does this impact other streamers (Sonos, Linn etc), or is it just Naim?



Keith
Posted on: 16 May 2011 by Tog
It would be interesting to see if systems using Airport Extremes are equally affected.







No updates for me until I know the answer.







Tog
Posted on: 16 May 2011 by TJ

I think the change happened when upgrading to 4.3, so if you are already running 4.3.x then upgrading to 4.3.3 should not change things for you.

 

I would expect this change in iOS behaviour to impact any app that uses UPnP discovery to find devices on the network.

 

Most network kit supports IGMP v3 so I really don't expect too many people to be affected by this but we have seen a couple of installations that this issue has caused problems with so I thought I'd flag it up.

Posted on: 16 May 2011 by TJ

Tog, I've got two airport express access points at home and have not noticed any issues at all. Also I think if you are already on 4.3.x you would have seen the problem by now anyway.

Posted on: 16 May 2011 by 0rangutan
No problems on an Airport Extreme + Express network here.
Posted on: 17 May 2011 by Simon-in-Suffolk
Tom,

No problems with Airport Express here..on latest IOS.

Of course uPnP multicasts and not broadcasts discovery messages, hence why IGMP is used, you got me scratching my head on that one..



But anyway the IGMP v3 protocol requires the support of v2 reports and queues for interoperability are you saying you believe the latest apple software is not validly supporting IGMP? In which case it would be a bug and I'd expect it to be fixed.

It would be surprising however as many commercial L2 switches such as from Cisco only snoop to V2, so using v3 would increase your router load, assuming that supported v3.



But I can say on my cascaded cisco router and switch and netgear (consumer) switch, I have no problem between iTunes server and AppleTV (on a PC) and wireless device (iPhone and iPad)  all using airport express and discovering each other.



Simon

Posted on: 17 May 2011 by TJ

I think iOS does validly support IGMP but when doing a join of a multicast group it now sends a v3 report instead of v2 so If the switch doesn't support v3 then multicast doesn't work properly

Posted on: 17 May 2011 by Simon-in-Suffolk
Ok, but surely You either disable snooping on the switch if it only supports V2 or V1 and let the switch flood the multicasts  or better you tell the network gateway/router only to work at IGMP V2 or V1, which forces the hosts on the network to work at that level in which case your switch snooping will work, as the query responses will tell the hosts that V2 is supported and to be compliant any Apple IOS host would have to work at that level. If not it's an apple bug.

Simon



Posted on: 17 May 2011 by Tog
Ok Simon you explain that to his Steveness Tog
Posted on: 17 May 2011 by Simon-in-Suffolk
Tog, in short if multicasting is used, it's usually down to the router on your network to keep a list of multicast groups, and to know which devices are in or out of those groups. The advantage of multicast is that one device can send data at the same time to more than one device, as long as those devices have all joined the same multicast group. Ideal for streaming to multiple devices at once etc.



Now there are three versions of IGMP ( the multicast protocol) and there are rules governing how the latest version, version 3, needs to work so it can communicate with other hosts at differing levels. Hence this IOS situation shouldn't be a problem if it's working correctly.







The other key function of the router is that it listens to all the devices on the network or multicast group and uses the lowest version of IGMP it hears or told to use.







Therefore if you tell your router to only support V2, then if it hears a v3 message, it will respond with a v2 message, again if the router is not working correctly this could cause a problem.







Snooping is the term used for switches. Switches job is to send receive frames on the correct ports. With snooping on, it can listen to the IGMP packets and join or leave devices from the multicast group, hence streaming the multicast to the correct devices con currently.







If however you have let your router run at V3 to hosts using V3 and the switch only supports V2 (the router doesn't treat the switch as a host) then switch won't understand the IGMP messages and won't build it's list of ports it needs to broadcast the multicast data to, so the streaming won't work.



There is often a failsafe and you let your switch flood the multicasts regardless of which group they are in. Ie multicast is sent to all ports, but that can load a network badly, but in the home environment would be fine. Of course you are reliant on the switch to do this and it might not be possible, but many low spec switches like netgear unmanaged devices default to flooding muticast frames.







Hopefully that makes some sense, one finger typed from my iPad







Simon



Posted on: 23 May 2011 by Jeff888

Ive tried the manual connect and it doesnt work.

 

Interesting that other IPADS apps still  discover the HDX.

 

How do we get the old clunky app back? At least that worked?

 

Posted on: 24 May 2011 by okli

I had the problem that after I upgraded everything on my side (iTunes, iOS, nstream) to the latest versions my iphone4 was not able to find my UQ anymore. On the next day I read this thread from Tom and wanted to set the connection manual - so went home after work, started n-stream with the intention to fiddle all settings manually, but strangely my UQ was found immediately. Nothing changed on my network / iphone / UQ - no reboots of the components whatsoever - it simply started to work again by miracle. The only change was that my NAS goes to sleep at night and starts again on the next morning, but I don't think this relates something to the issue...