# US 12,003,566 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,566 B2
- Document ID: US12003566B2
- Status: Granted
- Kind: B2
- Application number: 18/112,572
- Filed: 2023-02-22
- Published: 2023-06-22
- 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/US12003566B2

## 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 a first content identified by a first content identifier that comprises a Uniform Resource Locator (URL), the method comprising:
storing, in a first server, a list of IP addresses
executing, by the first server, a server operating system;
receiving, by the first server from a first client device over the Internet, the first content identifier;
selecting, by the first server, an IP address from the list according to a criterion, in response to the receiving of the first content identifier;
fetching, by the first server from the web server over the Internet, using the selected IP address, the first content; and
sending, by the first server to the first client device over the Internet, the fetched first content, or a part thereof,
wherein the first server is not a client device.

### Claim 2 (depends on 1)

The method according to claim 1, further for use with a second client device that is addressable in the Internet using the selected IP address, and wherein the second client device comprises a consumer communication device.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the fetching of the first content comprises:
sending, by the first server to the second client device over the Internet, in response to the selecting, the first content identifier.

### Claim 4 (depends on 3)

The method according to claim 3, further comprising:
receiving, by the second client device from the first server over the Internet, the first content identifier;
receiving, by the second client device from the web server over the Internet, the first content; and
sending, by the second client device to the first server over the Internet, the received first content or the part thereof.

### Claim 5 (depends on 2)

The method according to claim 2, further comprising:
Communicating, by the first server with the second client device over the Internet; and
Storing, by the first server, the IP address of the second client device in the list in response to the communicating.

### Claim 6 (depends on 1)

The method according to claim 1, for use with a second client device, the method further comprising:
sending, by the first server to the second client device over the Internet, a ‘keep alive’ message; and
waiting, by the first server, for a response to the ‘keep alive’ message from the second client device.

### Claim 7 (depends on 6)

The method according to claim 6, further comprising:
receiving, by the first server from the second client device over the Internet, the response to the ‘keep alive’ message; and
responsive to the receiving of the response, adding the IP address of the second client device to the list.

### Claim 8 (depends on 6)

The method according to claim 6, further comprising responsive to not receiving, by the first server from the second client device over the Internet, the response to the ‘keep alive’ message, removing the IP address of the second client device from the list.

### Claim 9 (depends on 6)

The method according to claim 6, wherein the sending of the ‘keep alive’ message comprises periodically sending by the first server the ‘keep alive’ message to the second client device.

### Claim 10 (depends on 1)

The method according to claim 1, wherein the criterion is stored in the first server.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the criterion is based on, or comprises, a numerical closeness to an IP address of the web server.

### Claim 12 (depends on 10)

The method according to claim 10, wherein the criterion is based on, or comprises, a geographical location, or a response time when communicating with a client device that is addressed by the selected IP address.

### Claim 13 (depends on 1)

The method according to claim 1, for use with a first software application that is stored in the first server and that is associated with a first version number, the method further comprising sending, by the first server to the first client device over the Internet, a message that comprises the first version number of the software application.

### Claim 14 (depends on 13)

The method according to claim 13, further comprising sending, by the first server to the first client device over the Internet, the first software application.

### Claim 15 (depends on 1)

The method according to claim 1, wherein the first server communicates over the Internet based on, according to, or using, Transmission Control Protocol/Internet Protocol (TCP/IP) protocol or connection.

### Claim 16 (depends on 1)

The method according to claim 1, wherein the first server communicates over the Internet based on, or according to, one out of UDP, DNS, TCP, FTP, POP, SMTP, or SQL standards.

### Claim 17 (depends on 1)

The method according to claim 1, wherein the first content comprises a web-page, an audio content, a video content, or any combination thereof.

### Claim 18 (depends on 1)

The method according to claim 1, for use with multiple client devices that includes a second client device, each of the client devices is identified over the Internet using a respective IP address from the list, wherein the method further comprising:
selecting, by the first server, a group of client devices from the multiple client devices by selecting the respective IP addresses of the client devices from the list; and
sending, by the first server over the Internet, the selected IP addresses in response to the selecting of the group.

### Claim 19 (depends on 1)

The method according to claim 1, further comprising sending, by the first server to the first client device over the Internet, the selected IP address.

### Claim 20 (depends on 1)

The method according to claim 1, further comprising responsive to the receiving of the first content identifier by the first server from the first client device, adding an IP address of the first client device to the list.

### Claim 21 (depends on 1)

The method according to claim 1, wherein the first client device is identified by a first Internet Protocol (IP) address, Media Access Control (MAC) address, a hostname, or a combination thereof.

### Claim 22 (depends on 1)

The method according to claim 1, wherein the web server is a Hypertext Transfer Protocol (HTTP) server that responds to HTTP requests.

### Claim 23 (depends on 1)

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

### Claim 24 (depends on 1)

The method according to claim 1, for use with a software application that includes computer instructions that, when executed by a computer processor, cause the processor to perform the steps of the claim 1.

### Claim 25 (depends on 1)

A non-transitory computer readable medium containing computer instructions that, when executed by a computer processor, cause the processor to perform the method according to claim 1.
