mDNS and DNS-SD
mDNS (Multicast DNS, RFC 6762) lets devices resolve names on a local network with no DNS server, by multicasting queries to every device on the link. DNS-SD (DNS-Based Service Discovery, RFC 6763) uses DNS records to list named instances of a service, such as printers or media receivers. Together they provide the zero-configuration discovery behind Apple's Bonjour.
How it works
An mDNS query goes to the multicast address 224.0.0.251 (FF02::FB for IPv6) on UDP port 5353, and the device that owns the name answers. Names end in .local, and the traffic stays on the local link.
DNS-SD layers service discovery on top: a client asks for PTR records of a service type such as _ipp._tcp, gets back named instances, then reads SRV and TXT records for each instance's host, port, and settings. It works over mDNS on a local network or over ordinary unicast DNS.
Why it matters
mDNS and DNS-SD are why a laptop finds a printer or a phone finds a TV with no setup. Apple platforms build them in as Bonjour, Linux commonly uses Avahi, and Android exposes them through its network service discovery API.
Their reach is one network: devices must share the same link, typically the same Wi-Fi access point, and discovery only finds and addresses a service. Authenticating it and calling it are left to the application.
How it relates to Offline Protocol
Offline Protocol's service discovery answers a wider question. Devices advertise capabilities across the mesh, up to 8 hops, including devices that never share a network, and discovery comes with signed request and response invocation.
The two fit together: mDNS and DNS-SD remain the right tool for finding devices on one local network, and a mesh covers places with no shared network. See service discovery for the general idea.
Frequently asked questions
Is Bonjour the same as mDNS?
Bonjour is Apple's implementation of zero-configuration networking. It uses mDNS to resolve names and DNS-SD to find services, and its mDNSResponder implementation is open source.
Does mDNS work across subnets or the internet?
No. mDNS is link-local: queries are multicast on the local link and are not routed to other networks. Discovery across subnets needs a discovery proxy or unicast DNS-SD.
What does a mesh add over mDNS?
Reach and invocation. A mesh can carry service announcements across several hops and between devices that share no network, and Offline Protocol pairs discovery with signed request and response calls.

