Patent ID: 8447882
Filing Date: 2013-05-21
Classification: H04L

Abstract:
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,