# US 10,313,484 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 10,313,484 B2
- Document ID: US10313484B2
- Status: Granted
- Kind: B2
- Application number: 15/957,942
- Filed: 2018-04-20
- Published: 2018-08-23
- Granted: 2019-06-04
- Earliest claimed: 2009-10-08
- Assignees: Web Spark Ltd.
- Applicants: Hola Newco Ltd.
- Inventors: Derry Shribman; Ofer Vilenski
- Web page: https://patentgrep.com/patent/US10313484B2

## 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 requesting client device that comprises an HTTP client and is identified over the Internet by a first Internet Protocol (IP) address, for use with a first server that is a web server that is Hypertext Transfer Protocol (HTTP) server that responds to HTTP requests and stores a first content identified by a first content identifier, for use with a second server distinct from the first web server and identified in the Internet by a second IP address, and for use with a plurality of client devices each identified by a distinct IP address and each storing a part of, or a whole of, the first content, the method by the requesting client device comprising:
identifying, an HTTP request for the first content;
sending, to the second server using the second IP address over the Internet in response to the identifying, the first content identifier, the first IP address, and a criterion; and
receiving, over the Internet in response to the sending, from a first client device selected from the plurality of client devices according to the criterion, the part of, or the whole of, the first content.

### Claim 2 (depends on 1)

The method according to claim 1, for use with a list of IP addresses of the plurality of client devices that is stored in a second client or a third server device, and wherein the sending comprises sending to the second client or third server device, and the method further comprising receiving, by the requesting client device from the respective second client or third server device the list of the IP addresses.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising selecting, by the requesting client device, the IP address of the first client device from the received list of IP addresses, and sending the first content identifier to the first client device.

### Claim 4 (depends on 3)

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

### Claim 5 (depends on 4)

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

### Claim 6 (depends on 5)

The method according to claim 5, for use with a second application that is a version of the first application and is stored in the second server and associated with a second version number, wherein the method further comprising receiving, by the requesting client device from the second server, in response to the first message, a second message that comprises the second version number.

### Claim 7 (depends on 6)

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

### Claim 8 (depends on 1)

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

### Claim 9 (depends on 8)

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

### Claim 10 (depends on 9)

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

### Claim 11 (depends on 1)

The method according to claim 1, further comprising periodically communicating between the second server and the requesting client device.

### Claim 12 (depends on 11)

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

### Claim 13 (depends on 1)

The method according to claim 1, wherein the criterion is stored in the requesting client device, and the method further comprising selecting, by the requesting client device, the first client device from the plurality of client devices, according to the stored criterion.

### Claim 14 (depends on 13)

The method according to claim 13, wherein the criterion is based on, or comprises, a geographical location of the plurality of client devices, or a response time when communicating with the requesting client device.

### Claim 15 (depends on 13)

The method according to claim 13, wherein the first client device is the quickest to respond to queries from the requesting client device.

### Claim 16 (depends on 13)

The method according to claim 13, further comprising sending, by the requesting client device, a notification message to a device from the plurality of client devices that was not selected as part of the selecting.

### Claim 17 (depends on 1)

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

### Claim 18 (depends on 17)

The method according to claim 17, wherein the identifying comprises intercepting, by a driver in the requesting client device, the request for the first content respectively from the web browser application or the email application.

### Claim 19 (depends on 1)

The method according to claim 1, further comprising storing, by the requesting client device, the received part of, or the received whole of, the first content.

### Claim 20 (depends on 19)

The method according to claim 19, further comprising:
receiving, by the requesting client device from a second device over the Internet, a request for the stored part of, or the stored whole of, the first content; and
sending, in response to the received request by the requesting client device to the second device over the Internet, the stored part of, or the stored whole of, the first content.

### Claim 21 (depends on 1)

The method according to claim 1, wherein the requesting client device stores a second content identified by a second content identifier, the method further comprising sending, over the Internet by the requesting client device, a part of, or a whole of, the second content.

### Claim 22 (depends on 21)

The method according to claim 21, wherein the sending is at least in part performed in parallel to the identifying, the sending, or the receiving by the requesting client device.

### Claim 23 (depends on 1)

The method according to claim 1, further comprising establishing, by the requesting client device, a Transmission Control Protocol (TCP) connection with the second server or with the first client device using TCP/IP protocol.

### Claim 24 (depends on 1)

The method according to claim 1, wherein the requesting client device comprises a wireless modem for Radio-Frequency (RF) communication, and wherein the sending and the receiving is using the RF communication.

### Claim 25 (depends on 1)

The method according to claim 1, wherein the first content comprises distinct first and second parts, wherein the receiving comprises receiving, over the Internet in response to the sending, from the first client device selected from the plurality of client devices, the first part, and wherein the method further comprising receiving, by the requesting client device over the Internet in response to the sending, from a second client device selected from the plurality of client devices, the second part.

### Claim 26 (depends on 1)

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

### Claim 27 (depends on 1)

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

### Claim 28 (depends on 1)

The method according to claim 1, wherein the first content comprises web-page, audio, or video content, and wherein the first content identifier is using a Uniform Resource Locator (URL).
