Methods and apparatus for establishing a computerized device tunnel connection
First Claim
1. A computerized device, comprising:
- at least one communications interface;
a controller; and
an interconnection mechanism coupling the at least one communications interface and the controller;
where the computerized device;
establishes a first tunnel connection with a first gateway;
transmits a first data connection request to the first gateway through the first tunnel connection, the first data connection request requesting establishment of a data connection with a destination device;
receives a notification from the first gateway that the first gateway detected a connection characteristic associated with the data connection request;
establishes a plurality of data connections with the destination device through the first tunnel connection with the first gateway upon receiving the notification;
receives a connection command from the first gateway, the connection command directing the computerized device to establish a second tunnel connection with a second gateway, where the second gateway was chosen by the first gateway based, at least in part, on the connection characteristic;
establishes a second tunnel connection with the second gateway in response to receiving the connection command;
transmits a second data connection request to the second gateway through the second tunnel connection, the second data connection request requesting establishment of a data connection with the destination device;
establishes a data connection with the destination device through the second tunnel connection; and
maintains the first tunnel connection and the plurality of data connections with the destination device upon establishing the data connection with the destination device through the second tunnel connection and determining that a member of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted.
1 Assignment
0 Petitions
Accused Products
Abstract
A client device establishes a first tunnel connection or tunnel, through a public network, with a first gateway of a private network and establishes, through the tunnel connection, a data connection with a destination device within the private network. The first gateway monitors or analyzes the geographic locations of the gateways associated with the private network relative to geographic location of the destination device associated with the data connection. Based upon such the monitoring, the first gateway transmits information to the client device relating to establishment of a second tunnel connection or tunnel with a second gateway of the private network. The client device establishes the second tunnel connection with the second gateway and establishes a data connection with the destination device through the second gateway. By establishing the second tunnel connection with the second gateway, the client device utilizes the bandwidth of the public network to exchange data with the destination device, thereby decreasing data transmission costs to the private network and decreasing private network latency.
-
Citations
12 Claims
-
1. A computerized device, comprising:
-
at least one communications interface; a controller; and an interconnection mechanism coupling the at least one communications interface and the controller; where the computerized device; establishes a first tunnel connection with a first gateway; transmits a first data connection request to the first gateway through the first tunnel connection, the first data connection request requesting establishment of a data connection with a destination device; receives a notification from the first gateway that the first gateway detected a connection characteristic associated with the data connection request; establishes a plurality of data connections with the destination device through the first tunnel connection with the first gateway upon receiving the notification; receives a connection command from the first gateway, the connection command directing the computerized device to establish a second tunnel connection with a second gateway, where the second gateway was chosen by the first gateway based, at least in part, on the connection characteristic; establishes a second tunnel connection with the second gateway in response to receiving the connection command; transmits a second data connection request to the second gateway through the second tunnel connection, the second data connection request requesting establishment of a data connection with the destination device; establishes a data connection with the destination device through the second tunnel connection; and maintains the first tunnel connection and the plurality of data connections with the destination device upon establishing the data connection with the destination device through the second tunnel connection and determining that a member of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a first gateway, a method for directing a tunnel connection between a client device and a second gateway, the method comprising:
-
establishing a first tunnel connection with the client device; monitoring a connection characteristic associated with a data connection request transmittal from the client device; permitting establishment of a plurality of data connections from the client device to a destination device through the first tunnel connection upon detecting the connection characteristic associated with the data connection request; transmitting, to the client device, a connection command, the connection command directing the client device to establish a second tunnel connection with a second gateway; and maintaining the first tunnel connection and the plurality of data connections between the client device and the destination device upon determining that the client device established the second tunnel connection with the second gateway and detecting that an existing data connection of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted. - View Dependent Claims (7, 8)
-
-
9. A computerized device, comprising:
-
at least one communications interface; a controller; and an interconnection mechanism coupling the at least one communications interface and the controller; wherein the computerized device; establishes a first tunnel connection with a client device; monitors a connection characteristic associated with a data connection request transferred from the client device; permitting establishment of a plurality of data connections from the client device to a destination device through the first tunnel connection upon detecting the connection characteristic associated with the data connection request; transmits, to the client device, a connection command, the connection command directing the client device to establish a second tunnel connection with a second gateway; and maintains the first tunnel connection and the plurality of data connections between the client device and the destination device upon determining that the client device established the second tunnel connection with the second gateway and detecting that an existing data connection of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted.
-
-
10. A method, comprising:
-
establishing a first tunnel connection from a client device to a first gateway; establishing a plurality of data connections, through the first tunnel connection with the first gateway, from the client device to a destination device, where the plurality of data connections depend, at least in part, on a connection characteristic; transmitting a first data connection request from the client device to the first gateway through the first tunnel connection, the first data connection request requesting establishment of a data connection between the client device and the destination device; receiving, at the client device, a connection command from the first gateway, the connection command directing the client device to establish a second tunnel connection with a second gateway, where the second gateway was chosen by the first gateway based, at least in part, on a detection of a connection characteristic associated with the first data connection request; establishing a second tunnel connection with a second gateway in response to receiving the connection command; transmitting a second data connection request from the client device to the second gateway through the second tunnel connection, the second data connection request requesting establishment of a data connection with the destination device; establishing a data connection between the client device and the destination device through the second tunnel connection; and in response to establishing the data connection between the client device and the destination device through the second tunnel connection, detecting that an existing data connection of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted; and in response, maintaining the first tunnel connection between the client device and the first gateway, such that the plurality of data connections between the client device and the destination device through the first tunnel connection are also maintained.
-
-
11. In a first gateway, a method for directing a tunnel connection between a client device and a second gateway, the method comprising:
-
Establishing a first tunnel connection with the client device; monitoring a connection characteristic associated with a data connection request transmittal from the client device; detecting the connection characteristic associated with the data connection request; in response to detecting the connection characteristic, permitting establishment of a plurality of data connections, through the first tunnel connection, from the client device to a destination device; transmitting, to the client device, a connection command, the connection command directing the client device to establish a second tunnel connection with a second gateway; determining that the client device established the second tunnel connection with the second gateway; in response, detecting that an existing data connection of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted; and in response, maintaining the first tunnel connection such that the plurality of data connections between the client device and the destination device through the first tunnel connection are also maintained.
-
-
12. A computerized device, comprising:
-
at least one communications interface; a controller; and an interconnection mechanism coupling the at least one communications interface and the controller; where the computerized device; establishes a first tunnel connection with a client device; monitors a connection characteristic associated with a data connection request transferred from the client device; detects the connection characteristic associated with the data connection request; and transmits, to the client device, a connection command, the connection command directing the client device to establish a second tunnel connection with a second gateway in response to detecting the connection characteristic, permits establishment of a plurality of data connections, through the first tunnel connection, from the client device to a destination device; determines that the client device established the second tunnel connection with the second gateway; in response, detects an existing data connection of the plurality of data connections through the first tunnel connection is an application level session connection that cannot be interrupted; and in response, maintains the first tunnel connection such that the plurality of data connections between the client device and the destination device through the first tunnel connection are also maintained.
-
Specification