×

Facilitating network routing using virtualization

  • US 8,848,704 B2
  • Filed: 09/23/2011
  • Issued: 09/30/2014
  • Est. Priority Date: 10/17/2007
  • Status: Active Grant
First Claim
Patent Images

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(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 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(i) the indication of the destination node contained in the packet,(ii) the indication of the routing protocol contained in the packet, and(iii) a routing table maintained at the second device; and

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

View all claims
  • 7 Assignments
Timeline View
Assignment View
    ×
    ×