throbber
I 1111111111111111 11111 111111111111111 IIIII 1111111111 111111111111111 IIII IIII
`
`US008560604B2
`
`(IO) Patent No.: US 8,560,604 B2
`
`c12) United States Patent
`
`(45)Date of Patent:
`
`Shribman et al.
`
`Oct. 15, 2013
`
`(54)SYSTEM AND METHOD FOR PROVIDING
`FASTER AND MORE E FFICIENT DATA
`COMMUNICATI ON
`
`(75)Inventors: Derry Shribman, Netanya (IL); O fer
`
`
`
`Netanya (IL)
`Vilenski,
`
`1/2011 Samuels et al. ............... 709/223
`
`
`
`7,865,585 B2 *
`
`1/2003 Chan et al. .................... 709/236
`2003/0009583 Al*
`
`9/2003 Wang et al.
`
`2003/0174648 Al
`5/2004 Yeager et al.
`
`2004/0088646 Al
`
`7 /2007 Johnson
`
`2007/0156855 Al
`
`1/2008 Bornstein et al.
`
`2008/0008089 Al
`5/2008 Wang
`
`2008/0109446 Al
`
`9/2008 Painter et al.
`2008/0235391 Al
`
`
`
`
`
`(IL)(73) Assignee: Hola Networks Ltd. , Netanya
`
`* cited by examiner
`
`( *) Notice: Subject to any disclaimer, the term ofthis
`
`
`
`
`
`patent is extended or adjusted under 35
`- Minh-Chau Nguyen
`
`
`Primary Examiner
`U.S.C. 154(b) by 451 days.
`
`
`
`
`Phinney Bass + Green PA
`
`Sheehan (74)Attorney, Agent, or Firm - Peter A. Nieves;
`
`(21)Appl. No.: 12/836,059
`
`(22)Filed:
`Jul. 14, 2010
`
`(57)
`
`ABSTRACT
`
`(65)
`
`
`
`P rior Publication Data
`
`
`
`
`
`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 acceleration server, clients, agents, and peers,
`
`
`
`
`where communication requests generated by applications are
`
`
`(60)Provisional application No. 61/249,624, filed on Oct.
`
`
`
`intercepted by the client on the same machine. The IP address
`8, 2009.
`
`
`
`
`of the server in the communication request is transmitted to
`
`
`
`
`the acceleration server, which provides a list of agents to use
`(51) I nt. Cl.
`
`
`for this IP address. The communication request is sent to the
`G06F 15116 (2006.01)
`
`
`
`
`agents. One or more of the agents respond with a list of peers
`(52)U.S. Cl.
`
`
`that have previously seen some or all of the content which is
`
`
`USPC ............................ 709/203; 709/228
`709/204;
`
`
`
`
`
`the response to this request ( after checking whether this data
`( 58) Field of Classification
`Search
`
`
`
`
`
`is still valid). The client then downloads the data from these
`
`
`
`USPC .................. 709/203-204, 217-219, 223, 236
`
`
`
`peers in parts and in parallel, thereby speeding up the Web
`
`
`
`See application file for complete search history.
`
`
`
`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.
`
`US 2011/0087733 Al Apr. 14, 2011
`
`
`
`Related U.S. App lication Data
`
`(56)
`
`
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`7,120,666 B2 * 10/2006 McCanne et al. ............. 709/203
`
`
`
`
`7,203,741 B2 * 4/2007 Marco et al ................... 709/223
`
`
`
`20 Claims, 15 Drawing Sheets
`
`CLIENT
`DEVICE
`
`,,.
`
`CLIENT
`DEVICE
`li
`
`CLIENT
`DEVICE
`ll
`
`CLIENT
`DEVICE
`!l!
`
`CLIENT
`DEVICE
`
`_,.
`
`PROXY
`SERVER
`
`•
`
`WEB
`SERVER
`'-"
`
`WEB
`SERVER
`
`,_,
`
`WEB
`SERVER
`
`""
`
`Metacluster LT, UAB
`EX1004
`Page 1 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 1 of 15
`
`US 8,560,604 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CLIENT
`DEWICE
`14
`
`CLIENT
`DEWICE
`L6
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CLIENT
`DEWIC
`O
`
`CLENT
`DEWICE
`12
`
`
`
`
`
`
`
`PROXY
`SERVER
`4.
`
`WEB
`SERWER
`30
`
`PROXY
`SERWER
`
`WEB
`SERVER
`32
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CLEN
`DEWICE
`LS
`
`CLEN
`DEWICE
`20
`
`WEB
`SERWER
`34
`
`
`
`
`
`
`
`
`
`
`
`
`
`PROXY
`SERWER
`
`FIG 11
`
`Page 2 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 2 of 15
`
`US 8,560,604 B2
`
`SERVER
`80
`
`FIG 2
`
`
`
`
`
`CLEN
`DEWICE
`60
`
`Page 3 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 3 of 15
`
`US 8,560,604 B2
`
`ACCELERATION
`SERVER
`162
`
`
`
`
`
`
`
`
`
`STORAGE
`DEWICE
`154
`
`WEB
`SERVER
`152
`
`
`
`CLIEN
`O
`
`FIG 3
`
`Page 4 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 4 of 15
`
`US 8,560,604 B2
`
`
`
`
`
`
`
`
`
`LEIN (JELLNI
`
`èJESMAO-18E
`
`FIZ
`
`ERHV/WALHOS
`
`?I?
`
`(~~
`
`Page 5 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 5 Of 15
`
`US 8,560,604 B2
`
`
`
`APPLICATION
`LEVEL
`270
`
`INTERNET
`BROWSER
`214
`
`OTHER
`APPLICATIONS
`216
`
`ACCELERATION
`APPLICATION
`220
`
`OPERATING
`SYSTEM
`LEVEL
`260
`
`INTERMMEDIATE DRIVER
`272
`
`COMMUNICATION
`STACKS
`264
`
`Y-
`
`-
`
`DEVICE DRIVERS
`262
`
`OPERATING
`SYSTEM
`230
`
`MEMORY
`210
`
`FIG. 5
`
`Page 6 of 27
`
`

`

`NOILVYS1S99V
`
`
`
`
`
`JINGOWLNADVJINGOWY33dJINGOWLNAaND
`
`
`
`
`
`NOILVYNSIANOD
`
`asvav.vad
`
`082
`
`
`
`
`
`ASVEVLVdAHOVD
`
`782
`
`
`
`ADIAACADVYOLS
`
`802
`
`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 6 of 15
`
`US 8,560,604 B2
`
`vezNOILVYd1S99
`
`
`
`YaZIIVILINIWALSAS
`
`JTINGOW
`
`NOILVOMIddV
`
`022
`
`Page 7 of 27
`
`Page 7 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 7 of 15
`
`US 8,560,604 B2
`
`62
`
`?
`
`ACCELERATION DATABASE 16A
`166 AGENT PADDRESS ONLINE OFFLNE
`
`>>> INDEXED BY AGENT PARESS
`
`CACHE DATABASE 282
`286 LS OF URLS:
`288 URL 1
`290 URL
`292 URL H P HEADERS
`294 AST CHECKED ON SERVER
`296 LAST CHANGED ON SERVER
`298 LST OF CHUNKS FOR THIS URL:
`300 CHUNK
`302 CHUNK CHECKSUM
`304 CHUNK DATA
`306 LIST OF PEERS:
`308 PEER 1
`30 PEER 1 PADDRESS
`312 PEER2 CONNECTION STATUS
`FIG. 7
`
`Page 8 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 8 of 15
`
`US 8,560,604 B2
`
`300
`
`-
`
`INITIALIZER SIGNS UP WITH
`ACCELERATION SERVER
`302
`
`DETERMINE IF THERE IS AN
`UPDATED VERSION OF
`APPLICATION?
`304
`
`
`
`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
`310
`
`FIG. 8
`
`Page 9 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 9 Of 15
`
`US 8,560,604 B2
`
`
`
`APPLICATION ON CLIENT INITIATES
`RECQUEST FOR A RESOURCE ON A
`NETWORK
`352
`
`. 350
`
`RESOURCE RECQUEST IS INTERCEPTED BY
`THE CLIENT MODULE
`354
`
`CLIENT MODULE LOOKS UP IP ADDRESS OF
`SERVER THAT IS TARGET OF RESOURCE
`RECQUEST AND SENDS IP ADDRESS TO
`ACCELERATION SERVER TO OBTAIN LIST
`OF COMMUNICATION DEVICES THAT
`CLIENT CAN USE AS AGENTS
`356
`
`ACCELERATION SERVER PREPARES A LIST
`OFAGENTS THAT MAYBE SUITABLE TO
`HANDLE THE RECQUEST FROM THIS IP
`ADDRESS
`358
`
`CLIENT SENDS ORIGINAL REOUEST TO ALL
`AGENTS IN THE LIST RECEIVED FROM
`ACCELERATION SERVER TO DETERMINE
`WHICH AGENT IN THE LIST IS BEST SUITED
`TO ASSIST WITH THE REGUEST
`360
`
`FIG. 9
`
`Page 10 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 10 of 15
`
`US 8,560,604 B2
`
`EACHAGENT THAT RECEIVES CLIENT REQUEST RESPONDS TO CLIENT WITH
`WHETHER IT HAS INFO. REGARDING REGUEST THAT CANASSIST CLIENT TO
`DOWNLOAD REGUESTED INFO. FROMPEERS IN NETWORK
`382
`
`CLIENT SELECTS SPECIFICAGENT
`
`384
`
`
`
`
`
`
`
`
`
`CLIENT NOTIFIESSELECTED AGENT OF USE FOR RECQUEST AND NOTIFIES OTHER
`AGENTS OF LACK OF USE
`386
`
`CLIENT FORWARDS SELECTED AGENT REQUEST FOR FIRSTX NUMBER OF
`CHUNKS
`388
`
`DOES SELECTED AGENT HAVE INFO, REGARDING
`REGUESTED CHUNKS AND IS INFO. STILL VALID?
`390
`
`YES
`
`
`
`IF INFO. STILL VALID, SELECTED
`AGENT RESPONDS TO CLIENT WITH
`CHECKSUM OF CHUNK, LIST OF
`PEERS THAT CONTAIN CHUNKS, AND
`IF ONLY A PORTION OF INFO.,
`HEADERS
`392
`
`LIST OF PEERS FOREACH CHUNKS
`SORTED BY GEOGRAPHICAL
`PROXIMITY TO REGUESTING CLIENT
`394
`
`LIST OF CLOSEST PEERS TO CLIENT
`ISSENT TO CLIENT
`396
`
`SELECTED AGENT SENDS REQUEST
`DIRECTLY TO SERVER
`400
`
`SELECTED AGENT STORES INFO.
`FROM SERVER IN ITS DATABASE
`402
`
`SELECTED AGENT PREPARES
`RESPONSE (LIST) FOR CLIENT,
`WHERE RESPONSE INCLUDES
`CHECKSUM OF CHUNK, HEADERS,
`AND PROVIDES ITSELF AS THE ONLY
`PEER FOR THESE CHUNKS
`404
`
`LIST IS FORWARDED BACK TO
`CLIENT
`406
`
`
`
`FIG 10
`
`Page 11 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 11 of 15
`
`US 8,560,604 B2
`
`
`
`CLIENT RECEIVES RESPONSE FROM THE AGENT AND FOREACH OFX CHUNKS,
`CLIENT SENDS AREQUEST TO EACH OF THE PEERS LSTED FOR THE CHUNK TO
`DOWNLOAD THE DATA OF THAT CHUNK
`422
`
`PEERS RESPOND REGARDING WHETHER THEY STILL HAVE THE DATA OF THE
`CHUNK
`424
`
`CLIENT SELECTS QUICKEST PEER WITH DATA OF THE CHUCK 426
`
`CHOSEN PEER SENDS CHUNK TO CLIENT
`
`428
`
`CLIENT STORES CHUNKS IN ITS CACHE FORFUTURE USE
`
`430
`
`IF ANY CHUNKS WERE NOT LOADED FROMANY OF THE PEERS, CLIENT REQUESTS
`CHUNKS AGAIN FROMAGENT
`432
`
`CLIENT ACKNOWLEDGES TO THE AGENT WHICH OF THE CHUNKS IT RECEIVED
`PROPERLY
`434
`
`AGENT LOOKS UP CHUNKS IN DATABASE OF AGENT AND ADDS CLIENT TO LIST
`OF PEERS FOR THESE CHUNKS
`436
`
`CLIENT PASSES DATA TO APPLICATION OF CLIENT THAT MADE REQUEST 438
`
`CLIENT CHECKS WHETHER ALL OF THE CHUNKS FOR RECQUEST WERE RECEIVED
`440
`
`FIG. 11
`
`420
`
`Page 12 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 12 of 15
`
`US 8,560,604 B2
`
`LOOK UP HTTP REQUEST IN
`DATABASE, GET ITS HTTP HEADERs
`5O2
`
`USING STANDARD HTTP
`PROTOCOL CHECK THE HEADERS
`TO SEE IF THE URLIS STILL VALID
`AT THIS TIME (USING HTTP
`HEADER INFORMATION SUCH AS
`'MAX AGE', 'NO CACHE", MUST
`REVALIDATE", ETC.)
`504
`
`
`
`
`
`
`
`
`
`
`
`IS DATA CACHED FOR THIS
`REQUEST STILL VALID?
`506
`
`
`
`
`
`
`
`SEND HTTP CONDITIONAL REQUEST
`TO THE WEB SERVER TO CHECK IF
`THE DATA STORED FOR THIS
`REQUEST IS STILL VALID
`50
`
`RETURN "VALID"
`508
`
`IS CACHED DATA STILL VALIDP
`512
`
`RETURN "NVALID"
`514
`
`FIG 12
`
`Page 13 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 13 of 15
`
`US 8,560,604 B2
`
`CHECK"KEEPAVEW, IHNETWORK
`MNTSCIENTS/AGENTS/PRS), AND
`UPDATEOAABASEASTOTHERSTATUS
`(ON-LINEA OFF-INE)
`
`
`
`CHECK VERSION
`
`FORTHENEXT5ACTMEAG ENTS
`HATHASHEPADDRESS THAT
`SOLOSESTOTHEARGET
`SERVERP
`(EG. 192,166.3.103 ISOOSERTO
`1955.322 THENTO
`192.167.3.104)
`
`FG 13
`
`Page 14 of 27
`
`

`

`U.S. Patent
`
`Oct. 15, 2013
`
`Sheet 14 of 15
`
`US 8,560,604 B2
`
`
`
`6 OO
`
`NETWORK A PPLICATION ON CLIENT ISSUES RE QUEST TO
`CONNECT TO A TCP IP SERVER
`5 O1.
`
`CoNNECTION REQUEST Is INTERCEPTED BY
`ACCELERATION APPLICATION ON THE CENT
`
`CLIENT MODULE SENDS THE IP ADDRESS OF THE TCPIP
`SERVER TO THE ACCELERATION SERVER TO OBTAIN AN
`A GENT LIST
`6 O4
`
`A CCELERATION SERVER PRE PARES A LIST OF A GENTS
`THAT MAY BE SUITABLE TO HANDLE THE REQUEST FROM
`THIS IP ADDRESS (FOR EXAMPLE, A PRIMARY AGENT AND
`F OUR SE COND ARY AG ENTS), AND SEND S THE LIST TO THE
`CLIENT
`6 O6
`
`CLIENT ISSUES A TCPP CONNECT WITH THE PRIMARY
`AG ENT ( or o NE o F THE O THE R A GENTs IF THE PRIMARY
`A GENT CONNECT DOES NOT SUCCEED) TO ESTABLISH A
`T CPIP CONNECTION WITH AN AG ENT
`SO 8
`
`CLENT SENDS TO THE AGENT THE IP ADDRESS OF THE
`TCPP SERVER THAT THE COMMUNI CATION APPLICATION
`WANTs To C on NECT WITH AND THE PORT To WHICH IT
`WANTS TO CONNECT
`61. O
`
`AGENT ISSUES A TCP IP CONNECT WITH THE TCPIP
`SERVER TO THE IP AND PORT RECEIVED FROM THE CENT
`61.2
`
`F.G. 14
`
`Page 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 (ONAGENT) 802
`
`DATA OF WRITE COMMAND IS BROKEN UP INTO CHUNKS AND CHECKSUMS ARE
`CALCULATED FOREACH CHUNK 804
`
`ACCELERATION APPLICATION LOOKS UP EACH CHUNK'S CHECKSUMINTS CACHE
`DATABASE 806
`y
`DOES AN ENTRY FOR THE CHECKSUMEXIST 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 DEVICE IT IS
`COMMUNICATING WITH (CLIENT TO AGENT,
`ORAGENT TO 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 DEVICE TIS
`COMMUNICATING WITH (CLIENT TO
`AGENT, OR AGENT TO CLIENT), AND
`ADDS THAT COMMUNICATION DEVICE
`TO THE LIST OF PEERS FOR THAT
`CHUNK 820
`
`NO
`
`HAVE ALL CHUNK DATA BEENTRANSFERRED TO THE OTHER SIDE? 816
`
`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 AGENTIT PASSES IT ON TO THE TCPIP SERVER 818
`
`FIG. 15
`
`800
`
`Page 16 of 27
`
`

`

`US 8,560,604 B2
`
`1.
`SYSTEMAND METHOD FOR PROVIDING
`FASTER AND MORE EFFICIENT DATA
`COMMUNICATION
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The present application claims priority to U.S. provisional
`patent application entitled “FASTER AND MORE EFFI
`CIENT DATA COMMUNICATIONSYSTEM, having Ser.
`No. 61/249,624, filed Oct. 8, 2009, which is hereby incorpo
`rated herein by reference in its entirety.
`
`FIELD OF THE INVENTION
`
`10
`
`15
`
`The present invention is related to Internet communication,
`and more particularly, to improving data communication
`speed and bandwidth efficiency on the Internet.
`
`BACKGROUND OF THE INVENTION
`
`2
`One solution that has been in use 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 device that is placed between one or more clients, 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 which they are requesting the data. The proxy
`server 4, 6, 8 requests the data from the Web servers 30, 32,34
`on their behalf, and caches the responses from the Web serv
`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 that it 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
`where the 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 now on the Web.
`There have been commercial companies, such as Akamai,
`that have deployed such proxies locally around the world, and
`that are serving a select Small group of sites on the Internet. If
`all sites on the Web were to be solved with such a solution, the
`capital investment would be in the range of billions of dollars.
`In addition, this type of solution does not handle dynamic
`COntent.
`To create large distribution systems without the large hard
`ware costs involved with a proxy solution, “peer-to-peer file
`sharing Solutions have been introduced. Such as, for
`example, BitTorrent. FIG. 2 is a schematic diagram providing
`an example of a peer-to-peer file 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
`them the associated 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 Such peer-to-peer Solution must
`have some sort of index by which to find the required data. In
`typical peer-to-peer file sharing systems, because the index is
`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 in file
`sharing systems, because there are not that many media files
`that are of interest to the mass (probably in the order of
`magnitude of millions of movies and Songs that are of inter
`est). Storing and maintaining an index of millions of entries is
`practical technically and economically. However, if this sys
`tem were to be used to serve the hundreds of billions of files
`that are available on the Internet of today, the cost of storing
`and maintaining Such an index would be again in the billions
`of dollars. In addition, these types of peer-to-peer file sharing
`systems are not able to deal with dynamic HTTP data.
`In conclusion, there does not exist a system that enables
`fast transmission of most of the data on the Internet, that does
`not incur tremendous costs, and/or that provides only a very
`partial solution to the problem of Internet traffic congestion.
`
`25
`
`30
`
`35
`
`45
`
`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 demand on the Internet. Such view
`ing includes the viewing of both large and short video clips. In
`addition, regular shows and full-featured films may be viewed
`on the Internet. Another trend 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 of the 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—the current Internet bandwidth is not
`sufficient, and thus the effective speed experienced by users
`is slow;
`The problem for content owners—the tremendous amount of
`40
`data being viewed by users is costing large amounts of money
`in hosting and bandwidth costs; and
`The problem for Internet Service Providers (ISPs) the
`growth in Internet traffic is requiring the ISPs to increase the
`infrastructure costs (communication lines, routers, etc.) at
`tremendous financial expense.
`The need for a new method of data 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 consumer and 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 of the major problems associated with the
`increase in Internet traffic. Most of the previous solutions
`require billions of dollars in capital investment for a compre
`hensive solution. Many of these attempts are lacking in that
`much of the content on the Internet has become dynamically
`created per the user and the session of the user (this is what
`used to be called the “Web2.0 trend). This may be seen on the
`Amazon Web site and the Salesforce Web site, for example,
`where most of the page views on these Web sites is tailored to
`the viewer, and is thus different for any two viewers. This
`dynamic information makes it impossible for most of the
`solutions offered to date to store the content and provide it to
`others seeking similar content.
`
`50
`
`55
`
`60
`
`65
`
`Page 17 of 27
`
`

`

`3
`Thus, a heretofore unaddressed need exists in the industry to
`address the aforementioned deficiencies and inadequacies.
`
`US 8,560,604 B2
`
`SUMMARY OF THE INVENTION
`
`The present system and method provides for faster and
`more efficient data communication within a communication
`network. Briefly described, in architecture, one embodiment
`of the system, among others, can be implemented as follows.
`A network is provided for accelerating data communication,
`wherein the network contains: at least one client communi
`cation device for originating a data request for obtaining the
`data from a data server; at least one agent communication
`device which is assigned to the data server for receiving the
`data request from the client communication device, wherein
`the agent keeps track of which client communication devices
`have received responses to data requests from the assigned
`data server; at least one peer communication device for Stor
`ing portions of data received in response to the data request by
`the at least one client communication device, wherein the
`portions of data may be transmitted to the at least one client
`communication device upon request by the client communi
`cation device; and at least one acceleration server for deciding
`which agent communication device is to be assigned to which
`data server and providing this information to the at least one
`client communication device.
`The present system and method also provides a communi
`cation device within a network, wherein the communication
`device contains: a memory; and a processor configured by the
`memory to perform the steps of originating a data request for
`obtaining data from a data server, being assigned to a data
`server, referred to as an assigned data server; receiving a data
`request from a separate device within the network, and keep
`ing track of which client communication devices within the
`network have received responses to data requests from the
`assigned data server, and storing portions of data received in
`response to the originated data request, wherein the portions
`of data may be transmitted to communication device upon
`request by the communication device.
`Other systems, methods, features, and advantages of the
`present invention will be or become apparent to one with skill
`in the art upon examination of the following drawings and
`detailed description. It is intended that all such additional
`systems, methods, features, and advantages be included
`within this description, be within the scope of the present
`invention, and be protected by the accompanying claims.
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`50
`
`Many aspects of the invention can be better understood
`with reference to the following drawings. The components in
`the drawings are not necessarily to Scale, emphasis instead
`being placed upon clearly illustrating the principles of the
`present invention. Moreover, in the drawings, like reference
`numerals designate corresponding parts throughout the sev
`eral views.
`FIG. 1 is a schematic diagram providing a prior art example
`of use of a proxy within a network.
`FIG.2 is a schematic diagram providing a prior art example
`of a peer-to-peer file transfer network.
`FIG. 3 is a schematic diagram providing an example of a
`communication network in accordance with the present
`invention.
`FIG. 4 is a schematic diagram further illustrating a com
`munication device of the communication network of FIG. 3.
`65
`FIG. 5 is a schematic diagram further illustrating the
`memory of FIG. 4.
`
`55
`
`60
`
`4
`FIG. 6 is a schematic diagram further illustrating elements
`of the acceleration application of FIG. 5, as well as commu
`nication paths of the acceleration application.
`FIG. 7 is a chart further illustrating two of the main data
`bases utilized within the communication network.
`FIG. 8 is a flowchart illustrating operation of the accelera
`tion system initializer module.
`FIG. 9 is a flowchart further illustrating communication
`between different elements of the communication network.
`FIG. 10 is a flowchart continuing the flowchart of FIG.9
`and focused on agent response to the HTTP request.
`FIG. 11 is a flowchart continuing the flowchart of FIG. 10,
`which illustrates actions taken upon receipt of the list of
`peers, or single peer listing, from the agent.
`FIG. 12 is a flowchart illustrating steps taken by an agent,
`client, or peer to determine whether a certain HTTP request is
`still valid.
`FIG. 13 is a flowchart outlining operation of the accelera
`tion server.
`FIG. 14 is a flowchart further illustrating TCPIP accelera
`tion in accordance with an alternative embodiment of the
`invention.
`FIG. 15 is a flowchart further illustrating TCPIP accelera
`tion in accordance with an alternative embodiment of the
`invention, detailing the communication between the client
`and the TCPIP server (read and write commands) after the
`connect phase has completed Successfully.
`
`DETAILED DESCRIPTION
`
`The present system and method provides for faster and
`more efficient data communication within a communication
`network. An example of such a communication network 100
`is provided by the schematic diagram of FIG. 3. The network
`100 of FIG.3 contains multiple communication devices. Due
`to functionality provided by software stored within each com
`munication device, which may be the same in each commu
`nication device, each communication device may serve as a
`client, peer, or agent, depending upon requirements of the
`network 100, as is described in detail herein. It should be
`noted that a detailed description of a communication device is
`provided with regard to the description of FIG. 4.
`Returning to FIG. 3, the exemplary embodiment of the
`network 100 illustrates that one of the communication
`devices is functioning as a client 102. The client 102 is
`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, although it is
`noted that a client can communicate with any number of
`agents and peers.
`The communication network 100 also contains a Web
`server 152. The Web server 152 is the server from which the
`client 102 is requesting information and may be, for example,
`a typical HTTP server, such as those being used to deliver
`content on any of the many such servers on the Internet. It
`should be noted that the server 152 is not limited to being an
`HTTP server. In fact, if a different communication protocol is
`used within the communication network, the server may be a
`server capable of handling a different protocol. It should also
`be noted that while the present description refers to the use of
`HTTP, the present invention may relate to any other commu
`nication protocol and HTTP is not intended to be a limitation
`to the present invention.
`The communication network 100 further contains an accel
`eration server 162 having an acceleration server storage
`device 164. As is described in more detail herein, the accel
`eration server storage device 164 has contained therein an
`
`Page 18 of 27
`
`

`

`5
`acceleration server database. The acceleration server data
`base stores Internet protocol (IP) addresses of communica
`tion devices within the communication network 100 having
`acceleration software stored therein. Specifically, the accel
`eration server database contains stored therein a list of com
`munication devices having acceleration Software stored
`therein that are currently online within the communication
`network 100. For each such agent, the acceleration server
`assigns a list of IP addresses.
`In the communication network 100 of FIG. 3, the applica
`tion in the client 102 is requesting information from the Web
`server 152, which is why the software within the communi
`cation device designated this communication device to work
`as a client. In addition, since the agent 122 receives the
`request from the client 102 as the communication device
`closest to the Web server 152, functionality of the agent 122,
`as provided by the software of the agent 122, designates this
`communication device to work as an agent. It should be
`noted, that in accordance with an alternative embodiment of
`the invention, the agent need not be the communication
`device that is closest to the Web server. Instead, a different
`communication device may be selected to be the agent.
`Since the peers 112, 114, 116 contain at least portions of
`the information sought by the client 102 from the Web server
`152, functionality of the peers 112, 114, 116, as provided by
`the software of the peers 112, 114, 116, designates these
`communication devices to work as peers. It should be noted
`that the process of designating clients, agents, and peers is
`described in detail herein. It should also be noted that the
`number of clients, agents, peers, acceleration servers, Web
`servers, and other components of the communication network
`100 may differ from the number illustrated by FIG. 3. In fact,
`the number of clients, agents, peers, acceleration servers,
`Web servers, and other components of the communication
`network 100 are not intended to be limited by the current
`description.
`Prior to describing functionality performed within a com
`munication network 100, the following further describes a
`communication device 200, in accordance with a first exem
`plary embodiment of the invention. FIG. 4 is a schematic
`40
`diagram further illustrating a communication device 200 of
`the communication network 100, which contains general
`components of a computer. As previously mentioned, it
`should be noted that the communication device 200 of FIG. 4
`may serve as a client, agent, or peer.
`Generally, in terms of hardware architecture, as shown in
`FIG. 4, the communication device 200 includes a processor
`202, memory 210, at least one storage device 208, and one or
`more input and/or output (I/O) devices 240 (or peripherals)
`that are communicatively coupled via a local interface 250.
`The local interface 250 can be, for example but not limited to,
`one or more buses or other wired or wireless connections, as
`is known in the art. The local interface 250 may have addi
`tional elements, which are omitted for simplicity, Such as
`controllers, buffers (caches), drivers, repeaters, and receivers,
`to enable communications. Further, the local interface 250
`may include address, control, and/or data connections to
`enable appropriate communications among the aforemen
`tioned components.
`The processor 202 is a hardware device for executing soft
`ware, particularly that stored in the memory 210. The proces
`Sor 52 can be any custom made or commercially available
`processor, a central processing unit (CPU), an auxiliary pro
`cessor among several processors associated with the commu
`nication device 200, a semiconductor based microprocessor
`65
`(in the form of a microchip or chip set), a macroprocessor, or
`generally any device for executing software instructions.
`
`50
`
`35
`
`45
`
`55
`
`60
`
`US 8,560,604 B2
`
`10
`
`15
`
`25
`
`30
`
`6
`The memory 210, which is further illustrated and described
`by the description of FIG. 5, can include any one or combi
`nation of Volatile memory elements (e.g., random access
`memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and
`nonvolatile memory elements (e.g., ROM, hard drive, tape,
`CDROM, etc.). Moreover, the memory 210 may incorporate
`electronic, magnetic, optical, and/or other types of Storage
`media. Note that the memory 210 can have a distributed
`architecture, where various components are situated remote
`from one another, but can be accessed by the processor 202.
`The software 212 located within the memory 210 may
`include one or more separate programs, each of which con
`tains an ordered listing of executable instructions for imple
`menting logical functions of the communication device 200,
`as described below. In the example of FIG.4, the software 212
`in the memory 210 at least contains an acceleration applica
`tion 220 and an Internet browser 214. In addition, the memory
`210 may contain an operating system (O/S) 230. The operat
`ing system 230 essentially controls the execution of computer
`programs and provides scheduling, input-output control, file
`and data management, memory management, and communi
`cation control and related services. It should be noted that, in
`addition to the acceleration application 220, Internet browser
`214, and operating system 230, the memory 210 may contain
`other software applications.
`While the present description refers to a request from the
`client originating from an Internet browser, the present inven
`tion is not limited to requests originating from Internet brows
`ers. Instead, a request may originate from an email program or
`any other program that would be used to request data that is
`stored on a Web server, or other server holding data that is
`requested by the client device.
`Functionality of the communication device 200 may be
`provided by a source program, executable program (object
`code), Script, or any other entity containing a set of instruc
`tions to be performed. When a source program, then the
`progra

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket