Provided by Colasoft Co., Ltd.

SLP ( Service Location Protocol )

Home > Protocols > SLP Update: 2005-11-10 16:22:39    I have words to say about this protocol
On this page
SUMMARY
Protocol : Service Location Protocol
Protocol suite : TCP/IP
Layer : Application Layer
Type : Application layer protocol
Multicast addresses : 239.255.255.253 (Administratively Scoped SLP Multicast).
Ports : 427 (TCP, UDP)
1847 (TCP, UDP) notification
Related protocols : TCP,
UDP,
DHCP
URI : service
Working groups : Svrloc, Service Location Protocol.
DESCRIPTION
The Service Location Protocol (SLP) provides a scalable framework for the discovery and selection of network services. Using this protocol, computers using the Internet no longer need so much static configuration for network services for network-based applications. This is especially important as computers become more portable and users less tolerant or able to fulfill the demands of network system administration.

Traditionally, users find services by using the name of a network host (a human readable text string) which is an alias for a network address. The Service Location Protocol eliminates the need for a user to know the name of a network host supporting a service. Rather, the user names the service and supplies a set of attributes which describe the service. The Service Location Protocol allows the user to bind this description to the network address of the service.

Service Location provides a dynamic configuration mechanism for applications in local area networks. It is not a global resolution system for the entire Internet; rather it is intended to serve enterprise networks with shared services. Applications are modeled as clients that need to find servers attached to the enterprise network at a possibly distant location. For cases where there are many different clients and/or services available, the protocol is adapted to make use of nearby Directory Agents that offer a centralized repository for advertised services.


The basic operation in Service Location is that a client attempts to discover the location of a Service. In smaller installations, each service will be configured to respond individually to each client. In larger installations, services will register their services with one or more Directory Agents, and clients will contact the Directory Agent to fulfill requests for Service Location information. Clients may discover the whereabouts of a Directory Agent by preconfiguration, DHC, or by issuing queries to the Directory Agent Discovery multicast address.

  • Protocol Transactions
    The diagram below illustrates the relationships described below:


  •       +---------------+   we want this info:     +-----------+
    
    | Application | - - - - - - - - - - - -> | Service |
    +---------------+ +-----------+
    /| | |
    | +-------------+ |
    | | |
    |/ |/ |/
    +---------------+ +-----------+ +----------------+
    | User Agent |<-------->| Service | | Service |
    +---------------+ | Agent | | Agent which |
    | +-----------+ | does not reply |
    | | | to UA requests |
    | |/ +----------------+
    | +-------------+ |
    +------------------>| Directory |<----------+
    | Agent |
    +-------------+ ___________
    /| / Many other
    +------------>| SA's |
    ___________/

    The following describes the operations a User Agent would employ to find services on the site's network. The User Agent needs no configuration to begin network interaction. The User Agent can acquire information to construct predicates which describe the services that match the user's needs. The User Agent may build on the information received in earlier network requests to find the Service Agents advertising service information.

    A User Agent will operate two ways:
    • If the User Agent has already obtained the location of a Directory Agent, the User Agent will unicast a request to it in order to resolve a particular request. The Directory Agent will unicast a reply to the User Agent. The User Agent will retry a request to a Directory Agent until it gets a reply, so if the Directory Agent cannot service the request (say it has no information) it must return an response with zero values, possibly with an error code set.


    • If the User Agent does not have knowledge of a Directory Agent or if there are no Directory Agents available on the site network, a second mode of discovery may be used. The User Agent multicasts a request to the service-specific multicast address, to which the service it wishes to locate will respond. All the Service Agents which are listening to this multicast address will respond, provided they can satisfy the User Agent's request. A similar mechanism is used for Directory Agent discovery. Service Agents which have no information for the User Agent must not respond.


  • Schemes
    The Service Location Protocol, designed as a way for clients to access resources on the network, is a natural application for Universal Resource Locators (URLs). It is intended that by re-using URL specification and technology from the World Wide Web, clients and servers will be more flexible and able to be written using already existing code. Moreover, it is hoped that browsers will be written to take advantage of the similarity in locator format, so that a client can dynamically formulate requests for services that are resolved differently depending upon the circumstances.



SLP Header
The following header is used in all of the message descriptions below and is abbreviated by using "Service Location header =" followed by the function being used.

8

16

32 bit

Version

Function

Length

O M U A F rsvd

Dialect

Language Code

Char encoding

XID



  • Version
    The current version is version 1


  • Function
    The function field describes the operation of the Service location datagram. The following message types exist:


  • Function

    Message Type

    1

    Service Request

    2

    Service Reply

    3

    Service Registration

    4

    Service Deregister

    5

    Service Acknowledge

    6

    Attribute Request

    7

    Attribute Reply

    8

    DA Advertisement

    9

    Service Type Request

    10

    Service Type Reply


  • Length
    Number of bytes in the message including the Service location header.


  • O
    The overflow bit.


  • M
    The monolingual bit.


  • U
    RL Authentication bit present.


  • A
    Attribute authentication bit present.


  • F
    If the F bit is set in a Service Acknowledgement, the directory agent has registered the service as a new entry.


  • Rsvd
    These bits are reserved and must have a value of 0.


  • Dialect
    To be use by future versions of the SLP. Must be set to zero.


  • Language Code
    The language encoded in this field indicates the language in which the remainder of the message should be interpreted.


  • Character Encoding
    The characters making up strings within the remainder of this message may be encoded in any standardized encoding.


  • Transaction Identifier (XID)
    This field allows the requester to match replies to individual requests. Note that, whenever there is an Attribute Authentication block, there will also be a URL Authentication block.


SLP header version 2

8

9

10

11

16

32

Version

Function

Length

Length

O

F

R

reserved

Next Ext Offset

Next Ext Offset

XID



  • Version
    Must be set to 2. Version of Service Location Protocol.


  • Function
    Same as in version 1.


  • Length
    The total number of bytes in the message including the SLP header.


  • O, Overflow
    Set when the length of a message exceeds what can fit into a datagram.


  • F, Fresh
    If set and the function is a Service Acknowledgement, the directory agent has registered the service as a new entry, not as an updated entry.


  • R, Request multicast
    Set when multicasting or broadcasting requests.


  • Reserved
    Must be cleared to zero.


  • Next Ext Offset
    Cleared to 0 unless extensions are used. The first extension begins at 'offset' bytes, from the message's beginning. It is placed after the SLP message data.


  • XID, Transaction Identifier
    This field allows the requester to match replies to individual requests. Note that, whenever there is an Attribute Authentication block, there will also be a URL Authentication block.


SLP extensions

Extension

Description

0x0001

Attribute missing.

0x0002

Attribute list.

0x0003

Vendor opaque.

0x0004

Subscribe.

0x0005

NotifyAt.

0x0006

Mesh-enhancement.

0x4001

SLP Local Service Autoderegistration.

0x4002

Selection.

0x4003

Sort.



Top of Page

EXAMPLES

Top of Page


PROTOCOL RELATIONS
Parent layer
Child layer
TCP/UDP
SLP
Top of Page

GLOSSARY
Address
A location of data, usually in main memory or on a disk. You can think of computer memory as an array of storage boxes, each of which is one byte in length. Each box has an address (a unique number) assigned to it. By specifying a memory address, programmers can access a particular byte of data. Disks are divided into tracks and sectors, each of which has a unique address. Usually, you do not need to worry about addresses unless you are a programmer.

A name or token that identifies a network component. In local area networks (LANs), for example, every node has a unique address. On the Internet, every file has a unique address called a URL.

Client
Clinet is a program which requests services of another program. It is a client part of a client-server architecture. Typically, a client is an application that runs on a personal computer or workstation and relies on a server to perform some operations. For example, an e-mail client is an application that enables you to send and receive e-mail.

Configuration
The way a system is set up, or the assortment of components that make up the system. Configuration can refer to either hardware or software, or the combination of both. For instance, a typical configuration for a PC consists of 32MB (megabytes) main memory, a floppy drive, a hard disk, a modem, a CD-ROM drive, a VGA monitor, and the Windows operating system.

DA
Directory Agent (DA) is a process which collects information from Service Agents to provide a single repository of service information in order to centralize it for efficient access by User Agents. There can only be one DA present per given host.

Host
Host is a computer system that is accessed by a user working at a remote location. Typically, the term is used when there are two computer systems connected by modems and telephone lines. The system that contains the data is called the host, while the computer at which the user sits is called the remote terminal.

Host can refer to a computer that is connected to a TCP/IP network, including the Internet. Each host has a unique IP address.

Host can refer to provide the infrastructure for a computer service too. For example, there are many companies that host Web servers. This means that they provide the hardware, software, and communications lines required by the server, but the content on the server may be controlled by someone else.

Internet
A global network connecting millions of computers. More than 100 countries are linked into exchanges of data, news and opinions.

Unlike online services, which are centrally controlled, the Internet is decentralized by design. Each Internet computer, called a host, is independent. Its operators can choose which Internet services to use and which local services to make available to the global Internet community. Remarkably, this anarchy by design works exceedingly well.

There are a variety of ways to access the Internet. Most online services, such as America Online, offer access to some Internet services. It is also possible to gain access through a commercial Internet Service Provider (ISP).

Network
Network is a group of two or more computer systems linked together. There are many types of computer networks, including:
LANs (local-area networks), WANs (wide-area networks), CANs (campus-area networks), MANs (metropolitan-area networks) and HANs (home-area networks).

In addition to these types, the following characteristics are also used to categorize different types of networks: Topology, protocol and architecture.

Register
(n) A, special, high-speed storage area within the CPU. All data must be represented in a register before it can be processed. For example, if two numbers are to be multiplied, both numbers must be in registers, and the result is also placed in a register.

(v) To notify a manufacturer that you have purchased its product. Registering a product is often a prerequisite to receiving customer support, and it is one of the ways that software producers control software piracy.

SA
SA (Security Association) is a group of security settings related to a specific VPN tunnel. A Security Association groups together all the necessary settings needed to create a VPN tunnel. Different SAs may be created to connect branch offices, allow secure remote management, and pass unsupported traffic. All SAs require a specified encryption method, IPSec gateway address and destination network address. IKE includes a shared secret.

SLP
Service Location Protocol (SLP) was originally an Internet Engineering Task Force (IETF) standards track protocol that provides a framework to allow networking applications to discover the existence, location, and configuration of networked services in enterprise networks. Traditionally, in order to locate services on the network, users of network applications have been required to supply the host name or network address of the machine that provides a desired service. SLP can eliminate the need for users to know the names of network hosts. With SLP, the user only needs to know the description of the service he is interested in. Based on this description, SLP is then able to return the URL of the desired service.

Service
The NAS provides a service to the dial-in user, such as PPP or Telnet.

UA
User Agent (UA) is a process working on the user's behalf to acquire service attributes and configuration. The User Agent retrieves service information from the Service Agents or Directory Agents.

Top of Page

REFERENCES
Related links:
                SLP extensions
RFCs:
[RFC 2165] Service Location Protocol.
[RFC 2608] Service Location Protocol, Version 2.
[RFC 2609] Service Templates and Service: Schemes.
                Defines SLP extension 0x0001 (Attribute Missing).
                Defines URI scheme service.
[RFC 2614] An API for Service Location.
[RFC 2926] Conversion of LDAP Schemas to and from SLP Templates.
[RFC 3059] Attribute List Extension for the Service Location Protocol.
                Defines SLP extension 0x0002 (Attribute List).
[RFC 3082] Notification and Subscription for SLP.
                Defines SLP extensions 0x0004 (Subscribe) and 0x0005 (NotifyAt).
[RFC 3105] Finding an RSIP Server with SLP.
[RFC 3111] Service Location Protocol Modifications for IPv6.
[RFC 3224] Vendor Extensions for Service Location Protocol, Version 2.
                Updates: RFC 2608.
[RFC 3421] Select and Sort Extensions for the Service Location Protocol (SLP).
                Defines SLP extensions 0x4002 (Selection) and 0x4003 (Sort).
[RFC 3528] Mesh-enhanced Service Location Protocol (mSLP).
                Defines SLP extension 0x0006 (Mesh Forwarding).
[RFC 3712] Lightweight Directory Access Protocol (LDAP): Schema for Printer Services.
[RFC 3723] Securing Block Storage Protocols over IP.
[RFC 3822] Finding Fibre Channel over TCP/IP (FCIP) Entities Using Service Location Protocol version 2 (SLPv2).
[RFC 3832] Remote Service Discovery in the Service Location Protocol (SLP) via DNS SRV.
[RFC 4018] Finding Internet Small Computer Systems Interface (iSCSI) Targets and Name Servers by Using Service Location Protocol version 2 (SLPv2).
                


Top of Page

OTHER PROTOCOLS OF TCP/IP SUITE
AARP   RRP   RTP Video   RTP Audio   RTP   COPS   Gopher   HSRP   ICP   MPLS   IEEE 802.2   CIP   FTP - Data   FTP - Ctrl   IMAPS   IP Fragment   LDAPS   PUP   MSSQL   RSH   SQL   POP3s   RTELNET   RSVP   STP   VLAN   MSN   H.323   MSRDP   HTTPS   WINS   LPD   GTP   ICMPv6   POP   TELNET   H.225   VRRP   PIM   RARP   SAP   OSPF   RLOGIN   SCTP   SIP   RTCP   PPPoE   Mobile IP   IMAP3   WhoIs   SLP   NCP   PPTP   MGCP   LDAP   L2TP   Kerberos   IPv6   GRE   Ethernet SNAP   AFP   CIFS   IEEE 802.3   Finger   NBDGM   NetBEUI   NBSSN   ESP   EIGRP   EGP   DHCP   CGMP   CDP   BOOTP   AH   NBNS   EthernetII   ICQ   PPP   ARP   RIP   IPX   IGRP   IGMP   SSH   RPC   NetBIOS   TFTP   SNMP   SNA   SMB   RADIUS   NTP   NNTP   UDP   TCP   BGP   DNS   SOCKS   IMAP   RTSP   NFS   ICMP   IP   FTP   Telnet   POP3   SMTP   HTTP  
Search RFCs:

Advanced Search
Search Glossary:
Exact search
Fuzzy search


All Protocols
Submit a Request

Recommend an Article

 Layer 7 Application Layer
  AFP
  BOOTP
  CIFS
  CIP
  COPS
  DHCP
  DNS
  Finger
  FTP
  FTP - Ctrl
  FTP - Data
  Gopher
  HSRP
  HTTP
  HTTPS
  ICP
  ICQ
  IMAP
  IMAP3
  IMAPS
  Kerberos
  LPD
  MGCP
  MSN
  MSRDP
  MSSQL
  NCP
  NFS
  NNTP
  NTP
  POP
  POP3
  POP3s
  RADIUS
  RLOGIN
  RRP
  RSH
  RTCP
  RTELNET
  RTP
  RTP Audio
  RTP Video
  RTSP
  SAP
  SIP
  SLP
  SMB
  SMTP
  SNA
  SNMP
  SOCKS
  SSH
  Telnet
  TELNET
  TFTP
  WhoIs
  WINS
 Layer 6 Presentation Layer
  NBNS
  NBSSN
  NCP
  NetBIOS
 Layer 5 Session Layer
  LDAP
  LDAPS
  NCP
  NetBEUI
  RPC
 Layer 4 Transport Layer
  H.225
  H.323
  NBDGM
  NetBEUI
  PUP
  SCTP
  TCP
  UDP
 Layer 3 Network Layer
  AARP
  AH
  BGP
  EGP
  EIGRP
  ESP
  GRE
  GTP
  ICMP
  ICMPv6
  IGMP
  IGRP
  IP
  IP Fragment
  IPv6
  IPX
  Mobile IP
  MPLS
  OSPF
  PIM
  PPPoE
  RIP
  RSVP
  STP
  VRRP
 Layer 2 Data Link Layer
  ARP
  CDP
  CGMP
  Ethernet SNAP
  EthernetII
  IEEE 802.2
  IEEE 802.3
  L2TP
  PPP
  PPTP
  RARP
  SQL
  VLAN
 Layer 1 Physical Layer
© 2006 - 2007 Colasoft Co., Ltd. All rights reserved.