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 first network disconnected from and not routable to the 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, a signal to establish the communication session;
(d) communicating, by the server, to the first computing device a first network address comprising a network address of the second computing device 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, and providing the first computing device a second network address for the second computing device, 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.
8 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.
-
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 first network disconnected from and not routable to the 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, a signal to establish the communication session;
(d) communicating, by the server, to the first computing device a first network address comprising a network address of the second computing device 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, and providing the first computing device a second network address for the second computing device, 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 first network disconnected from and not routable to the 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 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, and providing the first computing device a second network address for the second computing device, 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 first network disconnected from and not routable to the second network, the system comprising:
-
a first computing device on the first network;
a second computing device on the second network;
a third computing device establishing a first tunneling session with the first computing device and a second tunneling session with the second computing device;
a server accessible via the third computing device;
wherein;
the server communicates via the third computing device to the first computing device a first network address comprising a network address of the second computing device associated with the second tunneling session;
the first computing device communicates 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 intercepts the first request, and provides the first computing device a second network address for the second computing device, the second network address comprising a public network address associated with the second computing device; and
the third computing device communicates a second request to the second computing device to allow a 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 gateway 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 first network disconnected from and not routable to the second network, the gateway comprising:
-
a means for establishing a first tunneling session with the first computing device on a first network;
a means for establishing a second tunneling session with the second computing device on the second network;
a means for receiving a request by the first computing device to initiate a communication session with the second computing device;
a means 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 associated with the second tunneling session;
a means for receiving a request by the first computing device to initiate a connection with the second computing device using the first network address;
a means for intercepting the request to initiate the connection, and providing the first computing device a second network address for the second computing device, the second network address comprising a public network address associated with the second computing device; and
a means for 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 (44, 45, 46, 47, 48)
-
Specification