It is a set of technologies that automatically creates a usable computer network based on TCP/IP when computers or network peripherals are interconnected. It does not require manual operator intervention or special configuration servers for Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS).
Each service instance is described using a DNS SRV (RFC 2782) and DNS TXT (RFC 1035) record. A client discovers the list of available instances for a given service type by querying the DNS PTR (RFC 1035) record of that service type’s name; the server returns zero or more names of the form “
Multicast DNS (mDNS) is a protocol that uses packets similar to unicast DNS except sent over a multicast link to resolve hostnames. Each host listens on the mDNS port, 5353, and resolves requests for the DNS record of its .local hostname (e.g. the A, AAAA, CNAME) to its IP address. When an mDNS client needs to resolve a local hostname to an IP address, it sends a DNS request for that name to a well-known multicast address; the computer with the corresponding A/AAAA record replies with its IP address. The mDNS multicast address is 18.104.22.168 for IPv4 and ff02::fb for IPv6 link-local addressing.
DNS service discovery (DNS-SD) requests can also be sent over a multicast link, and it can be combined with mDNS to yield zero-configuration DNS-SD. It still uses DNS PTR, SRV, TXT records to advertise instances of service types, domain names for those instances, and optional configuration parameters for connecting to those instances. But SRV records can now resolve to multicastable .local domain names, which mDNS can resolve to local IP addresses.