Maintaining continuous network service
AssigneeCitrix Systems, Inc.
InventorsNivedita Ojha, Derek Thorslund, Stephen Wilson
Life of this patent
Estimating the term…
Abstract
A technique for managing communications over a network maintains multiple network paths simultaneously, exchanging the same data redundantly through the network paths and allowing a receiver to select one of the network paths as its source of data. In the event that a first, currently-selected network path becomes weak, for example, the receiver automatically and seamlessly switches its source of data to a second network path, while the first network path remains operational.
Claims30
A method, comprising:
- a client device contacting a server via a website and downloading an application package from the server, the client device opening the downloaded application package, decompressing compressed contents of the application package, and installing components of the application package, the components of the application package including (i) a client component of an application, (ii) a micro-VPN client component and (iii) a link-bonding client component, the micro-VPN client component configured to establish an encrypted channel between the client component of the application and a single application on the server, the link-bonding client component configured to transmit data from the client component of the application in parallel over a plurality of network paths;
- monitoring, by the client device, the plurality of network paths that convey data between the client device and the server, the data being associated with the single application on the server;
- receiving, by the client device within the encrypted channel established by the micro-VPN client component, the data from the server via each of the plurality of network paths, the data received from each of the plurality of network paths being the same;
- selecting, by the link-bonding client component of the client device, a first network path of the plurality of network paths from which to receive data to enable delivery of the single application on the server to the client device;
- and
- adjusting, by the link-bonding client component of the client device, the selected network path from the first network path to a second network path of the plurality of network paths, while both the first network path and the second network path are operational and conveying data, based at least in part on the monitoring of the plurality of network paths, so as to prevent delay in receipt of data from the server caused by a reduction of network continuity of the first network path.
A client device, comprising control circuitry that includes a set of processors coupled to memory, the control circuitry configured to:
- contact a server via a website and download an application package from the server;
- open the downloaded application package, decompress compressed contents of the application package, and install components of the application package,
- wherein the components of the application package include (i) a client component of an application, (ii) a micro-VPN client component and (iii) a link-bonding client component, the micro-VPN client component configured to establish an encrypted channel between the client component of the application and a single application on the server, the link-bonding client component configured to transmit data from the client component of the application in parallel over a plurality of network paths;
- monitor the plurality of network paths that convey data between the client device and the server, the data being associated with the single application on the server;
- receive, within the encrypted channel established by the micro-VPN client component, the data from the server via each of the plurality of network paths, the data received from each of the plurality of network paths being the same;
- select, by the link-bonding client component, a first network path of the plurality of network paths from which to receive data to enable delivery of the single application on the server to the client device;
- and
- adjust, by the link-bonding client component, the selected network path from the first network path to a second network path of the plurality of network paths, while both the first network path and the second network path are operational and conveying data based at least in part on the monitoring of the plurality of network paths, so as to prevent delay in receipt of data from the server caused by a reduction of network continuity of the first network path.
A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a client device, cause the client device to perform a method comprising:
- contacting a server via a website and downloading an application package from the server, the client device opening the downloaded application package, decompressing compressed contents of the application package, and installing components of the application package, the components of the application package including (i) a client component of an application, (ii) a micro-VPN client component and (iii) a link-bonding client component, the micro-VPN client component configured to establish an encrypted channel between the client component of the application and a single application on the server, the link-bonding client component configured to transmit data from the client component of the application in parallel over a plurality of network paths;
- monitoring the plurality of network paths that convey data between the client device and the server, the data being associated with the single application on the server;
- receiving, within the encrypted channel established by the micro-VPN client component, the data from the server via each of the plurality of network paths, the data received from each of the plurality of network paths being the same;
- selecting, by the link-bonding client component, a first network path of the plurality of network paths from which to receive data to enable delivery of the single application on the server to the client device;
- and
- adjusting, by the link-bonding client component, the selected network path from the first network path to a second network path of the plurality of network paths, while both the first network path and the second network path are operational and conveying data, based at least in part on the monitoring of the plurality of network paths, so as to prevent delay in receipt of data from the server caused by a reduction of network continuity of the first network path.
Dependencies are inferred from the claim text.