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 |
|
|
|
|
|