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

## 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 first web server that stores a first content identified by a first Uniform Resource Locator (URL), and for use with a second web server that stores a second content identified by a second URL, the method comprising:
executing, by a first client device, a web browser application;
receiving, by the first client device from a first server over the Internet, the first URL;
sending, by the web browser application in the first client device to the first web server over the Internet, the received first URL;
receiving, by the first client device from the first web server over the Internet, in response to the sending of the first URL, the first content;
sending, by the first client device to the first server over the Internet, in response to the receiving of the first URL, the received first content;
receiving, by the first client device from the first server over the Internet, the second URL;
sending, by the web browser application in the first client device to the second web server over the Internet, the received second URL;
receiving, by the first client device from the second web server over the Internet, in response to the sending of the second URL, the second content; and
sending, by the first client device to the first server over the Internet, the received second content,
wherein the first client device comprises a consumer communication device.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the first client device is identified by a Media Access Control (MAC) address or a hostname, and wherein the method further comprising sending, by the first client device to the first server over the Internet, during, as part of, or in response to, a start-up or power-up of the first client device, a first message.

### Claim 3 (depends on 2)

The method according to claim 2, for use with a first application stored in the first client device and 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 different version of the first application, that is stored in the first server, and that is associated with a second version number, wherein the method further comprising receiving, by the first client device from the first server over the Internet, in response to 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, by the first client device from the first server over the Internet, in response to the first message, the second application from the first server, and installing the second application in the first client device as a replacement for the first application.

### Claim 6 (depends on 2)

The method according to claim 2, wherein the first message comprises an IP address, a MAC address, a hostname, or any combination thereof, of the first client device.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the first or second content comprises an audio content, a video content, or any combination thereof, and wherein the communication between the first client device and the first server comprises communication over an established Transmission Control Protocol (TCP) connection.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising periodically communicating over the TCP connection between the first server and the first client device.

### Claim 9 (depends on 8)

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

### Claim 10 (depends on 1)

The method according to claim 1, further comprising determining, by the first client device, that the received first content, is valid.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the determining is based on a received Hypertext Transfer Protocol (HTTP) header according to, or based on, IETF RFC 2616.

### Claim 12 (depends on 10)

The method according to claim 10, further comprising:
sending, a message over the Internet in response to the determining that the received first content, is not valid; and
receiving, over the Internet in response to the sending of the message, from the first server or from a second client device selected from a plurality of client devices, the first content.

### Claim 13 (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 sending of a Hypertext Transfer Protocol (HTTP) request, the receiving and storing of the first content, the receiving of the first URL, and the sending of a part of, or the whole of, the stored first content, the method is further preceded by:
downloading, by the first client device from the Internet, the software application; and
installing, by the first client device, the downloaded software application.

### Claim 14 (depends on 13)

The method according to claim 13, wherein the software application is downloaded from the first server.

### Claim 15 (depends on 1)

The method according to claim 1, wherein the first content comprises a first web-page or a part thereof, and wherein the second content comprises a second web-page or a part thereof.

### Claim 16 (depends on 1)

The method according to claim 1, wherein each of the first and second web servers responds to respective Hypertext Transfer Protocol (HTTP) requests, and wherein the sending of the first or second URL to the respective first or second web server over the Internet comprises sending a respective Hypertext Transfer Protocol (HTTP) request that comprises the respective first or second URL.

### Claim 17 (depends on 1)

The method according to claim 1, further comprising storing, by the first client device, in response to the receiving from the first web server, the received first content.

### Claim 18 (depends on 1)

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

### Claim 19 (depends on 1)

The method according to claim 1, wherein the first client device communicates over the Internet based on, or according to, UDP, DNS, TCP, FTP, POP #, SMTP, SQL, or any combination thereof.

### Claim 20 (depends on 1)

The method according to claim 1, further comprising storing, operating, or using, by the first client device, a client operating system.

### Claim 21 (depends on 1)

The method according to claim 1, further preceded by communicating, by the first client device with the first server over the Internet.

### Claim 22 (depends on 1)

The method according to claim 1, wherein the sending of the received first content comprises sending of the received first content to the first server.

### 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, wherein each of the first and second web servers is a respective Hypertext Transfer Protocol (HTTP) server that responds to respective HTTP requests.

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