# US 12,003,569 B2 · System providing faster and more efficient data communication

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

- Number: US 12,003,569 B2
- Document ID: US12003569B2
- Status: Granted
- Kind: B2
- Application number: 18/138,095
- Filed: 2023-04-23
- Published: 2023-08-17
- Granted: 2024-06-04
- Earliest claimed: 2009-10-08
- Assignees: Bright Data Ltd.
- Applicants: Bright Data Ltd.
- Inventors: Derry Shribman; Ofer Vilenski
- Web page: https://patentgrep.com/patent/US12003569B2

## CPC

- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 67/01: Protocols
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/1063: {Discovery through centralising entities}
- H04L 67/108: {characterised by resources being split in blocks or fragments}
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/563: Data redirection of data network streams
- H04L 67/564: Enhancement of application control based on intercepted application data
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system designed for increasing network communication speed for users, while lowering network congestion for content owners and ISPs. The system employs network elements including an acceleration server, clients, agents, and peers, where communication requests generated by applications are intercepted by the client on the same machine. The IP address of the server in the communication request is transmitted to the acceleration server, which provides a list of agents to use for this IP address. The communication request is sent to the agents. One or more of the agents respond with a list of peers that have previously seen some or all of the content which is the response to this request (after checking whether this data is still valid). The client then downloads the data from these peers in parts and in parallel, thereby speeding up the Web transfer, releasing congestion from the Web by fetching the information from multiple sources, and relieving traffic from Web servers by offloading the data transfers from them to nearby peers.

## Claims

### Claim 1

A method for use with a web server that stores first, second, and third parts of a content, the method comprising:
identifying, by a first device that is identified by a Media Access Control (MAC) address, Internet Protocol (IP) address, or a hostname, the first, second, and third parts;
sending, by the first device to a first client device over the Internet, a first Hypertext Transfer Protocol (HTTP) request for the identified first part;
sending, by the first device to a second client device over the Internet, a second HTTP request for the identified second part;
sending, by the first device to a third client device over the Internet, a third HTTP request for the identified third part;
receiving, by the first device from the web server via the first client device over the Internet, in response to the sending of the first HTTP request, the first part;
receiving, by the first device from the web server via the second client device over the Internet, in response to the sending of the second HTTP request, the second part; and
receiving, by the first device from the web server via the third client device over the Internet, in response to the sent third HTTP request, the third part,
wherein each of the first, second, and third parts consists of, or comprises, a respective web-page or a portion thereof, and
wherein each of the first, second, and third client devices comprises a respective consumer communication device.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising sending, by the first device, during, as part of, or in response to, a start-up of the first device, a first message that comprises the MAC address, the IP address, or the hostname.

### Claim 3 (depends on 2)

The method according to claim 2, for use with a first application that is stored in the first device and that is associated with a first version number, wherein the first message comprises the first version number.

### Claim 4 (depends on 3)

The method according to claim 3, for use with a second application that is a version of the first application that is associated with a second version number, wherein the method further comprising receiving, by the first device, in response to the sending of the first message, a second message that comprises the second version number.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the method further comprising downloading over the Internet, by the first device, in response to the second message, the second application, and installing the second application in the first device as a replacement for the first application.

### Claim 6 (depends on 1)

The method according to claim 1, for use with a group of client devices that includes the first, second, and third client devices, the method further comprising selecting the first, second, and third client devices, from the group.

### Claim 7 (depends on 6)

The method according to claim 6, further for use with a list of Internet Protocol (IP) addresses of the client devices in the group, and wherein the selecting comprises selecting the respective IP addresses of the first, second, and third client devices from the list.

### Claim 8 (depends on 7)

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

### Claim 9 (depends on 7)

The method according to claim 7, wherein the list is stored in a device other than the first device.

### Claim 10 (depends on 6)

The method according to claim 6, wherein the selecting is based on a criterion.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the criterion is based on an identification of the web server identification or on the content parts identification.

### Claim 12 (depends on 10)

The method according to claim 10, wherein the criterion is based on, or comprises, a geographical location of the client devices in the group, or wherein the criterion is based on, or comprises, a response time when communicating with the first device.

### Claim 13 (depends on 10)

The method according to claim 10, wherein the selected client devices are the quickest to respond to queries.

### Claim 14 (depends on 6)

The method according to claim 6, wherein the selecting is performed by the first device.

### Claim 15 (depends on 6)

The method according to claim 6, wherein the selecting is performed by a device other than the first device.

### Claim 16 (depends on 1)

The method according to claim 1, further comprising determining that the received first, second, or third part is valid.

### Claim 17 (depends on 16)

The method according to claim 16, wherein the determining is based on a received HTTP header according to, or based on, IETF RFC 2616.

### Claim 18 (depends on 16)

The method according to claim 16, wherein the determining is performed by the first device.

### Claim 19 (depends on 1)

The method according to claim 1, further comprising periodically communicating over the Internet by first device.

### Claim 20 (depends on 19)

The method according to claim 19, wherein the periodically communicating comprises exchanging ‘keep alive’ messages.

### Claim 21 (depends on 1)

The method according to claim 1, further comprising forming a message that includes the received first, second, and third parts or a part thereof, and sending the message over the Internet.

### Claim 22 (depends on 21)

The method according to claim 21, wherein the message comprises, or consists of, the content.

### Claim 23 (depends on 1)

The method according to claim 1, wherein the receiving, by the first device of the first part comprises:
receiving, by the first client device from the web server over the Internet, the first part;
storing, by the first client device, the received first part; and
sending, by the first client device to the first device over the Internet, the stored first part,
wherein the receiving, by the first device of the second part comprises:
receiving, by the second client device from the web server over the Internet, the second part;
storing, by the second client device, the received second part; and
sending, by the second client device to the first device over the Internet, the stored second part,
and wherein the receiving, by the first device of the third part comprises:
receiving, by the third client device from the web server over the Internet, the third part;
storing, by the third client device, the received third part; and
sending, by the third client device to the first device over the Internet, the stored third part.

### Claim 24 (depends on 1)

The method according to claim 1, further comprising executing, by the first device, a web/Internet browser application or an email application.

### Claim 25 (depends on 1)

The method according to claim 1, wherein at least one of the content parts comprises respective audio data or video data.

### Claim 26 (depends on 1)

The method according to claim 1, wherein the first part, the second part, or the third part, is identified over the Internet using a Uniform Resource Locator (URL).

### Claim 27 (depends on 1)

The method according to claim 1, further comprising executing, by each of the client devices, an HTTP client.

### Claim 28 (depends on 1)

The method according to claim 1, wherein each of the first, second, and third parts consists of, or comprises, an HTML object of a web-page.

### Claim 29 (depends on 1)

The method according to claim 1, wherein the content comprises, or consists of, a publicly-accessed web-site.

### Claim 30 (depends on 1)

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

### Claim 31 (depends on 1)

The method according to claim 1, wherein the first device comprises, or consists of, a server device that is not a client device.
