Local Network Privacy FAQ-3

This thread has been locked by a moderator.
This post is part of the Local Network Privacy FAQ.

What operations require the multicast entitlement?


The general rule is that sending or receiving multicast or broadcast traffic requires the multicast entitlement (com.apple.developer.networking.multicast). Common scenarios include:
  • Sending a UDP unicast — no

  • Sending a UDP multicast — yes

  • Sending a UDP broadcast — yes

  • Receiving an incoming UDP unicast — no

  • Receiving an incoming UDP multicast — yes

  • Receiving an incoming UDP broadcast — yes

IMPORTANT Not all of the above-mentioned restrictions are currently enforced:
  • Receiving UDP multicasts or broadcasts does not currently require the multicast entitlement. This may change in a future update which is why we recommend that you apply for and enable the entitlement if you either send or receive multicasts or broadcasts.

  • The current restriction on sending multicasts and broadcasts applies to NWConnectionGroup but not to BSD Sockets. We hope to change that in a future update (r. 68104781).

Update The second issue is resolved in iOS 14.5, where BSD Sockets now enforces the multicast entitlement as well.

Additionally, some Bonjour operations require the multicast entitlement:
  • Working with arbitrary Bonjour service types — yes

  • Browsing for advertised service types (1) — yes

(1) Using _services._dns-sd._udp.local., as described in QA1337 Discovering all advertised Bonjour service types.

Back to the FAQ
Up vote post of eskimo
2.1k views