Network communications of application running on device utilizing virtual network connections with redundancy
First Claim
1. A method of providing network communications using virtualization, comprising the steps of:
- (a) detecting, at a first device, a request for a network connection from an application running on the first device;
(b) spawning, at the first device, a first virtual machine that virtualizes network capabilities of the first device such that a first virtual network connection is provided to the application, the application running external to the first virtual machine;
(c) selecting, at the first device, a first routing protocol for the first virtual network connection from among a plurality of available routing protocols for communicating data using the first virtual network connection;
(d) using the selected first routing protocol of said step (c), communicating data from the application in a plurality of packets to a destination device over a first network path, the method involving, for each packet,(i) transmitting, from the first device using the first virtual network connection and the selected first routing protocol, the packet for communication to the destination device,(ii) receiving, at a third virtual machine that runs on a second device and that virtualizes network capabilities of the second device such that a third virtual network connection is provided, the packet,(iii) transmitting, from the second device using the third virtual network connection and the selected first routing protocol, the packet for communication to the destination device, and(iv) receiving, at a fourth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet;
(e) determining that there has been a failure in communications over the first network path;
(f) spawning, at the first device, a second virtual machine that virtualizes network capabilities of the first device such that a second virtual network connection is provided to the application, the application running external to the second virtual machine;
(g) selecting, at the first device, a second routing protocol for the second network connection from among the plurality of available routing protocols for communicating data using the second virtual network connection;
(h) using the selected second routing protocol of said step (f), communicating data from the application in a plurality of packets to the destination device, the method involving, for each packet,(i) transmitting, from the first device using the second virtual network connection and the selected second routing protocol, the packet for communication to the destination device,(ii) receiving, at a fifth virtual machine that runs on a third device and that virtualizes network capabilities of the third device such that a fifth virtual network connection is provided, the packet,(iii) transmitting, from the third device using the fifth virtual network connection and the selected second routing protocol, the packet for communication to the destination device, and(iv) receiving, at a sixth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet;
(i) wherein the selected first routing protocol of step (c) is different from the selected second routing protocol of step (f).
7 Assignments
0 Petitions
Accused Products
Abstract
A method includes detecting a request for a network connection from an application running on a device; spawning a first virtual machine that virtualizes network capabilities of the device such that a first virtual network connection is provided; selecting a first routing protocol for the first virtual network connection; spawning a second virtual machine that virtualizes network capabilities of the device such that a second virtual network connection is provided; selecting a second routing protocol for the second virtual network connection; communicating with another device over a first network path using the first virtual network connection with the first routing protocol; and communicating with the other device over a second network path using the second virtual network connection with the second routing protocol. The first network path and the second network path are different.
104 Citations
20 Claims
-
1. A method of providing network communications using virtualization, comprising the steps of:
-
(a) detecting, at a first device, a request for a network connection from an application running on the first device; (b) spawning, at the first device, a first virtual machine that virtualizes network capabilities of the first device such that a first virtual network connection is provided to the application, the application running external to the first virtual machine; (c) selecting, at the first device, a first routing protocol for the first virtual network connection from among a plurality of available routing protocols for communicating data using the first virtual network connection; (d) using the selected first routing protocol of said step (c), communicating data from the application in a plurality of packets to a destination device over a first network path, the method involving, for each packet, (i) transmitting, from the first device using the first virtual network connection and the selected first routing protocol, the packet for communication to the destination device, (ii) receiving, at a third virtual machine that runs on a second device and that virtualizes network capabilities of the second device such that a third virtual network connection is provided, the packet, (iii) transmitting, from the second device using the third virtual network connection and the selected first routing protocol, the packet for communication to the destination device, and (iv) receiving, at a fourth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (e) determining that there has been a failure in communications over the first network path; (f) spawning, at the first device, a second virtual machine that virtualizes network capabilities of the first device such that a second virtual network connection is provided to the application, the application running external to the second virtual machine; (g) selecting, at the first device, a second routing protocol for the second network connection from among the plurality of available routing protocols for communicating data using the second virtual network connection; (h) using the selected second routing protocol of said step (f), communicating data from the application in a plurality of packets to the destination device, the method involving, for each packet, (i) transmitting, from the first device using the second virtual network connection and the selected second routing protocol, the packet for communication to the destination device, (ii) receiving, at a fifth virtual machine that runs on a third device and that virtualizes network capabilities of the third device such that a fifth virtual network connection is provided, the packet, (iii) transmitting, from the third device using the fifth virtual network connection and the selected second routing protocol, the packet for communication to the destination device, and (iv) receiving, at a sixth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (i) wherein the selected first routing protocol of step (c) is different from the selected second routing protocol of step (f). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of providing network communications using virtualization, comprising the steps of:
-
(a) detecting, at a first device, a request for a network connection from an application running on the first device; (b) spawning, at the first device, a first virtual machine that virtualizes network capabilities of the first device such that a first virtual network connection is provided to the application, the application running external to the first virtual machine; (c) selecting, at the first device, a first routing protocol for the first virtual network connection from among a plurality of available routing protocols for communicating data using the first virtual network connection; (d) using the selected first routing protocol of said step (c), communicating data from the application in a plurality of packets to a destination device over a first network path, the method involving, for each packet, (i) transmitting, from the first device using the first virtual network connection and the selected first routing protocol, the packet for communication to the destination device, (ii) receiving, at a third virtual machine that runs on a second device and that virtualizes network capabilities of the second device such that a third virtual network connection is provided, the packet, (iii) transmitting, from the second device using the third virtual network connection and the selected first routing protocol, the packet for communication to the destination device, and (iv) receiving, at a fourth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (e) determining, at the first device, that a response time exceeds an expected response time; (f) spawning, at the first device, in response to the determination that a response time exceeds an expected response time, a second virtual machine that virtualizes network capabilities of the first device such that a second virtual network connection is provided to the application, the application running external to the second virtual machine; (g) selecting, at the first device, a second routing protocol for the second network connection from among the plurality of available routing protocols for communicating data using the second virtual network connection; (h) using the selected second routing protocol of said step (f), communicating data from the application in a plurality of packets to the destination device, the method involving, for each packet, (i) transmitting, from the first device using the second virtual network connection and the selected second routing protocol, the packet for communication to the destination device, (ii) receiving, at a fifth virtual machine that runs on a third device and that virtualizes network capabilities of the third device such that a fifth virtual network connection is provided, the packet, (iii) transmitting, from the third device using the fifth virtual network connection and the selected second routing protocol, the packet for communication to the destination device, and (iv) receiving, at a sixth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (i) wherein the selected first routing protocol of step (c) is different from the selected second routing protocol of step (f). - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method of providing network communications using virtualization, comprising the steps of:
-
(a) detecting, at a first device, a request for a network connection from an application running on the first device; (b) spawning, at the first device, a first virtual machine that virtualizes network capabilities of the first device such that a first virtual network connection is provided to the application, the application running external to the first virtual machine; (c) selecting, at the first device, a first routing protocol for the first virtual network connection from among a plurality of available routing protocols for communicating data using the first virtual network connection; (d) using the selected first routing protocol of said step (c), communicating data from the application in a plurality of packets to a destination device over a first network path, the method involving, for each packet, (i) transmitting, from the first device using the first virtual network connection and the selected first routing protocol, the packet for communication to the destination device, (ii) receiving, at a third virtual machine that runs on a second device and that virtualizes network capabilities of the second device such that a third virtual network connection is provided, the packet, (iii) transmitting, from the second device using the third virtual network connection and the selected first routing protocol, the packet for communication to the destination device, and (iv) receiving, at a fourth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (e) receiving, at the first device via the first virtual network connection, a packet; (f) determining, at the first device, that the received packet has been corrupted; (g) spawning, at the first device, in response to the determination that the received packet has been corrupted, a second virtual machine that virtualizes network capabilities of the first device such that a second virtual network connection is provided to the application, the application running external to the second virtual machine; (h) selecting, at the first device, a second routing protocol for the second network connection from among the plurality of available routing protocols for communicating data using the second virtual network connection; (i) using the selected second routing protocol of said step (f), communicating data from the application in a plurality of packets to the destination device, the method involving, for each packet, (i) transmitting, from the first device using the second virtual network connection and the selected second routing protocol, the packet for communication to the destination device, (ii) receiving, at a fifth virtual machine that runs on a third device and that virtualizes network capabilities of the third device such that a fifth virtual network connection is provided, the packet, (iii) transmitting, from the third device using the fifth virtual network connection and the selected second routing protocol, the packet for communication to the destination device, and (iv) receiving, at a sixth virtual machine that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (i) wherein the selected first routing protocol of step (c) is different from the selected second routing protocol of step (f).
-
Specification