Export (0) Print
Expand All

2.2.13.1 Server Redirection Packet (RDP_SERVER_REDIRECTION_PACKET)

The RDP_SERVER_REDIRECTION_PACKET structure contains information to enable a client to reconnect to a session on a specified server. This data is sent to a client in a Redirection PDU to enable load-balancing of Remote Desktop sessions across a collection of machines. For more information about the load balancing of Remote Desktop sessions, see [MSFT-SDLBTS] "Load-Balanced Configurations" and "Revectoring Clients".


0

1

2

3

4

5

6

7

8

9
1
0

1

2

3

4

5

6

7

8

9
2
0

1

2

3

4

5

6

7

8

9
3
0

1

Flags

Length

SessionID

RedirFlags

TargetNetAddressLength (optional)

TargetNetAddress (variable)

...

LoadBalanceInfoLength (optional)

LoadBalanceInfo (variable)

...

UserNameLength (optional)

UserName (variable)

...

DomainLength (optional)

Domain (variable)

...

PasswordLength (optional)

Password (variable)

...

TargetFQDNLength (optional)

TargetFQDN (variable)

...

TargetNetBiosNameLength (optional)

TargetNetBiosName (variable)

...

TsvUrlLength (optional)

TsvUrl (variable)

...

TargetNetAddressesLength (optional)

TargetNetAddresses (variable)

...

Pad (optional)

...

Flags (2 bytes): A 16-bit unsigned integer. The server redirection identifier. This field MUST be set to SEC_REDIRECTION_PKT (0x0400).

 

Length (2 bytes): A 16-bit unsigned integer. The overall length, in bytes, of the Server Redirection Packet structure.

SessionID (4 bytes): A 32-bit unsigned integer. The session identifier to which the client MUST reconnect. This identifier MUST be specified in the RedirectSessionID field of the Client Cluster Data (section 2.2.1.3.5) if a reconnect attempt takes place. The Client Cluster Data is transmitted as part of the MCS Connect Initial PDU (section 2.2.1.3).

RedirFlags (4 bytes): A 32-bit unsigned integer. A bit field that contains redirection information flags, some of which indicate the presence of additional data at the end of the packet.

Flag Meaning

LB_TARGET_NET_ADDRESS
0x00000001

Indicates that the TargetNetAddressLength and TargetNetAddress fields are present.

LB_LOAD_BALANCE_INFO
0x00000002

Indicates that the LoadBalanceInfoLength and LoadBalanceInfo fields are present.

LB_USERNAME
0x00000004

Indicates that the UserNameLength and UserName fields are present.

LB_DOMAIN
0x00000008

Indicates that the DomainLength and Domain fields are present.

LB_PASSWORD
0x00000010

Indicates that the PasswordLength and Password fields are present.

LB_DONTSTOREUSERNAME
0x00000020

Indicates that when reconnecting, the client MUST send the username specified in the UserName field to the server in the Client Info PDU (section 2.2.1.11.1.1).

LB_SMARTCARD_LOGON
0x00000040

Indicates that the user can use a smart card for authentication.

LB_NOREDIRECT
0x00000080

Indicates that the contents of the PDU are for informational purposes only. No actual redirection is required.

LB_TARGET_FQDN
0x00000100

Indicates that the TargetFQDNLength and TargetFQDN fields are present.

LB_TARGET_NETBIOS_NAME
0x00000200

Indicates that the TargetNetBiosNameLength and TargetNetBiosName fields are present.

LB_TARGET_NET_ADDRESSES
0x00000800

Indicates that the TargetNetAddressesLength and TargetNetAddresses fields are present.

LB_CLIENT_TSV_URL
0x00001000

Indicates that the TsvUrlLength and TsvUrl fields are present.<27>

LB_SERVER_TSV_CAPABLE
0x00002000

Indicates that the server supports redirection based on the TsvUrl present in the LoadBalanceInfo sent by the client.<28>

TargetNetAddressLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the TargetNetAddress field.

TargetNetAddress (variable): A variable-length array of bytes containing the IP address of the server (for example, "192.168.0.1" using dotted decimal notation) in Unicode format, including a null-terminator.

LoadBalanceInfoLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the LoadBalanceInfo field.

LoadBalanceInfo (variable): A variable-length array of bytes containing load balancing information that MUST be treated as opaque data by the client and passed to the server if the LB_TARGET_NET_ADDRESS (0x00000001) flag is not present in the RedirFlags field and a reconnection takes place. See section 3.2.5.3.1 for details on populating the routingToken field of the X.224 Connection Request PDU (section 2.2.1.1).

UserNameLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the UserName field.

UserName (variable): A variable-length array of bytes containing the username of the user in Unicode format, including a null-terminator.

DomainLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the Domain field.

Domain (variable): A variable-length array of bytes containing the domain to which the user connected in Unicode format, including a null-terminator.

PasswordLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the Password field.

Password (variable): A variable-length array of bytes containing the password used by the user in Unicode format, including a null-terminator or a cookie value that MUST be passed to the target server on successful connection.

TargetFQDNLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the TargetFQDN field.

TargetFQDN (variable): A variable-length array of bytes containing the fully qualified domain name (FQDN) of the target machine, including a null-terminator.

TargetNetBiosNameLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the TargetNetBiosName field.

TargetNetBiosName (variable): A variable-length array of bytes containing the NETBIOS name of the target machine, including a null-terminator.

TsvUrlLength (4 bytes): The length, in bytes, of the TsvUrl field.<29>

TsvUrl (variable): A variable-length array of bytes.<30> If the client has previously sent a TsvUrl field in the LoadBalanceInfo to the server in the expected format, then the server will return the same TsvUrl to the client in this field. The client verifies that it is the same as the one that it previously passed to the server and if they don’t match, the client immediately disconnects the connection.

TargetNetAddressesLength (4 bytes): A 32-bit unsigned integer. The length, in bytes, of the TargetNetAddresses field.

TargetNetAddresses (variable): A variable-length array of bytes containing the target IP addresses of the server to connect against, stored in a Target Net Addresses structure (section 2.2.13.1.1).

Pad (8 bytes): An optional 8-element array of 8-bit unsigned integers. Padding. Values in this field MUST be ignored.

 
Show:
© 2014 Microsoft