diff --git a/content/concepts/discovery-routing/mDNS.md b/content/concepts/discovery-routing/mDNS.md new file mode 100644 index 00000000..3ae73796 --- /dev/null +++ b/content/concepts/discovery-routing/mDNS.md @@ -0,0 +1,29 @@ +--- +title: "mDNS" +description: "mDNS uses a multicast system of DNS records over a local network to enable peer discovery." +weight: 224 +--- + +## What is mDNS? + +mDNS, or multicast Domain Name System, is a way for nodes to use the multicast +system of DNS records [RFC 6762](https://www.rfc-editor.org/rfc/rfc6762) over a +local network to discover and communicate with nodes. Nodes broadcast topics +they're interested in. The discovery, however, is limited to the peers in the +local network. mDNS is commonly used on home networks to allow devices such as +computers, printers, and smart TVs to find each other and connect. It uses a +protocol called multicast to broadcast messages on the network, allowing devices +to discover each other and exchange information. + +## mDNS in libp2p + +In libp2p, mDNS is used for peer discovery, allowing peers to find and +communicate with each other on the same local network without any configuration. +The basic mDNS node discovery flow begins when a peer starts or detects a +network change and then sends a query message to all peers. The node adds the +response it receives from other peers into a local database. + +To learn more about +definitions, specific fields, and peer discovery, [visit the mDNS libp2p +specification](https://github.com/libp2p/specs/blob/master/discovery/mdns.md). +