1.3.8 Server Redirection
A client connection can be redirected to a specific session on another server by using the Server Redirection PDU (section 2.2.13). This enables basic load-balancing scenarios, as shown in the following figure.
Figure 4: Basic server redirection
Assume that User A has an existing session on Server S1 (Session #3). Both Server S1 and Server S2 are able to communicate with a Connection Broker.
User A uses Client C to connect to Server S2 and authenticate.
Server S2 communicates with the Connection Broker and is informed that User A has an existing session on Server S1 (Session #3).
Server S2 sends a Redirection PDU to Client C, which contains:
The name of the target server (S1).
The target Session ID (Session #3).
The login credentials to use for Server S1 (if necessary).
Client C closes the connection to Server S2 and initiates a connection to Server S1. As part of the connection initialization data sent to Server S1, Client C sends the login credentials and requests a connection to Session #3.
Server S1 validates the login credentials, and, if they are correct, connects Client C to Session #3.
If Client C cannot connect directly to Server S1, the Redirection PDU has to contain a variable-length routing token that contains the information required by Server S2 to redirect the client connection appropriately. The client places this token into the X.224 Connection Request PDU (section 2.2.1.1) of the RDP Connection Sequence and then reconnects it back to Server S2. Server S2 reads the routing token and then redirects the X.224 Connection Request and all future traffic from Client C to Server S1.
For more information about load balancing of Remote Desktop sessions and the routing token format, see [MSFT-SDLBTS] sections "Load-Balanced Configurations", "Revectoring Clients", and "Routing Token Format".