Patent ID: 8848704
Filing Date: 2014-09-30
Classification: H04L

Abstract:
1. A method of facilitating network routing 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 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 plurality of packets to, the determination being based on (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 (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, one of the packets transmitted by the first device; (i) loading, at the second device, information from the packet into memory of the second device; (j) appending, at the second device, to a payload of the packet, information associated with the second device; (k) determining, at the second device, a second intermediate node to transmit the packet to, the determination being based on (l) transmitting, from the second device using the second virtual network connection, the packet to a third device corresponding to the second intermediate node for communication to the destination node; (m) wherein the application runs outside of the first virtual machine.