throbber
USOO8069225B2
`
`(12) United States Patent
`US 8,069,225 B2
`McCanne et a1.
`
`Nov. 29, 201](45) Date of Patent:
`
`(10) Patent No.:
`
`(54)
`
`(75)
`
`TRANSPARENT CLIENT-SERVER
`TRANSACTION ACCELERATOR
`
`6,415,329 B1
`6.519.5’16 Bl *
`
`7t’2002 Gelmanetal.
`2.-"2003 Freeman ......................... 706(21
`
`Inventors: Steven McCanne, Berkeley, CA (US);
`Michael J. Demmer, San Francisco, CA
`(US); Arvind Jain, Santa Clara, CA
`(US); David Tze-Si Wu. Fremont. CA
`(US)
`
`(Continued)
`
`EP
`
`FOREIGN PATENT DOCUMENTS
`0 813 326 A2
`12t19'97-r
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`(73)
`
`Assignee: Riverbed Technology, Inc._. San
`Francisco. CA (US)
`
`Knutsson. Bjorn et al; “Transparent Proxy Signalling"; Journal of
`Cbmmwu’catt’on Network. Mar. 2001. pp. 1-1 1.
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 2039 days.
`
`(21)
`
`Appl. No.: 1011540305
`
`(22)
`
`Filed:
`
`Aug. 12, 2003
`
`(65)
`
`(50)
`
`(51)
`
`(52)
`(53)
`
`(56)
`
`Prior Publication Data
`
`US 2004t0215746 Al
`
`Oct. 28, 2004
`
`Related U.S. Application Data
`
`Provisional application No. 601462390, filed on Apr.
`14, 2003.
`
`Int. Cl.
`(2006.01)
`GMF 15/16
`U.S. Cl.
`.......................................... 70911219; 7062]
`Field of Classification Search .................. 711/153;
`7170169; 704(456; 7091223, 219, 236. 238,
`709(231, 250, 203. 228; 707i]; 706121
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,754,??4 A
`6,173,461 B1
`6,219,642 B1 "'
`
`5(1998 Bittingcr ct al.
`152001 Chan et a1.
`452001 ASgthr et a1.
`
`.............. 704:? 56.3
`
`(Continued)
`
`Primary Examiner — Dustin Nguyen
`(74) Attorney. Agent, orFI‘nn — Philip H. Albert; Kilpatrick
`Townsend & Stockton LLP
`
`ABSTRACT
`(57)
`In a network that conveys requests from clients to servers and
`responses from servers to clients, a network transaction accel-
`erator for accelerating transactions involving data transfer
`between at least one client and at least one server over a
`network comprising a client-side engine, a server-side engine
`and a transaction predictor configured to predict, based on
`past transactions, which transactions are likely to occur in the
`future between the client and server. The transaction predictor
`might be in the server-side engine, the client-side engine, or
`both. The client-side engine receives indications of requests
`from the client. a transaction buffer for storing results of
`predicted transactions received from the server or the server-
`side engine ahead of receipt ofa corresponding request, and a
`collator for collating the requests from the client with the
`stored results or received results. wherein a request and a
`response that are matched by the collator are identified and
`the matched response is provided to the client in response to
`the matched request. The server-side engine receives indica-
`tions of transactions including requests and responses and
`conveys requests to the server in response to actual transac-
`tions or predicted transactions.
`
`33 Claims, 10 Drawing Sheets
`
`. Inllial Ielerlcir delay could be optimized war as wel
`
`L100? L4559 L3?“
`
`Flies 1.2 153
`
`oTI'ansacIlans ale mediated based on past behavior. than Mined
`IAII transemione still go beck to Ihe server
`.Any data that is sent is optimized uslng the hlerarchinal cloning system
`*Adual amount oldala sent is a small fraction of orlginal size
`
`RlV-1005 - Page 1 of 29
`
`

`

`US 8,069,225 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`6,546,428 B2
`6,563,517 B1 "‘
`6,574,618 B2 "‘
`6,578,073 B1 “’
`6,622,168 B1 "'
`6,789,255 B1 "'
`6,820,133 B1 "'
`6,839,682 Bl "‘
`6,874,017 Bl
`7,082,456 B2 "‘
`7,149,817 B2 "‘
`7,224,839 B2 "'
`7,619,545 B2
`7,809,818 BZ
`7,827,237 BZ
`7,865,585 BZ
`7,916,047 BZ
`200270013853 Al
`200270023145 Al "'
`200270029326 Al "'
`200270087547 Al
`200270107971 Al "‘
`200270138511 Al
`200270147895 Al "'
`200270194382 Al
`200370009583 Al “'
`200470088376 Al
`200470215746 Al
`
`472003 Baberetai.
`.............. 7157735
`572003 Bhagwat et a].
`672003 Eylon et al.
`....................... 70771
`672003 Starnes et al.
`7097219
`7097219
`972003 Datla ..............
`
`972004 Pedrizetti et al.
`7177169
`
`1 172004 Grove et a1.
`7097238
`.................... ”705710
`172005 Blume et al.
`372005 Inoue eta].
`709.7203
`”772006 Mani-Meitav et al.
`
`7097250
`1272006 Pettey
`572007 Zeineh .......................... 3827232
`1172009 Samuels et a1.
`1072010 Plamondon
`1 172010 Plamondon
`172011 Samuels et al.
`372011 Samuels et al.
`172002 Baber etal.
`272002 Orr et a1.
`....................... 7097219
`372002 Renter et a1.
`.................. 7117206
`772002 Kausik et al.
`872002 Bailey et al.
`972002 Psounis et a].
`1072002 Glance et al.
`1272002 Kausik et al.
`172003 Chan et a1.
`.................... 7097236
`572004 McCanne et a].
`1072004 McCanne et a].
`
`.................. 709.7231
`................. 7117158
`
`W0
`
`FOREIGN PATENT DOCUMENTS
`WO 01763420 A1
`872001
`
`OTHER PUBLICATIONS
`
`Amer et al.. “File Access Prediction with Adjustable Accuracy.”
`Corrf Proc. of 2002 {EEE 7777. Performance, Computing med Com—
`munications. 21 :131-140, conference heldApr. 3-5, 2002 in Phoenix,
`AZ.
`
`Padmanabhan et al.. “Using Predictive Prefetching to Improve World
`Wide Web Latency,” iEEE ii‘arrmciiom on Antennas and Propaga—
`tion. 26(3):22-36 (1996).
`Cacer'es, Ramon et al.. "Webb Proxy Caching: The Devil Is In the
`Details.” Jun. 1998. Proceedings ofrhe Works-hop on inremei Ser'mr‘
`Perfor'rrionce, Madison. Wisconsin, pp. 1 11-1 18.
`Deshpande. Mukund et al.. “Selective Markov Models for Predicting
`Web-Page Accesses.” 2004. ACM fi‘mrsacriom on imerrrei Tecirrroi—
`ogy. vol. 4, Issue 2, pp. 163-184.
`Fan, Li et al., “Summary Cache: A Scalable Wide Area Web Cache
`Sharing Protocol.” Jun. 2000. Proceedings ofrne [EEE/HCirf ii'ans-
`actions on Networking, vol. 8, No. 3, pp. 281-293.
`Feldmeier', D.C. et al.. “Protocol Boosters.” Apr'. 1998. IEEE JSAC.
`vol. 16. Issue No. 3. pp. 437-444.
`Gr'iffioen, James et al.. ”Automatic Prefetching in aWAN.” Oct. 1993.
`Proceedings of tire [EEE ii’or'fisnop on Advances in Paraiiei and
`Distributed Systems. Technical Report 77 CS243-93. pp. 8- 12.
`Gr'iffioen, James et al., “Reducing File System Latency using a Pre-
`dictive Approach.” Jun. 1994. Proceedings ofiire USENLYSummer‘
`799-7 iiecnnicoi Conference on {x'SENiX Technical Conference, vol.
`1.
`Lei. Hui et al., “An Analytical Approach to File Prefetching.” Jan.
`1997. Proceedings of tire Anniiai Conference on USENIXAnnuai
`Technicoi Conference. Anaheim, California. pp. 1-12.
`01y. James et al.. “Markov Model Prediction of 170 Requests for
`Scientific Applications.” Jun. 2002. Proceedings ofthe 76:7: interim—
`tionai Confluence on Snpercompming. pp. 147-155.
`Rhea. Sean C. et al., "Value—Based Web Caching.” May 2003, Pro-
`ceedings ofrhe i 277: irrier‘rraiioriai Conference or: Worid Wide Web.
`Budapest. Hungary. pp. 619628.
`Tolia, Niraj, et a1 ., “An Architecture for Internet Data Transfer.” May
`2006. Third S}mposiam on Networked Systems Design and impie—
`meniaiiorr.
`Yang, Qiang et al., “Mining Web Logs for Prediction Models in
`WW Caching and Prefetching.” Aug. 2001, Proceedings of tire
`Sevenr‘nACMSiGKDDinr‘er'nar‘ionai Cbrrferenceon KnowiedgeDis-
`cover}' and Data Mining KDD’Or‘. San Francisco, California, pp,
`473-4778,
`Office Action in US. Appl. No. 127191.15 14 dated May 17, 2011.
`
`* cited by examiner
`
`RIV-1005 - Page 2 of 29
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet 1 0f 10
`
`US 8,069,225 132
`
`
`
`
`
`$35:329325
`
`3322
`
`5050
`
`o T
`1
`+T3
`
`.
`
`
`
`
`
`5
`
`——-a..___,,____m___fl
`
`
`10
`
`20
`
`30
`
`40
`
`50
`
`60
`
`70
`
`8O
`
`90
`
`100
`
`Latency (ms)
`
`
`
`szocuzuiAEEE
`
`
`
`
`
`RIV-1005 - Page 3 of 29
`
`

`

`US. Patent
`
`,0\.
`
`U
`
`8S
`
`2B522.,
`
`_iH_i
`
`9|la_m92:x_
`
`
`
`wmzawEU
`
`5.50m
`
`cork
`
`m.0.,mGE
`
`UE281:muzxwua
`..
`s_m2
`
`
`
`._.._F“I£2253IIIN_Mn_Ir_W.Lx
`
`N?/x_ix
`
`wEazo
`
`RIV-1005 - Page 4 of 29
`
`
`
`
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet 3. one
`
`US 8,069,225 132
`
`200
`
`HostMemory
`
`
`
`
`
` DualPortNiC
`
`
`
`
`
`LinuxInterceptModule
`
`EngineProcess
`
`
`
`L2Switch
`
`FIG.4
`
`RIV-1005 - Page 5 of 29
`
`

`

`US. Patent
`
`m.__V.mmmnEmDwmmomgmo_6569;
`
`
`36691___Zdj
`
`
`
`E9299“.EmEmLmQ
`
`
`
`99mEmEmmm9onE9535
`
`m_
`
`2E96_
`
`
`
`59:0Encowo625$59:E55W_09m$5_.
`
`
`
`
`
`M
`
`6
`
`2B5n
`
`22899259396hgH8559:mcacmgmAhS52mm
`
`
`4AVm53:9toamcmFtoamcmt.BMWPWL
`
`
`
`
`
`233029322
`
`9.,m.O_n_
`
`
`.UeEmcmmEmEm_mew62%EmE96_3%:$33tOchmF
`m,__SZdj__253
`
`EmmEsz_
`
`RIV-1005 - Page 6 of 29
`
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet
`
`SOHO
`
`US 8,069,225 132
`
`
`
`mwNuFmo__n_
`
`Em"NJummm
`
`
`
`Emmimmmfljmoo_‘._
`
`...m”Nu_.
`umwm
`
`52mm
`
`IIII
`IIII
`
`EEO
`
`
`
`09onE08958on:6mm
`
`E
`
`
`
`umzzmafi:9:.5338Ema:3Emma53.285Em95:20.95;.
`
`mwmnrmmzn—
`
`
`
`
`
`
`
`
`
`E936mchEEUEEEmE9:mafiaBHEEOm_Emmm_E:Emu2%.
`
`
`
`523m«E.2xomp0m__=wmcgommcmz__<-
`
`
`
`
`
`36$5955cozomc:mEmmm_:56EmuhoEzoEmEEO/x.
`
`w.0E
`
`:95mm33mumflEEoma2:00>m_muBEEEEE.
`
`RIV-1005 - Page 7 of 29
`
`

`

`US. Patent
`
`m\
`
`1m
`
`6mh
`
`.U
`
`Q“
`
`,00.,
`
`n,
`
`522.,
`
`mwowwSUoEMmEEmE
`
`1'
`
`mmmcogme
`
`S\mmmcoammL
`
`,mgmcafitmmbmq:9_E0.9a5.m862mm0$57_LohmbmeH.U#__DH;
`
`
`
`mfimzcmgmfimzcmg
`
`5E5ormc9585
`
`V/oow
`
`80%
`
`2IBk0t
`
`RIV-1005 - Page 8 of 29
`
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet 7 one
`
`US 8,069,225 132
`
`
`
`FIG. 8 (Prior Art)
`
`RIV-1005 - Page 9 of 29
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet 8 one
`
`US 8,069,225 132
`
`
`
`FIG. 9
`
`RIV—1005 - Page 10 of 29
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet 9 one
`
`US 8,069,225 132
`
`
`
`FIG. 10
`
`RIV—1005 - Page 11 of 29
`
`

`

`US. Patent
`
`Nov. 29, 2011
`
`Sheet 10 0f 10
`
`US 8,069,225 132
`
`09009
`
`FIG. 11A
`
`o'eri'oi‘o‘e
`
`FIG. 11B
`
`
`
`FIG. 12
`
`RIV—1005 - Page 12 of 29
`
`

`

`US 8,069,225 82
`
`l
`TRANSPARENT C LIENT—SERVER
`TRANSACTION ACCELERATOR
`
`CROSS—REFERENCES TO RELATED
`APPLICATIONS
`
`5
`
`2
`demand for “more bandwidth” to remote sites in an
`
`effort to improve the performance for distributed users.
`Causes of Poor WAN Throughput
`The two primary causes of the slow throughput on WANs
`are well known: high delay (or latency) and limited band-
`width. The “bandwidth” of a network of channel refers to
`measure of the number of bits that can be transmitted over a
`link or path per unit of time. “Latency" refers to a measure of
`the amount of time that transpires while the bits traverse the
`network, e. g. _. the time it takes a given bit transmitted from the
`sender to reach the destination. “Round-trip time” refers to
`the sum of the “source-to-destination" latency and the “des-
`tination-to-source" latency. Ifthe underlying paths are asym-
`metric, the round-trip latency might be different than twice a
`one-way latency. The term “throughput” is sometimes oon-
`fused with bandwidth but refers to a measure of an attained
`
`transfer rate that a client-server application, protocol. etc.
`achieves over a network path. Throughput is typically less
`than the available network bandwidth.
`The speed of light, a fundamental and fixed constant,
`implies that information transmitted across a network always
`incurs some nonzero latency as it travels from the source to
`the destination. In practical terms, this means that sending a
`packet from Silicon Valley to New York and back could never
`occur faster than about 30 milliseconds (ms )_. the time infor-
`mation in an electromagnetic signal would take to travel that
`distance in a direct path cross-country. In reality. this cross-
`country round trip time is more in the range of 100 ms or so,
`as signals in fiber or copper do not always travel at the speed
`of light in a vacuum and packets incur processing delays
`through each switch and router. This amount of latency is
`quite significant as it is at least two orders of magnitude
`higher than typical sub-millisecond LAN latencies.
`Other round-trips might have more latency. Round trips
`from the West Coast of the US. to Europe can be in the range
`of 100-200 ms, and some links using geo-stationary satellites
`into remote sites can have latencies in the 500-800 ms range.
`With latencies higher than about 50 ms, many client-server
`protocols and applications will filnction poorly relative to a
`LAN as those protocols and applications expect very low
`latency.
`While many employees routinely depend upon Fast Ether-
`net (100 Mbps) or Gigabit Ethernet (1 Gbps) within most
`corporate sites and headquarters facilities,
`the bandwidth
`intercomrecting many corporate and industrial sites in the
`world is much lower. Even with DSL. Frame Relay or other
`broadband technologies, WAN connections are slow relative
`to a LAN. For example, 1 Mbps DSL service offers only V100“
`the bandwidth ofFast Ethernet and 1/1000“ ofwhat is available
`using Gigabit Ethernet.
`While some places might have high bandwidth backbone
`networks, such as the Metro Ethernet available in South
`Korea and Japan, the latency and bandwidth issues persist
`whenever data needs to travel outside areas with such net-
`
`works. For example. a Japanese manufacturer with plants in
`Japan and the US. might needs to send CAD/CAM files back
`and forth between plants. The latency from Japan to the East
`Coast of the US. might be as high as 200 ms and trans-Pacific
`bandwidth can be expensive and limited.
`WAN network bandwidth limits almost always impact cli-
`ent-server application throughput across the WAN, but more
`bandwidth can be bought. With latency, lower latency cannot
`be bought if it would require faster than light communica-
`tions. In some cases, network latency is the bottleneck on
`perfonnance or throughput. This is often the case with win-
`dow-based transport protocols such as TCP or a request-
`response protocol such as the Common Internet File System
`
`RIV—1005 - Page 13 of 29
`
`10
`
`15
`
`This application claims priority from US. Provisional
`Patent Application No. 60t462,990 entitled “Transport-Level
`Network Accelerator" filedApr. 14, 2003 and is incorporated
`by reference herein for all purposes.
`The present disclosure is related to the following corn-
`1nonly assigned co-pending US. patent applications:
`U.S. patent application Ser. No. 10t285,315 entitled
`“Transaction Accelerator for Client-Server Communi-
`cation Systems” (hereinafter “McCanne I”) filed on Oct.
`30, 2002 and is incorporated by reference herein for all
`purposes;
`U.S. patent application Ser. No. 10285330 entitled “Con-
`tent-Based Segmentation Scheme for Data Compres-
`sion in Storage and Transmission Including Hierarchical
`Segment Representation” (hereinafier “McCanne II”)
`filed on Oct. 30. 2002 and is incorporated by reference
`herein for all purposes; and
`US. patent application Ser. No. 10/640,562 know US. Pat.
`No. 7,318,100) entitled “Cooperative Proxy Auto-Dis- 35
`covery and Connection Interception"
`(hereinafter
`“McCanne IV") filed concurrently herewith and is incor-
`porated by reference herein for all purposes.
`
`30
`
`FIELD OF THE INVENTION
`
`The present invention relates to data transport over net-
`works in general and more particularly may relate to improve-
`ments in data transport at the transport level between a client
`and a server.
`
`BACKGROUND OF THE INVENTION
`
`30
`
`35
`
`Local Area Network (LAN) communication is character-
`ized by generous bandwidths. low latencies and considerable 40
`enterprise control over the network. By contrast. Wide Area
`Networks (WANs) often ltave lower bandwidths and higher
`latencies than LANs and often have a measure of network
`
`control that is outside the enterprise for which the WAN is
`being used.
`“ride-area client-server applications are a critical part of
`almost any large enterprise. A WAN might be used to provide
`access to widely used and critical infrastructure. such as file
`servers. mail servers and networked storage. This access most
`often has very poor throughput when compared to the perfor- 50
`mance across a LAN. Whether an enterprise is taking a cen-
`tralized approach or a distributed approach, high performance
`communication across the WAN is essential in order to mini-
`
`45
`
`mize costs and maximize productivity. Enterprise IT manag-
`ers today typically take one oftwo approaches to compensate 55
`for the performance challenges inherent in WANs:
`l . Ifthe IT infrastructure is decentralized and they intend to
`keep it that way, corporate network and server managers
`typically have to deploy local file servers. data storage,
`mail servers, and backup systems with some redundancy 60
`iii each remote office to ensure fast and reliable access to
`critical data and applications at each office. They also
`may maintain over-provisioned WAN links in order to
`enable reasonable levels ofperforlnance for file transfers
`and similar data-intensive tasks.
`2. If the IT infrastructure is already centralized or semi-
`centralized, the enterprise will be faced with a constant
`
`65
`
`

`

`US 8,069,225 B2
`
`3
`(CIFS) protocol or the Network File System (NFS) protocol.
`High network latency particularly slows down “chatty" appli-
`cations. even ifthe actual alnounts ofdata transmitted in each
`transaction are not large. “Chatty” applications are those in
`which client-server interactions involve many back-and-forth
`steps that might not even depend on each other. Adding band-
`width (or compressing data) does not improve the throughput
`of these protocolsfapplications when the round-trip time
`exceeds some critical point and once the latency reaches that
`critical point, throughput decays quickly.
`This phenomenon can be understood intuitively: the rate of
`work that can be performed by a client-server application that
`executes serialized steps to accomplish its tasks is inversely
`proportional to the round-trip time between the client and the
`server. If the client-server application is bottlenecked in a
`serialized computation (i.e.. it is “chatty"), then increasing
`the round-trip by a factor of two causes the throughput to
`decrease by a factor of two because it takes twice as long to
`perform each step (while the client waits for the server and
`vice versa).
`More generally. the throughput of client-server applica-
`tions that are not necessarily chatty but run over a window-
`based protocol (such as TCP) can also suffer from a similar
`fate. This can be modeled with a simple equation that
`accotmts for the round-trip time (RTT) and the protocol win-
`dow (W). The window defines how much data the sender can
`transmit before requiring receipt of an acknowledgement
`from the receiver. Once a window’s worth of data is sent. the
`sender must wait until it hears from the receiver. Since it takes
`
`a round-trip time to receive the acknowledgement from the
`receiver. the rate at which data can be sent is simply the
`window size divided by the round trip time:
`T= W/RTT
`
`The optimal choice ofwindow size depends on a number of
`factors. To perform well across a range ofnetwcrk conditions,
`a TCP device attempts to adapt its window to the underlying
`capacity of the network. So, if the underlying bottleneck
`bandwidth (or the TCP sender’s share of the bandwidth) is
`roughly B bits per second, then a TCP device attempts to set
`its window to BxR'I—I', and the throughput, T, would be:
`r=(serrerr=3
`
`In other words, the throughput would be equal to the avail-
`able rate. Unfortunately. there are often other constraints.
`Many protocols, such as TCP and CIFS. have an upper bound
`on the window size that is built into the protocol. For example.
`the maximum request size in CIFS is 64 KB and in the
`original TCP protocol. the maximum window size was lim-
`ited by the fact that the advertised window field in the protocol
`header is 16 bits. limiting the window also to 64 KB. While
`modern TCP stacks implement the window scaling method in
`RFC 1323 to overcome this problem, there are still many
`legacy TCP implementations that do not negotiate scaled
`windows. and there are more protocols such as CIFS that have
`application-level limits on top of the TCP window limit. So.
`in practice, the throughput is actually limited by the maxi-
`mum window size (MWS)
`T=min(BxRTT.-MWS)-"R IT< =3
`
`Even worse. there is an additional constraint on throughput
`that
`is fiJndamental
`to the congestion control algorithm
`designed into TCP. This flaw turns out to be non-negligible in
`wide-area networks where bandwidth is above a few megabits
`and is probably the key reason why enterprises often fail to
`see marked performance improvements of individual appli-
`cations after substantial bandwidth upgrades.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Essentially, this problem stems from conflicting goals of
`the TCP congestion control algoritlun that are exacerbated in
`a high-delay enviromnent. Namely. upon detecting packet
`loss, a TCP device reacts quickly and significantly to err on
`the side of safety (i.e., to prevent a set of TCP connections
`from overloading and congesting the network). Yet, to probe
`for available bandwidth, a TCP device will dynamically
`adjust its sending rate and continually push the network into
`momentary periods of congestion that cause packet loss to
`detect bandwidth limits. In short. a TCP device continually
`sends the network into congestion then aggressively backs
`off. In a high-latency environment, the slow reaction time
`results in throughput limitations.
`An equation was derived in the late 1990’s that models the
`behaviorof a network as a function ofthe packet loss rate that
`TCP induces and that equation is:
`Cuis=1.2x.s.-sqrrtp)
`
`As indicated by that equation. the average congestion win-
`dow size (CWS) is roughly determined by the packet size (S)
`and the loss rate (p). Taking this into account. the actual
`throughput ofa client-server application rumting over TCP is;
`T: WKR TT=min(MW.S', C WSfixR TWR TT
`
`FIG. 1 is a graph that illustrates this problem from a very
`practical perspective. That graph shows the perfonnance of a
`TCP data transfer when the network is experiencing a low
`degree ofnetwork loss (less than 1/10 of 1 percent) for increas-
`ing amotmts of latency. The bottom curve represents the TCP
`throughput achievable from a T1 line. which is roughly equal
`to the available bandwidth (1 .544 Mbr's) all the way up to 100
`ms latencies. The top curve. on the other hand. illustrates the
`performance impact of the protocol window at higher band-
`widths. With a T3 line, the TCP throughput starts out at the
`available line rate (45 bes) at low latencies. but at higher
`latencies the throughput begins to decay rapidly (in fact.
`hyperbolically). This effect is so dramatic that at a 100 ms
`delay (i.e.. a typical cross-country link). TC P throughput is
`only 4.5 Mb/s of the 45 bes link.
`Under such conditions, application performance does not
`always increase when additional bandwidth is added. As FIG.
`1 shows, ifthe round trip time (RTT) is greater than a critical
`point (just 15 111s or so in this example) then increasing the
`bandwidth of the link will only marginally improve through-
`put at higher latency and at even higher latencies. throughput
`is not increased at all with increases in bandwidth.
`FIG. 2 graphs a surface ofthroughput model derived above,
`presuming a TCP transfer over a 45 Mb/s T3 link. The surface
`plots throughput as a function of both round-trip times and
`loss rates. This graph shows that both increasing loss and
`increasing latency impair performance. While latency has the
`more dramatic impact. they combine to severely impact per-
`formance. In environments with relatively low loss rates and
`normal WAN latencies, throughput can be dramatically lim-
`ited.
`Existing Approaches to Overcoming WAN Throughput Prob-
`lems
`Given the high costs and performance challenges ofWAN-
`based enterprise computing and communication. many
`approaches have been proposed for dealing with these prob-
`lems.
`Perhaps the simplest approach to dealing with performance
`is to simply upgrade the available bandwidth in the network.
`Of course this is the most direct solution. but it is not always
`the most effective approach. First of all. contrary to popular
`belief, bandwidth is not free and the costs add up quickly for
`large enterprises that may have hundreds of offices. Second,
`
`RIV—1005 - Page 14 of 29
`
`

`

`US 8,069,225 B2
`
`5
`as discussed earlier, adding bandwidth does not necessarily
`improve throughput. Third,
`in some places adding more
`bandwidth is not possible, especially across international
`sites, in remote areas, or where it is simply too expensive to
`justify.
`Another approach is to embed intelligence in the applica-
`tions themselves, e.g., to exploit that fact that data often
`changes in incremental ways so that the application can be
`designed to send just incremental updates to between clients
`and servers. Usually, this type ofapproach employs some sort
`of versioning system to keep track of version numbers of files
`(or data objects) so that differences between versioned data
`can be sent between application components across the net-
`work. For example, some content management systems have
`this capability and storage backup software generally
`employs this basic approach. However, these systems do not
`deal with scenarios where data is manipulated outside oftheir
`domain. For example. when a file is renamed and re-entered
`into the system the changes between the old and new versions
`are not captured. Likewise, when data flows between distinct
`applications (e.g., a file is copied out ofa content manage-
`ment system and into a file system), versioning cannot be
`carried out between the different components.
`This approach of managing versions and communicating
`updates can be viewed as one specific (and application-spe-
`cific) approach to compression. More generally. data com-
`pression systems can be utilized to ameliorate network band-
`width bottlenecks. Compression is a process of representing
`one set of data with another set of data wherein the second set
`
`of data is. on average. a smaller number of bits than the first
`set ofdata, such that the first set of data. or at least a sufficient
`approximation of the first set of data, can be recovered from
`an inverse of the compression process in most cases. Corn-
`pression allows for more efficient use of a limited bandwidth
`and might result in less latency. but in some cases. no latency
`improvement occurs. In some cases, compression might add
`to the latency. if time is needed to compress data after the
`request is made and time is needed to decompress the data
`after it is received. This may be able to be improved ifthe data
`can be compressed ahead of time, before the request is made,
`but that may not be feasible if the data is not necessarily
`available ahead of time for compression, or if the volume of
`data from which the request will be served is too large relative
`to the amount of data likely to be used.
`One way to deploy compression is to embed it in applica-
`tions. For example. a Web server can compress the HTML
`pages it returns before delivering them across the network to
`end clients. Another approach is to deploy compression in the
`network without having to modify the applications. For many
`years, network devices have included compression options as
`features (e.g..
`in routers. modems, dedicated compression
`devices, etc) [D. Rand, “The PPP Compression Control Pm-
`toco] (CCP)”_. Request-for-Comments 1962,June 1996]. This
`is a reasonable thing to do. but the effectiveness is limited.
`Most methods of lossless data compression typically reduce
`the amount of data (i.e., bandwidth) by a factor of 1.5 to 4,
`depending on the inherent redundancy present. While helpful,
`it is not enough to dramatically change performance if the
`amount of data being sent is large or similar data is sent
`repeatedly. perhaps over longer time scales. Also. when per-
`formance is limited by network latency. compressing the
`underlying data will have little or no impact.
`Rather than compress the data. another approach to work-
`ing around WAN bottlenecks is to replicate servers and server
`data in local servers for quick access. This approach in par-
`ticular addresses the network latency problem because a cli-
`ent in a remote site can now interact with a local server rather
`
`10
`
`IS
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`than a remote server. There are several methods available to
`
`enterprises to store redundant copies of data in replicated file
`systems, redundant or local storage servers. or by using any
`number of distributed file systems. The challenge with this
`kind of approach is the basic problem of managing the ever-
`exploding amount of data, which requires scaling 11p storage,
`application and file servers in many places. and trying to make
`sure that the files people need are indeed available where and
`when they are needed. Moreover, these approaches are gen-
`erally non-transparent, meaning the clients and servers must
`be modified to implement and interact with the agents andi'or
`devices that perform the replication function. For example, if
`a file server is replicated to a remote branch, the server must
`be configured to send updates to the replica and certain clients
`must be configured to interact with the replica while others
`need to be configured to interact with the original server.
`Rather than replicate servers, another approach is to deploy
`transport-level or application-level devices called “proxies".
`which function as performance-enhancing intermediaries
`between the client and the server. In this case, a proxy is the
`tenninus for the client connection and initiates another con-
`
`nection to the server on behalfof the client. Alternatively, the
`proxy connects to one or more other proxies that in tum
`connect to the server. Each proxy may forward. modify, or
`otherwise transform the transactions as they flow from the
`client to the server and vice versa. Examples of proxies
`include (1) Web proxies that enhance performance through
`caching or enhance security by controlling access to servers,
`(2) mail relays that forward mail from a client to another mail
`server. (3) DNS relays that cache DNS name resolutions. and
`so forth.
`
`With a proxy situated between the client and server, the
`performance impairments of network latency can be
`addressed by having the proxy cache data. Caching is a pro-
`cess of storing previously transmitted results in the hopes that
`the user will request the results again and receive a response
`more quickly from the cache than if the results had to come
`from the original provider. Caching also provides some help
`in mitigating both latency and bandwidth bottlenecks, but in
`solne situations it does not help much. For example. where a
`single processor is retrieving data from memory it controls
`and does so in a repetitive fashion, as might be the case when
`reading processor instructions from memory, caching can
`greatly speed a processor’s tasks. Similarly, file systems have
`employed caching mechanisms to store recently accessed
`disk blocks in host memory so that subsequent accesses to
`cached blocks are completed much faster than reading them
`in from disk again as in BSD Fast File System [McKusick_. et
`al., “A Fast File System for BSD". ACM Transactions on
`Computer Systems, Vol. 2(3). 1984]. the Log-based File Sys-
`teln [Rosenblum and Ousterhout, “The Design and Imple—
`mentation of a Log-structured File System”, ACM Transac-
`tions on Computer Systems, Vol. 10(1), 1992], etc. In a
`typical cache arrangement. a requestor requests data froln
`solne memory. device or the like and the results are provided
`to the requestor and stored ina cache having a faster response
`time than the original device supplying the data. Then, when
`the requestor requests that data again, ifit is still in the cache,
`the cache can return the data in response to the request before
`the original device could have retumed it and the request is
`satisfied that much sooner.
`Caching has its difficulties, one of which is that the data
`might change at the source and the cache would then be
`supplying “stale" data to the requestor. This is the “cache
`consistency" problem. Because ofthis, caches are often “read
`only” requiring that changes to data be transmitted through
`the cache back to the source in a “write-through” fashion.
`
`RIV—1005 - Page 15 of 29
`
`

`

`US 8,069,225 82
`
`7
`Another problem with caching is that the original source of
`the data might want to track usage of data and would not be
`aware of uses that were served from the cache as opposed to
`from the original source. For example, where a Web server is
`remote from a number of computers running Web browsers
`that are “pointed to“ that Web server, the Web browsers might
`cache Web pages from that site as they are viewed. to avoid
`delays that might occur in downloading the Web page again.
`While this would improve performance in many cases, and
`reduce the load on the Web server, the Web server operator
`might try to track the total number of “page views” but would
`be ignorant of those served by the cache. In some cases, an
`Internet service provider might operate the cache remote
`from the browsers and provide cached content for a large
`number of browsers, so a Web server operator might even
`miss unique users entirely.
`Where loose consistency can be tolerated, caching can
`work remarkably well. For example, the Domain Name Sys-
`tem (DNS )_. dating back to the early 1980’s, employs caching
`extensively to pr

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


Or .

Accessing this document will incur an additional charge of $.

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

Accept $ Charge
throbber

Still Working On It

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

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

throbber

A few More Minutes ... Still Working

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

Thank you for your continued patience.

This document could not be displayed.

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

Your account does not support viewing this document.

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

Your account does not support viewing this document.

Set your membership status to view this document.

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

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

Become a Member

One Moment Please

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

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

Your document is on its way!

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

Sealed Document

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

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


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket