Patent ID: 7558862

Claim:
A machine-implemented method for remotely accessing a host computer from a client computer, comprising the ordered steps: (a) establishing a first connection, the first connection being between the host computer and the client computer through a gateway; (b) after the first connection is established, transferring commands and data through the first connection to enable the client computer to initiate a remote access operation with respect to the host computer; (c) after the first connection is established, attempting, one or more times, to establish a second connection, the second connection being a peer-to-peer connection between the client computer and the host computer so that further commands and data associated with the remote access operation can be sent between the client computer and host computer directly, where the peer-to-peer connection between the client computer and the host computer is attempted to be established by performing the following sub-steps at the gateway: instructing the host computer and the client computer to each transmit a plurality of data packets to different external network addresses; monitoring the network addresses for such transmissions; based on the monitoring, predicting a port that the host will use to transmit a future data packet, and predicting a port that the client computer will use to transmit a future data packet; notifying the client computer of the network address and the port that the host is predicted to use to transmit a future data packet; notifying the host computer of the network address and the port that the client computer is predicted to use to transmit a future data packet; (d) if and when the second connection has been established, transmitting the further commands and data associated with the remote access operation over the second connection between the client computer and the host computer instead of over the first connection, wherein if the second connection cannot be established, the remote access operation is still carried out over the first connection.