`US 10,484,510 B2
`(0) Patent No.:
`*Nov. 19, 2019
`(45) Date of Patent:
`Shribmanet al.
`
`US010484510B2
`
`(54) SYSTEM PROVIDING FASTER AND MORE
`EFFICIENT DATA COMMUNICATION
`
`(56)
`
`(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 ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`This patent is subject to a terminal dis-
`claimer.
`Appl. No.: 16/278,107
`,
`Appl.
`No
`Filed:
`Feb. 17, 2019
`File
`.
`°
`Prior Publication Data
`US 2019/0182360 Al
`Jun. 13, 2019
`
`21)
`(21)
`22)
`(22)
`(65)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`3,922,494 A
`4,937,781 A
`
`LL/1975. Cooperet al.
`6/1990 Leeetal.
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`CN
`CN
`
`11/2007
`101075242 A
`5/2008
`101179389 A
`(Continued)
`
`OTHER PUBLICATIONS
`Third-party submission under 37 CFR 1.290 filed on Jul. 23, 2019
`d entered in U.S. Appl. No. 16/140,749.
`an
`(Continued)
`.
`Primary Examiner — Minh Chau Nguyen
`(74) Attorney, Agent, or Firm — May Patents Ltd. c/o
`Dorit Shem-Tov
`
`(51)
`
`ABSTRACT
`(57)
`A system designed for increasing network communication
`on
`speed for users, while lowering network congestion for
`Related U.S. Application Data
`content owners and ISPs. The system employs network
`(60) Continuation of application No. 15/957,945, filed on
`elements including an acceleration server, clients, agents,
`Apr. 20, 2018, now Pat. No. 10,257,319, which is a
`— ° CP and peers, where communication requests generated by
`(Continued)
`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 someorall 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.
`
`(2006.01)
`(2006.01)
`(2006.01)
`
`Int. Cl.
`HOAL 29/06
`HO4L 29/08
`HOAL 12/24
`(52) U.S. Cl.
`CPC wee FOAL 67/42 (2013.01); HO4L 41/046
`(2013.01); HO4L 67/1002 (2013.01);
`(Continued)
`:
`:
`:
`(58) Field of Classification Search
`CPC ... HO4L 67/42; HO4L 41/046; HO4L 67/1002;
`HO4L 67/22; HO4L 67/02
`(Continued)
`
`Data Co v. Bright Data
`
`24 Claims, 15 Drawing Sheets
`
`Data Co Exhibit 1025
`Data Co Exhibit 1025
`Data Co v. Bright Data
`
`
`
`US 10,484,510 B2
`
`Page 2
`
`Related U.S. Application Data
`
`9/2002 Marcoetal.
`2002/0133621 Al
`1/2003 Harrow et al.
`2003/0009518 Al
`1/2003 Chan et al.
`2003/0009583 Al
`continuation of application No. 14/025,109, filed on
`
`
`Sep. 12, 2013, now Pat. No. 10,069,936, which is a 4/2003_--Harrow etal.2003/0074403 Al
`division of application No. 12/836,059, filed on Jul.
`2003/0097408 Al
`5/2003 Kageyama
`14. 2010. now Pat. No. 8.560.604
`2003/0115364 Al
`6/2003 Shuetal.
`,
`,
`oo
`?
`.
`2003/0174648 Al
`9/2003 Wangetal.
`2003/0200307 Al
`10/2003 Raju etal.
`2003/0204602 Al
`10/2003 Hudson
`2003/0210694 Al
`11/2003 Jayaraman etal.
`2003/0229718 Al
`12/2003 Tock
`2003/0229785 Al
`12/2003 Daseke
`2004/0088646 Al
`5/2004 ‘Yeageret al.
`(52) U.S. Cl.
`2004/0107242 Al
`6/2004 Vert etal.
`CPC ........ FOAL 67/108 (2013.01); HO4E 67/1023
`2004/0264506 Al=12/2004 Furukawa
`67/22 (2013.01); HO4L 67/2814 (2013.01);
`2005/0015552 Al
`1/2005 So et al.
`HO4L 67/2819 (2013.01); HO4L 67/02
`2005/0022236 Al
`1/2005.
`Ito et al.
`(2013.01)
`2005/0027782 Al
`2/2005 Jalan
`‘
`‘
`2005/0097441 Al
`5/2005 Herbach
`709/202
`(58) awn Classification Search
`2005/0228964 Al
`10/2005 Sechrest et al.
`9/2006 Abdullah
`3006/0036755 Al
`siseeesosnneecnsnneseccnnnnseeconnnnseecennnseeceennnass
`See application file for complete search history.
`2006/0039352 Al
`3/2006 Karstens
`2006/0047844 Al
`3/2006 Deng
`2006/0212542 AL*
`9/2006 Fang ween HO4L 67/104
`709/219
`9/2006 YU wecceeceeeeeeee HO4L 67/104
`709/227
`
`(60) Provisional application No. 61/249,624, filed on Oct.
`8 2009
`’
`.
`
`‘
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2006/0212584 Al
`
`5,519,693 A
`5,577,243 A
`5,758,195 A
`6,061,278 A
`6,154,782 A
`6,173,330 Bl
`6,466,470 Bl
`6,519,693 Bl
`6,868,453 Bl
`6,895,011 Bl
`7,120,666 B2
`7,203,741 B2
`7,234,059 Bl
`7,558,942 Bl
`7,673,048 Bl
`7,742,485 B2
`7,751,628 Bl
`7,783,777 Bl
`7,788,378 B2
`7,818,430 B2
`7,831,720 Bl
`7,865,585 B2*
`
`7,890,547 B2
`7,970,835 B2
`8,135,912 B2
`8,171,101 B2
`8,479,251 B2
`8,499,059 B2
`8,595,786 B2
`8,639,630 B2
`8,769,035 B2
`8,719,430 B2
`8,719,505 B2
`8,832,179 B2
`8,838,811 B2
`9,201,808 B2
`9,015,335 BL*
`
`5/1996 Galuszka
`11/1996 Sherwoodetal.
`5/1998 Balmer
`5/2000 Katoet al.
`11/2000 Kawaguchi
`9/2001 Guoetal.
`10/2002 Chang
`2/2003 Debey
`3/2005 Watanabe
`5/2005 Lassers
`10/2006 McCanneetal.
`4/2007 Marcoetal.
`6/2007 Beaver
`7/2009 Chen et al.
`3/2010 O’Toole
`6/2010 Zhang
`7/2010 Reisman
`8/2010 Pabla
`8/2010 Rao
`10/2010 Zuckerman
`11/2010 Noureddine
`1/2011 Samuels «0.0.0.0... HO4L 67/28
`709/217
`
`2/2011 Hotti
`6/2011 St. Jacques
`3/2012 Shribman et al.
`5/2012 Gladwin et al.
`7/2013 Feinleib etal.
`7/2013 Stoyanov
`11/2013 Choi
`1/2014 Fomenkoetal.
`1/2014 Reschetal.
`5/2014 Van Ackere
`6/2014 Shribman etal.
`9/2014 Owenetal.
`9/2014 Chen
`1/2015 Shribman et al.
`4/2015 Gigliotti oo. GO6F 16/40
`709/231
`
`11/2015 Binder
`9,177,157 B2
`2/2016 Gouge
`9,253,164 B2
`6/2018 Shribman et al.
`9,990,295 B2
`10/2001 Rabenkoetal.
`2001/0033583 Al
`2001/0054020 Al* 12/2001 Barth wo G06Q 10/02
`705/37
`
`2002/0007413 Al
`2002/0065930 Al
`2002/0069241 Al
`2002/0091760 Al
`2002/0120874 Al
`2002/0123895 Al
`
`1/2002 Garcia-Luna-Acevesetal.
`5/2002 Rhodes
`6/2002 Narlikar et al.
`7/2002 Rozen
`8/2002 Shuetal.
`9/2002 Potekhin
`
`2006/0224687 Al
`2006/0259728 Al
`2007/0050522 Al
`2007/0073878 Al
`2007/0100839 Al
`2007/0142036 Al
`2007/0156855 Al
`2007/0174246 Al
`2007/0226810 Al
`2007/0239655 Al
`2008/0008089 Al
`2008/0025506 Al
`2008/0109446 Al
`2008/0125123 Al
`2008/0222291 Al
`2008/0235391 Al
`2008/0086730 Al
`2008/0256175 Al
`2009/0010426 Al
`2009/0037529 Al
`2009/0182843 Al
`2009/0216887 Al
`2009/0217122 Al
`2009/0232003 Al
`2009/0248793 Al
`2009/0279559 Al
`2009/0292816 Al
`2009/0319502 Al
`2010/0066808 Al
`2010/0085977 Al
`2010/0094970 Al
`2010/0115063 Al
`2010/0154044 Al
`2010/0235438 Al
`2010/0262650 Al
`2010/0293555 Al
`2010/0329270 Al
`2011/0035503 Al
`
`2011/0066924 Al
`2011/0087733 Al
`2011/0128911 Al
`2011/0264809 Al
`2011/0314347 Al
`2012/0099566 Al
`2012/0124173 Al
`2012/0124239 Al
`2012/0164980 Al
`2012/0166582 Al
`2012/0246273 Al
`2012/0254370 Al
`
`10/2006 Popkin
`11/2006 Chandrasekaran etal.
`3/2007 Grove
`3/2007 Issa
`5/2007 Kim
`6/2007 Wikman
`7/2007 Johnson
`7/2007 Sigurdsson
`9/2007 Hotti
`10/2007 Agetsumaet al.
`1/2008 Bornstein etal.
`1/2008 Muraoka
`5/2008 Wang
`§/2008 Dorenboschet al.
`9/2008 Weller
`9/2008 Painter et al.
`10/2008 Vertes
`10/2008 Lee
`1/2009 Redmond
`2/2009 Armon-Kest
`7/2009 Hluchyj
`8/2009 Hertle
`8/2009 Yokokawaetal.
`9/2009 Vasseur
`10/2009 Jacobsson
`11/2009 Wongetal.
`11/2009 Etchegoyen
`12/2009 Chalouhietal.
`3/2010 Tuckeretal.
`4/2010 Khalid et al.
`4/2010 Zuckerman et al.
`6/2010 Gladwin et al.
`6/2010 Manku
`9/2010 Narayanan
`10/2010 Chauhan
`11/2010 Vepsalainen
`12/2010 Asati et al.
`2/2011 Zaid wo... HO4L 63/0407
`709/228
`
`3/2011 Dorso
`4/2011 Shribman
`6/2011 Shaheen
`10/2011 Koster
`12/2011 Nakanoetal.
`4/2012 Laineet all.
`5/2012 Deet al.
`5/2012 Shribman
`6/2012 Van Phan
`6/2012 Binder
`9/2012 Bornstein
`10/2012 Bacher
`
`
`
`US 10,484,510 B2
`Page 3
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`2012/0254456 Al
`2013/0007232 Al
`2013/0007253 Al
`2013/0064370 Al
`2013/0080575 Al
`2013/0157699 Al
`2013/0166768 Al
`2013/0171964 Al
`2013/0201316 Al
`2013/0219458 Al
`2013/0272519 Al
`2013/0304796 Al
`2013/0326607 Al
`2014/0082260 Al
`2014/0189802 Al
`2014/0301334 Al
`2014/0359081 Al
`2014/0376403 Al
`2015/0033001 Al
`2015/0067819 Al
`2015/0189401 Al
`2015/0206176 Al
`2015/0206197 Al
`2015/0341812 Al
`2015/0358648 Al
`2016/0021430 Al
`2016/0105530 Al
`2017/0221092 Al
`
`10/2012 Visharam
`1/2013 Wang
`1/2013 Li
`3/2013 Gouge
`3/2013 Prince
`6/2013 Talwar
`6/2013 Gouacheetal.
`7/2013 Bhatia
`8/2013 Binderet al.
`8/2013. Ramanathan
`10/2013 Huang
`11/2013 Jackowski
`12/2013 Feng
`3/2014 Ohet al.
`7/2014 Montgomery
`10/2014 Labrancheet al.
`12/2014 Van Deventer
`12/2014 Shao
`1/2015 Ivanov
`3/2015 Shribman
`7/2015 Yi
`7/2015 Toval
`7/2015 Toval
`11/2015 Dion
`12/2015 Limberg
`1/2016 LaBoscoetal.
`4/2016 Shribman
`8/2017 Toval
`
`FOREIGN PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`“Keep Alive’—Imperva, 2019 https://www.imperva.com/learn/
`performance/keep-alive (2019) (3 pages).
`Third party observation filed on Jun. 21, 2019 in PCT Application
`No. PCT/IL2018/050910 (7 pages).
`IETF named:
`IPy6 Tunnel Broker, Apr. 1999—First uploaded.
`document submitted with third party observation dated Jun. 21,
`2019 (13 pages).
`RFC 3053 (Jan. 2001) named: IPv6 Tunnel Broker—Secod uploaded
`document submitted with third party observation dated Jun. 21,
`2019 (13 pages).
`International Search Report issued in PCT Application No. PCT/
`US2010/051881 dated Dec. 9, 2010.
`Supplementary European Search Report issued in EP Application
`No. 10822724 dated Apr. 24, 2013.
`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).
`“On the Leakage of Personally Identifiable Information via Online
`Social Networks”—wWills et al, AT&T, Apr. 2009 http://www2.
`research.att.com/~bala/papers/wosn09 pdf.
`Notice of Preliminary Rejection in KR Application No. 10-2012-
`7FOLI711 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.
`Reed et al, “Anonymous Connections and Onion Routing”, Naval
`Research Laboratory, Mar. 1998 https://www.onion-router.net/
`Publications/JSAC-1998 pdf (Year: 1998).
`Michael J. Freedman, Princeton University, “Experiences with
`CoralCDN: a five-year operational view’, Proceeding NSDI’10
`EP 0948176 A2—10/1999
`
`Proceedings of the 7th USENIX conference on Networked. systems
`EP
`2597869 Al
`5/2013
`design and implementation San Jose, Califomia—Apr. 28-30, 2010
`EP
`2597869 Al
`5/2015
`(17 pages).
`EP
`2922275 Bl
`3/2016
`“The BitTorrent Protocol Specification”, Website: https://web.archive.
`JP
`2007280388
`10/2007
`KR
`1020090097034
`9/2009
`org/web/201205 1301 1037/http:/www.bittorrent.org/beps/bep_0003.
`RU
`2343536 C2
`10/2009
`html describing BitTorrent dated Jan. 10, 2008 downloaded. using
`WO
`2000/018078 Al
`3/2000
`webarchive on Aug. 16, 2019 (6 pages).
`WO
`2004094980
`11/2004
`“BitTorrent”, Website: https://en.wikipedia.org/w/index .php?title=
`WO
`2010090562 Al
`8/2010
`BitTorrent&oldid=530466721 describing BitTorrent dated Dec. 30,
`
`WO 2010090562 Al=12/2010
`2012 downloaded using Wikipedia on Aug. 16, 2019 (9 pages).
`WO
`2011068784 Al
`9/2011
`“VIP Socks/VPN Service”, Website: http://vip72.com:80/?drgn=1
`WO
`2015034752 Al
`3/2015
`describing VIP72 proxy service dated Jan. 2010 downloaded using
`VIP Technologies webpage on Aug. 16, 2019 (3 pages).
`“Welcome to Easy Hide IP”, Website: https://web.archive.org/web/
`20130702093456/http://www.easy-hide-ip.com:80/describing Easy
`Hide IP dated Jun. 26, 2007 downloaded using web archive on Aug.
`16, 2019 (2 pages).
`“You makeit fun; we’ll makeit run”, Website: https://web.archive.
`org/web/20130726050810/https://www.coralcdn.org describing
`CoralCDN dated Jan. 25, 2005 downloaded using web archive on
`Aug. 16, 2019 (2 pages).
`“Net Transport”, Website: http://www.xi-soft.com/defaulthtm describ-
`ing Net Transport Overview dated 2005 downloaded using Net
`Transport webpage on Aug. 16, 2019 (2 pages).
`Net Transport—Develop History, Website: http://www.xi-soft.com/
`download.htm describing Net Transport Download dated 2005
`downloaded using Net Transport webpage on Aug. 16, 2019 (10
`pages).
`Net Transport FAQ, Website: http://www.xi-soft.com/faqhtm describ-
`ing Net Transport FAQ dated 2005 downloaded using Net Transport
`webpage on Aug. 16, 2019 (4 pages).
`Net Transport News, Website: http://www.xi-soft.com/news.htm
`describing Net Transport News dated 2005 downloaded using Net
`Transport webpage on Aug. 16, 2019 (5 pages).
`Screen captures from YouTubevideoclip 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 andavailable as of at least 2011 <https://
`www.youtube.com/watch?v=yRRYpFLbKNU>.
`
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/140,785.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/214,433.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/214,451.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/214,476.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/214,496.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/292,363.
`Third-party submission under 37 CFR 1.290filed on Jul. 22, 2019
`and entered in U.S. Appl. No. 16/292,364.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/292,374.
`Third-party submission under 37 CFR 1.290filed on Jul. 23, 2019
`and entered in U.S. Appl. No. 16/292,382.
`Third-party submission under 37 CFR 1.290filed on Jul. 25, 2019
`and entered in U.S. Appl. No. 16/365,250.
`Third-party submission under 37 CFR 1.290filed on Jul. 25, 2019
`and entered in U.S. Appl. No. 16/365,315.
`“Slice Embedding Solutions for Distributed Service Architectures”—
`Esposito et al., Boston University, Feb. 12, 2011 http://www.cs.bu.
`edu/techreports/pdf/20 1 1-025-slice-embedding.pdf (Year 2011) (16
`pages).
`
`
`
`
`
`
`
`US 10,484,510 B2
`Page 4
`
`(56)
`
`References Cited
`OTHER PUBLICATIONS
`
`SpyEye, https://www.symantec.com/security-center/writeup/20 10-
`020216-0135-9; http://securesql.info/riskyclouds/spyeye-user-
`manual; knownasofat 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 andavailable as of at least 2011, <https://
`www.youtube.com/watch?v=ulwkf1sOfdA andhttps://www.youtube.
`com/watch?v=iFEMT-o9DTc>.
`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://ref-editor.org
`[retrieved Apr. 15, 2002].
`“Slice Embedding Solutions for Distributed Service Architectures”—
`Esposito et al., Boston University, Computer Science Dept., Oct.
`2011 http://www.cs.bu.edu/techreports/pdf/20 1 1-025-slice-embedding.
`pdf.
`International Search Report of PCT/US2010/034072 dated Jul. 1,
`2010.
`YouTubevideoclip 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=ulwkflsOfdA and https://www.youtube.com/watch?v=
`iFEMT-b9DTec>.
`
`* cited by examiner
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 1 of 15
`
`US 10,484,510 B2
`
`
`CLIENT
`
`DEVICE
`
`
`io
`
`
`
`
`
`CLIENT
`
`DEVICE
`a2
`
`
`
`
`
`CLIENT
`
`
`DEVICE
`
`
`4
`
`
`
`
`
`CLIENT
`DEVICE
`
`‘16
`
`
`
`PROXY
`SERVER
`
`;
`i
`
`
`
`CLIENT
`
`DEVICE
`PROXY
`
` 28
`SERVER
`
`
`FIG. 1
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 2 of 15
`
`US 10,484,510 B2
`
`rg
`
`SERVER
`
`BS
` CLIENT
`
`DEVICE
`69
`
`ty
`;
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 3 of 15
`
`US 10,484,510 B2
`
`J 133
`
`ACCELERATION
`SERVER
`AfZ
`
`STORAGE
`DEVICE
`184
`
`
`
`{
`
`CLIENT
`302
`
`FIG. 3
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 4 of 15
`
`US 10,484,510 B2
`
`INTERNET
`
`BROWSER 244
`
`ACCELERATION
`APPLICATION
`
`SOFTWARE
`
`CONFIGURATION
`DATABASE
`280
`
`CACHE DATABASE
`
`210
`
`
`
`PROCESSOR
`202
`
`STORAGE DEVICE
`208
`
`MEMORY
`
`LOCALINTERFACE 250
`
`0 DEVICES
`240
`
`FIG. 4
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 5 of 15
`
`US 10,484,510 B2
`
`ACCELERATION
`OTHER
`INTERNET
`APPLICATION|
`
`LEVEL APPLICATIONS||APPLICATIONBROWSER
`
`270
`214
`216
`220
`
`210
`
`OPERATING
`SYSTEM
`
`eo
`
`a
`
`INTERMMEDIATE DRIVER
`272
`
`COMMUNICATION
`STACKS
`264
`
`<b
`
`DEVICE DRIVERS
`
`262
`
`OPERATING
`SYSTEM
`230
`
`MEMORY
`
`FIG. 5
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 6 of 15
`
`US 10,484,510 B2
`
`
`ACCELERATION
`APPLICATION
`
`220
`
`CLIENT MODULE]|PEERMODULE]|AGENT MODULE
`
`
`ACCELERATION
`224
`226
`228
`SYSTEM INITIALIZER
`MODULE
`222
`
`
`
`
`
`
`
`
`CONFIGURATION
`DATABASE
`280
`
`CACHE DATABASE
`282
`
`STORAGEDEVICE
`208
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 7 of 15
`
`US 10,484,510 B2
`
`£9T
`
`EEACREEeg
`
`
`
`2NTHO/INGNOWdt.LNZ9¥|99T
`
`q
`
` WNSH.}
`
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 8 of 15
`
`US 10,484,510 B2
`
`300
`
`D
`
`INITIALIZER LAUNCHES AGENT
`MODULE AND PEER MODULE
`
`FIG. 8
`
`INITIALIZER SIGNS UP WITH
`ACCELERATION SERVER
`302
`
`DETERMINE IF THERE IS AN
`UPDATED VERSION OF
`APPLICATION?
`304
`
`INITIALIZER REDIRECTS
`OUTGOING NETWORK TRAFFIC
`306
`
`310
`
`INITIALIZER LAUNCHES CLIENT
`MODULE AND CONFIGURES
`CLIENT MODULE TO INTERCEPT
`ALL OUTGOING NETWORK
`COMMUNICATIONS
`308
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 9 of 15
`
`US 10,484,510 B2
`
`352
`
`APPLICATION ON CLIENT INITIATES
`REQUEST FOR A RESOURCE ONA
`NETWORK
`
`350
`
`RESOURCE REQUESTIS INTERCEPTED BY
`THE CLIENT MODULE
`354
`
`CLIENT MODULE LOOKSUP IP ADDRESS OF
`SERVER THATIS 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 PREPARESA LIST
`OF AGENTSTHATMAYBE SUITABLE TO
`HANDLE THE REQUEST FROM THIS IP
`ADDRESS
`358
`
`360
`
`CLIENT SENDS ORIGINAL REQUESTTO ALL
`AGENTSIN THE LIST RECEIVED FROM
`ACCELERATION SERVER TO DETERMINE
`WHICH AGENT IN THE LIST IS BEST SUITED
`TO ASSIST WITH THE REQUEST
`
`FIG. 9
`
`
`
`U.S. Patent
`
`Nov.19, 2019
`
`Sheet 10 of 15
`
`US 10,484,510 B2
`
`EACH AGENTTHAT RECEIVES CLIENT REQUEST RESPONDSTO CLIENT WITH
`WHETHER IT HAS INFO. REGARDING REQUESTTHATCAN ASSIST CLIENT TO
`DOWNLOAD REQUESTED INFO. FROM PEERS IN NETWORK
`382
`
`CLIENT SELECTS SPECIFIC AGENT
`
`CLIENT NOTIFIES SELECTED AGENT OF USE FOR REQUESTAND NOTIFIES OTHER
`
`
`
`CLIENT FORWARDS SELECTED AGENT REQUESTFORFIRST X NUMBER OF
`CHUNKS
`388
`
`
`DOES SELECTED AGENTHAVEINFO. REGARDING
`REQUESTED CHUNKS AND IS INFO. STILL VALID?
`
`
`
`
`
`YES
`
`NO
`
`AGENTS OF LACK OF USE 386
`
`
`SELECTED AGENT SENDS REQUEST
`DIRECTLY TO SERVER
`400
`
`
`
`SELECTED AGENT STORESINFO.
`FROM SERVER IN ITS DATABASE
`
`402
`
`
`SELECTED AGENT PREPARES
`RESPONSE(LIST) FOR CLIENT,
`WHERE RESPONSEINCLUDES
`CHECKSUM OF CHUNK, HEADERS,
`AND PROVIDES ITSELF AS THE ONLY
`PEER FOR THESE CHUNKS
`404
`
`LIST IS FORWARDED BACK TO
`CLIENT
`406
`
`FIG. 10
`
`IF INFO. STILL VALID, SELECTED
`AGENT RESPONDSTO CLIENT WITH
`CHECKSUM OF CHUNK,LIST OF
`PEERS THAT CONTAIN CHUNKS, AND
`IF ONLY A PORTIONOF INFO.,
`HEADERS
`
`LIST OF PEERS FOR EACH CHUNK IS
`SORTED BY GEOGRAPHICAL
`PROXIMITY TO REQUESTING CLIENT
`
`392
`394
`396
`
`LIST OF CLOSEST PEERS TO CLIENT
`IS SENT TO CLIENT
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 11 of 15
`
`US 10,484,510 B2
`
`422
`
`CLIENT RECEIVES RESPONSE FROM THE AGENT AND FOR EACH OFX CHUNKS,
`CLIENT SENDS A REQUEST TO EACH OF THE PEERSLISTED FOR THE CHUNK TO
`DOWNLOADTHE DATA OF THAT CHUNK
`
`PEERS RESPOND REGARDING WHETHER THEYSTILL 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 CHUNKSIN ITS CACHE FOR FUTURE USE
`
`430
`
`IF ANY CHUNKS WERE NOT LOADED FROMANYOF THE PEERS, CLIENT REQUESTS
`CHUNKS AGAIN FROM AGENT
`432
`
`CLIENT ACKNOWLEDGESTO THE AGENT WHICH OF THE CHUNKSIT RECEIVED
`PROPERLY
`434
`
`AGENT LOOKS UP CHUNKSIN DATABASE OF AGENT AND ADDSCLIENT TO LIST
`OF PEERS FOR THESE CHUNKS
`436
`
`CLIENT PASSES DATA TO APPLICATION OF CLIENT THAT MADE REQUEST438
`
`CLIENT CHECKS WHETHER ALL OF THE CHUNKS FOR REQUEST WERE RECEIVED
`440
`
`\ 4
`
`20
`
`FIG. 11
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 12 of 15
`
`US 10,484,510 B2
`
`500
`
`LOOK UP HTTP REQUEST IN
`DATABASE, GET ITS HTTP HEADERS
`502
`
`504
`
`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.)
`
`
`
`
`IS DATA CACHEDFOR THIS
`
`SEND HTTP CONDITIONAL REQUE
`REQUEST STILL VALID?
`
`506
`TO THE WEB SERVER, TO CHECK IF
`
`THE DATA STORED FORTHIS
`
`REQUESTIS STILL VALID
`510
`
`
`
`
`
`
`IS CACHED DATA STILL VALID?
`
`RETURN "VALID"
`512
`508
`
`
`
`NO
`
`514
`
`RETURN "INVALID"
`
`FIG. 12
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 13 of 15
`
`US 10,484,510 B2
`
`ar
`
`QHECK "KEEP ALIVE” WITH NETWORK
`ELEMENTS (CLIENTS/AGENTS/PEERS), AND]
`UPDATE DATABASE AS TO THEIR STATUS
`
`(ON-LINE / OFF-LINE)
`
`
`
`FOR THE NEXT 5 ACTIVE AGENTS
`
`THAT HAS THE IP ADDRESSTHAT
`
`
`TS CLOSEST TOTHE TARGET
`
`SERVERIP
`
`
`(EG. 192.166,3,103 IS CLOSER TO
`
`
`192. 166.3.212. THEN TO
`192.167.3.104)
`
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 14 of 15
`
`US 10,484,510 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
`
`612
`
`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
`
`AGENT ISSUES A TCPIP CONNECT WITH THE TCPIP
`SERVER TO THE IP AND PORT RECEIVED FROM THE CLIENT
`
`FIG. 14
`
`
`
`U.S. Patent
`
`Nov. 19, 2019
`
`Sheet 15 of 15
`
`US 10,484,510 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 AGENT TO CLIENT), AND ADDS THAT
`COMMUNICATION DEVICE TO THE LIST OF
`PEERS FOR THAT CHUNK 812
`
`ACOEERATIONROPLIOATONTHAT
`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 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
`
`HAVE ALL CHUNK DATA BEEN TRANSFERRED TO THE OTHER SIDE? 816
`
`NO
`
`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
`XM 800
`
`FIG. 15
`
`
`
`US 10,484,510 B2
`
`1
`SYSTEM PROVIDING FASTER AND MORE
`EFFICIENT DATA COMMUNICATION
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The present application is a continuation application of
`US. non-provisional patent application Ser. No. 15/957,945,
`filed Apr. 20, 2018, which is a continuation application of
`U'S. non-provisional patent application Ser. No. 14/025,109,
`filed Sep. 12, 2013 and issued as U.S. Pat. No. 10,069,936
`on Sep. 4, 2018, which is a divisional application of U.S.
`non-provisional patent application entitled “SYSTEM AND
`METHOD FOR PROVIDING FASTER. AND MORE
`
`EFFICIENT DATA COMMUNICATION?”having Ser. No.
`12/836,059, filed Jul. 14, 2010 and issued as U.S. Pat. No.
`8,560,604 on Oct. 15, 2013, and claimspriority to US.
`provisional patent application entitled “SYSTEM AND
`METHOD FOR REDUCING INTERNET CONGES-
`
`TION,” having Ser. No. 61/249,624, filed Oct. 8, 2009,
`which are hereby incorporated herein by reference in their
`entirety.
`
`FIELD OF THE INVENTION
`
`The present invention is related to Internet communica-
`tion, and moreparticularly, to improving data communica-
`tion speed and bandwidth efficiency on the Internet.
`
`BACKGROUND OF 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 demand on the Internet. Such
`viewing 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
`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 Internettraffic is requiring the ISPs to increase
`the infrastructure costs (communication lines, routers,
`etc.) at tremendous financial 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 consumer and cheaper for the broadcaster.
`Each such attempt is lacking in some aspect to become a
`widespread, practical solution, or is a partial solution in that
`it solves only a subset of the major problemsassociated with
`the increase in Internettraffic. Mostof the previous solutions
`require billions of dollars in capital investment for a com-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`prehensive solution. Many of these attempts are lacking in
`that muchofthe content on the Internet has become dynami-
`cally 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 Website and the Salesforce Website,
`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 makesit impossible
`for most of the solutions offered to date to store the content
`
`and provide it to others seeking similar content.
`Onesolution that has been in useis 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
`Webservers 30, 32, 34 from which they are requesting the
`data. The proxyserver4, 6, 8 requests the data from the Web
`servers 30, 32, 34 on their behalf, and caches the responses
`from the Web servers 30, 32, 34, to provide to other client
`devices that make similar requests. If the proxy server 4, 6,
`8 is geographically close enoughtothe 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 compre-
`hensive 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, andthe storage
`size of the proxy servers at each location would need to be
`near the sizeofall the data stored anywhere on the Internet.
`The abovementioned would lead to massive costs that are
`
`impractical. 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 Akarnai,
`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
`hardwarecosts 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 provid-
`ing 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
`them the associated costs, and providing the consumer
`multiple points from which to downloadthe 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 somesort of index by which to find the required
`data. In typical peer-to-peerfile sharing systems, because the
`index is on a server 80, or distributed amongseveral servers,
`the numberoffiles 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 mediafiles
`that are of interest to the mass (probably in the order of
`magnitude of millions of movies and songs that are of
`interest). Storing and maintaining an index of millions of
`entries is practical technically and economically. However,
`
`
`
`US 10,484,510 B2
`
`3
`if this system were to be used to serve the hundreds of
`billionsoffiles 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, a system does not exist 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 Internettraffic congestion.
`Thus, a heretofore unaddressed need exists in the industry to
`address the aforementioned deficiencies and inadequacies.
`
`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, amongothers, can be implementedas follows.
`Anetwork 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
`storing 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 communication device; and at least one acceleration
`server for deciding which agent communication device is to
`be assigned to which data server and providing this infor-
`mation to the at least