Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Zero-configuration networking
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Service discovery== Name services such as mDNS, LLMNR and others do not provide information about the type of device or its status. A user looking for a nearby printer, for instance, might be hindered if the printer was given the name "Bob". [[Service discovery]] provides additional information about devices. Service discovery is sometimes combined with a [[name service]], as in Apple's [[Name Binding Protocol]] and Microsoft's [[NetBIOS]]. ===NetBIOS Service Discovery=== NetBIOS on Windows supports individual hosts on the network to advertise services, such as file shares and printers. It also supports, for example, a network printer to advertise itself as a host sharing a printer device and any related services it supports. Depending on how a device is attached (to the network directly, or to the host which shares it) and which protocols are supported. However, Windows clients connecting to it may prefer to use [[Simple Service Discovery Protocol|SSDP]] or [[Web Services for Devices|WSD]] using NetBIOS. NetBIOS is one of the providers on Windows implementing the more general discovery process dubbed ''function discovery'' which includes built-in providers for PnP, Registry, NetBIOS, SSDP and WSD<ref name="AboutFunctionDiscovery">{{cite web|title=About Function Discovery|url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa363892(v=vs.85).aspx|website=Windows Dev Center|publisher=Microsoft|access-date=1 November 2015}}</ref> of which the former two are local-only and the latter three support discovery of networked devices. None of these need any configuration for use on the local subnet. NetBIOS has traditionally been supported only in expensive printers for corporate use though some entry-level printers with Wi-Fi or Ethernet support it natively, allowing the printer to be used without configuration even on very old operating systems. ===WS-Discovery=== Web Services Dynamic Discovery ([[WS-Discovery]]) is a technical specification that defines a multicast discovery protocol to locate services on a local network. It operates over TCP and UDP port 3702 and uses IP multicast address {{IPaddr|239.255.255.250}}. As the name suggests, the actual communication between nodes is done using web services standards, notably [[SOAP-over-UDP]]. Windows supports it in the form of [[Web Services for Devices]] and [[Devices Profile for Web Services]]. Many devices, such as HP and Brother printers, support it. ===DNS-based service discovery=== '''{{vanchor|DNS-SD}}''' (DNS Service Discovery<ref name="dotorg">{{Citation | url = http://www.dns-sd.org/ | title = DNS-SD}}</ref>) allows clients to discover a named list of service instances and to resolve those services to hostnames using standard DNS queries. The specification is compatible with existing unicast DNS server and client software, but works equally well with mDNS in a zero-configuration environment. Each service instance is described using a DNS SRV<ref>{{IETF RFC|2782}}</ref> and DNS TXT<ref name="IETF RFC|1035">{{IETF RFC|1035}}</ref> record. A client discovers the list of available instances for a given service type by querying the DNS PTR<ref name="IETF RFC|1035"/> record of that service type's name; the server returns zero or more names of the form <Service>.<Domain>, each corresponding to a SRV/TXT record pair. The [[SRV record]] resolves to the domain name providing the instance, while the TXT can contain service-specific configuration parameters. A client can then resolve the A/AAAA record for the domain name and connect to the service. Service types are given on a first-come-first-serve basis. A service type registry was originally maintained by DNS-SD.org,<ref name="dotorg" /> but has since been merged into IANA's registry for DNS SRV records.<ref>{{Citation | url = http://www.dns-sd.org/ServiceTypes.html | publisher = DNS-SD | title = Service types}}</ref> ====History==== In 1997 [[Stuart Cheshire]] proposed adapting Apple's mature [[Name Binding Protocol]] to IP networks to address the lack of service discovery capability.<ref>{{Citation | url = http://www.stuartcheshire.org/rants/NBPIP.html | title = Name Binding Protocol over IP | type = rant | first = Stuart | last = Cheshire | author-link = Stuart Cheshire}}{{self-published-inline|date=May 2013}}</ref> Cheshire subsequently joined Apple and authored [[IETF]] draft proposals for mDNS and DNS-based Service Discovery, supporting the transition from AppleTalk to IP networking. In 2002, Apple announced an implementation of both protocols under the name Rendezvous<ref>{{Citation | title = Zero conf | url = http://www.zeroconf.org/}}{{self-published-inline|date=March 2020}}</ref> (later renamed Bonjour). It was first included in [[Mac OS X 10.2]], replacing the [[Service Location Protocol]] (SLP) used in [[Mac OS X 10.1|10.1]].{{Citation needed|date=May 2013}} In 2013, the proposals were ratified as {{IETF RFC|6762}}<ref>{{cite IETF |author1=S. Cheshire |author2=M. Krochmal |publisher=[[IETF]] |title=Multicast DNS |rfc=6762 |date=February 2013}}</ref> and {{IETF RFC|6763}}.<ref>{{cite IETF |author1=S. Cheshire |author2=M. Krochmal |publisher=[[IETF]] |title=DNS-Based Service Discovery |rfc=6763 |date=February 2013}}</ref> ====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 record]] of its ''.local'' hostname (e.g. the [[List of DNS record types#A|A]], [[List of DNS record types#AAAA|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 the well-known multicast address; the computer with the corresponding A/AAAA record replies with its IP address. The mDNS multicast address is {{IPaddr|224.0.0.251}} for IPv4 and {{IPaddr|ff02::fb}} for IPv6 link-local addressing. DNS Service Discovery aka [[DNS-SD]] requests can also be sent using mDNS to yield zero-configuration DNS-SD.{{Ref RFC|6763}} This uses DNS [[PTR record|PTR]], SRV, [[TXT record|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 ''.local'' domain names, which mDNS can resolve to local IP addresses. ====Support==== DNS-SD is used by Apple products, most network printers, many Linux distributions including [[Debian]] and [[Ubuntu]],<ref>{{cite web|title=Ubuntu 15.10 desktop manifest|url=http://releases.ubuntu.com/wily/ubuntu-15.10-desktop-amd64.manifest|publisher=Ubuntu|access-date=23 October 2015}}</ref> and a number of third-party products for various operating systems. For example, many [[OS X]] network applications written by Apple, including [[Safari (web browser)|Safari]], [[iChat]], and [[Messages (Apple)|Messages]], can use DNS-SD to locate nearby servers and peer-to-peer clients. Windows 10 includes support for DNS-SD for applications written using JavaScript.<ref name="WindowsDnssdNamespace">{{cite web|title=Windows.Networking.ServiceDiscovery.Dnssd namespace|url=https://msdn.microsoft.com/en-us/library/windows/desktop/bb870632(v=vs.85).aspx|website=Windows Dev Center|publisher=Microsoft|access-date=1 November 2015}}</ref> Individual applications may include their own support in older versions of the operating system, such that most instant messaging and [[VoIP]] clients on Windows support DNS-SD. Some [[Unix]], [[BSD]], and Linux distributions also include DNS-SD. For example, Ubuntu ships [[Avahi (software)|Avahi]], an mDNS/DNS-SD implementation, in its base distribution. ===UPnP=== [[UPnP]] has some protocol components with the purpose of service discovery. ====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 [[URI]] and a Unique Service Name (USN). Service types are regulated by the Universal Plug and Play Steering Committee. SSDP is supported by many printer, NAS and appliance manufacturers such as Brother. It is supported by certain brands of network equipment, and in many [[SOHO network|SOHO]] firewall appliances, where host computers behind it may pierce holes for applications. It is also used in [[home theater PC]] systems to facilitate media exchange between host computers and the media center. ====DLNA==== [[Digital Living Network Alliance]] (DLNA) is another suite of standards that uses UPnP for the discovery of networked devices. DLNA has a long list of prominent manufacturers producing devices such as TVs, NAS devices and so forth that support it. DLNA is supported by all major operating systems. DLNA service discovery is layered on top of SSDP. ====Efforts toward an IETF standard protocol==== SLP is supported by [[Hewlett-Packard]]'s network [[Computer printer|printer]]s, [[Novell]], and [[Sun Microsystems]]. SLP is described in {{IETF RFC|2608}} and {{IETF RFC|3224}} and implementations are available for both [[Solaris (operating system)|Solaris]] and [[Linux]]. ===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>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)