Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Service Location Protocol

Service Location Protocol

Discussion
Ask a question about 'Service Location Protocol'
Start a new discussion about 'Service Location Protocol'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
The Service Location Protocol (SLP, srvloc) is a service discovery
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 LDAP
    Lightweight Directory Access Protocol
    The 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 UDP
User 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 (IPsec
    IPsec
    Internet 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.
  • ACN
    Architecture for Control Networks
    Architecture 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 OS
    Mac OS
    Mac 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 X
    Mac OS X
    Mac 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 X
    Mac OS X
    Mac 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 Zeroconf
    Zeroconf
    Zero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....

    .
  • Novell NetWare
    Novell NetWare
    NetWare 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 microsystems
    Sun Microsystems
    Sun 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 Force
    Distributed Management Task Force
    Distributed 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 Services
    Web-Based Enterprise Management
    Web-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 Association
    Storage Networking Industry Association
    An 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 - Specification
    SMI-S
    SMI-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 Play
    Universal Plug and Play
    Universal 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)
  • Jini
    Jini
    Jini , 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
  • OSGi
    OSGi
    The 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
  • Salutation
    Salutation (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 Protocol
    Dynamic Host Configuration Protocol
    The 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