Support for WS-Discovery

The discovery library is a .NET class library that implements the WS-Discovery protocol.

The WS-Discovery protocol uses SOAP and UDP (User Datagram Protocol) multicast to enable services to be discovered by a client. In the RFID world, services discovered are RFID devices and the client is a provider. WS-Discovery has four types of messages:

  • Hello. A service sends a Hello message by using UDP multicast when it joins a network.

  • Bye. A service sends a Bye message when it prepares to leave the network.

  • Probe. A client sends a Probe message by using UDP multicast looking for services it is interested in. Matching services respond with ProbeMatch messages.

  • Resolve. A client sends a Resolve message by using UDP multicast to find out transport addresses for services. Matching services respond with ResolveMatch messages.

The multicast address used is on IPV4 networks and [FF02::C] on IPV6 networks. In both cases, multicast messages are sent to port 3702. Several components in Windows Vista such as "People Near Me" and "Computers Near Me" use the WS-Discovery protocol. The detailed specification for the WS-Discovery protocol can be found at

A provider writer can use the discovery library to provide support for discovering RFID devices by using the WS-Discovery protocol. The Microsoft.Rfid.Discovery assembly has the implementation for the discovery library.

The discovery library supports receiving Hello and Bye messages from Web services on devices when they join the network and when they leave the network. The discovery library also supports probing for RFID devices based on the type of the device and/or the scope in which the service on the device resides. The discovery library does not support sending a Resolve message, a message sent by a client searching for a target service by name.

The discovery library depends on the Windows Communication Foundation (WCF) 3.0 framework.

The WS-Discovery protocol uses the UDP port 3702. Therefore, for the protocol to work, you should add an exception for port 3702 on a computer with a firewall installed. The scope for the exception can be My network (subnet) only.

See Also

© 2013 Microsoft Corporation. All rights reserved.