Legal claims defining the scope of protection, as filed with the USPTO.
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 in response to the request for a network connection, a first virtual machine instance 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) querying an application interface to determine application-specific connection criteria associated with the application; (d) using the application-specific connection criteria 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) using the selected routing protocol of said step (d), communicating data from the application over the network in a plurality of packets to a destination device, the method involving, for each packet, (i) transmitting, from the first device using the first virtual network connection and the selected routing protocol, the packet for communication to the destination device, (ii) receiving, at networking hardware of a second device, the packet, (iii) intercepting, by a second virtual machine instance that runs on the second device and that virtualizes network capabilities of the second device such that a second virtual network connection is provided, the packet as it is passed from the networking hardware of the second device, (iv) selecting, at the second device based on the selected routing protocol, a next node to transmit the packet to, (v) transmitting, from the second device using the second virtual network connection, the packet for communication to the destination device, and (vi) receiving, at a third virtual machine instance that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (f) wherein the application runs outside of the first virtual machine instance.
2. The method of claim 1 , wherein the first virtual machine instance is created by a monitor in response to a controller configured to interrupt messages sent to a network adapter.
3. The method of claim 1 , wherein the first virtual machine instance is created before the application-specific connection criteria associated with the application is determined.
4. The method of claim 1 , wherein the first virtual machine instance is created after the application-specific connection criteria associated with the application is determined.
5. The method of claim 1 , wherein the first virtual machine instance is created in response to the request for a network connection from the application running on the first device.
6. The method of claim 1 , wherein the method further includes (a) spawning another virtual machine instance that runs on the first device and virtualizes network capabilities of the first device such that another virtual network connection is provided; (b) selecting another routing protocol from among the plurality of available routing protocols for communicating data from the application using the another virtual network connection; and (c) using the selected another routing protocol, communicating data from the application to another device using the another virtual network connection.
7. The method of claim 1 , wherein the method further includes (a) spawning another virtual machine instance that runs on the first device and virtualizes network capabilities of the first device such that another virtual network connection is provided; (b) determining application-specific connection criteria associated with a second application; (c) using the application-specific connection criteria associated with the second application, selecting another routing protocol from among a plurality of available routing protocols for communicating data from the second application over a network using the another virtual network connection; and (d) using the selected another routing protocol, communicating data from the second application over the network to another device using the another virtual network connection.
8. The method of claim 1 , further comprising the steps of: (a) creating another virtual machine instance that runs on the first device and that virtualizes network capabilities of the first device such that another virtual network connection of the second virtual machine is provided; (b) detecting a request for a network connection from a second application running on the first device; (c) determining application-specific connection criteria associated with the second application; (d) using the application-specific connection criteria associated with the second application, selecting a routing protocol from among the plurality of available routing protocols for communicating data using the another virtual network connection of the another virtual machine instance; and (e) using the selected routing protocol for the another virtual network connection, communicating data from the second application to another device using the another virtual network connection of the another virtual machine instance.
9. The method of claim 1 , wherein the first virtual machine instance encapsulates a single hardware network interface of the first device.
10. The method of claim 1 , wherein the first virtual machine instance encapsulates a plurality of hardware network interfaces of the first device.
11. The method of claim 1 , wherein the plurality of available routing protocols includes the Interior Gateway Routing Protocol (IGRP), the Enhanced Interior Gateway Routing Protocol (EIGRP), the Border Gateway Protocol (BGP), and the Constrained Shortest Path First (CSPF) protocol.
12. The method of claim 1 , wherein the first device includes a plurality of processing cores.
13. The method of claim 1 , wherein the application is a video game.
14. The method of claim 1 , wherein the first device is a personal computer.
15. The method of claim 1 , wherein the first device is a handheld mobile device.
16. A method of providing network communications using virtualization, comprising the steps of: (a) intercepting, by a controller loaded on a first device, a message for the network adapter that originated on the first device, the message being associated with an application running on the first device; (b) spawning, at the first device in response to the intercepting of the message for the network adapter, a first virtual machine instance 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) querying an application interface to determine application-specific connection criteria associated with the application; (d) using the application-specific connection criteria 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) using the selected routing protocol of said step (d), communicating data from the application over the network in a plurality of packets to a destination device, the method involving, for each packet, (i) transmitting, from the first device using the first virtual network connection and the selected routing protocol, the packet for communication to the destination device, (ii) receiving, at networking hardware of a second device, the packet, (iii) intercepting, by a second virtual machine instance that runs on the second device and that virtualizes network capabilities of the second device such that a second virtual network connection is provided, the packet as it is passed from the networking hardware of the second device, (iv) selecting, at the second device based on the selected routing protocol, a next node to transmit the packet to, (v) transmitting, from the second device using the second virtual network connection, the packet for communication to the destination device, and (vi) receiving, at a third virtual machine instance that runs on the destination device and that virtualizes network capabilities of the destination device, the packet; (f) wherein the application runs outside of the first virtual machine instance.
Unknown
December 25, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.