IP Library Granted Patent US 11,588,920
Granted Patent B2
US 11,588,920 · App. 17/518,594 · Granted Feb 21, 2023

System and method for improving internet communication by using intermediate nodes

Inventors: Derry Shribman (Tel Aviv, IL); Ofer Vilenski (Moshav Hadar Am, IL)
Assignee: BRIGHT DATA LTD.
H04L67/60H04L63/029H04L65/612H04L67/02H04L67/06H04L67/567H04N21/4622
View Patent ↗
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 11,588,920
App. No.
17/518,594
Granted
Feb 21, 2023
Kind
B2
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 (115)

1. A method for anonymously fetching a first content by a first device from a second server over the Internet via a first server, the first content identified in the Internet by a first URL and the first device is identified in the Internet by a first Internet Protocol (IP) address, further for anonymously fetching a second content by the first device from the second server over the Internet via the first server, the second content identified in the Internet by a second URL, for use with a group of client devices that are each identified in the Internet using a respective IP address and that are each associated with a physical geographical location, the method comprising:

associating and storing, by the first server to each client device in the group, a respective physical geographical location;

selecting, based on the respective physical geographical location, a client device from the group;

sending, by the first server to the selected client device, the first URL over the Internet;

receiving by the first server via the selected client device from the second server, the first content over the Internet;

sending, by the first server to the first device, the first content over the Internet;

receiving, by the first server from the first device, the second URL over the Internet;

selecting an additional client device from the group in response to the receiving of the second URL;

sending, by the first server to the selected additional client device, the second URL over the Internet;

receiving, by the first server via the selected additional client device from the second server, the second content over the Internet; and

sending, by the first server to the first device over the Internet, the second content.

2. The method according to claim 1 , wherein the selecting of the client device or of the additional client device is by the first server.

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

receiving, by the first device over the Internet, the respective IP addresses of each of the client devices in the group; and

associating and storing, by the first device, in the group, a respective physical geographical location for each of the client devices in the group,

wherein the selecting of the client device or of the additional client device is by the first device.

4. The method according to claim 1 , wherein each of the first and second content includes, consists of, or comprises, a part or whole of a respective web-site page.

5. The method according to claim 1 , further comprising sending the stored IP addresses to the first device.

6. The method according to claim 1 , further comprising sending the IP addresses of the selected client device to the first device.

7. The method according to claim 1 , wherein the selecting of the client device or of the additional client device further comprises randomly selecting out of the devices in the group that are associated with the physical geographical location.

8. The method according to claim 1 , wherein the selecting comprises selecting, out of the devices in the group that are associated with the physical geographical location, based on attributes or characteristics of the devices in the group.

9. The method according to claim 1 , wherein the physical geographical location associated with each of the client devices in the group is based on, uses, or responsive to, the actual physical geographical location of the respective client device of the group.

10. The method according to claim 1 , further comprising receiving, by the first server, the physical geographical location from each of the client devices of the group.

11. The method according to claim 1 , wherein the physical geographical location includes at least one out of a continent, a country, a state or province, a city, a street, a ZIP code, or longitude and latitude.

12. The method according to claim 11 , wherein the physical geographical location of each device in the group is based on a geolocation.

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

14. The method according to claim 1 , wherein the selecting of the client device or of the additional client device further comprises selecting based on the value of the IP addresses of the devices in the group.

15. The method according to claim 1 , wherein the selecting of the client device or of the additional client device further comprises selecting based on past activities of the devices in the group.

16. The method according to claim 15 , wherein the selecting further comprises selecting based on timing of an event.

17. The method according to claim 15 , wherein the selecting further comprises selecting based on timing of the last communication with the devices in the group.

18. The method according to claim 1 , wherein the first server is further storing, operating, or using, a server operating system.

19. The method according to claim 18 , wherein the server operating system consists or, comprises of, or based on, one out of Microsoft Windows Server®, Linux, or UNIX.

20. The method according to claim 18 , wherein the server operating system consists or, comprises of, or based on, 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, NetBSD®, or any combination thereof.

21. The method according to claim 1 , wherein the first content includes, consists of, or comprises, a part or whole of a computer file, text, audio data, voice data, multimedia data, video data, an image, music data, or a computer program.

22. The method according to claim 1 , further comprising receiving a message over the Internet from each of the client devices in the group, and wherein the storing of the respective IP addresses is in response to the receiving of the message.

23. The method according to claim 1 , further comprising receiving, by the first server from the first device, the first URL over the Internet, and wherein the selecting of the client device is in response to the receiving of the first URL.

24. The method according to claim 1 , further comprising receiving, by the first server from each of the client devices in the group, a message over the Internet; and

storing, by the first server, the respective IP addresses of each of the client devices in the group.

25. The method according to claim 1 , wherein the first server is not a client device.

26. The method according to claim 25 , wherein the first device comprises a first consumer computer device.

27. The method according to claim 25 , wherein each of the client devices in the group comprises a respective consumer computer device.

28. A method for anonymously fetching a first content by a first device from a second server over the Internet via a first server, the first content identified in the Internet by a first URL and the first device is identified in the Internet by a first Internet Protocol (IP) address, further for anonymously fetching a second content by the first device from a third server over the Internet via the first server, the second content identified in the Internet by a second URL, for use with a group of client devices that are each identified in the Internet using a respective IP address and that are each associated with a physical geographical location, the method by the first server comprising:

associating and storing, by the first server, a respective physical geographical location to each client device in the group;

selecting, based on the respective physical geographical location, a client device from the group;

sending, by the first server to the selected client device, the first URL over the Internet;

receiving, by the first server via the selected client device from the second server, the first content over the Internet;

receiving, by the first server from the first device, the second URL over the Internet;

sending, by the first server to the selected client device over the Internet, the second URL;

receiving, by the first server over the Internet via the selected client device from the third server, the second content; and

sending, by the first server to the first device over the Internet, the second content.

29. The method according to claim 28 , further comprising receiving, by the first server, the first URL over the Internet from the first device.

30. The method according to claim 28 , further comprising receiving a message over the Internet from each of the client devices in the group; and

storing, in response to the receiving of the messages, the respective IP addresses of each of the client devices in the group.

31. The method according to claim 28 , further comprising sending the first content over the Internet to the first device.

32. The method according to claim 28 , further comprising sending the stored IP addresses to the first device.

33. The method according to claim 28 , further comprising sending the IP addresses of the selected client device to the first device.

34. The method according to claim 28 , wherein the selecting of the client device further comprises randomly selecting out of the devices in the group that are associated with the physical geographical location.

35. The method according to claim 28 , wherein the selecting of the client device comprises selecting, out of the devices in the group that are associated with the physical geographical location, based on attributes or characteristics of the devices in the group.

36. The method according to claim 28 , wherein the physical geographical location associated with each of the client devices in the group is based on, uses, or responsive to, the actual physical geographical location of the respective client device of the group.

37. The method according to claim 28 , further comprising receiving, by the first server, the physical geographical location from each of the client devices of the group.

38. The method according to claim 28 , wherein the physical geographical location includes at least one out of a continent, a country, a state or province, a city, a street, a ZIP code, or longitude and latitude.

39. The method according to claim 38 , wherein the physical geographical location of each device of the group 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 28 , wherein the selecting of the client device further comprises selecting based on the value of the IP addresses of the devices in the group.

42. The method according to claim 28 , wherein the selecting further comprises selecting based on past activities of the devices in the group.

43. The method according to claim 42 , wherein the selecting further comprises selecting based on a timing of an event.

44. The method according to claim 42 , wherein the selecting further comprises selecting based on a timing of the last communication with the devices in the group.

45. The method according to claim 28 , wherein the first server is further storing, operating, or using, a server operating system.

46. The method according to claim 45 , wherein the server operating system consists or, comprises of, or based on, one out of Microsoft Windows Server®, Linux, or UNIX.

47. The method according to claim 45 , wherein the server operating system consists or, comprises of, or based on, 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®, or any combination thereof.

48. The method according to claim 28 , wherein the first content includes, consists of, or comprises, a part or whole of wherein the first content includes, consists of, or comprises, a part or whole of a computer file, text, audio data, voice data, multimedia data, video data, an image, music data, or a computer program.

49. The method according to claim 28 , wherein each of the first and second content includes, consists of, or comprises, a part or whole of a respective web-site page.

50. The method according to claim 28 , wherein the first server is not a client device.

51. The method according to claim 50 , wherein the first device comprises a first consumer computer device.

52. The method according to claim 50 , wherein each of the client devices in the group comprises a respective consumer computer device.

53. A method for anonymously fetching a first content by a first device from a second server over the Internet via a first server, the first content identified in the Internet by a first URL and the first device is identified in the Internet by a first Internet Protocol (IP) address, further for anonymously fetching a second content by the first device from a third server over the Internet via the first server, the second content identified in the Internet by a second URL, for use with a group of client devices that are each identified in the Internet using a respective IP address and that are each associated with a physical geographical location, the method comprising:

associating and storing, by the first server, a respective physical geographical location to each client device in the group;

selecting, based on the respective physical geographical location, a client device from the group in response to the receiving of the first URL;

sending, by the first server, the first URL over the Internet to the selected client device;

receiving, by the first server, the first content over the Internet via the selected client device from the second server;

sending, by the first server, the first content over the Internet to the first device;

receiving, by the first server, the second URL over the Internet from the first device;

selecting an additional client device from the group in response to the receiving of the second URL;

sending, by the first server, the second URL over the Internet to the selected additional client device;

receiving, by the first server, the second content over the Internet via the selected additional client device from the third server; and

sending, by the first server, the second content over the Internet to the first device.

54. The method according to claim 53 , wherein the selecting of the client device or of the additional client device is by the first server.

55. The method according to claim 53 , further comprising:

receiving, by the first device over the Internet, the respective IP addresses of each of the client devices in the group; and

associating and storing, by the first device, in the group, a respective physical geographical location for each of the client devices in the group,

wherein the selecting of the client device or of the additional client device is by the first device.

56. The method according to claim 53 , further comprising receiving, by the first server from each of the client devices in the group, a message over the Internet; and

storing, by the first server, in response to the receiving of the messages, the respective IP addresses of each of the client devices in the group.

57. The method according to claim 53 , further comprising sending the stored IP addresses to the first device.

58. The method according to claim 53 , further comprising sending the IP addresses of the selected client device to the first device.

59. The method according to claim 53 , wherein the selecting of the client device or of the additional client device further comprises randomly selecting out of the devices in the group that are associated with the physical geographical location.

60. The method according to claim 53 , wherein the selecting of the client device or of the additional client device comprises selecting, out of the devices in the group that are associated with the physical geographical location, based on attributes or characteristics of the devices in the group.

61. The method according to claim 53 , wherein the physical geographical location associated with each of the client devices in the group is based on, uses, or responsive to, the actual physical geographical location of the respective client device of the group.

62. The method according to claim 53 , further comprising receiving, by the first server, the physical geographical location from each of the client devices of the group.

63. The method according to claim 53 , wherein the physical geographical location includes at least one out of a continent, a country, a state or province, a city, a street, a ZIP code, or longitude and latitude.

64. The method according to claim 63 , wherein the physical geographical location of each device of the group is based on a geolocation.

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

66. The method according to claim 53 , wherein the selecting of the client device or of the additional client device further comprises selecting based on the value of the IP addresses of the devices in the group.

67. The method according to claim 53 , wherein the selecting of the client device or of the additional client device further comprises selecting based on past activities of the devices in the group.

68. The method according to claim 67 , wherein the selecting further comprises selecting based on a timing of an event.

69. The method according to claim 67 , wherein the selecting further comprises selecting based on a timing of the last communication with the devices in the group.

70. The method according to claim 53 , wherein the first server is further storing, operating, or using, a server operating system.

71. The method according to claim 70 , wherein the server operating system consists or, comprises of, or based on, one out of Microsoft Windows Server®, Linux, or UNIX.

72. The method according to claim 70 , wherein the server operating system consists or, comprises of, or 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, NetBSD®, or any combination thereof.

73. The method according to claim 53 , wherein the first content includes, consists of, or comprises, a part or whole of a computer file, text, audio data, voice data, multimedia data, video data, an image, music data, or a computer program.

74. The method according to claim 53 , wherein each of the first and second content includes, consists of, or comprises, a part or whole of a respective web-site page.

75. The method according to claim 53 , further comprising receiving, by the first server from the first device over the Internet, the first URL, and wherein the selecting of the client device is in response to the receiving of the first URL.

76. The method according to claim 53 , wherein the first server is not a client device.

77. The method according to claim 76 , wherein the first device comprises a first consumer computer device.

78. The method according to claim 76 , wherein each of the client devices in the group comprises a respective consumer computer device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2021
From: VILENSKI, OFER; SHRIBMAN, DERRY
To: LUMINATI NETWORKS LTD.
Reel/Frame 058038/0984 →
CHANGE OF NAME Recorded Nov 7, 2021
From: LUMINATI NETWORKS LTD.
To: BRIGHT DATA LTD.
Reel/Frame 058040/0803 →
Continuity (7)
Continuation 17146625 · Jan 12, 2021
Continuation 16292364 · Mar 5, 2019
Continuation 15663762 · Jul 30, 2017
Continuation 14930894 · Nov 3, 2015
Division 14468836 · Aug 26, 2014
Provisional Application 61870815 · Aug 28, 2013
Related Publication 20220060561A1 · Feb 24, 2022
Cited By (1)
US 12,379,949