1.3.3 UDP Transport

The RDGUDP Protocol is designed for tunneling graphics and the audio and video data for remote connections from RDG clients originating on the Internet to target servers behind a firewall.<6>

The protocol creates a tunnel (2) object on the RDG client and then uses the tunnel to establish a channel between the RDG client and the target server with the RDG server acting as a proxy. Data transfer between the RDG client and the target server occurs by using the channel. The tunnel and channel maintain active connections.

Communication from the RDG client to the RDG server and from the RDG server to the RDG client is accomplished using UDP. The RDG client performs the DTLS handshake with the RDG server to establish a secure channel. To ensure that the RDG server is reachable from the RDG client, the first packet during the DTLS handshake is sent in a reliable manner from the RDG client to the RDG server. After the DTLS handshake is complete, the RDG client sends a CONNECT_PKT Structure (section 2.2.11.3) packet to the RDG server in a reliable manner until it receives a CONNECT_PKT_RESP Structure (section 2.2.11.4) packet in response. After the connect response is received with a success result code, the UDP channel is ready to transfer Remote Desktop Protocol (RDP) packets.

Before creating the UDP channel (side channel), the RDG client establishes a main channel to the target server through the RDG server.