`Jungck
`
`USOO6728785B1
`(10) Patent No.:
`US 6,728,785 B1
`(45) Date of Patent:
`Apr. 27, 2004
`
`(54) SYSTEM AND METHOD FOR DYNAMIC
`COMPRESSION OF DATA
`
`(*) Notice:
`
`(75) Inventor: Peder J. Jungck, San Carlos, CA (US)
`(73) Assignee: Cloudshield Technologies, Inc.,
`Sunnyvale, CA (US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 664 days.
`(21) Appl. No.: 09/602,128
`(22) Filed:
`Jun. 23, 2000
`(51) Int. Cl. ................................................ G06F 15/16
`
`(52) U.S. Cl. ........................ 709/247; 709/238; 709/203
`(58) Field of Search ................................. 709/247, 248,
`709/238, 227, 217, 219, 203, 204; 707/101,
`5; 370/401
`
`56
`(56)
`
`Ref
`
`WO
`WO
`WO
`WO
`WO
`W
`WO
`
`4/1998
`WO 98/17039
`2/1999
`WO 99/O5584
`2/1999
`WO 99/09725
`6/1999
`WO 99/27684
`11/1999
`WO 99/60459
`2:
`W 8:
`5/2000
`WO OO/28713
`OTHER PUBLICATIONS
`Module 2: INternet Tools (Advanced) ; www.quasarual
`berta.ca/edpy202/tttl/keya . . . le2/module2.htm.*
`Globally Progressive INteractive Web Delivery, Gilbert et
`al, IEEE 1999.*
`SqueezePlay product described at www.innermedia.com In
`Beta as “SpeedBrowse” Apr. 21, 2001. http://web.archi
`ve.org/web/20010515234313/http://www.innermedia.com/,
`pp. 1-3.
`JetNexus product described at http://www.preactholding
`S.com/performance/products/jetneXuS/ First customer install
`Dec. 07, 2001 http://www.webmetrics.co.uk/Documents/
`CaseStudies/jetNEXUS William%20Hill Case Study.pdf,
`p. 1.
`
`(List continued on next page.)
`Primary Examiner Jack B. Harvey
`Assistant Examiner Thong Vu
`(74) Attorney, Agent, Or Firm-Brinks Hofer Gilson &
`Lione
`
`Cited
`CS
`U.S. PATENT DOCUMENTS
`5,805,820 A 9/1998 Belovin et al. ....... 395/200.55
`5,938.737 A * 8/1999 Smallcomb et al. ........ 709/247
`5,953,503 A * 9/1999 Mitzenmacher et al. ... 709/203
`5.991,713 A 11/1999 Unger et al. ................... 704/9
`(57)
`ABSTRACT
`6,014,660 A 1/2000 Lim et al. ......
`... 707/3
`6,016,512 A 1/2000 Huitema ..................... 709/245
`A method of transferring a compressed web page over a
`6,046.980 A 4/2000 Packer ....................... 370/230
`p
`k with
`ffecting the existing web
`COmputer netWOrk Without affecting the eXISting Web SerVer
`6,052,718 A 4/2000 Gifford .............
`... 709/219
`applications and processes. The compressor intercepts a
`6,070,191 A 5/2000 Narendran et al. ......... 709/226
`request from a WorkStation for the web page. A Second
`6,073,168 A 6/2000 Mighdoll et al. ........... 709/217
`(i. f : R2. yed et al. ............ 3.y request is transmitted to the Server from the compressor for
`63.01607 B2 - 10/2001 Rough a - - - - - - - - - - 709/204
`the original, uncompressed web page. The web page is
`6,327,589 B1 12f2001 Blewett
`... 707/5
`Selectively compressed in the compressor. Then the com
`6349,336 B1 - 22002 sitet al... .700,227
`pressed web page is transmitted to the WorkStation.
`6.460.044 B1 * 10/2002 Wang .....
`... 707/101
`Optionally, Some of the files associated web page, Such as
`6,553,413 B1 * 4/2003 Leighton et al...
`... 709/219
`image files, are also compressed and the references to the
`6,567.857 B1 * 5/2003 Gupta et al. ................ 709/238
`compressed associated files is changed to reflect any change
`FOREIGN PATENT DOCUMENTS
`in the name of the compressed associated files.
`
`EP
`
`O 865 180 A2 3/1998
`
`3 Claims, 3 Drawing Sheets
`
`
`
`400
`
`ng if the requested web page can he
`d and if any
`assiciated files cine
`
`48
`
`4.0
`
`4.2
`
`414
`
`4.6
`
`48
`
`Transmitting a fourth request to the web server for the
`assiciated files and receiving the associated files.
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`US 6,728,785 B1
`Page 2
`
`OTHER PUBLICATIONS
`PipeBoost product described at http://www.pipeboost.com
`Released Nov. 30, 1999 http://soft.necromancers.ru/prog.
`php?prog id=6261, pp. 1-2.
`XCache, products described at XCompress http://www.x-
`cache.com/home/default.asp?c=32&p=165 Announced May
`15, 2000 http://web.archive.org/web/20010211030245/ww
`W.Xcache.com/home/press room poS t point releases
`Xcache delivering dynamic internet content 6X to
`7X faster. Htm, pp. 1-2.
`NetScaler's webscaler product described at www.netscaler.
`com Announced May 01, 2000 http://www.nwfusion.com/
`archive/2000/94567 May 01, 2000.html, 3 pages.
`http://
`http:Zip
`product
`described
`at
`Announced
`www.port80software.com/products/httpzip/
`Dec. 17, 2002 http://www.port80software.com/about/press/
`121702, 7 pages.
`Web I/O accelerator products described at http://www.red
`linenetworks.com Described on website Aug. 29, 2000
`http://web.archive.org/web/20000829044951/http://ww
`w.redlinenetworks.com/, 5 pages.
`HyperSpace Acclerator hypertunnel product described at
`http://www.ehyperSpace.com/products/hypertunnel.php
`?software=HyperTunnel%202.0 announced Nov. 10, 2001
`Key technology released as freeware called mod gzip
`around Nov. 2000. http://www.frtechbiz.com/displayarticle
`detail.asp?art id=51999&search=hypers pace%2B, 4
`pageS.
`Turbois technology described at http://www.turbois.com
`Described on website Jun. 03, 2002 http://web.archive.org/
`web/20020603144834/http://www.turbois.com/, 1 page.
`Array TM products described at http://www.arraynetwork
`s.net/pr 10022002 2.html Press Release Oct. 02, 2002
`http://www.businesswire.com/webbox/bw.100202/
`222750321.htm, 5 pages.
`EngageIP Cache Server with Compression Plugin created by
`SlipStream described at http://www.logisense.com/com
`pression.html, 1 page.
`Slipstream Data www.slipstream.com Described as in beta
`test in press release May 07, 2002 http://www.slipstream
`data.com/news/pro20507.html, pp. 1-2.
`Coheon Web Accelerator product described at http://www.
`fundamentech.com/products/coheon.htm In beta as of Aug.
`01, 2003 http://www.fundamentech.com/products/coheon.
`htm, pp. 1-5.
`Wayne Berry, 15 Seconds: Web Site compression described
`at http://www.internet.com/icom cgi/print/print.cgi?url=
`http://www.15seconds.com/issue/020314.htm. Mar. 14,
`2002, pp. 1-6.
`Website Optimization.com “Chapter 18: Compressing the
`Web,” described at http://www.websiteoptimization.com/
`speed/18/18-2.html, (C) 2002–2003 Web Site Optimization,
`LLC, last modified: Mar. 17, 2003, pp. 1-2.
`Website Optimization.com “Chapter 18: Compressing the
`Web,” described at http://www.websiteoptimization.com/
`speed/18, (C) 2002–2003 Web Site Optimization, LLC, last
`modified: Jun. 27, 2003, pp. 1-5.
`HTTP Compression Speeds up the Web, described at http://
`Webreference.com/internet/Software/serverS/http/compres
`sion/, Copyright 2003 Jupitermedia Corporation, Revised
`Apr. 20, 2002, pp. 1-6.
`
`Hyperspace Communications, Inc. “HyperWeb' product,
`formerly named “HyperSpace', described at http://www.e-
`hyperSpace.com/products/hyperweb.php, Copyright (C) 2001
`to 2003 HyperSpace Communications, Inc., pp. 1-3.
`PacketShaper Express product brochure, pp. 1-4, Copyright
`(C) 1996-2003 Packeteer, Inc., pp. 1-4.
`“Packeteer Enters Into Definitive Agreement To Acquire
`Internet Caching And Acceleration Infrastructure Software
`Company' press release Jul. 13, 2000, pp. 1-4, available at
`http://www.packeteer.com/news/pr.cfm?pr ID=55.
`Venturi Wireless Accelerators “Driving Successful Data
`Services for Mobile Operators”, described at http://ww
`W.VenturiwireleSS.com/, 1 page, formerly Fourelle, press
`release “Independent Tests Confirm Wireline/Wireless Per
`formance Of Fourelle's Compression Technology', pp. 1-2,
`available at http://web.archive.org/web/1998.0109233518/
`http:/fourelle.com/.
`Vigos AG “High Performance Internet Technologies' bro
`chure, described at http://www.Vigos.com/ pp. 1-2, avail
`ability announced at "Innovative data compression for the
`Internet: VIGOS Website Accelerator provides speed and
`cost Savings in the e-BusineSS World. The pioneering devel
`opment of a 21 years old Internet entrepreneur from Hagen
`(Germany) creates enormous international demand.”, press
`release, pp. 1-2, Oct. 17, 2000, http://www.Vigos.com/press/
`20001017.html.
`Juniper Networks, “M40 Internet Backbone Router.”
`Datasheet, obtained at internet address, http://www.juniper
`.net/products/dsheet/100001.html.
`Juniper Networks, Inc., “M160 Internet Backbone Router”
`Datasheet, obtained at internet address, http://www.juniper.
`net/products/dsheet/10012.
`Rajeev Kumar, Intel Confidential, “IXP1200 Overview”.
`Intel “IXP1200 Network Processor.” Datasheet, pp 1-109
`(out of 146 pages), May, 2000.
`Cisco 7500 Series Routers, pp. 1-2, obtained at internet
`address http://www.cisco.com/warp/public/cc/pr/rt/7500/.
`John Pescatore, Gartner Analyst, “Commentary: Digging
`into the DNS foundation,” obtained at internet address,
`http://news.cnet.com/news/0-1005-202-2080091.html,
`Jun. 15, 2000.
`Rainbow Technologies Products, “CryptoSwift eCommerce
`Accelerator,” obtained at internet address, http://isgrain
`bow.com/products/cs 1.html, Aug. 5, 2000.
`Flow Wise Networks, Inc., “AutoRoute TM Automatic Con
`figuration of Layer 3 Routing,” www.flow wise.com.
`Flow Wise, “Router Accelerator-RA 7000 from Flow
`Wise,” obtained at internet address http://www.flowise.com/
`products/ra7000.htm.
`Intel(R) IXP1200 Network Processor, obtained at internet
`address,
`http://developerintel.com/design/network/
`ixp1200.htm.
`Marshall Brain, How StuffWorks, “How Web Servers and
`the Internet Work,” obtained at internet address http://ww
`w.howStuffworks.com/web-server.htm.
`Marshall Brain, How Stuff Works, “How Domain Name
`Servers Work,” obtained at internet address http://ww
`w.howStuffworks.com/dns.htm.
`Curt Franklin, How Stuff Works, “How Routers Work,”
`obtained at internet address http://www.howstuffworks.com/
`router.htm.
`Microsoft Corporation, Sep.1998 “Introduction to TCP/IP.”
`obtained at internet address http://msdn.microSoft.com/li
`brary/backgrind/html/tcpipintro.htm.
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`US 6,728,785 B1
`Page 3
`
`Robert Stone, “CenterTrack: An IP Overlay Network for
`Tracking DoS Floods,” Article Oct. 1, 1999, pp. 1-9.
`Chapter 1 TCP/IP Fundamentals, obtained at internet
`address
`http://webdocs. Sequent.com/docs/tcpoac01/ch
`1.htm, pp. 1-28.
`Cheng Wu, “Web Switching: A New Generation of Net
`working, pp 1-3.
`Arrow Point CommunicationsTM Article, “A Comparative
`Analysis of Web Switching Architectures, pp. 1-11.
`Arrow Point Communications TM, Brochure, “The Top 12
`Benefits of Content Intelligence.”
`L. Peter Deutsch, “DEFLATE Compressed Data Format
`Specification,” May 1996.
`Antaeus Feldspar, Article, “An Explanation of the Deflate
`Algorithm.” Sep. 11, 1997.
`Arrow Point CommunicationsTM CDDCenter Vendor List
`ing, “Arrow Point CS-50 Highlights’ obtained at internet
`address http://www.cddcenter.com/arrowpoint.htm, May 21,
`2OOO.
`Peter Christy, Analyst Commentary, “When to Distribute
`Content- The Peter's Principles,” obtained at internet
`address http://www.cddcenter.com/index.html, May 21,
`2OOO.
`Content Delivery 101: An Introduction to Content Distribu
`tion & Delivery.
`CDDCenter, “How Do Caching and Content Delivery
`Really Differ'?" obtained at internet address http://www.cd
`dcenter.com/cachingVcontent.htm, pp. 1-4, May 21, 2000.
`Internet Research Group “Infrastructure Application Service
`Providers,” Feb. 2000, pp. 1-7.
`Peter Christy, Internet Research Group, “Content Delivery
`Architectures: Why Doesn’t One Size Fit All?” pp. 1-12.
`Steven Vonder Haar, Inter(Octive Week, Feb. 14, 2000,
`“Content Delivery Shifts. To Edge of Net,” obtained at
`internet address http://www.Zdnet.com/intweek/Stories/
`news/0,4164,2436865,00.html, Dated May 22, 2000.
`David Wilis, Network Computing, “The Content-Delivery
`Edge,” obtained at internet address http://www.network
`computing.com/1103/1103colwillis.html, Dated May 22,
`2OOO.
`Phrack Magazine, “IP-spoofing Demystified (Trust-Rela
`tionship Exploitation)” Vol. Seven, Issue Forty-Eight, File
`14 of 18. pp. 1-9, obtained at internet address http://
`www.fc.net/phrack/files/p48/p48-14.html, Dated Jun. 5,
`2OOO.
`Eddie Mission, “What is Eddie'?', obtained at internet
`address http://www.eddieware.org/what.html, Dated Apr.
`21, 2000.
`Cisco Enterprise Solutions, “Quality of Service,” obtained at
`internet address http://www.cisco.com/warp/public/779/lar
`geent/learn/technologieS/qoS/.
`Cisco White Paper, “Delivering End-to-End Security in
`Policy-Based Networks,” obtained at internet address,
`http://www.cisco.com/warp/public/cc/pd/nemnSW/cap/tech/
`deesp Wp.htm.
`Technology Packeteer, obtained at internet address, http://
`www.packeteer.com/technology/index.cfm.
`
`Overview, Cisco Content Networking, obtained at internet
`address
`http://www.cisco.com/warp/public/cc/SO/neSO/
`ieneSV/cXne/ccnoV ov.htm.
`Overview Cisco Secure Policy Manager 2.0, obtained at
`internet address http://www.cisco.com/warp/public/cc/pd/
`SqSW/Sqppmn/prodlit/secmn ov.htm.
`Alteon Web Systems, White Paper “Optimizing ISP Net
`works and Services with DNS Redirection,” Aug. 1999.
`Alteon Web Systems, White Paper “Virtual Matrix Archi
`tecture Scaling Web Services for Performance and Capac
`ity.” Apr. 2000.
`Alteon Web Systems, White Paper, Questions and Answers,
`pp. 1-3.
`3Com Technical Ppaers, Layer 3 Switching, 5/98.
`Web Cache Communication Protocol Version 2, pp. C-1 to
`C-54.
`RFC2267 Working Group-Denial of Service Counter Mea
`Sures, Tele-conference Meeting Aug. 25, 2000, Moderator,
`Henry Teng of eBay.
`Track-back Architecture General Requirements Version 0.1,
`Initial Draft Submitted to Counter-DoS Solutions Working
`Group, Jul. 31, 2000, Edited by Bob Geiger, Recourse
`Technologies.
`SwitchOn Networks, Inc., ClassiPITM At-a-Glance.
`C-PortTM A Motorola Company, C-5TM Digital Communi
`cations Processor, Product Brief, pp. 1-8, May 4, 2000.
`Peder Jungck, “Building a Faster Cache Server' A Theo
`retical Whitepaper, Silicon Valley Internet Capital, pp. 1-19.
`IXF1002 Dual Port Gigabit Ethernet MAC, Product Brief,
`Levon OneTM an Intel Company.
`NetLogic Microsystems Product Overview.
`Agere, Inc. “The Challenge for Next Generation Network
`Processors”, Sep. 10, 1999.
`Phillips Semiconductors’ VMS747 Security Processor
`Overview.
`Cisco Systems, Cisco 12000 Series GSR, “Performing Inter
`net Routing and Switching at Gigabit Speeds, obtained at
`internet address, http://www.cisco.com/warp/public/cc/pd/
`rt/12000/.
`Cisco Systems, “Cisco 10000 Edge Service Router,”
`obtained at internet address, http://www.cisco.com/warp/
`public/cc/pd/rt/10000/.
`Nortel NetworksTM “Passport 8600 Routing Switch.”
`obtained at internet address, http://www.nortelnetwork
`S.com/products/01/passport/8600/index.html.
`Lucent Technologies, “InterNetworking Systems,” obtained
`at internet address, http://www.lucent.com/ins/products/grf/.
`Lucent Technologies, “InterNetworking Systems,” obtained
`at internet address, http://www.lucent.com/ins/products/grf/
`grf1600.html.
`Juniper Networks, “M20 Internet Backbone Router.”
`Datasheet, obtained at internet address, http://www.juniper.
`net/products/dsheet/100009.html.
`* cited by examiner
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 1 of 3
`
`US 6,728,785 B1
`
`102
`
`N
`
`100
`
`4.
`
`O6
`
`1 O 8
`
`Figure 1
`
`204
`
`
`
`2O2
`
`N
`
`200
`4.
`
`208
`
`2O6
`
`Figure 2
`
`
`
`
`
`3 O 8
`
`302
`
`N
`Workstation
`
`3 O 4
`
`
`
`3 OO
`
`3 O 6
`
`Figure 3
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 2 of 3
`
`US 6,728,785 B1
`
`400
`
`4.
`
`4 O2
`
`Receiving a first request for a web page.
`
`404
`
`Transmitting a second request for the web page to the
`web server and receiving the web page from the web
`
`SeVe.
`
`Determining if the requested web page can be
`compressed and if any associated files can be
`compressed.
`
`Selectively compressing the web page and selectively
`modify references to associated files within the web
`page.
`
`Transmitting the web page to the workstation.
`
`406
`
`4.08
`
`40
`
`
`
`
`
`412
`
`Receiving a third request from the workstation for
`files associated with the web page.
`
`O
`
`44 Transmitting a fourth request to the web server for the
`associated files and receiving the associated files.
`
`416
`
`Selectively compressing the associated files and
`selectively renaming the associated files.
`
`418
`
`Transmitting the files associated with the web page to
`the workstation.
`
`Figure 4
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 3 of 3
`
`US 6,728,785 B1
`
`SOO
`
`5 O2
`
`Receiving a request at a data center from a web
`browser requesting a web page from a web server.
`
`504
`
`Determining if the workstation supports compression.
`
`506
`
`Sending a request to the web server for the web page.
`
`508
`
`Receiving the web page, selectively compressing the
`web page, and selectively changing references in web
`page.
`
`5 1. O
`
`
`
`A
`
`s
`
`Receiving a request for a set of files associated with the
`web page.
`
`52 Receiving a request for a set of files associated with the
`web page.
`
`514
`
`Requesting the set of files associated with the web page
`from the web server.
`
`
`
`516
`
`Receiving the set of files, selectively compressing and
`selectively renaming at least some of the set of files.
`
`518
`
`Transmitting the set of files to the web browser.
`
`Figure 5
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`1
`SYSTEMAND METHOD FOR DYNAMIC
`COMPRESSION OF DATA
`
`US 6,728,785 B1
`
`BACKGROUND
`The present invention relates to a method of compressing
`data for transmission.
`The Internet is a publicly accessible worldwide network
`which primarily uses the Transport Control Protocol and
`Internet Protocol (“TCP/IP”) to permit the exchange of
`information. The Internet Supports Several applications pro
`tocols including the Hypertext Transfer Protocol (“HTTP")
`for facilitating the exchange of HTML/World Wide Web
`(“WWW) content, File Transfer Protocol (“FTP”) for the
`eXchange of data files, electronic mail eXchange protocols,
`Telnet for remote computer acceSS and Usenet for the
`collaborative sharing and distribution of information.
`Several compression techniques have been used to reduce
`the time required to transfer files. Compression can occur at
`the file or the bit stream level. Applications, Such as
`PKZIPTM, compress files on a computer. Modems use bit
`Stream level compression techniques to optimize through
`put. Microsoft's Windows NTTM servers include IIS that can
`provide static web files in the deflate format. Some web
`browsers (“browsers”) support the “deflate” format.
`Traditionally, a WorkStation accesses a web page acroSS
`the Internet by transmitting a request for the web page to a
`Web Server. The Web Server then processes the request and
`transmits the web page to the WorkStation. The web page is
`a file having hypertext markup language (“HTML') codes.
`Once the WorkStation receives the web page, the WorkStation
`analyzes the HTML codes for references to associated files,
`Such as graphic files, Video files, audio files and other files.
`The WorkStation then sends a Second request to the web
`server for the associated files. The web server then sends the
`asSociated files to the WorkStation. This network congestion
`management mechanism is called “HTTP slow start.”
`Since the associated files are requested only after the
`initial web page file has been received and analyzed at the
`WorkStation, the Speed of receiving the initial web page file
`is a controlling factor in the over all Speed of viewing a web
`page. In order to utilize compression techniques as a Speed
`enhancement, conventional Systems require the Web Server
`to Store separate pre-compressed web pages. OtherS also
`require the Web Server to Send additional code to decode the
`Web page.
`
`1O
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`BRIEF SUMMARY
`A method of transferring a compressed web page over a
`computer network without affecting the existing web server
`applications and processes. The compressor intercepts a
`request from a WorkStation for the web page. A Second
`request is transmitted to the Server from the compressor for
`the original, uncompressed web page. The web page is
`55
`Selectively compressed in the compressor. Then the com
`pressed web page is transmitted to the WorkStation.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The present invention is described with reference to the
`accompanying figures. In the figures, like reference numbers
`indicate identical or functionally similar elements.
`Additionally, the left-most digit(s) of a reference number
`identifies the figure in which the reference number first
`appearS.
`FIG. 1 is an illustration of an embodiment of the present
`invention including dynamic compression at the Web Server;
`
`60
`
`65
`
`2
`FIG. 2 is an illustration of an embodiment of the present
`invention including a data center near the Web Server,
`FIG. 3 is an illustration of an embodiment of the present
`invention including a data center near the WorkStation;
`FIG. 4 is a flow chart of an embodiment of the present
`invention including dynamic compression near a web server;
`FIG. 5 is an illustration of first embodiment of the present
`invention including dynamic compression in a data center.
`
`DEFINITIONS
`A proxy server with cache is a Server that is located
`between a client application, Such as a web browser, and a
`real server where the proxy is at the client's side of the
`network. The proxy Server intercepts content requests to the
`real server to see if it can fulfill the requests itself out of its
`cache Storage. If not, or if the proxy server does not have a
`cache, it Substitutes its own IP address for that of the
`originating client, makes a notation to associate the returned
`response to the client, and forwards the request onto the real
`SCWC.
`A reverse proxy server is a Server that is located between
`a client application, Such as a web browser, and a real Server
`at the server's side of the network. Optionally, the reverse
`proxy Server has a cache.
`A forward proxy server sits between a WorkStation and the
`Internet to ensure Security, administrative control and
`optionally provide caching Services. A forward proxy server
`can be associated with a gateway Server which Separates the
`workstation's local network from the Internet or other
`network. The forward proxy server can also be associated
`with a firewall server which protects the local network from
`outside intrusion. The forward proxy server receives content
`requests from WorkStation's requesting web pages and web
`page content from the Web Server. The forward proxy server
`then transmits a request for the web page or content to the
`web server on the behalf of the workstation. The forward
`proxy server modifies the identity of the requestor to be that
`of the forward proxy server. This is typically achieved by
`altering the internet protocol address of the requestor. A
`forward proxy Server can also be a cache Server.
`Portable Network Graphics (PNG) format is a new bit
`mapped graphics format Similar to the GIF format. A graph
`ics file stored in the PNG format is more compressed than
`the same file stored in the GIF format. The conversion from
`GIF to PNG format is a lossless conversion. Web browsers
`such as Netscape NavigatorTM and Microsoft Internet
`ExplorerTM support PNG.
`Internet Information Server (“IIS”) is Microsoft's Web
`server that runs on Windows NTTM platforms. “IIS'supports
`the open-Source compression algorithm called deflate.
`Huffman encoding is a prefix coding prepared by a special
`algorithm. Each code is a Series of bits, either 0 or 1 that
`represents an element in a specific “alphabet”, Such as the Set
`of ASCII characters. This is the primary but not the only use
`of Huffman coding in the deflate compression technique.
`A Huffman algorithm starts by assembling the elements of
`the alphabet, each one being assigned a weight, i.e., a
`number that represents its relative frequency within the data
`to be compressed. These weights may be guessed at
`beforehand, or they may be measured exactly by examining
`the data to be compressed, or Some combination thereof. The
`elements are Selected two at a time, the elements with the
`lowest weights being chosen first. The two chosen elements
`are made to be leaf nodes of a node with two branches. For
`example, a set of elements and weights can looked like this:
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`15
`
`25
`
`35
`
`40
`
`A 16
`B 32
`C 32
`D 8
`E 8
`Lempel–Ziv (LZ) encoding including LZ77, LZ78, LZW
`and others are dictionary based Substitution compression
`techniques. LZ77 compression works by finding Sequences
`of data that are repeated. LZ77 compression uses a "sliding
`window” that is, at any given point in the data, there is a
`record of what characters went before.
`Deflate compression can be accomplished with a variety
`of techniques as defined in the deflate specification, RFC
`1951, herein incorporated by reference. The three modes of
`compression available to the compressor include:
`First, no compression. This mode is Selected when the
`data analyzed has already been compressed.
`Second, compression with LZ77 and then with standard
`Huffman coding. The trees that are used to compress in this
`mode are defined by the Deflate specification itself and
`preloaded in any deflate decoding capable Software, and So
`no extra Space needs to be taken to Store those trees or Send
`them to the receiver of the compressed file.
`Third, compression with LZ77 and then with Huffman
`coding with trees that the compressor creates by examina
`tion of the file and Stores along with the data.
`The data is broken up in “blocks,” and each block uses a
`Single mode of compression. If the compressor wants to
`Switch from non-compressed Storage to compression with
`the trees defined by the Specification, or to compression with
`Specified Huffman trees, or to compression with a different
`pair of Huffman trees, the current block is ended and a new
`one begun.
`HyperTextMarkup Language (“HTML') is the authoring
`language used to create documents on the World Wide Web
`(Web). HTML defines the structure and layout of a Web
`document by using a variety of tags and attributes. The
`correct structure for an HTML document starts with
`<HTML><HEAD> “text describing the document”
`</HEAD&BODY and ends with </BODY &/HTML.
`The information included in the Web page is located
`between the <BODY> and </BODY> tags.
`An example of an HTML reference to a image file called
`“cpu.gif is:
`<img border=“0” src="cpu.gif" width="79” height=
`“75.
`There are numerous other HTML tags used to format and
`layout the information in a Web page. For example <P> is
`used to begin paragraphs and <I> and </I> are used to
`italicize text. Tags are also used to Specify hypertext linkS.
`Internet Server API (“ISAPI') is an application program
`ming interface (“API”) for Microsoft's Internet Information
`Server (“IIS) web server. ISAPI enables programmers to
`develop Web-based applications that run much faster than
`conventional CGI programs. ISAPI can Support requests
`from multiple workStations with only a single instance
`running on the Server. CGI requires a separate instance for
`each request.
`ZLIB is lossleSS data compression technique that uses the
`deflate technique to compress only the body of web pages
`and not the headers.
`
`45
`
`50
`
`55
`
`60
`
`DETAILED DESCRIPTION
`Transfer speed of files over the Internet is a critical factor
`in the usability of the Internet. Many techniques currently
`exist to increase the Speed of file transfers. The present
`
`65
`
`US 6,728,785 B1
`
`4
`invention intercepts web page requests then compresses the
`web page, which is usually an HTML file, and sends it to the
`requesting WorkStation in the compressed format. The
`requesting WorkStation then decompresses the web page
`before processing the web page. Optionally, the tags in the
`web page that point to image files, for example GIF files, are
`modified to point to modified image files of a different name,
`for example PNG files. This process can occur at an ISP or
`other form of point of presence to the Internet, at a forward
`proxy Server, at a reverse proxy server, at a transparent proxy
`server or at the web server.
`FIG. 1 is an illustration of an embodiment of the present
`invention including dynamic compression at the Web Server,
`i.e. as the content is Served or transferred in response to the
`request, it is compressed. The system 100 includes a work
`station 102, connected with a network 104 connected with a
`web server 106 that includes a compressor 108. The work
`Station 102 can be a personal computer, a network enabled
`mobile device Such as a cellular telephone, a portable
`computer, a WebTV like device or other Internet appliance,
`a personal digital assistant such as a Palm Pilot'TM manufac
`tured by 3-Com Corporation, or other device that can
`communicate with a server. The network 104 can be the
`Internet, a private network, an intranet, or other network
`including a combination of networks. The web server 106
`can be any computer that Stores or retrieves web pages or
`web files for others over a network. The compressor 108 can
`be integrated with the web server 106 or a stand alone unit.
`For example, the compressor 108 can be a PCI adapter card
`in the web server 106 or it can be a separate computer
`connected with the web server 106.
`In an embodiment illustrated in FIG. 1, a user at the
`workstation 102 sends a request to the web server 106 over
`the network 104 for a web page. The user may be running
`a web browser such as Internet ExplorerTM or Netscape
`NavigatorTM. When the request reaches the web server 106,
`the compressor 108 intercepts the request and determines if
`the WorkStation 102 can proceSS compressed web pages.
`Various mechanisms can be used by the compressor 108 to
`make this determination. In one embodiment, the compres
`Sor 108 analyzes the request to determine if the request's
`header contains a indication that the WorkStation can handle
`compressed files. For example, the header can contain a
`“request encoding=deflate' indication.
`If the WorkStation can handle compressed files, then the
`compressor 108 compresses the web page returned by the
`web server 106 before the web page is transmitted to the
`workstation 102.
`It is preferred that the web server 106 operations not be
`affected by the compressor 108. That is, the web server
`applications are not affected and the compressor 108 per
`forms the compression transparently to the web server 106,
`e.g., neither data throughput nor data processing power is
`impacted.
`Another embodiment of the compressor 108 utilizes a
`novel mode of deflate compression using LZ77 in combi
`nation with Huffman coding. The Huffman coding utilizes
`trees that are predefined based on an analysis of HTML
`codes. Since some HTML code must exist in every HTML
`page and others occur at frequencies that can be predicted,
`the Huffman tree can be generated before the compression to
`Save time compressing the data. For example:
`
`CISCO EXHIBIT 1019
`Jungck
`
`
`
`US 6,728,785 B1
`
`S
`
`HTML Code
`
`Huffman Code
`
`<html>
`</html>
`<head>
`<head>
`<title>
`</title>
`<b>
`<?b>
`WWW.
`<img src=
`<a href=
`
`O
`1.
`OO
`O1
`OOO
`OO1
`1O
`11
`110
`1110
`1111
`
`6
`indication flag that indicates that web page compression is
`acceptable. The same flag or an additional flag can be used
`to indicate that the associated files, for example GIF files,
`can be compressed. Second, the WorkStation 102 can Send a
`request to the compressor 108 or data center 208 (FIG. 2)
`indicating that compression is acceptable for that WorkSta
`tion 102. Other means of indicating that the workstation 102
`can accept compressed files can also be used. While the
`terms compressor and data center have been used to describe
`devices that are located near the web server and between the
`Web Server and the WorkStation, those terms are not limited
`to the embodiments used to illustrate their functionality.
`FIG. 2 is an illustration of an embodiment of the present
`invention including a data center 208 near the web server
`206 in a reverse proxy server configuration. The system 200
`includes a workstation 202 connected with a network 204
`connected with a data center 208 connected with the web
`server 206. The data center 208 intercepts web pages and
`compresses them before they are transmitted over the net
`work 204 to the workstation 202. The data center 208 can be
`connected with the web server 206 via a network, a direct
`connection, or other means. It is preferred that the data
`center 208 is directly connected with the web server 206. In
`one embodiment, the data center 208 can used to compress
`all appropriate web pages and asSociated files from the web
`SCWC.
`FIG. 3 is an illustration of an embod