mDNS was defined to achieve zero configuration, with zero configuration being defined as providing the following features:
-
Addressing—Allocating IP addresses to hosts
-
Naming—Using names to refer to hosts instead of IP addresses
-
Service discovery—Finding services automatically on the network
With mDNS, network users no longer have to assign IP addresses, assign host names, or type in names to access services on
the network. Users only need to ask to see what network services are available, and choose from a list.
With mDNS, addressing is accomplished through the use of DHCP/DHCPv6 or IPv4 and IPv6 Link Local scoped addresses. The benefit of zero-configuration
occurs when no infrastructure services such as DHCP or DNS are present and self-assigned link-local addressing can be used.
The client can then select a random IPv4 address in the link-local range (169.254.0.0/24) or use its IPv6 link-local address
(FE80::/10) for communication.
With mDNS, naming (name-to-address translation on a local network using mDNS) queries are sent over the local network using link-local scoped
IP multicast. Because these DNS queries are sent to a multicast address (IPv4 address 224.0.0.251 or IPv6 address FF02::FB),
no single DNS server with global knowledge is required to answer the queries. When a service or device sees a query for any
service it is aware of, it provides a DNS response with the information from its cache.
With mDNS, service discovery is accomplished by browsing. An mDNS query is sent out for a given service type and domain, and any device that is aware
of matching services replies with service information. The result is a list of available services for the user to choose from.
The mDNS protocol (mDNS-RFC), together with DNS Service Discovery (DNS-SD-RFC) achieves the zero-configuration addressing,
naming, and service discovery.