Columbia University DARPA Internet Real-Time (IRT) Lab

Introduction to mSLP

1. Introduction

The Mesh-enhanced Service Location Protocol (mSLP) enhances SLP with a fully-meshed peering DA architecture. Peer DAs exchange service registration states when they set up a peer relationship and continue to exchange new service registration updates during the entire peering period so as to maintain the same consistent data for shared scopes. mSLP improves the reliability and consistency of SLP directory services. It also simplifies SA registrations in systems with multiple DAs. mSLP is backward compatible with SLPv2 and can be deployed incrementally.

2. Design

Figure 1. mSLP System Architecture

Figure 1 shows the mSLP architecture. In general, mSLP is a lightweight protocol for dynamic directory replication. It has the following main components:

mSLP defined two new SLP message types: (1) Data Request (DataRqst), which is used to request new registration states that have an Accept ID greater the specified Accept ID; (2) Data Reply Complete (DataRplyCmpl), which is used by a mesh-enhanced DA to notify a peer that the replies (via SrvReg/SrvDeReg messages) to a corresponding DataRqst from the peer have been completed. A DataRplyCmpl and its corresponding DataRqst carry the same Accept ID.

mSLP also defined a new SLP extension: Mesh Forwarding (MeshFwd), which is used to carry the Version Timestamp and the Accept ID of a registration update. Two Forwarding IDs (FwdIDs) are defined: RqstFwd and Fwded.

3. Implementation

We implemented mSLP in Java 1.3. It is fully compatible with SLPv2, but with added mesh-enhancement functions. Our implementation has the following features:

The following SLP standard functions are supported: Added mesh-enhancement functions: