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.

Discover services beyond one network. 350,000+ devices, 140+ countries.