# US 12,010,196 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 12,010,196 B2
- Document ID: US12010196B2
- Status: Granted
- Kind: B2
- Application number: 17/714,185
- Filed: 2022-04-06
- Published: 2022-07-21
- Granted: 2024-06-11
- Earliest claimed: 2013-08-28
- Assignees: Bright Data Ltd.
- Applicants: Bright Data Ltd.
- Inventors: Derry Shribman; Ofer Vilenski
- Web page: https://patentgrep.com/patent/US12010196B2

## 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 use with a resource associated with a criterion in a client device that communicates with a first server over the Internet, the client device is identified in the Internet using an Internet Protocol (IP) address, and for fetching over the Internet a first content identified by a first Uniform Resource Locator (URL), the method comprising:
periodically or continuously measuring, by the client device, the utilization level of the resource;
determining, by the client device, whether the measured resource utilization level satisfies the criterion;
responsive to the determining that the utilization level of the resource satisfies the criterion and to being in a second state, shifting, by the client device, to a first state;
responsive to the determining that the utilization level of the resource does not satisfy the criterion and to being in the second state, shifting, by the client device, to the second state, and sending, by the client device to the first server over the Internet, a message that is indicative of the shifting, and includes the IP address;
receiving, by the client device from the first server over the Internet, the first URL; and
sending, by the client device to the first server over the Internet, in response to the receiving of the first URL, the first content.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising sending, by the client device to the first server over the Internet, the measured resource utilization level and wherein the determining is performed by the first server in response to a receiving, by the first server, the resource utilization from the client device.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the sending of the measured resource utilization level comprising periodically sending, by the client device to the first server over the Internet, of the measured resource utilization level.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the communication by the client device with the first server over the Internet is based on, or is according to, a Transmission Control Protocol (TCP)/Internet Protocol (IP) protocol or connection.

### Claim 5 (depends on 4)

The method according to claim 4, further comprising establishing a connection between the client device and the first server, and wherein the communication with the first server is over the established connection, and wherein the communicating between the client device and the first server uses the Transmission Control Protocol (TCP), and wherein the connection is established by performing ‘Active OPEN’ or ‘Passive OPEN’.

### Claim 6 (depends on 5)

The method according to claim 5, wherein the communication by the client device with the first server is based on, or is according to, a Virtual Private Network (VPN) and the established connection is using a tunneling protocol.

### Claim 7 (depends on 1)

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

### Claim 8 (depends on 1)

The method according to claim 1, wherein the IP address is in IPv4 or IPv6 form.

### Claim 9 (depends on 1)

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

### Claim 10 (depends on 9)

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

### Claim 11 (depends on 9)

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

### Claim 12 (depends on 11)

The method according to claim 11, wherein the mobile operating system comprises, or is based on, 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, or Blackberry® operating system.

### Claim 13 (depends on 1)

The method according to claim 1, further comprising executing an application, and wherein the application comprises a web browser.

### Claim 14 (depends on 13)

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

### Claim 15 (depends on 1)

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

### Claim 16 (depends on 15)

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

### Claim 17 (depends on 1)

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

### Claim 18 (depends on 1)

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

### Claim 19 (depends on 18)

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

### Claim 20 (depends on 19)

The method according to claim 19, 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 21 (depends on 18)

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

### Claim 22 (depends on 1)

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

### Claim 23 (depends on 22)

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

### Claim 24 (depends on 23)

The method according to claim 23, 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 25 (depends on 1)

The method according to claim 1, further comprising periodically sending, by the client device, a message that comprises a status of the client device, or is in response to the state of the client device.

### Claim 26 (depends on 25)

The method according to claim 25, wherein the status is associated with being in the first or second state, and wherein the message is sent over the Internet to the first server.

### Claim 27 (depends on 25)

The method according to claim 25, wherein the message comprises, or is based on, an ‘heartbeat’ message, and wherein the time period between multiple messages sent 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, 5 minutes, or 10 minutes.

### Claim 28 (depends on 1)

The method according to claim 1, further comprising sending, by the client device, a physical geographical location to the first server, and wherein the physical geographical location corresponds to the actual physical geographical location of the client device.

### Claim 29 (depends on 1)

The method according to claim 1, wherein the first content stored in a web server that is distinct from the first server, the method further comprising:
sending, by the client device in response to the receiving of the first URL, the first URL to the web server; and
receiving, by the client device, the first content from the web server in response to the sending of the first URL.

### Claim 30 (depends on 29)

The method according to claim 29, wherein the web server uses a HyperText Transfer Protocol (HTTP) and responds to HTTP requests via the Internet, and wherein the sending of the first URL to the web server comprises a HTTP request.

### Claim 31 (depends on 29)

The method according to claim 29, wherein the communication with the web server is based on, or uses, a HTTP persistent connection.

### Claim 32 (depends on 1)

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, music data, or a computer program.

### Claim 33 (depends on 1)

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

### Claim 34 (depends on 1)

The method according to claim 1, wherein the first content is public content that is available from the web server for any requesting client device over the Internet.

### Claim 35 (depends on 1)

The method according to claim 1, wherein the client device comprises, or is part of, a vehicular device.

### Claim 36 (depends on 1)

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

### Claim 37 (depends on 36)

The method according to claim 36, 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 38 (depends on 36)

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

### Claim 39 (depends on 36)

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

### Claim 40 (depends on 36)

The method according to claim 36, 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, a telephone, or an answering machine.
