Patent ID: 9059975
Filing Date: 2015-06-16
Classification: H04L

Abstract:
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 (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 (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.