Prior to version 18, RAS was using the custom UDP handshake to initialize an RDP-UDP tunnel and forward it to the correct machine. With the release of RAS v18 we're using RDP correlation id to identify the tunnel, this change improves the compatibility with 3rd-party Load Balancers and provides the following advantages:
Optimized content delivery (using UDP over RDP) when using Parallels Clients to connect to RAS environment through 3rd party load balancers
- Compatibility with any 3rd-party load balancer capable of forwarding standard RDP-UDP tunnels.
- Improved performance by avoiding the initialization handshake.
RDP-UDP Initialization Packet
|(CLIENT_INITRUDP_QUERY)||DWORD dwFlags||// Support added in RAS v14.0|
|#define CORF_FLAG_SUPPORTSRUDP 0x0001|
|// Support added after RAS v14.x|
|#define CORF_FLAG_SUPPORTSDTLS 0x0002|
|#define CORF_FLAG_SUPPORTSGWIP 0x0004|
|// Support added in RAS v18|
|#define CORF_FLAG_SUPPORTSEXT 0x0008|
|#define CORF_FLAG_SUPPORTSIPV6 0x0010|
|Payload||DWORD dwGatewayStrLen||BYTE if CORF_FLAG_SUPPORTSIPV6 flag is set|
|CHAR <# Gateway IP #>|
Note: Items in RED were introduced in v18