Service Location Protocol


Service Location Protocol

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 as Standards Track document.

Logical overview

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:
* 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 LDAP'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 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 UDP, 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. Multicasting 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 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 (IPsec). 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.
* ACN, a protocol being developed for entertainment control, uses SLP to find different devices such as dimmers and intelligent lights.
* Mac OS and Mac OS X up to version 10.1 used SLP to locate file shares and other services. However, features introduced with Mac OS X (version 10.2 onwards) use Zeroconf.
* Novell NetWare clients in a pure IP environment use SLP to locate servers.
* SUSE Linux supports SLP for a variety of services since version 9.1.
* DMTF has standardized discovery of WBEM Services via SLP.
* SNIA has mandated the use of SLP for services discovery in the Storage Management Initiative - Specification.

ee also

* Universal Plug and Play (UPnP)
* Jini
* Zero Configuration Networking (Zeroconf)
* Bonjour
* OSGi Alliance
* Salutation
* Dynamic Host Configuration Protocol
* WS-Discovery

References

* Silvia Hagen, Guide to Service Location Protocol, Podbooks.Com LLC, ISBN 1-893939-35-9
* James Kempf, Robert St. Pierre, Pete St. Pierre: Service Location Protocol for Enterprise Networks: Implementing and Deploying a Dynamic Service Finder, John Wiley & Sons, ISBN 0-471-31587-7
* Golden G. Richard: Service and Device Discovery : Protocols and Programming, McGraw-Hill Professional, ISBN 0-07-137959-2
* Johan Hjelm: Creating Location Services for the Wireless Web, John Wiley & Sons, ISBN 0-471-40261-3
* Anna Hac: Mobile Telecommunications Protocols for Data Networks, John Wiley & Sons, ISBN 0-470-85056-6

External links

* [http://www.livetribe.org/LiveTribe-SLP The LiveTribe SLP/OSGi Module]
* [http://srvloc.sourceforge.net/ Service Location Protocol Project]
* [http://mslp.sourceforge.net/ Service Location Protocol Enhancements]
* [http://openslp.org/ OpenSLP]
* [http://jslp.sourceforge.net/ jSLP - A pure Java SLP implementation.]
* [http://sourceforge.net/projects/sblim/ SBLIM CIM Client for Java] - includes an RFC 2614 compliant SLP implementation in Java.
* [http://citeseer.ist.psu.edu/334042.html 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 group, which created the SLP standard
* [http://www.dmtf.org/standards/published_documents/DSP0205.pdf WBEM Discovery Using SLP] by DMTF
* [http://www.dmtf.org/standards/wbem/wbem.1.0.en WBEM SLP Template] by DMTF
* [http://www.ibm.com/developerworks/linux/library/l-slp Automate Client Management with the Service Location Protocol] a developerWorks article by M. Tim Jones


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Service Location Protocol — Протокол обнаружения сервисов (англ. Service Location Protocol, SLP, srvloc)  протокол обнаружения сервисов, который позволяет компьютерам и иным устройствам находить сервисы в локальной вычислительной сети без предварительной… …   Википедия

  • Service Location Protocol — Pour les articles homonymes, voir SLP. Le Service Location Protocol est un protocole de découverte de services qui permet aux ordinateurs et autres dispositifs de trouver des services dans un réseau local sans aucune configuration préalable.… …   Wikipédia en Français

  • Service Location Protocol — SLP im TCP/IP‑Protokollstapel: Anwendung SLP Transport UDP TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet …   Deutsch Wikipedia

  • Service Advertising Protocol — Das Service Advertising Protocol, oder kurz SAP, ist ein Begriff aus der Informatik und bezeichnet ein in IPX Netzen verwendetes Protokoll zur Dienstauffindung. Es wurde ursprünglich, wie auch IPX, von Novell Inc. für Netware entwickelt.… …   Deutsch Wikipedia

  • Mobile Location Protocol — The Mobile Location Protocol (MLP) is an application level protocol for receiving the position of Mobile Stations (MS: mobile phones, wireless devices, etc) independent of underlying network technology. The MLP serves as the interface between a… …   Wikipedia

  • Simple Service Discovery Protocol — SSDP im TCP/IP‑Protokollstapel: Anwendung SSDP Transport UDP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token …   Deutsch Wikipedia

  • Simple Service Discovery Protocol — SSDP Название: Simple Service Discovery Protocol Уровень (по модели OSI): Сеансовый Семейство: TCP/IP Порт/ID: 1900/UDP Простой протокол обнаружения сервисов (англ. Simple Service Discovery Protocol, SSDP …   Википедия

  • Simple Service Discovery Protocol — (SSDP) is an expired IETF Internet draft by Microsoft and Hewlett Packard. SSDP is the basis of the discovery protocol of Universal plug and play.SSDP provides a mechanism which network clients can use to discover network services. Clients can… …   Wikipedia

  • Service discovery — protocols are network protocols which allow automatic detection of devices and services offered by these devices on a computer network. Service discovery is an essential ingredient of the Semantic Web, since the future Web must allow software… …   Wikipedia

  • Service Oriented Programming — (SOP) is a programming paradigm that uses services as the unit of computer work, to design and implement integrated business applications and mission critical software programs. Services can represent steps of business processes and thus one of… …   Wikipedia


We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.