Provides a set of constraints, low-level utility classes, and provider interfaces for participating in versions 1 and 2 of the multicast request, multicast announcement, and unicast discovery protocols.

The {@link com.sun.jini.discovery.DiscoveryProtocolVersion}, {@link com.sun.jini.discovery.MulticastMaxPacketSize}, {@link com.sun.jini.discovery.MulticastTimeToLive} and {@link com.sun.jini.discovery.UnicastSocketTimeout} classes represent constraints which can be applied to multicast and unicast discovery. The {@link com.sun.jini.discovery.DiscoveryConstraints} class offers convenience methods for querying the values expressed by groups of these constraints. The {@link com.sun.jini.discovery.Discovery} class provides methods implementing various low-level discovery protocol operations, such as encoding and decoding multicast packet contents and unicast discovery data. These methods accept as arguments instances of the {@link com.sun.jini.discovery.MulticastRequest}, {@link com.sun.jini.discovery.MulticastAnnouncement} and {@link com.sun.jini.discovery.UnicastResponse} classes, which represent the values (independent of protocol details) to be transmitted by multicast requests, multicast announcements, and unicast discovery.

The Discovery class implements both versions 1 and 2 of the discovery protocols. For version 2 of the protocols, it accepts pluggable format providers, specified via resource using the {@link com.sun.jini.discovery.DiscoveryFormatProvider} interface, which implement the {@link com.sun.jini.discovery.MulticastRequestEncoder}, {@link com.sun.jini.discovery.MulticastRequestDecoder}, {@link com.sun.jini.discovery.MulticastAnnouncementEncoder}, {@link com.sun.jini.discovery.MulticastAnnouncementDecoder}, {@link com.sun.jini.discovery.UnicastDiscoveryClient}, and {@link com.sun.jini.discovery.UnicastDiscoveryServer} format provider sub-interfaces. @see "Jini Discovery and Join Specification"