US 11,677,584 B2
Application TCP tunneling over the public internet
Thanh Q. Ngo, Oregon City, OR (US); and Samuel Revitch, Portland, OR (US)
Assigned to DH2I COMPANY, Fort Collins, CO (US)
Filed by DH2I COMPANY, Fort Collins, CO (US)
Filed on Jun. 17, 2020, as Appl. No. 16/903,933.
Claims priority of provisional application 62/862,438, filed on Jun. 17, 2019.
Prior Publication US 2021/0105151 A1, Apr. 8, 2021
Int. Cl. H04L 12/46 (2006.01); H04L 9/40 (2022.01)
CPC H04L 12/4633 (2013.01) [H04L 63/08 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A computer implemented system for TCP tunneling, the computer system comprising:
a remote client having a client application with client application data, and a client tunnel gateway module;
a plurality of servers operating as a server cluster forming an overlay network in which each server of the plurality of servers maintains an active communication channel with every other server of the plurality of servers, and wherein each server includes one of a plurality of server tunnel gateway modules that each include,
one or more UDP communication sockets wherein each socket mediates connectivity between the client tunnel gateway module and one of the plurality of server tunnel gateway modules, and
wherein the one of the plurality of server tunnel gateway modules forms a list of available tunnels for the client tunnel gateway module; and
one or more server applications communicatively coupled with the one of plurality of server tunnel gateway modules wherein responsive to lack of connectivity between the remote client and the one of the plurality of server tunnel gateway modules, the remote client selects any other available server of the plurality of servers in the overlay network reestablishing connectivity to the one or more server applications from the list of available tunnels, and wherein responsive to the remote client connecting with the one of the one or more server gateways, the server gateway tunnel module creates a client context for the remote client, the client context including a port remap table having an entry for each available tunnel, forming the list of available tunnels.