`Shribman et al .
`
`( 10 ) Patent No . : US 10 , 257 , 319 B2
`( 45 ) Date of Patent :
`Apr . 9 , 2019
`
`US010257319B2
`
`( 54 ) SYSTEM PROVIDING FASTER AND MORE
`EFFICIENT DATA COMMUNICATION
`
`( 71 ) Applicant : WEB SPARK LTD . , Netanya ( IL )
`
`( 72 ) Inventors : Derry Shribman , Tel Aviv ( IL ) ; Ofer
`Vilenski , Moshav Hadar Am ( IL )
`
`( 73 ) Assignee : WEB SPARK LTD . , Netanya ( IL )
`
`( * ) Notice :
`
`Subject to any disclaimer , the term of this
`patent is extended or adjusted under 35
`U . S . C . 154 ( b ) by 0 days .
`( 21 ) Appl . No . : 15 / 957 , 945
`Apr . 20 , 2018
`( 22 ) Filed :
`( 65 )
`
`Prior Publication Data
`US 2018 / 0241851 A1 Aug . 23 , 2018
`
`Related U . S . Application Data
`( 60 ) Continuation of application No . 14 / 025 , 109 , filed on
`Sep . 12 , 2013 , which is a division of application No .
`( Continued )
`
`( 51 )
`
`( 52 )
`
`Int . CI .
`H04L 29 / 06
`H04L 29 / 08
`H04L 12 / 24
`U . S . CI .
`CPC . . . . . . . . . . . H04L 67 / 42 ( 2013 . 01 ) ; H04L 41 / 046
`( 2013 . 01 ) ; H04L 67 / 1002 ( 2013 . 01 ) ;
`( Continued )
`( 58 ) Field of Classification Search
`CPC . . . . . HO4L 67 / 42 ; H04L 41 / 046 ; H04L 67 / 108 ;
`H04L 67 / 22
`
`( 2006 . 01 )
`( 2006 . 01 )
`( 2006 . 01 )
`
`( Continued )
`
`( 56 )
`
`CN
`CN
`
`References Cited
`U . S . PATENT DOCUMENTS
`11 / 1975 Cooper et al .
`3 , 922 , 494 A
`4 , 937 , 781 A
`6 / 1990 Lee et al .
`( Continued )
`FOREIGN PATENT DOCUMENTS
`101075242 A
`11 / 2007
`101179389 A
`5 / 2008
`( Continued )
`OTHER PUBLICATIONS
`R . Fielding et al , RFC 2616 : Hypertext Transfer Protocol — HTTP
`1 . 1 , Jun . 1999 , retrieved from the Internet http : / / rcf - editor . org
`[ retrieved Apr . 15 , 2002 ] ( 114 pages ) .
`( Continued )
`Primary Examiner – Minh Chau Nguyen
`( 74 ) Attorney , Agent , or Firm — May Patents Ltd . c / o
`Dorit Shem - Tov
`( 57 )
`
`ABSTRACT
`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 .
`29 Claims , 15 Drawing Sheets
`
`CLIENT
`DEVICE
`
`CLIENT
`DEVICE
`
`CLIENT
`DEVICE
`10
`
`CLIENT
`DEVICE
`
`PROXY
`SERVER
`
`WEB
`SERVER
`3 . 0
`
`PROXY
`SERVER
`
`INTERNET
`
`WEB
`SERVER
`
`CLIENT
`DEVICE
`
`CLIENT
`DEVICE
`20
`
`MED
`SERVER
`
`PROXY
`SERVER
`
`Code200 Exhibit 1001
`Page 1 of 29
`
`
`
`US 10 , 257 , 319 B2
`Page 2
`
`( 56 )
`
`H04L 1 / 005
`725 / 151
`
`Related U . S . Application Data
`12 / 836 , 059 , filed on Jul . 14 , 2010 , now Pat . No .
`8 , 560 , 604
`( 60 ) Provisional application No . 61 / 249 , 624 , filed on Oct .
`8 , 2009 .
`( 52 ) U . S . CI .
`CPC . . . . . . . H04L 67 / 108 ( 2013 . 01 ) ; H04L 67 / 1023
`( 2013 . 01 ) ; H04L 67 / 1063 ( 2013 . 01 ) ; H04L
`67 / 22 ( 2013 . 01 ) ; H04L 67 / 2814 ( 2013 . 01 ) ;
`H04L 67 / 2819 ( 2013 . 01 ) ; H04L 67 / 02
`( 2013 . 01 )
`( 58 ) Field of Classification Search
`. . . . . . . . . . . . . . . . . 709 / 202
`USPC . . . . . . . . . . . . . . .
`See application file for complete search history .
`References Cited
`U . S . PATENT DOCUMENTS
`5 , 577 , 243 A
`11 / 1996 Sherwood et al .
`5 , 758 , 195 A
`5 / 1998 Balmer
`6 , 061 , 278 A
`5 / 2000 Kato et al .
`6 , 154 , 782 A
`11 / 2000 Kawaguchi
`6 , 173 , 330 B1
`1 / 2001 Guo et al .
`6 , 466 , 470 B1 10 / 2002 Chang
`6 , 868 , 453 B1 *
`3 / 2005 Watanabe . . . . . . . . . G06F 17 / 30861
`707 / E17 . 107
`7 , 120 , 666 B2
`10 / 2006 McCanne et al .
`7 , 203 , 741 B2
`4 / 2007 Marco et al .
`7 , 558 , 942 B1
`7 / 2009 Chen et al .
`7 , 788 , 378 B2
`8 / 2010 Rao
`7 , 818 , 430 B2 10 / 2010 Zuckerman
`7 , 865 , 585 B2
`1 / 2011 Samuels et al .
`7 , 890 , 547 B2
`2 / 2011 Hotti
`7 , 970 , 835 B2
`6 / 2011 St . Jacques
`8 , 135 , 912 B2
`3 / 2012 Shribman et al .
`8 , 171 , 101 B2
`5 / 2012 Gladwin et al .
`8 , 479 , 251 B2
`7 / 2013 Feinleib et al .
`8 , 499 , 059 B2
`7 / 2013 Stoyanov
`8 , 595 , 786 B2 * 11 / 2013 Choi
`. . . . . . . . . . .
`8 , 769 , 035 B2
`1 / 2014 Resch et al .
`8 , 719 , 505 B2
`5 / 2014 Shribman et al .
`8 , 832 , 179 B29 / 2014 Owen et al .
`9 , 201 , 808 B2 12 / 2015 Shribman et al .
`9 , 253 , 164 B2
`2 / 2016 Gouge
`9 , 990 , 295 B2
`6 / 2018 Shribman et al .
`2001 / 0033583 Al 10 / 2001 Rabenko et al .
`2002 / 0007413 A1
`1 / 2002 Garcia - Luna - Aceves et al .
`2002 / 0065930 A1 5 / 2002 Rhodes
`2002 / 0069241 A1
`6 / 2002 Narlikar et al .
`2002 / 0120874 A1 8 / 2002 Shu et al .
`2002 / 0123895 A
`9 / 2002 Potekhin
`2002 / 0133621 A
`9 / 2002 Marco et al .
`2003 / 0009518 Al
`1 / 2003 Harrow et al .
`2003 / 0009583 Al
`1 / 2003 Chan et al .
`2003 / 0074403 A1
`4 / 2003 Harrow et al .
`2003 / 0097408 AL
`5 / 2003 Kageyama
`2003 / 0115364 A1
`6 / 2003 Shu et al .
`2003 / 0174648 A1 9 / 2003 Wang et al .
`2003 / 0200307 Al 10 / 2003 Raju et al .
`2003 / 0204602 A1 10 / 2003 Hudson et al .
`2003 / 0210694 Al 11 / 2003 Jayaraman et al .
`2004 / 0088646 A1
`5 / 2004 Yeager et al .
`2004 / 0107242 A16 / 2004 Vert et al .
`2004 / 0254907 Al 12 / 2004 Crow et al .
`2004 / 0264506 AL 12 / 2004 Furukawa
`2005 / 0015552 AL
`1 / 2005 So et al .
`2005 / 0022236 AL
`1 / 2005 Ito et al .
`2005 / 0097441 A1 *
`5 / 2005 Herbach
`2005 / 0228964 A1 10 / 2005 Sechrest et al .
`2006 / 0036755 AL
`2 / 2006 Abdullah
`
`G06F 21 / 10
`715 / 229
`
`9 / 2006 Fang . . . . . . . . . . . . . . . . . . . . . HO4L 67 / 104
`2006 / 0212542 A1 *
`709 / 219
`9 / 2006 Yu . . . . . . . . . . . . . . . . . . . . GO6F 17 / 30902
`2006 / 0212584 A1 *
`709 / 227
`2006 / 0259728 Al 11 / 2006 Chandrasekaran et al .
`2007 / 0073878 A1
`3 / 2007 Issa
`2007 / 0100839 A1 5 / 2007 Kim
`2007 / 0156855 A1 7 / 2007 Johnson
`2007 / 0226810 A1
`9 / 2007 Hotti
`2007 / 0239655 AL 10 / 2007 Agetsuma
`2008 / 0008089 A1
`1 / 2008 Bornstein et al .
`2008 / 0025506 A1
`1 / 2008 Muraoka
`2008 / 0109446 Al 5 / 2008 Wang
`2008 / 0125123 A1 5 / 2008 Dorenbosch
`2008 / 0222291 A1
`9 / 2008 Weller et al .
`2008 / 0235391 A1
`9 / 2008 Painter et al .
`2008 / 0086730 Al 10 / 2008 Vertes
`2008 / 0256175 Al 10 / 2008 Lee
`2009 / 0037529 Al 2 / 2009 Armon - Kest
`2009 / 0182843 A1 7 / 2009 Hluchyi
`2009 / 0217122 A1 8 / 2009 Yokokawa et al .
`2009 / 0279559 Al 11 / 2009 Wong et al .
`2009 / 0319502 Al 12 / 2009 Chalouhi et al .
`2010 / 0066808 AL 3 / 2010 Tucker et al .
`2010 / 0085977 Al 4 / 2010 Khalid et al .
`2010 / 0094970 Al
`4 / 2010 Zuckerman
`2010 / 0115063 Al 6 / 2010 Gladwin et al .
`2010 / 0154044 Al 6 / 2010 Manku
`2010 / 0235438 Al 9 / 2010 Narayanan et al .
`2010 / 0293555 A1 11 / 2010 Vepsalainen
`2010 / 0329270 A112 / 2010 Asati et al .
`2011 / 0035503 A1 *
`2 / 2011 Zaid . . . . . . . . . . . . . . . . . . . . H04L 63 / 0407
`709 / 228
`2011 / 0066924 Al
`3 / 2011 Dorso
`2011 / 0087733 A1 4 / 2011 Shribman et al .
`2011 / 0128911 A1 6 / 2011 Shaheen
`2011 / 0314347 Al 12 / 2011 Nakano et al .
`2012 / 0099566 A1 4 / 2012 Laine et al .
`2012 / 0124173 AL
`5 / 2012 De et al .
`2012 / 0124239 A1
`5 / 2012 Shribman et al .
`2012 / 0254370 A1 10 / 2012 Bacher
`2012 / 0254456 A1 10 / 2012 Visharam et al .
`2013 / 0007253 Al 1 / 2013 Li
`2013 / 0157699 A1 6 / 2013 Talwar
`2013 / 0166768 Al
`6 / 2013 Gouache et al .
`2013 / 0201316 Al 8 / 2013 Binder et al .
`2013 / 0272519 A1 10 / 2013 Huang
`2013 / 0326607 AL 12 / 2013 Feng
`2014 / 0082260 A13 / 2014 Oh et al .
`2014 / 0301334 Al 10 / 2014 Labranche
`2014 / 0376403 Al 12 / 2014 Shao
`2015 / 0033001 A11 / 2015 Ivanov
`2015 / 0067819 Al
`3 / 2015 Shribman et al .
`2015 / 0358648 A1 12 / 2015 Limberg
`2016 / 0021430 AL
`1 / 2016 LaBosco et al .
`FOREIGN PATENT DOCUMENTS
`0948176 A2
`10 / 1999
`2597869 A1
`12 / 2013
`5 / 2015
`2597869 AL
`2007280388
`10 / 2007
`1020090097034
`9 / 2009
`2343536 C2
`10 / 2009
`2000 / 018078 A1
`3 / 2000
`2010090562 Al
`8 / 2010
`2011068784 Al
`6 / 2011
`2015034752 A1
`3 / 2015
`
`EP
`EP
`EP
`JP
`KR
`RU
`WO
`WO
`WO
`WO
`
`OTHER PUBLICATIONS
`Notice of Preliminary Rejection in KR Application No . 10 - 2012
`7011711 dated Jul . 15 , 2016 .
`Kei Suzuki , a study on Cooperative Peer Selection Method in P2P
`Video Delivery , vol . 109 , No . 37 , IEICE Technical Report , The
`Institute of Electronics , Information and Communication Engineers ,
`May 14 , 2009 .
`
`Code200 Exhibit 1001
`Page 2 of 29
`
`
`
`US 10 , 257 , 319 B2
`Page 3
`
`( 56 )
`
`References Cited
`OTHER PUBLICATIONS
`International Search Report dated in PCT Application No . PCT /
`US2010 / 051881 dated Dec . 9 , 2010 .
`Supplementary European Search Report dated in EP Application
`No . 10822724 dated Apr . 24 , 2013 .
`Screen captures from YouTube video clip entitle “ nVpn . net | Double
`your Safety and use Socks5 + nVpn ” 38 pages , last accessed Nov .
`20 , 2018 < https : / / www . youtube . com / watch ? v = LOHct2kSnn4 > .
`Screen captures from YouTube video clip entitle “ Andromeda ” 47
`pages , publicly known and available as of at least 2011 < https : / /
`www . youtube . com / watch ? v = yRRYPFLØKNU > .
`SpyEye , https : / / www . symantec . com / security - center / writeup / 2010
`020216 - 0135 - 9 ; http : / / securesql . info / riskyclouds / spyeye - user
`manual ; known as of at least 2010 ( 13 pages ) .
`Screen captures from YouTube video clip entitle “ Change Your
`Country IP Address & Location with Easy Hide IP Software ” 9
`pages , publicly known and available as of at least 2011 , < https : / /
`www . youtube . com / watch ? v = ulwkflsOfdA and https : / / www . youtube .
`com / watch ? v = iFEMT - 09DTc > .
`CoralCDN ( “ CoralCDN ” ) , https : / / pdos . csail . mit . edu / 6 . 824 / papers /
`freedman - coral . pdf ( 14 Pages ) .
`
`European Search Report for EP 14182547 . 1 , dated Jul . 30 , 2015 .
`R . Fielding et al , RFC 2616 : Hypertext Transfer Protocol — HTTP /
`1 . 1 , Jun . 1999 , retrieved from the Internet http : / / rcf - editor . org
`[ retrieved Apr . 15 , 2002 ] .
`“ On the leakage of personally identifiable information via online
`social networks ” , Wills et al . AT & T , Apr . 2009 http : / / www2 . research .
`att . com / - bala / papers / wosn09 . pdf .
`“ Slice Embedding Solutions for Distributed Service Architectures ” —
`Esposito et al . , Boston University , Computer Science Dept . , Oct .
`2011 http : / / www . cs . bu . edu / techreports / pdf / 2011 - 025 - slice - embedding .
`pdf .
`International Search Report of PCT / US2010 / 034072 dated Jul . 1 ,
`2010 .
`YouTube video clip entitled “ nVpn . net | Double your Safety and use
`Socks5 + nVpn ” < https : / / www . youtube . com / watch ? v = LOHct2kSnn4 > .
`YouTube video clip entitled “ Andromeda ” < https : / / www . youtube .
`com / watch ? v = yRRYPFLbKNU > .
`YouTube video clip entitled “ Change Your Country IP Address &
`Location with Easy Hide IP Software ” < https : / / www . youtube . com /
`watch ? v = ulwkfisOfdA and https : / / www . youtube . com / watch ? v =
`iFEMT - 09DTc > .
`* cited by examiner
`
`Code200 Exhibit 1001
`Page 3 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 1 of 15
`
`US 10 , 257 , 319 B2
`
`DEVICE
`?
`
`CLIENT
`3CE
`16
`
`EXT?? ?? CLIENT
`
`CLIENT
`
`DEVICE
`
`Fromant . wmv
`
`PROXY
`SERVER
`
`WEB
`SERVER
`
`* * * ver y
`* *
`PROXY
`????
`
`INTERNET
`
`WEB
`SERVER
`
`?? , ??
`
`???
`SERVER
`
`CLIENT
`???
`
`CLIENT
`DEVICE
`
`* *
`
`.
`…
`… . . . wret m
`"
`PROXY
`SERVER
`
`FIG . 1
`
`Code200 Exhibit 1001
`Page 4 of 29
`
`
`
`atent
`
`Apr . 9 , 2019
`
`Sheet 2 of 15
`
`US 10 , 257 , 319 B2
`
`SERVER
`
`PEER
`78
`
`INTERNET
`
`PEER
`76
`
`CLIENT
`DEVICE
`60
`
`.
`
`PEER
`
`PEER
`
`PEER
`
`FIG , 2
`
`Code200 Exhibit 1001
`Page 5 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 3 of 15
`
`US 10 , 257 , 319 B2
`
`ACCELERATION
`SERVER
`
`WEB
`SERVER
`152
`
`LAT
`
`CLIENT
`102
`
`STORAGE
`DEVICE
`164
`
`AGENT
`
`PEER
`112
`
`PEER
`
`* E?
`
`FIG . 3
`
`Code200 Exhibit 1001
`Page 6 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 4 of 15
`
`US 10 , 257 , 319 B2
`
`CONFIGURATION
`DATABASE
`280
`
`CACHE DATABASE
`282
`
`STORAGE DEVICE
`208
`
`+ + + +
`
`+ + + + + + +
`
`+ + + + + +
`
`PROCESSOR
`202
`
`INTERNET
`BROWSER
`214
`ACCELERATION
`APPLICATION
`220
`SOFTWARE
`212
`
`MEMORY
`210
`
`LOCAL INTERFACE 250
`
`VO DEVICES
`240
`
`FIG . 4
`
`Code200 Exhibit 1001
`Page 7 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 5 of 15
`
`US 10 , 257 , 319 B2
`
`iiiiiiiiiii
`
`i
`
`ii
`
`wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
`
`w
`
`www
`
`APPLICATION
`LEVEL
`270
`
`INTERNET
`BROWSER
`214
`
`OTHER
`APPLICATIONS
`216
`
`ACCELERATION
`APPLICATION
`220
`
`OPERATING
`SYSTEM
`LEVEL
`260
`
`INTERMMEDIATE DRIVER
`272
`
`COMMUNICATION
`STACKS
`264
`ir
`DEVICE DRIVERS
`262
`
`OPERATING
`SYSTEM
`230
`
`MEMORY
`210
`
`FIG . 5
`
`Code200 Exhibit 1001
`Page 8 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 6 of 15
`
`US 10 , 257 , 319 B2
`
`ACCELERATION
`APPLICATION
`220
`
`ACCELERATION
`SYSTEM INITIALIZER
`MODULE
`
`CLIENT MODULE
`
`PEER MODULE
`226
`
`AGENT MODULE
`228
`
`CONFIGURATION
`DATABASE
`
`CACHE DATABASE
`282
`
`STORAGE DEVICE
`208
`
`FIG . 6
`
`Code200 Exhibit 1001
`Page 9 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 7 of 15
`
`US 10 , 257 , 319 B2
`
`ek 162
`
`wwwwwwwwwwwwwwwwwwwwwóminümummilitoww
`
`
`
`. mintaininiw lwminiwminiwminiwmetentiomwwwmintimiwimminwm
`
`.
`
`EMT
`
`> > > INDEXED BY : AGENT IP ADDRESS
`
`.
`
`.
`
`. . . . . . . . . . . .
`
`.
`
`ACCELERATION DATABASE 164
`
`
`166 AGENTIP A ONLINEJOHFLINE
`
`?????????????????????????????????????????????????????????????????????????????
`
`???
`
`-
`
`
`THIS URL : 300 CHUNKI
`
`CHANGED ON SERVER 298 | LIST OF CHUNKS FOR
`
`
`LAST 294 LAST CHECKED ON SERVER 296
`
`
`292 URL HTTP HEADERS
`290 URL
`
`SON TV
`
`
`
`CACHE DATABASE 282
`
`286 LIST OF URIS ;
`
`288 URL 1
`
`FIG . 7
`
`
`
`
`
`310 ] PEER 1 IP ADDRESS 312 PEER 2 CONNECTION STATUS
`
`
`
`308 PEER 1
`
`wwwwwwwwwwwwwwwwww
`
`
`3021 CHUNK CHECKSUM 304
`
`LIST QE PEERS : CHUNK DATA 306
`
`
`
`menengamasin
`istrameniniamini
`mimimi
`
`.
`
`1
`
`.
`
`.
`
`Code200 Exhibit 1001
`Page 10 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 8 of 15
`
`US 10 , 257 , 319 B2
`
`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
`
`CLIENT MODULE TO INTERCEPT
`ALL OUTGOING NETWORK
`COMMUNICATIONS
`308
`
`INITIALIZER LAUNCHES AGENT
`MODULE AND PEER MODULE
`310
`
`FIG . 8
`
`Code200 Exhibit 1001
`Page 11 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 9 of 15
`
`US 10 , 257 , 319 B2
`
`350
`
`APPLICATION ON CLIENT INITIATES
`REQUEST FOR A RESOURCE ON A
`NETWORK
`352
`
`RESOURCE REQUEST IS INTERCEPTED BY
`THE CLIENT MODULE
`354
`
`CLIENT MODULE LOOKS UP IP ADDRESS OF
`SERVER THAT IS TARGET OF RESOURCE
`REQUEST 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
`OF AGENTS THAT MAY BE SUITABLE TO
`HANDLE THE REQUEST FROM THIS IP
`ADDRESS
`358
`
`CLIENT SENDS ORIGINAL REQUEST TO ALL
`AGENTS IN THE LIST RECEIVED FROM
`ACCELERATION SERVER TO DETERMINE
`WHICH AGENT IN THE LIST IS BEST SUITED
`TO ASSIST WITH THE REQUEST
`360
`
`FIG . 9
`
`Code200 Exhibit 1001
`Page 12 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 10 of 15
`
`US 10 , 257 , 319 B2
`
`EACH AGENT THAT RECEIVES CLIENT REQUEST RESPONDS TO CLIENT WITH
`WHETHER IT HAS INFO . REGARDING REQUEST THAT CAN ASSIST CLIENT TO
`DOWNLOAD REQUESTED INFO . FROM PEERS IN NETWORK
`382
`30
`
`CLIENT SELECTS SPECIFIC AGENT
`
`384
`
`CLIENT NOTIFIES SELECTED AGENT OF USE FOR REQUEST AND NOTIFIES OTHER
`AGENTS OF LACK OF USE
`386
`
`CLIENT FORWARDS SELECTED AGENT REQUEST FOR FIRST X NUMBER OF
`CHUNKS
`388
`
`DOES SELECTED AGENT HAVE INFO . REGARDING
`REQUESTED 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 FOR EACH CHUNK IS
`SORTED BY GEOGRAPHICAL
`PROXIMITY TO REQUESTING CLIENT
`394
`
`LIST OF CLOSEST PEERS TO CLIENT
`396
`IS SENT TO CLIENT
`
`NO
`SELECTED AGENT SENDS REQUEST
`400
`DIRECTLY TO SERVER
`
`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
`
`Code200 Exhibit 1001
`Page 13 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 11 of 15
`
`US 10 , 257 , 319 B2
`
`CLIENT RECEIVES RESPONSE FROM THE AGENT AND FOR EACH OF X CHUNKS ,
`CLIENT SENDS A REQUEST TO EACH OF THE PEERS LISTED 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 FOR FUTURE USE
`
`430
`
`IF ANY CHUNKS WERE NOT LOADED FROM ANY OF THE PEERS , CLIENT REQUESTS
`CHUNKS AGAIN FROM AGENT
`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
`436
`OF PEERS FOR THESE CHUNKS
`
`CLIENT PASSES DATA TO APPLICATION OF CLIENT THAT MADE REQUEST 438
`
`CLIENT CHECKS WHETHER ALL OF THE CHUNKS FOR REQUEST WERE RECEIVED
`440
`
`FIG . 11
`
`Code200 Exhibit 1001
`Page 14 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 12 of 15
`
`US 10 , 257 , 319 B2
`
`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
`REQUEST STILL VALID ?
`506
`
`YES
`
`SEND HTTP CONDITIONAL REQUEST
`TO THE WEB SERVER , TO CHECK IF
`THE DATA STORED FOR THIS
`REQUEST IS STILL VALID
`510
`
`RETURN " VALID "
`508
`
`YES
`
`IS CACHED DATA STILL VALID ?
`512
`
`RETURN " INVALID "
`514
`
`FIG . 12
`
`Code200 Exhibit 1001
`Page 15 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 13 of 15
`
`US 10 , 257 , 319 B2
`
`550
`
`CHECK " KEEP ALIVE " WTH NETWORK
`E BENTS ( CENTS / AGENTS / PERS ) , AND
`UPDATE DATABASE AS TO THEIR STATUS
`( ONHUINE / OFF - LINE )
`552
`
`WAIT FOR CLIENT REQUEST
`554
`
`TYPE OF REQUEST RECEIVED ?
`556
`
`SIGN _ UP
`
`FIND AGENT
`
`CHECK _ VERSION
`
`ADD THE CIENT TO LIST OF
`POTENTIAL AGENTS ,
`SORTED BY IP ADDRESS OF
`THE NETWORK BEMENTS
`( CIENTS , PERS , AGENTS )
`558
`
`CREATE A NEW EMPTYAGENT LIST
`560
`
`RETURN TO THE CIENT THE VERSION OF
`THE LATEST AVAILABLE SOFTWARE , AND
`AURL OF WHERE TO DOWNLOAD THE
`LATEST VERSION
`566
`
`SEARCH THE AGENT DATABASE
`FOR THE NEXT 5 ACTIVE AGENTS
`THAT HAS THE IP ADDRESS THAT
`IS COSEST TO THE TARGET
`SERVERIP
`| ( EG . 1921663 . 103 IS CLOSER TO
`192 . 166 . 3 . 212 THEN TO
`192 . 167 . 3 . 104 )
`562
`
`SEND THE AGENT LIST TO THE
`CENT
`564
`
`FIG 13
`
`Code200 Exhibit 1001
`Page 16 of 29
`
`
`
`U . S . Patent
`
`Apr . 9 , 2019
`
`Sheet 14 of 15
`
`US 10 , 257 , 319 B2
`
`NETWORK APPLICATION ON CLIENT ISSUES REQUEST TO
`CONNECT TO A TCPIP SERVER
`601
`
`600
`
`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
`6 04
`
`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 ESTABLISHA
`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
`
`AGENT ISSUES A TCPIP CONNECT WITH THE TCPIP
`SERVER TO THE IP AND PORT RECEIVED FROM THE CLIENT
`
`FIG . 14
`
`Code200 Exhibit 1001
`Page 17 of 29
`
`
`
`atent
`
`Apr . 9 , 2019
`
`Sheet 15 of 15
`
`US 10 , 257 , 319 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 DEVICE IT IS
`COMMUNICATING WITH ( CLIENT TO AGENT ,
`OR AGENT 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
`COMMUNICATION DEVICE IT IS
`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 BEEN TRANSFERRED 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 AGENT IT PASSES IT ON TO THE TCPIP SERVER 818
`
`FIG . 15
`
`800
`
`Code200 Exhibit 1001
`Page 18 of 29
`
`
`
`US 10 , 257 , 319 B2
`
`SYSTEM PROVIDING FASTER AND MORE
`EFFICIENT DATA COMMUNICATION
`
`what used to be called the “ Web2 . 0 ” trend ) . This may be
`seen on the Amazon Web site and the Salesforce Web site ,
`
`CROSS - REFERENCE TO RELATED
`sites is tailored to the viewer , and is thus different for any
`5 two viewers . This dynamic information makes it impossible
`APPLICATIONS
`for most of the solutions offered to date to store the content
`and provide it to others seeking similar content .
`The present application is a continuation application of
`One solution that has been in use is called a “ proxy ” . FIG .
`U . S . non - provisional patent application Ser . No . 14 / 025 , 109 ,
`1 is a schematic diagram providing an example of use of a
`filed Sep . 12 , 2013 , which is a divisional application of U . S .
`non - provisional patent application entitled “ SYSTEM AND 10 proxy within a network 2 . A proxy , or proxy server 4 , 6 , 8
`METHOD FOR PROVIDING FASTER AND MORE EFFI
`is a device that is placed between one or more clients ,
`LEFFI
`CIENT DATA COMMUNICATION ” having Ser . No .
`illustrated in FIG . 1 as client devices 10 , 12 , 14 , 16 , 18 , 20 ,
`12 / 836 , 059 , filed Jul . 14 , 2010 and issued as U . S . Pat . No .
`that request data , via the Internet 22 , and a Web server or
`8 , 560 , 604 on Oct . 15 . 2013 , and claims priority to U . S .
`Web servers 30 , 32 , 34 from which they are requesting the
`provisional patent application entitled “ SYSTEM AND 15 data . The proxy server 4 , 6 , 8 requests the data from the Web
`METHOD FOR REDUCING INTERNET CONGES
`servers 30 , 32 , 34 on their behalf , and caches the responses
`TION , ” having Ser . No . 61 / 249 , 624 , filed Oct . 8 , 2009 ,
`from the Web servers 30 , 32 , 34 , to provide to other client
`which are hereby incorporated herein by reference in their
`devices that make similar requests . If the proxy server 4 , 6 ,
`8 is geographically close enough to the client devices 10 , 12 ,
`entirety .
`2014 , 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
`FIELD OF THE INVENTION
`speed up the requests for the client devices 10 , 12 , 14 , 16 ,
`The present invention is related to Internet communica
`18 , 20 that it is serving .
`It should be noted , however , that to provide a compre
`tion , and more particularly , to improving data communica
`25 hensive solution for Internet surfing , the proxy servers of
`tion speed and bandwidth efficiency on the Internet .
`FIG . 1 would need to be deployed at every point around the
`BACKGROUND OF THE INVENTION
`world where the Internet is being consumed , and the storage
`size of the proxy servers at each location would need to be
`There are several trends in network and Internet usage ,
`near the size of all the data stored anywhere on the Internet .
`which tremendously increase the bandwidth that is being 30 The abovementioned would lead to massive costs that are
`used on the Internet . One such trend is that more and more
`impractical . In addition , these proxy solutions cannot deal
`video is being viewed on demand on the Internet . Such
`well with dynamic data that is prevalent now on the Web .
`viewing includes the viewing of both large and short video
`There have been commercial companies , such as Akamai ,
`clips . In addition , regular shows and full - featured films may
`that have deployed such proxies locally around the world ,
`be viewed on the Internet . Another trend that is increasing 35 and that are serving a select small group of sites on the
`the traffic on the Internet is that Web sites ( such as shopping
`Internet . If all sites on the Web were to be solved with such
`portals , news portals , and social networks ) are becoming
`a solution , the capital investment would be in the range of
`global , meaning that the Web sites are serving people in
`billions of dollars . In addition , this type of solution does not
`many diverse places on the globe , and thus the data is
`handle dynamic content .
`traversing over longer stretches of the Internet , increasing 40
`To create large distribution systems without the large
`the congestion .
`hardware costs involved with a proxy solution , " peer - to - peer
`The increase in bandwidth consumption has created sev -
`file sharing " solutions have been introduced , such as , for
`eral major problems , a few of which are described below :
`example , BitTorrent . FIG . 2 is a schematic diagram provid
`The problem for users — the current Internet bandwidth is
`ing an example of a peer - to - peer file transfer network 50 . In
`not sufficient , and thus the effective ' speed ' experienced by 45 the network 50 , files are stored on computers of consumers ,
`users is slow ;
`referred to herein as client devices 60 . Each consumer can
`The problem for content owners — the tremendous amount of
`serve up data to other consumers , via the Internet 62 , thus
`data being viewed by users is costing large amounts of
`taking the load of serving off of the distributors and saving
`them the associated costs , and providing the consumer
`money in hosting and bandwidth costs ; and
`The problem for Internet Service Providers ( ISPs ) — the 50 multiple points from which to download the data , referred to
`growth in Internet traffic is requiring the ISPs to increase the
`herein as peers 70 , 72 , 74 , 76 , 78 , thus increasing the speed
`infrastructure costs ( communication lines , routers , etc . ) at
`of the download . However , each such peer - to - peer solution
`must have some sort of index by which to find the required
`tremendous financial expense .
`The need for a new method of data transfer that is fast for
`data . In typical peer - to - peer file sharing systems , because the
`the consumer , cheap for the content distributor and does not 55 index is on a server 80 , or distributed among several servers ,
`require infrastructure investment for ISPs , has become a
`the number of files available in the system is not very large
`( otherwise , the server costs would be very large , or the
`major issue which is yet unsolved .
`There have been many attempts at making the Internet
`lookup time would be very long ) .
`The peer - to - peer file sharing solution is acceptable in file
`faster for the consumer and cheaper for the broadcaster .
`Each such attempt is lacking in some aspect to become a 60 sharing systems , because there are not that many media files
`widespread , practical solution , or is a partial solution in that
`that are of interest to the mass ( probably in the order of
`it solves only a subset of the major problems associated with
`magnitude of millions of movies and songs that are of
`the increase in Internet traffic . Most of the previous solutions
`interest ) . Storing and maintaining an index of millions of
`require billions of dollars in capital investment for a com -
`entries is practical technically and economically . However ,
`prehensive solution . Many of these attempts are lacking in
`65 if this system were to be used to serve the hundreds of
`that much of the content on the Internet has become dynami -
`billions of files that are available on the Internet of today , the
`cally created per the user and the session of the user ( this is
`cost of storing and maintaining such an index would be
`
`Code200 Exhibit 1001
`Page 19 of 29
`
`
`
`US 10 , 257 , 319 B2
`
`FIG . 2 is a schematic diagram providing a prior art
`again in the billions of dollars . In addition , these types of
`example of a peer - to - peer file transfer network .
`peer - to - peer file sharing systems are not able to deal with
`dynamic HTTP data .
`FIG . 3 is a schematic diagram providing an example of a
`communication network in accordance with the present
`In conclusion , a system does not exist that enables fast
`invention .
`transmission of most of the data on the Internet , that does not 5
`FIG . 4 is a schematic diagram further illustrating a
`incur tremendous costs , and / or that provides only a very
`communication device of the communication network of
`partial solution to the problem of Internet traffic congestion
`FIG . 3
`Thus , a heretofore unaddressed need exists in the industry to
`FIG . 5 is a schematic diagram further illustrating the
`address the aforementioned deficiencies and inadequacies .
`10 memory of FIG . 4 .
`FIG . 6 is a schematic diagram further illustrating elements
`SUMMARY OF THE INVENTION
`of the acceleration application of FIG . 5 , as well as com
`munication paths of the acceleration application .
`The present system and method provides for faster and
`FIG . 7 is a chart further illustrating two of the main
`more efficient data communication within a communication
`network . Briefly described , in architecture , one embodiment * 15 databases utilized within the communication network .
`FIG . 8 is a flowchart illustrating operation of the accel
`of the system , among others , can be implemented as follows .
`eration system initializer module .
`A network is provided for accelerating data communication ,
`FIG . 9 is a flowchart further illustrating communication
`wherein the network contains : at least one client communi
`between different elements of the communication network .
`FIG . 10 is a flowchart continuing the flowchart of FIG . 9
`cation device for originating a data request for obtaining the 20
`data from a data server , at least one agent communication
`and focused on agent response to the HTTP request .
`device which is assigned to the data server for receiving the
`FIG . 11 is a flowchart continuing the flowchart of FIG . 10 .
`which illustrates actions taken upon receipt of the list of
`data request from the client communication device , wherein
`the agent keeps track of which client communication devices
`peers , or single peer listing , from the agent .
`have received responses to data requests from the assigned 25
`FIG . 12 is a flowchart illustrating steps taken by an agent ,
`data server ; at least one peer communication device for
`client , or peer to determine whether a certain HTTP request
`storing portions of data received in response to the data
`is still valid .
`request by the at least one client communication device ,
`FIG . 13 is a flowchart outlining operation of the accel
`wherein the portions of data may be transmitted to the at
`e