IP Library Patent Application 17717084
Patent Application
App. No. 17/717,084

System and Method for Improving Internet Communication by Using Intermediate Nodes

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
17/717,084
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 accesses 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.

Claims (93)

1 . A method for fetching over the Internet by a first device a content constructed of at least first, second, and third parts that are stored in a web server, for use with a group of mobile devices that includes distinct first, second, and third mobile devices, the method comprising:

receiving, from the first device over the Internet, a request for the content;

selecting, in response to the receiving of the request for the content, the first mobile device from the group;

sending, to the selected first mobile device over the Internet, a first HTTP request for the first part that includes a first Uniform Resource Locator (URL) that identifies the first part in the Internet;

receiving, by the first mobile device over the Internet, in response to the sending of the first HTTP request, the first part;

sending, by the first mobile device to the first device over the Internet, the received first part;

selecting, in response to the receiving of the request for the content, the second mobile device from the group;

sending, to the selected second mobile device over the Internet, a second HTTP request for the second part that includes a second URL that identifies the second part in the Internet;

receiving, by the second mobile device over the Internet, in response to the sending of the second HTTP request, the second part;

sending, by the second mobile device to the first device over the Internet, the received second part;

selecting, in response to the receiving of the request for the content, the third mobile device from the group;

sending, to the selected third mobile device over the Internet, a third HTTP request for the third part that includes a third URL that identifies the third part in the Internet;

receiving, by the third mobile device over the Internet, in response to the sending of the third HTTP request, the third part;

sending, by the third mobile device to the first device over the Internet, the received third part; and

reconstructing, at the first device, at least part of the content from the received first, second, and third parts.

2 . The method according to claim 1 , further comprising storing or operating, by each of the mobile devices in the group, a respective mobile operating system.

3 . The method according to claim 2 , wherein the mobile operating system is one out of Android version 2.2 (Froyo), Android version 2.3 (Gingerbread), Android version 4.0 (Ice Cream Sandwich), Android Version 4.2 (Jelly Bean), Android version 4.4 (KitKat), Apple iOS version 3, Apple iOS version 4, Apple iOS version 5, Apple iOS version 6, Apple iOS version 7, Microsoft Windows® Phone version 7, Microsoft Windows® Phone version 8, Microsoft Windows® Phone version 9, and Blackberry® operating system.

4 . The method according to claim 1 , wherein each of the mobile devices in the group comprises, or consists of, a respective cellular telephone device.

5 . The method according to claim 1 , wherein the first device comprises, or consists of, a client device.

6 . The method according to claim 5 , further comprising storing, operating, or using, by the first device, a client operating system.

7 . The method according to claim 6 , wherein the client operating system consists or, comprises of, or is based on, one out of Microsoft Windows 7, Microsoft Windows XP, Microsoft Windows 8, Microsoft Windows 8.1, Linux, and Google Chrome OS.

8 . The method according to claim 1 , wherein the first device comprises, or consists of, a server device.

9 . The method according to claim 8 , further comprising, storing, operating, or using, by the server device, a server operating system that consists of, comprises, or is based on, one out of Microsoft Windows Server®, Linux, or UNIX.

10 . The method according to claim 8 , further comprising, storing, operating, or using, by the server device, an server operating system that consists of, comprises, or is based on, one out of Microsoft Windows Server® 2003 R2, 2008, 2008 R2, 2012, or 2012 R2 variant, Linux™ or GNU/Linux based Debian GNU/Linux, Debian GNU/kFreeBSD, Debian GNU/Hurd, Fedora™, Gentoo™, Linspire™, Mandriva, Red Hat® Linux, SuSE, and Ubuntu®, UNIX® variant Solaris™, AIX®, Mac™ OS X, FreeBSD®, OpenBSD, and NetBSD®.

11 . The method according to claim 1 , further for use with a second device, wherein the receiving of the request for the content from the first device, is performed by the second device.

12 . The method according to claim 11 , wherein the selecting of the first, second, and third mobile devices from the group, is performed by the second device.

13 . The method according to claim 12 , wherein the sendings to the first, second, and third mobile devices, is performed by the second device.

14 . The method according to claim 13 , wherein the receivings from the first, second, and third mobile devices, is performed by the second device.

15 . The method according to claim 14 , wherein the sending, by the first mobile device to the first device of the received first part comprises sending, by the first mobile device to the second device of the received first part, and sending, by the second device to the first device, the received first part, wherein the sending, by the second mobile device to the first device of the received second part comprises sending, by the second mobile device to the second device of the received second part, and sending, by the second device to the first device, the received second part, and wherein the sending, by the third mobile device to the first device of the received third part comprises sending, by the third mobile device to the second device of the received third part, and sending, by the second device to the first device, the received third part.

16 . The method according to claim 11 , wherein the second device comprises, or consists of, a server device.

17 . The method according to claim 16 , further comprising, storing, operating, or using, by the server device, a server operating system that consists of, comprises, or is based on, one out of Microsoft Windows Server®, Linux, or UNIX.

18 . The method according to claim 16 , further comprising, storing, operating, or using, by the server device, an server operating system that consists of, comprises, or is based on, one out of Microsoft Windows Server® 2003 R2, 2008, 2008 R2, 2012, or 2012 R2 variant, Linux™ or GNU/Linux based Debian GNU/Linux, Debian GNU/kFreeBSD, Debian GNU/Hurd, Fedora™, Gentoo™, Linspire™, Mandriva, Red Hat® Linux, SuSE, and Ubuntu®, UNIX® variant Solaris™, AIX®, Mac™ OS X, FreeBSD®, OpenBSD, and NetBSD®.

19 . The method according to claim 11 , wherein the reconstructing is further performed by the second device.

20 . The method according to claim 1 , further comprising:

receiving, by the first mobile device, the sent first HTTP request;

sending, by the first mobile device to the web server, in response to the receiving of the first HTTP request, the first URL;

receiving, by the second mobile device, the sent second HTTP request;

sending, by the second mobile device to the web server, in response to the receiving of the second HTTP request, the second URL;

receiving, by the third mobile device, the sent third HTTP request; and

sending, by the third mobile device to the web server, in response to the receiving of the third HTTP request, the third URL,

wherein the receiving, by the first mobile device of the first part is in response to the sending of the first URL,

wherein the receiving, by the second mobile device of the second part is in response to the sending of the second URL, and

wherein the receiving, by the third mobile device of the third part is in response to the sending of the third URL.

21 . The method according to claim 1 , wherein the content comprises, or is part of, a publicly-accessed web-site stored in the web server, and wherein the content parts are fetched anonymously whereby the web server is prevented from identifying the first device.

22 . The method according to claim 1 , wherein the first part comprises, or is part of, a first web-page, wherein the second part comprises, or is part of, a second web-page, and wherein the third part comprises, or is part of, a third web-page.

23 . The method according to claim 22 , wherein the content comprises at least the first, second, and third web-pages.

24 . The method according to claim 1 , wherein each of the first, second and third parts comprises a respective object in a web-page.

25 . The method according to claim 24 , wherein the reconstructing further comprises forming at least part of the web-page.

26 . The method according to claim 24 , wherein each of objects is a respective Hypertext Markup Language (HTML) object.

27 . The method according to claim 24 , wherein at least one of the objects comprises, or consists of, a file or program.

28 . The method according to claim 24 , wherein at least one of the objects comprises, or consists of, an HTTP addressed object.

29 . The method according to claim 1 , wherein the reconstructing comprises reconstructing of a whole web-page or a whole web-site.

30 . The method according to claim 1 , wherein the web server that uses HyperText Transfer Protocol (HTTP) and responds to HTTP requests via the Internet.

31 . The method according to claim 1 , wherein the communication with each of the first, second, and third mobile devices is based on, or using, a respective HTTP persistent connection.

32 . The method according to claim 1 , further comprising, storing, by the first device, the reconstructed at least part of the content.

33 . The method according to claim 32 , further comprising, sending, by the first device over the Internet, the stored reconstructed at least part of the content.

34 . The method according to claim 1 , for use with a list of Internet-Protocol (IP) addresses in IPv4 or IPv6 form, wherein the selecting of the first, second, and third mobile devices comprises respectively selecting the IP addresses from the list of the of the first, second, and third mobile devices.

35 . The method according to claim 34 , wherein the list is stored in the first device.

36 . The method according to claim 34 , wherein the selecting of IP addresses from the list comprises randomly selecting IP addresses from the list.

37 . The method according to claim 34 , for use with a database that associates each of the IP addresses in the list with a respective geographical location, wherein the selecting of the IP addresses from the list comprises selecting based on, or using, the associated respective geographical locations.

38 . The method according to claim 37 , wherein each of the geographical locations respectively consists of, or comprises, one out of a continent, a country, a region, a city, a street, a ZIP code, or a timezone.

39 . The method according to claim 37 , wherein at least one of the geographical locations is based on a geolocation.

40 . The method according to claim 39 , wherein the geolocation is based on W3C Geolocation API.

41 . The method according to claim 34 , wherein the selecting of the IP addresses from the list comprises respectively selecting based on an attribute or a characteristic of the selected mobile device.

42 . The method according to claim 1 , further comprising establishing a connection with at least one of the selected first, second, or third mobile devices using TCP, and wherein the connection is established by performing ‘Active OPEN’ or ‘Passive OPEN’.

43 . The method according to claim 1 , wherein at least one of the parts includes, consists of, or comprises, a part or whole of a file, text data, audio data, voice data, multimedia data, video data, an image, music data, or a computer program.

44 . The method according to claim 1 , wherein at least two of the first, second, and third parts are of the same size.

45 . The method according to claim 1 , wherein at least two of the first, second, and third parts are of different sizes.

46 . The method according to claim 1 , further comprising sending, by the first device, the request for the content, and wherein the receiving of the request for the content from the first device is in response to the sending, by the first device, of the request for the content.

47 . The method according to claim 46 , wherein the sending, by the first device, of the request for the content, comprises sending the first URL, the second URL, the third URL, or any combination thereof.

48 . The method according to claim 46 , further comprising executing, by the first device, an application, and wherein the sending by the first device of the request for content is in response to the executing of the application.

49 . The method according to claim 48 , wherein the application consists of, or comprises, a web browser.

50 . The method according to claim 49 , wherein the web browser consists of, comprises of, or is based on, Microsoft Internet Explorer, Google Chrome, Opera™, Mozilla Firefox®, Safari, Opera Mini™, or Android web browser.

51 . The method according to claim 1 , further comprising periodically sending, by each of the first, second, and third mobile devices, a message that comprises a status of the respective mobile device.

52 . The method according to claim 51 , wherein the sending of the message is in response to the determined status or a status change of the respective mobile device.

53 . The method according to claim 51 , wherein the message comprises, or is based on, an ‘heartbeat’ message.

54 . The method according to claim 51 , wherein a time period between two or more sent messages is at least 10 milliseconds, milliseconds, 30 milliseconds, 50 milliseconds, 100 milliseconds, 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 20 seconds, 30 seconds, 50 seconds, 100 seconds, 1 minute, 2 minutes, 3 minutes, 5 minutes, or 10 minutes.

55 . The method according to claim 1 , for use with a resource associated with a criterion in each of the mobile devices in the group, and wherein each one of the mobile devices in the group is associated with first and second states according to a utilization of the resource.

56 . The method according to claim 55 , further comprising, periodically or continuously determining, by each one of the mobile devices in the group, whether the respective resource utilization satisfies the respective criterion.

57 . The method according to claim 56 , further comprising, responsive to the determining that the utilization of the resource satisfies the criterion, shifting, by the respective one of the mobile devices in the group, to the first state or staying in the first state; and responsive to the determining that the utilization of the resource does not satisfy the criterion, shifting, by the respective one of the mobile devices in the group, to the second state or staying in the second state.

58 . The method according to claim 57 , further comprising, performing a task, by the respective one of the mobile devices in the group, upon a received request, when in the first state.

59 . The method according to claim 57 , further comprising periodically or continuously sending, by the respective one of the mobile devices in the group, the resource utilization over the Internet.

60 . The method according to claim 56 , wherein the determining is performed by a first server in response to a receiving, by the first server, the resource utilization from the respective mobile device.

61 . The method according to claim 55 , for use with a set threshold value, and wherein the criterion is satisfied when the resource utilization is above or below the threshold.

62 . The method according to claim 55 , wherein the resource comprises, or consists of, a hardware component in the respective mobile device.

63 . The method according to claim 62 , wherein the hardware component comprises, or consists of, a processor or Central Processing Unit (CPU) operation in the mobile device.

64 . The method according to claim 63 , wherein the resource utilization is based on, or comprises, the processor or CPU time of executing one or more threads or processes, wherein the resource utilization is based on, or comprises, the processor or CPU idling time, or wherein the resource utilization is based on, or comprises, the processor or CPU executing a system idle process.

65 . The method according to claim 62 , wherein the hardware component comprises, or consists of, a memory in the mobile device, and wherein the resource utilization is based on, or comprises, an amount of used or unused location or space of the memory.

66 . The method according to claim 55 , wherein the resource comprises, or consists of, input or output capability.

67 . The method according to claim 66 , wherein the resource comprises, or consists of, communication bandwidth of communication with another device over the Internet.

68 . The method according to claim 67 , wherein the resource comprises, or consists of, communication bandwidth of communication with the server over the Internet, or wherein the resource utilization is based on, or according to, IETF RFC 2914.

69 . The method according to claim 1 , wherein the selecting of at least one of the mobile devices comprises selecting based on a physical geographical proximity to the web server or to the first device.

70 . The method according to claim 1 , wherein the selecting of at least one of the mobile devices comprises selecting based on past activities or on a timing of an event.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2022
From: SHRIBMAN, DERRY; VILENSKI, OFER
To: LUMINATI NETWORKS LTD.
Reel/Frame 059552/0655 →
CHANGE OF NAME Recorded Apr 10, 2022
From: LUMINATI NETWORKS LTD.
To: BRIGHT DATA LTD.
Reel/Frame 059692/0655 →