IP Library Granted Patent US 12706984
Granted Patent B2
US 12706984 · App. 18/738,081 · Granted Aug 11, 2026

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/60G06Q40/08G06Q50/16H04L43/0864H04L51/02H04L61/5007H04L63/029H04L63/0407H04L65/612H04L67/02H04L67/06H04L67/141H04L67/567H04L67/59G05B2219/2642G08B21/043H04L12/2803H04L67/52H04L2101/659H04N21/4622H04W4/029
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 12706984
App. No.
18/738,081
Granted
Aug 11, 2026
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 (69)

1 . A method for obtaining over the Internet a first content that is identified by a first Uniform Resource Locator (URL) and that is stored in a first web server, and a second content that is identified by a second URL and that is stored in a second web server, the method comprising:

measuring, by a mobile device, a utilization level of a resource;

sending, by the mobile device over the Internet, a message that comprises, or is based on, the measured utilization level;

receiving, by the mobile device over the Internet, the first URL;

sending, by the mobile device over the Internet to the first web server, a first HyperText Transfer Protocol (HTTP) request that comprises the first URL;

receiving, by the mobile device from the first web server over the Internet, the first content, in response to the sending of the first HTTP request;

sending, by the mobile device over the Internet, the received first content;

receiving, by the mobile device over the Internet, the second URL;

sending, by the mobile device to the second web server over the Internet, a second HTTP request that comprises the second URL;

receiving, by the mobile device from the second web server over the Internet, the second content, in response to the sending of the second HTTP request; and

sending, by the mobile device over the Internet, the received second content.

2 . The method according to claim 1 , further for use with a first server, wherein the receiving of the first URL comprises receiving from the first server, wherein the sending of the received first content comprises sending to the first server, wherein the receiving of the second URL comprises receiving from the first server, and wherein the sending of the received send content comprises sending to the first server.

3 . The method according to claim 2 , further comprising sending, by the mobile device over the Internet, a physical geographical location to the first server.

4 . The method according to claim 3 , wherein the physical geographical location corresponds to an actual physical geographical location of the mobile device, and 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, longitude and latitude, or any combination thereof.

5 . The method according to claim 1 , wherein the steps of claim 1 are sequentially executed.

6 . The method according to claim 1 , wherein a communication by the mobile device over the Internet is based on, or uses, a HTTP persistent connection.

7 . The method according to claim 1 , wherein a communication by the mobile device over the Internet is based on, or is according to, a TCP/IP protocol or connection.

8 . The method according to claim 7 , further comprising establishing, by the mobile device, a connection over the Internet, and wherein the communication with the mobile device is over the established connection.

9 . The method according to claim 8 , wherein the communicating with the mobile device uses a TCP, and wherein the connection is established by performing ‘Active OPEN’ or ‘Passive OPEN’.

10 . The method according to claim 8 , wherein the communication by the mobile device over the Internet is based on, or is according to, a Virtual Private Network (VPN).

11 . The method according to claim 10 , wherein the established connection is using a tunneling protocol.

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

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

14 . The method according to claim 1 , wherein the mobile device is further storing, operating, or using, a client operating system.

15 . The method according to claim 14 , 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.

16 . The method according to claim 14 , wherein the client operating system is a mobile operating system.

17 . The method according to claim 16 , 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.

18 . The method according to claim 1 , further comprising executing, by the mobile device, a web browser application.

19 . The method according to claim 18 , wherein the web browser consists of, comprises of, or based on, Opera™, or Mozilla Firefox®.

20 . The method according to claim 18 , wherein the web browser consists of, comprises of, or based on, Microsoft Internet Explorer or Google Chrome.

21 . The method according to claim 18 , wherein the web browser is a mobile web browser.

22 . The method according to claim 21 , wherein the mobile web browser consists of, comprises of, or based on, Safari, Opera Mini™, or Android web browser.

23 . The method according to claim 1 , wherein the mobile device comprises a smartphone.

24 . The method according to claim 1 , further for obtaining over the Internet a third content that is identified by a third URL and that is stored in the first web server, the method further comprising:

receiving, by the mobile device over the Internet, the third URL;

sending, by the mobile device over the Internet to the first web server, a third HyperText Transfer Protocol (HTTP) request that comprises the third URL;

receiving, by the mobile device from the first web server over the Internet, the third content, in response to the sending of the third HTTP request; and

sending, by the mobile device over the Internet, the received third content.

25 . The method according to claim 1 , for use with a first server, further comprising initiating a communication, by the mobile device over the Internet, with the first server in response to a powering up of the mobile device, or in response to connecting to the Internet.

26 . The method according to claim 1 , wherein the message comprises the measured utilization level.

27 . The method according to claim 1 , wherein the measuring of the utilization level comprises periodically measuring of the utilization level.

28 . The method according to claim 27 , wherein the sending of the message comprises periodically sending of the message.

29 . The method according to claim 28 , wherein the sending of the message is performed every 10, 20, 30, 50, or 100 milliseconds, every 1, 2, 3, 5, or 10 seconds, or every 1, 2, 3, 5, or 10 minutes.

30 . The method according to claim 1 , wherein the measuring of the utilization level comprises continuously measuring of the utilization level.

31 . The method according to claim 1 , for use with a criterion associated with the utilization level of the resource, the method further comprising determining, by the mobile devices, whether the measured utilization level satisfies the criterion.

32 . The method according to claim 31 , wherein the sending of the message is in response to determining that the measured utilization level satisfies the criterion.

33 . The method according to claim 31 , for use with a threshold level, and wherein the criterion is satisfied when the measured utilization level is above or below the threshold level.

34 . The method according to claim 1 , for use with a threshold level, wherein the sending of the message is in response to the measured utilization level crossing the threshold level.

35 . The method according to claim 1 , wherein the resource comprises, or consists of, a hardware component or using of the hardware component, in the respective device.

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

37 . The method according to claim 36 , 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.

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

39 . The method according to claim 1 , wherein the resource comprises, or consists of, an input or output capability.

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

41 . The method according to claim 40 , wherein the resource comprises, or consists of, the communication bandwidth of communication with a device over the Internet, or wherein the resource utilization is based on, or according to, IETF RFC 2914.

42 . The method according to claim 1 , wherein the mobile device comprises, or is part of, a household appliance.

43 . The method according to claim 1 , further comprising periodically sending, by the mobile devices over the Internet, an ‘heartbeat’ message that comprises a status of the respective device, or is in response to the status of the respective device.

44 . The method according to claim 43 , wherein the status is based on the measured utilization level.

45 . The method according to claim 43 , wherein a time period between sent multiple ‘heartbeat’ messages is at least 10 milliseconds, 20 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, minutes 5, or 10 minutes.

46 . The method according to claim 1 , wherein the mobile device comprises, consists of, or includes, a still or video camera.

47 . The method according to claim 46 , wherein the camera comprises a web camera.

48 . The method according to claim 46 , further comprising compressing, by an image processor in the mobile device, a captured image or video.

49 . The method according to claim 48 , wherein the compressing comprises lossy data compressing.

50 . The method according to claim 49 , wherein the lossy data compressing is according to, or based on, JPEG or MPEG standard.

51 . The method according to claim 48 , wherein the compressing comprises lossless data compressing.

52 . The method according to claim 51 , wherein the lossless data compressing is according to, or based on, Lempel-Ziv (LZ), PKZIP, Gzip, Lempel-Ziv-Welch (LZW), GIF, or IETF RFC 1951 standard.

53 . The method according to claim 46 , further comprising generating an image or video file of a captured scene.

54 . The method according to claim 53 , wherein the generated file is according to, or based on, Tagged Image File Format (TIFF), RAW format, AVI, DV, MOV, WMV, MP4, Design Rule for Camera Format (DCF), ITU-T H.261, ITU-T H.263, ITU-T H.264, ITU-T CCIR 601, ASF, Exchangeable Image File Format (Exif), or Digital Print Order Format (DPOF) format standard.

55 . The method according to claim 53 , wherein the generated file is according to, or based on, Joint Photographic Experts Group (JPEG) or Moving Picture Experts Group (MPEG) standard.