The SQL Server Resolution Protocol is a simple application-level protocol that is used for the transfer of requests and responses between clients and database server discovery services. In such a system, the client either (i) sends a single request to a specific machine and expects a single response, or (ii) broadcasts or multicasts a request to the network and expects zero or more responses from different discovery services on the network. The first case is used for the purpose of determining the communication endpoint information of a particular database instance, whereas the second case is used for enumeration of database instances in the network and to obtain the endpoint information of each instance.
The SQL Server Resolution Protocol does not include any facilities for authentication, protection of data, or reliability. The SQL Server Resolution Protocol is always implemented on top of the UDP Transport Protocol [RFC768].
In the case of endpoint determination for a single instance, the following diagram depicts a typical flow of communication.
Figure 1: Communication flow for single-instance endpoint discovery
Conversely, in the case of a broadcast/multicast request, the following diagram applies.
Figure 2: Communication flow for multiple-instance endpoint discovery
In the case of a broadcast or multicast request, the client does not necessarily know the number of responses that it can expect. As a result, it is reasonable for the client to enforce a time limitation during which it waits for responses. Because some servers might not respond quickly enough or might not receive the request (highly dependent on network topology), the broadcast/multicast request for multiple-instance endpoint information is considered nondeterministic.