Systems and methods for facilitating a peer to peer route via a gateway
First Claim
1. A method for establishing a peer to peer communication session between a first computing device on a first network and a second computing device on a second network, the method comprising the steps of:
- (a) establishing, by the first computing device, a first tunneling session with a third computing device, and establishing, by the second computing device, a second tunneling session with the third computing device;
(b) initiating, by the first computing device, a communication session to the second computing device via the third computing device;
(c) receiving, by a server via the third computing device, a signal to establish the communication session;
(d) communicating, by the server, via the third computing device to the first computing device, a first network address comprising a network address of the second computing device on a private network associated with the second tunneling session;
(e) communicating, by the first computing device, a request to initiate a connection with the second computing device using the first network address;
(f) intercepting, by the third computing device, the request, determining,based on the network address of the second computing device on the private network, that communication quality is to be improved with a direct connection between the first and second computing device bypassing the third computing device, and providing the first computing device a second network address for the second computing device response to the determination, the second network address comprising a public network address associated with the second computing device; and
(g) communicating, by the third computing device, a request to the second computing device to allow a connection from the first computing device using the second network address.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention is generally directed towards a remote access architecture for providing peer-to-peer communications and remote access connectivity. In one embodiment, the remote access architecture of the present provides a method for establishing a direct connection between peer computing devices via a third computing device, such as a gateway. Additionally, the present invention provides the following techniques to optimize peer-to-peer communications: 1) false acknowledgement of receipt of network packets allowing communications via a lossless protocol of packets constructed for transmission via a lossy protocol, 2) payload shifting of network packets allowing communications via a lossless protocol of packets constructed for transmission via a lossy protocol, 3) reduction of packet fragmentation by adjusting the maximum transmission unit (MTU) parameter, accounting for overhead due to encryption, 4) application-aware prioritization of client-side network communications, and 5) network disruption shielding for reliable and persistent network connectivity and access.
813 Citations
48 Claims
-
1. A method for establishing a peer to peer communication session between a first computing device on a first network and a second computing device on a second network, the method comprising the steps of:
-
(a) establishing, by the first computing device, a first tunneling session with a third computing device, and establishing, by the second computing device, a second tunneling session with the third computing device; (b) initiating, by the first computing device, a communication session to the second computing device via the third computing device; (c) receiving, by a server via the third computing device, a signal to establish the communication session; (d) communicating, by the server, via the third computing device to the first computing device, a first network address comprising a network address of the second computing device on a private network associated with the second tunneling session; (e) communicating, by the first computing device, a request to initiate a connection with the second computing device using the first network address; (f) intercepting, by the third computing device, the request, determining,based on the network address of the second computing device on the private network, that communication quality is to be improved with a direct connection between the first and second computing device bypassing the third computing device, and providing the first computing device a second network address for the second computing device response to the determination, the second network address comprising a public network address associated with the second computing device; and (g) communicating, by the third computing device, a request to the second computing device to allow a connection from the first computing device using the second network address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. In a gateway, a method for establishing a peer to peer communication session between a first computing device on a first network and a second computing device on a second network, the method comprising the steps of:
-
(a) establishing a first tunneling session with the first computing device on a first network; (b) establishing a second tunneling session with the second computing device on the second network; (c) receiving a request by the first computing device to initiate a communication session with the second computing device; (d) providing to the first computing device a first network address for contacting the second computing device, the first network address comprising a network address of the second computing device on a private network associated with the second tunneling session; (e) receiving a request by the first computing device to initiate a connection with the second computing device using the first network address; (f) intercepting the request to initiate the connection, determining, based on the network address of the second computing device on the private network, that communication quality is to be improved with a direct connection between the first and second computing devices bypassing the gateway, and providing the first computing device a second network address for the second computing device in response to the determination, the second network address comprising a public network address associated with the second computing device; and (g) communicating to the second computing device a request to allow the connection from the first computing device to the second computing device using the second network address. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25. A system for establishing a peer to peer communication session between a first computing device on a first network and a second computing device on a second network via a third computing device, the system comprising:
-
a first computing device on the first network; a second computing device on the second network; a third computing device configured to establish a first tunneling session with the first computing device and a second tunneling session with the second computing device; a server computing device accessible via the third computing device; wherein; the server computing device is configured to communicate via the third computing device to the first computing device a first network address comprising a network address of the second computing device on a private network associated with the second tunneling session; the first computing device is configured to communicate via the third computing device a first request to initiate a connection with the second computing device using the first network address; the third computing device is configured to intercept the first request, determine, based on the network address of the second computing device on the private network, that communication quality is to be improved with a direct connection between the first and second computing devices bypassing the third computing device, and provide the first computing device a second network address for the second computing device in response to the determination, the second network address comprising a public network address associated with the second computing device; and
the third computing device is configured to communicate a second request to the second computing device to allow the direct connection from the first computing device using the second network address.- View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A system for establishing a peer to peer communication session between a first computing device on a first network and a second computing device on a second network, the system comprising:
-
a gateway computing device configured for establishing a first tunneling session with the first computing device on a first network, and for establishing a second tunneling session with the second computing device on the second network, and configured for receiving a request by the first computing device to initiate a communication session with the second computing device; and a server computing device configured for providing to the first computing device a first network address for contacting the second computing device, the first network address comprising a network address of the second computing device on a private network associated with the second tunneling session; wherein the gateway computing device is configured for receiving a request by the first computing device to initiate a connection with the second computing device using the first network address, intercepting the request to initiate the connection, determining, based on the network address of the second computing device on the private network, that communication quality is to be improved with a direct connection between the first and second computing devices bypassing the gateway computing device, providing the first computing device a second network address for the second computing device in response to the determination, the second network address comprising a public network address associated with the second computing device, and communicating to the second computing device a request to allow the direct connection from the first computing device to the second computing device using the second network address. - View Dependent Claims (44, 45, 46, 47, 48)
-
Specification