1.3.1.1.2 Data Transfer Phase

The data transfer phase allows for data transfer between the RDG client and the target server via the RDG server. In this phase, the RDG server acts as a proxy between the RDG client and the target server, as shown in the following diagram.

Connection between the RDG client and the target server via RDG server proxy

Figure 2: Connection between the RDG client and the target server via RDG server proxy

The RDG client establishes a connection to the RDG server which in turn establishes a separate connection to the target server. The resulting logical connection between the RDG client and the target server via the RDG server is called a channel. A channel can only be established within the context of a tunnel (2). The channel is specific to the RDG client and tunnel instance. Multiple channels can exist within a tunnel.

  • Data transfer from the target server to the RDG client via the RDG server using an out pipe: The RDGSP Protocol uses RPC out pipes to stream data from the RDG server to the RDG client. Data from the target server is sent by the RDG server to the RDG client via the out pipe and all of the data is streamed via this pipe. The RPC out pipe is created by using the TsProxySetupReceivePipe (section 3.2.6.2.2) method, which is the fourth call in the protocol sequence. This method can be called only once per channel; however, data is sent from the RDG server to the RDG client multiple times.

  • Data transfer from the RDG client to the target server via the RDG server by using an RPC call: The RDG client uses an RPC method call to send the data that is intended for delivery to the target server by the RDG server. The method call transfers data from the RDG client to the RDG server which then sends the data to the target server. The return value of the method call indicates whether the data transfer was successful. This data transfer operation is accomplished by using the TsProxySendToServer (section 3.2.6.2.1) method, which is the fifth call in the protocol sequence. This method can be called multiple times within a channel.

Message sequence between RDG client and RDG server during data transfer phase

Figure 3: Message sequence between RDG client and RDG server during data transfer phase