`Shribman etal.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,560,604 B2
`Oct. 15, 2013
`
`US008560604B2
`
`(54) SYSTEM AND METHOD FOR PROVIDING
`FASTER AND MOREEFFICIENT DATA
`COMMUNICATION
`
`(75)
`
`Inventors: Derry Shribman, Netanya (IL); Ofer
`Vilenski, Netanya (IL)
`
`(73) Assignee: Hola Networks Ltd., Netanya (IL)
`(*) Notice:
`Subject to any disclaimer, the term ofthis
`re aoa‘1.Zalusted under 35
`S.C.
`154(b) by 451
`days.
`(21) Appl. No.: 12/836,059
`
`(22)
`(65)
`
`Filed:
`
`Jul. 14, 2010
`Prior Publication Data
`US 201 1/0087733 Al
`Apr. 14, 2011
`
`7,865,585 B2*
`2003/0009583 AL*
`2003/0174648 Al
`2004/0088646 Al
`2007/0156855 Al
`2008/0008089 Al
`2008/0109446 Al
`2008/0235391 Al
`* cited by examiner
`
`1/2011 Samuels etal. 0.0.0... 709/223
`1/2003 Chanet al.
`.................. 709/236
`9/2003 Wangetal.
`5/2004 Yeageret al.
`7/2007 Johnso:
`1/2008 Bornstein etal.
`5/2008 Wang
`9/2008 Painteretal.
`
`Primary Examiner — Minh-Chau Nguyen
`(74) Attorney, Agent, or Firm — Peter A. Nieves; Sheehan
`Phinney Bass + Green PA
`
`ABSTRACT
`(57)
`A system designed for increasing network communication
`speed for users, while lowering network congestion for con-
`tent owners and ISPs. The system employs network elements
`including an accelerationserver, clients, agents, and peers,
`wherecommunication requests generated byapplications are
`intercepted by the client on the same machine. The IP address
`ofthe server in the communication request is transmitted to
`the acceleration server, which providesalist of agents to use
`for this IP address. The communication requestis sent to the
`agents. One or more ofthe agents respond with a list ofpeers
`that have previously seen someor all of the content whichis
`|
`po
`his
`request
`(after
`checking
`whether
`this d
`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
`Webservers by offloading the data transfers from them to
`nearbypeers.
`
`filed on Oct
`
`,
`
`(60)
`
`(56)
`
`Related U.S. Application Data
`Provisionalapplication Na: 61/249,624,
`8 2009
`PP
`.
`o_o
`°
`.
`Int. Cl
`(51)
`(2006.01)
`G06F 15/16
`,
`(52) US.CI
`.
`Q
`.
`Cpe
`:
`USPC seat 709/204; 709/203; 709/228
`.
`°
`,
`(58) Field of Classification Search
`USPC seseresseseseseess eee 217-219, 223, 236
`See applicationfile for completesearch history.
`an
`References Cited
`U.S. PATENT DOCUMENTS
`
`............. 709/203
`7,120,666 B2* 10/2006 McCanneet al.
`7,203,741 B2*
`4/2007 Marcoet al.
`......:seeee 709/223
`
`20 Claims, 15 Drawing Sheets
`
`
`
`CLIENT
`DEVICE
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`1 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`1 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 1 of 15
`
`US 8,560,604 B2
`
`CLIENT
`
`DEVICE
`42
`
` “SN
`
`
`—
`~
`———
`PROXY
`SERVER
`6
`
`CLIENT
`DEVICE
`16
`
`CLIENT
`DEVICE
`20
`
`
`
`a
`PROXY
`SERVER
`8
`
`FIG. 1
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`2 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`2 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet2 of 15
`
`US 8,560,604 B2
`
`ac
`
`SERVER
`so
`
`
`
`
`CLIENT
`DEVICE
`so
`
`FIG. 2
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`3 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`3 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 3 of 15
`
`US 8,560,604 B2
`
`ac
`
`
`
`CL
`STORAGE
`DEVICE
`164
`
`ACCELERATION
`SERVER
`
`FIG. 3
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`4 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`4 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 4 of 15
`
`US 8,560,604 B2
`
`LANYALNI
`
`yaSMOus
`
`
`
`JYVMLIOSa
`
`__082
`
`
`
`0zzasvaviva
`
`
`
`NOILWOIIdd¥NOLLVYNSIANOO
`
`cle
`
`
`
`—_ASvVavLvdSHOWS
`
` o1z
`NOILVY315990N\
`
`
`AYOWAINFOIAAdJDVHOLSz0e
`
`pie00z
`
`
`
`$¢JOVAYALNITVDOT
`
`SASIAAOI
`
`ove
`
`Vv-Sis
`
`282
`
`802
`
`w4OSS390Nd
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`5 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`5 of 27
`
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 5 of 15
`
`US 8,560,604 B2
`
`ACCELERATION
`OTHER
`INTERNET
`APPLICATION;
`
`LEVEL APPLICATIONS||APPLICATIONBROWSER
`
`270
`214
`216
`220
`
`
`
`INTERMMEDIATE DRIVER
`272
`
`210
`
`
`
`“SYSTEM
`CO
`
`—_
`
`
`
`COMMUNICATION
`STACKS
`264
`
`Jl
`DEVICE DRIVERS
`
`262
`
`OPERATING
`SYSTEM
`230
`
`MEMORY
`
`FIG. 5
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`6 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`6 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 6 of 15
`
`US 8,560,604 B2
`
`NOLLVYNSIANOD
`
`asvavlvd
`
`082
`
`
`
`ASVaVLVdAHOVS
`
`282
`
`
`
`ASIAAGANVUOLS
`
`802
`
`TS99V
`
`
`
`
`JINGOWLNADVJINGOWY¥33dJINGOWLNAND
`8ez9¢zv2zNOILVYS1599
`
`
`
`NOILLVYS
`
`NOILVOIMMddV
`
`022
`
`
`
`YAZIIVILININALSAS
`
`a71nNGowW
`
`222
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`7 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`7 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet7 of 15
`
`US 8,560,604 B2
`
`ACCELERATIONDATABASE164
`
`
`166 AGENT IP ADDRESS ONLINE/OFFLINE
`
`162
`
`J
`
`>>> INDEXED BY: AGENT IP ADDRESS
`
`CACHE DATABASE 282
`286 LIST OF URLS:
`288 URL1
`290 URL
`292 URL HTTP HEADERS
`294 LAST CHECKED ON SERVER
`296 LAST CHANGED ON SERVER
`298 LIST OF CHUNKS FOR THIS URL:
`300 CHUNK 1
`302 CHUNK CHECKSUM
`304 CHUNK DATA
`306 LIST OF PEERS:
`308 PEER 1
`310 PEER 1 IP ADDRESS
`312 PEER 2 CONNECTION STATUS
`
`FIG. 7
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`°
`pay
`wAPR2022.00135 EX. 2011
`8 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`8 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 8 of 15
`
`US 8,560,604 B2
`
`300
`
`SO
`
`INITIALIZER SIGNS UP WITH
`ACCELERATION SERVER
`302
`
`DETERMINE IF THERE IS AN
`UPDATED VERSION OF
`APPLICATION?
`304
`
`310
`
`INITIALIZER REDIRECTS
`OUTGOING NETWORK TRAFFIC
`306
`
`INITIALIZER LAUNCHES CLIENT
`MODULE AND CONFIGURES
`CLIENT MODULE TO INTERCEPT
`ALL OUTGOING NETWORK
`COMMUNICATIONS
`308
`
`INITIALIZER LAUNCHES AGENT
`MODULE AND PEER MODULE
`
`FIG. 8
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`9 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`9 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet9 of 15
`
`US 8,560,604 B2
`
`APPLICATION ON CLIENTINITIATES
`
`REQUEST FOR A RESOURCE ON A
`NETWORK
`352
`
`350
`
`D
`
`358
`
`RESOURCE REQUESTIS INTERCEPTED BY
`THE CLIENT MODULE
`354
`
`CLIENT MODULE LOOKSUP IP ADDRESS OF
`SERVER THAT IS TARGET OF RESOURCE
`REQUEST AND SENDS IP ADDRESS TO
`ACCELERATION SERVERTO OBTAIN LIST
`OF COMMUNICATION DEVICES THAT
`CLIENT CAN USE AS AGENTS
`356
`
`ACCELERATION SERVER PREPARES A LIST
`OF AGENTSTHAT MAYBE SUITABLE TO
`HANDLE THE REQUESTFROMTHIS IP
`ADDRESS
`
`CLIENT SENDS ORIGINAL REQUEST TO ALL
`AGENTSIN THE LIST RECEIVED FROM
`ACCELERATION SERVER TO DETERMINE
`WHICH AGENT IN THE LIST IS BEST SUITED
`TO ASSIST WITH THE REQUEST
`360
`
`
`FIG. 9
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`10 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`10 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 10 of 15
`
`US 8,560,604 B2
`
`EACH AGENT THAT RECEIVES CLIENT REQUEST RESPONDSTO CLIENT WITH
`WHETHER IT HAS INFO. REGARDING REQUESTTHAT CAN ASSIST CLIENT TO
`DOWNLOAD REQUESTED INFO. FROM PEERS IN NETWORK
`382
`
`CLIENT NOTIFIES SELECTED AGENT OF USE FOR REQUESTAND NOTIFIES OTHER
`AGENTS OF LACK OF USE
`386
`
`CLIENT FORWARDS SELECTED AGENT REQUEST FOR FIRST X NUMBER OF
`388
`CHUNKS
`
`
`
`
`DOES SELECTED AGENT HAVEINFO. REGARDING
`REQUESTED CHUNKS AND IS INFO. STILL VALID?
`390
`
`SELECTED AGENT SENDS REQUEST
`DIRECTLY TO SERVER
`400
`a
`
`
`CLIENT SELECTS SPECIFIC AGENT
`384
`
`
`
`
`
`
`
`IF INFO. STILL VALID, SELECTED
`AGENT RESPONDSTO CLIENT WITH
`
`CHECKSUM OF CHUNK,LIST OF
`PEERS THAT CONTAIN CHUNKS, AND
`
`IF ONLY A PORTIONOFINFO.,
`SELECTED AGENT STORESINFO.
`HEADERS
`392
`FROM SERVERIN ITS DATABASE
`
`
`
`LIST OF PEERS FOR EACH CHUNK IS
`
`SORTED BY GEOGRAPHICAL
`RESPONSE(LIST) FOR CLIENT,
`PROXIMITY TO REQUESTING CLIENT
`WHERE RESPONSE INCLUDES
`
`
`
`394
`
`CHECKSUM OF CHUNK, HEADERS,
`AND PROVIDES ITSELF AS THE ONLY
`
`PEER FOR THESE CHUNKS
`
`
`404
`
`
`LIST OF CLOSEST PEERSTO CLIENT
`IS SENT TO CLIENT
`396
`
`
`
`
`LIST IS FORWARDED BACK TO
`CLIENT
`406
`
`FIG. 10
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`11 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`11 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 11 of 15
`
`US 8,560,604 B2
`
`422
`
`CLIENT RECEIVES RESPONSE FROM THE AGENT AND FOR EACH OFX CHUNKS,
`CLIENT SENDS A REQUESTTO EACH OF THE PEERSLISTED FOR THE CHUNK TO
`DOWNLOADTHE DATA OF THAT CHUNK
`
`CHUNK
`
`424
`
`IF ANY CHUNKS WERE NOT LOADED FROM ANY OF THE PEERS, CLIENT REQUESTS
`CHUNKS AGAIN FROM AGENT
`432
`
`CLIENT ACKNOWLEDGESTO THE AGENT WHICH OF THE CHUNKSIT RECEIVED
`PROPERLY
`434
`
`AGENT LOOKS UP CHUNKSIN DATABASEOF AGENT AND ADDSCLIENT TO LIST
`OF PEERS FOR THESE CHUNKS
`436
`
`CLIENT PASSESDATA TO APPLICATION OF CLIENT THAT MADE REQUEST 438
`
`CLIENT CHECKS WHETHER ALL OF THE CHUNKS FOR REQUEST WERE RECEIVED
`440
`
`\ 4
`
`20
`
`FIG. 11
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`12 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`12 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 12 of 15
`
`US 8,560,604 B2
`
`JS 500
`
`LOOK UP HTTP REQUEST IN
`DATABASE, GET ITS HTTP HEADERS
`502
`
`USING STANDARD HTTP
`PROTOCOL, CHECK THE HEADERS
`TO SEE IF THE URL IS STILL VALID
`AT THIS TIME (USING HTTP
`HEADER INFORMATION SUCH AS
`"MAX AGE', 'NO CACHE', MUST
`REVALIDATE’, ETC.)
`504
`
`
`
`IS DATA CACHED FOR THIS
`
`
`SEND HTTP CONDITIONAL REQUEST
`REQUEST STILL VALID?
`
`
`
`TO THE WEB SERVER,TO CHECK IF
`506
`
`
` THE DATA STORED FOR THIS
`REQUEST IS STILL VALID
`510
`
`
`
`
`RETURN "VALID"
`508
`
`IS CACHED DATASTILL VALID?
`512
`
`RETURN "INVALID"
`514
`
`FIG. 12
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`13 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`13 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 13 of 15
`
`US 8,560,604 B2
`
`CHECK "KEEP ALIVE” WITH NETWORK
`ELEMENTS (CLIENTS/AGENTS/PEERS), AND
`UPDATE DATABASE AS TO THEIR STATUS
`(ON-LINE / OFF-LINE)
`
`552
`
`
`
`FIG. 13
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`14 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`14 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 14 of 15
`
`US 8,560,604 B2
`
`600
`
`NETWORK APPLICATION ON CLIENT ISSUES REQUEST TO
`CONNECT TO A TCPIP SERVER
`601
`
`CONNECTION REQUEST IS INTERCEPTED BY
`ACCELERATION APPLICATION ON THE CLIENT
`602
`
`CLIENT MODULE SENDS THE IP ADDRESS OF THE TCPIP
`SERVER TO THE ACCELERATION SERVER TO OBTAIN AN
`AGENT LIST
`604
`
`ACCELERATION SERVER PREPARES A LIST OF AGENTS
`THAT MAY BE SUITABLE TO HANDLE THE REQUEST FROM
`THIS IP ADDRESS (FOR EXAMPLE, A PRIMARY AGENT AND
`FOUR SECONDARY AGENTS), AND SENDS THE LIST TO THE
`CLIENT
`606
`
`CLIENT ISSUES A TCPIP CONNECT WITH THE PRIMARY
`AGENT (OR ONE OF THE OTHER AGENTS IF THE PRIMARY
`AGENT CONNECT DOES NOT SUCCEED) TO ESTABLISH A
`TCPIP CONNECTION WITH AN AGENT
`608
`
`CLIENT SENDS TO THE AGENT THE IP ADDRESS OF THE
`TCPIP SERVER THAT THE COMMUNICATION APPLICATION
`WANTS TO CONNECT WITH, AND THE PORT TO WHICH IT
`WANTS TO CONNECT
`610
`
`612
`
`AGENT ISSUES A TCPIP CONNECT WITH THE TCPIP
`SERVER TO THE IP AND PORT RECEIVED FROM THE CLIENT
`
`FIG. 14
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`15 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`15 of 27
`
`
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 15 of 15
`
`US 8,560,604 B2
`
`ACCELERATION APPLICATION INTERCEPTS A TCPIP WRITE COMMAND FROM THE
`COMMUNICATION APPLICATION (ON CLIENT) OR FROM TCPIP SERVER (ON AGENT) 802
`
`DATA OF WRITE COMMAND IS BROKEN UP INTO CHUNKS AND CHECKSUMS ARE
`CALCULATED FOR EACH CHUNK 804
`
`ACCELERATION APPLICATION LOOKS UP EACH CHUNK’S CHECKSUM IN ITS CACHE
`DATABASE 806
`
`DOES AN ENTRY FOR THE CHECKSUM EXIST IN THE CACHE DATABASE? 808
`
`YES
`
`ACCELERATION APPLICATION PREPARES
`LIST OF PEERS THAT HAVE RECEIVED THIS
`CHUNK IN THE PAST 810
`
`ACCELERATION APPLICATION SENDS PEER
`LIST TO COMMUNICATION DEVICEIT IS
`COMMUNICATING WITH (CLIENT TO AGENT,
`OR AGENTTO CLIENT), AND ADDS THAT
`COMMUNICATION DEVICE TO THE LIST OF
`PEERS FOR THAT CHUNK 812
`
`COMMUNICATION DEVICE WITH
`ACCELERATION APPLICATION THAT
`RECEIVED THE LIST OF PEERS CONNECTS
`TO AT LEAST ONE OF THE PEERS AND
`DOWNLOADS THE CHUNK FROM IT 814
`
`
`
`NO
`
`ACCELERATION APPLICATION ADDS
`THE CHUNK AND ITS CHECKSUM TO
`ITS CACHE DATABASE, AND SENDS
`THE CHUNK ITSELF TO THE
`COMMUNICATION DEVICEIT IS
`COMMUNICATING WITH (CLIENT TO
`AGENT, OR AGENT TO CLIENT), AND
`ADDS THAT COMMUNICATION DEVICE
`TO THE LIST OF PEERS FOR THAT
`CHUNK 820
`
`N
`
`HAVE ALL CHUNK DATA BEEN TRANSFERRED TO THE OTHER SIDE? 816
`
`O
`
`
`
`
`YES
`
`ACCELERATION APPLICATION PASSES ON THE COMPLETE DATA RECEIVED ON TO THE
`REQUESTER — IN THE CLIENT IT PASSES IT ON TO THE COMMUNICATION APPLICATION,
`AND IN THE AGENT IT PASSES IT ON TO THE TCPIP SERVER 818
`
`
`FIG. 15
`
`XN 800
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`16 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`16 of 27
`
`
`
`US 8,560,604 B2
`
`1
`SYSTEM AND METHOD FOR PROVIDING
`FASTER AND MOREEFFICIENT DATA
`COMMUNICATION
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The presentapplication claimspriority to U.S. provisional
`patent application entitled “FASTER AND MORE EFFI-
`CIENT DATA COMMUNICATION SYSTEM,”having Ser.
`No. 61/249,624,filed Oct. 8, 2009, which is hereby incorpo-
`rated herein by reference inits entirety.
`
`FIELD OF THE INVENTION
`
`The present inventionis related to Internet communication,
`and more particularly,
`to improving data communication
`speed and bandwidth efficiency on the Internet.
`
`BACKGROUNDOF THE INVENTION
`
`There are several trends in network and Internet usage,
`which tremendously increase the bandwidth that is being
`used on the Internet. One such trend is that more and more
`video is being viewed on demandonthe Internet. Such view-
`ing includesthe viewingofboth large and short video clips. In
`addition, regular showsandfull-featured films may be viewed
`onthe Internet. Anothertrend that is increasing the traffic on
`the Internet is that Web sites (such as shopping portals, news
`portals, and social networks) are becoming global, meaning
`that the Web sites are serving people in many diverse places
`on the globe, and thus the data is traversing over longer
`stretches ofthe Internet, increasing the congestion.
`The increase in bandwidth consumption has created sev-
`eral major problems, a few of which are described below:
`The problem for users—thecurrent Internet bandwidth is not
`sufficient, and thus the effective ‘speed’ experienced by users
`is slow;
`The problem for content owners—the tremendous amount of
`data being, viewed by usersis costing large amounts ofmoney
`in hosting and bandwidthcosts; and
`The problem for Internet Service Providers (ISPs)—the
`growthin Internet traffic is requiring the ISPs to increase the
`infrastructure costs (communication lines, routers, etc.) at
`tremendousfinancial expense.
`The need for a new methodofdata transfer that is fast for
`the consumer, cheap for the content distributor and does not
`require infrastructure investment for ISPs, has become a
`major issue which is yet unsolved.
`There have been many attempts at making the Internet
`faster for the consumerand cheaper for the broadcaster. Each
`such attempt is lacking in some aspect to become a wide-
`spread, practical solution, or is a partial solution in that it
`solves only a subset ofthe major problemsassociated with the
`increase in Internet traffic. Most of the previous solutions
`require billions ofdollars in capital investment for a compre-
`hensive solution. Many ofthese attempts are lacking in that
`muchofthe contenton the Internet has become dynamically
`created per the user and the session of the user (this is what
`usedto be called the “Web2.0”trend). This may be seen onthe
`Amazon Website and the Salesforce Website, for example,
`where mostof the page views on these Websites is tailored to
`the viewer, and is thus different for any two viewers. This
`dynamic information makes it impossible for most ofthe
`solutions offered to date to store the content and provide it to
`others seeking similar content.
`
`40
`
`50
`
`55
`
`60
`
`2
`Onesolution that has beeninuse is called a “proxy”. FIG.
`1 is a schematic diagram providing an example of use of a
`proxy within a network 2. A proxy, or proxy server 4,6, 8 is
`a devicethat is placed between oneor moreclients,illustrated
`in FIG. 1 as client devices 10, 12, 14, 16, 18, 20, that request
`data, via the Internet 22, and a Web server or Web servers 30,
`32, 34 from whichthey are requesting the data. The proxy
`server 4, 6,8 requests the data from the Webservers 30, 32, 34
`on their behalf, and caches the responses from the Webserv-
`ers 30, 32, 34, to provide to other client devices that make
`similar requests. If the proxy server 4, 6, 8 is geographically
`close enough to the client devices 10, 12, 14, 16, 18, 20, and
`if the storage and bandwidth of the proxy server 4, 6, 8 are
`large enough, the proxy server 4, 6, 8 will speed up the
`requests for the client devices 10, 12, 14, 16, 18, 20 thatit is
`serving.
`It should be noted, however, that to provide a comprehen-
`sive solution for Internet surfing, the proxy servers of FIG. 1
`would need to be deployed at every point around the world
`wherethe Internet is being consumed, and the storage size of
`the proxy servers at each location would need to be near the
`size of all the data stored anywhere on the Internet. The
`abovementioned would lead to massive costs that are imprac-
`tical. In addition, these proxy solutions cannot deal well with
`dynamic data that is prevalent nowon the Web.
`There have been commercial companies, such as Akamai,
`that have deployed such proxies locally around the world, and
`that are servinga select small groupofsites onthe Internet. If
`all sites on the Web wereto be solved with sucha solution, the
`capital investment would be in the range ofbillions of dollars.
`In addition, this type of solution does not handle dynamic
`content.
`
`To createlarge distribution systems withoutthe large hard-
`ware costs involved with a proxy solution, “peer-to-peerfile
`sharing” solutions have been introduced,
`such as,
`for
`example, BitTorrent. FIG. 2 is a schematic diagram providing
`an example of a peer-to-peerfile transfer network 50. In the
`network 50, files are stored on computers of consumers,
`referred to herein as client devices 60. Each consumer can
`serve up data to other consumers, via the Internet 62, thus
`taking the load of serving off of the distributors and saving
`themtheassociated costs, and providing the consumer mul-
`tiple points from which to download the data, referred to
`herein as peers 70, 72. 74, 76, 78, thus increasing the speed of
`the download. However, each suchpeer-to-peer solution must
`have somesort of index by whichto find the required data. In
`typical peer-to-peerfile sharing systems, becausethe indexis
`on a server 80, or distributed among several servers, the
`number of files available in the system is not very large
`(otherwise, the server costs would be very large, or the lookup
`time would be very long).
`The peer-to-peer file sharing solution is acceptable infile
`sharing systems, because there are not that many mediafiles
`that are of interest to the mass (probably in the order of
`magnitude ofmillions of movies and songs thatare of inter-
`est). Storing and maintaining anindex ofmillionsofentries is
`practical technically and economically. However,ifthis sys-
`tem were to be used to serve the hundreds ofbillionsoffiles
`that are available on the Internet oftoday, the cost of storing
`and maintaining such an index would be againin the billions
`of dollars. In addition, these types of peer-to-peerfile sharing
`systemsare not able to deal with dynamic HTTPdata.
`In conclusion, there does not exist a system that enables
`fast transmission ofmost ofthe data on the Internet. that does
`not incur tremendouscosts, and/or that provides only a very
`partial solution to the problem ofInternet traffic congestion.
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`17 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`17 of 27
`
`
`
`US 8,560,604 B2
`
`SUMMARYOF THE INVENTION
`
`10
`
`3
`Thus, a heretofore unaddressed need exists in the industry to
`address the aforementioned deficiencies and inadequacies.
`
`4
`FIG. 6 is a schematic diagram furtherillustrating elements
`ofthe acceleration application of FIG. 5, as well as commu-
`nication paths of the acceleration application.
`FIG. 7 is a chart furtherillustrating two ofthe main data-
`bases utilized within the communication network.
`FIG. 8 is a flowchart illustrating operation of the accelera-
`The present system and method provides for faster and
`more efficient data communication within a communication
`tion systeminitializer module.
`FIG. 9 is a flowchart further illustrating communication
`network. Briefly described, in architecture, one embodiment
`between different elements of the communication network.
`of the system, among others, can be implementedas follows.
`FIG. 10 is a flowchart continuing the flowchart of FIG. 9
`A networkis provided for accelerating data communication,
`wherein the network contains: at least one client communi-
`and focused on agent response to the HTTP request.
`FIG.11 is a flowchart continuing the flowchart of FIG. 10,
`cation device for originating a data request for obtaining the
`whichillustrates actions taken upon receipt of the list of
`data from a data server; at least one agent communication
`peers, or single peer listing, from the agent.
`device whichis assigned to the data server for receiving the
`FIG. 12 is a flowchart illustrating steps taken by an agent,
`data request from the client communication device, wherein 15
`client, or peer to determine whether a certain HTTP requestis
`the agent keepstrack ofwhich client communication devices
`still valid.
`have received responses to data requests from the assigned
`FIG.13 is a flowchart outlining operationof the accelera-
`data server; at least one peer communication device for stor-
`tion server.
`ing portions ofdata receivedin responseto the data request by
`FIG. 14 is a flowchart further illustrating TCPIP accelera-
`the at least one client communication device, wherein the 20.
`tion in accordance with an alternative embodiment of the
`portions of data may be transmitted to the at least one client
`invention.
`communication device uponrequest by the client communi-
`FIG. 15 is a flowchart further illustrating TCPIP accelera-
`cation device; andatleast one acceleration serverfor deciding
`tion in accordance with an alternative embodiment of the
`which agent communicationdeviceis to be assigned to which
`data server and providing this information to the at least one 25 invention, detailing the communication between the client
`client communicationdevice.
`and the TCPIP server (read and write commands) after the
`The present system and method also provides a communi-
`connect phase has completed successfully.
`cation device within a network, wherein the communication
`device contains: a memory: anda processor configured bythe
`memory to perform the steps of: originating a data request for 30
`The present system and method provides for faster and
`obtaining data from a data server; being assigned to a data
`moreefficient data communication within a communication
`server, referred to as an assigned data server; receiving a data
`network. An example of such a communication network 100
`request from a separate device within the network, and keep-
`_is provided by the schematic diagram ofFIG. 3. The network
`ing track of which client communication devices within the
`network have received responses to data requests from the 35 100 of FIG.3 contains multiple communication devices. Due
`assigned data server; and storing portions of data received in
`_to functionality provided by software stored within each com-
`responseto the originated data request, wherein the portions
`munication device, which may be the same in each commu-
`of data may be transmitted to communication device upon
`nication device, each communication device may serve as a
`request by the communication device.
`client, peer, or agent, depending upon requirements of the
`Other systems, methods, features, and advantages ofthe 40 network 100, as is described in detail herein. It should be
`presentinvention will be or become apparentto onewith skill
`noted that a detailed description ofacommunicationdeviceis
`in the art upon examination of the following drawings and_provided withregard to the description of FIG.4.
`detailed description. It is intended that all such additional
`Returning to FIG. 3, the exemplary embodiment of the
`systems, methods,
`features, and advantages be included
`network 100 illustrates that one of the communication
`within this description, be within the scope ofthe present 45 devices is functioning as a client 102. The client 102 is
`invention, and be protected by the accompanying claims.
`capable of communication with one or more peers 112, 114,
`116 and one or more agents 122. For exemplary purposes, the
`network contains three peers and one agent, althoughit is
`noted that a client can communicate with any number of
`Many aspects of the invention can be better understood 50 agents and peers.
`with reference to the following drawings. The components in
`The communication network 100 also contains a Web
`the drawings are not necessarily to scale, emphasis instead
`server 152. The Web server 152 is the server from which the
`being placed uponclearly illustrating the principles of the
`client 102 is requesting information and maybe, for example,
`present invention. Moreover, in the drawings, like reference
`a typical HTTPserver, such as those being used to deliver
`numerals designate corresponding parts throughout the sev- 55 content on any of the manysuchservers on the Internet. It
`eral views.
`should be noted that the server 152 is not limited to being an
`FIG. 1 is a schematic diagramproviding a prior art example
`HTTPserver. Infact, ifa different communication protocolis
`of use ofa proxy within a network.
`used within the communication network, the server may be a
`FIG. 2 is a schematic diagram providing a prior art example
`server capable of handling a different protocol. It should also
`of a peer-to-peerfile transfer network.
`60 be noted that while the present description refers to the use of
`FIG, 3 is a schematic diagram providing an example of a
`HTTP, the present invention mayrelate to any other commu-
`communication network in accordance with the present
`nication protocol and HTTPis not intendedto be a limitation
`invention.
`to the present invention.
`FIG. 4 is a schematic diagram further illustrating a com-
`The communication network 100 further contains an accel-
`munication device of the communication network of FIG. 3. 65 eration server 162 having an acceleration server storage
`device 164. As is described in more detail herein, the accel-
`FIG. 5 is a schematic diagram further illustrating the
`memory of FIG. 4.
`eration server storage device 164 has contained therein an
`
`DETAILED DESCRIPTION
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The Data Company Technologies Inc. v. Bright Data Ltd.
`IPR2022-00135, EX. 2011
`18 of 27
`
`The Data Company TechnologiesInc. v. Bright Data Ltd.
`IPR2022-00138, EX. 2011
`18 of 27
`
`
`
`US 8,560,604 B2
`
`GQ
`
`6
`5
`acceleration server database. The acceleration server data-
`The memory 210, whichis furtherillustrated and described
`by the description of FIG. 5, can include any one or combi-
`base stores Internet protocol (IP) addresses of communica-
`nation of volatile memory elements (e.g., random access
`tion devices within the communication network 100 having
`memory(RAM,such as DRAM, SRAM, SDRAM,etc.)) and
`acceleration software stored therein. Specifically, the accel-
`eration server database containsstored therein a list of com-
`nonvolatile memory elements (e.g., ROM, hard drive, tape,
`CDROM,etc.). Moreover, the memory 210 may incorporate
`munication devices having acceleration software stored
`electronic, magnetic, optical, and/or other types of storage
`therein that are currently online within the communication
`media. Note that the memory 210 can have a distributed
`network 100. For each such agent, the acceleration server
`architecture, where various components are situated remote
`assignsa list of IP addresses.
`from one another, but can be accessed by the processor 202.
`In the communication network 100 of FIG. 3, the applica-
`The software 212 located within the memory 210 may
`tionin the client 102 is requesting information from the Web
`include one or more separate programs, each of which con-
`server 152, which is why the software within the communi-
`tains an ordered listing of executable instructions for imple-
`cation device designated this communication device to work
`as a client. In addition, since the agent 122 receives the
`menting logical functions of the communication device 200,
`request from the client 102 as the communication device 15 as described below.Inthe example ofFIG. 4, the software 212
`closest to the Web server 152, functionality of the agent 122,
`in the memory 210 at least contains an acceleration applica-
`as provided by the software ofthe agent 122, designates this
`tion 220 and an Internet browser214. In addition, the memory
`communication device to work as an agent. It should be
`210 may contain an operating system (O/S) 230. The operat-
`noted, that in accordance withanalternative embodiment of
`ing system230 essentially controls the execution ofcomputer
`the invention,
`the agent need not be the communication 20 programs and provides scheduling, input-output control, file
`device that is closest to the Web server. Instead, a different
`and data management, memory management, and communi-
`communication device may beselected to be the agent.
`cation control andrelated services. It should be noted that, in
`Since the peers 112, 114, 116 contain at least portions of
`additionto the acceleration application 220, Internet browser
`the information soughtby the client 102 from the Web server
`214, and operating system 230, the memory 210 may contain
`152, functionality of the peers 112, 114, 116, as provided by 25 other software applications.
`the software of the peers 112, 114, 116, designates these
`While the present description refers to a request from the
`communication devices to work as peers. It should be noted
`client originating from an Internet browser, the present inven-
`that the process ofdesignating clients, agents, and peers is
`tionis notlimited to requests originating fromInternet brows-
`described in detail herein. It should also be noted that the
`ers. Instead, a request may originate froman email programor
`numberof clients, agents, peers, acceleration servers, Web 30 any other program that would be used to request data that is
`servers, and other componentsofthe communication network
`stored on a Webserver, or other server holding data that is
`100 may differ from the numberillustrated by FIG. 3. In fact,
`requested bythe client device.
`the numberofclients, agents, peers, acceleration servers,
`Functionality of the communication device 200 may be
`Webservers, and other components of the communication
`provided by a source program, executable program (object
`network 100 are not intended to be limited by the current 35 code), script, or any other entity containing a set ofinstruc-
`description.
`tions to be performed. When a source program, then the
`Prior to describing functionality performed within a com-
`program needs to be translated via a compiler, assembler,
`munication network 100, the following further describes a
`interpreter, or the like, which may or may not be included
`communication device 200, in accordance witha first exem-
`within the memory210, so as to operate properly in connec-
`plary embodiment of the invention. FIG. 4 is a schematic 40 tion with the operating system 230. Furthermore, functional-
`diagramfurtherillustrating a communication device 200 of
`ity of the communication device 200 can be writtenas (a) an
`the communication network 100, which contains general
`object oriented programming language, which has classes of
`components of a computer. As previously mentioned,
`it
`data and methods, or (b) a procedure programming l