# US 11,451,640 B2 · System and method for improving internet communication by using intermediate nodes

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,451,640 B2
- Document ID: US11451640B2
- Status: Granted
- Kind: B2
- Application number: 16/865,366
- Filed: 2020-05-03
- Published: 2020-09-24
- Granted: 2022-09-20
- Earliest claimed: 2013-08-28
- Assignees: Bright Data Ltd.
- Applicants: Luminati Networks Ltd.
- Inventors: Derry Shribman; Ofer Vilenski
- Web page: https://patentgrep.com/patent/US11451640B2

## CPC

- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- G06Q 40/08: Insurance
- G06Q 50/16: Real estate
- H04L 43/0864: Round trip delays
- H04L 51/02: using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 63/029: {Firewall traversal, e.g. tunnelling or, creating pinholes}
- H04L 63/0407: {wherein the identity of one or more communicating identities is hidden (cryptographic mechanisms or cryptographic arrangements for anonymous credentials or for identity based cryptographic systems H04L9/00)}
- H04L 65/612: for unicast
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 67/567: Integrating service provisioning from a plurality of service providers
- H04L 67/59: Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
- G05B 2219/2642: Domotique, domestic, home control, automation, smart house
- G08B 21/043: {detecting an emergency event, e.g. a fall}
- H04L 12/2803: {Home automation networks}
- H04L 67/52: specially adapted for the location of the user terminal
- H04L 2101/659: Internet protocol version 6 [IPv6] addresses
- H04N 21/4622: {Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet (web site content organization and management for information retrieval from the Internet G06F16/958; transmission by internet of broadcast information H04H60/82; stock exchange data over packet-switching network H04L12/1804; push services including data channel over packet-switching network H04L12/1859)}
- H04W 4/029: Location-based management or tracking services
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G08B: SIGNALLING SYSTEMS, e.g. PERSONAL CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## 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

### Claim 1

A method for fetching over the Internet a web-site content stored in a first server by a first device using multiple devices, each device of the multiple devices is identified in the Internet by a respective IP address stored in a memory, the web-site content is partitioned into a plurality of content slices, each of the content slices containing at least part of the content and is identified using a respective content slice identifier that comprises a Uniform Resource Locator (URL), the method for fetching one of the content slices comprising:
(i) sending, by the first device, a HyperText Transfer Protocol (HTTP) request that includes the content slice identifier;
(ii) selecting a device from the multiple devices, in response to the sending by the first device, by selecting the respective stored Internet Protocol (IP) address of the selected device;
(iii) sending, by the selected device, the content slice identifier to the first server;
(iv) sending, by the first server to the selected device, the content slice in response to the sending by the selected device;
(v) receiving, by the selected device, the content slice in response to the sending of the content slice by the first server; and
(vi) receiving, by the first device, the content slice in response to the receiving of the content slice by the selected device,
wherein the steps (i)-(vi) are repeated for each one of the content slices,
wherein the method further comprising, upon receiving of all the content slices, reconstructing, by the first device, the web-site content from all of the received content slices,
wherein at least one of the multiple devices is a portable or mobile device that stores, operates, or uses, a mobile operating system,
wherein each of the content slices comprises, consists of, or is part of, a web-page, and
wherein the multiple devices are used as intermediary devices so that the first server is prevented from being aware of the first device.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the web-site content comprises multiple web-pages, and wherein each of the content slices comprises a web-page, or part thereof, from the multiple pages.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the web-site content comprises multiple objects, and wherein each of the content slices comprises an object.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

The method according to claim 1, wherein the communication of the first device or with the selected device is based on, or using, HTTP persistent connection.

### Claim 6 (depends on 1)

The method according to claim 1, wherein at least one of the IP addresses is in IPv4 or IPv6 form.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the selecting of the device comprises randomly selecting a device from the multiple devices.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the selecting of the device comprises selecting based on an attribute or a characteristic of the selected device.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the selecting of the device comprises selecting based on a physical geographical location of the selected device.

### Claim 10 (depends on 1)

The method according to claim 1, wherein the selecting of the device comprises selecting based on a physical geographical proximity to the first server.

### Claim 11 (depends on 1)

The method according to claim 1, wherein the selecting of the device comprises selecting based on past activities or on a timing of an event.

### Claim 12 (depends on 1)

The method according to claim 1, wherein the communication over the Internet with the first device, the selected device, or the first server, is based on, or according to, a TCP/IP protocol or connection.

### Claim 13 (depends on 1)

The method according to claim 1, further comprising establishing a connection with the first device or the selected device using TCP, and wherein the connection is established by performing ‘Active OPEN’ or ‘Passive OPEN’.

### Claim 14 (depends on 1)

The method according to claim 1, wherein the content includes, consists of, or comprises, a part or whole of files, text, numbers, audio, voice, multimedia, video, images, music, or computer program.

### Claim 15 (depends on 1)

The method according to claim 1, wherein each one of the multiple devices stores, operates, or uses, a mobile operating system.

### Claim 16 (depends on 15)

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

### Claim 17 (depends on 1)

The method according to claim 1, wherein a distinct device is selected for each content slice.

### Claim 18 (depends on 1)

The method according to claim 1, wherein at least two of the content slices have the same size, and wherein the partitioning to the content slices is sequential in the content.

### Claim 19 (depends on 1)

The method according to claim 1, wherein the partitioning to the content slices is non-sequential in the content.

### Claim 20 (depends on 1)

The method according to claim 1, wherein at least one of the multiple devices comprises, or consists of, a smartphone.

### Claim 21 (depends on 20)

The method according to claim 20, wherein each of the multiple devices comprises, or consists of, a smartphone.

### Claim 22 (depends on 1)

The method according to claim 1, wherein the number of content slices is higher than the number of the multiple devices.

### Claim 23 (depends on 1)

The method according to claim 1, wherein the number of content slices is lower than the number of the multiple devices.

### Claim 24 (depends on 1)

The method according to claim 1, wherein each of the multiple devices is a portable or mobile device that stores, operates, or uses, a mobile operating system.

### Claim 25 (depends on 1)

The method according to claim 1, further comprising:
measuring, by at least one of the multiple devices, a utilization level of a resource; and
sending, by the at least one of the multiple devices, a message that is based on the measured utilization level.

### Claim 26 (depends on 25)

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

### Claim 27 (depends on 25)

The method according to claim 25, wherein the selecting of at least one of the devices from the multiple devices is based on, or uses, the measured utilization level.

### Claim 28 (depends on 25)

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

### Claim 29 (depends on 28)

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

### Claim 30 (depends on 29)

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

### Claim 31 (depends on 25)

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

### Claim 32 (depends on 25)

The method according to claim 25, for use with a criterion associated with the utilization level of the resource, the method further comprising determining, the at least one of the multiple devices, whether the measured utilization level satisfies the criterion.

### Claim 33 (depends on 32)

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

### Claim 34 (depends on 32)

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

### Claim 35 (depends on 25)

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

### Claim 36 (depends on 25)

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

### Claim 37 (depends on 36)

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

### Claim 38 (depends on 37)

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

### Claim 39 (depends on 36)

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

### Claim 40 (depends on 25)

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

### Claim 41 (depends on 40)

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

### Claim 42 (depends on 41)

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

### Claim 43 (depends on 1)

The method according to claim 1, wherein at least one of the multiple devices is a vehicular device configured to be in a vehicle.

### Claim 44 (depends on 1)

The method according to claim 1, wherein at least one of the multiple devices comprises, or is part of, a household appliance.

### Claim 45 (depends on 44)

The method according to claim 44, wherein the appliance comprises, consists of, or includes, a major appliance that is an air conditioner, a dishwasher, a clothes dryer, a drying cabinet, a kitchen stove, a water heater, a washing machine, a trash compactor, a microwave oven, or an induction cooker.

### Claim 46 (depends on 44)

The method according to claim 44, wherein the appliance comprises, consists of, or includes, a major appliance that is a freezer or a refrigerator.

### Claim 47 (depends on 44)

The method according to claim 44, wherein the appliance comprises, consists of, or includes, a small appliance that is a television (TV) set.

### Claim 48 (depends on 44)

The method according to claim 44, wherein the appliance comprises, consists of, or includes, a small appliance that is a CD or DVD player, a camcorder, a still camera, a clock, an alarm clock, a video game console, a HiFi or home cinema, or an answering machine.

### Claim 49 (depends on 1)

The method according to claim 1, further comprising periodically sending, by at least one of the multiple devices to the first server, an ‘heartbeat’ message that comprises a status of the respective device, or is in response to the status of the respective device.

### Claim 50 (depends on 49)

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

### Claim 51 (depends on 49)

The method according to claim 49, wherein the 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.

### Claim 52 (depends on 1)

The method according to claim 1, further comprising sending, by at least one of the multiple devices to the first server, a physical geographical location.

### Claim 53 (depends on 52)

The method according to claim 52, wherein the physical geographical location corresponds to the actual physical geographical location of the respective device.

### Claim 54 (depends on 52)

The method according to claim 52, wherein the physical geographical location comprises a continent, a country, a state or province, a city, a street, a ZIP code, a longitude, a latitude, or any combination thereof.
