Facilitating download of requested data from server utilizing virtual network connections between client devices
First Claim
1. A method of facilitating download of data requested by devices from a server, the method comprising the steps of:
- (a) receiving a communication from a server regarding a request for download that the server has received from a first device;
(b) determining whether the request from the first device may be fulfilled by transferring data from a second device;
(c) communicating connection information to the first device and to the second device for enabling a network connection between the first device and the second device;
(d) spawning, at the first device, a first virtual machine for a network connection that virtualizes network capabilities of the first device such that a first virtual network connection is provided;
(e) spawning, at the second device, a second virtual machine for a network connection that virtualizes network capabilities of the second device such that a second virtual network connection is provided;
(f) spawning, at a third device, a third virtual machine for a network connection that virtualizes network capabilities of the third device such that a third virtual network connection is provided;
(g) establishing, utilizing the virtualized network capabilities of the first and second virtual machines, a network connection between the first device, via the first virtual network connection, and the second device, via the second virtual network connection, over a network path using communicated connection information, the network path including the third device;
(h) fulfilling the request from the first device by transferring data from the second device to the first device through the established network connection, the transfer comprising communication of a plurality of packets by, for each packet,(i) transmitting the packet from the second device using the second virtual network connection for communication via the network path,(ii) receiving, at the third device using the third virtual network connection, the packet, and communicating the packet onward along the network path,(iii) receiving, at the first device using the first virtual network connection, the packet; and
(i) upon fulfillment of the request, communicating the fulfillment of such request to the server.
7 Assignments
0 Petitions
Accused Products
Abstract
A method of reducing server overhead in responding to requests for downloads from devices includes the steps of receiving, at a first device, a communication from a server regarding a request for download that the server has received from a second device; in response thereto, using virtualized network capabilities of a virtual machine of the second device, establishing a network connection with the first device using connection information received from the server; fulfilling the request for download by transferring data via the established network connection; and communicating an indication of fulfillment of such request to the server.
-
Citations
12 Claims
-
1. A method of facilitating download of data requested by devices from a server, the method comprising the steps of:
-
(a) receiving a communication from a server regarding a request for download that the server has received from a first device; (b) determining whether the request from the first device may be fulfilled by transferring data from a second device; (c) communicating connection information to the first device and to the second device for enabling a network connection between the first device and the second device; (d) spawning, at the first device, a first virtual machine for a network connection that virtualizes network capabilities of the first device such that a first virtual network connection is provided; (e) spawning, at the second device, a second virtual machine for a network connection that virtualizes network capabilities of the second device such that a second virtual network connection is provided; (f) spawning, at a third device, a third virtual machine for a network connection that virtualizes network capabilities of the third device such that a third virtual network connection is provided; (g) establishing, utilizing the virtualized network capabilities of the first and second virtual machines, a network connection between the first device, via the first virtual network connection, and the second device, via the second virtual network connection, over a network path using communicated connection information, the network path including the third device; (h) fulfilling the request from the first device by transferring data from the second device to the first device through the established network connection, the transfer comprising communication of a plurality of packets by, for each packet, (i) transmitting the packet from the second device using the second virtual network connection for communication via the network path, (ii) receiving, at the third device using the third virtual network connection, the packet, and communicating the packet onward along the network path, (iii) receiving, at the first device using the first virtual network connection, the packet; and (i) upon fulfillment of the request, communicating the fulfillment of such request to the server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of facilitating download of data requested by devices from a server, the method comprising the steps of:
-
(a) receiving a communication from a server regarding a request for download that the server has received from a first device; (b) determining, at the server, that request from the first device may be fulfilled by transferring data from a plurality of other devices, including second and fourth devices; (c) communicating connection information to the first device and to the second device and fourth devices for enabling a network connection between the first device and the second device and a network connection between the first device and the fourth device; (d) spawning, at the first device, a first virtual machine for a network connection that virtualizes network capabilities of the first device such that a first virtual network connection is provided; (e) spawning, at the second device, a second virtual machine for a network connection that virtualizes network capabilities of the second device such that a second virtual network connection is provided; (f) spawning, at a third device, a third virtual machine for a network connection that virtualizes network capabilities of the third device such that a third virtual network connection is provided; (g) spawning, at the first device, a fourth virtual machine for a network connection that virtualizes network capabilities of the first device such that a fourth virtual network connection is provided; (h) spawning, at the fourth device, a fifth virtual machine for a network connection that virtualizes network capabilities of the fifth device such that a fifth virtual network connection is provided; (i) spawning, at a sixth device, a sixth virtual machine for a network connection that virtualizes network capabilities of the sixth device such that a sixth virtual network connection is provided; (j) establishing, utilizing the virtualized network capabilities of the first and second virtual machines, a network connection between the first device, via the first virtual network connection, and the second device, via the second virtual network connection, over a first network path using communicated connection information, the first network path including the third device; (k) establishing, utilizing the virtualized network capabilities of the fourth and fifth virtual machines, a network connection between the first device, via the fourth virtual network connection, and the fourth device, via the fifth virtual network connection, over a second network path using communicated connection information, the second network path including the sixth device; (l) transferring data from the second device to the first device through the established network connection, the transfer comprising communication of a plurality of packets by, for each packet, (i) transmitting the packet from the second device using the second virtual network connection for communication via the first network path, (ii) receiving, at the third device using the third virtual network connection, the packet, and communicating the packet onward along the first network path, (iii) receiving, at the first device using the first virtual network connection, the packet; (m) transferring data from the fourth device to the first device through the established network connection, the transfer comprising communication of a plurality of packets by, for each packet, (i) transmitting the packet from the fourth device using the fifth virtual network connection for communication via the second network path, (ii) receiving, at the sixth device using the sixth virtual network connection, the packet, and communicating the packet onward along the network path, (iii) receiving, at the first device using the fourth virtual network connection, the packet; (n) upon fulfillment of the request, communicating the fulfillment of such request to the server.
-
Specification