The Service Location Protocol (SLP) directory agent (DA) is an optional component of SLP that collects network service broadcasts. The DA is primarily used to simplify SLP administration and to improve SLP performance.
The SLP DA can be thought of as an intermediate tier in the SLP architecture, placed between the user agents (UAs) and the service agents (SAs), such that both UAs and SAs communicate only with the DA instead of with each other. This eliminates a large portion of the multicast request or reply traffic on the network, and it protects the SAs from being overwhelmed by too many service requests if there are many UAs in the environment.
When SLP DAs are present, the behavior of both SAs and UAs changes significantly. When an SA is first initializing, it performs a DA discovery using a multicast service request and specifies the special, reserved service type service:directory-agent. This process is also called active DA discovery, and it is achieved through the same mechanism as any other discovery using SLP.
Similarly, in most cases, an SLP UA also performs active DA discovery using multicasting when it first starts up. However, if the SLP UA is statically configured with one or more DA addresses, it uses those addresses instead. If it is aware of one or more DAs, either through static configuration or active discovery, it sends unicast service requests to those DAs instead of multicasting to SAs. The DA replies with unicast service replies, providing the requested service Uniform Resource Locators (URLs) and attributes.
The SLP DA functions very similarly to an SLP SA, receiving registration and unregistration requests, and responding to service requests with unicast service replies. There are a couple of differences, however, where DAs provide more functionality than SAs. One area, mentioned previously, is that DAs respond to service requests of the service:directory-agent service type with a DA advertisement response message, passing back a service URL containing the DA's IP address. This allows SAs and UAs to perform active discovery on DAs. One other difference is that when a DA first initializes, it sends out a multicast DA advertisement message to advertise its services to any existing SAs (and UAs) that might already be active on the network. UAs can optionally listen for, and SAs are required to listen for, such advertisement messages. This listening process is also sometimes called passive DA discovery. When the SA finds a new DA through passive DA discovery, it sends registration requests for all its currently registered services to that new DA.