×

Software router facilitating network communications between devices utilizing virtual network connections

  • US 8,447,882 B2
  • Filed: 09/23/2011
  • Issued: 05/21/2013
  • Est. Priority Date: 10/17/2007
  • Status: Active Grant
First Claim
Patent Images

1. A method of providing network communications between first and second end-user devices, comprising the steps of:

  • (a) communicating, by a first end-user device, a request to a server to engage in communications with a second end-user device;

    (b) communicating, by the server, the request received from the first end-user device to the second end-user device;

    (c) communicating, by the second end-user device, acceptance to the server of the request to engage in communications with the first end-user device;

    (d) communicating information associated with a third device to the first end-user device;

    (e) spawning, at the first end-user device, a first virtual machine instance that runs on the first end-user device and that virtualizes network capabilities of the first end-user device such that a first virtual network connection is provided which provides virtualized network capabilities to an application running on the first end-user device external to the first virtual machine instance;

    (f) selecting, at the first end-user device, a routing protocol from among a plurality of available routing protocols for communicating data using the first virtual network connection;

    (g) spawning, at the third device, a third virtual machine instance that runs on the third device and that virtualizes network capabilities of the third device such that a third virtual network connection is provided;

    (h) establishing network communications between the first end-user device, using the first virtual network connection, and the third device, using the third virtual network connection, using received information associated with the third device;

    (h) communicating information associated with the third device to the second end-user device;

    (i) spawning, at the second end-user device, 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 which provides virtualized network capabilities to an application running on the second end-user device external to the second virtual machine instance;

    (j) using the second virtual network connection of the second end-user device, establishing network communications with the third device using received information associated with the third device, wherein the third device is configured to act as a switch and provide cross-connect functionality between the first virtual network connection of the first end-user device and the second virtual network connection of the second end-user device;

    (k) communicating, from the first end-user device using the first virtual network connection and the selected routing protocol, a plurality of packets to the second device, the method involving, for each packet,(i)transmitting, from the first end-user device using the first virtual network connection and the selected routing protocol, the packet for communication to the third device,(ii) receiving, at the third virtual machine instance that runs on the third device and that virtualizes network capabilities of the third device, the packet,(iii) transmitting, from the third device, the packet for communication to the second end-user device, and(iv) receiving, at the second virtual machine instance that runs on the second device and that virtualizes network capabilities of the second device, the packet.

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