Service Location Protocol Administration Guide

Accommodating Different Network Media, Topology, or Configuration

Depending on the underlying network media and configuration in your network, you can tune SLP performance by modifying one of the following parameters:

This section describes how to use these properties to tune SLP performance.

Reducing the Interval Between SA Reregistrations

SAs need to periodically refresh their service advertisements before the lifetime expires. If a DA is handling an extremely heavy load from many UAs and SAs, frequent refreshes can cause the DA to become overloaded. If the DA becomes overloaded, UA requests start timing out and are dropped. Timing out of UA requests has many possible causes, so before assuming that DA overloading is the problem, you should use a snoop trace to check the lifetimes of service advertisements registered with a service registration. If the lifetimes are short and reregistrations are occurring often, then timeouts are probably due to too-frequent reregistrations. A service registration is a reregistration if the fresh flag is not set. See Appendix A, SLP Message Types for more information on service registration messages.

The following example sets the minimum refresh interval for SAs to one hour:


net.slp.DAAttributes=(min-refresh-interval=3600)

The net.slp.DAAttributes property has units of seconds. The default minimum reregistration period is zero (0), so that an SA is free to reregister whenever it chooses.

Configuring the Multicast Time to Live Property

The multicast time to live (net.slp.multicastTTL property) determines the range over which a multicast packet is propagated in your intranet. The multicast TTL is configured by setting the net.slp.multicastTTL property to an integer between 1 and 255. The default value of the multicast TTL is 255, which means, theoretically, that the packet routing is unrestricted. However, a TTL of 255 causes a multicast packet to penetrate the intranet to the border routers on the edge of your administrative domain. Correct configuration of multicast on border routers is required to prevent multicast packets from leaking into the Internet's multicast backbone, or to your ISP.

Multicast TTL scoping is similar to standard IP TTL, with the exception that a TTL comparison is made. Each interface on a router that is multicast-enabled is assigned a TTL value. When a multicast packet arrives, the router compares the TTL of the packet with the TTL of the interface. If the TTL of the packet is greater than or equal to the TTL of the interface, the packet TTL is reduced by one, as is the case with the standard IP TTL. If the TTL becomes zero, the packet is discarded. Therefore, using TTL scoping for SLP multicast requires that your routers be properly configured so that packets are limited to a particular subsection of your intranet.

You can reduce the range of multicast propagation by reducing the TTL value. If the TTL value is 1, then the packet is restricted to the subnet. If it is 32, the packet is restricted to the site. Unfortunately, the term site is not defined by RFC 1075, where multicast TTLs are discussed. Values above 32 refer to theoretical routing on the Internet, and should not be used, but values below 32 can be used to restrict multicast to a set of accessible subnets, provided the routers are properly configured with TTLs.

Configuring the Packet Size

The default packet size for SLP is 1400 bytes, and this should be sufficient for most local area networks. For wireless networks or wide area networks, you can reduce the packet size to avoid message fragmentation and reduce network traffic. For local area networks that have larger packets, increasing the packet size can improve performance. You can determine whether the packet size needs to be reduced by checking the minimum packet size for your network. If the network medium has a smaller packet size, setting the net.slp.MTU property is necessary.

You can also increase the packet size if your network medium has larger packets. However, unless the service advertisements from SAs or queries from UAs are frequently overflowing the default packet size, configuration should not be necessary. You can determine whether the default packet size is overflowing frequently by using snoop to check whether UA requests are overflowing often, and rolling over to use TCP instead of UDP.

The net.slp.MTU property measures the complete IP packet size, including the link layer header, the IP header, and the UDP or TCP header, as well as the SLP message.

Configuring Broadcast Instead of Multicast

SLP is designed to use multicast for service discovery in the absence of DAs and for DA discovery. For various reasons, some networks do not deploy multicast routing. If your network does not deploy multicast routing, you can configure SLP to use broadcast by setting the net.slp.isBroadcastOnly property to True.

Unlike multicast, broadcast packets do not propagate across subnets by default. For this reason, service discovery without DAs in a non-multicast network works only on a single subnet. In addition, special considerations are required when deploying DAs and scopes in networks where broadcast is used. A DA on a multihomed host can bridge service discovery between multiple subnets with multicast disabled. See Chapter 8, Configuring SLP on Multihomed Hosts for more information on deploying DAs on multihomed hosts.