Content deleted Content added
Recycle ref for RFC3927 |
m HTTP to HTTPS for SourceForge |
||
(8 intermediate revisions by 7 users not shown) | |||
Line 10:
Computer networks use numeric [[network address]]es to identify communications endpoints in a network of participating devices. This is similar to the [[Plain old telephone service|telephone network]] which assigns a string of digits to identify each telephone. In modern [[networking protocol]]s, information to be transmitted is divided into a series of [[network packet]]s. Every packet contains the source and destination addresses for the transmission. [[Network router]]s examine these addresses to determine the best network path in [[Packet forwarding|forwarding the data packet]] at each step toward its destination.
Similarly to telephones being labeled with their telephone number, it was a common practice in early networks to attach an address label to networked devices. The dynamic nature of modern networks, especially residential networks in which devices are powered up only when needed, desire dynamic address assignment mechanisms that do not require user involvement for initialization and management. These systems automatically give themselves common names chosen either by the equipment manufacturer, such as a brand and model number, or chosen by users for identifying their equipment. The names and addresses are then automatically entered into a [[directory service]].
Early computer networking was built upon technologies of the telecommunications networks and thus protocols tended to fall into two groups: those intended to connect local devices into a [[local area network]] (LAN), and those intended primarily for long-distance communications. The latter [[wide area network]] (WAN) systems tended to have centralized setup, where a [[network administrator]] would manually assign addresses and names. LAN systems tended to provide more automation of these tasks so that new equipment could be added to a LAN with a minimum of operator and administrator intervention.
Line 40:
Use of either NetBIOS or LLMNR services on Windows is essentially automatic, since using standard DNS client APIs will result in the use of either NetBIOS or LLMNR depending on what name is being resolved (whether the name is a local name or not), the network configuration in effect (e.g. DNS suffixes in effect) and (in corporate networks) the policies in effect (whether LLMNR or NetBIOS are disabled), although developers may opt into bypassing these services for individual address lookups.
The mDNS and LLMNR protocols have minor differences in their approach to name resolution. mDNS allows a network device to choose a ___domain name in the [[.local|local]] DNS [[namespace]] and announce it using a special multicast IP address. This introduces special semantics for the [[top-level ___domain]] ''local'',<ref>{{Citation | publisher = IETF | type = electronic mail message | url = http://www1.ietf.org/mail-archive/web/ietf/current/msg37126.html | title = Re: Last Call: 'Linklocal Multicast Name Resolution (LLMNR)' to Proposed Standard | access-date = 2006-02-10 | archive-url = https://web.archive.org/web/20081207202354/http://www.ietf.org/mail-archive/web/ietf/current/msg37126.html | archive-date = 2008-12-07 | url-status = dead }}</ref> which is considered a problem by some members of the IETF.<ref>{{Citation | publisher = IETF | type = electronic mail message | url = http://www1.ietf.org/mail-archive/web/ietf/current/msg37773.html | title = Re: Summary of the LLMNR Last Call | access-date = 2006-02-10 | archive-url = https://web.archive.org/web/20081207202402/http://www.ietf.org/mail-archive/web/ietf/current/msg37773.html | archive-date = 2008-12-07 | url-status = dead }}</ref> The current LLMNR draft allows a network device to choose any ___domain name, which is considered a security risk by some members of the IETF.<ref>{{Citation | publisher = IETF | type = electronic mail message | url = http://www1.ietf.org/mail-archive/web/ietf/current/msg37740.html | title = Summary of the LLMNR Last Call | access-date = 2005-11-11 | archive-url = https://web.archive.org/web/20081207202357/http://www.ietf.org/mail-archive/web/ietf/current/msg37740.html | archive-date = 2008-12-07 | url-status = dead }}</ref> mDNS is compatible with DNS-SD as described in the next section, while LLMNR is not.<ref>{{Citation | publisher = IETF | type = electronic mail message | url = http://www.mhonarc.org/archive/html/ietf/2005-08/msg00494.html | title = More details on the differences}}</ref>
==Service discovery==
Line 60:
====DNS-SD with multicast====
mDNS uses packets similar to [[Domain Name System#DNS message format|unicast DNS]] to resolve hostnames except they are sent over a multicast link. Each host listens on the mDNS port, 5353, transmitted to a well-known multicast address and resolves requests for the [[
DNS Service Discovery
====Support====
DNS-SD is used by Apple products, most network printers, many Linux distributions including [[Debian]] and [[
===UPnP===
Line 71:
====SSDP====
[[Simple Service Discovery Protocol]] (SSDP) is a UPnP protocol, used in [[Windows XP]] and later. SSDP uses HTTP notification announcements that give a service-type [[
====DLNA====
Line 80:
===AllJoyn===
[[AllJoyn]] is an open-source software stack for a myriad of devices, ranging from IoT devices to full-size computers, for discovery and control of devices on networks (Wifi, Ethernet) and other links (Bluetooth, ZigBee, etc.). It uses mDNS and [[HTTP]] over UDP and other protocols. The project has however not been active since 2016, and is not recommended to use for new projects.<ref>{{ Citation | title = Error compiling with modern gcc | url = https://github.com/alljoyn/core-alljoyn/issues/1 | access-date = 2025-01-31 }}</ref>
==Standardization==
Line 94:
==Security issues==
Because mDNS operates under a different trust model than unicast DNS—trusting the entire network rather than a designated DNS server, it is vulnerable to [[spoofing attack]]s by any system within the same [[broadcast ___domain]]. Like [[
==Major implementations==
Line 104:
===Avahi===
[[Avahi (software)|Avahi]] is a Zeroconf implementation for [[Linux]] and [[
Avahi also implements binary compatibility libraries that emulate Bonjour and the historical mDNS implementation Howl, so software made to use those implementations can also utilize Avahi through the emulation interfaces.
Line 116:
===Link-local IPv4 addresses===
Where no DHCP server is available to assign a host an IP address, the host can select its own [[link-local address]]. Using a link-local address, hosts can communicate over this link but only locally; Access to other networks and the Internet is not possible. There are some link-local IPv4 address implementations available:
* Apple Mac OS and MS Windows have supported link-local addresses since [[Windows 98]] and [[
* [[Avahi (software)|Avahi]] contains an implementation of IPv4LL in the avahi-autoipd tool.
* Zero-Conf IP (zcip)<ref>{{Citation | url =
* [[BusyBox]] can embed a simple IPv4LL implementation.
* Stablebox,<ref>{{Citation | url = http://code.google.com/p/stablebox/ | title = Code | contribution = Stable box}}</ref> a fork from Busybox, offers a slightly modified IPv4LL implementation named llad.
Line 143:
==External links==
* {{Citation | url =
* {{Citation | url =
* {{Citation | url = http://mono-project.com/Mono.Zeroconf | title = Mono.Zeroconf | publisher = Mono project}}, a cross platform (Linux, MS Windows, Apple Mac), unified Mono/.NET library for Zeroconf, supporting both Bonjour and Avahi.
* {{Citation | url =
* {{Citation | url = http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt | title = Multicast DNS | last = Cheshire | first = Stuart | type = draft}}.
* {{Citation | url = http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt | publisher =
* {{Citation | url = http://video.google.com/videoplay?docid=-7398680103951126462&q=Google+techtalks | title = Zeroconf | type = tech talk | first = Stuart | last = Cheshire | format = video | access-date = 2006-03-08 | archive-url = https://web.archive.org/web/20080302221751/http://video.google.com/videoplay?docid=-7398680103951126462&q=Google+techtalks | archive-date = 2008-03-02 | url-status = dead }}.
* {{Citation | url = http://www.zeroconf.org/ | title = Zeroconf | first = Stuart | last = Cheshire}}, including Internet drafts.
|