System and method for improving internet communication by using intermediate nodes
DC CAFCFirst Claim
1. A method for fetching a content over the Internet by a first device identified in the Internet by a first identifier, from a first server identified in the Internet by a second identifier, via a group of multiple devices, each identified in the Internet by an associated group device identifier, wherein the content is partitioned into a plurality of content slices, each content slice containing at least part of the content, and identified using a content slice identifier, and for each of the content slices, comprising the steps of:
- (a) selecting a second device from the group;
(b) the first device sending over the Internet a first request to the selected second device using the selected second device identifier, the first request including the content slice identifier and the second identifier;
(c) in response to receiving the first request, the selected second device sending over the Internet a second request to the first server using the second identifier, the second request including the content slice identifier;
(d) in response to receiving the second request, the first server sending over the Internet the content slice to the selected second device; and
(e) in response to receiving the content slice, the selected second device sending over the Internet the content slice to the first device,wherein each of the multiple devices is a client device.
5 Assignments
Litigations
3 Petitions
Accused Products
Abstract
A method for fetching a content from a web server to a client device is disclosed, using tunnel devices serving as intermediate devices. The client device access an acceleration server to receive a list of available tunnel devices. The requested content is partitioned into slices, and the client device sends a request for the slices to the available tunnel devices. The tunnel devices in turn fetch the slices from the data server, and send the slices to the client device, where the content is reconstructed from the received slices. A client device may also serve as a tunnel device, serving as an intermediate device to other client devices. Similarly, a tunnel device may also serve as a client device for fetching content from a data server. The selection of tunnel devices to be used by a client device may be in the acceleration server, in the client device, or in both. The partition into slices may be overlapping or non-overlapping, and the same slice (or the whole content) may be fetched via multiple tunnel devices.
182 Citations
28 Claims
-
1. A method for fetching a content over the Internet by a first device identified in the Internet by a first identifier, from a first server identified in the Internet by a second identifier, via a group of multiple devices, each identified in the Internet by an associated group device identifier, wherein the content is partitioned into a plurality of content slices, each content slice containing at least part of the content, and identified using a content slice identifier, and for each of the content slices, comprising the steps of:
-
(a) selecting a second device from the group; (b) the first device sending over the Internet a first request to the selected second device using the selected second device identifier, the first request including the content slice identifier and the second identifier; (c) in response to receiving the first request, the selected second device sending over the Internet a second request to the first server using the second identifier, the second request including the content slice identifier; (d) in response to receiving the second request, the first server sending over the Internet the content slice to the selected second device; and (e) in response to receiving the content slice, the selected second device sending over the Internet the content slice to the first device, wherein each of the multiple devices is a client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for fetching a content over the Internet from a first server identified in the Internet by a second identifier via a group of multiple devices, each identified in the Internet by an associated group device identifier, the method comprising the step of partitioning the content into a plurality of content slices, each content slice containing at least part of the content, and identified using a content slice identifier, and for each of the content slices, comprising the steps of:
-
(a) selecting a device from the group; (b) sending over the Internet a first request to the selected device using the group device identifier of the selected device, the first request including the content slice identifier and the second identifier; (c) in response to receiving the sent first request by the selected device, receiving over the Internet the content slice from the selected device; and wherein the method further comprising the step of constructing the content from the received plurality of content slices, and wherein each of the devices in the group is a client device. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification