The ability of SLP to automatically discover services that are available on the network, without a lot of setup or configuration, depends in a large part on the use of IP multicasting. There are three methods to send messages across an IP network:
The unicast method is the most common method, which requires that a sender of a message identifies one and only one target for that message. The target IP address is encoded within the message packet, and is used by the routers along the network path to route the packet to the proper destination. If a sender wants to send the same message to multiple recipients, then multiple messages must be generated and placed on the network, one message per recipient. When there are many potential recipients for a particular message, this places an unnecessary strain on the network resources because the same data is duplicated many times. The only difference is the target IP address encoded within the messages.
In cases where the same message must be sent to many targets, the broadcast method is a much better choice than unicast because it puts much less strain on the network. Broadcasting uses a special IP address, 255.255.255.255, which indicates that the message packet is intended to be sent to all nodes in a network. As a result, the sender of a message only needs to generate a single copy of that message and transmit it to multiple recipients, that is, to all members of the network. The routers, in essence, multiplex the message packet because it is sent along all possible routes in the network to reach all possible destinations. This method puts much less strain on the network bandwidth because only a single message stream enters the network, as opposed to one message stream per recipient. However, it puts much more strain on the individual nodes (and routers) in the network because every node receives the message even if every node is not interested in the message. This means that those members of the network that were not the intended recipients but who received the message anyway, must receive and then discard the unwanted message. Due to this inefficiency, in most network configurations, routers are configured to not forward any broadcast traffic, which means that any broadcast messages can only reach nodes on the same subnet as the sender.
Multicasting can be thought of as a more sophisticated broadcast method, which aims to solve some of the inefficiencies inherent in the broadcasting mechanism. With multicasting, as with broadcasting, the sender of a message only has to generate a single copy of the message, saving network bandwidth. However, unlike broadcasting, with multicasting not every member of the network receives the message; only those members who have explicitly expressed an interest in the particular multicast stream receive the message.
Multicasting introduces a concept called a multicast group in which each multicast group is associated with a specific IP address. A particular network node (host) can join one or more multicast groups, which notify the associated routers that there is an interest in receiving multicast streams for those groups. When the sender, who does not necessarily have to be part of the same group, sends messages to a particular multicast group, that message is routed appropriately to only those subnets that contain members of that multicast group. This process avoids the entire network being flooded with the message, as is the case for broadcast traffic.