Providing network communications using virtualization based on protocol information in packet
First Claim
Patent Images
1. A method of providing network communications, 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 in response to the request for a network connection, a first virtual machine that runs on the first device and that virtualizes network capabilities of the first device such that a first virtual network connection is provided;
(c) determining application-specific information associated with the application;
(d) using the application-specific information associated with the application, selecting, at the first device, a routing protocol from among a plurality of available routing protocols for communicating data from the application over a network using the first virtual network connection; and
(e) determining, at the first device, a first intermediate node to transmit a packet to, the determination being based on(i) the selected routing protocol, and(ii) a routing table maintained at the first device;
(f) transmitting, from the first device using the first virtual network connection, the packet to a second device corresponding to the first intermediate node for communication to a destination node, the packet including(i) an indication of the destination node, and(ii) protocol information corresponding to the selected routing protocol;
(g) spawning, at the second device, a second virtual machine that runs on the second device and that virtualizes network capabilities of the second device such that a second virtual network connection is provided;
(h) receiving, at the second device via the second virtual network connection that virtualizes network capabilities of the second device, the packet transmitted by the first device;
(i) determining, at the second device, a third device to which to transmit the packet, said determination being informed by the protocol information contained in the packet; and
(j) transmitting the packet to the third device using the second virtual network connection;
(k) wherein the application runs outside of the first virtual machine.
7 Assignments
0 Petitions
Accused Products
Abstract
A method of providing network communications includes receiving, at a second device via a virtual network connection that virtualizes network capabilities of the second device, a packet transmitted by a first device, the packet including protocol information; determining a third device to which to transmit the packet, said determination being informed by the protocol information; and transmitting the packet to the third device using a virtual network connection, which virtualizes network capabilities of the second device, in accordance with the protocol information.
-
Citations
20 Claims
-
1. A method of providing network communications, 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 in response to the request for a network connection, a first virtual machine that runs on the first device and that virtualizes network capabilities of the first device such that a first virtual network connection is provided; (c) determining application-specific information associated with the application; (d) using the application-specific information associated with the application, selecting, at the first device, a routing protocol from among a plurality of available routing protocols for communicating data from the application over a network using the first virtual network connection; and (e) determining, at the first device, a first intermediate node to transmit a packet to, the determination being based on (i) the selected routing protocol, and (ii) a routing table maintained at the first device; (f) transmitting, from the first device using the first virtual network connection, the packet to a second device corresponding to the first intermediate node for communication to a destination node, the packet including (i) an indication of the destination node, and (ii) protocol information corresponding to the selected routing protocol; (g) spawning, at the second device, a second virtual machine that runs on the second device and that virtualizes network capabilities of the second device such that a second virtual network connection is provided; (h) receiving, at the second device via the second virtual network connection that virtualizes network capabilities of the second device, the packet transmitted by the first device; (i) determining, at the second device, a third device to which to transmit the packet, said determination being informed by the protocol information contained in the packet; and (j) transmitting the packet to the third device using the second virtual network connection; (k) wherein the application runs outside of the first virtual machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising the steps of:
-
(a) detecting, at a first device, a request for an application running on the first device; (b) spawning, at the first device in response to the request for a network connection, a first virtual machine that runs on the first device and that virtualizes network capabilities of the first device such that a first virtual network connection is provided; (c) determining application-specific information associated with the application; (d) using the application-specific information associated with the application, selecting, at the first device, a routing protocol from among a plurality of available routing protocols for communicating data from the application over a network using the first virtual network connection; and (e) determining, at the first device, a first intermediate node to transmit a packet to, the determination being based on (i) the selected routing protocol, and (ii) a routing table maintained at the first device (f) transmitting, from the first device using the first virtual network connection, the plurality of packets to a second device corresponding to the first intermediate node for communication to a destination node, the packets including (i) an indication of the destination node, and (ii) an indication of the selected routing protocol; (g) spawning, at the client device, a second virtual machine that runs on the second device and that virtualizes network capabilities of the second device such that a second virtual network connection is provided; (h) receiving, at the client device via the second virtual network connection that virtualizes network capabilities of the client device, the packet; (i) analyzing, at the client device, the packet; (j) based at least partially on information from the analyzed packet, selecting, at the client device, a routing protocol from among a plurality of available routing protocols; and (k) transmitting, from the client device via the second virtual network connection that virtualizes network capabilities of the client device, utilizing the routing protocol selected at the client device, the packet over the network; (l) wherein the application runs outside of the first virtual machine. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method of providing network communications, 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 in response to the request for a network connection, a first virtual machine that runs on the first device and that virtualizes network capabilities of the first device such that a first virtual network connection is provided; (c) determining application-specific information associated with the application; (d) using the application-specific information associated with the application, selecting, at the first device, a routing protocol from among a plurality of available routing protocols for communicating data from the application over a network using the first virtual network connection; and (e) determining, at the first device, a first intermediate node to transmit a first packet to, the determination being based on (i) the selected routing protocol, and (ii) a routing table maintained at the first device; (f) transmitting, from the first device using the first virtual network connection, the first packet to a second device corresponding to the first intermediate node for communication to a destination node, the packet including (i) an indication of the destination node, and (ii) protocol information corresponding to the selected routing protocol; (g) spawning, at the first device, a second virtual machine that runs on the first device and that virtualizes network capabilities of the first device such that a second virtual network connection is provided; (h) receiving, at the first device via the second virtual network connection that virtualizes network capabilities of the first device, a second packet; (i) determining, at the first device, a third device to which to transmit the second packet, said determination being informed by protocol information contained in the second packet; and (j) transmitting the second packet to the third device using the second virtual network connection; (k) wherein the application runs outside of the first virtual machine. - View Dependent Claims (18, 19, 20)
-
Specification