IP Library Granted Patent US 7,558,862
Granted Patent B1
US 7,558,862 · App. 11/009,590 · Granted Jul 7, 2009

Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,558,862
App. No.
11/009,590
Granted
Jul 7, 2009
Kind
B1
Abstract

A remote access session is established between client and host computers with the assistance of a gateway. The gateway requests the host computer to send a plurality of data packets to different external addresses and monitors the network ports used for these outgoing packets. The gateway then uses the network port information to predict which port the host will use to transmit future outgoing data packets. A similar process is performed on the client computer. The gateway then directs the client computer to send further data packets to the network address and the predicted port of the host computer. Similarly, the host computer is directed to send further data packets to the network address and predicted port of the client computer. The computers are then directly connected together so that further data communications bypass the gateway.

Claims (40)

1. 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.

2. The method of claim 1 wherein step (c) comprises:

(c1) establishing the peer-to-peer connection between the client computer and the host computer using UDP; and

(c2) after the peer-to-peer connection has been established in step (c1), establishing a second connection between the client computer and the host computer using TCP.

3. The method of claim 2 wherein step (c2) comprises determining whether the client computer and the host computer are capable of establishing a connection using TCP and only attempting to establish the second connection when both the client computer and the host computer are capable of establishing a connection using TCP.

4. The method of claim 2 wherein step (c2) comprises determining whether the client computer and the host computer are capable of establishing the second connection using TCP and when at least one of the client computer and the host computer are not capable of establishing the second connection using TCP, controlling that computer to temporarily open a port to allow the second connection to be established.

5. The method of claim 2 wherein step (c2) comprises replacing the peer-to-peer connection established in step (c1) with the second connection established in step (c2).

6. The method of claim 2 wherein step (c2) comprises building the second connection established in step (c2) over the peer-to-peer connection established in step (c1).

7. The method of claim 1 wherein step (a) comprises securing the connection between the client computer and the host computer through the gateway by encrypting the given information passing through the gateway.

8. The method as described in claim 1 wherein the remote access operation is a remote control operation.

9. An Internet-accessible gateway to facilitate communications between a client computer and a host computer, comprising:

a processor;

code executed by the processor to perform the following method steps:

establishing and maintaining a connection to the host computer;

in response to a user at the client computer attempting to connect to the host computer, attempting to establish a connection to the client computer;

upon establishing a communication path between the host computer and the client computer through the gateway, transferring commands and data through the communication path to initiate a remote access operation with respect to the host computer;

after the communication path between the host computer and the client computer through the gateway has been established, attempting, one or more times, to establish 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;

and if and when the peer-to-peer connection has been established, transmitting the further commands and data associated with the remote access operation over the peer-to-peer connection between the client computer and the host computer instead of over the communication path through the Internet-accessible gateway, wherein if the peer-to-peer connection cannot be established, the remote access operation is still carried out over the communication path.

10. The Internet-accessible gateway as described in claim 9 wherein the peer-to-peer connection is established between the client computer and the host computer using UDP.

11. The Internet-accessible gateway as described in claim 10 wherein the method further includes:

attempting to establish a new connection between the client computer and the host computer over the UDP peer-to-peer connection.

12. The Internet-accessible gateway as described in claim 11 wherein the method further includes using the new connection to transfer data between the client computer and the host computer.

13. The Internet-accessible gateway as described in claim 12 wherein the new connection is based on TCP.

14. The Internet-accessible gateway as described in claim 9 wherein the method further includes communicating data between the client computer and the host computer through the gateway and using TCP if the peer-to-peer connection cannot be established or fails.

15. The Internet-accessible gateway as described in claim 9 wherein the method further includes encrypting traffic between the client computer and the host computer.

16. The Internet-accessible gateway as described in claim 9 wherein the remote access operation is a remote control operation.

Assignments (15)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 053667/0169, REEL/FRAME 060450/0171, REEL/FRAME 063341/0051) Recorded Mar 15, 2024
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: GOTO GROUP, INC. (F/K/A LOGMEIN, INC.)
Reel/Frame 066800/0145 →
SECURITY INTEREST Recorded Feb 16, 2024
From: GOTO COMMUNICATIONS, INC.; GOTO GROUP, INC.; LASTPASS US LP
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS THE NOTES COLLATERAL AGENT
Reel/Frame 066614/0355 →
SECURITY INTEREST Recorded Feb 16, 2024
From: GOTO COMMUNICATIONS, INC.,; GOTO GROUP, INC., A; LASTPASS US LP,
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS THE NOTES COLLATERAL AGENT
Reel/Frame 066614/0402 →
SECURITY INTEREST Recorded Feb 7, 2024
From: GOTO GROUP, INC.,; GOTO COMMUNICATIONS, INC.; LASTPASS US LP
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 066508/0443 →
CHANGE OF NAME Recorded Apr 8, 2022
From: LOGMEIN, INC.
To: GOTO GROUP, INC.
Reel/Frame 059644/0090 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (SECOND LIEN) Recorded Feb 16, 2021
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: LOGMEIN, INC.
Reel/Frame 055306/0200 →
NOTES LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 053667/0032 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 053667/0079 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 053667/0169 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 35624/0662 Recorded Aug 31, 2020
From: JPMORGAN CHASE BANK, N.A.
To: LOGMEIN, INC.
Reel/Frame 053650/0902 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 041588/0143 Recorded Aug 31, 2020
From: JPMORGAN CHASE BANK, N.A.
To: LOGMEIN, INC.; GETGO, INC.
Reel/Frame 053650/0978 →
SECURITY INTEREST Recorded Feb 1, 2017
From: GETGO, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 041588/0143 →
SECURITY INTEREST Recorded May 13, 2015
From: LOGMEIN, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035624/0662 →
CHANGE OF NAME Recorded Jun 19, 2007
From: 3AM LABS, INC.
To: LOGMEIN, INC.
Reel/Frame 019445/0977 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2005
From: TYUKASZ, GABOR; ANKA, MARTON B.
To: 3AMLABS
Reel/Frame 016389/0462 →