Service Location Protocol
Encyclopedia
The Service Location Protocol (SLP, srvloc) is a service discovery
protocol that allows computers and other devices to find services in a local area network
without prior configuration. SLP has been designed to scale from small, unmanaged networks to large enterprise networks. It has been defined in RFC 2608 and RFC 3224 as Standards Track document.
SLP is used by devices to announce services on a local network. Each service must have a URL
that is used to locate the service. Additionally it may have an unlimited number of name/value pairs, called attributes. Each device must always be in one or more scopes. Scopes are simple strings and are used to group services, comparable to the network neighborhood in other systems. A device cannot see services that are in different scopes.
The URL of a printer could look like:
service:printer:lpr://myprinter/myqueue
This URL describes a queue called "myqueue" on a printer with the host name "myprinter". The protocol used by the printer is LPR
. Note that a special URL scheme "service:" is used by the printer. "service:" URLs are not required: any URL scheme can be used, but they allow you to search for all services of the same type (e.g. all printers) regardless of the protocol that they use. The first three components of the "service:" URL type ("service:printer:lpr") are also called service type. The first two components ("service:printer") are called abstract service type. In a non-"service:" URL the schema name is the service type (for instance "http" in "http://www.wikipedia.org").
The attributes of the printer could look like:
(printer-name=Hugo),
(printer-natural-language-configured=en-us),
(printer-location=In my home office),
(printer-document-format-supported=application/postscript),
(printer-color-supported=false),
(printer-compression-supported=deflate, gzip)
The example uses the standard syntax for attributes in SLP, only newlines have been added to improve readability.
The definition of a "service:" URL and the allowed attributes for the URL are specified by a service template, a formalized description of the URL syntax and the attributes. Service templates are defined in RFC 2609.
SLP allows several query types to locate services and obtain information about them:
Today most implementations are daemons
that can act both as UA and SA. Usually they can be configured to become a DA as well.
, but TCP
can also be used for the transmission of longer packets. Because of the potential unreliability of UDP, SLP repeats all multicasts several times in increasing intervals until an answer has been received.
All devices are required to listen on port 427 for UDP packets, SAs and DAs should also listen for TCP on the same port. Multicast
ing is used extensively by SLP, especially by devices that join a network and need to find other devices.
The operation of SLP differs considerably, depending on whether a Directory Agent (DA) is in the network or not. When a client first joins a network it multicasts a query for DAs on the network. If no DA answers it will assume that it is in a network without DAs. It is also possible to add DAs later, as they multicast a 'heartbeat' packet in a predefined interval that will be received by all other devices. When an SA discovers a DA, it is required to register all services at the DA. When a service disappears the SA should notify the DA and unregister it.
In order to send a query in a network without a DA, the UA sends a multicast UDP packet that contains the query. All SAs that contain matches will send a UDP answer to the UA. If the answer is too large to fit into a single UDP packet, the packet will be marked as "overflown" and the UA is free to send the query directly to the SA using TCP, which can transmit packets of any size.
In order to send a query in a network with a DA, the UA will send the query packet to the DA using either UDP or TCP. As every SA must register all services with the DA, the DA is able to fulfill the request completely and simply sends the result back to the UA.
Service discovery
Service discovery protocols are network protocols which allow automatic detection of devices and services offered by these devices on a computer network....
protocol that allows computers and other devices to find services in a local area network
Local area network
A local area network is a computer network that interconnects computers in a limited area such as a home, school, computer laboratory, or office building...
without prior configuration. SLP has been designed to scale from small, unmanaged networks to large enterprise networks. It has been defined in RFC 2608 and RFC 3224 as Standards Track document.
Logical overview
According to the definitions given in the RFC 2608 specification, a location is a topologically specific and named entity on a local network of any extension, and that is not any geographic or otherwise topographic or geometric location.SLP is used by devices to announce services on a local network. Each service must have a URL
Uniform Resource Locator
In computing, a uniform resource locator or universal resource locator is a specific character string that constitutes a reference to an Internet resource....
that is used to locate the service. Additionally it may have an unlimited number of name/value pairs, called attributes. Each device must always be in one or more scopes. Scopes are simple strings and are used to group services, comparable to the network neighborhood in other systems. A device cannot see services that are in different scopes.
The URL of a printer could look like:
service:printer:lpr://myprinter/myqueue
This URL describes a queue called "myqueue" on a printer with the host name "myprinter". The protocol used by the printer is LPR
Line Printer Daemon protocol
The Line Printer Daemon protocol/Line Printer Remote protocol is a network protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX operating system; the LPRng project also supports that protocol...
. Note that a special URL scheme "service:" is used by the printer. "service:" URLs are not required: any URL scheme can be used, but they allow you to search for all services of the same type (e.g. all printers) regardless of the protocol that they use. The first three components of the "service:" URL type ("service:printer:lpr") are also called service type. The first two components ("service:printer") are called abstract service type. In a non-"service:" URL the schema name is the service type (for instance "http" in "http://www.wikipedia.org").
The attributes of the printer could look like:
(printer-name=Hugo),
(printer-natural-language-configured=en-us),
(printer-location=In my home office),
(printer-document-format-supported=application/postscript),
(printer-color-supported=false),
(printer-compression-supported=deflate, gzip)
The example uses the standard syntax for attributes in SLP, only newlines have been added to improve readability.
The definition of a "service:" URL and the allowed attributes for the URL are specified by a service template, a formalized description of the URL syntax and the attributes. Service templates are defined in RFC 2609.
SLP allows several query types to locate services and obtain information about them:
- It can search for all services with the same service type or abstract service type
- The query can be combined with a query for attributes, using LDAPLightweight Directory Access ProtocolThe Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol network...
's query language. - Given its URL, the attributes of a service can be requested. In standard SLP the attributes are not returned in the query result and must be fetched separately. The Attribute List Extension (RFC 3059) fixes this problem.
- A list of all service types can be obtained
- A list of all existing scopes can be requested.
SLP roles
SLP has three different roles for devices. A device can also have two or all three roles at the same time.- User Agents (UA) are devices that search for services
- Service Agents (SA) are devices that announce one or more services
- Directory Agents (DA) are devices that cache services. They are used in larger networks to reduce the amount of traffic and allow SLP to scale. The existence of DAs in a network is optional, but if a DA is present, UAs and SAs are required to use it instead of communicating directly.
Today most implementations are daemons
Daemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...
that can act both as UA and SA. Usually they can be configured to become a DA as well.
Network protocol
SLP is a packet-oriented protocol. Most packets are transmitted using UDPUser Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...
, but TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
can also be used for the transmission of longer packets. Because of the potential unreliability of UDP, SLP repeats all multicasts several times in increasing intervals until an answer has been received.
All devices are required to listen on port 427 for UDP packets, SAs and DAs should also listen for TCP on the same port. Multicast
Multicast
In computer networking, multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source creating copies automatically in other network elements, such as routers, only when the topology of the network requires...
ing is used extensively by SLP, especially by devices that join a network and need to find other devices.
The operation of SLP differs considerably, depending on whether a Directory Agent (DA) is in the network or not. When a client first joins a network it multicasts a query for DAs on the network. If no DA answers it will assume that it is in a network without DAs. It is also possible to add DAs later, as they multicast a 'heartbeat' packet in a predefined interval that will be received by all other devices. When an SA discovers a DA, it is required to register all services at the DA. When a service disappears the SA should notify the DA and unregister it.
In order to send a query in a network without a DA, the UA sends a multicast UDP packet that contains the query. All SAs that contain matches will send a UDP answer to the UA. If the answer is too large to fit into a single UDP packet, the packet will be marked as "overflown" and the UA is free to send the query directly to the SA using TCP, which can transmit packets of any size.
In order to send a query in a network with a DA, the UA will send the query packet to the DA using either UDP or TCP. As every SA must register all services with the DA, the DA is able to fulfill the request completely and simply sends the result back to the UA.
Security
SLP contains a public-key cryptography based security mechanism that allows signing of service announcements. In practice it is rarely used:- The public keys of every service provider must be installed on every UA. This requirement defeats the original purpose of SLP, being able to locate services without prior configuration.
- Protecting only the services is not enough. Service URLs contain host names or IP addresses, and in a local network it is almost impossible to prevent IP or DNS spoofing. Thus only guaranteeing the authenticity of the URL is not enough if any device can respond to the address.
- As addresses can be spoofed, the authenticity of the device must be proven at a different level anyway, e.g. in the application protocol (e.g. with SSL) or in the packet layer (IPsecIPsecInternet Protocol Security is a protocol suite for securing Internet Protocol communications by authenticating and encrypting each IP packet of a communication session...
). Doing it additionally in SLP does not provide much additional security.
Adoption
- SLP is frequently used for locating printers and supported by printing systems such as CUPS.
- SLP is often found in LAN-enabled printers, so that they are discoverable out of the box. Some client print drivers can use this for printer discovery.
- ACNArchitecture for Control NetworksArchitecture for Control Networks is a suite of network protocols for theatrical control being developed by Entertainment Services and Technology Association...
, a protocol being developed for entertainment control, uses SLP to find different devices such as dimmers and intelligent lights. - Mac OSMac OSMac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
and Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
up to version 10.1 used SLP to locate file shares and other services. However, features introduced with Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
(version 10.2 onwards) use ZeroconfZeroconfZero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....
. - Novell NetWareNovell NetWareNetWare is a network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, with network protocols based on the archetypal Xerox Network Systems stack....
clients in a pure IP environment use SLP to locate servers. - SUSE Linux supports SLP for a variety of services since version 9.1.
- Sun microsystemsSun MicrosystemsSun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
supports SLPv1 and SLPv2 including SA, UA and DA functionality. - The Distributed Management Task ForceDistributed Management Task ForceDistributed Management Task Force is an industry organization that develops, maintains and promotes standards for systems management in enterprise IT environments. These standards allow for building systems management infrastructure components in a platform-independent and technology-neutral way...
has standardized discovery of WBEM ServicesWeb-Based Enterprise ManagementWeb-Based Enterprise Management is a set of systems management technologies developed to unify the management of distributed computing environments. WBEM is based on Internet standards and Distributed Management Task Force open standards: Common Information Model infrastructure and schema,...
via SLP. - The Storage Networking Industry AssociationStorage Networking Industry AssociationAn association of producers and consumers of storage networking products, whose goal is to further storage networking technology and applications.The Storage Networking Industry Association, or SNIA, was incorporated in December, 1997, and is a registered 501 non-profit trade association...
has mandated the use of SLP for services discovery in the Storage Management Initiative - SpecificationSMI-SSMI-S, or the Storage Management Initiative – Specification, is a storage standard developed and maintained by the Storage Networking Industry Association . It has also been ratified as an ISO standard...
.
See also
- Universal Plug and PlayUniversal Plug and PlayUniversal Plug and Play is a set of networking protocols for primarily residential networks without enterprise class devices that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence...
(UPnP) - JiniJiniJini , also called Apache River, is a network architecture for the construction of distributed systems in the form of modular co-operating services.Originally developed by Sun, Jini was released under an open source license...
- Zero configuration networking (Zeroconf)
- Bonjour
- OSGiOSGiThe Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
Alliance - SalutationSalutation (computing)Salutation in computing is a technique for service discovery and service management.-See also:* Service Location Protocol* Zero Configuration Networking * OSGi Alliance* Jini* Universal Plug and Play * Bluetooth-References:*Golden G...
- Dynamic Host Configuration ProtocolDynamic Host Configuration ProtocolThe Dynamic Host Configuration Protocol is a network configuration protocol for hosts on Internet Protocol networks. Computers that are connected to IP networks must be configured before they can communicate with other hosts. The most essential information needed is an IP address, and a default...
- WS-Discovery
External links
- The LiveTribe SLP/OSGi Module
- Service Location Protocol Project
- Service Location Protocol Enhancements
- OpenSLP
- jSLP - A pure Java SLP implementation.
- SBLIM CIM Client for Java - includes an RFC 2614 compliant SLP implementation in Java.
- A Comparison Of Service Discovery Protocols And Implementation Of The Service Location Protocol
- http://www.ietf.org/html.charters/svrloc-charter.html -- IETF SRVLOC working groupWorking groupA working group is an interdisciplinary collaboration of researchers working on new research activities that would be difficult to develop under traditional funding mechanisms . The lifespan of the WG can last anywhere between a few months and several years...
, which created the SLP standard - WBEM Discovery Using SLP by DMTF
- WBEM SLP Template by DMTF
- Automate Client Management with the Service Location Protocol a developerWorks article by M. Tim Jones