Service Discovery is the automatic detection of devices
and services offered by devices on a computer network. A service discovery
protocol (SDP) is a network protocol that helps accomplish service discovery.
Simple Service Discovery Protocol (SSDP) is a networkprotocol based on the Internet Protocol Suite for advertisement and discovery of network services and presence information. It accomplishes this without assistance of server-based configuration mechanisms, such as DHCP or DNS, and without special static configuration of a network host. SSDP is the basis of the discovery protocol of Universal Plug and Play (UPnP) and is intended for use in residential or small office environments.
Multicast DNS(mDNS) protocol is published as RFC 6762, uses IP multicast UserDatagram Protocol(UDP) packets, and is implemented by the Apple Bonjour and open source Avahi software packages. Android contains an mDNS implementation. mDNS has also been implemented in Windows 10, but its use there is limited to discovering networked printers. mDNS can work in conjunction with DNS Service Discovery (DNS-SD), a companion zero-configuration technique specified separately in RFC 6763
DNS Service Discovery over Multicast DNS (DNS-SD/mDNS), made fashionable through Apple’s Bonjour. DNS Service Discovery over Multicast DNS (DNS-SD/mDNS) is a prevalent technique widely used for offering and requesting services in local networks without configuration. Using the upper two layers of the Zeroconf stack, namely DNS Service Discovery and Multicast DNS, it provides a great user experience. DNS-SD/mDNS is widely used. It runs on Linux (Avahi), Windows (Avahi, Bonjour), MacOS (Bonjour), Android (NSD), and iOS (Bonjour). Implementations for Internet of Things (IoT) operating systems, such as contiki, also exist.
Zeroconf stack provides configurationless means for all of addressing, name resolution, and service discovery. A huge advantage is that these layers are independent of each other. The name resolution mechanism - multicast DNS (mDNS) works with automatic or static address configuration as well as with DHCP. The service discovery layer - DNS service discovery (DNS-SD) works with standard DNS as well as mDNS.
ref:
Service Discovery - https://en.wikipedia.org/wiki/Service_discovery
Protocols for Device Discovery - https://www.bbc.co.uk/rd/blog/2014-07-protocols-for-device-discovery
Service Discovery using ZeroConf Stack(DNS-SD/mDNS) - https://pdfs.semanticscholar.org/0c62/d94cef19690d8f1fabc7e1f8bcf369dc49ce.pdf
Linux Avahi library source code (LGPL license) - https://github.com/lathiat/avahi
Google chromium mDNS source code - https://chromium.googlesource.com/chromium/src/+/68ea490084597d5d4640e782989c0a6a094dcd21/chrome/browser/extensions/api/mdns
Multicast DNS and DNS-SD for the Spark Core - https://github.com/mrhornsby/spark-core-mdns, https://community.particle.io/t/mdns-and-dns-service-discovery-library/9550/3
Apple Bonjour Test/Sample code - https://github.com/jevinskie/mDNSResponder
ZeroConf(mDNS) discovery in C++ - https://github.com/HBPVIS/Servus
mDNS opensource implementations - https://github.com/topics/mdns
Android Bonjour mDNS responder - https://www.andriydruk.com/post/mdnsresponder/
DNS Service Discovery on Windows - https://marknelson.us/posts/2011/10/25/dns-service-discovery-on-windows.html
Bonjour overview - https://people.eecs.berkeley.edu/~johnw/cs294-97/papers/Bonjour%20-%20Overview.pdf
SIP URI Service Discovery using DNS-SD - https://tools.ietf.org/html/draft-lee-sip-dns-sd-uri-03
Simple Service Discovery Protocol (SSDP) is a networkprotocol based on the Internet Protocol Suite for advertisement and discovery of network services and presence information. It accomplishes this without assistance of server-based configuration mechanisms, such as DHCP or DNS, and without special static configuration of a network host. SSDP is the basis of the discovery protocol of Universal Plug and Play (UPnP) and is intended for use in residential or small office environments.
Multicast DNS(mDNS) protocol is published as RFC 6762, uses IP multicast UserDatagram Protocol(UDP) packets, and is implemented by the Apple Bonjour and open source Avahi software packages. Android contains an mDNS implementation. mDNS has also been implemented in Windows 10, but its use there is limited to discovering networked printers. mDNS can work in conjunction with DNS Service Discovery (DNS-SD), a companion zero-configuration technique specified separately in RFC 6763
DNS Service Discovery over Multicast DNS (DNS-SD/mDNS), made fashionable through Apple’s Bonjour. DNS Service Discovery over Multicast DNS (DNS-SD/mDNS) is a prevalent technique widely used for offering and requesting services in local networks without configuration. Using the upper two layers of the Zeroconf stack, namely DNS Service Discovery and Multicast DNS, it provides a great user experience. DNS-SD/mDNS is widely used. It runs on Linux (Avahi), Windows (Avahi, Bonjour), MacOS (Bonjour), Android (NSD), and iOS (Bonjour). Implementations for Internet of Things (IoT) operating systems, such as contiki, also exist.
Zeroconf stack provides configurationless means for all of addressing, name resolution, and service discovery. A huge advantage is that these layers are independent of each other. The name resolution mechanism - multicast DNS (mDNS) works with automatic or static address configuration as well as with DHCP. The service discovery layer - DNS service discovery (DNS-SD) works with standard DNS as well as mDNS.
Service Discovery - https://en.wikipedia.org/wiki/Service_discovery
Protocols for Device Discovery - https://www.bbc.co.uk/rd/blog/2014-07-protocols-for-device-discovery
Service Discovery using ZeroConf Stack(DNS-SD/mDNS) - https://pdfs.semanticscholar.org/0c62/d94cef19690d8f1fabc7e1f8bcf369dc49ce.pdf
SSDP(Simple
Service Discovery Protocol) Protocol - https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol
MultiCast
DNS(mDNS) -
DNS-SD overview - http://www.dns-sd.org/.
https://en.wikipedia.org/wiki/Zero-configuration_networking#DNS-SD
Apple Bonjour-
- Overview - https://developer.apple.com/bonjour/
- Source code (tar ball) - https://opensource.apple.com/tarballs/mDNSResponder/
- Bonjour Concepts (Documentation) - https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/NetServices/Articles/about.html
SSDP protocol opensource
libraries-
Multicast DNS(mDNS) & DNS-SD Overview - https://meetings.ripe.net/ripe-55/presentations/strotmann-mdns.pdf
Apple mDNS/ZeroConf "C" library: Bonjour
(Apache License) - https://opensource.apple.com/source/mDNSResponder/mDNSResponder-214/mDNSCore/
Linux Avahi library source code (LGPL license) - https://github.com/lathiat/avahi
Google chromium mDNS source code - https://chromium.googlesource.com/chromium/src/+/68ea490084597d5d4640e782989c0a6a094dcd21/chrome/browser/extensions/api/mdns
Multicast DNS and DNS-SD for the Spark Core - https://github.com/mrhornsby/spark-core-mdns, https://community.particle.io/t/mdns-and-dns-service-discovery-library/9550/3
Apple Bonjour “C” library Posix Port - https://opensource.apple.com/source/mDNSResponder/mDNSResponder-541/mDNSPosix/
Apple Bonjour Test/Sample code - https://github.com/jevinskie/mDNSResponder
ZeroConf(mDNS) discovery in C++ - https://github.com/HBPVIS/Servus
mDNS opensource implementations - https://github.com/topics/mdns
Open IOT LIbraries - https://github.com/Agile- IoT/awesome-open-iot
Multicast DNS(mDNS) & DNS-SD - https://webscreens.github.io/openscreenprotocol/mdns.html
Android Bonjour mDNS responder - https://www.andriydruk.com/post/mdnsresponder/
DNS Service Discovery on Windows - https://marknelson.us/posts/2011/10/25/dns-service-discovery-on-windows.html
Bonjour overview - https://people.eecs.berkeley.edu/~johnw/cs294-97/papers/Bonjour%20-%20Overview.pdf
SIP URI Service Discovery using DNS-SD - https://tools.ietf.org/html/draft-lee-sip-dns-sd-uri-03
Light-weight
multicast DNS and DNS-SD (lmDNS-SD) - https://www.researchgate.net/publication/261427432_Light-Weight_Multicast_DNS_and_DNS-SD_lmDNS-SD_IPv6-Based_Resource_and_Service_Discovery_for_the_Web_of_Things
Proxy
support for service discovery using mDNS/DNS-SD in low power networks - http://www.win.tue.nl/~mstolikj/publications/IOTSOS2014.pdf
KDNSSD(Network
service discovery using Zeroconf) - https://api.kde.org/frameworks/kdnssd/html/index.html